日期:2014-05-16  浏览次数:20652 次

posix消息队列问题???

    mqd_t mqd;
    struct mq_attr mqa;
    mqd=mq_open("/messagetest",O_RDWR | O_CREAT,0644,NULL);
    memset(&mqa,0,sizeof(struct mq_attr));
    mqa.mq_maxmsg=10000;
    mqa.mq_msgsize=8192;
    mq_setattr(mqd,&mqa,&omqa);

想设置消息队列最大消息数,设置不成功,难道消息队列最大消息数就只有10????

------解决方案--------------------
mq_open的最后一个参数可以设置mq_maxmsg和mq_msgsize,mq_setattr只能设置flag
普通用户的权限受到限定,不能超过ulimit的范围,只能往小了设置。root就没有限制了

引用:
    mqd_t mqd;
    struct mq_attr mqa;
    mqd=mq_open("/messagetest",O_RDWR 
------解决方案--------------------
 O_CREAT,0644,NULL);
    memset(&mqa,0,sizeof(struct mq_attr));
    mqa.mq_maxmsg=10000;
    mqa.mq_msgsize=8192;
    mq_setattr(mqd,&mqa,&omqa);

想设置消息队列最大消息数,设置不成功,难道消息队列最大消息数就只有10????