เมื่อ msgrcv จะล้มเหลว?

สารบัญ:

เมื่อ msgrcv จะล้มเหลว?
เมื่อ msgrcv จะล้มเหลว?
Anonim

ฟังก์ชัน msgrcv จะล้มเหลวหาก: [E2BIG] ค่าของ mtext มากกว่า msgsz และ (msgflg & MSG_NOERROR) คือ 0 [EACCES]

Msgrcv บล็อกหรือไม่

ฟังก์ชัน msgsnd และ msgrcv สามารถ เป็นการดำเนินการที่บล็อกหรือไม่ปิดกั้น การดำเนินการที่ไม่มีการบล็อกทำให้สามารถถ่ายโอนข้อความแบบอะซิงโครนัสได้ -- กระบวนการนี้จะไม่ถูกระงับอันเป็นผลมาจากการส่งหรือรับข้อความ

msgrcv ลบข้อความออกจากคิวหรือไม่

การเรียกระบบ msgrcv จะลบข้อความออกจากคิวที่ระบุโดย msqid และวางไว้ในบัฟเฟอร์ที่ msgp ชี้ไป อาร์กิวเมนต์ msgsz ระบุขนาดสูงสุดเป็นไบต์สำหรับ mtext สมาชิกของโครงสร้างที่อาร์กิวเมนต์ msgp ชี้ไป

msgrcv ทำงานอย่างไร

ฟังก์ชัน msgrcv อ่าน a ข้อความจากคิวข้อความที่ระบุโดยพารามิเตอร์ msqid และวางไว้ในบัฟเฟอร์ที่ผู้ใช้กำหนดซึ่งชี้ไปที่ msgp พารามิเตอร์ พารามิเตอร์ msgp ชี้ไปที่บัฟเฟอร์ที่ผู้ใช้กำหนดเองซึ่งต้องมีดังต่อไปนี้: ฟิลด์ชนิด long int ที่ระบุประเภทของข้อความ

msgrcv ส่งคืนอะไร

RETURN VALUE

เมื่อเสร็จสิ้น msgrcv จะส่งกลับ a ค่าเท่ากับจำนวนไบต์ที่วางลงในบัฟเฟอร์ mtext มิฉะนั้น จะไม่ได้รับข้อความ msgrcv จะส่งคืน (ssize_t)-1 และ errno จะถูกตั้งค่าให้ระบุข้อผิดพลาด

แนะนำ: