Provided by: manpages-de-dev_2.5-1_all bug

BEZEICHNUNG

       strerror, strerror_r, strerror_l - gibt eine Zeichenkette zurück, die den Fehlercode beschreibt

ÜBERSICHT

       #include <string.h>

       char *strerror(int errnum);

       int strerror_r(int errnum, char *buf, size_t buflen);
                   /* XSI-konform */

       char *strerror_r(int errnum, char *buf, size_t buflen);
                   /* GNU-spezifisch */

       char *strerror_l(int errnum, locale_t locale);

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

       strerror_r():
           Die XSI-konforme Version wird bereitgestellt, falls:
           (_POSIX_C_SOURCE >= 200112L) && !  _GNU_SOURCE
           Anderenfalls wird die GNU-spezifische Version bereitgestellt.

BESCHREIBUNG

       Die  Funktion strerror() gibt einen Zeiger auf eine Zeichenkette mit der Beschreibung des Fehlercodes für
       das übergebene Argument errnum zurück. Möglicherweise wertet sie dabei den LC_MESSAGES-Teil der aktuellen
       Locale aus, um die passende Sprache zu wählen. (Falls beispielsweise errnum EINVAL  ist,  dann  wird  die
       zurückgelieferte  Beschreibung »Invalid argument« sein.). Diese Zeichenkette darf nicht von der Anwendung
       verändert werden, wohl aber von einem  nachfolgenden  Aufruf  von  strerror()  oder  strerror_l().  Diese
       Zeichenkette wird von keiner anderen Bibliotheksfunktion, inklusive perror(3), verändert.

   strerror_r()
       Die  Funktion strerror_r() ähnelt strerror(), ist aber threadsicher. Diese Funktion ist in zwei Versionen
       verfügbar: eine in POSIX.1-2001 beschriebene XSI-konforme Version (verfügbar seit Glibc 2.3.4,  aber  vor
       Glibc  2.13  nicht  POSIX-konform)  und  eine  GNU-spezifische  Version  (verfügbar  seit Glibc 2.0). Die
       XSI-konforme Version  wird  durch  die  in  der  ÜBERSICHT  angegebenen   Feature-Test-Makroeinstellungen
       bereitgestellt;    anderenfalls    wird    die   GNU-Version   verwendet.   Ohne   explizit   vereinbarte
       Feature-Test-Makros wird (seit Glibc 2.4) standardmäßig _POSIX_C_SOURCE  mit  dem  Wert  200112L  belegt,
       sodass standardmäßig die XSI-Variante von strerror_r() verwendet wird.

       Die  XSI-konforme  strerror_r() ist für portable Anwendungen vorzuziehen. Sie gibt die Fehlerzeichenkette
       im vom Nutzer bereitgestellten Puffer buf der Länge buflen zurück.

       Die GNU-spezifische strerror_r() gibt einen Zeiger auf eine Zeichenkette zurück, die die  Fehlernachricht
       enthält.  Dies  kann  entweder  ein Zeiger auf eine Zeichenkette sein, die die Funktion in buf speichert,
       oder ein Zeiger auf irgendeine (unveränderbare  statische)  Zeichenkette(wobei  dann  buf  nicht  genutzt
       wird).  Wenn  die  Funktion in buf eine Zeichenkette speichert, werden höchstens buflen Bytes gespeichert
       (die Zeichenkette kann gekürzt werden, wenn buflen zu klein und errnum unbekannt ist).  Die  Zeichenkette
       enthält immer ein abschließendes Null-Byte ('\0').

   strerror_l()
       strerror_l()  verhält sich wie strerror(), aber weist errnum einer locale-abhängigen Fehlermeldung in der
       durch locale angegebenen Locale zu. Das Verhalten von strerror_l() ist nicht definiert, wenn  locale  das
       spezielle Locale-Objekt LC_GLOBAL_LOCALE ist oder kein gültiges Handle für ein Locale-Objekt.

