#include
#include
int main(void)
{
int pipe_fd[2];//pipe_fd[1]---pipe头部,读; pipe_fd[0]---pipe尾部,写;
pid_t pid;
char buf[1024];
int ret;
if(pipe(pipe_fd) < 0)
{
printf("pipe creat error\n");
return -1;
}
if((pid = fork()) < 0)
printf("fork error\n");
else if(pid == 0)//子进程
{
printf("\n");
close(pipe_fd[1]);
sleep(2);
if((ret = read(pipe_fd[0], buf, 1024)) > 0)
printf("child read form pipe is %s\n", buf);
close(pipe_fd[0]);
exit(0);
}
else if(pid > 0)//父进程
{
close(pipe_fd[0]);
if(write(pipe_fd[1], "Hello", 5) != -1)
printf("parent writed Hello\n");
if(write(pipe_fd[1], "Pipe", 5) != -1)
printf("parent writed Pipe\n");
close(pipe_fd[1]);
}
wait(NULL);
return 0;
}