Esta documentación está archivada y no tiene mantenimiento.

_onexit, _onexit_m

Registers a routine to be called at exit time.

_onexit_t _onexit(
   _onexit_t function
_onexit_t_m _onexit_m(
   _onexit_t_m function



Pointer to a function to be called at exit.

_onexit returns a pointer to the function if successful or NULL if there is no space to store the function pointer.

The _onexit function is passed the address of a function (function) to be called when the program terminates normally. Successive calls to _onexit create a register of functions that are executed in LIFO (last-in-first-out) order. The functions passed to _onexit cannot take parameters.

In the case when _onexit is called from within a DLL, routines registered with _onexit run on a DLL's unloading after DllMain is called with DLL_PROCESS_DETACH.

_onexit is a Microsoft extension. For ANSI portability, use atexit. The _onexit_m version of the function is for mixed mode use.

Routine Required header Compatibility



Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition, Windows Millennium Edition, Windows NT 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003

For more compatibility information, see Compatibility in the Introduction.

// 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;

This is executed first.
This is executed next.