다음을 통해 공유


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

참고 항목

참조

프로세스 및 환경 제어

abort

exit, _exit

_onexit, _onexit_m