IO_CANCEL - Linux手册页
时间:2019-08-20 17:58:53 来源:igfitidea点击:
Linux程序员手册 第2部分
更新日期: 2020-06-09
名称
io_cancel-取消未完成的异步I / O操作
语法
#include <linux/aio_abi.h> /* Defines needed types */ int io_cancel(io_context_t ctx_id, struct iocb *iocb, struct io_event *result);
注意:此系统调用没有glibc包装器。请参阅注释。
说明
io_cancel()系统调用尝试取消先前使用io_submit(2)提交的异步I / O操作。 iocb参数描述了要取消的操作,而ctx_id参数是向其提交操作的AIO上下文。如果操作成功取消,则事件将被复制到结果所指向的内存中,而不会放入完成队列中。
返回值
成功时,io_cancel()返回0。有关失败的返回,请参见NOTES。
错误说明
- EAGAIN
- 指定的iocb未被取消。
- EFAULT
- 数据结构之一指向无效数据。
- EINVAL
- ctx_id指定的AIO上下文无效。
- ENOSYS
- io_cancel()未在此体系结构上实现。
版本
异步I / O系统调用首先出现在Linux 2.5中。
遵循规范
io_cancel()是特定于Linux的,不应在旨在可移植的程序中使用。
备注
Glibc没有为该系统调用提供包装函数。您可以使用syscall(2)调用它。但是,相反,您可能想使用libaio提供的io_cancel()包装函数。
请注意,libaio包装函数对ctx_id参数使用其他类型(io_context_t)。还要注意,libaio包装器没有遵循通常的C库约定来指示错误:错误时,它返回一个否定的错误号(ERRORS中列出的值之一的负数)。如果通过syscall(2)调用系统调用,则返回值遵循指示错误的常规约定:-1,而errno设置为指示错误的(正)值。
另外参见
io_destroy(2),io_getevents(2),io_setup(2),io_submit(2),aio(7)
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。