今天我们来分享一下进程通行(IPC)-实现消息队列。
消息队列由操作系统提供一个链表(也就是说消息队列需要操作系统接口),以链表节点为一个数据块(有类型),基于消息,每条消息有上限且消息的总数也是有限的。
与管道通行的区别是,管道通信以字节流为通信单位,消息队列是以有类型的数据块为通信单位。
消息队列实现原理:
一个进程建立消息队列(本文为serves),另一个进程(本文为client)打开该消息队列即可。此后两个进程可以相互读写以此来进行通信。
消息队列实现步骤:
1》建立(打开)消息队列
2》发送消息/接收消息
3》接收消息/发送消息
4》销毁消息队列(谁建立谁销毁)
进行传递消息的数据块(结构体)如下示:
struct msgbuf{