struct aiocb

Асинхронный блок управления ввода/вывода

Прототип:

#include <aio.h>
struct aiocb {
int aio_fildes;
off_t aio_offset;
volatile void *aio_buf;
size_t aio_nbytes;
int aio_reqprio;
struct sigevent aio_sigevent;
int aio_lio_opcode;
}

Описание:

aio_fildes
The file descriptor to use in an asynchronous I/O operation.

Note: The aio_*() functions work with Transparent Distributed Processing; the file descriptor can be one that you've opened across Qnet.

aio_offset
The file offset.
aio_buf
A pointer to a buffer.
aio_nbytes
The length of a transfer.
aio_reqprio
The request priority offset.
aio_sigevent
A pointer to a struct sigevent that specifies the signal number and value.
aio_lio_opcode
The operation to be performed; one of the following:
LIO_NOP
a lio_listio() element operation option indicating that no transfer is requested.
LIO_NOWAIT
a lio_listio() synchronization operation indicating that the calling thread is to continue execution while the lio_listio() operation is being performed, and no notification is given when the operation is complete.
LIO_READ
a lio_listio() element operation option requesting a read.
LIO_WAIT
a lio_listio() synchronization operation indicating that the calling thread is to suspend until the lio_listio() operation is complete.
LIO_WRITE
a lio_listio() element operation option requesting a write.

Классификация:

POSIX 1003.1 AIO

Предостережения:

The first time you call an aio_*() function, a thread pool is created, making your process multithreaded if it isn't already. The thread pool isn't destroyed until your process ends.

Тематические ссылки:

struct sigevent, aio_cancel(), aio_error(), aio_fsync(), aio_read(), aio_return(), aio_suspend(), aio_write(), lio_listio()




Предыдущий раздел: Описание API системной библиотеки