perror

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
PERROR(3)		      Library functions			    PERROR(3)



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;
       int errno;

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.   First  (if	s  is not NULL and *s is not NUL) the
       argument string s is printed, followed by 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	func-
       tion  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.


CONFORMING TO
       The function perror() and the external errno (see errno(3)) conform to
       ANSI   C,   BSD	4.3,  POSIX,  X/OPEN.	The  externals	sys_nerr  and
       sys_errlist conform to BSD.

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

SEE ALSO
       errno(3), strerror(3)



				  2001-12-14			    PERROR(3)