error.h (481B)
1 #ifndef ERROR_H 2 #define ERROR_H 3 4 #include <stdio.h> 5 #include <stdarg.h> 6 #include <err.h> 7 8 static inline void error(int status, int errnum, const char *fmt, ...) 9 { 10 va_list ap; 11 void (*errfunc[2])(int, const char *, va_list) = { &verr, &verrx }; 12 void (*warnfunc[2])(const char *, va_list) = { &vwarn, &vwarnx }; 13 fflush(stdout); 14 va_start(ap, fmt); 15 if (status != 0) 16 errfunc[errnum==0](status, fmt, ap); /* does not return */ 17 warnfunc[errnum==0](fmt, ap); 18 va_end(ap); 19 } 20 #endif