]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - lib/libc/sys/pselect.2
libarchive: merge from vendor branch
[FreeBSD/FreeBSD.git] / lib / libc / sys / pselect.2
1 .\"
2 .\" Copyright 2002 Massachusetts Institute of Technology
3 .\"
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
14 .\" warranty.
15 .\"
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
27 .\" SUCH DAMAGE.
28 .\"
29 .\" $FreeBSD$
30 .\"
31 .Dd July 2, 2022
32 .Dt PSELECT 2
33 .Os
34 .Sh NAME
35 .Nm pselect
36 .Nd synchronous I/O multiplexing a la POSIX.1g
37 .Sh LIBRARY
38 .Lb libc
39 .Sh SYNOPSIS
40 .In sys/select.h
41 .Ft int
42 .Fo pselect
43 .Fa "int nfds"
44 .Fa "fd_set * restrict readfds"
45 .Fa "fd_set * restrict writefds"
46 .Fa "fd_set * restrict exceptfds"
47 .Fa "const struct timespec * restrict timeout"
48 .Fa "const sigset_t * restrict newsigmask"
49 .Fc
50 .Sh DESCRIPTION
51 The
52 .Fn pselect
53 function was introduced by
54 .St -p1003.1g-2000
55 as a slightly stronger version of
56 .Xr select 2 .
57 The
58 .Fa nfds , readfds , writefds ,
59 and
60 .Fa exceptfds
61 arguments are all identical to the analogous arguments of
62 .Fn select .
63 The
64 .Fa timeout
65 argument in
66 .Fn pselect
67 points to a
68 .Vt "const struct timespec"
69 rather than the potentially modifiable
70 .Vt "struct timeval"
71 used by
72 .Fn select ;
73 as in
74 .Fn select ,
75 a null pointer may be passed to indicate that
76 .Fn pselect
77 should wait indefinitely.
78 Finally,
79 .Fa newsigmask
80 specifies a signal mask which is set while waiting for input.
81 When
82 .Fn pselect
83 returns, the original signal mask is restored.
84 If
85 .Fa newsigmask
86 is a null pointer,
87 .Fn pselect
88 behaves like
89 .Fn select
90 with no setting or restoration of the signal mask.
91 .Pp
92 See
93 .Xr select 2
94 for a more detailed discussion of the semantics of this interface, and
95 for macros used to manipulate the
96 .Vt "fd_set"
97 data type.
98 .Sh RETURN VALUES
99 The
100 .Fn pselect
101 function returns the same values and under the same conditions as
102 .Fn select .
103 .Sh ERRORS
104 The
105 .Fn pselect
106 function may fail for any of the reasons documented for
107 .Xr select 2
108 and (if a signal mask is provided)
109 .Xr sigprocmask 2 .
110 .Sh SEE ALSO
111 .Xr kqueue 2 ,
112 .Xr poll 2 ,
113 .Xr select 2 ,
114 .Xr sigprocmask 2 ,
115 .Xr sigsuspend 2
116 .Sh STANDARDS
117 The
118 .Fn pselect
119 function conforms to
120 .St -p1003.1-2001 .
121 .Sh HISTORY
122 The
123 .Fn pselect
124 function first appeared in
125 .Fx 5.0 .
126 .Sh AUTHORS
127 The first implementation of
128 .Fn pselect
129 function and this manual page were written by
130 .An Garrett Wollman Aq Mt wollman@FreeBSD.org .