perror

PERROR(3)                   Linux-Programmierhandbuch                  PERROR(3)



BEZEICHNUNG
       perror - eine Systemfehlermeldung ausgeben

ÜBERSICHT
       #include <stdio.h>

       void perror(const char *s);

       #include <errno.h>

       const char *const sys_errlist[];
       int sys_nerr;
       int errno;       /* Nicht wirklich auf diese Weise deklariert; siehe errno(3). */

   Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):

       sys_errlist, sys_nerr:
           Von Glibc 2.19 bis 2.31:
               _DEFAULT_SOURCE
           Glibc 2.19 und älter:
               _BSD_SOURCE

BESCHREIBUNG
       Die Funktion 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, danach ein Doppelpunkt, ein Leerzeichen und dann die
       eine Fehlermeldung, die dem aktuellen Wert von errno entspricht, gefolgt
       von einem Zeilenvorschub ausgegeben.

       Um am nützlichsten zu sein, sollte die Argumentenzeichenkette den Namen
       der Funktion enthalten, die den Fehler auslöste.

       Die globale Fehlerliste sys_errlist[], die mit errno indiziert werden
       kann, 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, verwenden Sie
       stattdessen strerror(3).

       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 System- oder
       Bibliotheksfunktionsaufruf 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.

VERSIONEN
       Seit Glibc Version 2.32 befinden sich die Definitionen von sys_nerr und
       sys_errlist nicht mehr in <stdio.h>.

ATTRIBUTE
       Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt
       verwandten Ausdrücke.

       ┌──────────────────────────┬───────────────────────┬─────────────────────┐
       │Schnittstelle             Attribut              Wert                │
       ├──────────────────────────┼───────────────────────┼─────────────────────┤
       │perror()                  │ Multithread-Fähigkeit │ MT-Safe race:stderr │
       └──────────────────────────┴───────────────────────┴─────────────────────┘

KONFORM ZU
       perror(), errno: POSIX.1-2001, POSIX.1-2008, C89, C99, 4.3BSD.

       Die externen sys_nerr und sys_errlist leiten sich aus BSD ab, werden aber
       nicht in POSIX.1 spezifiziert.

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 5.13 des Projekts
       Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie
       Fehler gemeldet werden können sowie die aktuelle Version dieser Seite
       finden sich unter https://www.kernel.org/doc/man-pages/.


ÜBERSETZUNG
       Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Schulze
       <joey@infodrom.org>, Patrick Rother <krd@gulu.net>, Chris Leick
       <c.leick@vollbio.de> und Mario Blättermann <mario.blaettermann@gmail.com>
       erstellt.

       Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General
       Public License Version 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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 die Mailingliste der Übersetzer ⟨debian-l10n-
       german@lists.debian.org⟩.



                                  22. März 2021                        PERROR(3)