Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

NOM

       errno - Code de la derniere erreur

SYNOPSIS

       #include <errno.h>

DESCRIPTION

       Le  fichier  d'en-tete <errno.h> definit la variable entiere errno, qui
       est  renseignee  par  les  appels  systeme  et  quelques  fonctions  de
       bibliotheque  pour  decrire  les  conditions d'erreurs. Sa valeur n'est
       significative que lorsque la valeur de retour l'appel  systeme  indique
       une  erreur (c'est-a-dire -1 pour la plupart des appels systeme ; -1 ou
       NULL pour la  plupart  des  fonctions  de  bibliotheque) ;  en  cas  de
       reussite une fonction de bibliotheque peut modifier errno.

       Les  numeros  d'erreur  correctes son tous non nuls ; errno n'est mis a
       zero par aucun appel systeme ou fonction de bibliotheque.

       Pour certains appels systeme et fonctions de bibliotheque (par  exemple
       getpriority(2)),  -1  est  une  valeur  de  retour  correcte  en cas de
       reussite. Dans de tels cas, une valeur de retour  en  cas  de  reussite
       peut  etre  distinguee  d'un cas d'erreur est positionnant errno a zero
       avant l'appel, puis, quand l'appel fourni une valeur qui indique qu'une
       erreur a pu se produire, en verifiant si errno a une valeur non nulle.

       errno  est  definie  par  le  standard  ISO  C  comme  une << lvalue >>
       modifiable  de  type  int,   et   n'a   pas   besoin   d'etre   definie
       explicitement ;  errno  peut  etre  une  macro.  errno  est locale a un
       thread ; lui affecter une valeur dans  un  thread  ne  modifie  pas  sa
       valeur dans les autres threads.

       Toutes  les  erreurs  detaillees dans POSIX.1 doivent avoir des valeurs
       differentes a l'exception de EAGAIN et EWOULDBLOCK qui peuvent avoir la
       meme valeur.

       Ci-dessous,  un  liste  des noms d'erreurs symboliques qui sont definis
       sous Linux. Certains sont  marques  avec  POSIX.1,  cela  signifie  que
       POSIX.1-2001 les definit, ceux marques avec C99, sont definis par C99.

       E2BIG           Liste d'arguments trop longue (POSIX.1)

       EACCES          Permission refusee (POSIX.1)

       EADDRINUSE      Adresse deja en cours d'utilisation (POSIX.1)

       EADDRNOTAVAIL   Adresse non disponible (POSIX.1)

       EAFNOSUPPORT    Famille d'adresses non supportee (POSIX.1)

       EAGAIN          Ressource  temporairement  indisponible  (peut  etre la
                       meme valeur que EWOULDBLOCK) (POSIX.1)

       EALREADY        Connexion deja en cours (POSIX.1)

       EBADE           Echange invalide

       EBADF           Mauvais descripteur de fichier (POSIX.1)

       EBADFD          Descripteur de fichier dans un mauvais etat

       EBADMSG         Mauvais message (POSIX.1)

       EBADR           Descripteur de requete non valable

       EBADRQC         Code de requete non valable

       EBADSLT         Emplacement (<< Slot >>) non valable

       EBUSY           Peripherique ou ressource indisponible (POSIX.1)

       ECANCELED       Operation annulee (POSIX.1)

       ECHILD          Pas de processus fils (POSIX.1)

       ECHRNG          Numero de voie hors du domaine de definition

       ECOMM           Echec de la communication lors de l'envoi

       ECONNABORTED    Connexion abandonnee (POSIX.1)

       ECONNREFUSED    Connexion refusee (POSIX.1)

       ECONNRESET      Connexion reinitialisee (POSIX.1)

       EDEADLK         Blocage d'une ressource evite (POSIX.1)

       EDEADLOCK       Synonyme de EDEADLK

       EDESTADDRREQ    Adresse de destination necessaire (POSIX.1)

       EDOM            Argument mathematique hors du domaine de definition  de
                       la fonction (POSIX.1, C99)

       EDQUOT          Quota du disque depasse (POSIX.1)

       EEXIST          Fichier existant (POSIX.1)

       EFAULT          Mauvaise adresse (POSIX.1)

       EFBIG           Fichier trop grand (POSIX.1)

       EHOSTDOWN       Hote eteint

       EHOSTUNREACH    Hote non accessible (POSIX.1)

       EIDRM           Identificateur supprime (POSIX.1)

       EILSEQ          Sequence d'octets illegale (POSIX.1, C99)

       EINPROGRESS     Operation en cours (POSIX.1)

       EINTR           Appel    systeme   interrompu   (POSIX.1) ;   consultez
                       signal(7).

       EINVAL          Argument invalide (POSIX.1)

       EIO             Erreur d'entree/sortie (POSIX.1)

       EISCONN         La socket est connectee (POSIX.1)

       EISDIR          Est un repertoire (POSIX.1)

       EISNAM          Est un fichier nomme

       EKEYEXPIRED     Cle expiree

       EKEYREJECTED    La cle a ete rejete par le service

       EKEYREVOKED     La cle a ete revoquee

       EL2HLT          Niveau 2 arrete

       EL2NSYNC        Niveau 2 non synchronise

       EL3HLT          Niveau 3 arrete

       EL3RST          Niveau 3 arrete

       ELIBACC         Impossible  d'acceder  a   la   bibliotheque   partagee
                       necessaire

       ELIBBAD         Acces a une bibliotheque partagee corrompue

       ELIBMAX         Tentative   de   liaison  avec  trop  de  bibliotheques
                       partagees

       ELIBSCN         Section lib dans a.out corrompue

       ELIBEXEC        Impossible  d'executer  directement  une   bibliotheque
                       partagee

       ELOOP           Trop   de   niveau   de  liens  symboliques  rencontres
                       (POSIX.1)

       EMEDIUMTYPE     Mauvais type de medium

       EMFILE          Trop de fichiers ouverts (POSIX.1)

       EMLINK          Trop de liens symboliques (POSIX.1)

       EMSGSIZE        Message trop long (POSIX.1)

       EMULTIHOP       Tentative de saut multiple << Multihop >> (POSIX.1)

       ENAMETOOLONG    Nom de fichier trop long (POSIX.1)

       ENETDOWN        Le reseau est desactive (POSIX.1)

       ENETRESET       Connexion annulee par le reseau (POSIX.1)

       ENETUNREACH     Reseau inaccessible (POSIX.1)

       ENFILE          Trop de fichiers ouverts sur le systeme (POSIX.1)

       ENOBUFS         Plus de tampons disponibles (POSIX.1 (option  des  FLUX
                       XSI))

       ENODATA         Pas  de  message  disponible  en  tete  de  la queue de
                       lecture du FLUX (POSIX.1)

       ENODEV          Peripherique inexistant (POSIX.1)

       ENOENT          Fichier ou repertoire inexistant (POSIX.1)

       ENOEXEC         Erreur de format d'execution (POSIX.1)

       ENOKEY          Cle necessaire non disponible

       ENOLCK          Pas de verrou disponible (POSIX.1)

       ENOLINK         Un lien a ete disjoint (POSIX.1)

       ENOMEDIUM       Aucun media trouve

       ENOMEM          Pas assez de memoire (POSIX.1)

       ENOMSG          Pas de message du type attendu (POSIX.1)

       ENONET          La machine n'est pas sur le reseau

       ENOPKG          Paquet non installe

       ENOPROTOOPT     Protocole indisponible (POSIX.1)

       ENOSPC          Plus de place sur le peripherique (POSIX.1)

       ENOSR           Pas de ressources FLUX (POSIX.1 (option des FLUX XSI))

       ENOSTR          Pas un FLUX (POSIX.1 (option des FLUX XSI))

       ENOSYS          Fonction non implementee (POSIX.1)

       ENOTBLK         Peripherique de bloc necessaire

       ENOTCONN        La socket n'est pas connectee (POSIX.1)

       ENOTDIR         Pas un repertoire (POSIX.1)

       ENOTEMPTY       Repertoire non vide (POSIX.1)

       ENOTSOCK        Pas une socket (POSIX.1)

       ENOTSUP         Operation non supportee (POSIX.1)

       ENOTTY          Operation   de   controle   d'entree/sortie    invalide
                       (POSIX.1)

       ENOTUNIQ        Le nom sur le reseau n'est pas unique

       ENXIO           Peripherique ou adresse inexistant (POSIX.1)

       EOPNOTSUPP      Operation non supportee par la socket (POSIX.1)

                       (ENOTSUP  et  EOPNOTSUPP ont la meme valeur sous Linux,
                       mais selon POSIX.1, ces codes  d'erreurs  doivent  etre
                       differents).

       EOVERFLOW       Valeur  trop  grande  pour  etre  sauve dans ce type de
                       donnee (POSIX.1)

       EPERM           Operation interdite (POSIX.1)

       EPFNOSUPPORT    Famille de protocole non supportee

       EPIPE           Tube casse (POSIX.1)

       EPROTO          Erreur de protocole (POSIX.1)

       EPROTONOSUPPORT Protocole non supporte (POSIX.1)

       EPROTOTYPE      Mauvais type de protocole pour la socket (POSIX.1)

       ERANGE          Resultat trop grand (POSIX.1, C99)

       EREMCHG         Adresse distante changee

       EREMOTE         L'objet est distant

       EREMOTEIO       Erreur d'entrees-sorties distante

       ERESTART        L'appel systeme interrompu devrait etre relance

       EROFS           Systeme de fichiers en lecture seule (POSIX.1)

       ESHUTDOWN       Impossible d'effectuer l'envoi apres l'arret  du  point
                       final du transport

       ESPIPE          Recherche invalide (POSIX.1)

       ESOCKTNOSUPPORT Type de socket non supporte

       ESRCH           Processus inexistant (POSIX.1)

       ESTALE          Vieux descripteur de fichier (POSIX.1)

                       Cette  erreur  peut  se  produire  avec  le  systeme de
                       fichiers NFS et d'autres

       ESTRPIPE        Tube de flux casse

       ETIME           Compteur de temps  ecoule  (POSIX.1  (option  des  FLUX
                       XSI))

                       (POSIX.1 dit << delai du FLUX ioctl(2) depasse)

       ETIMEDOUT       Delai maximal de connexion ecoule (POSIX.1)

       ETXTBSY         Fichier texte occupe (POSIX.1)

       EUCLEAN         La structure necessite un nettoyage

       EUNATCH         Protocole indisponible

       EUSERS          Trop d'utilisateurs

       EWOULDBLOCK     L'operation  serait bloquante (peut etre la meme valeur
                       que EAGAIN) (POSIX.1)

       EXDEV           Lien inapproprie (POSIX.1)

       EXFULL          Echange plein

