_exit(2) System Calls Manual _exit(2) NOME _exit, _Exit - encerra o processo chamador BIBLIOTECA Biblioteca C Padrao (libc, -lc) SINOPSE #include [[noreturn]] void _exit(int status); #include [[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 DESCRICAO _exit() encerra o processo solicitante "imediatamente". Qualquer descritor de arquivo aberto pelo processo sera fechado. Qualquer processo filho sera herdado pelo init(1) (ou pelo processo subceifador mais proximo como definido pelo uso da opcao PR_SET_CHILD_SUBREAPER de prctl(2)). Ao processo pai e enviado um sinal SIGCHLD. O valor status & 0xFF e retornado para o processo pai como o status de saida do processo e pode ser coletado pelo pai usando uma das chamadas da familia wait(2). A funcao _Exit() e equivalente a _exit(). VALOR DE RETORNO Estas funcoes nao possuem retorno. PADROES _exit() POSIX.1-2008. _Exit() C11, POSIX.1-2008. HISTORICO POSIX.1-2001, SVr4, 4.3BSD. _Exit() foi introduzido por C99. NOTAS Para uma discussao sobre os efeitos de uma saida, a transmissao do status de saida, processos zumbis, sinais enviados e assim por diante, consulte exit(3). A funcao _exit() e como exit(3), mas nao chama nenhuma funcao registrada com atexit(3) ou on_exit(3). Os fluxos abertos stdio(3) nao sao liberados. Por outro lado, _exit() fecha os descritores de arquivos abertos e isso pode causar um atraso desconhecido, aguardando a conclusao da saida pendente. Se o atraso nao for desejado, pode ser util chamar funcoes como tcflush(3) antes de chamar _exit(). Se qualquer E/S pendente e cancelada e qual E/S pendente pode ser cancelada em _exit(), depende da implementacao. Diferencas entre kernel/biblioteca C O texto acima na DESCRICAO descreve o efeito tradicional de _exit(), que e encerrar um processo, e estas sao as semanticas especificadas por POSIX.1 e implementadas pela funcao wrapper da biblioteca C. Em sistemas modernos, isso significa o encerramento de todos os threads do processo. Em contraste com a funcao wrapper da biblioteca C, a chamada de sistema bruta _exit() do Linux encerra apenas o thread da chamada, e acoes como reaver pais de processos filho ou enviar SIGCHLD para o processo pai sao realizadas somente se este for a ultimo thread no grupo de threads. Ate o glibc 2.3, a funcao wrapper _exit() invocava a chamada de sistema do kernel com o mesmo nome. Desde o glibc 2.3, a funcao wrapper invoca exit_group(2), para encerrar todos os threads em um processo. VEJA TAMBEM execve(2), exit_group(2), fork(2), kill(2), wait(2), wait4(2), waitpid(2), atexit(3), exit(3), on_exit(3), termios(3) TRADUCAO A traducao para portugues brasileiro desta pagina man foi criada por Andre Luiz Fassone , Fabio Henrique F. Silva e Rafael Fontenelle . Esta traducao e uma documentacao livre; leia a Licenca Publica Geral GNU Versao 3 ou posterior para as condicoes de direitos autorais. Nenhuma responsabilidade e aceita. Se voce encontrar algum erro na traducao desta pagina de manual, envie um e-mail para a lista de discussao de tradutores . Linux man-pages 6.9.1 2 maio 2024 _exit(2)