NAME
aio_cancel() — cancel an asynchronous I/O operation
SYNOPSIS
#include <aio.h>
int aio_cancel(int fildes, struct aiocb *aiocbp);
DESCRIPTION
The
aio_cancel()
function attempts to cancel the
asynchronous I/O request currently outstanding for
the
aiocb
referenced by
aiocbp
or, if
aiocbp
is
NULL,
any asynchronous I/O operations currently outstanding for
the file descriptor
fildes.
If an asynchronous I/O operation is successfully canceled
as a result of
aio_cancel,
its status is set to
ECANCELED,
and any signal delivery specified for that operation is performed.
Any outstanding requests that cannot be canceled
as a result of the
aio_cancel()
remain enqueued and are unaffected by the cancellation
request.
Asynchronous I/O operations that are requested as a single logical
operation are either completed or canceled atomically.
Once any portion of the operation has started, it cannot be canceled.
Whether or not and when an asynchronous I/O operation can be
canceled depends on the nature of the request.
If
aiocbp
is not
NULL,
fildes
is ignored.
To use this function, link in the realtime library by specifying
-lrt
on the compiler or linker command line.
RETURN VALUE
The
aio_cancel()
function returns one of the following values:
- AIO_CANCELED
The asynchronous I/O operation
enqueued for the
aiocb
referenced by
aiocbp
or all asynchronous I/O operations
enqueued for the file referenced by
fildes
have been successfully canceled.
- AIO_NOTCANCELED
The asynchronous I/O operation enqueued for the
aiocb
referenced by
aiocbp
or at least one of the asynchronous I/O operations
enqueued for the file referenced by
fildes
have not been canceled.
(The
aio_error()
function must be used to determine the
status of individual operations.)
- AIO_ALLDONE
The asynchronous I/O operation enqueued for the
aiocb
referenced by
aiocbp
or all of the asynchronous I/O operations
enqueued for the file referenced by
fildes
completed before cancellation could
be attempted.
- -1
Failure.
The requested cancellation could not be initiated.
errno
is set to indicate the error.
ERRORS
If
aio_cancel()
detects one of the following error conditions,
errno
is set to the indicated value:
- [EBADF]
The
aiocbp
argument is
NULL
and the
fildes
argument is not a valid file descriptor.
- [EINVAL]
There was no asynchronous I/O operation enqueued for the
aiocb
referenced by
aiocbp.
STANDARDS CONFORMANCE
aio_cancel(): POSIX Realtime Extensions, IEEE Std 1003.1b