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
sem_destroy(3), sem_post(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 (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.