Scroll to navigation

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)

REZUMAT

#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

value depășește SEM_VALUE_MAX.
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 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.

20 iulie 2023 Pagini de manual de Linux 6.05.01