Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.