NOMBRE¶
strerror, strerror_r - devuelve una cadena de caracteres describiendo un
código de error
SINOPSIS¶
#include <string.h>
char *strerror(int errnum);
int strerror_r(int errnum, char *buf, size_t n);
DESCRIPCIÓN¶
La función
strerror() devuelve una cadena de caracteres que describe
el código de error pasado en el argumento
errnum, usando
posiblemente la categoría LC_MESSAGES de la localización actual para
seleccionar el idioma apropiado. Esta cadena no debe ser modificada por la
aplicación, pero puede ser modificada por una llamada posterior a
perror() o
strerror(). Ninguna función de biblioteca
modificará esta cadena.
La función
strerror_r() es similar a
strerror(), pero es una
función hilo seguro. Devuelve la cadena en el buffer suministrado por el
usuario
buf de longitud
n.
VALOR DEVUELTO¶
La función
strerror() devuelve la cadena de descripción del
error apropiada, o un mensaje de error desconocido si el código de error
es inválido. El valor de
errno no se modifica en una llamada con
éxito, y toma un valor distinto de cero en caso de error. La función
strerror_r() devuelve 0 en caso de éxito y -1 si falla,
modificando la variable
errno.
ERRORES¶
- EINVAL
- El valor de errnum no es un número de error
válido.
- ERANGE
- El buffer pasado tiene un tamaño insuficiente para
contener la cadena de descripción del error.
SVID 3, POSIX, BSD 4.3, ISO/IEC 9899:1990 (C89).
strerror_r() con el prototipo dado arriba está especificada por
SUSv3, y estuvo en uso bajo Digital Unix y HP Unix. Una función
incompatible, con el prototipo
char *strerror_r(int errnum, char *buf, size_t
n);
es una extensión de GNU usada por glibc (desde 2.0), y debe ser considerada
obsoleta en favor de SUSv3. La versión de GNU puede, pero no necesita,
usar el buffer suministrado por el usuario. Si lo hace, el resultado puede ser
truncado en caso de que el buffer sea demasiado pequeño. El resultado
termina siempre con el carácter NUL.
VÉASE TAMBIÉN¶
errno(3),
perror(3),
strsignal(3)