err(), errx()

Display a formatted error message, and then exit

Synopsis:

#include <err.h>

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

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


Since:

BlackBerry 10.0.0

Arguments:

eval
The value to use as the exit code of the process.
fmt
NULL, or a printf()-style string used to format the message.
Additional arguments
As required by the format string.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The err() and warn() family of functions display a formatted error message on stderr :

  • The functions without an x in their names display the string associated with the current value of errno .
  • Those with a v are "varargs" functions.
  • Those with err exit instead of returning.
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 last component of the program name, followed by a colon and a space
  • the formatted message, followed by a colon and a space, if the fmt argument isn't NULL
  • the string associated with the current value of errno
  • a newline character.

The errx() function produces a similar message, except that it doesn't include the string associated with errno. The message consists of:

  • the last component of the program name, followed by a colon and a space
  • the formatted message, if the fmt argument isn't NULL
  • a newline character.

The err() and errx() 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);

Classification:

Unix

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

Last modified: 2014-06-24



Got questions about leaving a comment? Get answers from our Disqus FAQ.

comments powered by Disqus