版本

从glibc 2.1开始,可以使用aio_cancel()函数。

语法

#包括

int aio_cancel(int fd,结构aiocb * aiocbp);

与-lrt链接。

返回值

aio_cancel()函数返回以下值之一:

AIO_CANCELED
所有请求已成功取消。
AIO_NOTCANCELED
指定的请求中至少有一个没有被取消,因为它正在进行中。在这种情况下,可以使用aio_error(3)检查单个请求的状态。
AIO_ALLDONE
通话之前,所有请求均已完成。
-1
发生错误。通过检查errno可以找到错误的原因。

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/

属性

有关本节中使用的术语的说明,请参见attribute(7)。

InterfaceAttributeValue
aio_cancel()Thread safetyMT-Safe

说明

aio_cancel()函数尝试取消对文件描述符fd的未完成异步I / O请求。如果aiocbp为NULL,则所有此类请求都将被取消。否则,仅取消由aiocbp指向的控制块描述的请求。 (有关aiocb结构的说明,请参见aio(7)。)

正常的异步通知发生在已取消的请求上(请参见aio(7)和sigevent(7))。请求返回状态(aio_return(3))设置为-1,请求错误状态(aio_error(3))设置为ECANCELED。不能取消的请求控制块不变。

如果无法取消请求,则它将在执行I / O操作后以通常的方式终止。 (在这种情况下,aio_error(3)将返回状态EINPROGRESSS。)

如果aiocbp不为NULL,并且fd与启动异步操作的文件描述符不同,则会发生未指定的结果。

哪些操作可以取消是实现定义的。

错误说明

EBADF
fd不是有效的文件描述符。
ENOSYS
未实现aio_cancel()。

名称

aio_cancel-取消未完成的异步I / O请求

示例

参见aio(7)。

AIO_CANCEL - Linux手册页

Linux程序员手册 第3部分
更新日期: 2020-06-09

另外参见

aio_error(3),aio_fsync(3),aio_read(3),aio_return(3),aio_suspend(3),aio_write(3),lio_listio(3),aio(7)

遵循规范

POSIX.1-2001,POSIX.1-2008。

日期:2019-08-20 17:59:51 来源:oir作者:oir