select
select rbits, wbits, ebits, timeout
- The four-argument
select
operator is totally unrelated to the previously describedselect
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 theselect(2)
system call with the bitmasks you've specified, which you can construct usingfileno
andvec
, like this:
$rbits = $wbits = $ebits = ""; vec($rbits, fileno(STDIN), 1) = 1; vec($wbits, fileno(STDOUT), 1) = 1; $ein = $rin | $win;
Theselect
call blocks until one or more file descriptors is ready for reading, writing, or reporting an error condition. timeout is given in seconds and tellsselect
how long to wait.