Isn't the whole point of select() that it doesn't block? Let us know how it works out.
Not quite, select() does block until one of the following happens:
- One of the file descriptors is in a state where it will not block if use to read or write.
- Something exceptional happened to a file descriptor. (Like the other side of a network connection closed the connection.)
- A timeout expires. (Passed as an argument to the select() call.)
Update: timeout can be zero which causes select to not block.
- A signal arrives. This lets the main loop of a process deal with events triggered by signals. (Usually the signal handler just sets a global flag and the main loop checks for the flag.)
Some details based on the man page for select(2) found on my Linux system today. Your system might vary.
| [reply] |