Namespaces
Variants

std:: strerror

From cppreference.net
Défini dans l'en-tête <cstring>
char * strerror ( int errnum ) ;

Retourne un pointeur vers la description textuelle du code d'erreur système errnum , identique à la description qui serait affichée par std::perror() .

errnum est généralement obtenu à partir de la variable errno , cependant la fonction accepte n'importe quelle valeur de type int . Le contenu de la chaîne est spécifique aux paramètres régionaux.

La chaîne retournée ne doit pas être modifiée par le programme, mais peut être écrasée par un appel ultérieur à la fonction strerror . strerror n'est pas tenue d'être thread-safe. Les implémentations peuvent retourner différents pointeurs vers des littéraux de chaîne en lecture seule statiques ou peuvent retourner le même pointeur de manière répétée, pointant vers un tampon statique dans lequel strerror place la chaîne.

Table des matières

Paramètres

errnum - valeur entière faisant référence à un code d'erreur

Valeur de retour

Pointeur vers une chaîne d'octets terminée par un caractère nul correspondant au errno code d'erreur errnum .

Notes

POSIX autorise que les appels ultérieurs à strerror invalident la valeur du pointeur retournée par un appel précédent. Il spécifie également que c'est le LC_MESSAGES facet de locale qui contrôle le contenu de ces messages.

POSIX dispose d'une version thread-safe appelée strerror_r définie. Glibc définit une version incompatible .

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

Voir aussi

affiche une chaîne de caractères correspondant à l'erreur courante vers stderr
(fonction)
macros pour les conditions d'erreur standard compatibles POSIX
(macro constante)
Documentation C pour strerror