RÜCKGABEWERT

       Die  Funktionen  strerror(),  strerror_l()  und  die GNU-spezifische strerror_r() geben die entsprechende
       Zeichenkette mit der Fehlerbeschreibung zurück oder eine Nachricht »Unbekannter  Fehler  nnn«,  wenn  die
       Fehlernummer unbekannt ist.

       Die  XSI-konforme  Funktion  strerror_r()  gibt  bei  Erfolg  0  zurück. Im Fehlerfall wird eine positive
       Fehlernummer (seit Glibc 2.13) oder -1 zurückgegeben und errno mit einem  Wert  belegt,  der  den  Fehler
       angibt (Glibc vor Version 2.13).

       POSIX.1-2001  und  POSIX.1-2008 verlangen, dass ein erfolgreicher Aufruf von strerror() oder strerror_l()
       errno unverändert belässt. Sie merken an, dass wegen des  nicht  definierten  Rückgabewerts  zur  Anzeige
       eines  Fehlers  eine Anwendung zur Fehlerprüfung vor dem Aufruf errno auf Null setzen und nach dem Aufruf
       überprüfen sollte.

FEHLER

       EINVAL Der Wert von errnum ist keine gültige Fehlernummer.

       ERANGE Es wurde unzureichender Speicher für die Aufnahme der Fehler-Zeichenkette bereitgestellt.

VERSIONEN

       Die Funktion strerror_l() kamen erstmals in Glibc 2.6 vor.

ATTRIBUTE

       Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.
       ┌────────────────┬───────────────────────┬─────────────────────────┐
       │ SchnittstelleAttributWert                    │
       ├────────────────┼───────────────────────┼─────────────────────────┤
       │ strerror()     │ Multithread-Fähigkeit │ MT-Unsafe race:strerror │
       ├────────────────┼───────────────────────┼─────────────────────────┤
       │ strerror_r(),  │ Multithread-Fähigkeit │ MT-Safe                 │
       │ strerror_l()   │                       │                         │
       └────────────────┴───────────────────────┴─────────────────────────┘

KONFORM ZU

       strerror() wird  von  POSIX.1-2001,  POSIX.1-2008,  C89  und  C99  spezifiziert.  strerror_r()  wird  von
       POSIX.1-2001 spezifiziert.

       strerror_l() ist in POSIX.1-2008 spezifiziert.

       Die GNU-spezifische Funktion strerror_r() ist eine nicht standardisierte Erweiterung.

       POSIX.1-2001  gestattet  strerror()  das Setzen von errno wenn der Aufruf einen Fehler bewirkt, gibt aber
       nicht vor, welchen Wert die  Funktion  im  Fehlerfall  zurückgeben  sollte.  Auf  einigen  Systemen  gibt
       strerror()  NULL  zurück,  wenn  die Fehlernummer nicht bekannt ist. Auf anderen Systemen gibt strerror()
       eine Meldung etwa wie »Fehler nnn  aufgetreten«  und  setzt  errno  auf  EINVAL,  wenn  die  Fehlernummer
       unbekannt ist. C99 und POSIX.1-2008 verlangen, dass der Rückgabewert von NULL verschieden ist.

ANMERKUNGEN

       Die  GNU-C-Bibliothek  verwendet  einen  Puffer von 1024 Zeichen für strerror(). Diese Puffergröße sollte
       daher ausreichen, um einen Fehler ERANGE beim Aufruf von strerror_r() und strerror_l() zu vermeiden.

SIEHE AUCH

       err(3), errno(3), error(3), perror(3), strsignal(3), locale(7)

KOLOPHON

       Diese Seite ist Teil der Veröffentlichung  4.15  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 Eberhard Schauer <Martin.E.Schauer@gmx.de>
       und Mario Blättermann <mario.blaettermann@gmail.com> 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>.

                                               15. September 2017                                    STRERROR(3)