Namespaces
Variants

std:: strerror

From cppreference.net
Definiert im Header <cstring>
char * strerror ( int errnum ) ;

Gibt einen Zeiger auf die textuelle Beschreibung des Systemfehlercodes errnum zurück, identisch mit der Beschreibung, die von std::perror() ausgegeben werden würde.

errnum wird normalerweise aus der Variable errno bezogen, jedoch akzeptiert die Funktion jeden Wert vom Typ int . Der Inhalt der Zeichenkette ist localespezifisch.

Der zurückgegebene String darf vom Programm nicht modifiziert werden, kann jedoch durch einen nachfolgenden Aufruf der strerror -Funktion überschrieben werden. strerror muss nicht thread-sicher sein. Implementierungen können verschiedene Zeiger auf statische schreibgeschützte String-Literale zurückgeben oder immer wieder denselben Zeiger zurückgeben, der auf einen statischen Puffer zeigt, in dem strerror den String platziert.

Inhaltsverzeichnis

Parameter

errnum - Ganzzahlwert, der sich auf einen Fehlercode bezieht

Rückgabewert

Zeiger auf eine nullterminierte Byte-Zeichenkette, die dem errno Fehlercode errnum entspricht.

Hinweise

POSIX erlaubt nachfolgende Aufrufe von strerror , den von einem früheren Aufruf zurückgegebenen Zeigerwert zu invalidieren. Es wird ebenfalls spezifiziert, dass das LC_MESSAGES Locale-Facet den Inhalt dieser Nachrichten steuert.

POSIX verfügt über eine thread-sichere Version namens strerror_r definiert. Glibc definiert eine inkompatible Version .

Beispiel

#include <cerrno>
#include <clocale>
#include <cmath>
#include <cstring>
#include <iostream>
int main()
{
    const double not_a_number = std::log(-1.0);
    std::cout << not_a_number << '\n';
    if (errno == EDOM)
    {
        std::cout << "log(-1) failed: " << std::strerror(errno) << '\n';
        std::setlocale(LC_MESSAGES, "de_DE.utf8");
        std::cout << "Or, in German, " << std::strerror(errno) << '\n';
    }
}

Mögliche Ausgabe:

nan
log(-1) failed: Numerical argument out of domain
Or, in German, Das numerische Argument ist ausserhalb des Definitionsbereiches

Siehe auch

zeigt eine Zeichenkette an, die dem aktuellen Fehler entspricht, an stderr
(Funktion)
Makros für standardkonforme POSIX-Fehlerbedingungen
(Makrokonstante)
C-Dokumentation für strerror