PERROR(3)

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.

KONFORM ZU
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
This page is part of release 3.54 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at 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>.