Premier IT Outsourcing and Support Services within the UK

User Tools

Site Tools


PERROR(3) Linux Programmer's Manual PERROR(3)


     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:
         Since glibc 2.19:
         Glibc 2.19 and earlier:


     The  perror()  function produces a message on standard error describing
     the last error encountered during a call to a system or  library  func-
     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 dep-
     recated; use strerror(3) instead.
     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 system 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  fol-
     lowed by a call to perror(), the value of errno should be saved.


     For   an   explanation   of   the  terms  used  in  this  section,  see
     allbox;  lb  lb  lb  l  l  l.   Interface Attribute Value  T{  perror()
     T}   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


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


     This  page  is  part of release 4.16 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
                                2017-09-15                         PERROR(3)
/home/ · Last modified: 2019/05/17 09:47 by