Linux系统调用 Msgget()
2009-10-04 10:29
190 查看
功能描述:
获取与某个键关联的消息队列标识。消息队列被建立的情况有两种:
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://tech.ccidnet.com/art/3067/20080409/1414901_1.html
获取与某个键关联的消息队列标识。消息队列被建立的情况有两种:
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://tech.ccidnet.com/art/3067/20080409/1414901_1.html
相关文章推荐
- Linux系统调用--fcntl函数详解
- 汇编学习——使用Linux系统调用
- 走马观花: Linux 系统调用 open 七日游(四)
- Linux系统调用讲义
- zz修改Linux内核增加系统调用
- UNIX环境高级编程——Linux系统调用列表
- linux上内存泄漏查看方法之——让系统调用自己定义的new
- linux uname系统调用
- Linux系统调用与文件I/O(一)
- Linux 2.6 劫持系统调用 隐藏进程
- Linux添加系统调用【傻瓜版】
- linux系统Qt调用opencv的编译过程(ubuntu14.04 kylin+qt5.5+opencv2.4.10)
- ARM Linux系统调用的原理
- linux-系统调用01-strace工具的使用
- Linux系统调用列表
- Linux 文件操作的系统调用接口
- Linux执行ls,会引起哪些系统调用
- Linux系统调用列表
- Linux 内核0.11 系统调用详解(上)
- Linux内核设计基础(七)之系统调用