atexitatexit

Elabora la funzione specificata in uscita.Processes the specified function at exit.

SintassiSyntax

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

ParametriParameters

funcfunc
Funzione da chiamare.Function to be called.

Valore restituitoReturn Value

atexit restituisce 0 se ha esito positivo o un valore diverso da zero se si verifica un errore.atexit returns 0 if successful, or a nonzero value if an error occurs.

NoteRemarks

Il atexit funzione viene passata l'indirizzo di una funzione func da chiamare quando il programma termina normalmente.The atexit function is passed the address of a function func to be called when the program terminates normally. Le chiamate successive a atexit creano un registro di funzioni che vengono eseguite nell'ordine last-in, First-Out (LIFO).Successive calls to atexit create a register of functions that are executed in last-in, first-out (LIFO) order. Le funzioni passate a atexit non possono accettare parametri.The functions passed to atexit cannot take parameters. atexit e OnExit utilizzano l'heap per contenere il Registro di funzioni.atexit and _onexit use the heap to hold the register of functions. Per questa ragione, il numero di funzioni che possono essere registrate è limitato solo dalla memoria dell'heap.Thus, the number of functions that can be registered is limited only by heap memory.

Il codice di atexit funzione non deve contenere tutte le dipendenze in qualsiasi DLL che è stato già scaricato quando il atexit funzione viene chiamata.The code in the atexit function should not contain any dependency on any DLL which could have already been unloaded when the atexit function is called.

Per generare un'applicazione compatibile con ANSI, utilizzare lo standard ANSI atexit funzione (anziché simile OnExit funzione).To generate an ANSI-compliant application, use the ANSI-standard atexit function (rather than the similar _onexit function).

RequisitiRequirements

RoutineRoutine Intestazione obbligatoriaRequired header
atexitatexit <stdlib.h><stdlib.h>

EsempioExample

Questo programma push quattro funzioni nello stack di funzioni da eseguire quando atexit viene chiamato.This program pushes four functions onto the stack of functions to be executed when atexit is called. Alla chiusura del programma, questi programmi vengono eseguiti in ordine LIFO (last-in-first-out).When the program exits, these programs are executed on a last in, first out basis.

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

Vedere ancheSee also

Controllo di processi e ambienteProcess and Environment Control
abortabort
exit, _Exit, _exitexit, _Exit, _exit
_onexit, _onexit_m_onexit, _onexit_m