频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

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

来源: 作者:佚名 出处:巧巧读书 2008-04-10 进入讨论组

    功能描述:

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

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

更多文章 更多内容请看Office技巧专区系统优化大全系统安全设置专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章