#define MAX_FN 32 static void(*atexit_fn[MAX_FN])(void); static int atexit_fn_count = 0; int atexit(void(*fn)(void)) { if (atexit_fn_count == MAX_FN) { return -1; } atexit_fn[atexit_fn_count++] = fn; return 0; } void __crt_run_atexit() { for (int i = 0; i < atexit_fn_count; i++) { atexit_fn[i](); } }