当使用带文件描述符的POSIX AIO时,是否需要在O_NONBLOCK
中使用open()
打开文件描述符?
在APUE中,我没有发现它明确地说是或否,但我没有发现在O_NONBLOCK
中用open()
打开这样的文件描述符。
谢谢。
由于您评论您不清楚非阻塞I / O和异步I / O之间的关系和区别:
这些之间没有特别的关系。 POSIX规范(例如those for aio_read()
和the Linux manual for the POSIX AIO interfaces)都没有记录对执行AIO的文件处于非阻塞模式的任何要求,也没有为它处于阻塞模式的情况定义任何错误条件。非阻塞模式不是必需的。
实际上,虽然它是允许的,但在非阻塞文件上执行AIO甚至不是特别有用。如果您可以依靠您的操作不阻止,那么您从异步执行它获得了什么? AIO的要点是调用者不必等待,但执行I / O.