Provided by: manpages-ro-dev_4.21.0-2_all bug

NUME

       sem_open - inițializează și deschide un semafor numit

BIBLIOTECA

       Biblioteca de fire de execuție POSIX (libpthread, -lpthread)

REZUMAT

       #include <fcntl.h>           /* Pentru constantele O_* */
       #include <sys/stat.h>        /* Pentru constantele de mod */
       #include <semaphore.h>

       sem_t *sem_open(const char *nume, int oflag);
       sem_t *sem_open(const char *nume, int oflag,
                       mode_t mod, unsigned int valoare);

DESCRIERE

       sem_open()  creează un nou semafor POSIX sau deschide un semafor existent.  Semaforul este
       identificat  prin  nume.   Pentru  detalii  privind  construcția  lui  nume,  a  se  vedea
       sem_overview(7).

       Argumentul  oflag specifică indicatori care controlează funcționarea apelului (definițiile
       valorilor fanioanelor pot fi obținute  prin  includerea  <fcntl.h>).   Dacă  O_CREAT  este
       specificat  în  oflag,  atunci  se  creează  semaforul, dacă nu există deja.  Proprietarul
       (ID-ul de utilizator) al semaforului este stabilit  la  ID-ul  de  utilizator  efectiv  al
       procesului  apelant.  Proprietarul grupului (ID de grup) este stabilit la ID-ul efectiv de
       grup al procesului apelant.  În cazul în care atât O_CREAT, cât și O_EXCL sunt specificate
       în oflag, atunci se trimite o eroare dacă există deja un semafor cu numele dat.

       Dacă   O_CREAT   este  specificat  în  oflag,  atunci  trebuie  furnizate  două  argumente
       suplimentare.  Argumentul mod specifică permisiunile care trebuie să fie plasate  pe  noul
       semafor,  ca  pentru  open(2)  (definițiile  simbolice  pentru  biții de permisiune pot fi
       obținute prin includerea <sys/stat.h>).  Valorile  de  configurare  a  permisiunilor  sunt
       mascate față de „umask” al procesului.  Trebuie acordate atât permisiuni de citire, cât și
       de scriere pentru fiecare clasă  de  utilizator  care  va  accesa  semaforul.   Argumentul
       valoare  specifică  valoarea  inițială  pentru noul semafor.  Dacă se specifică O_CREAT și
       există deja un semafor cu numele dat, atunci mod și valoare sunt ignorate.

VALOAREA RETURNATĂ

       În caz de succes,  sem_open()  returnează  adresa  noului  semafor;  această  adresă  este
       utilizată  la  apelarea  altor  funcții legate de semafoare.  În caz de eroare, sem_open()
       returnează SEM_FAILED, cu errno configurată pentru a indica eroarea.

ERORI

       EACCES Semaforul există, dar apelantul nu are permisiunea de a-l deschide.

       EEXIST Atât O_CREAT, cât și O_EXCL au fost specificate în oflag, dar un semafor  cu  acest
              nume există deja.

       EINVAL valoarea a fost mai mare decât SEM_VALOARE_MAX.

       EINVAL nume este format doar din „/”, urmată de niciun alt caracter.

       EMFILE Limita per proces a numărului de descriptori de fișiere deschise a fost atinsă.

       ENAMETOOLONG
              nume era prea lung.

       ENFILE Limita la nivel de sistem a numărului total de fișiere deschise a fost atinsă.

       ENOENT Fanionul O_CREAT nu a fost specificat în oflag și nu există niciun semafor cu acest
              nume; sau, O_CREAT a fost specificat, dar nume nu a fost bine format.

       ENOMEM Memorie insuficientă.

ATRIBUTE

       Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).

       ┌───────────────────────────────────────────────────────────┬───────────────────┬─────────┐
       │InterfațăAtributValoare │
       ├───────────────────────────────────────────────────────────┼───────────────────┼─────────┤
       │sem_open()                                                 │ Siguranța firelor │ MT-Safe │
       └───────────────────────────────────────────────────────────┴───────────────────┴─────────┘

STANDARDE

       POSIX.1-2001, POSIX.1-2008.

CONSULTAȚI ȘI

       sem_close(3), sem_getvalue(3), sem_post(3), sem_unlink(3), sem_wait(3), sem_overview(7)

TRADUCERE

       Traducerea în limba  română  a  acestui  manual  a  fost  creată  de  Remus-Gabriel  Chelu
       <remusgabriel.chelu@disroot.org>

       Această  traducere  este  documentație  gratuită;  citiți  Licența  publică  generală  GNU
       Versiunea 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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⟩.