2012-03-18 21 views
2

如果使用kqueue(),是否應該在文件描述符上設置O_NONBLOCK?換句話說,無論是否設置了O_NONBLOCK,kqueue()是否可以保證就緒文件描述符的下一個I/O操作不會被阻塞?kqueue()和O_NONBLOCK

回答

2

如果使用kqueue(),您應該在文件描述符上設置O_NONBLOCK嗎?

沒有。

換句話說,無論是否設置了O_NONBLOCK,kqueue()是否可以保證就緒文件描述符上的下一個I/O操作不會被阻塞?

是的。

1

你不需要。不過,我通常會作爲一個健康檢查。這使像read()這樣的操作返回-1並將errno設置爲EWOULDBLOCK。我寧願得到一個EWOULDBLOCK,並且知道我的kqueue實現比read()調用阻塞(並因此導致我的程序凍結)出於未知原因。

+0

很好的建議,謝謝。 – 2013-12-06 18:02:49

相關問題