Scroll to navigation

_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

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

The text above in DESCRIPTION describes the traditional effect of _exit(), which is to terminate a process, and these are the semantics specified by POSIX.1 and implemented by the C library wrapper function. On modern systems, this means termination of all threads in the process.

By contrast with the C library wrapper function, the raw Linux _exit() system call terminates only the calling thread, and actions such as reparenting child processes or sending SIGCHLD to the parent process are performed only if this is the last thread in the thread group.

Up to glibc 2.3, the _exit() wrapper function invoked the kernel system call of the same name. Since glibc 2.3, the wrapper function invokes exit_group(2), in order to terminate all of the threads in a process.

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.

22 janeiro 2023 Linux man-pages 6.03