Kiedy msgrcv się nie powiedzie?

Spisu treści:

Kiedy msgrcv się nie powiedzie?
Kiedy msgrcv się nie powiedzie?
Anonim

Funkcja msgrcv nie powiedzie się, jeśli: [E2BIG] Wartość mtext jest większa niż msgsz i (msgflg & MSG_NOERROR) wynosi 0. [DOSTĘP]

Czy Msgrcv blokuje?

Funkcje msgsnd i msgrcv mogą być wykonywane jako operacje blokujące lub nieblokujące. Operacje nieblokujące pozwalają na asynchroniczny transfer wiadomości – proces nie jest zawieszany w wyniku wysłania lub odebrania wiadomości.

Czy msgrcv usuwa wiadomość z kolejki?

Wywołanie systemowe msgrcv usuwa wiadomość z kolejki określonej przez msqid i umieszcza ją w buforze wskazywanym przez msgp. Argument msgsz określa maksymalny rozmiar w bajtach składowej mtext struktury wskazywanej przez argument msgp.

Jak działa msgrcv?

Funkcja msgrcv odczytuje wiadomość z kolejki wiadomości określonej przez parametr msqid i umieszcza ją w zdefiniowanym przez użytkownika buforze wskazywanym przez parametr msgp. Parametr msgp wskazuje na bufor zdefiniowany przez użytkownika, który musi zawierać następujące elementy: Pole typu long int, które określa typ wiadomości.

Co zwraca msgrcv?

WARTOŚĆ ZWROTNA

Po pomyślnym zakończeniu msgrcv zwraca wartość równą liczbie bajtów faktycznie umieszczonych w mtext bufora. W przeciwnym razie żadna wiadomość nie zostanie odebrana, msgrcv zwróci (ssize_t)-1 i errno zostanie ustawione, aby wskazać błąd.

Zalecana: