Provided by: manpages-ru-dev_4.27.0-1_all bug

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

       aio_write - асинхронная запись

БИБЛИОТЕКА

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

ОБЗОР

       #include <aio.h>

       int aio_write(struct aiocb *aiocbp);

ОПИСАНИЕ

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

           write(fd, buf, count)

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

       Если  флаг  O_APPEND  не  установлен,  то  данные  записываются  начиная от абсолютного положения в файле
       aiocbp->aio_offset, независимо от смещения в файле. Если флаг O_APPEND установлен, то данные записываются
       в конец файла в том порядке, в котором запускались вызовы aio_write().  После  вызова  значение  смещения
       файла не определено.

       The  "asynchronous"  means that this call returns as soon as the request has been enqueued; the write 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 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 не является правильным файловым дескриптором, открытым для записи.

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

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

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

АТРИБУТЫ

       Описание терминов данного раздела смотрите в attributes(7).
       ┌─────────────────────────────────────────────────────────────────────┬──────────────────────┬──────────┐
       │ ИнтерфейсАтрибутЗначение │
       ├─────────────────────────────────────────────────────────────────────┼──────────────────────┼──────────┤
       │ aio_write()                                                         │ Безвредность в нитях │ MT-Safe  │
       └─────────────────────────────────────────────────────────────────────┴──────────────────────┴──────────┘

СТАНДАРТЫ

       POSIX.1-2008.

ИСТОРИЯ

       glibc 2.1.  POSIX.1-2001.

ПРИМЕЧАНИЯ

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

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

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

       aio_cancel(3), aio_error(3), aio_fsync(3),  aio_read(3),  aio_return(3),  aio_suspend(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 или
       более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

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

Справочные страницы Linux 6.9.1                   2 мая 2024 г.                                     aio_write(3)