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.