Fonction Strerror 2 C

Fonction Strerror 2 C
Les erreurs du système se produisent. Dès que votre programme essaie d'atteindre le système d'exploitation, quelque chose ne va pas. Si cela se produit, la fonction renvoie -1 et votre code doit s'appuyer sur notre fidèle errno pour comprendre ce qui a mal tourné et peut-être émettre un message d'erreur instructif. La bibliothèque C appelle Char * Strerror (int errnum), qui produit une référence à une chaîne comprenant le message d'erreur, et recherche un tableau interne pour le numéro d'erreur Errnum. Selon le compilateur et la plate-forme utilisés pour le développement, Strorror génère des chaînes d'erreur et convertit une chaîne de messages d'erreur au numéro d'erreur dans Errnum.

Des valeurs errno avec des erreurs appropriées sont requises. Une chaîne de messages d'erreur spécifique aux paramètres n'est pas produite par cette fonction. La bibliothèque contient des variables et des fonctions destinées à rendre simple à votre programme de fournir une défaillance détaillée du message d'erreur de la partie d'un appel de bibliothèque dans le format habituel. Vous pouvez obtenir le message d'erreur par défaut pour un certain code d'erreur à l'aide des méthodes Strorror, et vous pouvez rapidement obtenir le nom du programme qui a fait l'erreur en utilisant le nom court du programme d'invocation de la variable. Enquêtons sur la fonction Strerror du langage C plus en détail.

Syntaxe de la fonction Strerror dans le langage C

Nous utilisons la syntaxe suivante de la fonction Strteurror () dans la langue C. La chaîne qui explique l'erreur est obtenue en utilisant cette syntaxe de litre.

char * strerror (int errnum);

Nous n'avons qu'un seul argument que prend la fonction Strerror. L'argument est errnum: une erreur spécifique pour laquelle vous souhaitez recevoir le message d'erreur. Si l'erreur d'exécution est inconnue, la fonction Strorror () fournit un message d'erreur inconnu. Sinon, cela donne la chaîne de description d'erreur pertinente.

La valeur d'errno reste inchangée si l'opération est réussie; Sinon, il est changé en valeur non nulle. De plus, la fonction Strerror génère deux erreurs, Einval et Erange. Si la valeur d'errnum est un numéro d'erreur non valide, l'erreur Einval est lancée. Lorsque la chaîne de description d'erreur n'a pas pu être stockée sur le stockage fourni, l'erreur générée est ERange.

Exemple 1

Ici, nous avons démontré l'utilisation de la fonction Strerror. Nous utiliserons cela dans notre programme C pour générer l'erreur lors de l'exécution. Discutons de la mise en œuvre de cette fonction de litre. Nous devons inclure certains fichiers d'en-tête de bibliothèque de C, qui sont requis pour cette implémentation de code.

Tout d'abord, nous avons inséré le stdio.Fichier d'en-tête H. Nous devons inclure le fichier d'en-tête stdio.h pour ajouter les méthodes liées à l'entrée / la sortie dans notre programme. Ensuite, la chaîne.h est ajouté après le stdio.Fichier d'en-tête H. L'en-tête de la bibliothèque standard C est appelé chaîne.H. Cependant, le nom est un peu trompeur car il comprend des déclarations de macro, des constantes et des déclarations de méthodes et de types, celles-ci sont utilisées pour gérer plusieurs fonctions de traitement de la mémoire en plus de gérer les chaînes. Comme il s'agit du code de la fonction Strerror pour accéder à cette fonction, nous devons importer une erreur.Fichier H pour cette fonction.

La bibliothèque standard du langage de programmation C contient le fichier d'en-tête Errno.H. Il définit les macros avec le symbole errno pour signaler et récupérer les circonstances d'erreur (abréviation pour «numéro d'erreur»). Certaines fonctions de bibliothèque qui détectent les erreurs enregistrer une valeur telle que le numéro d'erreur se trouve dans la variable Errno. Les seules valeurs que les fonctions de bibliothèque stockent sont supérieures à zéro.

Qu'ils remarquent des erreurs, toute fonction de bibliothèque peut modifier la valeur enregistrée avant de retourner. La majorité des fonctions rapportent les erreurs en renvoyant une valeur spécifique, généralement nul pour les méthodes qui renvoient les pointeurs et -1 pour les méthodes qui renvoient les entiers. L'appelant de quelques fonctions doit définir Errno sur 0 et l'examiner par la suite pour vérifier si une erreur a été trouvée.

#inclure
#inclure
#inclure
int main ()
Fichier * fp;
fp = fopen ("fichier.txt "," r ");
if (fp == null)
printf ("Error:% s \ n", Strerror (errno));

return (0);

Après avoir inclus le fichier d'en-tête, nous avons la déclaration de fonction principale. Dans la section Fonction principale, nous avons créé le pointeur de fichier «FP» avec l'objet de fichier. Le fichier se voit attribuer un nom de fichier avec le mode de lecture à l'intérieur de la fonction fopen si la condition est appliquée à la variable du pointeur FP. Si le FP est trouvé nul, alors l'instruction PRINTF est exécutée qui a la fonction Strteurror. La fonction Strerror prend l'errno comme un argument et le renvoie sous une forme de chaîne.

Parce que nous tentons d'ouvrir un fichier qui n'est pas présent, compilons et exécutons le programme mentionné ci-dessus, ce qui entraînera le résultat suivant:

Exemple 2

Comme le code précédent génère la chaîne d'erreur elle-même lorsque cela se produit. Nous pouvons également définir l'erreur de chaîne par nous-mêmes. Nous devons d'abord définir la chaîne d'erreur avec l'errno.

int main (int argc, char * argv [])

Fichier * fout;
int last_error = 0;
if ((fout = fopen (argv [1], "w")) == null)
last_error = errno;
errno = 0;

if (last_error)
fprintf (Stderr, "Fopen: Impossible d'ouvrir% s pour l'écriture:% s",
Argv [1], Stronterror (last_error));
fputs ("continuer… \ n", stderr);

return exit_success;

Nous avons inséré plusieurs fichiers d'en-tête pour cet exemple de code et chacun a sa fonctionnalité et son objectif. Ensuite, nous avons établi la fonction principale. Le Fout est créé comme la variable du pointeur et le dernier_érror est également déclaré comme la variable, qui est attribuée avec la valeur 0. Les expressions imbriquées sont utilisées ici. Si la condition Last_errror est appariée avec l'erroRno, alors nous pouvons spécifier le dernier_érror dans la fonction Strerror.

L'erreur de chaîne définie par l'utilisateur est produite lorsque le code précédent est exécuté, comme indiqué ci-dessous:

Conclusion

L'objectif principal du guide est de vous éduquer sur la lignée C dans la langue C. En utilisant l'erreur.Fichier d'en-tête H Dans le code, nous pouvons facilement accéder à la fonction Strinterror. La syntaxe est très facile à comprendre. Ici, nous avons discuté de deux exemples qui expliqueront l'utilisation de la masse de la languette en C. Nous pouvons également créer ou définir l'erreur dans l'erreur de chaîne que nous voulons afficher.