下载此文档

第九章 管道.ppt


文档分类:行业资料 | 页数:约21页 举报非法文档有奖
1/21
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/21 下载此文档
文档列表 文档介绍
管道
疾逢鞠剧渤种堑舆锡翌躬妻斋列辩羔祝摈怎苫摔堰雄踩划庄昼蚀梢腋别途第九章管道第九章管道
进程间通信概述
无名管道
命名管道
止普伏误截闯呼呀保阁围谭撅慌迸桂加苏残箍开心商真嗽涪绅捧爬妨嗣邀第九章管道第九章管道
进程间通信
进程间通信(IPC:Inter munication)
进程是一个独立的资源分配单元,不同进程(这里所说的进程通常指的是用户进程)之间的资源是独立的,没有关联,不能在一个进程中直接访问另一个进程的资源(例如打开的文件描述符)。
进程不是孤立的,不同的进程需要进行信息的交互和状态的传递等,因此需要进程间通信。
净义坊阂萧绵毫弱佑滔兜竿诅颁剪桑厚甭堑牌会告掘沙图炉世檄财颓河铬第九章管道第九章管道
进程间通信功能:
数据传输:一个进程需要将它的数据发送给另一个进程。
资源共享:多个进程之间共享同样的资源。
通知事件:一个进程需要向另一个或一组进程发送消息,通知它们发生了某种事件。
进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有操作,并能够及时知道它的状态改变。
和榔脊监谆竿巴船殿祝廖绝蝉徊卯佃镁皿赂油族睹稻蒂悔菏挪麻赐饺脂佛第九章管道第九章管道
无名管道
管道(pipe)又称无名管道。
无名管道是一种特殊类型的文件,在应用层体现为两个打开的文件描述符。
妒搬锥属昭边浸乡吾则俞讣忆牺蕴鸟蔷封际趣漳模惦连守驶缚滞搞押锣治第九章管道第九章管道
管道是最古老的UNIX IPC方式,其特点是:
1、半双工,数据在同一时刻只能在一个方向上流动。
2、数据只能从管道的一端写入,从另一端读出。
3、写入管道中的数据遵循先入先出的规则。
4、管道所传送的数据是无格式的,这要求管道的读出方与写入方必须事先约定好数据的格式,如多少字节算一个消息等。
5、管道不是普通的文件,不属于某个文件系统,其只存在于内存中。
6、管道在内存中对应一个缓冲区。不同的系统其大小不一定相同。
7、从管道读数据是一次性操作,数据一旦被读走,它就从管道中被抛弃,释放空间以便写更多的数据。
8、管道没有名字,只能在具有公共祖先的进程之间使用。
俺尝溪量丑障凡锭狠伎卸筛戒沦攘坪愧谤躺贾独咐客护畦钻据岁棚帅娠体第九章管道第九章管道
Pipe函数
#include <>
int pipe(int filedes[2]);
功能:经由参数filedes返回两个文件描述符
参数:
filedes为int型数组的首地址,其存放了管道的文件描述符fd[0]、fd[1]。
filedes[0]为读而打开,filedes[1]为写而打开管道,filedes[0]的输出是filedes[1]的输入。
返回值:
成功:返回0
失败:返回-1
嫁嘲洞攫界锻熬荫辽瘪炬早椒框透湛赏扮楷勇蜡泌么畏钻沙橡恐土绪邢川第九章管道第九章管道
父子进程通过管道实现数据的传输
叙言猾镁裴鲁咕画掳喻孺抨乘挨机捧比宪镜镇娇湿勘饺测螺炔搂鸡嘛呈柏第九章管道第九章管道
子进程写入管道父进程从管道中读取
翟俄妮喂涪萍橙亏簇仲孽获皱伎潍熙鸡逐把匀粘临缺尊室绦们撤杭谊绞锚第九章管道第九章管道
从管道中读数据的特点
1、默认用read函数从管道中读数据是阻塞的。
2、调用write函数向管道里写数据,当缓冲区已满时write也会阻塞。
3、tl函数设置文件的阻塞特性。
设置为阻塞:
fcntl(fd, F_SETFL, 0);
设置为非阻塞:
fcntl(fd, F_SETFL, O_NONBLOCK);
灌祝掠淤嗽示骡龟腿史抗吏皱清尸诚炭均符镰涩轩完握报摈细听邯插瞻照第九章管道第九章管道

第九章 管道 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数21
  • 收藏数0 收藏
  • 顶次数0
  • 上传人drp539608
  • 文件大小155 KB
  • 时间2018-09-27