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)