#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
#include<string.h>
#include<fcntl.h>
#include<sys/stat.h>
#include<errno.h>
#define FIFO_NAME "./chenfifo"
#define MODE 00777
int main (int argc, char *argv[])
{
int fd = 0;
int ert = -1;
char buf[20]={0};
//打开并创建接口,
if(-1 != (mkfifo(FIFO_NAME, MODE) && (EEXIST != errno)))
{
// 打开管道,并以读写的方式
fd = open(FIFO_NAME, O_RDWR);
if(-1 == fd)
{
printf("open faild\n");
return -1;
}
if(0 == strcmp("write", argv[1]))
{ //write
printf("write...\n");
write(fd, "hello myfifo", 15);
sleep(20); // 写的时候要延时,确保写时程顺没退出,才能读到
}
if(0 == strcmp("read", argv[1]))
{ //read
printf("read..");
read(fd, buf, sizeof(buf));
printf("buf=%s\n",buf);
}
}
return 0;
}