Namespaces
Variants

errno

From cppreference.net
Défini dans l'en-tête <cerrno>
#define errno /* implementation-defined */

errno est une macro de préprocesseur utilisée pour l'indication d'erreur. Elle se développe en une lvalue modifiable (jusqu'en C++11) lvalue modifiable locale au thread (depuis C++11) de type int .

Plusieurs fonctions de la bibliothèque standard indiquent des erreurs en écrivant des entiers positifs dans errno . Typiquement, la valeur de errno est définie à l'un des codes d'erreur, listés dans <cerrno> comme constantes macro qui commencent par la lettre E , suivie de lettres majuscules ou de chiffres.

La valeur de errno est 0 au démarrage du programme, et bien que les fonctions de bibliothèque soient autorisées à écrire des entiers positifs dans errno qu'une erreur se soit produite ou non, les fonctions de bibliothèque ne stockent jamais 0 dans errno .

Exemple

#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';
    }
}

Sortie possible :

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

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Appliqué à Comportement publié Comportement corrigé
LWG 310 C++98 il n'était pas clair si errno est une macro
ou un identifiant avec liaison externe
errno doit
être une macro

Voir aussi

macros pour les conditions d'erreur standard compatibles POSIX
(macro constante)
affiche une chaîne de caractères correspondant à l'erreur courante vers stderr
(fonction)
retourne une version textuelle d'un code d'erreur donné
(fonction)