| 16 | } |
| 17 | |
| 18 | void NORETURN err(int eval, const char *fmt, ...) |
| 19 | { |
| 20 | int err_errno = errno; |
| 21 | va_list ap; |
| 22 | |
| 23 | fprintf(stderr, "%s: ", progname); |
| 24 | va_start(ap, fmt); |
| 25 | vfprintf(stderr, fmt, ap); |
| 26 | va_end(ap); |
| 27 | fprintf(stderr, ": %s\n", strerror(err_errno)); |
| 28 | exit(eval); |
| 29 | } |
| 30 | |
| 31 | void NORETURN errx(int eval, const char *fmt, ...) |
| 32 | { |
no outgoing calls