author | Rich Felker <dalias@aerifal.cx> | 2012年09月07日 00:48:25 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2012年09月07日 00:48:25 -0400 |
commit | b9bb8f67bbac9bab5314fb00974ad469476e936e (patch) | |
tree | 89fc3a733b4cd9a2346c5b77d8953b4f7aa9dd22 /src/legacy/err.c | |
parent | 780aede41913528781bbc8ff0d0e27505595f7c0 (diff) | |
download | musl-b9bb8f67bbac9bab5314fb00974ad469476e936e.tar.gz |
-rw-r--r-- | src/legacy/err.c | 60 |
diff --git a/src/legacy/err.c b/src/legacy/err.c new file mode 100644 index 00000000..0f748538 --- /dev/null +++ b/src/legacy/err.c @@ -0,0 +1,60 @@ +#include <err.h> +#include <stdio.h> +#include <stdarg.h> +#include <stdlib.h> + +void vwarn(const char *fmt, va_list ap) +{ + if (fmt) vfprintf(stderr, fmt, ap); + perror(""); +} + +void vwarnx(const char *fmt, va_list ap) +{ + if (fmt) vfprintf(stderr, fmt, ap); + putc('\n', stderr); +} + +_Noreturn void verr(int status, const char *fmt, va_list ap) +{ + vwarn(fmt, ap); + exit(status); +} + +_Noreturn void verrx(int status, const char *fmt, va_list ap) +{ + vwarnx(fmt, ap); + exit(status); +} + +void warn(const char *fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + vwarn(fmt, ap); + va_end(ap); +} + +void warnx(const char *fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + vwarnx(fmt, ap); + va_end(ap); +} + +_Noreturn void err(int status, const char *fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + verr(status, fmt, ap); + va_end(ap); +} + +_Noreturn void errx(int status, const char *fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + verrx(status, fmt, ap); + va_end(ap); +} |