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:
The$rbits = $wbits = $ebits = ""; vec($rbits, fileno(STDIN), 1) = 1; vec($wbits, fileno(STDOUT), 1) = 1; $ein = $rin | $win;
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.