有名管道:它可以使互不相关的两个进程彼此通信。该管道可以通过路径来指出,并且在文件系统中是可见的。在建立了管道之后,两个进程就可以把它当作普通文件一样进行读写操作,使用非常方便。不过值得
注意的是,FIFO是严格地遵循先进先出规则的,对管道及FIFO的读总是从开始处返回数据,对它们的写则把数据添加到末尾,它们不支
持lseek()等文件定位操作。小知识:用户可以使用”mknod“管道名“p”来创建有名管道!
open():打开函数;read()读取函数;write()写函数;close()关闭函数;
读进程:
若管道是阻塞打开,且当前FIFO内没有数据,则对读进程而言将一直阻塞到有数据写入。
若该管道是非阻塞打开的,则不论FIFO内是否有数据,读进程都会立即执行读操作。即如果FIFO内没有数据,则读函数讲立即返回0;
写进程:
若该管道是阻塞打开,则写操作讲一直阻塞到数据可以被写入;
若改管道是非阻塞打开而不能写入全部数据,则读操作进行部分写入或调用失败。
消息对列:消息对列的实现包括创建或打开对列、添加信息、读取信息、控制信息4种操作。
msgget():创建或打开对列,创建的消息对列数量会收到系统消息对列的限制;
msgsnd():添加函数,把消息添加到已打开消息对列末尾;
msgrcv():读取函数,把消息从消息对列种取走,可以指定取走某一种消息;
msgctl():控制函数,可以完成多项功能;