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/