如果你使用kqueue(),你应该在你的文件描述符上设置O_NONBLOCK吗?换句话说,kqueue()是否保证就绪文件描述符上的下一个I / O操作不会阻塞,无论是否设置了O_NONBLOCK?
答案 0 :(得分:3)
如果你使用kqueue(),你应该在文件描述符上设置O_NONBLOCK吗?
不。
换句话说,kqueue()是否保证就绪文件描述符的下一个I / O操作不会阻塞,无论是否设置了O_NONBLOCK?
是的。
答案 1 :(得分:2)
你不需要。但是,我通常会做一个健全检查。这使得read()之类的操作返回-1并将errno设置为EWOULDBLOCK。我更愿意得到一个EWOULDBLOCK并且知道我的kqueue实现是错误的而不是read()调用阻塞(因此我的程序冻结)原因不明。