Linux

CentOS 4.8

errno(3)


ERRNO

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érents.

POSIX.1 (édition 1996) définit les noms symboliques ci-dessous pour les codes d’erreurs. Parmi eux, EDOM et ERANGE sont également dans le standard C ISO. 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

EAGAIN

Ressource indisponible temporairement

EBADF

Mauvais descripteur de fichier.

EBADMSG

Mauvais message

EBUSY

Ressource en cours d’utilisation.

ECANCELED

Opération annulée.

ECHILD

Pas de processus fils.

EDEADLK

Blocage d’une ressource évité.

EDOM

Erreur de domaine.

EEXIST

Fichier existant.

EFAULT

Mauvais adresse.

EFBIG

Fichier trop grand.

EINPROGRESS

Opération en cours.

EINTR

Appel système interrompu.

EINVAL

Argument invalide.

EIO

Erreur d’entrée/sortie.

EISDIR

Est un répertoire.

EMFILE

Trop de fichiers ouverts.

EMLINK

Trop de liens symboliques.

EMSGSIZE

Longueur du buffer de message inappropriée.

ENAMETOOLONG

Nom de fichier trop long.

ENFILE

Trop de fichiers ouverts sur le système.

ENODEV

Périphérique inexistant.

ENOENT

Fichier ou répertoire inexistant.

ENOEXEC

Exécution impossible.

ENOLCK

Pas de verrou disponible.

ENOMEM

Pas assez de mémoire.

ENOSPC

Plus de place sur le périphérique.

ENOSYS

Fonction non implémentée.

ENOTDIR

Pas un répertoire.

ENOTEMPTY

Répertoire non vide.

ENOTSUP

Opération non supportée.

ENOTTY

Opération de contrôle d’Entrée/Sortie invalide.

ENXIO

Périphérique ou adresse inexistant.

EPERM

Opération interdite.

EPIPE

Tube sans lecteur.

ERANGE

Résultat trop grand.

EROFS

Système de fichiers en lecture-seule.

ESPIPE

Recherche invalide.

ESRCH

Processus inexistant.

ETIMEDOUT

Délai maximal écoulé.

EXDEV

Lien inapproprié.

VOIR AUSSI

perror(3)

TRADUCTION

Christophe Blaess, 1997.


errno(3)