Operating systems, development tools, and professional services
for connected embedded systems
for connected embedded systems
![]() |
![]() |
![]() |
![]() |
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, ...);
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:
| Safety: | |
|---|---|
| Cancellation point | Yes |
| Interrupt handler | No |
| Signal handler | Yes |
| Thread | Yes |
See also:
printf(), stderr, strerror(), verr(), verrx(), vwarn(), vwarnx(), warn(), warnx()
![]() |
![]() |
![]() |
![]() |

![[Previous]](../prev.gif)
![[Contents]](../contents.gif)
![[Index]](../keyword_index.gif)
![[Next]](../next.gif)