स्नातक कक्षा में, हमें धागे के साथ काम पूरा करने के लिए सेमफोर का उपयोग करना पड़ा।sem_init (...): के लिए pshared पैरामीटर क्या है?
हमें sem_init
का उपयोग अन्य sem_ * प्रक्रिया के समूह के साथ करने के लिए निर्देशित किया गया था, लेकिन हमें इनमें से प्रत्येक sem_ * विधियों के विवरण के बारे में अधिक जानकारी नहीं दी गई थी।
प्रोटोटाइप (और हेडर फाइल) sem_init
की the following है:
#include <semaphore.h>
int sem_init(sem_t *sem, int pshared, unsigned int value);
लेकिन मुझे समझ नहीं आता क्या pshared मूल्य के लिए प्रयोग किया जाता है। opengroup.org के अनुसार: pshared
तर्क एक गैर शून्य महत्व है
, तो सेमाफोर प्रक्रियाओं के बीच साझा किया जाता है; इस मामले में, किसी भी प्रक्रिया है कि सेमाफोर
sem
उपयोग कर सकते हैंsem_wait()
,sem_trywait()
,sem_post()
, औरsem_destroy()
ऑपरेशनों को करने केsem
उपयोग कर सकते हैं।
लेकिन मुझे लगता है कि मुझे 1,2, 10, 25, 50000, आदि के बीच का अंतर समझ में नहीं आता है। मुझे लगता है कि यह कह रहा है कि यदि मान 0 है तो सेमफोर साझा नहीं किया जाता है। (लेकिन फिर, बिंदु क्या है?)
मैं इस pshared
पैरामीटर का उचित तरीके से उपयोग कैसे करूं?
बहुत बढ़िया उत्तर, स्पष्टीकरण के लिए धन्यवाद। –
आपका स्वागत है। प्रशंसा के लिए धन्यवाद :)। – quark
यह संस्करण जीएलबीबीसी से संबंधित इस संस्करण को कॉल करने के लिए नहीं है। यह POSIX.1-2001 है। –