IO_SETUP - Linux手册页
时间:2019-08-20 17:58:53 来源:igfitidea点击:
Linux程序员手册 第2部分
更新日期: 2020-06-09
名称
io_setup-创建一个异步I / O上下文
语法
#include <linux/aio_abi.h> /* Defines needed types */ int io_setup(unsigned nr_events, io_context_t *ctx_idp);
注意:此系统调用没有glibc包装器。请参阅注释。
说明
io_setup()系统调用创建适合于同时处理nr_events操作的异步I / O上下文。 ctx_idp参数不得指向已经存在的AIO上下文,并且必须在调用之前初始化为0。成功创建AIO上下文后,将使用结果句柄填充* ctx_idp。
返回值
成功后,io_setup()返回0。有关失败的返回,请参见NOTES。
错误说明
- EAGAIN
- 指定的nr_events超出了/ proc / sys / fs / aio-max-nr中定义的可用事件限制(请参阅proc(5))。
- EFAULT
- 为ctx_idp传递了无效的指针。
- EINVAL
- ctx_idp未初始化,或者指定的nr_events超出内部限制。 nr_events应该大于0。
- ENOMEM
- 可用的内核资源不足。
- ENOSYS
- io_setup()未在此体系结构上实现。
版本
异步I / O系统调用首先出现在Linux 2.5中。
遵循规范
io_setup()是特定于Linux的,不应在旨在可移植的程序中使用。
备注
Glibc没有为该系统调用提供包装函数。您可以使用syscall(2)调用它。但是,您可能想使用libaio提供的io_setup()包装函数。
请注意,libaio包装函数为ctx_idp参数使用了不同的类型(io_context_t *)。还要注意,libaio包装器没有遵循通常的C库约定来指示错误:错误时,它返回一个否定的错误号(ERRORS中列出的值之一的负数)。如果通过syscall(2)调用系统调用,则返回值遵循指示错误的常规约定:-1,而errno设置为指示错误的(正)值。
另外参见
io_cancel(2),io_destroy(2),io_getevents(2),io_submit(2),aio(7)
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。