⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 example24.c

📁 LinuxNetProgramming Linux网络编程基础实例
💻 C
字号:
#include	<stdlib.h>

#include 	<stdio.h>

#include	<unistd.h>

#include	<errno.h>

#include	<sys/stat.h>

#include	<fcntl.h>



#define		LINE	1024

#define 	FILE_MODE  (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)

#define		SERV_FIFO  "/tmp/fifo.serv"

int

main()

{

	int	readf, writef;

	size_t	len;

	size_t	n;

	char	*ptr, fifoname[LINE], buff[LINE];

	pid_t	pid;



	pid = getpid();

	snprintf(fifoname, sizeof(fifoname), "tmp/fifo.%d", (long)pid);

	if ((mkfifo(fifoname, FILE_MODE) < 0) && (errno != EEXIST))

		printf("can't create %s", fifoname);

	snprintf(buff, sizeof(buff), "%ld", (long)pid);

	len = strlen(buff);

	ptr = buff + len;

	fgets(ptr, LINE - len, stdin);

	len = strlen(buff);

	writef = open(SERV_FIFO, O_WRONLY, 0);

	write(writef, buff, len);

	readf = open(fifoname, O_RDONLY, 0);

	while ((n = read(readf, buff, LINE)) > 0)

		write(STDOUT_FILENO, buff, n);

	close(readf);

	unlink(fifoname);

	exit(0);

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -