功能描述:
获取和某个键关联消息队列标识消息队列被建立情况有两种:
1.如果键值是IPC_PRIVATE.
2.或者键值不是IPC_PRIVATE并且键所对应消息队列不存在同时标志中指定IPC_CREAT.
如果新消息队列被建立它关联msqid_ds数据结构化如下:
msg_perm.cuid 和 msg_perm.uid设为者有效用户标志;
msg_perm.cgid 和 msg_perm.gid设为者有效用户组标志;
msg_perm.mode最低9个位设为msgflg最低9个位;
msg_qnummsg_lspidmsg_lrpidmsg_stime和msg_rtime设为0;
msg_ctime设为当前时间;
msg_qs设为系统限制MSGMNB.
使用方法:
#
#
#
msgget(key_t key msgflg);
参数:
key:消息队列关联键
msgflg:消息队列建立标志和存取权限
返回介绍说明:
成功执行时返回消息队列标识值失败返回-1errno被设为以下某个值
EACCES:指定消息队列已存在但进程没有权限访问它而且不拥有CAP_IPC_OWNER权能
EEXIST:key指定消息队列已存在而msgflg中同时指定IPC_CREAT和IPC_EXCL标志
ENOENT:key指定消息队列不存在同时msgflg中不指定IPC_CREAT标志
ENOMEM:需要建立消息队列但内存不足
ENOSPC:需要建立消息队列但已达到系统限制
最新评论