Man page - lio_listio(3)

Packages contains this manual

Available languages:

en ja ru ro

Manual

lio_listio

НАИМЕНОВАНИЕ
БИБЛИОТЕКА
ОБЗОР
ОПИСАНИЕ
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
ОШИБКИ
АТРИБУТЫ
СТАНДАРТЫ
ИСТОРИЯ
ПРИМЕЧАНИЯ
СМОТРИТЕ ТАКЖЕ
ПЕРЕВОД

НАИМЕНОВАНИЕ

lio_listio - запускает список запросов ввода-вывода на выполнение

БИБЛИОТЕКА

Библиотека реального времени ( librt , -lrt )

ОБЗОР

#include <aio.h>

int lio_listio(int mode ,
struct aiocb *restrict const
aiocb_list [restrict],
int
nitems , struct sigevent *restrict sevp );

ОПИСАНИЕ

Функция lio_listio () запускает на выполнение список операций ввода-вывода, описанных в массиве aiocb_list .

Значение операции mode может быть одним из следующих:
LIO_WAIT

Вызов не завершается до тех пор, пока не будут выполнены все операции. Аргумент sevp игнорируется.

LIO_NOWAIT

The I/O operations are queued for processing and the call returns immediately. When all of the I/O operations complete, asynchronous notification occurs, as specified by the sevp argument; see sigevent (3type) for details. If sevp is NULL, no asynchronous notification occurs.

The aiocb_list argument is an array of pointers to aiocb structures that describe I/O operations. These operations are executed in an unspecified order. The nitems argument specifies the size of the array aiocb_list . Null pointers in aiocb_list are ignored.

В каждом управляющем блоке в aiocb_list в поле aio_lio_opcode задаётся выполняемая операция ввода вывода; значения:
LIO_READ

Выполнить операцию чтения. Операция ставится в очередь как вызов aio_read (3) с указанным управляющим блоком.

LIO_WRITE

Выполнить операцию записи. Операция ставится в очередь как вызов aio_write (3) с указанным управляющим блоком.

LIO_NOP

Игнорировать управляющий блок.

Остальные поля в каждом управляющем блоке имеют то же назначение, что и для aio_read (3) и aio_write (3). Поля aio_sigevent в каждом управляющем блоке могут использоваться для указания уведомлений по отдельным операциям ввода-вывода (смотрите sigevent (7)).

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

При значении mode равным LIO_NOWAIT функция lio_listio () возвращает 0, если все операции ввода-вывода были поставлены в очередь. В противном случае возвращается -1 и в errno содержится код ошибки.

При значении mode равным LIO_WAIT функция lio_listio () возвращает 0, если все операции ввода-вывода были выполнены без ошибок. В противном случае возвращается -1 и в errno содержится код ошибки.

В возвращаемом lio_listio () состоянии предоставляется информация только о самом вызове, а не об отдельных операция ввода-вывода. Одна или несколько операций ввода-вывода могут завершиться с ошибкой, но это не повлияет на выполнение остальных операций. Состояние отдельный операций ввода-вывода в aiocb_list можно определить с помощью aio_error (3). После завершения операции её результат можно получить с помощью aio_return (3). Отдельные операции ввода-вывода могут завершиться с ошибкой по причинам, описанным в aio_read (3) и aio_write (3).

ОШИБКИ

Функция lio_listio () может завершиться с ошибкой по следующим причинам:

EAGAIN

Не хватает ресурсов.

EAGAIN

Количество операций ввода-вывода, указанное в nitems , превысило ограничение AIO_MAX .

EINTR

Значение mode равно LIO_WAIT и был получен сигнал до завершения всех операций ввода-вывода; смотрите signal (7) (это может быть даже один из асинхронных сигналов о завершении ввода-вывода).

EINVAL

Неправильное значение mode , или значение nitems превышает ограничение AIO_LISTIO_MAX .

EIO

Одна или более операций, указанных в aiocb_list , завершились с ошибкой. Приложение может проверить состояние каждой операции с помощью aio_return (3).

Если вызов lio_listio () завершился с ошибкой EAGAIN , EINTR или EIO , то некоторые операции из aiocb_list могли всё же начаться. Если вызов lio_listio () завершился по другой причине, то ни одна из операций ввода-вывода не началась.

АТРИБУТЫ

Описание терминов данного раздела смотрите в attributes (7).

Image grohtml-618142-1.png

СТАНДАРТЫ

POSIX.1-2008.

ИСТОРИЯ

glibc 2.1. POSIX.1-2001.

ПРИМЕЧАНИЯ

Рекомендуется обнулять управляющие блоки перед использованием. Управляющие блоки не должны изменяться пока выполняются операции ввода-вывода. Нельзя читать или писать в буферные области во время выполнения операций, иначе результат непредсказуем. Используемые области памяти должны оставаться корректными (valid).

Одновременное выполнение операций ввода-вывода через совместно используемую структуру aiocb приводит к непредсказуемым результатам.

СМОТРИТЕ ТАКЖЕ

aio_cancel (3), aio_error (3), aio_fsync (3), aio_return (3), aio_suspend (3), aio_write (3), aio (7)

ПЕРЕВОД

Русский перевод этой страницы руководства разработал(и) Artyom Kunyov <artkun@guitarplayer.ru>, Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, Katrin Kutepova <blackkatelv@gmail.com>, Konstantin Shvaykovskiy <kot.shv@gmail.com>, Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков .