快速业务通道

实用技巧:Linux系统调用Msgget函数详解

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-07

功能描述:

获取与某个键关联的消息队列标识.消息队列被建立的情况有两种:

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_qnum,msg_lspid,msg_lrpid,msg_stime和msg_rtime设为0;

msg_ctime设为当前时间;

msg_qbytes设为系统限制MSGMNB.

用法:

#include

#include

#include

int msgget(key_t key, int msgflg);

参数:

key:消息队列关联的键.

msgflg:消息队列的建立标志和存取权限.

返回说明:

成功执行时,返回消息队列标识值.失败返回-1,errno被设为以下的某个值

EACCES:指定的消息队列已存在,但调用进程没有权限访问它,不拥有CAP_IPC_OWNER权能

EEXIST:key指定的消息队列已存在,而msgflg中同时指定IPC_CREAT和IPC_EXCL标志

ENOENT:key指定的消息队列不存在同时msgflg中不指定IPC_CREAT标志

ENOMEM:需要建立消息队列,但内存不足

ENOSPC:需要建立消息队列,但已达到系统的限制

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号