Udostępnij za pośrednictwem


_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 _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.

Zobacz też

abort