下载此文档

第九章 管道.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
  • 上传人ayst8776
  • 文件大小155 KB
  • 时间2019-01-09