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.