Khi nào msgrcv bị lỗi?

Khi nào msgrcv bị lỗi?
Khi nào msgrcv bị lỗi?
Anonim

Hàm msgrcv sẽ không thành công nếu: [E2BIG]Giá trị của mtext lớn hơn msgsz và (msgflg & MSG_NOERROR) là 0. [EACCES]

Msgrcv có chặn không?

Các hàm msgsnd và msgrcv có thểđược thực hiện dưới dạng hoạt động chặn hoặc không chặn. Các hoạt động không chặn cho phép truyền tin nhắn không đồng bộ - quá trình này không bị tạm dừng do gửi hoặc nhận tin nhắn.

msgrcv có xóa thư khỏi hàng đợi không?

Lệnh gọi hệ thốngmsgrcv xóa một thông báo khỏi hàng đợi được chỉ định bởi msqidvà đặt nó vào bộ đệm được chỉ tới bởi msgp. Đối số msgsz chỉ định kích thước tối đa tính bằng byte cho mtext thành viên của cấu trúc được đối số msgp trỏ tới.

msgrcv hoạt động như thế nào?

Hàm msgrcv đọcmột tin nhắn từ hàng đợi tin nhắn được chỉ định bởi tham số msqid và đặt nó vào bộ đệm do người dùng xác định được trỏ tới bởi tham sốmsgp. Tham sốmsgp trỏ đến bộ đệm do người dùng xác định phải chứa thông tin sau: Một trường kiểu long int chỉ định kiểu của thông báo.

msgrcv trả về gì?

TRẢ LẠI GIÁ TRỊ

Sau khi hoàn tất thành công, msgrcv trả về giá trịbằng số byte thực sự được đặt vào bộ đệm mtext. Nếu không, sẽ không nhận được thông báo nào, msgrcv sẽ trả về (ssize_t) -1 và errno sẽ được đặt để chỉ ra lỗi.

Đề xuất: