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 whrend 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 Ntzlichkeit 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
gelscht wird, wenn
Aufrufe gettigt 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 grte gltige Index fr
.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 hinzugefgt worden.
Wenn ein Systemaufruf fehlschlgt, gibt er normalerweise \-1 zurck
und setzt die Variable
.I errno
auf einen Wert, der beschreibt, was schief lief. (Diese Werte knnen
in
.I <errno.h>
gefunden werden.) Viele Bibliotheksfunktionen verhalten sich genauso.
Die Funktion
.B perror()
bersetzt diesen Fehlercode in eine fr Menschen lesbare Form.
Man beachte, da
.I errno
nach erfolgreichem Aufruf einer Bibliotheksfunktion undefiniert ist:
Der Aufruf kann die Variable aber sehrwohl verndern, 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).
|