Provided by: manpages-ro-dev_4.27.0-1_all bug

NUME

       exit - provoacă încheierea normală a procesului

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

SINOPSIS

       #include <stdlib.h>

       [[noreturn]] void exit(int status);

DESCRIERE

       Funcția  exit() provoacă terminarea normală a procesului, iar cel mai puțin semnificativ octet din status
       (de exemplu, status & 0xFF) este returnat părintelui (a se vedea wait(2)).

       Toate funcțiile înregistrate cu atexit(3) și on_exit(3) sunt apelate, în ordinea inversă a  înregistrării
       lor; (este posibil ca una dintre aceste funcții să utilizeze atexit(3) sau on_exit(3) pentru a înregistra
       o  funcție  suplimentară  care  să  fie  executată în timpul procesării de ieșire; noua înregistrare este
       adăugată în fruntea listei de funcții care rămân să fie apelate).  Dacă  una  dintre  aceste  funcții  nu
       returnează  (de exemplu, apelează _exit(2) sau se sinucide cu un semnal), atunci niciuna dintre funcțiile
       rămase nu este apelată, iar procesarea ulterioară a ieșirii (în  special,  golirea  fluxurilor  stdio(3))
       este  abandonată.  În  cazul în care o funcție a fost înregistrată de mai multe ori cu ajutorul atexit(3)
       sau on_exit(3), atunci aceasta este apelată de atâtea ori câte ori a fost înregistrată.

       Toate fluxurile stdio(3) deschise sunt golite și închise.  Fișierele create de tmpfile(3) sunt eliminate.

       Standardul C specifică două constante, EXIT_SUCCESS și EXIT_FAILURE, care  pot  fi  transmise  la  exit()
       pentru a indica terminarea cu succes sau, respectiv, fără succes.

VALOAREA RETURNATĂ

       Funcția exit() nu returnează.

ATRIBUTE

       Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
       ┌─────────────────────────────────────────────────────────────┬───────────────────┬─────────────────────┐
       │ InterfațăAtributValoare             │
       ├─────────────────────────────────────────────────────────────┼───────────────────┼─────────────────────┤
       │ exit()                                                      │ Siguranța firelor │ MT-Unsafe race:exit │
       └─────────────────────────────────────────────────────────────┴───────────────────┴─────────────────────┘

       Funcția  exit() utilizează o variabilă globală care nu este protejată, deci nu este sigură pentru fire de
       execuție.

STANDARDE

       C11, POSIX.1-2008.

ISTORIC

       C89, POSIX.1-2001, SVr4, 4.3BSD.

NOTE

       Comportamentul este nedefinit în cazul  în  care  una  dintre  funcțiile  înregistrate  cu  atexit(3)  și
       on_exit(3)  apelează fie exit(), fie longjmp(3).  Rețineți că un apel la execve(2) elimină înregistrările
       create cu ajutorul atexit(3) și on_exit(3).

       Utilizarea lui EXIT_SUCCESS și EXIT_FAILURE este puțin mai ușor de  adaptat  (în  medii  non-UNIX)  decât
       utilizarea  lui  0  și  a  unor valori diferite de zero, cum ar fi 1 sau -1. În special, VMS utilizează o
       convenție diferită.

       BSD a încercat să standardizeze codurile de ieșire (pe care unele biblioteci C, cum ar fi biblioteca  GNU
       C, le-au adoptat de asemenea); a se vedea fișierul <sysexits.h>.

       După exit(), starea de ieșire trebuie să fie transmisă procesului părinte. Există trei cazuri:

       •  În  cazul  în  care  părintele  a stabilit SA_NOCLDWAIT sau a stabilit gestionarul SIGCHLD la SIG_IGN,
          starea este eliminată și copilul moare imediat.

       •  În cazul în care părintele aștepta copilul, acesta este notificat cu privire la starea  de  ieșire  și
          copilul moare imediat.

       •  În  caz  contrar,  procesul  copil  devine  un  proces „zombi”, majoritatea resurselor procesului sunt
          reciclate, dar în tabela de procese se  păstrează  un  slot  care  conține  informații  minime  despre
          procesul  copil  (starea  de  terminare,  statistici  de  utilizare a resurselor). Acest lucru permite
          părintelui să utilizeze ulterior waitpid(2)  (sau  similar)  pentru  a  afla  starea  de  terminare  a
          procesului copil; în acel moment, slotul procesului „zombi” este eliberat.

       În  cazul  în care implementarea acceptă semnalul SIGCHLD, acest semnal este trimis părintelui.  În cazul
       în care părintele a definit SA_NOCLDWAIT, acesta nu se definește dacă se trimite un semnal SIGCHLD.

   Semnale trimise către alte procese
       În cazul în care procesul care iese este un lider de sesiune și terminalul său de control este terminalul
       de control al sesiunii, atunci fiecare proces din grupul de procese din prim-plan al acestui terminal  de
       control  primește  un semnal SIGHUP, iar terminalul este disociat de această sesiune, permițând ca acesta
       să fie achiziționat de un nou proces de control.

       În cazul în care ieșirea procesului face ca un grup de procese să devină orfan și dacă oricare membru  al
       grupului de procese nou-orfan este oprit, atunci un semnal SIGHUP urmat de un semnal SIGCONT va fi trimis
       fiecărui proces din acest grup de procese. A se vedea setpgid(2) pentru o explicație privind grupurile de
       procese orfane.

       Cu excepția cazurilor de mai sus, în care procesele semnalate pot fi copii ai procesului care se termină,
       terminarea  unui  proces  nu  determină  în general trimiterea unui semnal către copiii acelui proces. Cu
       toate acestea, un proces poate utiliza operația prctl(2) PR_SET_PDEATHSIG pentru a face în așa fel  încât
       să primească un semnal în cazul în care părintele său termină.

CONSULTAȚI ȘI

       _exit(2), get_robust_list(2), setpgid(2), wait(2), atexit(3), on_exit(3), tmpfile(3)

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                                            exit(3)