error.c 994 B

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