· [Java论坛][安全论坛][数据库论坛][操作系统论坛]
· [访谈] 网银安全系列访谈之:惊心动魄网银故事
· [热点专题] 网银安全系列 3G上网卡巡礼
· [订阅IT技术周刊][IT资源下载专区][病毒求助专区]
· [热点] 跨站脚本十二问 四步防范Conficker
· [热点] Windows 7 RC版公开下载 憾缺中文版

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

发布时间:2008.04.10 06:21     来源:赛迪网    作者:korn

功能描述:

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

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:需要建立消息队列,但已达到系统的限制

(责任编辑:云子)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· Redhat Linux系统配置大量IP地址的方法 (04-09) · 如何提高Linux系统应对短连接的负载能力 (04-09)
· 新手学堂:Linux Shell下删除目录的命令 (04-09) · *.src.rpm包与*.tar.gz 、*.rpm包的区分 (04-09)
· 系统维护:在Linux下修复损坏的inittab (04-09) · 分析评论 开源开发模式能否适合商业用户 (04-09)
· 高手进阶:Redhat Linux上vsftpd编译安装 (04-08) · 如何让Fedora Linux系统能够打开RAR文件 (04-08)
· Ubuntu 7.10系统配置vnc4server远程桌面 (04-08) · 解决Intel HD Audio Controller声卡问题 (04-08)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
资讯 通信 IT产品 IT技术 信息化
2009第七届中国电脑商年会直播
·创业投资系列访谈:产业..
·特别策划:视频网站系列..
·专题:网游虚拟货币新规..
专题:6月上市手机新品回顾及7月新机展望
·2009年中国电信业信息化..
·专题:把iPhone 3GS“解..
·WAPI重启国际标准进程 ..
专题:09年中盘点-联想春季打印机新品回顾
·InfoComm 2009 视听与集..
·网游背后的故事 网游服..
·[专题]联想ThinkPad T40..
BizSpark:微软为技术创业企业点燃火花
·社区活动:我的IT求知生..
·访谈:内网安全2009系列..
·安全访谈:网银安全之Sa..