[logo] BSD poll(2) emulation routine

This package implements the System V poll(2) system call for Unix-like systems that do not support poll. For instance, the following Unix-like operating systems do not support poll:

  • NetBSD, prior to version 1.3
  • FreeBSD, prior to version 3.0
  • OpenBSD, prior to version 2.0
  • BSD/OS. (See the BSD/OS man pages.)
  • Apple's Mac OS X (prior to OS X 10.3) and Darwin
  • QNX 6
  • 4.4 BSD Lite 2 (not generally used by production systems)
  • 386BSD (pretty much obsolete these days)

poll provides a method for multiplexing input and output on multiple open file descriptors; in traditional BSD systems, that capability is provided by select(2). While the semantics of select differ from those of poll, poll can be readily emulated in terms of select, which is exactly what this small piece of software does.

Brief documentation on this emulation can be found at the top of the poll.h header file. For a full description of poll, consult W. Richard Stevens' excellent book, Unix Network Programming (Prentice-Hall, 1990). The software should compile on most BSD UNIX systems without modification. I have successfully compiled it on:

  • BSD/OS (BSDI) 1.1, 2.0, 2.1
  • FreeBSD 2.1.0 through 4.8

In addition:

  • Benjamin Reed, ranger @ befunk com, has supplied the necessary Makefile changes to build it on Mac OS X (Darwin).
  • Sven Fischer, fischer @ deutaeit . de, informed me that it works, without change, on QNX 6.

See the README and INSTALL files in the tarball for details.

This software is released under the following license:

Copyright (c) 1995-2003 Brian M. Clapper
All rights reserved.

Redistribution and use in source and binary forms are permitted provided that: (1) source distributions retain this entire copyright notice and comment; (2) modifications made to the software are prominently mentioned, and a copy of the original software (or a pointer to its location) are included; and (3) distributions including binaries display the following acknowledgement: "This product includes software developed by Brian M Clapper, <bmc @ clapper . org>" in the documentation or other materials provided with the distribution. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

Effectively, this means you can do what you want with the software except remove this notice or take advantage of the author's name. If you modify the software and redistribute your modified version, you must indicate that your version is a modification of the original, and you must provide either a pointer to or a copy of the original.

Brian Clapper, bmc @ clapper . org

$Id: index.html 5713 2006-03-05 00:31:22Z bmc $