aio_init(3) Library Functions Manual aio_init(3)

ИМЯ

aio_init - инициализирует асинхронный ввод-вывод

Real-time library (librt, -lrt)

СИНТАКСИС

#define _GNU_SOURCE         /* см. feature_test_macros(7) */
#include <aio.h>
void aio_init(const struct aioinit *init);

ОПИСАНИЕ

Имеющаяся только в GNU функция aio_init() позволяет вызывающему указать подстроечные подсказки реализации glibc POSIX AIO. Использовать данную функцию необязательно, но для эффективности её нужно вызвать перед вызовом какой-либо функции программного интерфейса POSIX AIO.

Подстроечная информация передаётся в буфере, на который указывает параметр init. Данный буфер представляет собой следующую структуру:


struct aioinit {
    int aio_threads;    /* максимальное количество нитей */
    int aio_num;        /* количество ожидаемых одновременных
                           запросов */
    int aio_locks;      /* не используется */
    int aio_usedba;     /* не используется */
    int aio_debug;      /* не используется */
    int aio_numusers;   /* не используется */
    int aio_idle_time;  /* количество секунд перед завершением
                           незанятой нити (начиная с glibc 2.2) */
    int aio_reserved;
};

В структуре aioinit используются следующие поля:

В этом поле задаётся максимальное количество обрабатывающих (worker) нитей, которые могут использоваться в реализации. Если количество ожидающих операций ввода-вывода превышает это значение, то лишние операции будут в очереди до тех пор, пока не освободится обрабатывающая нить. Если значение поля меньше 1, то используется значение 1. Значение по умолчанию равно 20.
В этом поле задаётся максимальное количество одновременных запросов ввода-вывода, которое вызывающий хочет видеть в очереди. Если значение поля меньше 32, то оно округляется до 32. Значение по умолчанию равно 64.
В этом поле задаётся период времени в секундах, который обрабатывающая нить должна ждать следующего запроса перед своим уничтожением, отсчитывая от окончания выполнения предыдущего запроса. Значение по умолчанию равно 1.

СТАНДАРТЫ

GNU.

ИСТОРИЯ

glibc 2.1.

СМ. ТАКЖЕ

aio(7)

ПЕРЕВОД

Русский перевод этой страницы руководства был сделан Dmitry Bolkhovskikh <d20052005@yandex.ru> и Yuri Kozlov <yuray@komyakino.ru>

Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

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

31 октября 2023 г. Linux man-pages 6.06