select rbits, wbits, ebits, timeout
The four-argument select
operator is totally unrelated to the
previously described select
operator. This operator is for discovering which
(if any) of your file descriptors are ready to do input or output, or to
report an exceptional condition. It calls the select(2)
system
call with the bitmasks
you've specified, which you can construct using fileno
and
vec
, like this:
$rbits = $wbits = $ebits = "";
vec($rbits, fileno(STDIN), 1) = 1;
vec($wbits, fileno(STDOUT), 1) = 1;
$ein = $rin | $win;
The select
call blocks until one or more file descriptors is
ready for reading, writing, or reporting an error condition. timeout
is given in seconds and tells select
how long to
wait.