*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Linux man pages -> poll (2)              



NAME    [Toc]    [Back]

       poll - wait for some event on a file descriptor

SYNOPSIS    [Toc]    [Back]

       #include <sys/poll.h>

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

DESCRIPTION    [Toc]    [Back]

       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 parameter,
 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 condition
 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    [Toc]    [Back]

       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    [Toc]    [Back]

       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    [Toc]    [Back]


AVAILABILITY    [Toc]    [Back]

       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    [Toc]    [Back]


Linux 2.1.23			  1997-12-07			       POLL(2)
[ Back ]
 Similar pages
Name OS Title
qgetfd IRIX get the read file descriptor associated with the event queue
alGetEventQueueFD IRIX get the file descriptor for an audio event queue
ttrace_wait HP-UX wait for ttrace event
dooneevent IRIX wait for events and invoke event handlers
pxfisatty IRIX Determines if file descriptor corresponds to a valid file descriptor
fattach Tru64 Attach a STREAMS-based file descriptor to a file in the file system name space
fdetach Tru64 Detach a STREAMS-based file descriptor from a file in the file system name space
AFopenfile IRIX allocate an AFfilehandle structure for an audio file identified by name / by a Unix file descriptor
AFidentifyfd IRIX retrieve the audio file format of a file descriptor / open AFfilehandle
fdetach Tru64 Detaches a STREAMS-based file descriptor from a file
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service