atexit
Procesa la función especificada a la salida.
Sintaxis
int atexit(
void (__cdecl *func )( void )
);
Parámetros
func
Función a la que se llama.
Valor devuelto
atexit
devuelve 0 si se ejecuta correctamente, o un valor distinto de cero si se produce un error.
Comentarios
A la función atexit
se pasa la dirección de una función func
que se llamará cuando el programa finalice con normalidad. Las llamadas sucesivas a atexit
crean un registro de las funciones que se ejecutan por orden de último en entrar, primero en salir (LIFO). Las funciones pasadas a atexit
no pueden tomar parámetros. atexit
y _onexit
usan el montón para almacenar el registro de funciones. Por lo tanto, el número de funciones que se pueden registrar no tiene más límite que la memoria del montón.
El código de la función atexit
no debe contener ninguna dependencia de ningún archivo DLL que pueda haberse descargado ya cuando se llama a la función atexit
.
Para generar una aplicación compatible con ANSI, use la función estándar ANSI atexit
(y no la función similar _onexit
).
Requisitos
Routine | Encabezado necesario |
---|---|
atexit |
<stdlib.h> |
Ejemplo
Este programa inserta cuatro funciones en la pila de funciones que se ejecuta al llamar a atexit
. Cuando el programa termina, estos programas se ejecutan por último en entrar, primero en salir.
// 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 " );
}
This is executed first.
This is executed next.
Consulte también
Control de procesos y entornos
abort
exit
, , _Exit
, _exit
_onexit
, _onexit_m