Blame man3/aio_cancel.3

Packit 7cfc04
.\" Copyright (c) 2003 Andries Brouwer (aeb@cwi.nl)
Packit 7cfc04
.\"
Packit 7cfc04
.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
Packit 7cfc04
.\" This is free documentation; you can redistribute it and/or
Packit 7cfc04
.\" modify it under the terms of the GNU General Public License as
Packit 7cfc04
.\" published by the Free Software Foundation; either version 2 of
Packit 7cfc04
.\" the License, or (at your option) any later version.
Packit 7cfc04
.\"
Packit 7cfc04
.\" The GNU General Public License's references to "object code"
Packit 7cfc04
.\" and "executables" are to be interpreted as the output of any
Packit 7cfc04
.\" document formatting or typesetting system, including
Packit 7cfc04
.\" intermediate and printed output.
Packit 7cfc04
.\"
Packit 7cfc04
.\" This manual is distributed in the hope that it will be useful,
Packit 7cfc04
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 7cfc04
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit 7cfc04
.\" GNU General Public License for more details.
Packit 7cfc04
.\"
Packit 7cfc04
.\" You should have received a copy of the GNU General Public
Packit 7cfc04
.\" License along with this manual; if not, see
Packit 7cfc04
.\" <http://www.gnu.org/licenses/>.
Packit 7cfc04
.\" %%%LICENSE_END
Packit 7cfc04
.\"
Packit 7cfc04
.TH AIO_CANCEL 3 2015-03-02  "" "Linux Programmer's Manual"
Packit 7cfc04
.SH NAME
Packit 7cfc04
aio_cancel \- cancel an outstanding asynchronous I/O request
Packit 7cfc04
.SH SYNOPSIS
Packit 7cfc04
.B "#include <aio.h>"
Packit 7cfc04
.PP
Packit 7cfc04
.BI "int aio_cancel(int " fd ", struct aiocb *" aiocbp );
Packit 7cfc04
.PP
Packit 7cfc04
Link with \fI\-lrt\fP.
Packit 7cfc04
.SH DESCRIPTION
Packit 7cfc04
The
Packit 7cfc04
.BR aio_cancel ()
Packit 7cfc04
function attempts to cancel outstanding asynchronous I/O requests
Packit 7cfc04
for the file descriptor
Packit 7cfc04
.IR fd .
Packit 7cfc04
If
Packit 7cfc04
.I aiocbp
Packit 7cfc04
is NULL, all such requests are canceled.
Packit 7cfc04
Otherwise, only the request
Packit 7cfc04
described by the control block pointed to by
Packit 7cfc04
.I aiocbp
Packit 7cfc04
is canceled.
Packit 7cfc04
(See
Packit 7cfc04
.BR aio (7)
Packit 7cfc04
for a description of the
Packit 7cfc04
.I aiocb
Packit 7cfc04
structure.)
Packit 7cfc04
.PP
Packit 7cfc04
Normal asynchronous notification occurs for canceled requests (see
Packit 7cfc04
.BR aio (7)
Packit 7cfc04
and
Packit 7cfc04
.BR sigevent (7)).
Packit 7cfc04
The request return status
Packit 7cfc04
.RB ( aio_return (3))
Packit 7cfc04
is set to \-1, and the request error status
Packit 7cfc04
.RB ( aio_error (3))
Packit 7cfc04
is set to
Packit 7cfc04
.BR ECANCELED .
Packit 7cfc04
The control block of requests that cannot be canceled is not changed.
Packit 7cfc04
.PP
Packit 7cfc04
If the request could not be canceled,
Packit 7cfc04
then it will terminate in the usual way after performing the I/O operation.
Packit 7cfc04
(In this case,
Packit 7cfc04
.BR aio_error (3)
Packit 7cfc04
will return the status
Packit 7cfc04
.BR EINPROGRESSS .)
Packit 7cfc04
.PP
Packit 7cfc04
If
Packit 7cfc04
.I aiocbp
Packit 7cfc04
is not NULL, and
Packit 7cfc04
.I fd
Packit 7cfc04
differs from the file descriptor with which the asynchronous operation
Packit 7cfc04
was initiated, unspecified results occur.
Packit 7cfc04
.PP
Packit 7cfc04
Which operations are cancelable is implementation-defined.
Packit 7cfc04
.\" FreeBSD: not those on raw disk devices.
Packit 7cfc04
.SH RETURN VALUE
Packit 7cfc04
The
Packit 7cfc04
.BR aio_cancel ()
Packit 7cfc04
function returns one of the following values:
Packit 7cfc04
.TP
Packit 7cfc04
.B AIO_CANCELED
Packit 7cfc04
All requests were successfully canceled.
Packit 7cfc04
.TP
Packit 7cfc04
.B AIO_NOTCANCELED
Packit 7cfc04
At least one of the
Packit 7cfc04
requests specified was not canceled because it was in progress.
Packit 7cfc04
In this case, one may check the status of individual requests using
Packit 7cfc04
.BR aio_error (3).
Packit 7cfc04
.TP
Packit 7cfc04
.B AIO_ALLDONE
Packit 7cfc04
All requests had already been completed before the call.
Packit 7cfc04
.TP
Packit 7cfc04
\-1
Packit 7cfc04
An error occurred.
Packit 7cfc04
The cause of the error can be found by inspecting
Packit 7cfc04
.IR errno .
Packit 7cfc04
.SH ERRORS
Packit 7cfc04
.TP
Packit 7cfc04
.B EBADF
Packit 7cfc04
.I fd
Packit 7cfc04
is not a valid file descriptor.
Packit 7cfc04
.TP
Packit 7cfc04
.B ENOSYS
Packit 7cfc04
.BR aio_cancel ()
Packit 7cfc04
is not implemented.
Packit 7cfc04
.SH VERSIONS
Packit 7cfc04
The
Packit 7cfc04
.BR aio_cancel ()
Packit 7cfc04
function is available since glibc 2.1.
Packit 7cfc04
.SH ATTRIBUTES
Packit 7cfc04
For an explanation of the terms used in this section, see
Packit 7cfc04
.BR attributes (7).
Packit 7cfc04
.TS
Packit 7cfc04
allbox;
Packit 7cfc04
lb lb lb
Packit 7cfc04
l l l.
Packit 7cfc04
Interface	Attribute	Value
Packit 7cfc04
T{
Packit 7cfc04
.BR aio_cancel ()
Packit 7cfc04
T}	Thread safety	MT-Safe
Packit 7cfc04
.TE
Packit 7cfc04
.SH CONFORMING TO
Packit 7cfc04
POSIX.1-2001, POSIX.1-2008.
Packit 7cfc04
.SH EXAMPLE
Packit 7cfc04
See
Packit 7cfc04
.BR aio (7).
Packit 7cfc04
.SH SEE ALSO
Packit 7cfc04
.BR aio_error (3),
Packit 7cfc04
.BR aio_fsync (3),
Packit 7cfc04
.BR aio_read (3),
Packit 7cfc04
.BR aio_return (3),
Packit 7cfc04
.BR aio_suspend (3),
Packit 7cfc04
.BR aio_write (3),
Packit 7cfc04
.BR lio_listio (3),
Packit 7cfc04
.BR aio (7)
Packit 7cfc04
.SH COLOPHON
Packit 7cfc04
This page is part of release 4.15 of the Linux
Packit 7cfc04
.I man-pages
Packit 7cfc04
project.
Packit 7cfc04
A description of the project,
Packit 7cfc04
information about reporting bugs,
Packit 7cfc04
and the latest version of this page,
Packit 7cfc04
can be found at
Packit 7cfc04
\%https://www.kernel.org/doc/man\-pages/.