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