《Unix/Linux编程实践教程》之管道

2014-11-24 09:10:17 · 作者: · 浏览: 0

管道式内核中的一个单向的数据通道,用来连接一个进程的输出和另一个进程的输入。管道有一个读取端和一个写入端。


创建管道的系统调用为 pipe ,函数原型是 result=pipe(int array[2]); 调用 pipe 来创建管道并将其两端连接到两个文件描述符。 array[0] 为读数据端的文件描述符, array[1] 是写数据段端的文件描述符。


可以将 fork 和 pipe 结合起来写个小程序, fork 出来的子进程每 5 秒向管道里写数据,父进程每 1 秒向管道里写数据,同时将管道里现有的数据读出来,输出到 stdout 。


相关阅读:


例子代码如下:


需要注意的是:当进程试图从管道读数据时,进程被挂起直到数据被写入管道。