代码:
#include<stdio.h>
#include<sys/wait.h>
#include<unistd.h>
#include<stdlib.h>
#include<string.h>
void sondo(int fd2read,int fd1write)
{
char *message="hello world";
char message1[100];
write(fd1write,message,100);
read(fd2read,message1,100);
printf("parent give son message %s",message1);
}
void parentdo(int fd1write,int fd2read)
{
char message1[100];
char *message="hello world my name is bai ai jie";
write(fd1write,message,strlen(message)+1);
read(fd2read,message1,100);
printf("son give parent message %s",message1);
}
int main(void)
{
int fd1[2],fd2[2];
int stat_val;
pid_t pid;
if(pipe(fd1))
{
printf("管道1或者管道2创建失败");
exit(0);
}
if(pipe(fd2))
{
printf("管道2创建失败哦~");
exit(0);
}
pid=fork();
switch(pid){
case -1:
printf("进程没有创建成功");
exit(0);
case 0:
printf("儿子进程");
close(fd1[1]);
close(fd2[0]);
sondo(fd1[0],fd2[1]);
exit(0);
default:
printf("父亲进程");
close(fd1[0]);
close(fd2[1]);
parentdo(fd1[1],fd2[0]);
exit(0);
}
}