_EXIT(2)

NOME
_exit, _Exit - encerra o processo chamador

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.

DE ACORDO COM
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
No glibc até a versão 2.3, a função do wrapper _exit() invocava a chamada de sistema do kernel com o mesmo nome. Desde o glibc 2.3, a função wrapper chama exit_group(2), para finalizar todos os threads em um processo.

A chamada bruta de sistema _exit() termina apenas o encadeamento 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 o último encadeamento no grupo de encadeamentos.

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)

COLOFÃO
Esta página faz parte da versão 5.13 do projeto Linux man-pages. Uma descrição do projeto, informações sobre relatórios de bugs e a versão mais recente desta página podem ser encontradas em https://www.kernel.org/doc/man-pages/.

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).