mq_receive(3) Library Functions Manual mq_receive(3) NUME mq_receive, mq_timedreceive - primete un mesaj de la o coada de mesaje BIBLIOTECA Biblioteca de timp real (librt, -lrt) REZUMAT #include ssize_t mq_receive(mqd_t mqdes, char msg_ptr[.msg_len], size_t msg_len, unsigned int *msg_prio); #include #include 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); Cerine pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultai feature_test_macros(7)): mq_timedreceive(): _POSIX_C_SOURCE >= 200112L DESCRIERE mq_receive() elimina cel mai vechi mesaj cu cea mai mare prioritate din coada de ateptare a mesajelor la care se face referire prin descriptorul cozii de ateptare a mesajelor mqdes i il plaseaza in memoria tampon indicata de msg_ptr. Argumentul msg_len specifica dimensiunea tamponului indicat de msg_ptr; aceasta trebuie sa fie mai mare sau egala cu atributul mq_msgsize al cozii de ateptare (a se vedea mq_getattr(3)). In cazul in care msg_prio nu este NULL, atunci memoria tampon catre care indica este utilizata pentru a returna prioritatea asociata mesajului primit. Daca coada de mesaje este goala, atunci, in mod implicit, mq_receive() se blocheaza pana cand un mesaj devine disponibil sau pana cand apelul este intrerupt de un gestionar de semnal. In cazul in care indicatorul O_NONBLOCK este activat pentru descrierea cozii de mesaje, atunci apelul eueaza imediat cu eroarea EAGAIN. mq_timedreceive() se comporta la fel ca i mq_receive(), cu excepia faptului ca, daca coada este goala i daca fanionul O_NONBLOCK nu este activat pentru descrierea cozii de mesaje, atunci abs_timeout indica o structura care specifica cat timp se va bloca apelul. Aceasta valoare este un timp de ateptare absolut in secunde i nanosecunde de la Epoca, 1970-01-01 00:00:00 +0000 (UTC), specificat intr-o structura timespec(3). In cazul in care nu este disponibil niciun mesaj, iar timpul de ateptare a expirat deja in momentul apelului, mq_timedreceive() returneaza imediat. VALOAREA RETURNATA In caz de succes, mq_receive() i mq_timedreceive() returneaza numarul de octei din mesajul primit; in caz de eroare, se returneaza -1, cu errno configurata pentru a indica eroarea. ERORI-IEIRE EAGAIN Coada de ateptare era goala, iar fanionul O_NONBLOCK a fost activat pentru descrierea cozii de ateptare a mesajelor la care face referire mqdes. EBADF Descriptorul specificat in mqdes a fost nevalid sau nu a fost deschis pentru citire. EINTR Apelul a fost intrerupt de un gestionar de semnal; a se vedea signal(7). EINVAL Apelul s-a blocat, iar abs_timeout a fost nevalid, fie pentru ca tv_sec a fost mai mic decat zero, fie pentru ca tv_nsec a fost mai mic decat zero sau mai mare decat 1000 de milioane. EMSGSIZE msg_len a fost mai mica decat atributul mq_msgsize al cozii de mesaje. ETIMEDOUT Apelul s-a intrerupt inainte de a putea fi transferat un mesaj. ATRIBUTE Pentru o explicaie a termenilor folosii in aceasta seciune, a se vedea attributes(7). +--------------------------------------+---------------------+---------+ |Interfaa | Atribut | Valoare | +--------------------------------------+---------------------+---------+ |mq_receive(), mq_timedreceive() | Sigurana firelor | MT-Safe | +--------------------------------------+---------------------+---------+ VERSIUNI In Linux, mq_timedreceive() este un apel de sistem, iar mq_receive() este o funcie de biblioteca suprapusa peste acest apel de sistem. STANDARDE POSIX.1-2008. ISTORIC POSIX.1-2001. CONSULTAI 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 in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.06 31 octombrie 2023 mq_receive(3)