Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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  ap-
       plication  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 POLL-
       NVAL.  (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
       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 se-
       lected. 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() li-
       brary 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)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | CONFORMING TO | AVAILABILITY | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=poll&sektion=2&manpath=Red+Hat+9>

home | help