Provided by: manpages-fr-dev_3.65d1p1-1_all 

NOM
errno - Code de la dernière erreur
SYNOPSIS
#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 décrire les conditions d'erreurs. Sa valeur n'est
significative que lorsque la valeur de retour l'appel système indique une erreur (c'est-à-dire -1 pour la
plupart des appels système ; -1 ou NULL pour la plupart des fonctions de bibliothèque) ; en cas de
réussite une fonction de bibliothèque peut modifier errno.
Les numéros d'erreur corrects sont tous non nuls ; errno n'est mis à zéro par aucun appel système ou
fonction de bibliothèque.
Pour certains appels système et fonctions de bibliothèque (par exemple getpriority(2)), -1 est une valeur
de retour correcte en cas de réussite. Dans de tels cas, une valeur de retour en cas de réussite peut
être distinguée d'un cas d'erreur en positionnant errno à zéro avant l'appel, puis, quand l'appel fourni
une valeur qui indique qu'une erreur a pu se produire, en vérifiant si errno a une valeur non nulle.
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.
Toutes les erreurs détaillées dans POSIX.1 doivent avoir des valeurs différentes à l'exception de EAGAIN
et EWOULDBLOCK qui peuvent avoir la même valeur.
Ci-dessous, une liste des noms d'erreurs symboliques qui sont définis sous Linux. Certains sont marqués
avec POSIX.1, cela signifie que POSIX.1-2001 les définit, ceux marqués avec C99, sont définis 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 dans un mauvais état
EBADMSG Mauvais message (POSIX.1)
EBADR Descripteur de requête non valable
EBADRQC Code de requête non valable
EBADSLT Emplacement (« Slot ») non valable
EBUSY Périphérique ou ressource indisponible (POSIX.1)
ECANCELED Opération annulée (POSIX.1)
ECHILD Pas de processus fils (POSIX.1)
ECHRNG Numéro de voie hors du domaine de définition
ECOMM Échec de la communication lors de 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 définition de la fonction (POSIX.1, C99)
EDQUOT Quota du 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 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) ; consultez signal(7).
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 nommé
EKEYEXPIRED Clé expirée
EKEYREJECTED La clé a été rejeté 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 à la bibliothèque partagée nécessaire
ELIBBAD Accès à une bibliothèque partagée corrompue
ELIBMAX Tentative de liaison avec 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 niveau de liens symboliques rencontrés (POSIX.1)
EMEDIUMTYPE Mauvais type de médium
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 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 (option des FLUX XSI))
ENODATA Pas de message disponible en tête de la queue de lecture du FLUX (POSIX.1)
ENODEV Périphérique inexistant (POSIX.1)
ENOENT Fichier ou répertoire inexistant (POSIX.1)
ENOEXEC Erreur de format d'exécution (POSIX.1)
ENOKEY Clé nécessaire non disponible
ENOLCK Pas de verrou disponible (POSIX.1)
ENOLINK Un lien a été disjoint (POSIX.1)
ENOMEDIUM Aucun média 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 Paquet non installé
ENOPROTOOPT Protocole indisponible (POSIX.1)
ENOSPC Plus de place sur le périphérique (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 implémentée (POSIX.1)
ENOTBLK Périphérique de bloc nécessaire
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 selon POSIX.1, ces codes
d'erreurs doivent être différents).
EOVERFLOW Valeur trop grande pour être sauvé dans ce type de donnée (POSIX.1)
EPERM Opération interdite (POSIX.1)
EPFNOSUPPORT Famille de protocole non supportée
EPIPE Tube cassé (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 Adresse distante changée
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'effectuer l'envoi après l'arrêt du point final du transport
ESPIPE Recherche invalide (POSIX.1)
ESOCKTNOSUPPORT Type de socket non supporté
ESRCH Processus inexistant (POSIX.1)
ESTALE Vieux descripteur de fichier (POSIX.1)
Cette erreur peut se produire avec le système de fichiers NFS et d'autres
ESTRPIPE Tube de flux cassé
ETIME Compteur de temps écoulé (POSIX.1 (option des FLUX XSI))
(POSIX.1 dit « délai du FLUX ioctl(2) dépassé)
ETIMEDOUT Délai maximal de connexion écoulé (POSIX.1)
ETXTBSY Fichier texte occupé (POSIX.1)
EUCLEAN La structure nécessite un nettoyage
EUNATCH Protocole indisponible
EUSERS Trop d'utilisateurs
EWOULDBLOCK L'opération serait bloquante (peut être la même valeur que EAGAIN) (POSIX.1)
EXDEV Lien inapproprié (POSIX.1)
EXFULL Échange plein
NOTES
Une erreur fréquente est de faire
if (somecall() == -1) {
printf("somecall() failed\n");
if (errno == ...) { ... }
}
où errno n'a plus besoin de la valeur qu'elle avait juste après le retour de somecall() (par exemple,
elle peut être changé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 (somecall() == -1) {
int errsv = errno;
printf("somecall() failed\n");
if (errsv == ...) { ... }
}
C'est commun en C traditionnel de déclarer errno manuellement (par exemple, extern int errno) au lieu
d'inclure <errno.h>. Ne faites pas cela. Cela ne fonctionnera pas avec les versions modernes des
bibliothèque C. Toutefois, sur de (très) vieux systèmes UNIX, il peut ne pas y avoir de <errno.h> et dans
ce cas la déclaration est nécessaire.
VOIR AUSSI
err(3), error(3), perror(3), strerror(3)
COLOPHON
Cette page fait partie de la publication 3.65 du projet man-pages Linux. Une description du projet et des
instructions pour signaler des anomalies peuvent être trouvées à l'adresse
http://www.kernel.org/doc/man-pages/.
TRADUCTION
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par
l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.
Christophe Blaess <http://www.blaess.fr/christophe/> (1996-2003), Alain Portal
<http://manpagesfr.free.fr/> (2003-2006). Florentin Duneau et l'équipe francophone de traduction de
Debian (2006-2009).
Veuillez signaler toute erreur de traduction en écrivant à <debian-l10n-french@lists.debian.org> ou par
un rapport de bogue sur le paquet manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C
<section> <page_de_man> ».
9 juillet 2008 ERRNO(3)