[Linux] 第 13 章 进程间通信 : 管道

第 13 章 进程间通信 : 管道 
 第11章 我们看到进程间发送消息的非常简单的方法 :使用信号。 
     但是传送的信息只限于一个信号值。 
 大纲 { 
  *1 管道的定义 
  *2 进程管道 
  *3 管道调用 
  *4 父进程与子进程 
  *5 命名管道 : FIFO 
  *6 客户 / 服务器架构 
 } 
 *1, 什么是管道? 
   当从一个进程连接数据流到另一个进程时,我们使用术语管道(Pipe). 
   我们通常把一个进程的输出通过管道连接到另一个进程的输入。 
   cmd1 | cmd2 
   shell所做的工作实际上是对标准输入和标准输出进行了重新连接,使数据流 
   从键盘输入通过两个命令最终输出到屏幕。 
 *2, 进程管道 
   最简单的在两个程序之间传递数据的方法就是使用popen和pclose函数了。  
 *4 父进程和子进程
   在接下来对pipe调用的研究中,我们将学习如何在一个子进程中运行与其父进程
   完全不同的另外一个程序。我们用exec调用来完成这一工作。
  管道关闭之后的读操作
 *5 命名管道 : FIFO
  至此,我们还只能在相关的程序之间传递数据,即这些程序是由一个共同的祖先进程
  启动的。但我们想在不相关的进程之间交换数据,可以用FIFO来完成这项工作。
 总结 : 这章我们介绍了如何使用管道在进程之间传递数据。首先,通过popen或pipe
   调用创建未命名的管道,并且讨论了如何使用管道和dup调用把数据从一个程序传递
   到另一个程序的标准输入。介绍:管道在不相关的进程之间传递数据,最后:实现了
   一个简单的客户/服务器例子,FIFO的使用不仅向我们提供了进程间的同步,还提供
  了双向数据流。
原文地址:https://www.cnblogs.com/robbychan/p/3787037.html