Provided by: manpages-ro-dev_4.21.0-2_all 

NUME
mq_receive, mq_timedreceive - primește un mesaj de la o coadă de mesaje
BIBLIOTECA
Biblioteca de timp real (librt, -lrt)
REZUMAT
#include <mqueue.h>
ssize_t mq_receive(mqd_t mqdes, char msg_ptr[.msg_len],
size_t msg_len, unsigned int *msg_prio);
#include <time.h>
#include <mqueue.h>
ssize_t mq_timedreceive(mqd_t mqdes, char *restrict msg_ptr[.msg_len],
size_t msg_len, unsigned int *restrict msg_prio,
const struct timespec *restrict abs_timeout);
Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):
mq_timedreceive():
_POSIX_C_SOURCE >= 200112L
DESCRIERE
mq_receive() elimină cel mai vechi mesaj cu cea mai mare prioritate din coada de așteptare a mesajelor la
care se face referire prin descriptorul cozii de așteptare a mesajelor mqdes și îl plasează în memoria
tampon indicată de msg_ptr. Argumentul msg_len specifică dimensiunea tamponului indicat de msg_ptr;
aceasta trebuie să fie mai mare sau egală cu atributul mq_msgsize al cozii de așteptare (a se vedea
mq_getattr(3)). În cazul în care msg_prio nu este NULL, atunci memoria tampon către care indică este
utilizată pentru a returna prioritatea asociată mesajului primit.
Dacă coada de mesaje este goală, atunci, în mod implicit, mq_receive() se blochează până când un mesaj
devine disponibil sau până când apelul este întrerupt de un gestionar de semnal. În cazul în care
indicatorul O_NONBLOCK este activat pentru descrierea cozii de mesaje, atunci apelul eșuează imediat cu
eroarea EAGAIN.
mq_timedreceive() se comportă la fel ca și mq_receive(), cu excepția faptului că, dacă coada este goală
și dacă fanionul O_NONBLOCK nu este activat pentru descrierea cozii de mesaje, atunci abs_timeout indică
o structură care specifică cât timp se va bloca apelul. Această valoare este un timp de așteptare
absolut în secunde și nanosecunde de la Epocă, 1970-01-01 00:00:00 +0000 (UTC), specificat într-o
structură timespec(3).
În cazul în care nu este disponibil niciun mesaj, iar timpul de așteptare a expirat deja în momentul
apelului, mq_timedreceive() returnează imediat.
VALOAREA RETURNATĂ
În caz de succes, mq_receive() și mq_timedreceive() returnează numărul de octeți din mesajul primit; în
caz de eroare, se returnează -1, cu errno configurată pentru a indica eroarea.
ERORI
EAGAIN Coada de așteptare era goală, iar fanionul O_NONBLOCK a fost activat pentru descrierea cozii de
așteptare a mesajelor la care face referire mqdes.
EBADF Descriptorul specificat în mqdes a fost nevalid sau nu a fost deschis pentru citire.
EINTR Apelul a fost întrerupt de un gestionar de semnal; a se vedea signal(7).
EINVAL Apelul s-a blocat, iar abs_timeout a fost nevalid, fie pentru că tv_sec a fost mai mic decât zero,
fie pentru că tv_nsec a fost mai mic decât zero sau mai mare decât 1000 de milioane.
EMSGSIZE
msg_len a fost mai mică decât atributul mq_msgsize al cozii de mesaje.
ETIMEDOUT
Apelul s-a întrerupt înainte de a putea fi transferat un mesaj.
ATRIBUTE
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
┌─────────────────────────────────────────────────────────────────────────┬───────────────────┬─────────┐
│ Interfață │ Atribut │ Valoare │
├─────────────────────────────────────────────────────────────────────────┼───────────────────┼─────────┤
│ mq_receive(), mq_timedreceive() │ Siguranța firelor │ MT-Safe │
└─────────────────────────────────────────────────────────────────────────┴───────────────────┴─────────┘
STANDARDE
POSIX.1-2001, POSIX.1-2008.
NOTE
În Linux, mq_timedreceive() este un apel de sistem, iar mq_receive() este o funcție de bibliotecă
suprapusă peste acest apel de sistem.
CONSULTAȚI ȘI
mq_close(3), mq_getattr(3), mq_notify(3), mq_open(3), mq_send(3), mq_unlink(3), timespec(3),
mq_overview(7), time(7)
TRADUCERE
Traducerea în limba română a acestui manual a fost creată de Remus-Gabriel Chelu
<remusgabriel.chelu@disroot.org>
Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o
versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă Nicio
RESPONSABILITATE.
Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-
ro@lists.sourceforge.net.
Pagini de manual de Linux 6.03 15 decembrie 2022 mq_receive(3)