_set_abort_behavior
Określa akcję, która ma zostać podjęta, gdy program zostanie nieprawidłowo zakończony.
Uwaga
Nie należy używać funkcji do zamykania abort
aplikacji ze sklepu Microsoft Store, z wyjątkiem scenariuszy testowania lub debugowania. Programowe lub interfejsu użytkownika sposoby zamykania aplikacji ze Sklepu nie są dozwolone zgodnie z zasadami sklepu Microsoft Store. Aby uzyskać więcej informacji, zobacz Cykl życia aplikacji platformy UNIWERSALNEJ systemu Windows.
Składnia
unsigned int _set_abort_behavior(
unsigned int flags,
unsigned int mask
);
Parametry
flags
Nowa wartość abort
flag.
mask
Maskuj abort
bity flag do ustawienia.
Wartość zwracana
Stara wartość flag.
Uwagi
Istnieją dwie abort
flagi: _WRITE_ABORT_MSG
i _CALL_REPORTFAULT
. _WRITE_ABORT_MSG
określa, czy pomocna wiadomość SMS jest drukowana, gdy program jest nieprawidłowo przerywany. Komunikat informuje, że aplikacja nazwała abort
funkcję . Domyślnym zachowaniem jest wydrukowanie komunikatu. _CALL_REPORTFAULT
, jeśli ustawiono, wywołuje mechanizm usługi Raportowanie błędów systemu Windows (wcześniej znany jako dr Watson) w celu zgłaszania niepowodzeń do firmy Microsoft podczas abort
wywoływania. Domyślnie raportowanie zrzutów awaryjnych jest włączone w kompilacjach innych niż DEBUG. Jeśli program obsługi raportowania błędów systemu Windows nie jest wywoływany, abort
wywołania _exit
w celu zakończenia procesu za pomocą kodu zakończenia 3 i zwracają kontrolę do procesu nadrzędnego lub systemu operacyjnego. _exit
nie opróżnia strumienia ani atexit
/_onexit
nie przetwarza.
Ze względu na zgodność systemu Windows, gdy abort
wywołuje _exit
metodę , może wywołać interfejs API systemu Windows ExitProcess
, co z kolei umożliwia uruchamianie procedur kończenia żądań bibliotek DLL. Destruktory nie są uruchamiane w pliku wykonywalnym, ale te same mogą nie być prawdziwe w bibliotekach DLL załadowanych w przestrzeni procesowej pliku wykonywalnego. To zachowanie nie jest ściśle zgodne ze standardem C++. Aby natychmiast zakończyć proces wraz z dowolnymi bibliotekami DLL, użyj interfejsu API systemu Windows TerminateProcess
. Można również zarejestrować program obsługi sygnałów przerwania, który wywołuje TerminateProcess
zachowanie zgodne ze standardami. Zgodne zachowanie może być kosztowne w przypadku zgodności systemu Windows.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby go zmienić, zobacz Stan globalny w CRT.
Wymagania
Procedura | Wymagany nagłówek |
---|---|
_set_abort_behavior |
<stdlib.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Przykład
// 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.