fifo_read.c

来自「关于进程间通信的代码集锦2」· C语言 代码 · 共 47 行

C
47
字号
#include <sys/types.h>#include <sys/stat.h>#include <errno.h>#include <fcntl.h>#define FIFO_SERVER "/tmp/fifoserver"int main(int argc,char** argv){	int fd;	char r_buf[4096*2];	int r_size;	int ret_size;	r_size=atoi(argv[1]);	printf("required real read bytes %d\n",r_size);	memset(r_buf,0,sizeof(r_buf));	if((mkfifo(FIFO_SERVER,O_CREAT|O_EXCL)<0)&&(errno!=EEXIST))	{		printf("cannot create fifoserver");	}	printf("Preparing for reading bytes...\n");	fd=open(FIFO_SERVER,O_RDONLY,0);	if(fd==-1)	{		printf("open %s for read error\n",FIFO_SERVER);		exit(0);	}	while(1)	{		memset(r_buf,0,sizeof(r_buf));		ret_size=read(fd,r_buf,r_size);		if(ret_size==-1)		{				if(errno==EAGAIN)			{				printf("no data avilable.\n");			}		}				printf("real read bytes %d\n",ret_size);		sleep(1);	}	pause();	unlink(FIFO_SERVER);	return 0;}

⌨️ 快捷键说明

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