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 + -
显示快捷键?