STRERROR(3) Linux Programmer's Manual STRERROR(3)
NAME
strerror, strerror_r - return string describing error number
SYNOPSIS
#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() */
DESCRIPTION
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.
RETURN VALUE
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.
ERRORS
EINVAL The value of errnum is not a valid error number.
ERANGE Insufficient storage was supplied to contain the error descrip-
tion string.
CONFORMING TO
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.
SEE ALSO
err(3), errno(3), error(3), perror(3), strsignal(3)
2005-12-13 STRERROR(3)
|