Provided by:
manpages-fr_1.67.0-1_all 
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.