Display a formatted error message, and then exit
#include <err.h> void err( int eval, const char *fmt, ...); void errx( int eval, const char *fmt, ...);
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The err() and warn() family of functions display a formatted error message on stderr:
Function | errno string? | Varargs? | Exits? |
---|---|---|---|
err() | Yes | No | Yes |
errx() | No | No | Yes |
verr() | Yes | Yes | Yes |
verrx() | No | Yes | Yes |
vwarn() | Yes | Yes | No |
vwarnx() | No | Yes | No |
warn() | Yes | No | No |
warnx() | No | No | No |
The err() function produces a message that consists of:
The errx() function produces a similar message, except that it doesn't include the string associated with errno. The message consists of:
The err() and errx() functions don't return, but exit with the value of the argument eval.
Display the current errno information string, and then exit:
if ((p = malloc(size)) == NULL) err(1, NULL); if ((fd = open(file_name, O_RDONLY, 0)) == -1) err(1, "%s", file_name);
Display an error message, and then exit:
if (tm.tm_hour < START_TIME) errx(1, "too early, wait until %s", start_time_string);
Safety: | |
---|---|
Cancellation point | Yes |
Interrupt handler | No |
Signal handler | Yes |
Thread | Yes |