aio_read和read / EWOULDBLOCK之间的区别是什么?

时间:2017-07-16 12:18:47

标签: c++ c linux asynchronous io

在aio_read中,我们在aiocb结构上使用aio_error函数来检查操作是否完成。对我来说,它似乎是轮询和读取相同,然后将EWOULDBLOCK检查为返回值。

1 个答案:

答案 0 :(得分:2)

  

我们在aiocb结构上使用aio_error函数来检查操作是否已完成。

不,我们不是。我们使用它来检查是否已完成错误。

  

对我来说,它似乎是轮询,与读取相同,然后将EWOULDBLOCK检查为返回值。

没有。如果操作没有完成,无论是否有错误,它都会异步地继续。 EWOULDBLOCK表示已完成操作,但未传输任何数据。

你当然应该'民意调查'使用异步I / O时:您应该只允许完成处理程序运行并让检查结果是什么。