Compartilhar via


abort

Anula o processo atual e retorna um código de erro.

Dica

Não use este método para fechar um aplicativo de Windows Store, exceto em cenários de teste e depuração.As maneiras programáticas ou de interface de usuário de fechar um aplicativo do Windows Store não são permitidas de acordo com os Requisitos de certificação de aplicativo do Windows 8.Para obter mais informações, consulte Ciclo de vida do aplicativo (aplicativos da Windows Store).

void abort( void );

Valor de retorno

abort não retorna o controle ao processo de chamada. Por padrão, ele verifica se há um manipulador de sinal de anulação e aumenta SIGABRT se um é definido. Em seguida, abort encerra o processo atual e retorna um código de saída para o processo pai.

Comentários

Específico da Microsoft

Por padrão, quando um aplicativo é compilado com a biblioteca em tempo de execução de depuração, a rotina de abort exibe uma mensagem de erro antes que SIGABRT é gerado. Para aplicativos de console em execução em modo de console, a mensagem é enviada para STDERR. Aplicativos de área de trabalho do Windows e aplicativos de console que executam em modo de janela exibem a mensagem em uma caixa de mensagem. Para suprimir a mensagem, use _set_abort_behavior para limpar o sinalizador _WRITE_ABORT_MSG. A mensagem exibida depende da versão do ambiente de tempo de execução usado. Para obter aplicativos criados usando a versão mais recente do Visual C++, a mensagem é semelhante a esta:

R6010

- abort() has been called

Em versões anteriores de biblioteca em tempo de execução do C, esta mensagem era exibida:

"This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information."

Quando o programa é compilado em modo de depuração, a caixa de mensagem exibe opções para Anular, Tentar novamente, ou Ignorar. Se o usuário decidir Anular, o programa será imediatamente finalizado e retornará um código de saída 3. Se o usuário decidir Tentar novamente, um depurador será chamado para a depuração just-in-time, se disponível. Se o usuário decidir Ignorar, abort continuará o processamento normal.

Em compilações de varejo e de depuração, abort então verifica se um manipulador de sinal de anulação está definido. Se um manipulador de sinal não padrão for definido, abort chamará raise(SIGABRT). Use a função signal para associar uma função de manipulador de sinal de anulação com o sinal SIGABRT. Você pode executar ações personalizadas, por exemplo, limpar recursos ou informações de log, e encerrar o aplicativo com seu próprio código de erro na função do manipulador. Se nenhum manipulador de sinais personalizado for definido, abort não gerará o sinal SIGABRT.

Por padrão, em compilações de não depuração de área de trabalho ou de aplicativos de console, abort chama o mecanismo de relatório de erros do Windows (Dr. Watson) para relatar falhas à Microsoft. Esse comportamento pode ser habilitado ou desabilitado chamando _set_abort_behavior e definindo ou mascarando o sinalizador _CALL_REPORTFAULT. Quando o sinalizador é definido, o Windows exibe uma caixa de mensagem que possui um texto com algo como “um problema fez com que o programa parasse de funcionar corretamente.” O usuário pode escolher chamar um depurador com um botão Depurar ou escolher o botão Fechar programa para encerrar o aplicativo com um código de erro que é definido pelo sistema operacional.

Se o manipulador de relatório de erros do Windows não for chamado, então abort chamará _exit para finalizar o processo com código de saída 3 e retornará o controle para o processo pai ou para o sistema operacional. _exit não alinha os buffers de fluxo ou realiza o processamento atexit/_onexit.

Para obter mais informações sobre a depuração CRT, consulte Técnicas de depuração CRT.

Finalizar específico da Microsoft

Requisitos

Rotina

Cabeçalho necessário

abort

<process.h> ou <stdlib.h>

Exemplo

O programa a seguir tenta abrir um arquivo e é anulado se a tentativa falha.

// crt_abort.c
// compile with: /TC
// This program demonstrates the use of
// the abort function by attempting to open a file
// and aborts if the attempt fails.

#include  <stdio.h>
#include  <stdlib.h>

int main( void )
{
    FILE    *stream = NULL;
    errno_t err = 0;

    err = fopen_s(&stream, "NOSUCHF.ILE", "r" );
    if ((err != 0) || (stream == NULL))
    {
        perror( "File could not be opened" );
        abort();
    }
    else
    {
        fclose( stream );
    }
}
  

Equivalência do .NET Framework

Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.

Consulte também

Referência

Usando abort

Função abort (C)

Processo e controle de ambiente

Funções _exec, _wexec

exit, _exit

raise

signal

Funções _spawn, _wspawn

_DEBUG

_set_abort_behavior