linux中用无名管道进行文件的读写

Posted L的存在

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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中用无名管道进行文件的读写的主要内容,如果未能解决你的问题,请参考以下文章

linux进程间通信之一:无名管道

linux 进程间通信机制(IPC机制)- 管道

linux下编程——操作系统——管道通信

linux之无名管道

linux 管道实现解析

无名管道通讯编程