实用技巧:Linux系统调用Msgget函数详解
2008-04-10 11:57:23 来源:WEB开发网核心提示: 功能描述: 获取与某个键关联的消息队列标识,消息队列被建立的情况有两种: 1.如果键的值是ipC_PRIVATE,实用技巧:Linux系统调用Msgget函数详解, 2.或者键的值不是IPC_PRIVATE,并且键所对应的消息队列不存在,而且不拥有CAP_IPC_OWNER权能 EEXIST:key指定的消息队列已存
功能描述:
获取与某个键关联的消息队列标识。消息队列被建立的情况有两种:
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:需要建立消息队列,但已达到系统的限制
- ››linux下两台服务器文件实时同步方案设计和实现
- ››Linux文件描述符中的close on exec标志位
- ››Linux下管道使用的一些限制
- ››Linux 误删/usr/bin 解决方法
- ››linux 添加新用户并赋予sudo执行权限
- ››linux常用软件安装方法
- ››Linux的分区已经被你从Windows中删除,系统启动后...
- ››linux enable命令大全
- ››Linux实现基于Loopback的NVI(NAT Virtual Interfa...
- ››Linux远程访问windows时,出现"连接被对端重...
- ››linux中使用head命令和tail命令查看文件中的指定行...
- ››linux swap 分区调控(swap分区 lvm管理)
赞助商链接