ABCDEFGHIJKLMNOPQRSTUVWXYZ

poll

POLL(2)                    Linux Programmer's Manual                   POLL(2)



NAME
       poll - wait for some event on a file descriptor

SYNOPSIS
       #include <sys/poll.h>

       int poll(struct pollfd *ufds, unsigned int nfds, int timeout);

DESCRIPTION
       poll  is  a variation on the theme of select.  It specifies an array of
       nfds structures of type
               struct pollfd {
                       int fd;           /* file descriptor */
                       short events;     /* requested events */
                       short revents;    /* returned events */
               };
       and a timeout in milliseconds. A negative value means infinite timeout.
       The  field  fd  contains a file descriptor for an open file.  The field
       events is an input parameter,  a  bitmask  specifying  the  events  the
       application  is  interested in.  The field revents is an output parame-
       ter, filled by the kernel  with  the  events  that  actually  occurred,
       either of the type requested, or of one of the types POLLERR or POLLHUP
       or POLLNVAL.  (These three bits are meaningless in  the  events  field,
       and  will be set in the revents field whenever the corresponding condi-
       tion is true.)  If none of the events  requested  (and  no  error)  has
       occurred  for any of the file descriptors, the kernel waits for timeout
       milliseconds for one of these events to occur.  The following  possible
       bits in these masks are defined in <sys/poll.h>
           #define POLLIN      0x0001    /* There is data to read */
           #define POLLPRI     0x0002    /* There is urgent data to read */
           #define POLLOUT     0x0004    /* Writing now will not block */
           #define POLLERR     0x0008    /* Error condition */
           #define POLLHUP     0x0010    /* Hung up */
           #define POLLNVAL    0x0020    /* Invalid request: fd not open */
       In  <asm/poll.h>  also  the  values POLLRDNORM, POLLRDBAND, POLLWRNORM,
       POLLWRBAND and POLLMSG are defined.

RETURN VALUE
       On success, a positive number is returned, where the number returned is
       the  number  of structures which have non-zero revents fields (in other
       words, those descriptors with events or errors reported).  A value of 0
       indicates  that  the  call  timed out and no file descriptors have been
       selected. On error, -1 is returned, and errno is set appropriately.

ERRORS
       EBADF  An invalid file descriptor was given in one of the sets.

       ENOMEM There was no space to allocate file descriptor tables.

       EFAULT The array given as argument was not  contained  in  the  calling
              program's address space.

       EINTR  A signal occurred before any requested event.

CONFORMING TO
       XPG4-UNIX.

AVAILABILITY
       The  poll()  systemcall  was  introduced  in  Linux 2.1.23.  The poll()
       library call was introduced in  libc  5.4.28  (and  provides  emulation
       using select if your kernel does not have a poll syscall).

SEE ALSO
       select(2), select_tut(2)



Linux 2.1.23                      1997-12-07                           POLL(2)