perror

NAME

perror - print a system error message

SYNOPSIS

#include <stdio.h> I void perror(const char *s ); #include <errno.h> I const char * sys_errlist [];
I int sys_nerr ;
I int errno ;

DESCRIPTION

The routine R 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 a null byte ('\0')) 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 R errno , which is set when errors occur but not cleared when non-erroneous calls are made. The global error list R 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 R sys_nerr -1. Be careful when directly accessing this list because new error values may not have been added to R 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 R <errno.h> .) Many library functions do likewise. The function R 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 R perror (), the value of errno should be saved.

CONFORMING TO

The function R perror () and the external errno (see errno(3)) conform to C89, C99, 4.3BSD, POSIX.1-2001. The externals sys_nerr and sys_errlist conform to BSD.

NOTES

The externals sys_nerr and sys_errlist are defined by glibc, but in R <stdio.h> . _GNU_SOURCE is defined, the symbols

SEE ALSO

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