您的位置:首页 > 运维架构 > Linux

linux fifo

2014-04-10 20:38 316 查看
//fifo_write.c
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <string.h>
#include <fcntl.h>
#define FIFO_SERVER "/tmp/myfifo"
int main(int argc,char **argv[])
{
int fd;
int writenum;
char buf[100];
if(mkfifo(FIFO_SERVER,O_CREAT|O_EXCL|O_RDWR)<0)
printf("creak fifo failure!\n");
else
printf("creak fifo success!\n");
if((fd=open(FIFO_SERVER,O_RDWR))>0)
{
if(argc<2)
{
printf("input somethings!\n");
close(fd);
exit(0);
}
else
{
printf("open FIFO SERVER success!\n");
if((writenum=write(fd,argv[1],10))>0)
printf("write FIFO SERVER success!,number=%d\n",writenum);
else if(writenum==0)
printf("write FIFO SERVER empty!\n");
else
printf("write FIFO SERVER failure!\n");
}
}
else
{
printf("open FIFO SERVER failure!\n");
exit(1);
}
close(fd);
return 0;
}


//fifo_read.c
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <string.h>
#include <fcntl.h>
#define FIFO_SERVER "/tmp/myfifo"
int main(int argc,char **argv[])
{
int fd;
int readnum;
char buf[100];
if((fd=open(FIFO_SERVER,O_RDWR))>0)
{
printf("open FIFO SERVER success!\n");
}
else
{
printf("open FIFO SERVER failure!\n");
exit(1);
}
while(1)
{
memset(buf,0,100);
if((readnum=read(fd,buf,100))>0)
printf("read from FIFO SERVER success!number=%d,data=%s\n",readnum,buf);
else if(readnum==0)
printf("read nothing!\n");
else
printf("error\n");
printf("reading FIFO SERVER!\n");
sleep(1);
}
close(fd);
return 0;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: