可以在Linux上跨用户使用POSIX消息队列吗?

时间:2009-12-09 18:49:13

标签: c++ linux posix message-queue

我已经实现了POSIX消息队列。 在听众方面,我打开这样的队列:

mqdes = mq_open(s_mailbox_name.c_str(), O_RDONLY | O_CREAT, S_IRWXU | S_IRWXG | S_IRWXO, NULL);

在发件人方面,我正在打开这样的队列:

mqdes = mq_open(m_s_mailbox_name.c_str(), O_WRONLY);

两者的字符串相同,我们称之为/foobox

现在,当我将发送者和接收者作为盒子上的同一个用户运行时,一切都运行良好。但是,如果发送方和接收方是2个不同的用户,则接收方无法打开队列。我认为这不会是一个问题,因为我打开队列为0777,所以每个人都可以RWX。

有什么明显我做错了吗?或者这是不可能的(请不要让它成为这个)

由于

1 个答案:

答案 0 :(得分:6)

检查 umask

来自man mq_open:“权限设置会屏蔽进程umask。”