#include #include static void my_exit1(void), my_exit2(void); int i; int main(int argc, char **argv) { i = 0; if (atexit(my_exit2) != 0) { perror("can't register my_exit2\n"); exit(1); } if (atexit(my_exit1) != 0) { perror("can't register my_exit1"); exit(1); } if (atexit(my_exit1) != 0) { perror("can't register my_exit1"); exit(1); } printf("main is done\n"); return(0); } static void my_exit1(void) { printf("first exit handler: %d\n", i); i++; } static void my_exit2(void) { printf("second exit handler: %d\n", i); }