| mq_open(3) | Library Functions Manual | mq_open(3) |
mq_open - deschide o coadă de mesaje
Biblioteca de timp real (librt, -lrt)
#include <fcntl.h> /* Pentru constantele O_* */ #include <sys/stat.h> /* Pentru constantele de mod */ #include <mqueue.h>
mqd_t mq_open(const char *nume, int oflag);
mqd_t mq_open(const char *nume, int oflag, mode_t mode,
struct mq_attr *attr);
mq_open() creează o nouă coadă de mesaje POSIX sau deschide o coadă existentă. Coada este identificată prin nume. Pentru detalii despre construcția lui nume, consultați mq_overview(7).
Argumentul oflag specifică fanioanele care controlează funcționarea apelului; (definițiile valorilor fanioanelor pot fi obținute prin includerea <fcntl.h>). În oflag trebuie specificat exact unul dintre următoarele:
Zero sau mai multe dintre următoarele fanioane pot fi adăugate cu operatorul OR în oflag:
Dacă O_CREAT este specificat în oflag, atunci trebuie furnizate două argumente suplimentare. Argumentul mode specifică permisiunile care urmează să fie plasate pe noua coadă, ca pentru open(2); (definițiile simbolice pentru biții de permisiuni pot fi obținute prin includerea <sys/stat.h>). Definițiile permisiunilor sunt mascate față de umask-ul procesului.
Câmpurile din struct mq_attr indicată de attr specifică numărul maxim de mesaje și dimensiunea maximă a mesajelor pe care coada le va permite. Această structură este definită după cum urmează:
struct mq_attr {
long mq_flags; /* Fanioane (ignorate pentru mq_open()) */
long mq_maxmsg; /* Nr. maxim de mesaje în coadă */
long mq_msgsize; /* Dimensiunea maximă a mesajului (octeți) */
long mq_curmsgs; /* Nr. de mesaje aflate în prezent în coadă
(ignorat pentru mq_open()) */
};
Numai câmpurile mq_maxmsg și mq_msgsize sunt utilizate atunci când se apelează mq_open(); valorile din celelalte câmpuri sunt ignorate.
Dacă attr este NULL, atunci coada este creată cu atribute implicite definite de implementare. Începând cu Linux 3.5, pot fi utilizate două fișiere /proc pentru a controla aceste valori implicite; consultați mq_overview(7) pentru detalii.
În caz de succes, mq_open() returnează un descriptor al cozii de mesaje pentru a fi utilizat de alte funcții ale cozii de mesaje. În caz de eroare, mq_open() returnează (mqd_t) -1, cu errno configurată pentru a indica eroarea.
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
| Interfață | Atribut | Valoare |
| mq_open() | Siguranța firelor | MT-Safe |
Funcția de bibliotecă mq_open() este implementată peste un apel de sistem cu același nume. Funcția de bibliotecă verifică dacă nume începe cu o bară oblică (/), generând eroarea EINVAL în caz contrar. Apelul de sistem al nucleului se așteaptă ca nume să nu conțină nicio bară oblică anterioară, astfel încât funcția de bibliotecă C transmite nume fără bara oblică anterioară (adică nume+1) către apelul de sistem.
POSIX.1-2008.
POSIX.1-2001.
Înainte de Linux 2.6.14, umask-ul procesului nu era aplicat permisiunilor specificate în mode.
mq_close(3), mq_getattr(3), mq_notify(3), mq_receive(3), mq_send(3), mq_unlink(3), mq_overview(7)
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.
| 2 mai 2024 | Pagini de manual de Linux 6.9.1 |