![]() |
![]() |
![]() |
![]() |
Formatted error message
#include <err.h> void warn( const char* fmt, ...); void warnx( const char* fmt, ...);
libc
The err() and warn() family of functions display a formatted error message on standard error. In all cases, the last component of the program name, a colon character, and a space are displayed. If the fmt argument isn't NULL, the formatted error message is displayed. In the case of err(), verr(), warn(), and vwarn(), the error message string affiliated with the current value of the global variable errno is output next, preceded by a colon character and a space if fmt isn't NULL. In all cases, the output is followed by a newline character.
The err(), verr(), errx(), and verrx() functions don't return, but exit with the value of the argument eval.
Display the current errno information string and 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 exit:
if (tm.tm_hour < START_TIME) errx(1, "too early, wait until %s", start_time_string);
Warn of an error:
if ((fd = open(raw_device, O_RDONLY, 0)) == -1) warnx("%s: %s: trying the block device", raw_device, strerror(errno)); if ((fd = open(block_device, O_RDONLY, 0)) == -1) warn("%s", block_device);
Safety: | |
---|---|
Cancellation point | Yes |
Interrupt handler | No |
Signal handler | Yes |
Thread | Yes |
err(), errx(), strerror(), verr(), verrx(), vwarn(), vwarnx()
![]() |
![]() |
![]() |
![]() |