1 #include<stdio.h>
2 #include<stdlib.h>
3 #include<unistd.h>
4 #include<string.h>
5
6 int main(){
7 int fd[2];//初始化两个文件描述符fd[0]代表的是管道的读端,fd代表写操作
8 pid_t pid;//创建有血缘关系的进程
9 int ret=pipe(fd);//建立管道
10 if(ret==-1){
11 perror("Pipe:");//打印输出错误的信息
12 exit(1);//退出程序
13 }
14 pid=fork();//创建进程
15 if(pid==-1){
16 perror("Fork");//打印输出错误的信息
17 exit(1);//退出程序
18 }else if(pid==0){//子进程的话,读数据,关闭写
19 close(fd[1]);//关闭写
20 char buff[1024];//定义一个字符串缓冲数组
21 ret=read(fd[0],buff,1024);//从父进程中读取数据
22 write(STDOUT_FILENO,buff,ret);//打印输出到屏幕上
23 }else{
24 close(fd[0]);//关闭读
25 write(fd[1],"you are my destiny!",strlen("you are my destiny!"));//向子进程写入
26 }
27
28 return 0;
29 }