Developer Guide and Reference

Contents

lio_listio

Performs an asynchronous read operation.

Syntax

int lio_listio(int mode, struct aiocb *list[], int nent, struct sigevent *sig);
Arguments
mode
Takes following values declared in
<aio.h>
file:
  • LIO_WAIT
    : Use when you want the function to return only after completing I/O operations (synchronous I/O operations)
  • LIO_NOWAIT
    : Use when you want the function to return as soon as I/O operations are queued (asynchronous I/O requests)
*list[]
Array of the
aiocb
pointers specifying the submitted I/O requests; NULL elements in the array are ignored
nent
Number of elements in the array
*sig
Determines if asynchronous notification is sent after all I/O operations completes; takes following values:
  • 0: Asynchronous notification occurs; a queued signal, with an application-defined value, is generated when an asynchronous I/O request occurs
  • 1: Asynchronous notification does not occur even when asynchronous I/O requests are processed
  • 2: Asynchronous notification occurs; a notification function is called to perform notification
Description
The
lio_listio()
function initiates a list of I/O requests with a single function call.
The
mode
argument determines whether the function returns when all the I/O operations are completed, or as soon as the operations are queued.
If the mode argument is
LIO_WAIT
, the function waits until all I/O operations are complete. The
sig
argument is ignored in this case.
If the
mode
argument is
LIO_NOWAIT
, the function returns immediately. Asynchronous notification occurs according to the
sig
argument after all the I/O operations complete.
Returns
When
mode
=
LIO_NOWAIT
the
lio_listio()
function returns:
  • 0
    : I/O operations are successfully queued
  • -1
    : Error; I/O operations not queued; to get the proper error code, use
    errno
    .
When
mode
=
LIO_WAIT
the
lio_listio()
function returns:
  • 0
    : I/O operations specified completed successfully
  • -1
    : Error; I/O operations not completed; to get the proper error code, use
    errno
    .

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804