NOMBRE¶
err,
verr,
errx,
verrx,
warn,
vwarn,
warnx,
vwarnx, —
mensajes de error con formato
SINOPSIS¶
#include <err.h>
void err(
int
eval,
const char *fmt,
...)
void errx(
int
eval,
const char *fmt,
...)
void warn(
const char
*fmt,
...)
void
warnx(
const char *fmt,
...)
#include
<stdarg.h> void
verr(
int eval,
const
char *fmt,
va_list args)
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)
DESCRIPCIÓN¶
La familia de funciones
err() y
warn()
muestran un mensaje de error con formato en la salida estándar de error.
En todos los casos, se imprime el último componente del nombre del
programa, un carácter punto y un espacio. Si el argumento
fmt es distinto de NULL, se imprime un mensaje de error
con formato al estilo de
printf(3)
Las funciones
err(),
verr(),
warn(), y
vwarn() añaden un mensaje
de error obtenido con
strerror(3) basado en un código o
en la variable global
errno, precedido por otro punto y
un espacio a menos que el argumento
fmt sea
NULL
.
Las funciones
err(),
verr(),
warn(), y
vwarn() usan la variable global
errno para buscar el mensaje de error.
Las funciones
errx() y
warnx() no
añaden ningún mensaje de error.
Las funciones
err(),
verr(),
errx(), y
verrx() no regresan, sino que
terminan la ejecución con el valor del argumento
eval.
EJEMPLOS¶
Muestra la cadena de información del error actual y termina:
if ((p = malloc(size)) == NULL)
err(1, NULL);
if ((fd = open(file_name, O_RDONLY, 0)) == -1)
err(1, "%s", file_name);
Muestra un mensaje de error y termina:
if (tm.tm_hour < START_TIME)
errx(1, "too early, wait until %s", start_time_string);
Aviso de un error:
if (
warnx("%s: %s: trying the block device",
raw_device, strerror(errno));
if ((fd = open(block_device, O_RDONLY, 0)) == -1)
err(1, "%s", block_device);
VÉASE TAMBIÉN¶
exit(3),
printf(3),
perror(3),
strerror(3)
HISTORIA¶
Las funciones
err() y
warn() aparecieron por
primera vez en
4.4BSD.