14-5张震

博客园 首页 联系 订阅 管理

有名管道:它可以使互不相关的两个进程彼此通信。该管道可以通过路径来指出,并且在文件系统中是可见的。在建立了管道之后,两个进程就可以把它当作普通文件一样进行读写操作,使用非常方便。不过值得

注意的是,FIFO是严格地遵循先进先出规则的,对管道及FIFO的读总是从开始处返回数据,对它们的写则把数据添加到末尾,它们不支

持lseek()等文件定位操作。小知识:用户可以使用”mknod“管道名“p”来创建有名管道!

open():打开函数;read()读取函数;write()写函数;close()关闭函数;

读进程:

若管道是阻塞打开,且当前FIFO内没有数据,则对读进程而言将一直阻塞到有数据写入。

若该管道是非阻塞打开的,则不论FIFO内是否有数据,读进程都会立即执行读操作。即如果FIFO内没有数据,则读函数讲立即返回0;

写进程:

若该管道是阻塞打开,则写操作讲一直阻塞到数据可以被写入;

若改管道是非阻塞打开而不能写入全部数据,则读操作进行部分写入或调用失败。

消息对列:消息对列的实现包括创建或打开对列、添加信息、读取信息、控制信息4种操作。

msgget():创建或打开对列,创建的消息对列数量会收到系统消息对列的限制;

msgsnd():添加函数,把消息添加到已打开消息对列末尾;

msgrcv():读取函数,把消息从消息对列种取走,可以指定取走某一种消息;

msgctl():控制函数,可以完成多项功能;

posted on 2017-06-12 20:02  Zの²  阅读(119)  评论(1编辑  收藏  举报