msgrcv फ़ंक्शन विफल हो जाएगा यदि: [E2BIG] mtext का मान msgsz से अधिक है और (msgflg और MSG_NOERROR) 0 है। [EACCES]
क्या Msgrcv ब्लॉक करता है?
msgsnd और msgrcv फ़ंक्शन ब्लॉकिंग या नॉन-ब्लॉकिंग ऑपरेशन के रूप में किए जा सकते हैं। गैर-अवरुद्ध संचालन अतुल्यकालिक संदेश हस्तांतरण की अनुमति देता है - संदेश भेजने या प्राप्त करने के परिणामस्वरूप प्रक्रिया को निलंबित नहीं किया जाता है।
क्या msgrcv संदेश को कतार से हटाता है?
msgrcv सिस्टम कॉल msqid द्वारा निर्दिष्ट कतार से एक संदेश को हटाता है और इसे msgp द्वारा इंगित बफर में रखता है। तर्क msgsz msgp तर्क द्वारा इंगित संरचना के सदस्य mtext के लिए बाइट्स में अधिकतम आकार निर्दिष्ट करता है।
msgrcv कैसे काम करता है?
msgrcv फ़ंक्शन msqid पैरामीटर द्वारा निर्दिष्ट संदेश कतार से एक संदेश पढ़ता है और इसे msgp पैरामीटर द्वारा इंगित उपयोगकर्ता-परिभाषित बफर में रखता है। msgp पैरामीटर एक यूज़र-डिफ़ाइंड बफ़र को इंगित करता है जिसमें निम्न शामिल होना चाहिए: लॉन्ग इंट प्रकार का एक फ़ील्ड जो संदेश के प्रकार को निर्दिष्ट करता है।
msgrcv क्या लौटाता है?
रिटर्न वैल्यू
सफलतापूर्वक पूरा होने पर, msgrcv रिटर्न एक मान जो वास्तव में बफर में रखे गए बाइट्स की संख्या के बराबर है mtext। अन्यथा, कोई संदेश प्राप्त नहीं होगा, msgrcv वापस आ जाएगा (ssize_t)-1 और त्रुटि को इंगित करने के लिए त्रुटि सेट की जाएगी।