io_setup - создаёт
асинхронный
контекст
ввода-вывода
Standard C library (
libc,
-lc)
Alternatively, Asynchronous I/O library (
libaio,
-laio); see
NOTES.
#include <linux/aio_abi.h> /* определяет необходимые типы */
long io_setup(unsigned int nr_events, aio_context_t *ctx_idp);
Замечание:
В glibc нет
обёрточной
функции
для
данного
системного
вызова;
смотрите
ЗАМЕЧАНИЯ.
Note: this page describes the raw Linux system call interface. The
wrapper function provided by
libaio uses a different type for the
ctx_idp argument. See NOTES.
Системный
вызов
io_setup()
создает
асинхронный
контекст
ввода-вывода,
способный
параллельно
обработать
nr_events событий.
Параметр
ctx_idp не
должен
указывать
на уже
существующей
контекст AIO и
должно
быть
инициализировано
0 перед
вызовом.
При
успешном
создании
контекста AIO,
*ctx_idp
заполняется
полученным
результатом
обработки.
В случае
успешного
завершения
io_setup()
возвращает
0. В случае
ошибки
смотрите
ЗАМЕЧАНИЯ.
- EAGAIN
- The specified nr_events exceeds the limit of
available events, as defined in /proc/sys/fs/aio-max-nr (see
proc(5)).
- EFAULT
- В ctx_idp
передан
некорректный
указатель.
- EINVAL
- Параметр
ctx_idp не
инициализирован,
или
указанное
в nr_events
количество
превышает
внутренние
ограничения.
Значение
nr_events должно
быть
больше 0.
- ENOMEM
- Недостаточно
ресурсов
ядра.
- ENOSYS
-
io_setup() не
реализован
для этой
архитектуры.
Асинхронные
системные
вызовы
ввода-вывода
впервые
появились
в Linux 2.5.
Вызов
io_setup()
есть
только в Linux, и
он не
должно
использоваться
в
переносимых
программах.
glibc does not provide a wrapper for this system call. You could invoke it using
syscall(2). But instead, you probably want to use the
io_setup()
wrapper function provided by
libaio.
Заметим,
что в
обёрточной
функции
libaio
используется
другой тип (
io_context_t *)
аргумента
ctx_idp. Также
заметим,
что
libaio не
следует
соглашениям
обычной
библиотеки
C для
возврата
ошибок: при
ошибке она
возвращает
отрицательный
номер
ошибки (из
списка в
разделе
ОШИБКИ).
Если
системный
вызов
вызывается
с помощью
syscall(2), то
возвращаемое
значение
следует
обычным
соглашениям
для
указания
на ошибку:
возвращается
-1 и в
errno
записывается
(положительное)
значение
возникшей
ошибки.
io_cancel(2),
io_destroy(2),
io_getevents(2),
io_submit(2),
aio(7)
Русский
перевод
этой
страницы
руководства
был сделан
Azamat Hackimov <
[email protected]>, Dmitriy S. Seregin
<
[email protected]>, Yuri Kozlov <
[email protected]> и
Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]