Namespaces
Variants

atexit

From cppreference.net
헤더 파일에 정의됨 <stdlib.h>
int atexit ( void ( * func ) ( void ) ) ;

func 가 가리키는 함수를 정상적인 프로그램 종료 시(예: exit() 호출 또는 main() 에서 반환) 호출되도록 등록합니다. 등록된 순서의 역순으로 함수가 호출되며, 즉 가장 마지막에 등록된 함수가 가장 먼저 실행됩니다.

동일한 함수가 여러 번 등록될 수 있습니다.

구현체는 최소 32 개의 함수 등록을 지원함이 보장됩니다. 정확한 제한은 구현체에 따라 정의됩니다.

목차

매개변수

func - 정상적인 프로그램 종료 시 호출될 함수에 대한 포인터

반환값

0 등록이 성공하면 0, 그렇지 않으면 0이 아닌 값을 반환합니다.

예제

#include <stdlib.h>
#include <stdio.h>
void f1(void)
{
    puts("f1");
}
void f2(void)
{
    puts("f2");
}
int main(void)
{
    if ( ! atexit(f1) && ! atexit(f2) && ! atexit(f2) )
        return EXIT_SUCCESS ;
    // atexit registration failed
    return EXIT_FAILURE ;
}   // <- if registration was successful calls f2, f2, f1

출력:

f2
f2
f1

참조문헌

  • C17 표준 (ISO/IEC 9899:2018):
  • 7.22.4.2 atexit 함수 (p: 255)
  • C11 표준 (ISO/IEC 9899:2011):
  • 7.22.4.2 atexit 함수 (p: 350)
  • C99 표준 (ISO/IEC 9899:1999):
  • 7.20.4.2 atexit 함수 (p: 315)
  • C89/C90 표준 (ISO/IEC 9899:1990):
  • 7.10.4.2 atexit 함수 (p: 156)

참고 항목

quick_exit 호출 시 실행될 함수를 등록합니다
(함수)