Advertisement

Linux进程通信:管道与FIFO

阅读量:

内容参考自:《Unix网络编程 卷2:进程间通信》

一、管道(pipe)

最初的形式就是Unix IPC管道。因为管道本身没有标识,在实际应用中也只能用于那些存在亲缘关系的进程间的通信。

1、创建管道

linux为我们提供了pipe()函数来创建管道,函数定义如下:

复制代码
 #include <unistd.h>

    
 int pipe(int pipefd[2]);
    
  
    
 //示例:
    
 int pipefd[2]
    
 if(pipe(pipefd) < 0)
    
     printf("Filed to create pipe.");

man pages(命令 $ man pipe)的作用可以通过以下方式理解:通过使用 pipe() 函数,在系统内核中创建了一个专门用于实现互操作性通信(IPC)的通道。当函数调用成功时会返回状态码0;如果出现错误则返回非零的状态码。该通道的一个显著特点是能够同时处理多个进程之间的通信请求,并通过指定参数来控制其读写方向及两端的数据传输方向。其中参数 pipefd 用于返回管道读写端的文件描述符,在实际应用中通常会被指定为两个相邻文件描述符地址:pipefd[0] 表

全部评论 (0)

还没有任何评论哟~