2 .\" Copyright 2002 Massachusetts Institute of Technology
4 .\" Permission to use, copy, modify, and distribute this software and
5 .\" its documentation for any purpose and without fee is hereby
6 .\" granted, provided that both the above copyright notice and this
7 .\" permission notice appear in all copies, that both the above
8 .\" copyright notice and this permission notice appear in all
9 .\" supporting documentation, and that the name of M.I.T. not be used
10 .\" in advertising or publicity pertaining to distribution of the
11 .\" software without specific, written prior permission. M.I.T. makes
12 .\" no representations about the suitability of this software for any
13 .\" purpose. It is provided "as is" without express or implied
16 .\" THIS SOFTWARE IS PROVIDED BY M.I.T. ``AS IS''. M.I.T. DISCLAIMS
17 .\" ALL EXPRESS OR IMPLIED WARRANTIES WITH REGARD TO THIS SOFTWARE,
18 .\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19 .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT
20 .\" SHALL M.I.T. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21 .\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22 .\" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
23 .\" USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24 .\" ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25 .\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
26 .\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29 .\" $FreeBSD: src/lib/libc/gen/pselect.3,v 1.4 2002/12/18 10:13:54 ru Exp $
36 .Nd synchronous I/O multiplexing a la POSIX.1g
44 .Fa "fd_set *restrict readfds"
45 .Fa "fd_set *restrict writefds"
46 .Fa "fd_set *restrict errorfds"
47 .Fa "const struct timespec *restrict timeout"
48 .Fa "const sigset_t *restrict sigmask"
53 function was introduced by
55 as a slightly stronger version of
58 .Fa nfds , readfds , writefds ,
61 arguments are all identical to the analogous arguments of
68 .Vt "const struct timespec" ,
69 rather than the (modifiable)
75 a null pointer may be passed to indicate that
77 should wait indefinitely.
80 specifies a signal mask which is set while waiting for input.
83 returns, the original signal mask is restored.
87 for a more detailed discussion of the semantics of this interface, and
88 for macros used to manipulate the
91 .Sh IMPLEMENTATION NOTES
94 function is implemented in the C library as a wrapper around
99 function returns the same values and under the same conditions as
104 function may fail for any of the reasons documented for
106 and (if a signal mask is provided)
121 function first appeared in
126 function and this manual page were written by
127 .An Garrett Wollman Aq wollman@FreeBSD.org .