Originální popis anglicky: 
strerror, strerror_r - return string describing error code
Návod, kniha: Linux Programmer's Manual
#include <string.h>
 
char *strerror(int errnum);
 
int strerror_r(int errnum, char *buf, size_t n);
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. It returns the string in the user-supplied buffer 
buf of length
  
n.
 
The 
strerror() function returns the appropriate error description string,
  or an unknown error message if the error code is unknown. The value of
  
errno is not changed for a successful call, and is set to a nonzero
  value upon error. The 
strerror_r() function returns 0 on success and -1
  on failure, setting 
errno.
 
  - EINVAL
 
  - The value of errnum is not a valid error
    number.
 
  - ERANGE
 
  - Insufficient storage was supplied to contain the error
      description string.
    
 
   
SVID 3, POSIX, BSD 4.3, ISO/IEC 9899:1990 (C89).
 
strerror_r() with prototype as given above is specified by SUSv3, and was
  in use under Digital Unix and HP Unix. An incompatible function, with
  prototype
 
char *strerror_r(int errnum, char *buf, size_t
  n);
 
is a GNU extension used by glibc (since 2.0), and must be regarded as obsolete
  in view of SUSv3. The GNU version may, but need not, use the user-supplied
  buffer. If it does, the result may be truncated in case the supplied buffer is
  too small. The result is always NUL-terminated.
errno(3), 
perror(3), 
strsignal(3)