È possibile chiamare una funzione extra quando main() si chiude in C?Chiama un'altra funzione quando main() chiude
Grazie!
È possibile chiamare una funzione extra quando main() si chiude in C?Chiama un'altra funzione quando main() chiude
Grazie!
È possibile registrare le funzioni da eseguire dopo le uscite main
utilizzando the atexit
function.
MSDN ha a nice succinct example di come è stato fatto. Fondamentalmente, le funzioni registrate con atexit
vengono eseguite in ordine inverso rispetto a quando sono state registrate.
Prova la funzione atexit()
:
void myfunc() {
/* Called when the program ends */
}
int main(int arc, char *argv[]) {
atexit(myfunc);
...
return 0;
}
Grande domande e risposte. Solo una nota a margine. L'abuso di una funzionalità simile nelle librerie di Delphi ha portato ad applicazioni che sono fastidiosamente lente alla chiusura.
Mentre atexit()
è lo standard per la registrazione di una funzione di funzionare a terminazione processo, GCC fornisce un distruttore function attribute* che provoca una funzione da chiamare automaticamente quando main()
ha completato o exit()
è stato chiamato.
void __attribute__ ((destructor)) my_fini(void);
* GCC specifico
davvero bello risposta :) – SjB
Di tanto in tanto uno scoiattolo cieco trova una noce ... –
proprio quello che mi serviva, grazie! – edarroyo