atexit
Elabora la funzione specificata all'uscita.
int atexit(
void (__cdecl *func )( void )
);
Parametri
- func
Funzione da chiamare.
Valore restituito
atexit restituisce 0 in caso di esito positivo, o un valore diverso da zero se si verifica un errore.
Note
Alla funzione atexit viene passato l'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 sulla base dell'ordine LIFO (last-in, first-out). Le funzioni passate a atexit non accettano parametri. atexit e _onexit utilizzano l'heap per mantenere il registro delle funzioni. Pertanto, il numero delle funzioni che possono essere registrate è limitato solo dalla memoria heap.
Il codice nella funzione atexit non deve contenere alcuna dipendenza da qualsiasi DLL che può ancora essere scaricata quando viene chiamata la funzione atexit.
Per generare un'applicazione conforme a ANSI, utilizzare la funzione standard ANSI atexit (anziché la funzione simile _onexit).
Requisiti
Routine |
Intestazione obbligatoria |
---|---|
atexit |
<stdlib.h> |
Esempio
Questo programma fa in modo che vengano eseguite quattro funzioni dello stack di funzioni quando viene chiamato atexit. Al termine del programma, questi programmi vengono eseguiti sulla base dell'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 " );
}
Equivalente .NET Framework
System::Diagnostics::Process::Exited