2009-12-09 57 views
5

我已經實現了一個POSIX消息隊列。 在監聽方面,我打開隊列是這樣的:Linux上可以使用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

現在,當我運行發件人和接收者作爲箱子上的同一用戶,一切正常。但是,如果發送者和接收者是兩個不同的用戶,則接收者無法打開隊列。我會認爲這不會是一個問題,因爲我打開隊列爲0777以上,所以每個人都可以RWX。

有什麼明顯的我做錯了嗎?或者,這是不可能的(請不要讓它成爲這一個)

感謝

回答

6

檢查的umask

man mq_open:「權限設置對進程umask進行了屏蔽。」

+2

你是我的英雄,謝謝:D,我現在終於可以離開工作了。 – Salgar 2009-12-09 19:03:12

+0

不客氣。祝你有個愉快的夜晚。 – 2009-12-09 19:04:29

相關問題