exit, _Exit, _exit

호출 프로세스를 종료합니다. exit 함수는 정리 후 종료합니다. _exit_Exit 는 즉시 종료합니다.

참고 항목

테스트 또는 디버깅 시나리오를 제외하고 이 메서드를 사용하여 UWP(유니버설 Windows 플랫폼) 앱을 종료하지 마세요. Microsoft Store 정책에 따라 스토어 앱을 닫는 프로그래밍 방식 또는 UI 방법은 허용되지 않습니다. 자세한 내용은 UWP 앱 수명 주기를 참조 하세요. UWP 앱에 대한 자세한 내용은 유니버설 Windows 플랫폼 설명서를 참조하세요.

구문

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

매개 변수

status
종료 상태 코드입니다.

설명

exit, _Exit_exit 함수는 호출 프로세스를 종료합니다. exit 함수는 스레드 로컬 개체에 대해 소멸자를 호출한 다음 atexit_onexit에 의해 등록된 함수를 LIFO(후입선출) 순서로 호출하고 프로세스를 종료하기 전에 모든 파일 버퍼를 플러시합니다. _Exit_exit 함수는 스레드 로컬 개체를 삭제하거나 atexit 또는 _onexit 함수를 처리하지 않고 스트림 버퍼를 플러시하지 않은 상태로 프로세스를 종료합니다.

_Exit_exit 호출은 exit값을 반환하지 않지만, 프로세스가 종료된 후 호스트 환경에서 값을 status 사용하거나 호출 프로세스가 있는 경우 대기 중인 프로세스를 사용할 수 있습니다. 일반적으로 호출자는 status 값을 0으로 설정하여 정상 종료를 나타내거나 다른 값으로 설정하여 오류를 나타냅니다. status 값은 운영 체제 일괄 처리 명령 ERRORLEVEL 에 제공되며, 값 0을 나타내는 EXIT_SUCCESS또는 값 1을 나타내는 EXIT_FAILURE의 두 상수 중 하나로 표현됩니다.

exit, _Exit, _exit, quick_exit, _cexit_c_exit 함수는 다음과 같이 동작합니다.

함수 설명
exit 전체 C 라이브러리 종료 절차를 수행하고, 프로세스를 종료하고, 제공된 상태 코드를 호스트 환경에 제공합니다.
_Exit 최소 C 라이브러리 종료 절차를 수행하고, 프로세스를 종료하고, 제공된 상태 코드를 호스트 환경에 제공합니다.
_exit 최소 C 라이브러리 종료 절차를 수행하고, 프로세스를 종료하고, 제공된 상태 코드를 호스트 환경에 제공합니다.
quick_exit 빠른 C 라이브러리 종료 절차를 수행하고, 프로세스를 종료하고, 제공된 상태 코드를 호스트 환경에 제공합니다.
_cexit 전체 C 라이브러리 종료 절차를 수행하고 호출자에게 반환됩니다. 프로세스를 종료하지 않습니다.
_c_exit 최소 C 라이브러리 종료 절차를 수행하고 호출자에게 반환됩니다. 프로세스를 종료하지 않습니다.

함수 또는 _exit 함수를 exit_Exit 호출할 때 호출 시 존재하는 임시 또는 자동 개체에 대한 소멸자가 호출되지 않습니다. 자동 개체는 함수에 정의된 비정적 로컬 개체입니다. 임시 개체는 함수 호출에서 반환된 값과 같이 컴파일러에서 만든 개체입니다. 호출exit_Exit하기 전에 자동 개체를 삭제하거나 _exit다음과 같이 개체의 소멸자를 명시적으로 호출하려면 다음을 수행합니다.

void last_fn() {}
    struct SomeClass {} myInstance{};
    // ...
    myInstance.~SomeClass(); // explicit destructor call
    exit(0);
}

에서 DllMain호출 exit 하는 데 사용하지 DLL_PROCESS_ATTACH 마세요. 함수를 DLLMain 종료하려면 .에서 DLL_PROCESS_ATTACH반환 FALSE 합니다.

기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT의 전역 상태를 참조하세요.

요구 사항

함수 필수 헤더
exit, _Exit, _exit <process.h> 또는 <stdlib.h>

호환성에 대한 자세한 내용은 호환성을 참조하세요.

예시

// 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 );
}

참고 항목

프로세스 및 환경 제어
abort
atexit
_cexit, _c_exit
_exec, _wexec 함수
_onexit, _onexit_m
quick_exit
_spawn, _wspawn 함수
system, _wsystem