Récupérer le descriptif de l’erreur

Problème

Une erreur est survenue. Vous souhaitez savoir à quoi elle correspond.

Solution

Dans le programme, un descriptif rapide de l’erreur peut être obtenu avec strerror(). Pour plus d’informations, consultez la page de manuel de la fonction ayant entraîné l’erreur.

Discussion

Pour obtenir un descriptif rapide de l’erreur, vous pouvez utiliser strerror() avec errno pour argument. Ainsi, après une erreur, vous pourrez écrire ceci :


fprintf (stderr, "Erreur (%d) : %s\n", errno, strerror (errno));
 

Nous pouvons remarquer que la fonction perror() fonctionne comme si nous exécutions fprintf(stderr, "%s : %s\n", message, strerror(errno)) où le message est l’argument à fournir à perror().

Plutôt que d’écrire la ligne précédente, vous pouvez utiliser une macro, comme ceci, ou avec un nom plus court :


#define PRINT_ERROR_DESCRIPTION fprintf(stderr, \ 
                    "%s:%d Erreur (%d) : %s\n", \ 
                    __FILE__, __LINE__, \ 
                    errno, strerror(errno))
 

Par ailleurs, les pages de manuel contiennent souvent des explications plus détaillées sur les codes d’erreur possibles. En fonction de l’appel système qui est en erreur, vous...

Pour consulter la suite, découvrez le livre suivant :
couv_EI3CACT.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Récupérer le code d'erreur
Suivant
Garder une trace de l'exécution d'un programme