errno   Début   Suivant   Sommaire   Préc.page.lue   Accueil
Section: Manuel du programmeur Linux (3)
Updated: 9 février 2006
Sommaire  



NOM   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
errno - Code de la dernière erreur  



SYNOPSIS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
#include <errno.h>  



DESCRIPTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
Le fichier d'entê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 définir 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   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
Une erreur fréquente est de faire

if (unappel() == -1) {
    printf("unappel() a échoué\n");
    if (errno == ...) { ... }
}

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(3)). 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  




VOIR AUSSI   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
err(3), error(3), perror(3), strerror(3)  



TRADUCTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

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 22 avril 2008.

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.


 



Sommaire   Début   Suivant   Sommaire   Préc.page.lue   Accueil
NOM
SYNOPSIS
DESCRIPTION
NOTES
VOIR AUSSI
TRADUCTION

Table des mots clés   Début   Suivant   Sommaire   Préc.page.lue   Accueil
E2BIGDESCRIPTION
EACCESDESCRIPTION
EADDRINUSEDESCRIPTION
EADDRNOTAVAILDESCRIPTION
EAFNOSUPPORTDESCRIPTION
EAGAINDESCRIPTION
EALREADYDESCRIPTION
EBADEDESCRIPTION
EBADFDESCRIPTION
EBADFDDESCRIPTION
EBADMSGDESCRIPTION
EBADRDESCRIPTION
EBADRQCDESCRIPTION
EBADSLTDESCRIPTION
EBUSYDESCRIPTION
ECANCELEDDESCRIPTION
ECHILDDESCRIPTION
ECHRNGDESCRIPTION
ECOMMDESCRIPTION
ECONNABORTEDDESCRIPTION
ECONNREFUSEDDESCRIPTION
ECONNRESETDESCRIPTION
EDEADLKDESCRIPTION
EDEADLOCKDESCRIPTION
EDESTADDRREQDESCRIPTION
EDOMDESCRIPTION
EDQUOTDESCRIPTION
EEXISTDESCRIPTION
EFAULTDESCRIPTION
EFBIGDESCRIPTION
EHOSTDOWNDESCRIPTION
EHOSTUNREACHDESCRIPTION
EIDRMDESCRIPTION
EILSEQDESCRIPTION
EINPROGRESSDESCRIPTION
EINTRDESCRIPTION
EINVALDESCRIPTION
EIODESCRIPTION
EISCONNDESCRIPTION
EISDIRDESCRIPTION
EISNAMDESCRIPTION
EKEYEXPIREDDESCRIPTION
EKEYREJECTEDDESCRIPTION
EKEYREVOKEDDESCRIPTION
EL2HLTDESCRIPTION
EL2NSYNCDESCRIPTION
EL3HLTDESCRIPTION
EL3RSTDESCRIPTION
ELIBACCDESCRIPTION
ELIBBADDESCRIPTION
ELIBEXECDESCRIPTION
ELIBMAXDESCRIPTION
ELIBSCNDESCRIPTION
ELOOPDESCRIPTION
EMEDIUMTYPEDESCRIPTION
EMFILEDESCRIPTION
EMLINKDESCRIPTION
EMSGSIZEDESCRIPTION
EMULTIHOPDESCRIPTION
ENAMETOOLONGDESCRIPTION
ENETDOWNDESCRIPTION
ENETRESETDESCRIPTION
ENETUNREACHDESCRIPTION
ENFILEDESCRIPTION
ENOBUFSDESCRIPTION
ENODATADESCRIPTION
ENODEVDESCRIPTION
ENOENTDESCRIPTION
ENOEXECDESCRIPTION
ENOKEYDESCRIPTION
ENOLCKDESCRIPTION
ENOLINKDESCRIPTION
ENOMEDIUMDESCRIPTION
ENOMEMDESCRIPTION
ENOMSGDESCRIPTION
ENONETDESCRIPTION
ENOPKGDESCRIPTION
ENOSPCDESCRIPTION
ENOSRDESCRIPTION
ENOSTRDESCRIPTION
ENOSYSDESCRIPTION
ENOTBLKDESCRIPTION
ENOTCONNDESCRIPTION
ENOTDIRDESCRIPTION
ENOTEMPTYDESCRIPTION
ENOTPROTOOPTDESCRIPTION
ENOTSOCKDESCRIPTION
ENOTSUPDESCRIPTION
ENOTTYDESCRIPTION
ENOTUNIQDESCRIPTION
ENXIODESCRIPTION
EOPNOTSUPPDESCRIPTION
EOVERFLOWDESCRIPTION
EPERMDESCRIPTION
EPFNOSUPPORTDESCRIPTION
EPIPEDESCRIPTION
EPROTODESCRIPTION
EPROTONOSUPPORTDESCRIPTION
EPROTOTYPEDESCRIPTION
ERANGEDESCRIPTION
EREMCHGDESCRIPTION
EREMOTEDESCRIPTION
EREMOTEIODESCRIPTION
ERESTARTDESCRIPTION
EROFSDESCRIPTION
ESHUTDOWNDESCRIPTION
ESOCKTNOSUPPORTDESCRIPTION
ESPIPEDESCRIPTION
ESRCHDESCRIPTION
ESTALEDESCRIPTION
ESTRPIPEDESCRIPTION
ETIMEDESCRIPTION
ETIMEDOUTDESCRIPTION
ETXTBSYDESCRIPTION
EUCLEANDESCRIPTION
EUNATCHDESCRIPTION
EUSERSDESCRIPTION
EWOULDBLOCKDESCRIPTION
EXDEVDESCRIPTION
EXFULLDESCRIPTION



Ce document a été créé par man2html suivi de man2html.pl, le 17/10/2008 17:52:09, en utilisant les pages de 'man'.
 

Valid HTML 4.01 Transitional