Man page - aio_read(3)

Packages contains this manual

Available languages:

en fr ja ru ro

Manual

aio_read

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

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

aio_read - асинхронное чтение

БИБЛИОТЕКА

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

ОБЗОР

#include <aio.h>

int aio_read(struct aiocb * aiocbp );

ОПИСАНИЕ

Функция aio_read () ставит в очередь запрос ввода-вывода, описанный в буфере, на который указывает aiocbp . Эта функция является асинхронным аналогом вызова read (2). Аргументы функции

read(fd, buf, count)

соответствуют (в указанном порядке) полям aio_fildes , aio_buf и aio_nbytes структуры, на которую указывает aiocbp (описание структуры aiocb смотрите в aio (7)).

Чтение данных выполняется начиная с абсолютного положения в файле aiocbp->aio_offset , независимо от смещения в файле. После вызова значение смещения в файле не определено.

The "asynchronous" means that this call returns as soon as the request has been enqueued; the read may or may not have completed when the call returns. One tests for completion using aio_error (3). The return status of a completed I/O operation can be obtained by aio_return (3). Asynchronous notification of I/O completion can be obtained by setting aiocbp->aio_sigevent appropriately; see sigevent (3type) for details.

Если определён макрос _POSIX_PRIORITIZED_IO и данный файл его поддерживает, асинхронная операция устанавливается в очередь с приоритетом вызывающего процесса минус aiocbp->aio_reqprio .

Поле aiocbp->aio_lio_opcode игнорируется.

Данные не читаются из обычного файла, если смещение превышает максимум.

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

On success, 0 is returned. On error, the request is not enqueued, -1 is returned, and errno is set to indicate the error. If an error is detected only later, it will be reported via aio_return (3) (returns status -1) and aio_error (3) (error status—whatever one would have gotten in errno , such as EBADF ).

ОШИБКИ

EAGAIN

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

EBADF

Значение aio_fildes не является допустимым файловым дескриптором для открытия на чтение.

EINVAL

Одно или несколько значений у aio_offset , aio_reqprio или aio_nbytes неверны.

ENOSYS

Функция aio_read () не реализована.

EOVERFLOW

Файл является обычным файлом, мы начинаем читать его до конца файла и хотим получить не менее одного байта, но начальная позиция находится за максимальным значением смещения этого файла.

АТРИБУТЫ

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

Image grohtml-628793-1.png

СТАНДАРТЫ

POSIX.1-2008.

ИСТОРИЯ

glibc 2.1. POSIX.1-2001.

ПРИМЕЧАНИЯ

Желательно обнулять буфер блока управления перед использованием. Блок управления не должен изменяться во время выполнения операции чтения. Область буфера, в которую выполняется чтение, должна быть недоступна во время операции, иначе поведение непредсказуемо. Области памяти, с которыми производится работа, должны оставаться доступными.

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

ПРИМЕРЫ

Смотрите aio (7).

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

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

ПЕРЕВОД

Русский перевод этой страницы руководства разработал(и) Dmitry Bolkhovskikh <d20052005@yandex.ru>, Yuri Kozlov <yuray@komyakino.ru> и Kirill Rekhov <krekhov.dev@gmail.com>

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

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