mq_send(3) Library Functions Manual mq_send(3) NUME mq_send, mq_timedsend - trimite un mesaj la o coada de mesaje BIBLIOTECA Biblioteca de timp real (librt, -lrt) REZUMAT #include int mq_send(mqd_t mqdes, const char msg_ptr[.msg_len], size_t msg_len, unsigned int msg_prio); #include #include 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); Cerine pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultai feature_test_macros(7)): mq_timedsend(): _POSIX_C_SOURCE >= 200112L DESCRIERE mq_send() adauga mesajul indicat de msg_ptr la coada de ateptare a mesajelor la care face referire descriptorul cozii de ateptare a mesajelor mqdes. Argumentul msg_len specifica lungimea mesajului indicat de msg_ptr; aceasta lungime trebuie sa fie mai mica sau egala cu atributul mq_msgsize al cozii de ateptare. Sunt permise mesajele cu lungime zero. Argumentul msg_prio este un numar intreg nenegativ care specifica prioritatea acestui mesaj. Mesajele sunt plasate in coada de ateptare in ordinea descrescatoare a prioritaii, mesajele mai noi cu aceeai prioritate fiind plasate dupa mesajele mai vechi cu aceeai prioritate. A se vedea mq_overview(7) pentru detalii privind intervalul de prioritate a mesajelor. Daca coada de mesaje este deja plina (adica numarul de mesaje din coada este egal cu atributul mq_maxmsg al cozii), atunci, in mod implicit, mq_send() se blocheaza pana cand devine disponibil suficient spaiu pentru a permite ca mesajul sa fie pus in coada sau pana cand apelul este intrerupt de un gestionar de semnal. In cazul in care fanionul O_NONBLOCK este activat pentru descrierea cozii de mesaje, atunci apelul eueaza imediat cu eroarea EAGAIN. mq_timedsend() se comporta la fel ca mq_send(), cu excepia faptului ca, daca coada de ateptare este plina, iar fanionul O_NONBLOCK nu este activat pentru descrierea cozii de ateptare a mesajelor, 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 coada de ateptare a mesajelor este plina, iar timpul de ateptare a expirat deja in momentul apelului, mq_timedsend() returneaza imediat. VALOAREA RETURNATA In caz de succes, mq_send() i mq_timedsend() returneaza zero; in caz de eroare, se returneaza -1, cu errno configurata pentru a indica eroarea. ERORI-IEIRE EAGAIN Coada de ateptare a fost plina, iar fanionul O_NONBLOCK a fost configurat pentru descrierea cozii de ateptare a mesajelor la care face referire mqdes. EBADF Descriptorul specificat in mqdes nu a fost valid sau nu era deschis pentru scriere. 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 mare decat atributul mq_msgsize al cozii de ateptare a mesajelor. 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_send(), mq_timedsend() | Sigurana firelor | MT-Safe | +--------------------------------------+---------------------+---------+ VERSIUNI In Linux, mq_timedsend() este un apel de sistem, iar mq_send() 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_receive(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_send(3)