1 #include <unistd.h> 2 #define NONEXIT 34 3 void (*_atexitfns[NONEXIT])(void); _doatexits(void)4void _doatexits(void){ 5 int i; 6 void (*f)(void); 7 for(i = NONEXIT-1; i >= 0; i--) 8 if(_atexitfns[i]){ 9 f = _atexitfns[i]; 10 _atexitfns[i] = 0; /* self defense against bozos */ 11 (*f)(); 12 } 13 } exit(int status)14void exit(int status) 15 { 16 _doatexits(); 17 _exit(status); 18 } 19