Provided by: manpages-ru-dev_4.21.0-2_all
ИМЯ
aio_init - инициализирует асинхронный ввод-вывод
LIBRARY
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 используются следующие поля: aio_threads В этом поле задаётся максимальное количество обрабатывающих (worker) нитей, которые могут использоваться в реализации. Если количество ожидающих операций ввода-вывода превышает это значение, то лишние операции будут в очереди до тех пор, пока не освободится обрабатывающая нить. Если значение поля меньше 1, то используется значение 1. Значение по умолчанию равно 20. aio_num В этом поле задаётся максимальное количество одновременных запросов ввода-вывода, которое вызывающий хочет видеть в очереди. Если значение поля меньше 32, то оно округляется до 32. Значение по умолчанию равно 64. aio_idle_time В этом поле задаётся период времени в секундах, который обрабатывающая нить должна ждать следующего запроса перед своим уничтожением, отсчитывая от окончания выполнения предыдущего запроса. Значение по умолчанию равно 1.
ВЕРСИИ
Функция aio_init() доступна в glibc начиная с версии 2.1.
СТАНДАРТЫ
Эта функция является расширением GNU.
СМ. ТАКЖЕ
aio(7)
ПЕРЕВОД
Русский перевод этой страницы руководства был сделан Dmitry Bolkhovskikh <d20052005@yandex.ru> и Yuri Kozlov <yuray@komyakino.ru> Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.