Ist es möglich, eine zusätzliche Funktion aufzurufen, wenn main() in C beendet wird?Aufruf einer anderen Funktion, wenn main() beendet wird
Danke!
Ist es möglich, eine zusätzliche Funktion aufzurufen, wenn main() in C beendet wird?Aufruf einer anderen Funktion, wenn main() beendet wird
Danke!
Sie können Funktionen registrieren, die nach main
Exits mit the atexit
function ausgeführt werden sollen.
MSDN hat a nice succinct example davon, wie dies getan wird. Grundsätzlich werden die mit atexit
registrierten Funktionen in umgekehrter Reihenfolge ihrer Registrierung ausgeführt.
Versuchen Sie, die atexit()
Funktion:
void myfunc() {
/* Called when the program ends */
}
int main(int arc, char *argv[]) {
atexit(myfunc);
...
return 0;
}
Große Frage und Antworten. Nur eine Randnotiz. Der Missbrauch eines ähnlichen Features in Delphi-Bibliotheken führte zu Anwendungen, die beim Schließen nervend langsam waren.
Während atexit()
ist der Standard für eine Funktion bei der Registrierung Prozessbeendigung auszuführen, GCC stellt eine destructorfunction attribute*, die eine Funktion bewirkt automatisch aufgerufen wird, wenn main()
abgeschlossen ist oder exit()
aufgerufen wurde.
void __attribute__ ((destructor)) my_fini(void);
* GCC spezifische
eigentlich nette Antwort :) – SjB
Gelegentlich wird ein blindes Eichhörnchen findet eine Mutter ... –
genau das, was ich brauchte, danke! – edarroyo