Errno en c

Errno en c
La langue C ne permet pas directement la gestion des erreurs, mais elle permet d'accès à un niveau moindre via des valeurs de retour. En cas d'inexactitude, la majorité de C ou peut-être même des appels de fonction Linux rendent -1 ou void et définissent le code d'erreur Errno. C'est une constante universelle qui montre quand un appel de fonction a échoué. Dans le fichier d'en-tête, vous trouverez une liste de différents codes d'erreur. En conséquence, un développeur C peut examiner les valeurs fournies et, en fonction de eux, prendre les mesures nécessaires. Il ne semble pas y avoir de problème dans le programme si le résultat est 0. Dans cet article aujourd'hui, nous discuterons de l'utilisation de la variable «errno» pour obtenir des codes d'erreur et des messages sur notre environnement Linux (i.e., Ubuntu 20.0.4 SYSTÈME.) Commençons par l'ouverture d'un obus terminal dans l'ubuntu 20.04 Système d'exploitation Linux et installation du compilateur GCC de C.

Avant de vous diriger vers la création d'un code C, nous avons besoin d'un fichier C dans notre système Linux. Ainsi, nous avons utilisé l'instruction tactile pour en créer un. Ce fichier doit contenir une extension «C» à sa fin. Comme vous pouvez le découvrir, nous avons construit un fichier nommé «Errno.C ". La commande List a été utilisée pour répertorier tous les fichiers et dossiers de notre répertoire de travail actuel dans Linux. Le fichier C nouvellement fait «Errno.C ”est également répertorié ici. Pour créer du code C dans le fichier, nous devons l'ouvrir dans un éditeur comme un éditeur de texte, un éditeur VIM ou un éditeur GNU Nano. Nous l'avons donc ouvert à l'intérieur de l'éditeur GNU Nano avec l'utilisation de la commande «Nano» dans le shell. Ce fichier sera ouvert dans un éditeur de type terminal.

Exemple 01

Commençons par l'exemple initial de cet article. Disons que vous souhaitez ouvrir et lire les données d'un fichier texte spécifique résidant dans le même répertoire actuel en utilisant le dossier C en C. Pour cela, nous devons utiliser la bibliothèque de sortie d'entrée standard d'un C dans notre code. Nous l'avons donc inclus à la ligne d'ouverture en utilisant le mot-clé «#include».

Après cela, nous devons utiliser le «errno.En-tête h ”dans ce code C afin que nous puissions utiliser la variable intégrée« Errno »pour obtenir le code d'erreur et le message. L'exécution principale sera lancée à partir de la fonction «Main ()» du programme C. Dans ce programme principal, nous utilisons la variable «fichier» pour initialiser le descripteur de fichier «F» de type de pointeur. Ce descripteur de fichier a été utilisé pour ouvrir le fichier «Nouveau.txt »dans un format en lecture seule en utilisant la fonction« fopen »du dépôt en C. La déclaration IF-Else est là pour vérifier si le fichier est ouvert avec succès ou non. La partie «if» de l'instruction vérifiera si le résultat renvoyé du descripteur de fichier est égal à 0 ou non. Si 0, alors cela signifie que le fichier est manquant ou non ouvert avec succès. Ainsi, l'instruction PRINTF utilisera la variable «Errno» pour afficher le code d'erreur.

D'un autre côté, la partie «else» sera utilisée lorsque la condition ne satisfait pas à la valeur du descripteur de fichier autre que. La déclaration printf affichera que l'ouverture est réussie.

Nous avons compilé ce code avec le compilateur «GCC», puis l'avons exécuté avec le «./un.instruction out. Cette exécution de code renvoie le code d'erreur numéro 2 où aucun fichier n'a été trouvé.

Pour supprimer cette erreur, nous devons créer un nouveau fichier texte avec l'instruction «Touch» et y ajouter des données avec l'instruction «echo» comme indiqué. L'instruction «chat» montre que le fichier contient les données de texte nouvellement ajoutées dedans.

Maintenant, lorsque vous compilez et exécutez le même code dans le shell, il exécutera la partie «else» et affichera le message «réussi» (i.e., le fichier est trouvé maintenant.)

Si vous souhaitez afficher le message d'erreur avec son code d'erreur, vous devez utiliser la fonction «Strerror» dans le programme. Pour cela, vous devez utiliser la «chaîne.en-tête h ”dans le code. Nous avons donc ajouté l'en-tête et mis à jour le composant «IF» de la déclaration «if-else». L'appel de la fonction Strerror () a poursuivi le «errno» pour obtenir le message d'erreur par son code d'erreur.

Lorsque votre fichier est manquant, vous serez affiché avec le message d'erreur «Aucun fichier ou répertoire de ce type» sur le shell comme indiqué.

Exemple 02

Vérifions le numéro d'erreur pour un autre exemple d'erreur. Nous utilisons les bibliothèques standard du programme et la fonction principale () contient l'initialisation d'une fonction «Val» et de fonction «Vérifier» en lui faisant passer la variable «Val». La fonction Check () utiliserait l'instruction «if-else» pour vérifier si la valeur «val» est nulle ou non et donc l'autre valeur peut être divisible par elle ou non. Comme la valeur «Val» est 7, elle peut être divisible par 8. Ainsi, la partie «else» de la fonction Check () serait exécutée pour calculer le résultat de la division et l'afficher sur le shell.

Après la compilation et l'exécution, nous avons constaté que la division est possible. La partie ELSE a calculé et affiché la valeur de division entre 89 et la valeur «7» pour la variable «Val».

Mettons à jour le code à nouveau et ajoutons 0 comme valeur à la variable «Val» dans la fonction principale () pour inverser les résultats. Nous avons donc mis à jour la valeur «Val» à 0 comme indiqué dans l'image ci-dessous. Le reste du code est resté intact.

Après avoir exécuté ce code mis à jour, nous avons le code d'erreur 0 et son message d'erreur.

Conclusion

Il s'agit de l'utilisation de la variable «errno» dans l'article pour obtenir les codes d'erreur de différentes exceptions en utilisant son «errno.en-tête h ”. Nous avons également discuté de l'utilisation de la fonction «Strerror» pour afficher le message d'erreur avec le numéro de code. Nous avons incorporé deux instances dans ce guide pour mieux expliquer l'idée d'errno.