#include <stdio.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <errno.h>
#include <fcntl.h>
#include <string.h>
#include <unistd.h>
int main(int argc,const char *argv[])
{
umask(0);
if(mkfifo("./myfifo",0664)<0)
{
//文件已经存在的错误是一个合法的错误,需要排除,代码允许正常执行
printf("errno=%d\n",errno);
if(17!=errno)
{
perror("mkfifo");
return -1;
}
}
printf("mkfifo create success\n");
//有名管道存在,则直接读写管道
//以只写的方式打开有名管道
int fd=open("./myfifo",O_WRONLY);
if(fd<0)
{
perror("open");
return -1;
}
printf("open fifo success wronly fd=%d\n",fd);
if(mkfifo("./hisfifo",0664)<0)
{
//文件已经存在的错误是一个合法的错误,需要排除,代码允许正常执行
printf("errno=%d\n",errno);
if(17!=errno)
{
perror("mkfifo");
return -1;
}
}
printf("mkfifo create success\n");
//有名管道存在,
1.要求实现AB进程对话a.A进程先发送—句话给B进程,B进程接收后打印b.B进程再回复一句话给A进程,A进程接收后打印c.重复1.2步骤,当收到quit后,要结束AB进程d.提示:两根管道
最新推荐文章于 2024-09-01 10:42:03 发布