NOTES

       Une erreur frequente est de faire

           if (somecall() == -1) {
               printf("somecall() failed\n");
               if (errno == ...) { ... }
           }

       ou errno n'a plus besoin de la valeur  qu'elle  avait  juste  apres  le
       retour   de  somecall()  (par  exemple,  elle  peut  etre  changee  par
       printf(3)). Si la valeur de errno doit  etre  preservee  a  travers  un
       appel bibliotheque, elle doit etre sauvegardee :

           if (somecall() == -1) {
               int errsv = errno;
               printf("somecall() failed\n");
               if (errsv == ...) { ... }
           }

       C'est  commun  en  C  traditionnel  de declarer errno manuellement (par
       exemple, extern int errno) au lieu d'inclure <errno.h>. Ne  faites  pas
       ceci.   Cela  ne  fonctionnera  pas  avec  les  versions  modernes  des
       bibliotheque C. Toutefois, sur de (tres) vieux systemes Unix,  il  peut
       ne  pas  y  avoir  de  <errno.h>  et  dans  ce  cas  la declaration est
       necessaire.

VOIR AUSSI

       err(3), error(3), perror(3), strerror(3)

COLOPHON

       Cette page fait partie de  la  publication  3.27  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      etre       trouvees       a       l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis  2010,  cette  traduction est maintenue a l'aide de l'outil po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   de   traduction
       francophone        au        sein        du       projet       perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Christophe Blaess  <URL:http://www.blaess.fr/christophe/>  (1996-2003),
       Alain  Portal  <URL:http://manpagesfr.free.fr/> (2003-2006).  Florentin
       Duneau et l'equipe francophone de traduction de Debian (2006-2009).

       Veuillez  signaler  toute  erreur   de   traduction   en   ecrivant   a
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous pouvez toujours avoir acces a la version anglaise de  ce  document
       en utilisant la commande << man -L C <section> <page_de_man> >>.

                                9 juillet 2008                        ERRNO(3)