NAME

     perror - print a system error message


SYNOPSIS

     #include <stdio.h>

     void perror(const char *s);

     #include <errno.h>

     const char *sys_errlist[];
     int sys_nerr;


DESCRIPTION

     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  argument  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 sys_errlist[].

     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 func-
     tion that failed.  Thus, if a failing call  is  not  immedi-
     ately  followed  by  a  call  to  perror, the value of errno
     should be saved.



CONFORMING TO

     ANSI C, BSD 4.3, POSIX, X/OPEN


SEE ALSO

     strerror(3)