标签:lib fork com 原型 函数 ges int src blog
1管道是什么:
水管子大家知道,有两端,在此一端用来读一端用来写,其中一端的输出作为另外一端的输入。
2 函数原型
int pipe(int pipefd[2]);//参数中分别代表的两端
3 例子:管道一端作为写 另外一端作为读 父子进程实现
1 #include <unistd.h> 2 #include <stdio.h> 3 #include <stdlib.h> 4 5 int main() 6 { 7 pid_t pid; 8 int temp; 9 int pipedes[2]; 10 char s[14]="letgo"; 11 char d[14]; 12 if((pipe(pipedes))==-1) 13 { 14 perror("pipe"); 15 exit(EXIT_FAILURE); 16 } 17 18 if((pid=fork())==-1) 19 { 20 perror("fork error"); 21 exit(EXIT_FAILURE); 22 }else if(pid==0) 23 { 24 //printf(“子进程写数据到管道读端”); 25 printf("子进程写数据到管道读端\n"); 26 if((write(pipedes[1],s,14))==-1) 27 { 28 perror("write"); 29 exit(EXIT_FAILURE); 30 }else 31 { 32 printf("所写入得数据是%s\n",s); 33 exit(EXIT_SUCCESS); 34 } 35 }else if(pid>0) 36 { 37 sleep(2);//等待子进程结束 38 printf("父进程从管道读数据\n"); 39 if((read(pipedes[0],d,14))==-1) 40 { 41 perror("read"); 42 exit(EXIT_FAILURE); 43 } 44 printf("从管道读端读出得数据是%s\n",d); 45 } 46 47 return 1; 48 }
运行结果:
标签:lib fork com 原型 函数 ges int src blog
原文地址:http://www.cnblogs.com/lanjianhappy/p/6875896.html