Rechercher une page de manuel
errno
Langue: fr
Version: 9 février 2006 (mandriva - 01/05/08)
Section: 3 (Bibliothèques de fonctions)
NOM
errno - Code de la dernière erreurSYNOPSIS
#include <errno.h>DESCRIPTION
Le fichier d'en-tête <errno.h> définit la variable entière errno qui est renseignée par les appels système (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 mise à 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(2) STREAM ».
- ETIMEDOUT
- Délai maximal de connexion écoulé (POSIX.1).
- ETXTBSY
- Fichier texte occupé.
- EUCLEAN
- La structure a besoin 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.
NOTES
Une erreur fréquente est de faire-
if (unappel() == -1) { printf("unappel() a échoué\n"); if (errno == ...) { ... } }
-
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
VOIR AUSSI
err(3), error(3), perror(3), strerror(3)TRADUCTION
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 28 novembre 2007.
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.
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre