我已经实现了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。
有什么明显我做错了吗?或者这是不可能的(请不要让它成为这个)
由于
答案 0 :(得分:6)
检查 umask 。
来自man mq_open
:“权限设置会屏蔽进程umask。”