abort(3)

NOME
abort - causa encerramento anormal do processo

BIBLIOTECA
Biblioteca C Padrão (libc, -lc)

SINOPSE
#include <stdlib.h>

[[noreturn]] void abort(void);

DESCRIÇÃO
A função abort() primeiro desbloqueia o sinal SIGABRT e, em seguida, levanta esse sinal para o processo de chamada (como se raise(3) tivesse sido chamado). Isso resulta na encerramento anormal do processo, a menos que o sinal SIGABRT seja capturado e o manipulador de sinal não retorne (consulte longjmp(3)).

Se o sinal SIGABRT for ignorado ou capturado por um manipulador que retorne, a função abort() ainda encerrará o processo. Isso é feito restaurando a disposição padrão para SIGABRT e aumentando o sinal pela segunda vez.

Como em outros casos de terminação anormal, as funções registradas com atexit(3) e on_exit(3) não são chamadas.

VALOR DE RETORNO
A função abort() nunca retorna.

ATRIBUTOS
Para uma explicação dos termos usados nesta seção, consulte attributes(7).
Interface | Atributo | Valor
abort() | Thread safety | MT-Safe

PADRÕES
C11, POSIX.1-2008.

HISTÓRICO
SVr4, POSIX.1-2001, 4.3BSD, C89.

Até a glibc 2.26, se a função abort() causava o encerramento do processo, todos os fluxos abertos eram fechados e liberados (como em fclose(3)). No entanto, em alguns casos, isso pode resultar em conflitos e corrupção de dados. Portanto, começando com glibc 2.27, abort() encerra o processo sem liberar fluxos. O POSIX.1 permite qualquer comportamento possível, dizendo que abort() "pode incluir uma tentativa de efetuar fclose() em todos os fluxos abertos".

VEJA TAMBÉM
gdb(1), sigaction(2), assert(3), exit(3), longjmp(3), raise(3)

TRADUÇÃO
A tradução para português brasileiro desta página man foi criada por Paulo César Mendes <drpc@ism.com.br>, André Luiz Fassone <lonely_wolf@ig.com.br> 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).