#include <stdio.h>
#include <unistd.h>
#include <errno.h>
#include <sys/types.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char const *argv[])
{
int fd[2];
if(pipe(fd) == -1)
{
perror("创建管道失败");
exit(1);
}
pid_t ret = fork();
if(ret == 0)//子进程 写
{
char s[20] = {'\0'};
scanf("%s",s);
int ret_value = write(fd[1], s, strlen(s));
if(ret_value>0)
{
printf("子进程写入成功!字节数:%d 写入的内容:%s\n", ret_value, s);
}
}
if(ret >0)//父进程 读
{
char s[20];
bzero(s,20);
int ret_value = read(fd[0], s , 20);
if(ret_value>0)
{
printf("父进程读取成功!字节数:%d 读取的内容:%s\n", ret_value, s);
}
}
return 0;
}
运行结果: