IPC——消息队列

阅读更多

消息队列的基本概念

Unix早期通信机制之一的信号机制能够传送的信号量有限,管道则只能传送无格式的字符流,这无疑会给应用程序开发带来不便,而消息队列则克服了这些缺点。

消息队列就是一个消息的链表,可以把消息看成一个记录,具有特定的格式。进程可以向队列中按照一定的规则添加新消息;另一些进程则可以从消息队列中读取消息。

目前主要有两类消息队列:

一.POSIX消息队列

二.System V消息队列

System V消息队列目前被大量使用,System V消息队列是随着内核持续的,只有在内核重启,或者人工删除时,该消息队列才会被删除。

消息队列的内核持续性要求每个消息队列都在系统范围内对应唯一的键值,所以要获得一个消息队列的描述字,必须提供该消息队列的键值。

获取键值:

#include

#include

key_t ftok(char * pathname, char proj)

功能:返回文件名对应的键值。

pathname:文件名

proj:项目名(不为零即可)

创建消息

传递消息

接收消息

你可能感兴趣的:(Unix)