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

FreeBSD Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
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
       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)

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+Linux%2fi386+9>

home | help