atexit

종료 시 지정된 함수를 처리합니다.

구문

int atexit(
   void (__cdecl *func )( void )
);

매개 변수

func
호출할 함수입니다.

반환 값

atexit는 성공 시 0을 반환하고, 오류 발생 시 0이 아닌 값을 반환합니다.

설명

함수는 atexit 프로그램이 정상적으로 종료될 때 호출할 함수 func 의 주소를 전달합니다. atexit를 연속적으로 호출하면 LIFO(후입선출) 순서대로 실행되는 함수의 레지스터가 만들어집니다. 전달된 함수는 매개 변수를 atexit 사용할 수 없습니다. atexit_onexit는 힙을 사용하여 함수의 레지스터를 저장합니다. 따라서 등록 가능한 함수의 수는 힙 메모리에 의해서만 제한됩니다.

함수의 atexit 코드에는 함수가 호출될 때 atexit 이미 언로드되었을 수 있는 DLL에 대한 종속성이 포함되어서는 안 됩니다.

ANSI 준수 애플리케이션을 생성하려면 ANSI 표준 atexit 함수(유사한 _onexit 함수가 아닌)를 사용합니다.

요구 사항

루틴에서 반환된 값 필수 헤더
atexit <stdlib.h>

예시

이 프로그램은 atexit 호출 시 실행할 함수 스택에 4개의 함수를 푸시합니다. 프로그램이 종료되면 LIFO(후입선출) 방식으로 이러한 프로그램이 실행됩니다.

// crt_atexit.c
#include <stdlib.h>
#include <stdio.h>

void fn1( void ), fn2( void ), fn3( void ), fn4( void );

int main( void )
{
   atexit( fn1 );
   atexit( fn2 );
   atexit( fn3 );
   atexit( fn4 );
   printf( "This is executed first.\n" );
}

void fn1()
{
   printf( "next.\n" );
}

void fn2()
{
   printf( "executed " );
}

void fn3()
{
   printf( "is " );
}

void fn4()
{
   printf( "This " );
}
This is executed first.
This is executed next.

참고 항목

프로세스 및 환경 제어
abort
exit, _Exit, _exit
_onexit, _onexit_m