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

NUME

       msgget - obține un identificator de coadă de mesaje System V

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

SINOPSIS

       #include <sys/msg.h>

       int msgget(key_t key, int msgflg);

DESCRIERE

       Apelul  de  sistem  msgget()  returnează  identificatorul  cozii  de  mesaje System V asociat cu valoarea
       argumentului key. Acesta poate fi utilizat fie pentru a obține identificatorul unei cozi de mesaje create
       anterior (atunci când msgflg este zero și key nu are valoarea IPC_PRIVATE), fie pentru a crea un set nou.

       O nouă coadă de mesaje este creată dacă key are valoarea IPC_PRIVATE sau dacă key  nu  este  IPC_PRIVATE,
       dacă nu există o coadă de mesaje cu cheia key dată și dacă IPC_CREAT este specificat în msgflg.

       Dacă msgflg specifică atât IPC_CREAT, cât și IPC_EXCL și există deja o coadă de mesaje pentru key, atunci
       msgget()  eșuează cu errno configurată la EEXIST; (acest lucru este analog cu efectul combinației O_CREAT
       | O_EXCL pentru open(2)).

       La creare, cei mai puțin semnificativi biți ai argumentului msgflg definesc permisiunile cozii de mesaje.
       Acești biți de permisiune au același format și semantică ca și permisiunile specificate pentru argumentul
       mode din open(2); (permisiunile de execuție nu sunt utilizate).

       Dacă este creată o nouă coadă de  mesaje,  atunci  structura  de  date  asociată  msqid_ds  (a  se  vedea
       msgctl(2)) este inițializată după cum urmează:

       •  msg_perm.cuid și msg_perm.uid sunt stabilite la ID-ul de utilizator efectiv al procesului de apelare.

       •  msg_perm.cgid și msg_perm.gid sunt stabilite la ID-ul de grup efectiv al procesului apelant.

       •  Cei  mai  puțin semnificativi 9 biți din msg_perm.mode sunt stabiliți la cei mai puțin semnificativi 9
          biți din msgflg.

       •  msg_qnum, msg_lspid, msg_lrpid, msg_stime, și msg_rtime sunt stabilite la 0.

       •  msg_ctime este stabilit la ora curentă.

       •  msg_qbytes este stabilit la limita sistemului MSGMNB.

       În cazul în care coada de mesaje există deja, se verifică permisiunile și se verifică dacă  aceasta  este
       marcată pentru distrugere.

VALOAREA RETURNATĂ

       În  caz  de  succes,  msgget() returnează identificatorul cozii de așteptare a mesajelor (un număr întreg
       nenegativ). În caz de eșec, se returnează -1, iar errno este configurată pentru a indica eroarea.

ERORI-IEȘIRE

       EACCES Există o coadă de mesaje pentru key, dar procesul apelant nu are permisiunea de a accesa coada  de
              așteptare și nu are capacitatea CAP_IPC_OWNER în spațiul de nume al utilizatorului care guvernează
              spațiul de nume IPC.

       EEXIST IPC_CREAT și IPC_EXCL au fost specificate în msgflg, dar există deja o coadă de mesaje pentru key.

       ENOENT Nu există o coadă de mesaje pentru key și msgflg nu a specificat IPC_CREAT.

       ENOMEM Trebuie  creată o coadă de mesaje, dar sistemul nu are suficientă memorie pentru noua structură de
              date.

       ENOSPC Trebuie creată o coadă de mesaje, dar limita sistemului pentru numărul maxim  de  cozi  de  mesaje
              (MSGMNI) ar fi depășită.

STANDARDE

       POSIX.1-2008.

ISTORIC

       POSIX.1-2001, SVr4.

   Linux
       Până  la  Linux  2.3.20,  Linux  ar  fi returnat EIDRM pentru un msgget() pe o coadă de mesaje programată
       pentru ștergere.

NOTE

       IPC_PRIVATE nu este un câmp fanion, ci un tip key_t. În cazul  în  care  se  utilizează  această  valoare
       specială  pentru key, apelul de sistem ignoră totul, cu excepția celor mai puțin semnificativi 9 biți din
       msgflg și creează o nouă coadă de mesaje (în caz de succes).

       Următoarea este o limită de sistem privind resursele de coadă de mesaje care afectează un apel msgget():

       MSGMNI Limita la nivel de sistem a numărului de cozi de mesaje. Înainte de Linux 3.19, valoarea implicită
              pentru această limită era calculată cu ajutorul unei  formule  bazate  pe  memoria  disponibilă  a
              sistemului.  Începând  cu  Linux 3.19, valoarea implicită este de 32.000. În Linux, această limită
              poate fi citită și modificată prin intermediul /proc/sys/kernel/msgmni.

ERORI

       Alegerea denumirii IPC_PRIVATE a fost poate o alegere greșită, IPC_NEW ar fi arătat mai clar funcția sa.

CONSULTAȚI ȘI

       msgctl(2), msgrcv(2), msgsnd(2), ftok(3), capabilities(7), mq_overview(7), sysvipc(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                                          msgget(2)