strerror_r

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
STRERROR(3)		  Linux Programmer’s Manual		  STRERROR(3)



NAME
       strerror, strerror_r - return string describing error code

SYNOPSIS
       #include <string.h>

       char *strerror(int errnum);
       int strerror_r(int errnum, char *buf, size_t n);

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.  It returns the string in the user-supplied buffer buf of length
       n.


RETURN VALUE
       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 suc-
       cess and -1 on failure, setting errno.


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
       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.

SEE ALSO
       errno(3), perror(3), strsignal(3)



				  2001-10-16			  STRERROR(3)