#include<stdio.h>#include<string.h>#include<stdlib.h>#include<unistd.h>#include<fcntl.h>#include<stdbool.h>intmain(int argc,charconst*argv[]){int fd1 =open("myfifo1",O_RDONLY);int fd2 =open("myfifo2",O_RDONLY);int fd3 =open("myfifo3",O_RDONLY);//设置为非阻塞int flag =0;
flag =fcntl(fd1,F_GETFL);
flag |= O_NONBLOCK;fcntl(fd1,F_SETFL,flag);
flag =fcntl(fd2,F_GETFL);
flag |= O_NONBLOCK;fcntl(fd2,F_SETFL,flag);
flag =fcntl(fd3,F_GETFL);
flag |= O_NONBLOCK;fcntl(fd3,F_SETFL,flag);char buf[128]={0};while(true){memset(buf,0,sizeof(buf));read(fd1,buf,sizeof(buf));printf("myfifo1:%s\n",buf);memset(buf,0,sizeof(buf));read(fd2,buf,sizeof(buf));printf("myfifo2:%s\n",buf);memset(buf,0,sizeof(buf));read(fd3,buf,sizeof(buf));printf("myfifo3:%s\n",buf);sleep(2);//防止刷屏 }close(fd1);close(fd2);close(fd3);return0;}