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

NUME

       mq_send, mq_timedsend - trimite un mesaj la o coadă de mesaje

BIBLIOTECA

       Biblioteca de timp real (librt, -lrt)

SINOPSIS

       #include <mqueue.h>

       int mq_send(mqd_t mqdes, const char msg_ptr[.msg_len],
                     size_t msg_len, unsigned int msg_prio);

       #include <time.h>
       #include <mqueue.h>

       int mq_timedsend(mqd_t mqdes, const char msg_ptr[.msg_len],
                     size_t msg_len, unsigned int msg_prio,
                     const struct timespec *abs_timeout);

   Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):

       mq_timedsend():
           _POSIX_C_SOURCE >= 200112L

DESCRIERE

       mq_send() adaugă mesajul indicat de msg_ptr la coada de așteptare a mesajelor la care face referire
       descriptorul cozii de așteptare a mesajelor mqdes. Argumentul msg_len specifică lungimea mesajului
       indicat de msg_ptr; această lungime trebuie să fie mai mică sau egală cu atributul mq_msgsize al cozii de
       așteptare. Sunt permise mesajele cu lungime zero.

       Argumentul msg_prio este un număr întreg nenegativ care specifică prioritatea acestui mesaj. Mesajele
       sunt plasate în coada de așteptare în ordinea descrescătoare a priorității, mesajele mai noi cu aceeași
       prioritate fiind plasate după mesajele mai vechi cu aceeași prioritate. A se vedea mq_overview(7) pentru
       detalii privind intervalul de prioritate a mesajelor.

       Dacă coada de mesaje este deja plină (adică numărul de mesaje din coadă este egal cu atributul mq_maxmsg
       al cozii), atunci, în mod implicit, mq_send() se blochează până când devine disponibil suficient spațiu
       pentru a permite ca mesajul să fie pus în coadă sau până când apelul este întrerupt de un gestionar de
       semnal. În cazul în care fanionul O_NONBLOCK este activat pentru descrierea cozii de mesaje, atunci
       apelul eșuează imediat cu eroarea EAGAIN.

       mq_timedsend() se comportă la fel ca mq_send(), cu excepția faptului că, dacă coada de așteptare este
       plină, iar fanionul O_NONBLOCK nu este activat pentru descrierea cozii de așteptare a mesajelor, 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 Epoca, 1970-01-01 00:00:00 +0000 (UTC), specificat
       într-o structură timespec(3).

       În cazul în care coada de așteptare a mesajelor este plină, iar timpul de așteptare a expirat deja în
       momentul apelului, mq_timedsend() returnează imediat.

VALOAREA RETURNATĂ

       În caz de succes, mq_send() și mq_timedsend() returnează zero; în caz de eroare, se returnează -1, cu
       errno configurată pentru a indica eroarea.

ERORI-IEȘIRE

       EAGAIN Coada de așteptare a fost plină, iar fanionul O_NONBLOCK a fost configurat pentru descrierea cozii
              de așteptare a mesajelor la care face referire mqdes.

       EBADF  Descriptorul specificat în mqdes nu a fost valid sau nu era deschis pentru scriere.

       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 mare decât atributul mq_msgsize al cozii de așteptare a mesajelor.

       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_send(), mq_timedsend()                                               │ Siguranța firelor │ MT-Safe │
       └─────────────────────────────────────────────────────────────────────────┴───────────────────┴─────────┘

VERSIUNI

       În  Linux,  mq_timedsend()  este  un apel de sistem, iar mq_send() 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_receive(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_send(3)