2009-12-09 9 views
5

मैंने एक पॉज़िक्स संदेश कतार लागू की है। इस तरफक्या 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 के रूप में खोल रहा हूं ताकि हर कोई आरडब्ल्यूएक्स कर सके।

क्या कुछ स्पष्ट है कि मैं गलत कर रहा हूं? या यह संभव नहीं

धन्यवाद

उत्तर

6

चेक umask (कृपया इसे इस एक हो नहीं है) है।

man mq_open से: "अनुमति सेटिंग्स को प्रक्रिया umask के खिलाफ मुखौटा किया जाता है।"

+2

आप मेरे नायक हैं, धन्यवाद: डी, ​​मैं अंततः काम छोड़ सकता हूं। – Salgar

+0

आपका स्वागत है। आपकी शाम अच्छी बीते। –

संबंधित मुद्दे