首页 > 代码库 > linux中用无名管道进行文件的读写
linux中用无名管道进行文件的读写
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 }
运行结果:
linux中用无名管道进行文件的读写
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。