diff options
Diffstat (limited to 'man3/perror.3')
-rw-r--r-- | man3/perror.3 | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/man3/perror.3 b/man3/perror.3 new file mode 100644 index 000000000..ef8740aac --- /dev/null +++ b/man3/perror.3 @@ -0,0 +1,125 @@ +.\" Copyright (c) 1994 Michael Haardt (michael@moria.de), 1994-06-04 +.\" Copyright (c) 1995 Michael Haardt +.\" (michael@cantor.informatik.rwth-aachen.de), 1995-03-16 +.\" Copyright (c) 1996 Andries Brouwer (aeb@cwi.nl), 1996-01-13 +.\" +.\" This is free documentation; you can redistribute it and/or +.\" modify it under the terms of the GNU General Public License as +.\" published by the Free Software Foundation; either version 2 of +.\" the License, or (at your option) any later version. +.\" +.\" The GNU General Public License's references to "object code" +.\" and "executables" are to be interpreted as the output of any +.\" document formatting or typesetting system, including +.\" intermediate and printed output. +.\" +.\" This manual is distributed in the hope that it will be useful, +.\" but WITHOUT ANY WARRANTY; without even the implied warranty of +.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +.\" GNU General Public License for more details. +.\" +.\" You should have received a copy of the GNU General Public +.\" License along with this manual; if not, write to the Free +.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, +.\" USA. +.\" +.\" 1996-01-13 aeb: merged in some text contributed by Melvin Smith +.\" (msmith@falcon.mercer.peachnet.edu) and various other changes. +.\" Modified 1996-05-16 by Martin Schulze (joey@infodrom.north.de) +.\" +.TH PERROR 3 2001-12-14 "" "Library functions" +.SH NAME +perror \- print a system error message +.SH SYNOPSIS +.B #include <stdio.h> +.sp +.BI "void perror(const char " *s ); +.sp +.B #include <errno.h> +.sp +.BI "const char *" sys_errlist []; +.br +.BI "int " sys_nerr ; +.br +.BI "int " errno ; +.SH DESCRIPTION +The routine +.B 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 +.I s +is not NULL and +.RI * s +is not NUL) the argument string +.I 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 +.IR errno , +which is set when errors occur but not +cleared when non-erroneous calls are made. + +The global error list +.IR sys_errlist "[]" +indexed by +.I errno +can be used to obtain the error message without the newline. +The largest message number provided in the table is +.IR sys_nerr " \-1." +Be careful when directly accessing this list because new error values +may not have been added to +.IR sys_errlist "[]." + +When a system call fails, it usually returns \-1 and sets the +variable +.I errno +to a value describing what went wrong. (These values can be found in +.IR "<errno.h>" .) +Many library functions do likewise. +The function +.B perror() +serves to translate this error code into human-readable form. +Note that +.I 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 +.BR perror , +the value of +.I errno +should be saved. + +.SH "CONFORMING TO" +The function +.B perror() +and the external +.I errno +(see +.BR errno (3)) +conform to ANSI C, BSD 4.3, POSIX, X/OPEN. +The externals +.I sys_nerr +and +.I sys_errlist +conform to BSD. +.SH NOTE +The externals +.I sys_nerr +and +.I sys_errlist +are defined by glibc, but in +.IR <stdio.h> . +.\" and only when _BSD_SOURCE is defined. +.\" When _GNU_SOURCE is defined, the symbols +.\" .I _sys_nerr +.\" and +.\" .I _sys_errlist +.\" are provided. +.SH "SEE ALSO" +.BR errno (3), +.BR strerror (3) |