BEZEICHNUNG¶
perror - eine Systemfehlermeldung ausgeben
ÜBERSICHT¶
#include <stdio.h>
void perror(const char *s);
#include <errno.h>
const char *sys_errlist[];
int sys_nerr;
int errno;
Mit Glibc erforderliche Makros (siehe
feature_test_macros(7)):
sys_errlist,
sys_nerr: _BSD_SOURCE
BESCHREIBUNG¶
Die Routine
perror() schreibt eine Meldung auf die Standardfehlerausgabe,
die den zuletzt aufgetretenen Fehler beschreibt, der während eines
Aufrufs einer System- oder Bibliotheksfunktion aufgetreten ist. Zuerst wird
(falls
s nicht NULL und
*s kein Null-Byte ('\0') ist) der
Argumentstring
s ausgegeben, danach ein Doppelpunkt, ein Leerzeichen
und dann die Meldung gefolgt von einem Zeilenvorschub.
Um möglichst nützlich zu sein, sollte die Argument-Zeichenkette den
Namen der Funktion enthalten, die den Fehler verusachte. Die Fehlernummer wird
von der externen Variable
errno übernommen, die beim Auftreten von
Fehlern gesetzt, aber nicht bei erfolgreichen Aufrufen gelöscht wird.
Die globale Fehlerliste
sys_errlist[] mit Index
errno kann
verwandt werden, um die Fehlermeldungen ohne den Zeilenumbruch zu erhalten.
Der größte gültige Index für
sys_errlist[] ist
sys_nerr-1. Vorsicht ist geboten, wenn direkt auf diese Liste
zugegriffen wird, denn neue Fehlerwerte sind eventuell noch nicht
hinzugefügt worden. Die Verwendung von
sys_errlist[] ist
heutzutage missbilligt.
Wenn ein Systemaufruf fehlschlägt, gibt er normalerweise -1 zurück und
setzt die Variable
errno auf einen Wert, der beschreibt, was falsch
lief. (Diese Werte können in
<errno.h> gefunden werden.)
Viele Bibliotheksfunktionen verhalten sich genauso. Die Funktion
perror() übersetzt diesen Fehlercode in eine für Menschen
lesbare Form. Beachten Sie, dass
errno nach erfolgreichem Aufruf einer
Bibliotheksfunktion undefiniert ist: Dieser Aufruf kann die Variable aber sehr
wohl ändern, auch wenn er erfolgreich ist – zum Beispiel, wenn er
intern weitere Bibliotheksfunktionen verwendet, die fehlschlagen. Daher sollte
der Wert von
errno gespeichert werden, wenn auf den fehlgeschlagenen
Aufruf nicht sofort ein Aufruf von
perror() folgt.
Die Funktion
perror() und das externe
errno (siehe
errno(3)) sind konform zu C89, C99, 4.3BSD und POSIX.1-2001. Die
externen
sys_nerr und
sys_errlist sind konform zu BSD.
ANMERKUNGEN¶
Die externen
sys_nerr und
sys_errlist sind durch Glibc definiert,
befinden sich aber in
<stdio.h>.
SIEHE AUCH¶
err(3),
errno(3),
error(3),
strerror(3)
KOLOPHON¶
Diese Seite ist Teil der Veröffentlichung 3.42 des Projekts Linux-
man-pages. Eine Beschreibung des Projekts und Informationen, wie Fehler
gemeldet werden können, finden sich unter
http://www.kernel.org/doc/man-pages/.
ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother
<krd@gulu.net>, Martin Schulze <joey@infodrom.org> und Chris Leick
<c.leick@vollbio.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public
License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird
KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken
Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.