kqueue() を使用する場合、ファイル記述子に O_NONBLOCK を設定する必要がありますか? 言い換えれば、kqueue() は、O_NONBLOCK が設定されているかどうかに関係なく、準備完了のファイル記述子に対する次の I/O 操作がブロックされないことを保証しますか?
質問する
432 次
2 に答える
3
kqueue() を使用する場合、ファイル記述子に O_NONBLOCK を設定する必要がありますか?
いいえ。
言い換えれば、kqueue() は、O_NONBLOCK が設定されているかどうかに関係なく、準備完了のファイル記述子に対する次の I/O 操作がブロックされないことを保証しますか?
うん。
于 2012-10-26T10:17:39.367 に答える
2
あなたはそれをする必要が無い。ただし、私は通常、健全性チェックとして行います。これにより、read() などの操作で -1 が返され、errno が EWOULDBLOCK に設定されます。不明な理由で read() 呼び出しがブロックされる (したがって、プログラムがフリーズする) よりも、EWOULDBLOCK を取得して、kqueue の実装にバグがあることを知りたいです。
于 2013-12-06T03:22:31.600 に答える