POLL(2)            Manuel du programmeur Linux            POLL(2)


NOM
       poll  - Attendre un évènement concernant un descripteur de
       fichier.

SYNOPSIS
       #include <linux/asm/poll.h>

       int poll(struct  pollfd  *ufds,  unsigned  int  nfds,  int
       délai);

DESCRIPTION
       poll  est  une  variation  sur  le thème de select(2).  Il
       utilise une table de nfds structures du type
               struct pollfd {
                       int fd;         /* Descripteur de fichier */
                       short events;   /* Evènements attendus   */
                       short revents;  /* Evènements détectés    */
               };
       et un délai en millisecondes. Une valeur négative  indique
       un  délai  infini.  Le champ fd contient un descripteur de
       fichier  ouvert.   Le  champ  events  est   un   paramètre
       d'entrée,  un  masque de bits indiquant les évènements qui
       intéressent  l'application.   Le  champ  revents  est   un
       paramètre   de  sortie,  rempli  par  le  noyau  avec  les
       évènements qui se sont  effectivement  produits,  du  type
       demandé, ou de l'une des valeurs POLLERR, POLLHUP ou POLL­
       NVAL.  (Ces trois bits n'ont pas de signification dans  la
       demande  events, et se trouvent positionnés dans la valeur
       de retour revents si l'une des conditions  correspondantes
       se produit).

       Si  aucun  evènement  attendu  (ni aucune erreur) ne s'est
       déjà produit, le noyau attend leur occurence pendant time­
       out  millisecondes.   Les  bits possibles pour ces masques
       sont définis dans <sys/poll.h>:
           #define POLLIN    0x0001  /* Données disponibles en lecture  */
           #define POLLPRI   0x0002  /* Données urgentes disponibles    */
           #define POLLOUT   0x0004  /* Une écriture bloquerait         */
           #define POLLERR   0x0008  /* Condition d'erreur              */
           #define POLLHUP   0x0010  /* Déconnexion                     */
           #define POLLNVAL  0x0020  /* Requête invalide, fd pas ouvert */
       Dans <asm/poll.h> se  trouvent  également  les  constantes
       POLLRDNORM,   POLLRDBAND,   POLLWRNORM,   POLLWRBAND,   et
       POLLMSG.

VALEUR RENVOYÉE
       S'il réussit, poll renvoie une valeur  positive  représen­
       tant  le  nombre de structures ayant un champ revents non-
       nul. C'est à dire le nombre de structures pour lesquels un
       évènement  attendu,  ou  une  erreur,  s'est produit.  Une
       valeur de retour nulle indique  un  dépassement  du  délai
       d'attente.   S'il  échoue,  poll renvoie -1, et errno con­
       tient le code d'erreur.




Linux 2.1.23             10 Décembre 1997                       1





POLL(2)            Manuel du programmeur Linux            POLL(2)


ERREURS
       ENOMEM Pas assez de mémoire  pour  allouer  la  table  des
              descripteurs de fichiers.

       EFAULT La   table  fournie  en  argument  n'est  pas  dans
              l'espace d'adressage du processus appelant.

       EINTR  Un  signal  a  été  reçu  avant   qu'un   évènement
              intéressant ne se produise.

CONFORMITÉ
       XPG4-UNIX

NOTES
       L'appel  système  poll()  a  été introduit dans la version
       2.1.23 du noyau Linux. La fonction de bibliothèque  poll()
       est  apparue dans la version 5.4.28 de la libc, et fournit
       une émulation basée sur l'appel  système  select()  si  le
       noyau n'a pas d'appel système poll().

VOIR AUSSI
       select(2)


TRADUCTION
       Christophe Blaess, 1997.































Linux 2.1.23             10 Décembre 1997                       2