2009-11-21 8 views

Respuesta

23

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.

+0

realmente agradable respuesta :) – SjB

+3

De vez en cuando una ardilla ciega encuentra una nuez ... –

+0

justo lo que necesitaba, gracias! – edarroyo

9

Pruebe la función atexit():

void myfunc() { 
    /* Called when the program ends */ 
} 

int main(int arc, char *argv[]) { 
    atexit(myfunc); 
    ... 
    return 0; 
} 
2

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.

1

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

Cuestiones relacionadas