Provided by: manpages-ro-dev_4.27.0-1_all bug

NUME

       mq_receive, mq_timedreceive - primește un mesaj de la o coadă de mesaje

BIBLIOTECA

       Biblioteca de timp real (librt, -lrt)

SINOPSIS

       #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-IEȘIRE

       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țăAtributValoare │
       ├─────────────────────────────────────────────────────────────────────────┼───────────────────┼─────────┤
       │ mq_receive(), mq_timedreceive()                                         │ Siguranța firelor │ MT-Safe │
       └─────────────────────────────────────────────────────────────────────────┴───────────────────┴─────────┘

VERSIUNI

       În Linux, mq_timedreceive() este un apel de  sistem,  iar  mq_receive()  este  o  funcție  de  bibliotecă
       suprapusă peste acest apel de sistem.

STANDARDE

       POSIX.1-2008.

ISTORIC

       POSIX.1-2001.

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   făcută   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.9.1                    2 mai 2024                                      mq_receive(3)