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

NUME

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

BIBLIOTECA

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

SINOPSIS

       #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-IEȘIRE

       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-2008.

ISTORIC

       POSIX.1-2001.

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   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                                        sem_open(3)