selectの実装については前にどこかで詳しく読んだ気がするけれど、見つけられなかったので自分でselectの実装を調べました。手元に新しいもののソースがないので、古いけれどRedHatのLinux2.4.20のソースを読んでいます。 selectの復習 まずselectがどういう動作をするかを正確に思い出せないのでselectについて調べます。 Manpage of SELECT によれば int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout) こうなっています。fd_setには、その状態(readfdsならブロッキングなしで読み出し可能な状態)になっているかどうかを調べたいディスクリプタのセットを渡して、nfdsには渡したディスクリプタの中で最