mq_open错误:泊坞窗容器中的参数无效

时间:2018-12-19 06:52:17

标签: docker posix mq docker-container

我想打开max_msgs为500的posix队列。我可以在本地计算机上执行此操作。 但是相同的代码在容器中不起作用。

在容器中,当attr.mq_maxmsg设置为大于10时,mq_open()将错误作为无效参数。由于默认值为10,要增加该值,进程应享有特权,因此我已设置了可执行文件的sbit和所有者的根。尽管如此,它仍会给出错误并表现出好像该进程没有特权的行为。 以下是我的代码段:

struct mq_attr attr;
attr.mq_maxmsg = 11;
attr.mq_msgsize = 500;
mode_t omask;
omask = umask(0);
mqd_t mq_des = mq_open("/1test", O_CREAT | O_RDWR | O_NONBLOCK, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH, &attr);

umask(omask);
if( -1 == mq_des )
{
      perror("Error: cPosixQueue:init: " );
      return -1;
}

0 个答案:

没有答案