有名管道,创建两个发送接收端,父进程写入管道1和管道2,子进程读取管道2和管道1
#include<myhead.h>
int main()
{
int send,rev;
if(send=open("./my_fifo1",O_RDONLY)==-1)
{
perror("open");
return -1;
}
if(rev=open("./my_fifo2",O_WRONLY)==-1)
{
perror("open");
return -1;
}
pid_t pid;
pid=fork();
char buff[1024];
char arr[1024];
if(pid>0)
{
while(1)
{
int len= read(0,buff,sizeof(buff));
write(send,buff,len);
sleep(3);
if(strcmp(buff,"quit")==0)
{
break;
}
}
}
else if(pid==0)
{
while(1)
{
sleep(3);
int len =read(rev,arr,sizeof(arr));
write(1,arr,len);
if(strcmp(buff,"quit")==0)
{
break;
}
}
}
else
{
perror("打开失败");
exit(EXIT_FAILURE);
}
close(send);
close(rev);
return 0;
}
#include<myhead.h>
int main()
{
int send,rev;
if(send=open("./my_fifo1",O_WRONLY)==-1)
{
perror("open");
return -1;
}
if(rev=open("./my_fifo2",O_RDONLY)==-1)
{
perror("open");
return -1;
}
pid_t pid;
pid=fork();
char buff[1024];
char arr[1024];
if(pid>0)
{
while(1)
{
int len= read(0,buff,sizeof(buff));
write(rev,buff,len);
sleep(5);
if(strcmp(buff,"quit")==0)
{
break;
}
}
}
else if(pid==0)
{
while(1)
{
sleep(5);
int len =read(send,arr,sizeof(arr));
write(1,arr,len);
if(strcmp(buff,"quit")==0)
{
break;
}
}
}
else
{
perror("打开失败");
exit(EXIT_FAILURE);
}
close(send);
close(rev);
return 0;
}