perror - print a system error message
void perror(const char *s);
const char *sys_errlist;
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.
ANSI C, BSD 4.3, POSIX, X/OPEN