/*===============================================
* 文件名称:pipe.c
* 创 建 者:
* 创建日期:2022年08月29日
* 描 述:
================================================*/
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
int pfd[2]={0};//定义两个无名管道数组
int ret=pipe(pfd);//无名管道
if(ret<0)
{ perror("pipe");
exit(-1);
}
pid_t pid= fork();//创建子进程
if(pid<0)
{
perror("fork");
exit(-1);
}
if(pid==0)
{
int ret;
char buf[64]={0};
fgets(buf,64,stdin);
ret= write(pfd[1],buf,strlen(buf));
if(ret<0)
{
perror("write");
exit(-1);
}
}
else //父进程读入数据
{
int ret;
char buf[64]={0};
ret=read(pfd[0],buf,64);
if(ret<0)
{
perror("read");
exit(-1);
}
printf("read %dbyte:%s",ret,buf);//打印输出
}
return 0;
}