std:: strerror
|
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
|
|