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

ИМЯ

       io_cancel - отменяет невыполненную асинхронную операцию ввода-вывода

LIBRARY

       Standard C library (libc, -lc)

       Alternatively, Asynchronous I/O library (libaio, -laio); see NOTES.

СИНТАКСИС

       #include <linux/aio_abi.h>    /* Definition of needed types */
       #include <sys/syscall.h>      /* Definition of SYS_* constants */
       #include <unistd.h>

       int syscall(SYS_io_cancel, aio_context_t ctx_id, struct iocb *iocb,
                   struct io_event *result);

ОПИСАНИЕ

       Note:  this  page  describes  the  raw  Linux system call interface.  The wrapper function
       provided by libaio uses a different type for the ctx_id argument.  See NOTES.

       Системный вызов io_cancel() пытается отменить  асинхронную  операцию  ввода-вывода,  ранее
       отправленную  системным  вызовом  io_submit(2).  В В параметре iocb указывается отменяемая
       операция, а в параметре ctx_id задаётся идентификатор контекста AIO отправленной операции.
       Если  операция  успешно  отменена,  то  событие будет скопировано в память, куда указывает
       result, без помещения в очередь выполнения.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       В  случае  успешного  завершения  io_cancel()  возвращает  0.  В  случае  ошибки  смотрите
       ЗАМЕЧАНИЯ.

ОШИБКИ

       EAGAIN Указанный iocb не был отменен.

       EFAULT Одна из структур данных указывает на некорректные данные.

       EINVAL Некорректен контекст AIO, указанный ctx_id.

       ENOSYS Вызов io_cancel() не реализован для этой архитектуры.

ВЕРСИИ

       Асинхронные системные вызовы ввода-вывода впервые появились в Linux 2.5.

СТАНДАРТЫ

       Вызов  io_cancel()  есть  только  в  Linux,  и  он  не должен использоваться в переносимых
       программах.

ЗАМЕЧАНИЯ

       You probably want to use the io_cancel()  wrapper function provided by libaio.

       Заметим, что в обёрточной функции libaio используется другой тип (io_context_t)  аргумента
       ctx_id. Также заметим, что libaio не следует соглашениям обычной библиотеки C для возврата
       ошибок: при ошибке она возвращает отрицательный номер ошибки (из списка в разделе ОШИБКИ).
       Если  системный  вызов  вызывается  с помощью syscall(2), то возвращаемое значение следует
       обычным соглашениям для указания  на  ошибку:  возвращается  -1  и  в  errno  записывается
       (положительное) значение возникшей ошибки.

СМ. ТАКЖЕ

       io_destroy(2), io_getevents(2), io_setup(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⟩.