Provided by: manpages-ru-dev_4.19.0-7_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 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

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