[Previous] [Contents] [Index] [Next]

warn(), warnx()

Formatted error message

Synopsis:

#include <err.h>

void warn( const char* fmt, ...);

void warnx( const char* fmt, ...);

Arguments:

fmt
NULL, or a printf()-style string used to format the message.
Additional arguments
As required by the format string.

Library:

libc

Description:

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.

Examples:

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);

Classification:

Unix

Safety:
Cancellation point Yes
Interrupt handler No
Signal handler Yes
Thread Yes

See also:

err(), errx(), strerror(), verr(), verrx(), vwarn(), vwarnx()


[Previous] [Contents] [Index] [Next]