Provided by: manpages-ru-dev_4.21.0-2_all bug

ИМЯ

       io_setup - создаёт асинхронный контекст ввода-вывода

LIBRARY

       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 <azamat.hackimov@gmail.com>, Dmitriy
       S. Seregin <dseregin@59.ru>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

       Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3
       или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если  вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо
       на man-pages-ru-talks@lists.sourceforge.net.

Linux man-pages 6.03                            5 февраля 2023 г.                                    io_setup(2)