5.2.1.1.4. Asynchronous Read And Write System Calls
// Asynchronous single operation
int aio_read (struct aiocb *aiocbp);
int aio_write (struct aiocb *aiocbp);

// Query asynchronous operation status
int aio_error (struct aiocb *aiocbp);
// Get return status of completed operation
ssize_t aio_return (struct aiocb *aiocbp);

// Wait for completion of any listed operation
int aio_suspend (
  struct aiocb *cblist [],
  int n, struct timespec *timeout);

int aio_cancel (int fd, struct aiocb *aiocbp);

// Submit multiple asynchronous operations
int lio_listio (
  int mode, struct aiocb *list [],
  int nent, struct sigevent *sig);

struct aiocb {
  int              aio_fildes;
  off_t            aio_offset;
  void             *aio_buf;
  size_t           aio_nbytes;
  int              aio_reqprio;
  struct sigevent  aio_sigevent;
  int              aio_lio_opcode;
  ...
}