Provided by: manpages-dev_4.04-2_all bug


       perror - print a system error message


       #include <stdio.h>

       void perror(const char *s);

       #include <errno.h>

       const char * const sys_errlist[];
       int sys_nerr;
       int errno;       /* Not really declared this way; see errno(3) */

   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

       sys_errlist, sys_nerr: _BSD_SOURCE


       The  perror()  function  produces  a  message  on standard error describing the last error
       encountered during a call to a system or library function.

       First (if s is not NULL and *s is not a null  byte  ('\0')),  the  argument  string  s  is
       printed,  followed  by  a  colon  and a blank.  Then an error message corresponding to the
       current value of errno and a new-line.

       To be of most use, the argument string should  include  the  name  of  the  function  that
       incurred the error.

       The  global error list sys_errlist[], which can be indexed by errno, can be used to obtain
       the error message without the newline.  The largest message number provided in  the  table
       is sys_nerr-1.  Be careful when directly accessing this list, because new error values may
       not have been added to sys_errlist[].  The use of sys_errlist[] is nowadays deprecated.

       When a system call fails, it usually returns -1 and sets the variable  errno  to  a  value
       describing  what  went  wrong.   (These  values  can be found in <errno.h>.)  Many library
       functions do likewise.  The function perror() serves to translate  this  error  code  into
       human-readable  form.   Note  that  errno  is  undefined  after a successful sysme call or
       library function call: this call may well change this variable, even though  it  succeeds,
       for  example because it internally used some other library function that failed.  Thus, if
       a failing call is not immediately followed by a call  to  perror(),  the  value  of  errno
       should be saved.


       For an explanation of the terms used in this section, see attributes(7).

       │InterfaceAttributeValue               │
       │perror()  │ Thread safety │ MT-Safe race:stderr │


       perror(), errno: POSIX.1-2001, POSIX.1-2008, C89, C99, 4.3BSD.

       The externals sys_nerr and sys_errlist derive from BSD, but are not specified in POSIX.1.


       The externals sys_nerr and sys_errlist are defined by glibc, but in <stdio.h>.


       err(3), errno(3), error(3), strerror(3)


       This  page  is  part of release 4.04 of the Linux man-pages project.  A description of the
       project, information about reporting bugs, and the latest version of  this  page,  can  be
       found at

                                            2015-07-23                                  PERROR(3)