揮発性のメモ2

http://d.hatena.ne.jp/iww/

selectのバグ

http://www.linux.or.jp/JM/html/LDP_man-pages/man2/select.2.html#lbAM

Linux では、 select() がソケットファイルディスクリプタで "読み込みの準備ができた" と報告した場合でも、この後で read を行うと停止 (block) することがある。このような状況は、例えば、データが到着したが、検査でチェックサム異常が見つかり廃棄された時などに起こりえる。他にもファイルディスクリプタが準備できたと間違って報告される状況が起こるかもしれない。 したがって、停止すべきではないソケットに対しては O_NONBLOCK を使うとより安全であろう。