table of contents
sem_init(3) | Library Functions Manual | sem_init(3) |
NUME¶
sem_init - inițializează un semafor fără nume
BIBLIOTECA¶
Biblioteca de fire de execuție POSIX (libpthread, -lpthread)
SINOPSIS¶
#include <semaphore.h>
int sem_init(sem_t *sem, int pshared, unsigned int value);
DESCRIERE¶
sem_init() inițializează semaforul fără nume la adresa indicată de sem. Argumentul valoare specifică valoarea inițială a semaforului.
Argumentul pshared indică dacă acest semafor trebuie să fie partajat între firele unui proces sau între procese.
Dacă pshared are valoarea 0, atunci semaforul este partajat între firele de execuție ale unui proces și ar trebui să fie localizat la o adresă care este vizibilă pentru toate firele de execuție (de exemplu, o variabilă globală sau o variabilă alocată dinamic în grămadă „heap”).
Dacă pshared este diferit de zero, atunci semaforul este partajat între procese și ar trebui să fie localizat într-o regiune de memorie partajată (a se vedea shm_open(3), mmap(2) și shmget(2)). (Deoarece un copil creat prin fork(2) moștenește corespondențele de memorie ale părintelui său, acesta poate, de asemenea, să acceseze semaforul). Orice proces care poate accesa regiunea de memorie partajată poate opera asupra semaforului folosind sem_post(3), sem_wait(3) și așa mai departe.
Inițializarea unui semafor care a fost deja inițializat are ca rezultat un comportament nedefinit.
VALOAREA RETURNATö
sem_init() returnează 0 în caz de succes; în caz de eroare, se returnează -1, iar errno este configurată pentru a indica eroarea.
ERORI-IEȘIRE¶
- EINVAL
- value depășește SEM_VALUE_MAX.
- ENOSYS
- pshared este diferit de zero, dar sistemul nu acceptă semafoare partajate de procese (a se vedea sem_overview(7)).
ATRIBUTE¶
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
Interfață | Atribut | Valoare |
sem_init() | Siguranța firelor | MT-Safe |
STANDARDE¶
POSIX.1-2008.
ISTORIC¶
POSIX.1-2001.
În mod ciudat, POSIX.1-2001 nu specifică valoarea care ar trebui returnată în cazul unui apel reușit la sem_init(). POSIX.1-2008 rectifică acest lucru, specificând returnarea zero în caz de succes.
EXEMPLE¶
A se vedea shm_open(3) și sem_wait(3).
CONSULTAȚI ȘI¶
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.
2 mai 2024 | Pagini de manual Linux (nepublicate) |