消息队列
Linux操作系统内核维护消息队列,应用层调用系统调用即可使用 
System V 消息队列 API
c
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
创建消息队列
key:唯一标识新创建的消息队列
msgflg: 一些标志信息
IPC_CREAT:根据key判断对应的共享内存段是否存在,如果不存在则创建,如果存在则返回已经存在的共享内存段
IPC_EXCL: 和IPC_CREAT一起用,如果已经存在key对应的共享内存则失败
int msgget(key_t key, int msgflg)
发送消息
msqid: 消息队列标识ID
msgp: 要发送的数据
msgsz:发送消息的大小
msgflg: IPC_NOWAIT(异步发消息)
int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg)
接收消息
msqid: 消息队列标识ID
msgp:要接收的数据
msgsz:接收消息的大小
msgtype:等于 0, 那么读取消息队列中的第一条消息.
大于 0, 那么读取消息队列中的第 msgtype 条消息
小于 0, 那么读取小于等于msgtype绝对值最小的 msgtype 的消息
msgflg: IPC_NOWAIT(异步收消息)
ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtype, int msgflg)