我正在使用 POSIX mqueue API 创建消息队列:
mq_open("/myqueue", O_CREAT | O_WRONLY, O_WRONLY, NULL)
我还挂载了消息队列对象的目录:
su
mkdir /dev/mqueue
mount -t mqueue none /dev/mqueue
exit
当我运行程序时,消息队列出现在/dev/mqueue 中,并具有以下权限:
---------x
我无法与此消息队列交互,并且它不会通过 ipcs 命令显示。
如何创建供 Ubuntu 18.04 中的用户级应用程序使用的 POSIX 消息队列?
最佳答案
你的函数参数是错误的。您将 O_WRONLY
作为模式传递,但它是一个标志,就像其他 O_
* 一样。相反,你应该这样做:
mq_open("/myqueue", O_CREAT | O_WRONLY, 0600, NULL);
或您想要的其他文件访问模式 (0600
= rw--------
)。
关于c - 如何创建 POSIX 共享消息队列而不将其仅创建为 root 访问权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58480444/