Bonjou à tous,
Dans ce tuto je vais vous apprendre à gerer les erreurs avec strerror.
Cours très très simple
strerror permet de récuperer la signification de l'erreur. C'est à dire d'où vient l'erreur ...
Pour l'utiliser nous aurons besoins d'inclure à notre projet cette bibliothèque
errno.h (désolé le site n'accepte pas les codes includes)
Car nous utiliserons une autre fonction appelée errno qui consite enfaite a recuperer le code d'erreur. Mais personnellement je ne trouve pas ça très interessant car on s'enfou un peut Mais je vais quand meme vous expliquez brievement comment l'utiliser
Mais ce que nous voulons arrivez à faire c'est d'affiche la signification de l'erreur. Pour ce faire nous utiliserons strerror qui se trouve dans la bibliothèque "string.h" et qui a la synthaxe suivante :
char *strerror (int errnum);
Comme vous le voyez la synthaxe est de type char , logique ! etant donné qu'elle renvoie une chaine de caractère
donc biensur vous devez ajoutez à votre projet :
string.h (désolé le site n'accepte pas les codes includes)
Dans mon exemple je vais utiliser l'ouverture de fichier avec fopen car je trouve que c'est un exemple claire et précis. Je vous conseil d'allez lire le tuto sur fopen
void fonction ()
{
FILE *strerror = NULL;
strerror = fopen ("fichier.txt", "r");
if (strerror == NULL)
{
printf ("signification : %s", strerror(errno));
}
}
Voila bhon rien de spécial , j'ai utilisé fopen comme vu dans l'autre tutorial, ensuite j'ai fais une condition qui demande l'affichage de la signification de l'erreur. (avec le "%s" qui je rapel scan ou imprime une chaine de caractère.)
ensuite j'utilise notre fameuse fonction strerror qui va prendre 1 paramètre et c'est "errno" qui comme je l'ai dit taleur lui récupère le code de l'erreur.
Pour affiche la signification de l'erreur il faut indiquer à l'ordinateur l'origine dans un language qu'il comprend
Si vous voulez seulement récuperer le code d'erreur il vous suffit simplement de faire comme ceci :
void fonction ()
{
FILE *errno = NULL;
errno = fopen ("fichier.txt", "r");
if (errno == NULL)
{
printf ("code : %s", errno);
}
}
Très simple non ?
Si vous avez la moindre question, rendez vous sur le forum :)