Intel's C/C++ asynchronous I/O (AIO) library implementation for Windows is like the POSIX AIO library implementation for Linux.
The differences between Intel's C/C++ AIO Windows implementation and the standard POSIX AIO implementation are listed below:
This is true for programs already written for Linux/Unix and ported to Windows to set up an AIO completion handler without the name of the handler set in the aiocb struct. Because of the way that signals are supported in Windows, this is impossible to implement. For new applications or to port existing applications, you should set the handler's name before calling the aio_read or aio_write routines. For example:
static void aio_CompletionRoutine(sigval_t sigval)
{
// … code …
}
… code …
my_aio.aio_sigevent.sigev_notify = SIGEV_THREAD;
my_aio.aio_sigevent.sigev_notify_function = aio_CompletionRoutine;
Intel's asynchronous I/O library functions listed below are all based on POSIX AIO functions. They are defined in the aio.h file.