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