fperr.c 618 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #include <stdio.h>
  2. #include <signal.h>
  3. #include "fperr.h"
  4. void fperr(errno)
  5. int errno;
  6. {
  7. #if defined(DEBUG) || 0
  8. switch(errno) {
  9. case EFDENORMAL:
  10. fputs("\nDenormal - ", stderr);
  11. break;
  12. case EFINFINITY:
  13. fputs("\nInfinity - ", stderr);
  14. break;
  15. case EFNAN:
  16. fputs("\nNaN - ", stderr);
  17. break;
  18. case EFOVERFLOW:
  19. fputs("\nOverflow - ", stderr);
  20. break;
  21. case EFUNDERFLOW:
  22. fputs("\nUnderflow - ", stderr);
  23. break;
  24. case EFDIVZERO:
  25. fputs("\nZero divide - ", stderr);
  26. break;
  27. default:
  28. fprintf(stderr, "\nUnknown error 0x%x - ", errno);
  29. }
  30. fflush(stderr);
  31. #endif
  32. kill(getpid(), SIGFPE);
  33. }