aio_cancel.2 (2010 09)
a
aio_cancel(2) aio_cancel(2)
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 out-
standing 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 can-
celed 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 deter-
mine 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 .
SEE ALSO
aio_error(2), aio_fsync(2), aio_read(2), aio_return(2), aio_suspend(2), aio_write(2), lio_listio(2), aio(5).
STANDARDS CONFORMANCE
aio_cancel(): POSIX Realtime Extensions, IEEE Std 1003.1b
HP-UX 11i Version 3: September 2010 − 1 − Hewlett-Packard Company 1