如何创建一个 POSIX 共享消息队列而不将其创建为仅限根访问权限?
How can I create a POSIX shared message queue without it created as root access only?
我正在使用 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 命令显示。
如何创建 POSIX 消息队列供 Ubuntu 18.04 中的用户级应用程序使用?
你对函数的参数是错误的。您将 O_WRONLY
作为 模式 传递,但它是一个标志,就像另一个 O_
* 一样。相反,你应该这样做:
mq_open("/myqueue", O_CREAT | O_WRONLY, 0600, NULL);
或您想要的其他文件访问模式 (0600
= rw-------
)。
我正在使用 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 命令显示。
如何创建 POSIX 消息队列供 Ubuntu 18.04 中的用户级应用程序使用?
你对函数的参数是错误的。您将 O_WRONLY
作为 模式 传递,但它是一个标志,就像另一个 O_
* 一样。相反,你应该这样做:
mq_open("/myqueue", O_CREAT | O_WRONLY, 0600, NULL);
或您想要的其他文件访问模式 (0600
= rw-------
)。