herr.c 428 B

1234567891011121314151617181920212223
  1. #include "herr.h"
  2. #include <string.h> // for strerror
  3. #ifndef SYS_NERR
  4. #define SYS_NERR 133
  5. #endif
  6. // errcode => errmsg
  7. const char* get_errmsg(int err) {
  8. if (err >= 0 && err <= SYS_NERR) {
  9. return strerror(err);
  10. }
  11. switch (err) {
  12. #define CASE_ERR(macro, errcode, errmsg) \
  13. case errcode: return errmsg;
  14. FOREACH_ERR(CASE_ERR)
  15. #undef CASE_ERR
  16. default:
  17. return "Undefined error";
  18. }
  19. }