sem_open(3) Library Functions Manual sem_open(3) NUME sem_open - iniializeaza i deschide un semafor numit BIBLIOTECA Biblioteca de fire de execuie POSIX (libpthread, -lpthread) SINOPSIS #include /* Pentru constantele O_* */ #include /* Pentru constantele de mod */ #include 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() creeaza un nou semafor POSIX sau deschide un semafor existent. Semaforul este identificat prin nume. Pentru detalii privind construcia lui nume, a se vedea sem_overview(7). Argumentul oflag specifica indicatori care controleaza funcionarea apelului (definiiile valorilor fanioanelor pot fi obinute prin includerea ). Daca O_CREAT este specificat in oflag, atunci se creeaza semaforul, daca nu exista 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. In cazul in care atat O_CREAT, cat i O_EXCL sunt specificate in oflag, atunci se trimite o eroare daca exista deja un semafor cu numele dat. Daca O_CREAT este specificat in oflag, atunci trebuie furnizate doua argumente suplimentare. Argumentul mod specifica permisiunile care trebuie sa fie plasate pe noul semafor, ca pentru open(2) (definiiile simbolice pentru biii de permisiune pot fi obinute prin includerea ). Valorile de configurare a permisiunilor sunt mascate faa de ,,umask" al procesului. Trebuie acordate atat permisiuni de citire, cat i de scriere pentru fiecare clasa de utilizator care va accesa semaforul. Argumentul valoare specifica valoarea iniiala pentru noul semafor. Daca se specifica O_CREAT i exista deja un semafor cu numele dat, atunci mod i valoare sunt ignorate. VALOAREA RETURNATA In caz de succes, sem_open() returneaza adresa noului semafor; aceasta adresa este utilizata la apelarea altor funcii legate de semafoare. In caz de eroare, sem_open() returneaza SEM_FAILED, cu errno configurata pentru a indica eroarea. ERORI-IEIRE EACCES Semaforul exista, dar apelantul nu are permisiunea de a-l deschide. EEXIST Atat O_CREAT, cat i O_EXCL au fost specificate in oflag, dar un semafor cu acest nume exista deja. EINVAL valoarea a fost mai mare decat SEM_VALOARE_MAX. EINVAL nume este format doar din ,,/", urmata de niciun alt caracter. EMFILE Limita per proces a numarului de descriptori de fiiere deschise a fost atinsa. ENAMETOOLONG nume era prea lung. ENFILE Limita la nivel de sistem a numarului total de fiiere deschise a fost atinsa. ENOENT Fanionul O_CREAT nu a fost specificat in oflag i nu exista niciun semafor cu acest nume; sau, O_CREAT a fost specificat, dar nume nu a fost bine format. ENOMEM Memorie insuficienta. ATRIBUTE Pentru o explicaie a termenilor folosii in aceasta seciune, a se vedea attributes(7). +--------------------------------------+---------------------+---------+ |Interfaa | Atribut | Valoare | +--------------------------------------+---------------------+---------+ |sem_open() | Sigurana firelor | MT-Safe | +--------------------------------------+---------------------+---------+ STANDARDE POSIX.1-2008. ISTORIC POSIX.1-2001. CONSULTAI I sem_close(3), sem_getvalue(3), sem_post(3), sem_unlink(3), sem_wait(3), sem_overview(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.8 2 mai 2024 sem_open(3)