متى ستفشل msgrcv؟

متى ستفشل msgrcv؟
متى ستفشل msgrcv؟
Anonim

تفشل وظيفة msgrcv إذا: [E2BIG]قيمة mtext أكبر من msgsz و (msgflg & MSG_NOERROR) تساوي 0. [EACCES]

هل مسجركف يمنع؟

يمكن إجراء وظائف msgsnd و msgrcvكعمليات حظر أو غير محظورة. تسمح العمليات غير المحظورة بنقل الرسائل غير المتزامن - لا يتم تعليق العملية نتيجة إرسال أو استقبال رسالة.

هل تقوم msgrcv بإزالة الرسالة من قائمة الانتظار؟

يزيل استدعاء نظامmsgrcv رسالة من قائمة الانتظار المحددة بواسطة msqidويضعها في المخزن المؤقت المشار إليه بواسطة msgp. تحدد الوسيطة msgsz الحجم الأقصى بالبايت لعضو mtext للبنية المشار إليها بواسطة وسيطة msgp.

كيف يعمل msgrcv؟

وظيفة msgrcv تقرأرسالة من قائمة انتظار الرسائل المحددة بواسطة المعلمة msqid وتضعها في المخزن المؤقت المحدد من قبل المستخدم المشار إليه بواسطة المعلمةmsgp. تشير المعلمةmsgp إلى مخزن مؤقت معرف من قبل المستخدم يجب أن يحتوي على ما يلي: حقل من النوع long int الذي يحدد نوع الرسالة.

ماذا ترجع msgrcv؟

RETURN VALUE

عند الإكمال الناجح ، تُرجع msgrcvقيمة مساوية لعدد البايتات الموضوعة بالفعل في المخزن المؤقت mtext. خلاف ذلك ، لن يتم استلام أي رسالة ، وسوف تعيد msgrcv (ssize_t) -1 وسيتم تعيين errno للإشارة إلى الخطأ.

موصى به: