Home
atexit.c - scc - simple c99 compiler HTML git clone git://git.simple-cc.org/scc DIR Log DIR Files DIR Refs DIR Submodules DIR README DIR LICENSE --- atexit.c (369B) --- 1 #include <stdlib.h> 2 #include <errno.h> 3 4 #include "../libc.h" 5 6 #undef atexit 7 8 static void (*funs[_ATEXIT_MAX])(void); 9 static unsigned nfuns; 10 11 static void 12 callhdls(void) 13 { 14 while (nfuns > 0) 15 (*funs[--nfuns])(); 16 } 17 18 int 19 atexit(void (*fun)(void)) 20 { 21 if (nfuns == _ATEXIT_MAX) { 22 errno = ENOMEM; 23 return -1; 24 } 25 funs[nfuns++] = fun; 26 _atexithdl = callhdls; 27 28 return 0; 29 }