मैं कठिनाई सीसी में काम करने वाले sem_open पर मुझे एकाधिक कॉल कैसे मिल सकती हैं?
अपने आवेदन की प्रक्रिया में एक लिनक्स आधारित सिस्टम पर काम करने के लिए हो रही Semaphores का एक बहुत हो रही हैं, इस तरह के है:
- आवेदन बच्चे में
- आवेदन कांटे शुरू होता है/पैरेंट
- प्रत्येक प्रक्रिया सेमफोर खोलने के लिए एक आम नाम के साथ
sem_open
का उपयोग करता है।
अगर मैं फोर्किंग से पहले सेमफोर बना देता हूं, तो यह ठीक काम करता है। हालांकि, आवश्यकताएं मुझे ऐसा करने से रोकती हैं। जब मैं दूसरी बार sem_open
पर कॉल करने का प्रयास करता हूं, तो मुझे "अनुमति अस्वीकृत" त्रुटि मिलती है (errno
के माध्यम से)।
क्या यह किसी भी तरह से करना संभव है? या क्या एक प्रक्रिया में सेमफोर खोलने का कोई तरीका है और इसे बाल प्रक्रिया के साथ साझा करने के लिए साझा स्मृति तंत्र का उपयोग किया जाता है?
मैं चार तर्क संस्करण का उपयोग कर रहा था, लेकिन मेरी अनुमतियां गलत थीं। ऐसा लगता है कि 'O_RDWR' उपयोग करने के लिए अनुमति ध्वज नहीं है, हर उदाहरण में दिखाए जाने के बावजूद मुझे मिल सकता है। बहुत बहुत धन्यवाद। –