Share via


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