#include <stdlib.h> int atexit( void (*func)(void) );
The function atexit() causes the function pointed to by func to be called when the program terminates. You can make multiple calls to atexit() (at least 32, depending on your compiler) and those functions will be called in reverse order of their establishment. The return value of atexit() is zero upon success, and nonzero on failure.
exit() and abort()