Les codes d'erreur Linux sont les codes qui s'affichent si une erreur se produit dans le système pendant le travail ou l'utilisation d'un programme. Les erreurs peuvent être reconnues à l'aide de codes d'erreur. Les codes d'erreur nous aident à reconnaître la source de l'erreur.
Si nous travaillons sur un système Linux, il est évident que nous pouvons rencontrer des erreurs. Certaines erreurs peuvent être mineures et ne peuvent pas entraîner une interruption du programme. Mais certaines erreurs peuvent empêcher un système ou un programme de répondre. Ces erreurs peuvent entraîner une perte de données ou empêcher le programme de se terminer. La plupart du temps, les erreurs sont affichées sous forme de codes ou de messages.
Dans cette section, nous verrons les erreurs dans la programmation C et une liste des erreurs possibles dans le Linux système.
Erreurs Linux dans la programmation C
Un programmeur expérimenté doit savoir comment gérer les erreurs. Le langage de programmation C ne fournit pas de prise en charge directe de la gestion des erreurs. Nous devons détecter la source de l’erreur et y remédier. En langage C, les valeurs de retour affichent l'échec ou le succès. Si une fonction du programme C échoue, nous devons gérer l'erreur en conséquence ; sinon, il enregistre les erreurs en dernier dans un fichier journal.
Lors de l'exécution des programmes C, nous pouvons remarquer certains numéros d'erreur tels que « L'erreur n° est : 17 ». Ici, l'erreur n°17 signifie que le fichier existe déjà. Chaque numéro d'erreur a une signification.
Le langage C supporte une variable 'erreur .' En utilisant cette variable de numéro d'erreur, nous pouvons utiliser certaines fonctions de gestion des erreurs pour la gérer correctement.
Pour utiliser le numéro d'erreur de la variable externe, nous devons inclure un fichier d'en-tête 'errno.h.' Le fichier d'en-tête est utilisé pour définir la variable 'errno'. La variable errno est définie par les appels système et les fonctions de bibliothèque dans l'occurrence d'erreur. Il y a deux fonctions importantes dans le Langage de programmation C gérer les erreurs; perrreur et erreur . La fonction perror est utilisée pour imprimer la description de l'erreur et la fonction sterror renvoie une chaîne contenant un code d'erreur.
Affichons la liste des codes d'erreur en utilisant errno.
Numéro d'erreur Linux
L'utilitaire errno est utilisé pour rechercher les codes d'erreur, les noms de macro et les descriptions correspondantes. Par exemple, si nous fournissons ENOENT sur un système Linux, il affichera le code 2 et la description ' Aucun fichier ou répertoire de ce nom .' Si nous fournissons le code 2, alors il affichera le ENOENT et sa description .
Si l'utilitaire errno n'est pas installé sur notre machine, il affichera l'erreur comme suit :
Pour l'installer, exécutez la commande ci-dessous :
sudo apt install moreutils
En exécutant la commande ci-dessus, le package moreutils est installé sur notre machine qui contient l'utilitaire errno.
Afficher la liste des codes d'erreur
Pour afficher la liste des codes d'erreur, exécutez la commande comme suit :
errno -l
La commande ci-dessus affichera la liste des codes d'erreur de RedHat. Considérez le résultat ci-dessous :
Afficher les informations d'un numéro d'erreur
Pour afficher les informations d'un numéro d'erreur particulier, exécutez la commande comme suit :
errno 2
La commande ci-dessus affichera la description de l'erreur numéro 2. Considérez le résultat ci-dessous :
Afficher les informations d'un nom d'erreur
Pour afficher les informations d'un nom d'erreur particulier, exécutez la commande errno, suivie du nom de l'erreur. Par exemple, pour afficher les informations d'un nom d'erreur 'ESRCH ,' exécutez la commande comme suit :
errno ESRCH
La commande ci-dessus affichera les informations sur le nom de l'erreur spécifié. Considérez le résultat ci-dessous :
Afficher l'erreur à l'aide de chaînes
Pour afficher une description d'erreur à l'aide d'une chaîne de la description, exécutez la commande comme suit :
errno -s permission
La commande ci-dessus affichera les erreurs dont la description contient une autorisation de chaîne. Considérez le résultat ci-dessous :
Liste des erreurs du système Linux
Voici une liste partielle des erreurs possibles du système Linux :
Code d'erreur | erreur non | Description |
---|---|---|
Supérieur | 1 | Il s'affiche si l'opération n'est pas autorisée. |
ÉNOENT | 2 | Il s'affiche s'il n'existe aucun fichier ou répertoire de ce type. |
ESRCH | 3 | Il s'affiche si aucun processus de ce type n'existe. |
EINTR | 4 | Il est affiché pour un appel système interrompu |
EIO | 5 | Il s'affiche en cas d'erreur d'entrée/sortie. |
ENXIO | 6 | Il s’affiche s’il n’existe aucun appareil ou adresse de ce type. |
E2BIG | 7 | Il s'affiche si la liste d'arguments est trop longue. |
ENOEXEC | 8 | Il s'affiche s'il y a une erreur de format d'exécution |
EBADF | 9 | Il s'affiche en cas de mauvais descripteur de fichier. |
ENFANT | dix | Il s'affiche s'il n'existe aucun processus enfant. |
ENCORE | onze | Il s'affiche si la ressource est temporairement indisponible. |
ENOMEM | 12 | Il s'affiche si le système ne peut pas allouer de mémoire. |
ACCÈS | 13 | Il s'affiche si l'autorisation est refusée. |
DÉFAUT | 14 | Il s'affiche s'il y a une mauvaise adresse. |
ENOTBLK | quinze | Il s'affiche si le blocage du périphérique est requis. |
OCCUPÉ | 16 | Il s'affiche si l'appareil ou la ressource est occupé. |
EXISTE | 17 | Il s'affiche si le fichier existe déjà. |
EXDEV | 18 | Il s’affiche s’il existe un lien inter-appareils non valide. |
ENODEV | 19 | Il s'affiche s'il n'existe pas de tel appareil. |
ENOTDIR | vingt | Il s'affiche s'il n'y a pas de répertoire. |
EISDIR | vingt-et-un | Il s'affiche s'il existe un répertoire. |
CHOIX UNIQUE | 22 | Il s'affiche s'il existe un argument invalide. |
ENFILE | 23 | Il s'affiche s'il y a trop de fichiers ouverts dans le système. |
MORT | 24 | Il s'affiche s'il y a trop de fichiers ouverts. |
ENOTTY | 25 | Il s'affiche s'il existe un ioctl inapproprié pour le périphérique. |
ETXTBSY | 26 | Il s'affiche si le fichier texte est occupé. |
EFBIG | 27 | Il s'affiche si le fichier est trop volumineux. |
ENOSPC | 28 | Il s'affiche s'il n'y a plus d'espace sur l'appareil. |
ESPIPÉ | 29 | Il s'affiche en cas de recherche illégale. |
EROFS | 30 | Il s'affiche dans le cas d'un système de fichiers en lecture seule. |
EMLINK | 31 | Il s'affiche s'il y a trop de liens. |
ÉPIPE | 32 | Il s'affiche en cas de canalisation cassée. |
ÉDOM | 33 | Il s'affiche si l'argument numérique est hors domaine. |
ÉRANGE | 3.4 | Il s'affiche si le résultat numérique est hors plage. |
EDEADLK | 35 | Il s'affiche si le blocage des ressources est évité. |
ÉNAMETOOLONG | 36 | Il s'affiche si le nom du fichier est trop long. |
ENOLCK | 37 | Il s'affiche si aucun verrou n'est disponible. |
ÉNOSYS | 38 | Il s'affiche si la fonction n'est pas implémentée. |
ÉNOTEMPTÉE | 39 | Il s'affiche si le répertoire n'est pas vide. |
ÉLOOP | 40 | Il s'affiche s'il y a trop de niveaux de liens symboliques. |
ENOMSG | 42 | Il s'affiche s'il n'y a pas de message du type souhaité. |
EIDRM | 43 | Il s'affiche si l'identifiant est supprimé. |
ECHRNG | 44 | Il s'affiche si le numéro de canal est hors de portée. |
EL2NSYNC | Quatre cinq | Il s'affiche si le niveau 2 n'est pas synchronisé. |
EL3HLT | 46 | Il s'affiche si le niveau 3 est arrêté. |
EL3RST | 47 | Il s'affiche si le niveau 3 est réinitialisé. |
ELNRNG | 48 | Il s'affiche si le numéro de lien est hors plage. |
EUNATCH | 49 | Il s'affiche si le pilote de protocole n'est pas connecté. |
ÉNOCSI | cinquante | Il s'affiche si aucune structure CSI n'est disponible. |
EL2HLT | 51 | Il s'affiche si le niveau 2 est arrêté. |
IL A ÉTÉ | 52 | Il s'affiche en cas d'échange invalide. |
EBADR | 53 | Il s'affiche en cas de descripteur de requête invalide. |
EXTRAIT | 54 | Il s'affiche si l'échange est plein. |
ÉNOANO | 55 | Il s'affiche en cas d'absence d'anode. |
EBADRQC | 56 | Il s'affiche en cas de code de demande invalide. |
EBADSLT | 57 | Il s'affiche pour un emplacement non valide. |
EBFONT | 59 | Il s'affiche en cas de mauvais format de fichier de police. |
UNILATÉRAL | 60 | Il s'affiche si le périphérique n'est pas un flux. |
ENODONNEES | 61 | Il s'affiche si aucune donnée n'est disponible. |
ETIME | 62 | Il s'affiche en cas d'expiration du minuteur. |
ÉNOSR | 63 | Il est affiché en cas de ressources de flux épuisées. |
ÉNONET | 64 | Il s'affiche si la machine n'est pas sur le réseau. |
ENOPKG | 65 | Il s'affiche si le package n'est pas installé. |
ÉRÉMOTE | 66 | Il s'affiche si l'objet est distant. |
ENOLINK | 67 | Il s'affiche si le lien a été rompu. |
EADV | 68 | Il s'affiche en cas d'erreur de publicité. |
ESRMNT | 69 | Il s'affiche pour l'erreur Srmount. |
ECOMM | 70 | Il s'affiche s'il y a une erreur de communication lors de l'envoi. |
ÉPROTO | 71 | Il s'affiche en cas d'erreur de protocole. |
ÉMULTIHOP | 72 | Il s'affiche pour toute tentative de multisaut. |
ÉDOTDOT | 73 | Il s'affiche pour une erreur spécifique à RFS. |
EBADMSG | 74 | Il s'affiche pour un message incorrect. |
EOVERFLOW | 75 | Il s'affiche si la valeur est trop grande pour le type de données défini. |
ÉNOTUNIQ | 76 | Il s'affiche si le nom n'est pas unique sur le réseau. |
EBADFD | 77 | Il s'affiche si le descripteur de fichier est en mauvais état. |
EREMCCHG | 78 | Il s'affiche si l'adresse distante est modifiée. |
ÉLIBACC | 79 | Il s'affiche si nous ne pouvons pas accéder à une bibliothèque partagée nécessaire. |
ÉLIBBAD | 80 | Il s'affiche en cas d'accès à une bibliothèque partagée corrompue. |
ELIBSCN | 81 | Il s'affiche si une section .lib dans un.out est corrompue. |
ELIBMAX | 82 | Il s'affiche si nous essayons de créer des liens vers trop de bibliothèques partagées. |
ELIBEXEC | 83 | Il s'affiche si nous ne pouvons pas exécuter directement une bibliothèque partagée. |
EILSEQ | 84 | Il s'affiche pour un caractère multi-octets ou large non valide ou incomplet. |
ERESTART | 85 | Il s'affiche pour informer que l'appel système interrompu doit être redémarré. |
ESTRIPPE | 86 | Il s’affiche s’il y a une erreur de canal de flux. |
UTILISATEURS EU | 87 | Il s'affiche pour un trop grand nombre d'utilisateurs. |
ENOTSOCK | 88 | Il est affiché pour le fonctionnement du socket sur un non-socket. |
EDESTADDRREQ | 89 | Il s'affiche si l'adresse de destination est requise. |
TAILLE EMS | 90 | Il s'affiche si le message est trop long. |
ÉPROTOTYPE | 91 | Il s'affiche si le protocole n'est pas du bon type pour le socket. |
ÉNOPROTOOPT | 92 | Il s'affiche si le protocole n'est pas disponible. |
SOUTIEN ÉPROTONOS | 93 | Il s'affiche si le protocole n'est pas pris en charge. |
ESOCKTNOSUPPORT | 94 | Il s'affiche si le type Socket n'est pas pris en charge. |
EOPNOTSUPP | 95 | Il s'affiche si l'opération n'est pas prise en charge. |
SUPPORT EPFNOS | 96 | Il s'affiche si la famille de protocoles n'est pas prise en charge. |
SOUTIEN EAFNOS | 97 | Il s'affiche si la famille d'adresses n'est pas prise en charge par le protocole. |
EADDRINUS | 98 | Il s'affiche si l'adresse est déjà utilisée. |
EADDRNOTADISPONIBLE | 99 | Il s'affiche si le système ne peut pas attribuer l'adresse demandée. |
ENETDOWN | 100 | Il s'affiche si le réseau est en panne. |
ENETUNREACH | 101 | Il s'affiche si le réseau est inaccessible. |
ENTRESET | 102 | Il s'affiche si le réseau a perdu la connexion lors de la réinitialisation. |
ÉCONNABORTÉ | 103 | Il s'affiche si le logiciel a provoqué l'interruption de la connexion. |
RÉINITIALISATION ÉCONOMIQUE | 104 | Il s'affiche si la connexion est réinitialisée par un homologue. |
ENOBUFS | 105 | Il s'affiche s'il n'y a pas d'espace tampon disponible. |
ESCON | 106 | Il s'affiche si le point de terminaison de transport est déjà connecté. |
ENOTCONN | 107 | Il s'affiche si le point de terminaison de transport n'est pas connecté. |
ARRÊT | 108 | Il s'affiche si le système ne peut pas envoyer après l'arrêt du point de terminaison de transport. |
ETOOMANYREFS | 109 | Il s'affiche s'il y a trop de références : impossible de raccorder. |
ETIMEDOUT | 110 | Il s'affiche si la connexion a expiré. |
ÉCONNRÉFUSÉ | 111 | Il s'affiche si la connexion est refusée. |
EHOSTDOWN | 112 | Il s'affiche si l'hôte est en panne. |
EHOSTUNREACH | 113 | Il s'affiche s'il n'y a pas de route vers l'hôte. |
DÉJÀ | 114 | Il s'affiche si l'opération est déjà en cours. |
CHAQUE PROGRÈS | 115 | Il s'affiche si l'opération est en cours. |
CLIQUEZ SUR | 116 | Il s’affiche pour le descripteur de fichier périmé. |
EUCLEAN | 117 | Il s'affiche si la structure doit être nettoyée. |
UNIFORME | 118 | Il s'affiche pour un fichier de type non nommé XENIX. |
ENVAIL | 119 | Il s'affiche si aucun sémaphore XENIX n'est disponible. |
EISNAM | 120 | Il s'affiche s'il existe un fichier de type nommé. |
EREMOTION | 121 | Il s'affiche en cas d'erreur d'E/S distantes. |
EDQUOT | 122 | Il s'affiche si le quota de disque est dépassé. |
ÉNOMÉDIUM | 123 | Il s'affiche si aucun support n'est trouvé. |
TYPE MOYEN | 124 | Il s'affiche en cas de type de support incorrect. |
ÉCANNÉ | 125 | Il s'affiche si l'opération est annulée. |
ENOKEY | 126 | Il s'affiche si la clé requise n'est pas disponible. |
EKEYEXPIRÉ | 127 | Il s'affiche si la clé a expiré. |
EKEYREVOKÉ | 128 | Il s'affiche si la clé a été révoquée. |
EKEYREJETÉ | 129 | Il s'affiche si la clé a été rejetée par le service. |
PROPRIÉTAIRE MORT | 130 | Il s'affiche si le propriétaire est décédé. |
ÉNOTRÉCUPÉRABLE | 131 | Il s'affiche en cas d'état non récupérable. |
ERFTUER | 132 | Il s'affiche si l'opération n'est pas possible en raison d'un RF-kill. |
EHWPOISON | 133 | Il s'affiche si la page mémoire présente une erreur matérielle. |