Provided by: manpages-de-dev_2.16-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()
       zu vermeiden.

SIEHE AUCH

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

KOLOPHON

       Diese  Seite  ist  Teil  der  Veröffentlichung  5.03  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>.

                                           6. März 2019                               STRERROR(3)