#include <myhead.h>
//完成父子进程的通信
//父进程发送一句话后,子进程接收打印
//然后子进程发送一句话,父进程接收后打印
int main(int argc, const char *argv[])
{
int flag = 0;
int pfd[2] = {0};
if(pipe(pfd) < 0)
{
perror("pipe");
return -1;
}
char buf[128] = "";
pid_t cpid = fork();
if(cpid > 0) //父进程
{
while(1)
{
bzero(buf, sizeof(buf));
printf("父进程 :请输入>>>");
fgets(buf, sizeof(buf), stdin);
buf[strlen(buf)-1] = '\0';
if(write(pfd[1], buf, sizeof(buf)) < 0)
{
perror("write");
return -1;
}
sleep(1);
bzero(buf,sizeof(buf));
if(read(pfd[0], buf, sizeof(buf)) < 0)
{
perror("read");
return -1;
}
printf("父进程接收 :%s\n", buf);
}
}
else if(0 == cpid)
{
while(1)
{
sleep(1);
bzero(buf, sizeof(buf));
if(read(pfd[0], buf, sizeof(buf)) < 0)
{
perror("read");
return -1;
}
printf("子进程接收 :%s\n", buf);
sleep(1);
bzero(buf, sizeof(buf));
printf("子进程 :请输入>>>");
fgets(buf, sizeof(buf), stdin);
buf[strlen(buf)-1] = '\0';
if(write(pfd[1], buf, sizeof(buf)) < 0)
{
perror("write");
return -1;
}
}
}
else
{
perror("fork");
return -1;
}
return 0;
}
国庆作业4
最新推荐文章于 2024-07-22 22:58:19 发布