在C语言中,流和管道有什么区别?

3
在进程间通信(IPC)中,需要使用操作系统提供的“管道”来与每个进程进行通信。而要将数据从输入单元传输到程序或从程序传输到输出单元,则需要使用操作系统提供的“流”。
以下是我的问题:
1. 管道和流之间有什么区别吗? 2. 如果它们不同,因为它们的功能非常相似,只使用“管道”或“流”来传输数据是否更有用?
1个回答

3
管道是两个进程之间的通信渠道,它有写入端和读取端。当打开其中一个端时,会获得一个(写入或读取)流。因此,在第一次近似中,管道的每个端点都有一个流。
因此,要设置IPC,您应该:
  • 使用函数pipe创建一个管道。这将返回标识管道两端的两个int值;
  • 通常在fork(分叉)以获取两个进程;
  • 打开管道的每个端点(通常在分叉后的不同进程中),并获取两个相应的流。
请参见http://www.gnu.org/software/libc/manual/html_node/Creating-a-Pipe.html

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接