Condividi tramite


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

Vedere anche

Riferimenti

Controllo processo e ambiente

abort

exit, _exit

_onexit, _onexit_m