- 3
- 0
- 约1.73千字
- 约 18页
- 2018-03-14 发布于天津
- 举报
教学课件讲义PPT教学教案培训资料医学中小学上课资料
第十章进程间通信;进程间通信IPC(InterProcess Communication)是一种进程之间交换信息的一种技术,IPC表示各种进程通信方式的统称
IPC的类型有管道、消息队列、信号量、共享存储、网络等
并不是所有的系统都支持所 有的进程间通信方式;半双工管道简称管道,它是UNIX IPC的最老形式,是所有的UNIX系统都支持的IPC
管道有两种限制,一是半双工,数据只能在一个方向上流动,二是它们只能在具有共同祖先的进程间使用。
流管道没有第一种限制,FIFO和命名管道没有第二种限制
管道的创建
;在单进程中使用管道没有意义,管道通常使用在父子进程间进行通信
fork函数的子进程继承父进程打开的文件描述符,包括管道,在父子进程中各关闭管道的一端就能建立起一条父子进程的通道
父子进程关闭的管道端决定了通道的方向
;对管道的读写操作与文件IO相同接口
当读一个写端已被关闭的管道时,在所有数据都被读取后,read返回0,表示达到文件结束,而不返回EOF,因为写端的进程未终止
当写一个读端已被关闭的管道时,则产生信号SIGPIPE,如果忽略或捕捉该信号,则write函数出错返回,errno置为EPIPE
写管道有最大 缓冲,超过时有可能在多进程写时发生数据穿插;因为常见的操作是创建一个连接到另一个进程的管道,然后读其输入或向其发送输入,所以标准IO提供一组函数实现此功能,它创
原创力文档

文档评论(0)