recherche
  • Se connecter
  • S'inscrire
Réinitialisation du mot de passe réussie

Suivez les projets qui vous intéressent et découvrez les dernières actualités les concernant.

Gestion des erreurs C

Collection 205
Lire 91683
temps de mise à jour 2016-09-11

Le langage C ne fournit pas de support direct pour la gestion des erreurs, mais en tant que langage de programmation système, il vous permet d'accéder aux données sous-jacentes sous forme de valeurs de retour. Lorsqu'une erreur se produit, la plupart des appels de fonction C ou UNIX renvoient 1 ou NULL et définissent un code d'erreur errno, qui est une variable globale indiquant qu'une erreur s'est produite lors de l'appel de fonction. Vous pouvez trouver différents codes d'erreur dans le fichier d'en-tête <error.h>

Ainsi, le programmeur C peut vérifier la valeur de retour et décider quelle action appropriée entreprendre en fonction de la valeur de retour. Les développeurs doivent définir errno sur 0 lors de l'initialisation du programme, ce qui constitue une bonne pratique de programmation. Une valeur de 0 indique qu'il n'y a aucune erreur dans le programme.

errno, perror() et strerror()

Le langage C fournit les fonctions perror() et strerror() pour l'affichage du texte messages liés à errno. La fonction

  • perror() affiche la chaîne que vous lui transmettez, suivie de deux points, d'un espace et d'une représentation textuelle de la valeur du numéro d'erreur actuel. La fonction

  • strerror() renvoie un pointeur pointant vers la représentation textuelle de la valeur du numéro d'erreur actuel.

Simulons une situation d'erreur en essayant d'ouvrir un fichier qui n'existe pas. Il existe de nombreuses façons d'afficher des messages d'erreur. Ici, nous utilisons des fonctions pour démontrer leur utilisation. Une autre chose à noter est que vous devez utiliser le flux de fichiers stderr pour afficher toutes les erreurs.

#include <stdio.h>#include <errno.h>#include <string.h>extern int errno ;int main (){
   FILE * pf;   int errnum;
   pf = fopen ("unexist.txt", "rb");   if (pf == NULL)   {
      errnum = errno;
      fprintf(stderr, "错误号: %d\n", errno);
      perror("通过 perror 输出错误");
      fprintf(stderr, "打开文件错误: %s\n", strerror( errnum ));   }   else   {
      fclose (pf);   }   return 0;}

Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :

错误号: 2通过 perror 输出错误: No such file or directory打开文件错误: No such file or directory

Division par zéro erreur

Lors de l'opération de division, si vous ne cochez pas Si le diviseur est zéro, une erreur d'exécution se produira.

Pour éviter que cela ne se produise, le code suivant vérifiera si le diviseur est nul avant d'effectuer l'opération de division :

#include <stdio.h>#include <stdlib.h>main(){   int dividend = 20;   int divisor = 0;   int quotient; 
   if( divisor == 0){
      fprintf(stderr, "除数为 0 退出运行...\n");      exit(-1);   }
   quotient = dividend / divisor;
   fprintf(stderr, "quotient 变量的值为 : %d\n", quotient );   exit(0);}

Lorsque le code ci-dessus sera compilé et exécuté, il produira le résultat suivant :

除数为 0 退出运行...

Statut de sortie du programme

Normalement, lorsque le programme exécute avec succès une opération et se termine normalement, il aura la valeur EXIT_SUCCESS. Ici, EXIT_SUCCESS est la macro et elle est définie comme 0.

S'il y a une condition d'erreur dans le programme, lorsque vous quitterez le programme, ce sera avec la valeur d'état EXIT_FAILURE, qui est définie comme -1. Ainsi, le programme ci-dessus peut être écrit comme :

#include <stdio.h>#include <stdlib.h>main(){   int dividend = 20;   int divisor = 5;   int quotient; 
   if( divisor == 0){
      fprintf(stderr, "除数为 0 退出运行...\n");      exit(EXIT_FAILURE);   }
   quotient = dividend / divisor;
   fprintf(stderr, "quotient 变量的值为: %d\n", quotient );   exit(EXIT_SUCCESS);}

Lorsque le code ci-dessus est compilé et exécuté, il produira les résultats suivants :

quotient 变量的值为 : 4
Outils d'IA chauds
Undress AI Tool
Undress AI Tool

Images de déshabillage gratuites

AI Clothes Remover
AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undresser.AI Undress
Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

Stock Market GPT
Stock Market GPT

Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Outil populaire
Bloc-notes++7.3.1
Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6
Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac
SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)