编程接口指南

初始化消息队列

msgget(2) 可初始化新的消息队列, 并且还可返回对应于密钥参数的队列的消息队列 ID (msqid)。 作为 msgflg 参数传递的值必须为八进制整数,并具有该队列的权限和控制标志的设置。

MSGMNI 内核配置选项确定内核支持的单一消息队列数的最大个数。如果超过此限制,msgget(2) 会失败。

以下代码说明了 msgget(2)

#include <sys/ipc.h>

 #include <sys/msg.h>



 ...

 	key_t	key;		/* key to be passed to msgget() */

 	int	msgflg,	/* msgflg to be passed to msgget() */

 			msqid;	/* return value from msgget() */

 	...

 	key = ...

 	msgflg = ...

 	if ((msqid = msgget(key, msgflg)) == -1)

 	{

 		perror("msgget: msgget failed");

 		exit(1);

 	} else

 		(void) fprintf(stderr, "msgget succeeded");

 	...