C中的流和管道有什么区别

时间:2013-07-17 14:27:29

标签: c multiprocessing ipc

在进程间通信(IPC)中,需要与OS提供的每个进程“PIPE”进行通信。并且需要将数据从输入单元传输到程序或从程序传输到输出单元“流”,操作系统应该提供。

以下是我的问题。

  1. PIPE和Stream之间是否存在差异
  2. 如果它们不同,因为它们的功能非常相似,仅使用“PIPE”或“Stream”传输数据不是更有用吗?

1 个答案:

答案 0 :(得分:1)

管道是两个进程之间的通信通道。它有一个写作端和一个读取端。当打开这两个结尾时,一个人得到(写或读)流。因此,在第一次近似中,管道的每一端都有一条流。

所以要设置IPC,你应该

  • 使用函数pipe创建管道。这返回两个int来标识管道的两端;
  • 通常fork来获取两个进程;
  • 打开管道的每一端(通常在分叉后的不同过程中)并获得两个相应的流。

请参阅http://www.gnu.org/software/libc/manual/html_node/Creating-a-Pipe.html