Manpages - err.3

Table of Contents

NAME

err, verr, errx, verrx, warn, vwarn, warnx, vwarnx - formatted error messages

SYNOPSIS

  #include <err.h>

  noreturn void err(int eval, const char *fmt, ...);
  noreturn void errx(int eval, const char *fmt, ...);

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

  #include <stdarg.h>

  noreturn void verr(int eval, const char *fmt, va_list args);
  noreturn void verrx(int eval, const char *fmt, va_list args);

  void vwarn(const char *fmt, va_list args);
  void vwarnx(const char *fmt, va_list args);

DESCRIPTION

The *err*() and *warn*() family of functions display a formatted error message on the standard error output. In all cases, the last component of the program name, a colon character, and a space are output. If the fmt argument is not NULL, the *printf*(3)-like formatted error message is output. The output is terminated by a newline character.

The *err*(), *verr*(), *warn*(), and *vwarn*() functions append an error message obtained from *strerror*(3) based on the global variable errno, preceded by another colon and space unless the fmt argument is NULL.

The *errx*() and *warnx*() functions do not append an error message.

The *err*(), *verr*(), *errx*(), and *verrx*() functions do not return, but exit with the value of the argument eval.

ATTRIBUTES

For an explanation of the terms used in this section, see *attributes*(7).

Interface Attribute Value
*err*(), *errx*(), *warn*(), *warnx*(), *verr*(), *verrx*(), *vwarn*(), *vwarnx*() Thread safety MT-Safe locale

CONFORMING TO

These functions are nonstandard BSD extensions.

EXAMPLES

Display the current errno information string and exit:

  p = malloc(size);
  if (p == NULL)
      err(EXIT_FAILURE, NULL);
  fd = open(file_name, O_RDONLY, 0);
  if (fd == -1)
      err(EXIT_FAILURE, "%s", file_name);

Display an error message and exit:

  if (tm.tm_hour < START_TIME)
      errx(EXIT_FAILURE, "too early, wait until %s",
              start_time_string);

Warn of an error:

  fd = open(raw_device, O_RDONLY, 0);
  if (fd == -1)
      warnx("%s: %s: trying the block device",
              raw_device, strerror(errno));
  fd = open(block_device, O_RDONLY, 0);
  if (fd == -1)
      err(EXIT_FAILURE, "%s", block_device);

SEE ALSO

*error*(3), *exit*(3), *perror*(3), *printf*(3), *strerror*(3)

COLOPHON

This page is part of release 5.13 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.

Author: dt

Created: 2022-02-20 Sun 15:02