atexit

Elabora la funzione specificata in uscita.

Sintassi

int atexit(
   void (__cdecl *func )( void )
);

Parametri

func
Funzione da chiamare.

Valore restituito

atexit restituisce 0 se l'esito è positivo o un valore diverso da zero se si verifica un errore.

Osservazioni:

La atexit funzione viene passata all'indirizzo di una funzione func da chiamare quando il programma termina normalmente. Le chiamate successive a atexit creano un registro di funzioni che vengono eseguite in base all'ordine LIFO (last-in-first-out). Le funzioni passate a non possono accettare atexit parametri. atexit e _onexit usano l'heap per mantenere il registro di funzioni. Per questa ragione, il numero di funzioni che possono essere registrate è limitato solo dalla memoria dell'heap.

Il codice nella atexit funzione non deve contenere alcuna dipendenza da qualsiasi DLL che potrebbe essere già stata scaricata quando viene chiamata la atexit funzione.

Per generare un'applicazione conforme a ANSI, usare la funzione ANSI-standard atexit (anziché la funzione simile _onexit ).

Requisiti

Ciclo Intestazione obbligatoria
atexit <stdlib.h>

Esempio

Questo programma effettua il push di quattro funzioni nello stack di funzioni da eseguire quando viene chiamata atexit. Alla chiusura del programma, questi programmi vengono eseguiti in ordine LIFO (last-in-first-out).

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

Vedi anche

Processo e controllo dell'ambiente
abort
exit, _Exit, _exit
_onexit, _onexit_m