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가 호출되었을 때 실행되는 함수의 스택에 네 개의 함수를 넣습니다. 프로그램이 종료될 때, 이러한 프로그램들이 후입선출 기반에서 실행됩니다.
// 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 " );
}
해당 .NET Framework 항목
System::Diagnostics::Process::Exited