NOTE: click here if you get an empty page.

STRERROR(3)		   Linux Programmer's Manual		   STRERROR(3)


strerror, strerror_r - return string describing error number


#include <string.h> char *strerror(int errnum); char *strerror_r(int errnum, char *buf, size_t buflen); /* GNU-specific strerror_r() */ #define _XOPEN_SOURCE 600 #include <string.h> int strerror_r(int errnum, char *buf, size_t buflen); /* XSI-compliant strerror_r() */


The strerror() function returns a string describing the error code passed in the argument errnum, possibly using the LC_MESSAGES part of the current locale to select the appropriate language. This string must not be modified by the application, but may be modified by a sub- sequent call to perror() or strerror(). No library function will mod- ify this string. The strerror_r() function is similar to strerror(), but is thread safe. This function is available in two versions: an XSI-compliant version specified in POSIX.1-2001, and a GNU-specific version (available since glibc 2.0). If _XOPEN_SOURCE is defined with the value 600, then the XSI-compliant version is provided, otherwise the GNU-specific version is provided. The XSI-compliant strerror_r() is preferred for portable applications. It returns the error string in the user-supplied buffer buf of length buflen. The GNU-specific strerror_r() returns a pointer to a string containing the error message. This may be either a pointer to a string that the function stores in buf, or a pointer to some (immutable) static string (in which case buf is unused). If the function stores a string in buf, then at most buflen bytes are stored (the string may be truncated if buflen is too small) and the string always includes a terminating null byte.


The strerror() and strerror_r() functions return the appropriate error description string, or an "Unknown error nnn" message if the error num- ber is unknown. The XSI-compliant strerror_r() function returns 0 on success; on error, -1 is returned and errno is set to indicate the error.


EINVAL The value of errnum is not a valid error number. ERANGE Insufficient storage was supplied to contain the error descrip- tion string.


POSIX.1-2001. The GNU-specific strerror_r() function is a non-standard extension. POSIX.1-2001 permits strerror() to set errno if the call encounters an error, but does not specify what value should be returned as the func- tion result in the event of an error. On some systems, strerror() returns NULL if the error number is unknown. On other systems, str- error() returns a string something like "Error nnn occurred" and sets errno to EINVAL if the error number is unknown.


err(3), errno(3), error(3), perror(3), strsignal(3) 2005-12-13 STRERROR(3)

1994 Man-cgi 1.15, Panagiotis Christias <>