¿Es posible llamar a una función adicional cuando main() sale en C?Llamar a otra función cuando main() sale de
Gracias!
¿Es posible llamar a una función adicional cuando main() sale en C?Llamar a otra función cuando main() sale de
Gracias!
Puede registrar funciones para ejecutar después de main
salidas usando the atexit
function.
MSDN tiene a nice succinct example de cómo se hace esto. Básicamente, las funciones registradas con atexit
se ejecutan en orden inverso al de cuando se registraron.
Pruebe la función atexit()
:
void myfunc() {
/* Called when the program ends */
}
int main(int arc, char *argv[]) {
atexit(myfunc);
...
return 0;
}
Gran preguntas y respuestas. Solo una nota al margen. El abuso de una característica similar en las bibliotecas de Delphi dio lugar a aplicaciones que son molestamente lentas de cerca.
Mientras atexit()
es el estándar para el registro de una función a ejecutar a la terminación del proceso, GCC proporciona un destructor function attribute* que causa una función que se llamará automáticamente cuando main()
ha completado o exit()
ha sido llamado.
void __attribute__ ((destructor)) my_fini(void);
* GCC específica
realmente agradable respuesta :) – SjB
De vez en cuando una ardilla ciega encuentra una nuez ... –
justo lo que necesitaba, gracias! – edarroyo