Udostępnij za pośrednictwem


przerwij

Przerywa bieżący proces i zwraca kod błędu.

[!UWAGA]

Nie należy używać tej metody do zamykania aplikacji Windows Store, z wyjątkiem testowania i debugowania scenariuszy.Programistyczne lub wykorzystujące interfejs użytkownika sposoby zamykania aplikacji do Windows Store są niedozwolone zgodnie z wymogami w zakresie certyfikacji aplikacji dla systemu Windows 8.Aby uzyskać więcej informacji, zobacz Cykl życia aplikacji (aplikacje w Sklepie Windows).

void abort( void );

Wartość zwracana

abort nie zwraca formantu do procesu wywołującego.Domyślnie sprawdza obsługę sygnału przerwania i zgłasza SIGABRT, jeśli ustawiono jeden.Następnie abort kończy bieżący proces i zwraca kod wyjścia dla procesu nadrzędnego.

Uwagi

Specyficzne dla firmy Microsoft

Domyślnie, gdy aplikacja jest wbudowana w bibliotekę wykonawczej debugowania, procedura abort wyświetla komunikat o błędzie przed wywołaniem SIGABRT.Dla aplikacji konsoli uruchomionych w trybie konsoli komunikat jest wysyłany do obiektu STDERR.Aplikacje pulpitu systemu Windows i aplikacja konsoli w trybie okienkowym wyświetlają komunikat w polu komunikat.Aby pominąć komunikat, należy użyć _set_abort_behavior, aby wyczyścić flagę _WRITE_ABORT_MSG.Wyświetlany komunikat zależy od wersji środowiska wykonawczego.Dla aplikacji skompilowanych za pomocą najnowszej wersji środowiska Visual C++ komunikat jest podobny do tego:

R6010

- abort() has been called

W poprzednich wersjach biblioteki wykonawczej języka C był wyświetlany ten komunikat:

"This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information."

Gdy program jest skompilowany w trybie debugowania, w oknie komunikatu wyświetla opcje Przerwij, Ponów, lub Ignoruj.Jeśli użytkownik zdecyduje się na opcję Przerwij, program kończy działanie natychmiast i zwraca kod zakończenia 3.Jeśli użytkownik zdecyduje się na opcję Ponów próbę, debuger jest wywoływany dla debugowania w czasie rzeczywistym, jeżeli jest dostępny.Jeśli użytkownik zdecyduje się na opcję Ignoruj, metoda abort kontynuuje normalne przetwarzanie.

Zarówno w kompilacjach do sprzedaży, jak i do debugowania metoda abort sprawdza, czy program obsługi sygnału przerwania ustawiono.Jeśli ustawiono program obsługi sygnałów inny niż domyślny, obiekt abort wywołuje funkcję raise(SIGABRT).Użyj funkcji sygnał, aby skojarzyć funkcję obsługi sygnału przerwania z sygnałem SIGABRT.Możesz wykonywać akcje niestandardowe — na przykład czyścić zasoby lub rejestrować informacje — i kończyć aplikację własnym kodem błędu w funkcji obsługi.Jeśli nie zdefiniowano programu obsługi sygnałów niestandardowych, polecenie abort nie generuje sygnału SIGABRT.

Domyślnie w kompilacjach bez debugowania na pulpitu lub aplikacje konsoli; następnie abort wywołuje mechanizm raportowania błędów systemu Windows.Watson) zgłaszać awarie do firmy Microsoft.To zachowanie może być włączane lub wyłączane przez wywołanie _set_abort_behavior i ustawianie lub maskowanie flagi _CALL_REPORTFAULT.Gdy flaga jest ustawiona, system Windows wyświetla okno komunikatu, które zawiera tekst podobny do tego "Problem spowodował nieprawidłowe działanie programu." Użytkownik może wybrać wywoływanie debugera za pomocą przycisku Debuguj lub wybrać przycisk Zamknij program, aby zakończyć aplikację z kodem błędu zdefiniowanym przez system operacyjny.

Jeśli program obsługi raportowania błędów systemu Windows nie zostanie wywołany, metoda abort wywołuje obiekt _exit, aby zakończyć proces z kodem zakończenia 3, i zwraca kontrolę do procesu nadrzędnego lub systemu operacyjnego._exit nie opróżnia buforów strumienia lub wykonuje przetwarzanie atexit/_onexit.

Aby uzyskać więcej informacji na temat debugowania CRT, zobacz Techniki testowania CRT.

End specyficzny dla Microsoft

Wymagania

Procedura

Wymagany nagłówek

abort

<process.h> lub <stdlib.h>

Przykład

Poniższy program próbuje otworzyć plik i przerywa, jeśli próba nie powiedzie się.

// crt_abort.c
// compile with: /TC
// This program demonstrates the use of
// the abort function by attempting to open a file
// and aborts if the attempt fails.

#include  <stdio.h>
#include  <stdlib.h>

int main( void )
{
    FILE    *stream = NULL;
    errno_t err = 0;

    err = fopen_s(&stream, "NOSUCHF.ILE", "r" );
    if ((err != 0) || (stream == NULL))
    {
        perror( "File could not be opened" );
        abort();
    }
    else
    {
        fclose( stream );
    }
}
  

Odpowiednik w programie .NET Framework

Nie dotyczy. Aby wywołać standardową funkcję C, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz Przykłady wywołań platformy.

Zobacz też

Informacje

Użycie przerywania

abort — funkcja (C)

Procedury kontroli środowiska

_exec, _wexec — Funkcje

exit, _exit

wywołaj

sygnał

_spawn, _wspawn — Funkcje

_DEBUG

_set_abort_behavior