#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <unistd.h>
#include <linux/stat.h>
#include <errno.h>
#define FIFO_FILE "MYFIFO" //命名管道名称
int main(int argc,char * argv)
{
FILE *fp;
char readbuf[80]; //读缓冲区
// 创建命名管道文件
if((fp=fopen(FIFO_FILE,"r"))==NULL)
{
umask(0);
mknod(FIFO_FILE,S_IFIFO|0666,0);
}
else
{
fclose(fp); //如果存在关闭fp
}
while(1)
{
//打开命名管道文件
if((fp = fopen(FIFO_FILE,"r"))==NULL)
{
printf("打开fifo失败. \n");
exit(1);
}
// 从命名管道中读数据
if(fgets(readbuf,80,fp)!=NULL)
{
printf("接收到字符串::%s \n", readbuf);
fclose(fp);
}
else
{
if(ferror(fp)) //如果出错
{
perror("读文件失败.\n");
exit(1);
}
}
}
return 0;
}
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。