Provided by: manpages-ro-dev_4.21.0-2_all bug

NUME

       _exit, _Exit - termină procesul apelant

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

REZUMAT

       #include <unistd.h>

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

       #include <stdlib.h>

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

   Cerințe   pentru   macrocomenzi  de  testare  a  caracteristicilor  pentru  glibc  (consultați
   feature_test_macros(7)):

       _Exit():
           _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L

DESCRIERE

       _exit() încheie „imediat” procesul apelant. Orice descriptor de fișier deschis  aparținând
       procesului  este  închis. Eventualii copii ai procesului sunt moșteniți de init(1) (sau de
       cel mai  apropiat  proces  de  „subreaper”  (subcolectare),  așa  cum  este  definit  prin
       utilizarea  operației prctl(2) PR_SET_CHILD_SUBREAPER). Părintelui procesului i se trimite
       un semnal SIGCHLD.

       Valoarea status & 0xFF este returnată procesului părinte ca stare de ieșire  a  procesului
       și poate fi colectată de către procesul părinte folosind unul dintre apelurile din familia
       wait(2).

       Funcția _Exit() este echivalentă cu _exit().

VALOAREA RETURNATĂ

       Aceste funcții nu returnează nicio valoare.

STANDARDE

       POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD. Funcția _Exit() a fost introdusă de C99.

NOTE

       Pentru o discuție privind efectele unei ieșiri, transmiterea stării de  ieșire,  procesele
       zombi, semnalele trimise și așa mai departe, a se vedea exit(3).

       Funcția  _exit()  este ca exit(3), dar nu apelează nicio funcție înregistrată cu atexit(3)
       sau on_exit(3). Fluxurile stdio(3) deschise nu sunt șterse.  Pe  de  altă  parte,  _exit()
       închide  descriptorii  de  fișiere  deschise,  iar  acest  lucru  poate cauza o întârziere
       necunoscută, așteptând ca ieșirea în așteptare să se termine.  Dacă  întârzierea  nu  este
       dorită, poate fi utilă apelarea unor funcții precum tcflush(3) înainte de a apela _exit().
       Dacă orice intrare/ieșire în așteptare este anulată și care  intrare/ieșire  în  așteptare
       poate fi anulată la _exit(), depinde de implementare.

   Diferențe între biblioteca C și nucleu
       Textul  de  mai  sus  din DESCRIERE descrie efectul tradițional al _exit(), care este de a
       termina un proces, iar acestea sunt semanticile specificate de POSIX.1 și implementate  de
       funcția  de  învăluire  a  bibliotecii  C.   În  sistemele  moderne,  acest lucru înseamnă
       terminarea tuturor firelor de execuție din proces.

       Spre deosebire de funcția de învăluire a bibliotecii C, apelul de sistem _exit() din Linux
       termină  doar firul apelant, iar acțiuni precum „înfierea” proceselor copil sau trimiterea
       SIGCHLD către procesul părinte sunt efectuate doar dacă acesta este ultimul fir din grupul
       de fire.

       Până la glibc 2.3, funcția de învăluire _exit() a invocat apelul de sistem al nucleului cu
       același nume. Începând cu glibc 2.3, funcția de învăluire invocă exit_group(2),  pentru  a
       termina toate firele de execuție dintr-un proces.

CONSULTAȚI ȘI

       execve(2),  exit_group(2),  fork(2),  kill(2),  wait(2),  wait4(2), waitpid(2), atexit(3),
       exit(3), on_exit(3), termios(3)

TRADUCERE

       Traducerea în limba  română  a  acestui  manual  a  fost  creată  de  Remus-Gabriel  Chelu
       <remusgabriel.chelu@disroot.org>

       Această  traducere  este  documentație  gratuită;  citiți  Licența  publică  generală  GNU
       Versiunea 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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⟩.