다음을 통해 공유


_onexit, _onexit_m

종료 시 호출 되는 루틴을 등록 합니다.

_onexit_t _onexit(
   _onexit_t function
);
_onexit_t_m _onexit_m(
   _onexit_t_m function
);

매개 변수

  • function
    종료할 때 호출 되는 함수에 대한 포인터입니다.

반환 값

_onexit 는 성공하거나 NULL 인 경우, 함수 포인터를 저장할 공간이 없는 경우, 함수에 대한 포인터를 반환합니다.

설명

프로그램이 정상적으로 종료될 때 함수 _onexit은 함수 function의 주소로써 전달됩니다. _onexit에 대한 연속적인 호출은 후입선출(LIFO) 순서대로 실행되는 함수 레지스터를 생성합니다. _onexit로 전달된 함수는 매개 변수를 사용할 수 없습니다.

_onexit 이 DLL 내에서 호출된 경우, _onexit 를 사용해 등록된 루틴은 DllMain 가 DLL_PROCESS_DETACH 를 사용하여 호출된 이후 DLL의 언로드를 실행합니다.

_onexit은 Microsoft 확장입니다. ANSI 이식성에 대해 atexit 를 사용하십시오. 이 함수의 _onexit_m 버전은 혼합된 모드 사용입니다.

요구 사항

루틴

필수 헤더

_onexit

<stdlib.h>

호환성에 대한 자세한 내용은 소개 단원의 호환성 부분을 참조하십시오.

예제

// crt_onexit.c

#include <stdlib.h>
#include <stdio.h>

/* Prototypes */
int fn1(void), fn2(void), fn3(void), fn4 (void);

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

int fn1()
{
   printf( "next.\n" );
   return 0;
}

int fn2()
{
   printf( "executed " );
   return 0;
}

int fn3()
{
   printf( "is " );
   return 0;
}

int fn4()
{
   printf( "This " );
   return 0;
}

Output

This is executed first.
This is executed next.

해당 .NET Framework 항목

System::Diagnostics::Process::Exited

참고 항목

참조

프로세스 및 환경 제어

atexit

exit, _exit

__dllonexit