Namensräume
Varianten
Aktionen

errno

Von cppreference.com
< cpp‎ | error
 
 
 
Definiert in der Header-Datei <cerrno>
#define errno /* implementierungsabhängig */

errno ist ein Präprozessor-Makro, das zur Fehleranzeige verwendet wird. Es expandiert zu einem statischen(bis C++11)threadsicheren(seit C++11) modifizierbaren lvalue vom Typ int.

Mehrere Standardbibliotheksfunktionen zeigen Fehler an, indem sie positive ganze Zahlen in errno schreiben. Typischerweise wird der Wert von errno auf einen der Fehlercodes gesetzt, die in <cerrno> als Makrokonstanten aufgeführt sind, die mit dem Buchstaben E beginnen, gefolgt von Großbuchstaben oder Ziffern.

Der Wert von errno ist beim Programmstart 0, und obwohl Bibliotheksfunktionen positive ganze Zahlen in errno schreiben dürfen, unabhängig davon, ob ein Fehler aufgetreten ist oder nicht, speichern Bibliotheksfunktionen niemals 0 in errno.

[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] Fehlerberichte

Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR angewendet auf Verhalten wie veröffentlicht Korrigiertes Verhalten
LWG 310 C++98 war unklar, ob errno ein Makro ist
oder ein Bezeichner mit externer Bindung
errno muss
ein Makro sein

[bearbeiten] Siehe auch

Makros für Standard-POSIX-kompatible Fehlerbedingungen
(Makrokonstante) [bearbeiten]
zeigt eine Zeichenkette des aktuellen Fehlers nach stderr an
(function) [bearbeiten]
gibt eine Textversion eines gegebenen Fehlercodes zurück
(Funktion) [bearbeiten]
C-Dokumentation für errno