error.c 882 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <errno.h>
  5. #include "error.h"
  6. char *pname;
  7. void
  8. Warning(char *fmt, ...)
  9. {
  10. va_list args;
  11. fprintf(stderr, "%s: WARNING: ", pname);
  12. va_start(args, fmt);
  13. vfprintf(stderr, fmt, args);
  14. va_end(args);
  15. fprintf(stderr, "\n");
  16. }
  17. void
  18. Error(char *fmt, ...)
  19. {
  20. va_list args;
  21. fprintf(stderr, "%s: ERROR: ", pname);
  22. va_start(args, fmt);
  23. vfprintf(stderr, fmt, args);
  24. va_end(args);
  25. fprintf(stderr, "\n");
  26. exit(1);
  27. }
  28. void
  29. Perror(char *fmt, ...)
  30. {
  31. va_list args;
  32. int e = errno;
  33. char *p;
  34. fprintf(stderr, "%s: ERROR: ", pname);
  35. va_start(args, fmt);
  36. vfprintf(stderr, fmt, args);
  37. va_end(args);
  38. if ((p = strerror(e)) == NULL || *p == '\0')
  39. fprintf(stderr, ": Unknown Error (%d)\n", e);
  40. else
  41. fprintf(stderr, ": %s\n", p);
  42. exit(1);
  43. }