首先来波基本语法
1、创建消息队列
消息队列是随着内核的存在而存在的,每个消息队列在系统范围内对应唯一的键值。要获得一个消息队列的描述符,
只需要提供该消息队列的键值即可,该键值通常由函数ftok返回。
key_t ftok(const char *pathname, int proj_id);
ftok函数根据pathname和proj_id这两个参数生成唯一的键值。
pathname:must refer to an existing, accessible file,在系统中一定要存在,且进程有访问权限。
proj_id:的取值范围为1-255
ftok返回的键值可以提供给函数msgget,
msgget根据这个键值创建一个新的消息队列或者访问一个已存在的消息队列。
int msgget(key_t key, int msgflg);
参数key即为ftok函数的返回值。msgflag是一个标志参数。
以下是msgflg的可能取值:
IPC_CREAT:如果内核中不存在键值与key相等的消息队列,则新建一个消息队列;如果存在这样的消息队列,返回消息队列的描述符。
IPC_EXCL:和IPC_CREAT一起使用,如果对应键值的消息队列已经存在,则出错,返回-1