.\" -*- coding: UTF-8 -*- .\" Copyright (C) 2017 Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH pthread_atfork 3 "2 mai 2024" "Pagini de manual de Linux 6.8" .SH NUME pthread_atfork \- înregistrează gestionarii de bifurcări .SH BIBLIOTECA Biblioteca de fire de execuție POSIX (\fIlibpthread\fP, \fI\-lpthread\fP) .SH SINOPSIS .nf \fB#include \fP .P \fBint pthread_atfork(void (*\fP\fIprepare\fP\fB)(void), void (*\fP\fIparent\fP\fB)(void),\fP \fB void (*\fP\fIchild\fP\fB)(void));\fP .fi .SH DESCRIERE Funcția \fBpthread_atfork\fP() înregistrează gestionarii de bifurcare care urmează să fie executați atunci când \fBfork\fP(2) este apelat de orice fir dintr\-un proces. Gestionatorii sunt executați în contextul firului care apelează \fBfork\fP(2). .P Se pot înregistra trei tipuri de gestionari: .IP \[bu] 3 \fIprepare\fP specifică un gestionar care este executat în procesul părinte înainte de începerea procesării \fBfork\fP(2). .IP \[bu] \fIparent\fP specifică un gestionar care este executat în procesul părinte după terminarea procesării \fBfork\fP(2). .IP \[bu] \fIchild\fP specifică un gestionar care este executat în procesul\-copil după terminarea procesării \fBfork\fP(2). .P 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 \fBfork\fP(2). .SH "VALOAREA RETURNATĂ" În caz de succes, \fBpthread_atfork\fP() returnează zero. În caz de eroare, returnează un număr de eroare. \fBpthread_atfork\fP() 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 \fIprepare\fP sunt apelați în ordinea inversă a înregistrării; operatorii \fIparent\fP și \fIchild\fP sunt apelați în ordinea înregistrării. .SH ERORI\-IEȘIRE .TP \fBENOMEM\fP Nu s\-a putut aloca memorie pentru a înregistra intrarea în lista de gestionare a bifurcărilor. .SH STANDARDE POSIX.1\-2008. .SH ISTORIC POSIX.1\-2001. .SH NOTE Atunci când \fBfork\fP(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 \fBpthread_atfork\fP() a fost de a permite revenirea procesului\-copil la o stare coerentă. De exemplu, în momentul apelului la \fBfork\fP(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 \fBpthread_atfork\fP() 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ă. .P După ce un \fBfork\fP(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 \fBsignal\-safety\fP(7)) până în momentul în care apelează \fBexecve\fP(2) pentru a executa un nou program. .P POSIX.1 specifică faptul că \fBpthread_atfork\fP() nu trebuie să eșueze cu eroarea \fBEINTR\fP. .SH "CONSULTAȚI ȘI" \fBfork\fP(2), \fBatexit\fP(3), \fBpthreads\fP(7) .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .