.\" -*- coding: UTF-8 -*- .\" Copyright 2003, Free Software Foundation, Inc. .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: GPL-1.0-or-later .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH io_submit 2 "11 апреля 2026 г." "Linux man\-pages 6.18" .SH НАИМЕНОВАНИЕ io_submit \- отправляет асинхронные блоки ввода\-вывода для обработки .SH БИБЛИОТЕКА Стандартная библиотека языка C (\fIlibc\fP,\ \fI\-lc\fP) .SH СИНТАКСИС .nf \fB#include \fP \fB#include \fP /* Definition of SYS_* constants */ \fB#include \fP .P \fBint\ syscall(SYS_io_submit, aio_context_t\ \fP\fIctx_id\fP\fB,\fP \fB long\ \fP\fIn\fP\fB, struct\ iocb\ *\fP\fIiocbpp\fP\fB[\fP\fIn\fP\fB]);\fP .fi .SH ОПИСАНИЕ \fINote\fP: you probably want to use the \fBio_setup\fP(3) wrapper function provided by \fIlibaio\fP; see VERSIONS. .P The \fBio_submit\fP() system call queues \fIn\fP I/O request blocks for processing in the AIO context \fIctx_id\fP. The \fIiocbpp\fP argument should be an array of \fIn\fP AIO control blocks, which will be submitted to context \fIctx_id\fP. .P Структура \fIiocb\fP (блок управления вводом\-выводом), определённая в \fIlinux/aio_abi.h\fP, описывает параметры, которыми управляется операция ввода\-вывода. .P .in +4n .EX #include \& struct iocb { __u64 aio_data; __u32 PADDED(aio_key, aio_rw_flags); __u16 aio_lio_opcode; __s16 aio_reqprio; __u32 aio_fildes; __u64 aio_buf; __u64 aio_nbytes; __s64 aio_offset; __u64 aio_reserved2; __u32 aio_flags; __u32 aio_resfd; }; .EE .in .P Поля этой структуры имеют следующее назначение: .TP \fIaio_data\fP Эти данные копируются в поле \fIdata\fP структуры \fIio_event\fP при завершении ввода\-вывода (смотрите \fBio_getevents\fP(2)). .TP \fIaio_key\fP Внутреннее поле, используется ядром. Не изменяйте это поле после вызова \fBio_submit\fP(). .TP \fIaio_rw_flags\fP Флаги чтения\-записи, передаваемые со структурой. Возможные значения: .RS .TP \fBRWF_APPEND\fP (начиная с Linux 4.16) .\" commit e1fc742e14e01d84d9693c4aca4ab23da65811fb Добавить данный в конец файла. Смотрите описание флага с таким же именем в \fBpwritev2\fP(2), а также описание \fBO_APPEND\fP в \fBopen\fP(2). Поле \fIaio_offset\fP игнорируется. Файловое смещение не изменяется. .TP \fBRWF_DSYNC\fP (начиная с Linux 4.13) Операция записи завершается согласно требованиям целостности данных синхронизированного ввода\-вывода. Смотрите описание флага с тем же именем в \fBpwritev2\fP(2), а также описание \fBO_DSYNC\fP в \fBopen\fP(2). .TP \fBRWF_HIPRI\fP (начиная с Linux 4.13) Запрос с высоким приоритетом; опросить, если возможно .TP \fBRWF_NOWAIT\fP (начиная с Linux 4.14) Не ждать, если ввод\-вывод блокирует операции, такие как выделение файловых блоков, очистка грязной страницы, блокировку мьютексов или вызывает перегрузку блочного устройства внутри ядра. Если имеется что\-то из этого, то управляющий блок возвращается немедленно со значением \fB\-EAGAIN\fP в поле \fIres\fP структуры \fIio_event\fP (смотрите \fBio_getevents\fP(2)). .TP \fBRWF_SYNC\fP (начиная с Linux 4.13) Операция записи завершается согласно требованиям целостности файла синхронизированного ввода\-вывода. Смотрите описание флага с тем же именем в \fBpwritev2\fP(2), а также описание \fBO_SYNC\fP в \fBopen\fP(2). .TP \fBRWF_NOAPPEND\fP (начиная с Linux 6.9) Do not honor \fBO_APPEND\fP \fBopen\fP(2) flag. See the description of \fBRWF_NOAPPEND\fP in \fBpwritev2\fP(2). .TP \fBRWF_ATOMIC\fP (начиная с Linux 6.11) Write a block of data such that a write will never be torn from power fail or similar. See the description of \fBRWF_ATOMIC\fP in \fBpwritev2\fP(2). For usage with \fBIOCB_CMD_PWRITEV\fP, the upper vector limit is \fIstx_atomic_write_segments_max.\fP See \fBSTATX_WRITE_ATOMIC\fP and \fIstx_atomic_write_segments_max\fP description in \fBstatx\fP(2). .RE .TP \fIaio_lio_opcode\fP Тип ввода\-вывода, выполняемый структурой \fIiocb\fP. Возможные значения, определены перечислением в \fIlinux/aio_abi.h\fP: .IP .in +4n .EX enum { IOCB_CMD_PREAD = 0, IOCB_CMD_PWRITE = 1, IOCB_CMD_FSYNC = 2, IOCB_CMD_FDSYNC = 3, IOCB_CMD_POLL = 5, IOCB_CMD_NOOP = 6, IOCB_CMD_PREADV = 7, IOCB_CMD_PWRITEV = 8, }; .EE .in .TP \fIaio_reqprio\fP Определяет приоритет запросов. .TP \fIaio_fildes\fP Файловый дескриптор, над которым будут выполняться операции ввода\-вывода. .TP \fIaio_buf\fP Буфер, используемый для пересылки данных при операции чтения или записи. .TP \fIaio_nbytes\fP Размер буфера, на который указывает \fIaio_buf\fP. .TP \fIaio_offset\fP Файловое смещение, начиная с которого будут выполняться операции ввода\-вывода. .TP \fIaio_flags\fP Набор флагов, связанный со структурой \fIiocb\fP. Допускаемые значения: .RS .TP \fBIOCB_FLAG_RESFD\fP Управление асинхронным вводом\-выводом должно сигнализировать файловому дескриптору в \fIaio_resfd\fP после выполнения. .TP \fBIOCB_FLAG_IOPRIO\fP (начиная с Linux 4.18) .\" commit d9a08a9e616beeccdbd0e7262b7225ffdfa49e92 Считать поле \fIaio_reqprio\fP как \fBIOPRIO_VALUE\fP, определённое в \fIlinux/ioprio.h\fP. .RE .TP \fIaio_resfd\fP Файловый дескриптор для сигнализации завершения асинхронного ввода\-вывода. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" On success, \fBio_submit\fP() returns the number of \fIiocb\fPs submitted (which may be less than \fIn\fP, or 0 if \fIn\fP is zero). .P В случае ошибки возвращается \-1, а \fIerrno\fP устанавливается в значение ошибки. .SH ОШИБКИ .TP \fBEAGAIN\fP Недостаточно ресурсов для постановки в очередь \fIiocb\fP. .TP \fBEBADF\fP Некорректный файловый дескриптор, указанный в первом \fIiocb\fP. .TP \fBEFAULT\fP Одна из структур данных указывает на некорректные данные. .TP \fBEINVAL\fP Некорректен контекст AIO, указанный \fIctx_id\fP. .TP \fBEINVAL\fP \fIn\fP is less than 0. .TP \fBEINVAL\fP The \fIiocb\fP at \fI*iocbpp[0]\fP is not properly initialized. .TP \fBEINVAL\fP The operation specified is invalid for the file descriptor in the \fIiocb\fP. .TP \fBEINVAL\fP The value in the \fIaio_reqprio\fP field is invalid. .TP \fBENOSYS\fP Вызов \fBio_submit\fP() не реализован для этой архитектуры. .TP \fBEPERM\fP Поле \fIaio_reqprio\fP содержит класс \fBIOPRIO_CLASS_RT\fP, но представляющий контекст не имеет мандата \fBCAP_SYS_ADMIN\fP. .SH ВЕРСИИ .UR https://pagure.io/libaio \fIlibaio\fP .UE provides a wrapper function with the same name, but different prototype and return value. You probably want to use that wrapper. .SH СТАНДАРТЫ Linux. .SH ИСТОРИЯ Linux 2.5. .SH "СМОТРИТЕ ТАКЖЕ" \fBio_cancel\fP(2), \fBio_destroy\fP(2), \fBio_getevents\fP(2), \fBio_setup\fP(2), \fBio_submit\fP(3), \fBaio\fP(7) .\" .SH AUTHOR .\" Kent Yoder. .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства разработал(и) Azamat Hackimov , Dmitriy S. Seregin , Yuri Kozlov и Иван Павлов . .PP Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, .UR https://www.gnu.org/licenses/gpl-3.0.html .UE версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ. .PP Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу .MT debian-l10n-russian@lists.debian.org списка рассылки русских переводчиков .ME .