3:strerror r

From Linux Man Pages

Jump to: navigation, search
      strerror, strerror_r - return string describing error number
      

Contents

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 subsequent call to perror() or strerror().  No library function will
      modify this string.
 
      The strerror_r() function is similar to strerror(), but is thread safe.  This function is available in  two  ver-
      sions:  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 number is unknown.
 
      The XSI-compliant strerror_r() function returns 0 on success; on error, -1 is returned and errno is set to  indi-
      cate the error.

ERRORS

      EINVAL The value of errnum is not a valid error number.
 
      ERANGE Insufficient storage was supplied to contain the error description 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 function result in the event of an error.  On some systems, strerror() returns NULL  if
      the  error  number is unknown.  On other systems, strerror() returns a string something like "Error nnn occurred"
      and sets errno to EINVAL if the error number is unknown.

RELATED

      err(3), errno(3), error(3), perror(3), strsignal(3)

CATEGORY

Personal tools