std::strerror
| Definiert in Header <cstring> |
||
| char* strerror( int errnum ); |
||
Gibt einen Zeiger auf die textuelle Beschreibung des System-Fehlercodes errnum zurück, identisch mit der Beschreibung, die von std::perror() ausgegeben würde.
errnum wird normalerweise aus der Variablen errno übernommen, jedoch akzeptiert die Funktion jeden Wert vom Typ int. Der Inhalt des Strings ist lokalitätsspezifisch.
Der zurückgegebene String darf nicht vom Programm modifiziert werden, kann aber durch einen nachfolgenden Aufruf der Funktion strerror überschrieben werden. strerror muss nicht threadsicher sein. Implementierungen können unterschiedliche Zeiger auf statische schreibgeschützte String-Literale zurückgeben oder denselben Zeiger immer wieder zurückgeben, der auf einen statischen Puffer zeigt, in den strerror den String platziert.
Inhalt |
[bearbeiten] Parameter
| errnum | - | integer value referring to an error code |
[bearbeiten] Rückgabewert
Zeiger auf einen nullterminierten Byte-String, der dem Fehlercode errno errnum entspricht.
[bearbeiten] Hinweise
POSIX erlaubt es, dass nachfolgende Aufrufe von strerror den von einem früheren Aufruf zurückgegebenen Zeigerwert ungültig machen. Es wird auch spezifiziert, dass die Lokalisierungsfacet LC_MESSAGES die Inhalte dieser Nachrichten steuert.
POSIX hat eine threadsichere Version namens strerror_r definiert. Glibc definiert eine inkompatible Version.
[bearbeiten] 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
[bearbeiten] Siehe auch
| zeigt eine Zeichenkette des aktuellen Fehlers nach stderr an (function) | |
| Makros für Standard-POSIX-kompatible Fehlerbedingungen (Makrokonstante) | |
| C-Dokumentation für strerror
| |