Provided by: manpages-pt-br-dev_4.21.0-2_all bug

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

       POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD. A função _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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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 ⟨debian-l10n-portuguese@lists.debian.org⟩.