Namespaces
Variants

exit

From cppreference.net
헤더 파일에 정의됨 <stdlib.h>
void exit ( int exit_code ) ;
(C11 이전)
_Noreturn void exit ( int exit_code ) ;
(C11 이후)
(C23 이전)
[ [ noreturn ] ] void exit ( int exit_code ) ;
(C23 이후)

정상적인 프로그램 종료를 발생시킵니다.

여러 가지 정리 단계가 수행됩니다:

  • atexit 에 전달된 함수들이 등록된 역순으로 호출됨
  • 모든 C 스트림이 플러시되고 닫힘
  • tmpfile 로 생성된 파일들이 제거됨
  • 호스트 환경으로 제어가 반환됨. exit_code 가 0이거나 EXIT_SUCCESS 인 경우, 성공적인 종료를 나타내는 구현 정의 상태가 반환됨. exit_code EXIT_FAILURE 인 경우, 비성공적인 종료를 나타내는 구현 정의 상태가 반환됨. 다른 경우에는 구현 정의 상태 값이 반환됨.

목차

참고 사항

at_quick_exit 에 등록된 함수들은 호출되지 않습니다.

프로그램이 exit 을 두 번 이상 호출하거나, exit quick_exit 을 모두 호출할 경우 그 동작은 정의되지 않습니다.

atexit 로 등록된 함수 호출 중에 해당 함수가 longjmp 로 종료되는 경우, 그 동작은 정의되지 않습니다.

main 함수 에서 반환될 때, return 문을 통해 또는 함수의 끝에 도달함으로써, exit() 가 실행되며, 반환 문의 인수(또는 암시적 반환이 사용된 경우 0 )가 exit_code 로 전달됩니다.

매개변수

exit_code - 프로그램의 종료 상태

반환값

(없음)

예제

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    FILE *fp = fopen("data.txt","r");
    if (fp == NULL)
    {
       fprintf(stderr, "error opening file data.txt in function main()\n");
       exit( EXIT_FAILURE );
    }
    fclose(fp);
    printf("Normal Return\n");
    return EXIT_SUCCESS ;
}

가능한 출력:

error opening file data.txt in function main()

참고문헌

  • C17 표준 (ISO/IEC 9899:2018):
  • 7.22.4.4 exit 함수 (p: 256)
  • C11 표준 (ISO/IEC 9899:2011):
  • 7.22.4.4 exit 함수 (p: 351-352)
  • C99 표준 (ISO/IEC 9899:1999):
  • 7.20.4.3 exit 함수 (p: 315-316)
  • C89/C90 표준 (ISO/IEC 9899:1990):
  • 4.10.4.3 exit 함수

참고 항목

비정상적인 프로그램 종료를 유발합니다 (정리 작업 없이)
(함수)
exit() 호출 시 실행될 함수를 등록합니다
(함수)
완전한 정리 작업 없이 정상적인 프로그램 종료를 유발합니다
(함수)