Chinaunix首页 | 论坛 | 博客
  • 博客访问: 49085
  • 博文数量: 45
  • 博客积分: 1112
  • 博客等级: 少尉
  • 技术积分: 575
  • 用 户 组: 普通用户
  • 注册时间: 2013-01-03 11:47
文章分类

全部博文(45)

文章存档

2013年(45)

我的朋友

分类: LINUX

2013-01-08 23:49:32

第 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的使用不仅向我们提供了进程间的同步,还提供
  了双向数据流。
阅读(147) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~