1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
.\" Copyright (c) 1994 Michael Haardt (u31b3hs@pool.informatik.rwth-aachen.de), Sat Jun 4 20:38:26 MET DST 1994
.\" Copyright (c) 1995 Michael Haardt (michael@cantor.informatik.rwth-aachen.de), Thu Mar 16 18:46:23 MET 1995
.\"
.\" 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., 675 Mass Ave, Cambridge, MA 02139,
.\" USA.
.\"
.\" German translation Fri May 16 23:41:15 1996 by Patrick Rother
.\" <krd@gulu.net> and Martin Schulze (joey@infodrom.north.de)
.\" Modified Mon Jun 10 01:05:22 1996 by Martin Schulze (joey@linux.de)
.\"
.TH PERROR 3 "17. Januar 1996" "" "Bibliotheksfunktionen"
.SH BEZEICHNUNG
perror \- gib eine Systemfehlermeldung aus
.SH BEZEICHNUNG
.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 ;
.SH BESCHREIBUNG
Die Funktion
.B perror()
erzeugt eine Meldung auf der Standardfehlerausgabe, die den zuletzt
aufgetretenen Fehler beschreibt, der während eines Systemaufrufs oder
einer Bibliotheksfunktion aufgetreten ist. Der Argumentstring
.I s
wird zuerst ausgegeben, danach ein Doppelpunkt und ein Leerzeichen und
danach die Meldung mit einem Zeilenvorschub.
Um eine maximale Nützlichkeit zu erreichen sollte der Argumentstring den
Namen der Funktion enthalten, in dem der Fehler aufgetreten ist.
Die Fehlernummer wird aus der externen Variable
.I errno
entnommen, die gesetzt wird wenn ein Fehler auftritt, aber nicht
gelöscht wird, wenn
Aufrufe getätigt werden, die keinen Fehler liefern.
Die globale Fehlerliste
.IR sys_errlist "[]"
mit Index
.I errno
kann verwendet werden, um die Fehlermeldungen ohne den Zeilenumbruch
zu erhalten. Der größte gültige Index für
.IR sys_errlist "[]"
ist
.IR sys_nerr " -1."
Vorsicht ist geboten, wenn direkt auf diese Liste zugegriffen wird,
denn neue Fehlerwerte sind eventuell noch nicht hinzugefügt worden.
Wenn ein Systemaufruf fehlschlägt, gibt er normalerweise \-1 zurück
und setzt die Variable
.I errno
auf einen Wert, der beschreibt, was schief lief. (Diese Werte können
in
.I <errno.h>
gefunden werden.) Viele Bibliotheksfunktionen verhalten sich genauso.
Die Funktion
.B perror()
übersetzt diesen Fehlercode in eine für Menschen lesbare Form.
Man beachte, dass
.I errno
nach erfolgreichem Aufruf einer Bibliotheksfunktion undefiniert ist:
Der Aufruf kann die Variable aber sehrwohl verändern, auch wenn er
erfolgreich ist, zum Beispiel, wenn die Routine intern weitere
Bibliotheksfunktionen verwendet, die fehlgeschlagen sind. Daher
sollte der Wert von
.I errno
gesichert werden, wenn auf den fehlgeschlagenen Aufruf nicht sofort
ein Aufruf von
.B perror()
folgt.
.SH "KONFORM ZU"
ANSI C, POSIX
.SH "SIEHE AUCH"
.BR errno (2),
.BR strerror (3).
|