.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk) .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" References consulted: .\" Linux libc source code .\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991) .\" 386BSD man pages .\" Modified 1993-03-29, David Metcalfe .\" Modified 1993-07-24, Rik Faith (faith@cs.unc.edu) .\" Modified 2003-10-25, Walter Harms .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH atexit 3 "15 iunie 2024" "Pagini de manual de Linux 6.9.1" .SH NUME atexit \- înregistrează o funcție care să fie apelată la terminarea normală a procesului .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP) .SH SINOPSIS .nf \fB#include \fP .P \fBint atexit(void (*\fP\fIfunction\fP\fB)(void));\fP .fi .SH DESCRIERE Funcția \fBatexit\fP() înregistrează \fIfuncția\fP dată pentru a fi apelată la terminarea normală a procesului, fie prin \fBexit\fP(3), fie prin întoarcerea de la \fImain\fP() a programului. Funcțiile astfel înregistrate sunt apelate în ordinea inversă a înregistrării lor; nu se transmit argumente. .P Aceeași funcție poate fi înregistrată de mai multe ori: aceasta este apelată o singură dată pentru fiecare înregistrare. .P .\" POSIX.1-2001, POSIX.1-2008 POSIX.1 impune ca o implementare să permită înregistrarea a cel puțin \fBATEXIT_MAX\fP (32) astfel de funcții. Limita reală acceptată de o implementare poate fi obținută cu ajutorul \fBsysconf\fP(3). .P Atunci când un proces\-copil este creat prin \fBfork\fP(2), acesta moștenește procesele\-copil ale înregistrărilor părintelui său. La un apel reușit la una dintre funcțiile \fBexec\fP(3), toate înregistrările sunt eliminate. .SH "VALOAREA RETURNATĂ" Funcția \fBatexit\fP() returnează valoarea 0 în caz de succes; în caz contrar, returnează o valoare diferită de zero. .SH ATRIBUTE Pentru o explicație a termenilor folosiți în această secțiune, a se vedea \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Interfață Atribut Valoare T{ .na .nh \fBatexit\fP() T} Siguranța firelor MT\-Safe .TE .SH VERSIUNI .\" POSIX.1-2001, POSIX.1-2008 .\" This can happen on OpenBSD 4.2 for example, and is documented .\" as occurring on FreeBSD as well. .\" glibc does "the Right Thing" -- invocation of the remaining .\" exit handlers carries on as normal. POSIX.1 precizează că rezultatul apelării \fBexit\fP(3) de mai multe ori (adică apelarea \fBexit\fP(3) în cadrul unei funcții înregistrate cu \fBatexit\fP()) este nedefinit. Pe unele sisteme (dar nu și pe Linux), acest lucru poate duce la o recursivitate infinită; programele portabile nu ar trebui să invoce \fBexit\fP(3) în interiorul unei funcții înregistrate cu \fBatexit\fP(). .SH STANDARDE C11, POSIX.1\-2008. .SH ISTORIC POSIX.1\-2001, C89, C99, SVr4, 4.3BSD. .SH NOTE Funcțiile înregistrate folosind \fBatexit\fP() (și \fBon_exit\fP(3)) nu sunt apelate dacă un proces se termină în mod anormal din cauza transmiterii unui semnal. .P În cazul în care una dintre funcțiile înregistrate apelează \fB_exit\fP(2), atunci toate funcțiile rămase nu sunt invocate, iar celelalte etape de încheiere a procesului efectuate de \fBexit\fP(3) nu sunt efectuate. .P Funcțiile \fBatexit\fP() și \fBon_exit\fP(3) înregistrează funcții în aceeași listă: la terminarea normală a procesului, funcțiile înregistrate sunt invocate în ordinea inversă a înregistrării lor de către aceste două funcții. .P .\" In glibc, things seem to be handled okay În conformitate cu POSIX.1, rezultatul este nedefinit dacă \fBlongjmp\fP(3) este utilizată pentru a încheia execuția uneia dintre funcțiile înregistrate cu \fBatexit\fP(). .SS "Note Linux" Începând cu glibc 2.2.3, \fBatexit\fP() (și \fBon_exit\fP(3)) poate fi utilizată în cadrul unei biblioteci partajate pentru a stabili funcții care sunt apelate atunci când biblioteca partajată este descărcată). .SH EXEMPLE .\" SRC BEGIN (atexit.c) .EX #include #include #include \& void bye(void) { printf("Asta a fost tot, prieteni\[rs]n"); } \& int main(void) { long a; int i; \& a = sysconf(_SC_ATEXIT_MAX); printf("ATEXIT_MAX = %ld\en", a); \& i = atexit(bye); if (i != 0) { fprintf(stderr, "nu se poate defini funcția de ieșire\[rs]n"); exit(EXIT_FAILURE); } \& exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "CONSULTAȚI ȘI" \fB_exit\fP(2), \fBdlopen\fP(3), \fBexit\fP(3), \fBon_exit\fP(3) .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 .