Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Registers a routine to be called at exit time.
Syntax
_onexit_t _onexit(
_onexit_t function
);
_onexit_t_m _onexit_m(
_onexit_t_m function
);
Parameters
function
Pointer to a function to be called at exit.
Return value
_onexit returns a pointer to the function if successful or NULL if there's no space to store the function pointer.
Remarks
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 can't take parameters.
In the case when _onexit is called from within a DLL, routines registered with _onexit run when the DLL is unloaded, 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.
Requirements
| Routine | Required header |
|---|---|
_onexit |
<stdlib.h> |
For more compatibility information, see Compatibility.
Example
// 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.
See also
Process and environment control
atexit
exit, _Exit, _exit
__dllonexit