Provided by: manpages-pt-br-dev_4.27.0-1_all bug

_exit(2)                                       System Calls Manual                                      _exit(2)

NOME

       _exit, _Exit - encerra o processo chamador

BIBLIOTECA

       Biblioteca C Padrão (libc, -lc)

SINOPSE

       #include <unistd.h>

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

       #include <stdlib.h>

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

   Requisitos de macro de teste de recursos para o glibc (consulte feature_test_macros(7)):

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

DESCRIÇÃO

       _exit()  encerra  o  processo  solicitante  "imediatamente".  Qualquer  descritor  de arquivo aberto pelo
       processo será fechado. Qualquer processo filho será herdado pelo init(1) (ou  pelo  processo  subceifador
       mais  próximo  como  definido  pelo  uso  da opção PR_SET_CHILD_SUBREAPER de prctl(2)). Ao processo pai é
       enviado um sinal SIGCHLD.

       O valor status & 0xFF é retornado para o processo pai como o status de  saída  do  processo  e  pode  ser
       coletado pelo pai usando uma das chamadas da família wait(2).

       A função _Exit() é equivalente a _exit().

VALOR DE RETORNO

       Estas funções não possuem retorno.

PADRÕES

       _exit()
              POSIX.1-2008.

       _Exit()
              C11, POSIX.1-2008.

HISTÓRICO

       POSIX.1-2001, SVr4, 4.3BSD.

       _Exit() foi introduzido por C99.

NOTAS

       Para  uma  discussão  sobre  os efeitos de uma saída, a transmissão do status de saída, processos zumbis,
       sinais enviados e assim por diante, consulte exit(3).

       A função _exit() é como exit(3), mas não chama nenhuma função registrada com atexit(3) ou on_exit(3).  Os
       fluxos  abertos  stdio(3)  não  são  liberados.  Por outro lado, _exit() fecha os descritores de arquivos
       abertos e isso pode causar um atraso desconhecido, aguardando a conclusão da saída pendente. Se o  atraso
       não  for  desejado, pode ser útil chamar funções como tcflush(3) antes de chamar _exit(). Se qualquer E/S
       pendente é cancelada e qual E/S pendente pode ser cancelada em _exit(), depende da implementação.

   Diferenças entre kernel/biblioteca C
       O texto acima na DESCRIÇÃO descreve o efeito tradicional de _exit(), que é encerrar um processo, e  estas
       são  as  semânticas  especificadas  por  POSIX.1  e implementadas pela função wrapper da biblioteca C. Em
       sistemas modernos, isso significa o encerramento de todos os threads do processo.

       Em contraste com a função wrapper da biblioteca C, a chamada de sistema bruta _exit()  do  Linux  encerra
       apenas o thread da chamada, e ações como reaver pais de processos filho ou enviar SIGCHLD para o processo
       pai são realizadas somente se este for a último thread no grupo de threads.

       Até o glibc 2.3, a função wrapper _exit() invocava a chamada de sistema do kernel com o mesmo nome. Desde
       o glibc 2.3, a função wrapper invoca exit_group(2), para encerrar todos os threads em um processo.

VEJA TAMBÉM

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

TRADUÇÃO

       A  tradução  para  português  brasileiro  desta  página  man  foi   criada   por   André   Luiz   Fassone
       <lonely_wolf@ig.com.br>,    Fábio   Henrique   F.   Silva   <fabiohfs@mail.com>   e   Rafael   Fontenelle
       <rafaelff@gnome.org>.

       Esta tradução é uma documentação livre; leia a Licença Pública Geral GNU Versão 3 ou  posterior  para  as
       condições de direitos autorais.  Nenhuma responsabilidade é aceita.

       Se  você  encontrar  algum  erro  na  tradução  desta  página  de manual, envie um e-mail para a lista de
       discussão de tradutores.

Linux man-pages 6.9.1                              2 maio 2024                                          _exit(2)