PERROR(3)               Library functions               PERROR(3)

       perror - print a system error message

       #include <stdio.h>

       void perror(const char *s);

       #include <errno.h>

       const char *sys_errlist[];
       int sys_nerr;

       The  routine  perror()  produces a message on the standard
       error output, describing the last error encountered during
       a  call  to  a  system  or library function.  The argument
       string s is printed first, then a colon and a blank,  then
       the  message and a new-line.  To be of most use, the argu-
       ment string should include the name of the  function  that
       incurred  the  error.   The error number is taken from the
       external variable errno, which is set  when  errors  occur
       but not cleared when non-erroneous calls are made.

       The  global  error list sys_errlist[] 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

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

       ANSI C, BSD 4.3, POSIX, X/OPEN


                           May 16 1996                          1