strerror_r(3) devuelve una cadena de caracteres describiendo un código

Other Alias

strerror

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.

CONFORME A

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.