Linux |
CentOS 5.3 |
|
errno(3) |
errno − Code de la dernière erreur. |
#include <errno.h> |
Le fichier d’en-tête <errno.h> définit la variable entière errno qui est renseignée par les appels systèmes (et quelques fonctions de bibliothèque) pour expliquer les conditions d’erreurs. Sa valeur n’est significative que lorsque l’appel système a échoué (généralement en renvoyant −1), car même en cas de réussite une fonction de bibliothèque peut modifier errno. Parfois, si −1 est une valeur de retour légale, il faut positionner errno à 0 avant d’effectuer l’appel système, de manière à détecter une erreur éventuelle. C’est le cas par exemple de getpriority(2). errno est définie par le standard ISO C comme une lvalue modifiable, de type int, et n’a pas besoin d’être définie explicitement. errno peut être une macro. errno est locale à un thread ; lui affecter une valeur dans un thread ne modifie pas sa valeur dans les autres threads. Les codes d’erreurs valides sont tous non-nuls. errno n’est jamais mis à zéro par une fonction de la bibliothèque. Toutes les erreurs détaillées dans POSIX.1 doivent avoir des valeurs différentes, à l’exception de EAGAIN et EWOULDBLOCK, qui peuvent être les mêmes Ci-desous une liste des noms symboliques d’erreur qui sont définis sous Linux. Certains sont marqués POSIX.1 indiquant que le nom est défini par POSIX.1-2001, ou C99, indiquant que le nom est défini par C99. |
E2BIG |
Liste d’arguments trop longue (POSIX.1). |
|||
EACCES |
Permission refusée (POSIX.1). |
EADDRINUSE |
Adresse déjà en cours d’utilisation (POSIX.1). |
EADDRNOTAVAIL |
Adresse non disponible (POSIX.1). |
EAFNOSUPPORT |
Famille d’adresses non supportée (POSIX.1). |
EAGAIN |
Ressource temporairement indisponible (peut être la même valeur que EWOULDBLOCK) (POSIX.1). |
EALREADY |
Connexion déjà en cours (POSIX.1). |
EBADE |
Ãchange invalide. |
|||
EBADF |
Mauvais descripteur de fichier (POSIX.1). |
|||
EBADFD |
Descripteur de fichier en mauvais état. |
EBADMSG |
Mauvais message (POSIX.1). |
EBADR |
Descripteur de requête invalide. |
EBADRQC |
Code de requête invalide. |
EBADSLT |
Emplacement (Ndt : slot) invalide. |
EBUSY |
Ressource ou périphérique occupé (POSIX.1). |
ECANCELED |
Opération annulée (POSIX.1). |
ECHILD |
Pas de processus fils (POSIX.1). |
|||
ECHRNG |
Numéro de canal hors d’intervalle. |
|||
ECOMM |
Erreur de communication à l’envoi. |
ECONNABORTED |
Connexion abandonnée (POSIX.1). |
ECONNREFUSED |
Connexion refusée (POSIX.1). |
ECONNRESET |
Connexion réinitialisée (POSIX.1). |
EDEADLK |
Blocage d’une ressource évité (POSIX.1). |
EDEADLOCK |
Synonyme de EDEADLK |
EDESTADDRREQ |
Adresse de destination nécessaire (POSIX.1). |
EDOM |
Argument mathématique hors du domaine de fonction (POSIX.1, C99). |
||
EDQUOT |
+. Quota disque dépassé (POSIX.1). |
||
EEXIST |
Fichier existant (POSIX.1). |
||
EFAULT |
Mauvaise adresse (POSIX.1). |
||
EFBIG |
Fichier trop grand (POSIX.1). |
EHOSTDOWN |
Hôte éteint. |
EHOSTUNREACH |
Hôte non accessible (POSIX.1). |
EIDRM |
Identificateur de ressource supprimé (POSIX.1). |
||
EILSEQ |
Séquence d’octets illégale (POSIX.1, C99). |
EINPROGRESS |
Opération en cours (POSIX.1). |
EINTR |
Appel système interrompu (POSIX.1). |
|||
EINVAL |
Argument invalide (POSIX.1). |
|||
EIO |
Erreur d’entrée-sortie (POSIX.1). |
EISCONN |
La socket est connectée (POSIX.1). |
EISDIR |
Est un répertoire (POSIX.1). |
|||
EISNAM |
Est un fichier de type nommé. |
EKEYEXPIRED |
La clé a expiré. |
EKEYREJECTED |
La clé a été rejetée par le service. |
EKEYREVOKED |
La clé a été révoquée. |
EL2HLT |
Niveau 2 arrêté. |
EL2NSYNC |
Niveau 2 non synchronisé. |
EL3HLT |
Niveau 3 arrêté. |
|||
EL3RST |
Niveau 3 arrêté. |
ELIBACC |
Impossible d’accéder à une bibliothèque partagée requise. |
ELIBBAD |
Accession à une bibliothèque partagée corrompue. |
ELIBMAX |
Tentative de lier dans trop de bibliothèques partagées. |
ELIBSCN |
Section lib dans a.out corrompue. |
ELIBEXEC |
Impossible d’exécuter directement une bibliothèque partagée. |
ELOOP |
Trop de liens symboliques rencontrés (POSIX.1). |
EMEDIUMTYPE |
Mauvais type de medium. |
EMFILE |
Trop de fichiers ouverts (POSIX.1). |
|||
EMLINK |
Trop de liens symboliques (POSIX.1). |
EMSGSIZE |
Longueur du tampon de message inappropriée (POSIX.1). |
EMULTIHOP |
Multihop tenté (POSIX.1) |
ENAMETOOLONG |
Nom de fichier trop long (POSIX.1). |
ENETDOWN |
Le réseau est désactivé (POSIX.1). |
ENETRESET |
Connexion annulée par le réseau (POSIX.1). |
ENETUNREACH |
Réseau inaccessible (POSIX.1). |
ENFILE |
Trop de fichiers ouverts sur le système (POSIX.1). |
ENOBUFS |
Plus de tampons disponibles (POSIX.1 (XSI STREAMS option)). |
ENODATA |
Pas de message disponible dans la file STREAM (POSIX.1). |
ENODEV |
Périphérique inexistant (POSIX.1). |
|||
ENOENT |
Fichier ou répertoire inexistant (POSIX.1). |
ENOEXEC |
Exécution impossible (POSIX.1). |
ENOKEY |
La clé requise n’est pas disponible. |
|||
ENOLCK |
Pas de verrou disponible (POSIX.1). |
ENOLINK |
Le lien a été coupé (POSIX.1). |
ENOMEDIUM |
Aucun medium trouvé. |
ENOMEM |
Pas assez de mémoire (POSIX.1). |
|||
ENOMSG |
Pas de message du type attendu (POSIX.1). |
|||
ENONET |
La machine n’est pas sur le réseau. |
|||
ENOPKG |
Le paquet n’est pas installé. |
ENOTPROTOOPT |
Protocole indisponible (POSIX.1). |
ENOSPC |
Plus de place sur le périphérique (POSIX.1). |
||
ENOSR |
Pas de ressource STREAM (POSIX.1 (option STREAMS XSI)). |
||
ENOSTR |
Pas un STREAM (POSIX.1 (option STREAMS XSI)). |
||
ENOSYS |
Fonction non implémentée (POSIX.1). |
ENOTBLK |
Périphérique de bloc requis. |
ENOTCONN |
La socket n’est pas connectée (POSIX.1). |
ENOTDIR |
Pas un répertoire (POSIX.1). |
ENOTEMPTY |
Répertoire non vide (POSIX.1). |
ENOTSOCK |
Pas une socket (POSIX.1). |
ENOTSUP |
Opération non supportée (POSIX.1). |
ENOTTY |
Opération de contrôle d’entrée-sortie invalide (POSIX.1). |
ENOTUNIQ |
Le nom sur le réseau n’est pas unique. |
ENXIO |
Périphérique ou adresse inexistant (POSIX.1). |
EOPNOTSUPP |
Opération non supportée par la socket (POSIX.1). (ENOTSUP et EOPNOTSUPP ont la même valeur sous Linux, mais comformément à POSIX.1 ces valeurs d’erreurs doivent être distinctes.) |
EOVERFLOW |
Valeur trop grande pour le type de donnée (POSIX.1). |
EPERM |
Opération interdite (POSIX.1). |
EPFNOSUPPORT |
Famille de protocole non supportée. |
EPIPE |
Tube sans lecteur (POSIX.1). |
|||
EPROTO |
Erreur de protocole (POSIX.1). |
EPROTONOSUPPORT |
Protocole non supporté (POSIX.1). |
EPROTOTYPE |
Mauvais type de protocole pour la socket (POSIX.1). |
ERANGE |
Résultat trop grand (POSIX.1, C99). |
EREMCHG |
L’adresse distante a changé. |
EREMOTE |
L’objet est distant. |
EREMOTEIO |
Erreur d’entrées-sorties distante. |
ERESTART |
L’appel système interrompu devrait être relancé. |
EROFS |
Système de fichiers en lecture-seule (POSIX.1). |
ESHUTDOWN |
Impossible d’envoyer après la désactivation du point limite du transport. |
ESPIPE |
Recherche invalide (POSIX.1). |
ESOCKTNOSUPPORT |
Type de socket non supporté. |
ESRCH |
Processus inexistant. |
|||
ESTALE |
Descripteur de fichier éventé (POSIX.1)) |
Cette erreur peut survenir pour NFS et d’autres systèmes de fichiers; |
ESTRPIPE |
Erreur de tube flux. |
ETIME |
Temporisation expirée (POSIX.1 (XSI STREAMS option)) |
(POSIX.1 dit « Dépassement du délai ioctl() STREAM ». |
ETIMEDOUT |
Délai maximal de connexion écoulé (POSIX.1). |
ETXTBSY |
Fichier texte occupé. |
EUCLEAN |
La structure a besion d’être nettoyée. |
EUNATCH |
Le pilote de protocole n’est pas attaché. |
EUSERS |
Trop d’utilisateurs. |
EWOULDBLOCK |
L’opération serait bloquante (même valeur que EAGAIN) (POSIX.1) |
EXDEV |
Lien inapproprié (POSIX.1). |
|||
EXFULL |
Ãchange complet. |
Une erreur fréquente est de faire |
if (unappel() == −1) { printf("unappel() a échoué\n"); if (errno == ...) { ... } } |
où errno n’a plus la valeur qu’elle avait juste après le retour de unappel() (c’est-à -dire qu’elle peut avoir été modifiée par printf()). Si la valeur de errno doit être préservée à travers un appel bibliothèque, elle doit être sauvegardée : |
if (unappel() == -1) { int errsv = errno; printf("unappel() a échoué\n"); if (errsv == ...) { ... } } |
Il est classique, dans le C traditionnel, de déclarer errno manuellement (c’est-à -dire, extern int errno) au lieu d’inclure <errno.h>. Ne faites pas ceci. Cela ne fonctionnera pas avec les versions récentes de la bibliothèque C. Toutefois, sur de (très) vieux systèmes UNIX, <errno.h> peut ne pas exister auquel cas la déclaration est nécessaire |
err(3), error(3), perror(3), strerror(3) |
Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 23 octobre 1996 et révisée le 14 août 2006. L’équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 3 errno ». N’hésitez pas à signaler à l’auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel. |
errno(3) |