exit, _exit

Kończy proces wywołujący—exit kończy go po oczyszczaniu; _exit kończy go natychmiast.

[!UWAGA]

Nie należy używać tej metody do zamykania aplikacji Windows Store, z wyjątkiem testowania i debugowania scenariuszy.Sposoby Programmatic lub interfejs użytkownika, które zamykają Windows Store aplikację nie są dozwolone zgodnie z pkt 3.6 Wymogów w zakresie certyfikacji aplikacji Windows 8.Aby uzyskać więcej informacji, zobacz Cykl życia aplikacji (aplikacje w Sklepie Windows).

void exit( 
   int status 
);
void _exit( 
   int status 
);

Parametry

  • status
    Stan wyjścia.

Uwagi

Funkcje exit i _exit kończą proces wywołujący.Wywołania exit—w kolejności ostatni na wejściu, pierwszy na wyjściu (LIFO)—funkcje, które są zarejestrowane przez atexit i _onexit, a następnie opróżnia wszystkie bufory plików, zanim zakończy proces._exit kończy proces bez przetwarzania atexit lub _onexit i bez opróżniania buforów strumieni.Zazwyczaj wartość status jest ustawiana na 0, aby wskazać normalne wyjście lub na inną wartość, aby wskazać błąd.

Chociaż wywołania exit i _exit nie zwracają wartości, mniej znaczący bajt wartości status jest dostępny dla oczekującego procesu wywołującego, jeśli taki istnieje, po zakończeniu procesu wywołującego.Wartość status jest dostępna dla polecenia wsadowego systemu operacyjnego ERRORLEVEL i jest reprezentowana przez jedną z dwóch stałych: EXIT_SUCCESS, która reprezentuje wartość 0, lub EXIT_FAILURE, która reprezentuje wartość 1.exit, _exit, _cexit i _c_exit mają następujące zachowanie.

Funkcja

Opis

exit

Wykonuje kompletne procedury kończenia biblioteki C, kończy proces i kończy pracę z dostarczonym kodem stanu.

_exit

Wykonuje szybkie procedury kończenia biblioteki C, kończy proces i kończy pracę z dostarczonym kodem stanu.

_cexit

Wykonuje kompletne procedury kończenia biblioteki C i powraca do obiektu wywołującego, ale nie kończy procesu.

_c_exit

Wykonuje szybkie procedury kończenia biblioteki C i powraca do obiektu wywołującego, ale nie kończy procesu.

Wywołując funkcję exit lub _exit, destruktory każdego tymczasowego lub automatycznego obiektu, który istnieje w momencie wywołania, nie są wywoływane.Obiekt automatyczny jest zdefiniowany w funkcji, gdzie obiekt nie jest zadeklarowany jako statyczny.Obiekt tymczasowy jest obiektem utworzonym przez kompilator.Aby zniszczyć obiekt automatyczny przed wywołaniem exit lub _exit, należy jawnie wywołać destruktor obiektu w następujący sposób:

myObject.myClass::~myClass();

Nie należy używać DLL_PROCESS_ATTACH w celu wywołania exit z DllMain.Jeśli chcesz zakończyć funkcję DLLMain, zwróć FALSE z DLL_PROCESS_ATTACH.

Wymagania

Funkcja

Wymagany nagłówek

exit

<process.h> lub <stdlib.h>

_exit

<process.h> lub <stdlib.h>

Dodatkowe informacje o zgodności – zobacz: Zgodność.

Przykład

// crt_exit.c
// This program returns an exit code of 1. The
// error code could be tested in a batch file.


#include <stdlib.h>

int main( void )
{
   exit( 1 );
}

Odpowiednik w programie .NET Framework

System::Diagnostics::Process::Kill

Zobacz też

Informacje

Procedury kontroli środowiska

przerwij

atexit

_cexit, _c_exit

_exec, _wexec — Funkcje

_onexit, _onexit_m

_spawn, _wspawn — Funkcje

system, _wsystem