Provided by: manpages-ro-dev_4.28.0-2_all 

NUME
pthread_atfork - înregistrează gestionarii de bifurcări
BIBLIOTECA
Biblioteca de fire de execuție POSIX (libpthread, -lpthread)
SINOPSIS
#include <pthread.h>
int pthread_atfork(void (*prepare)(void), void (*parent)(void),
void (*child)(void));
DESCRIERE
Funcția pthread_atfork() înregistrează gestionarii de bifurcare care urmează să fie executați atunci când
fork(2) este apelat de orice fir dintr-un proces. Gestionatorii sunt executați în contextul firului care
apelează fork(2).
Se pot înregistra trei tipuri de gestionari:
• prepare specifică un gestionar care este executat în procesul părinte înainte de începerea procesării
fork(2).
• parent specifică un gestionar care este executat în procesul părinte după terminarea procesării
fork(2).
• child specifică un gestionar care este executat în procesul-copil după terminarea procesării fork(2).
Oricare dintre cele trei argumente poate fi NULL în cazul în care nu este necesar nici un gestionar în
faza corespunzătoare a procesării fork(2).
VALOAREA RETURNATĂ
În caz de succes, pthread_atfork() returnează zero. În caz de eroare, returnează un număr de eroare.
pthread_atfork() poate fi apelat de mai multe ori de către un proces pentru a înregistra gestionari
suplimentari. Operatorii pentru fiecare fază sunt apelați într-o ordine specificată: operatorii prepare
sunt apelați în ordinea inversă a înregistrării; operatorii parent și child sunt apelați în ordinea
înregistrării.
ERORI-IEȘIRE
ENOMEM Nu s-a putut aloca memorie pentru a înregistra intrarea în lista de gestionare a bifurcărilor.
STANDARDE
POSIX.1-2008.
ISTORIC
POSIX.1-2001.
NOTE
Atunci când fork(2) este apelat într-un proces cu mai multe fire de execuție, numai firul de execuție
care face apelul este duplicat în procesul-copil. Intenția inițială a pthread_atfork() a fost de a
permite revenirea procesului-copil la o stare coerentă. De exemplu, în momentul apelului la fork(2), este
posibil ca alte fire să aibă mutex-uri blocate care sunt vizibile în memoria din spațiul utilizatorului
duplicată în procesul-copil. Astfel de mutex-uri nu vor fi niciodată deblocate, deoarece firele care au
plasat blocajele nu sunt duplicate în copil. Intenția lui pthread_atfork() a fost de a oferi un mecanism
prin care aplicația (sau o bibliotecă) să se asigure că starea mutex-urilor și a altor procese și fire de
execuție va fi readusă la o stare coerentă. În practică, această sarcină este, în general, prea dificilă
pentru a fi realizabilă.
După ce un fork(2) într-un proces cu mai multe fire de execuție returnează în copil, copilul ar trebui să
apeleze numai funcții asincrone sigure pentru semnale (a se vedea signal-safety(7)) până în momentul în
care apelează execve(2) pentru a executa un nou program.
POSIX.1 specifică faptul că pthread_atfork() nu trebuie să eșueze cu eroarea EINTR.
CONSULTAȚI ȘI
fork(2), atexit(3), pthreads(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 pthread_atfork(3)