Provided by: manpages-fr_1.67.0-1_all bug

NOM

       errno - Code de la dernière erreur.

SYNOPSIS

       #include <errno.h>

       extern int errno;

DESCRIPTION

       La  variable  entière  errno 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.

       POSIX.1 (édition 2001) définit les noms symboliques ci-dessous pour les
       codes  d’erreurs.  Parmi  eux,  EDOM  et  ERANGE sont également dans le
       standard C ISO. L’amendement 1 au standard C ISO définit  également  le
       code  d’erreur  EILSEQ  pour  les erreurs de codage dans les caractères
       étendus, ou multi-octets.

       E2BIG  Liste d’arguments trop longue.

       EACCES Interdiction d’accès.

       EADDRINUSE
              Adresse déjà en cours d’utilisation.

       EADDRNOTAVAIL
              Adresse non disponible.

       EAFNOSUPPORT
              Famille d’adresses non supportée.

       EAGAIN Ressource temporairement indisponible.

       EALREADY
              Connexion déjà en cours.

       EBADF  Mauvais descripteur de fichier.

       EBADMSG
              Mauvais message.

       EBUSY  Ressource occupée.

       ECANCELED
              Opération annulée.

       ECHILD Pas de processus fils.

       ECONNABORTED
              Connexion abandonnée.

       ECONNREFUSED
              Connexion refusée.

       ECONNRESET
              Connexion réinitialisée.

       EDEADLK
              Blocage d’une ressource évité.

       EDESTADDRREQ
              Adresse de destination nécessaire.

       EDOM   Erreur de domaine.

       EDQUOT Réservé

       EEXIST Fichier existant.

       EFAULT Mauvaise adresse.

       EFBIG  Fichier trop grand.

       EHOSTUNREACH
              Hôte non accessible.

       EIDRM  Identificateur de ressource supprimé.

       EILSEQ Séquence d’octets illégale.

       EINPROGRESS
              Opération en cours.

       EINTR  Appel système interrompu.

       EINVAL Argument invalide.

       EIO    Erreur d’entrée-sortie.

       EISCONN
              La socket est connectée.

       EISDIR Est un répertoire.

       ELOOP  Trop de liens symboliques rencontrés.

       EMFILE Trop de fichiers ouverts.

       EMLINK Trop de liens symboliques.

       EMSGSIZE
              Longueur du tampon de message inappropriée.

       EMULTIHOP
              Réservé.

       ENAMETOOLONG
              Nom de fichier trop long.

       ENETDOWN
              Le réseau est désactivé.

       ENETRESET
              Connexion annulée par le réseau.

       ENETUNREACH
              Réseau inaccessible.

       ENFILE Trop de fichiers ouverts sur le système.

       ENOBUFS
              Plus de tampons disponibles.

       ENODATA
              Pas de message disponible dans la file STREAM.

       ENODEV Périphérique inexistant.

       ENOENT Fichier ou répertoire inexistant.

       ENOEXEC
              Exécution impossible.

       ENOLCK Pas de verrou disponible.

       ENOLINK
              Réservé.

       ENOMEM Pas assez de mémoire.

       ENOMSG Pas de message du type attendu.

       ENOTPROTOOPT
              Protocole indisponible.

       ENOSPC Plus de place sur le périphérique.

       ENOSR  Pas de ressource STREAM.

       ENOSTR Pas un STREAM.

       ENOSYS Fonction non implémentée.

       ENOTCONN
              La socket n’est pas connectée.

       ENOTDIR
              Pas un répertoire.

       ENOTEMPTY
              Répertoire non vide.

       ENOTSOCK
              Pas une socket.

       ENOTSUP
              Opération non supportée.

       ENOTTY Opération de contrôle d’entrée-sortie invalide.

       ENXIO  Périphérique ou adresse inexistant.

       EOPNOTSUPP
              Opération non supportée par la socket.

       EOVERFLOW
              Valeur trop grande pour le type de donnée.

       EPERM  Opération interdite.

       EPIPE  Tube sans lecteur.

       EPROTO Erreur de protocole.

       EPROTONOSUPPORT
              Protocole non supporté.

       EPROTOTYPE
              Mauvais type de protocole pour la socket.

       ERANGE Résultat trop grand.

       EROFS  Système de fichiers en lecture-seule.

       ESPIPE Recherche invalide.

       ESRCH  Processus inexistant.

       ESTALE Réservé.

       ETIME  Dépassement du délai ioctl() STREAM.

       ETIMEDOUT
              Délai maximal écoulé.

       ETXTBSY
              Fichier exécutable occupé.

       EWOULDBLOCK
              L’opération serait bloquante (même valeur que EAGAIN)

       EXDEV  Lien inapproprié.

NOTE

       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().   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 == ...) { ... }
              }

VOIR AUSSI

       perror(3) strerror(3)

TRADUCTION

       Christophe Blaess, 1996-2003.