# aio_write

Performs an asynchronous write operation.

## Syntax

int aio_write(struct aiocb *aiocbp);

## Description

The aio_write() function requests an asynchronous write operation, calling the function,

    "WriteFile(hFile, lpBuffer, nNumberOfBytesToWrite, lpNumberOfBytesWritten, NULL);

where,

- `hFile` is given by aiocbp->aio_fildes
- `lpBuffer` is given by aiocbp->aio_buf
- `nNumberOfBytesToWrite` is given by aiocbp->aio_nbytes

Use the function aio_return() to retrieve the actual bytes written in `lpNumberOfBytesWritten`.

Use the extension aiocb->aio_offset == (intptr_t)-1 to start the write operation after the last written record. This extension avoids extra file positioning and enhances performance.

## Returns

0: On success

-1: On error

To get the correct error code, use errno. To get the error that occurred during asynchronous write operation, use aio_error() function.

Parent topic: Intel's C++ Asynchronous I/O Library for Windows

## See Also

Example Code for aio_write()