exit.c 321 B

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