Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Especifica a ação a tomar quando um programa é terminado de forma anormal.
Observação
Não use a abort função para desligar uma aplicação da Microsoft Store, exceto em cenários de teste ou depuração. As formas programáticas ou de interface do usuário para fechar um aplicativo da Loja não são permitidas de acordo com as políticas da Microsoft Store. Para obter mais informações, consulte Ciclo de vida do aplicativo UWP.
Sintaxe
unsigned int _set_abort_behavior(
unsigned int flags,
unsigned int mask
);
Parâmetros
flags
Novo valor das abort bandeiras.
mask
Máscara para os abort bits das bandeiras a definir.
Valor de retorno
O valor antigo das bandeiras.
Observações
Existem duas abort bandeiras: _WRITE_ABORT_MSG e _CALL_REPORTFAULT.
_WRITE_ABORT_MSG determina se uma mensagem de texto útil é impressa quando um programa é terminado de forma anormal. A mensagem indica que a aplicação chamou a abort função. O comportamento padrão é imprimir a mensagem.
_CALL_REPORTFAULT, se ativado, invoca o mecanismo Windows Error Reporting Service (anteriormente conhecido como Dr. Watson) para reportar falhas à Microsoft quando abort é chamado. Por defeito, o relatório de crash dump está ativado em versões que não são DEBUG. Se o handler de relatório de erros do Windows não for invocado, então abort chama _exit para terminar o processo com o código de saída 3 e devolve o controlo ao processo pai ou ao sistema operativo.
_exit Não limpa buffers de fluxo nem faz atexit/_onexit processamento.
Por razões de compatibilidade com o Windows, ao abort fazer chamadas _exit, pode invocar a API do Windows ExitProcess , que por sua vez permite a execução de rotinas de terminação de DLL. Os destrutores não são executados no executável, mas o mesmo pode não ser verdade para DLLs carregadas no espaço de processamento do executável. Este comportamento não está estritamente em conformidade com o padrão C++. Para terminar imediatamente um processo, incluindo quaisquer DLLs, use a API do Windows TerminateProcess . Também pode registar um manipulador de sinal de aborto que invoca TerminateProcess comportamentos conformes ao padrão. O comportamento conforme pode ter algum custo na compatibilidade com o Windows.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar isso, veja Estado global no CRT.
Requerimentos
| Rotina | Cabeçalho obrigatório |
|---|---|
_set_abort_behavior |
<stdlib.h> |
Para obter mais informações sobre compatibilidade, consulte Compatibilidade.
Example
// crt_set_abort_behavior.c
// compile with: /TC
#include <stdlib.h>
int main()
{
printf("Suppressing the abort message. If successful, this message"
" will be the only output.\n");
// Suppress the abort message
_set_abort_behavior( 0, _WRITE_ABORT_MSG);
abort();
}
Suppressing the abort message. If successful, this message will be the only output.