<!DOCTYPE html PUBLIC "‐//W3C//DTD XHTML 1.1//EN"
        "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">     <html
xmlns="http://www.w3.org/1999/xhtml"> <head>
    <link            rel="stylesheet"             type="text/css"
href="../../../style.css" title="style" />
    <link  rel="stylesheet"  type="text/css"  href="../style.css"
title="style" />
    <meta             http‐equiv="content‐type"              con‐
tent="text/html;charset=utf‐8" />

    <title>aio.h.0p ‐ Linux manual page</title> </head>

<body>

<div        class="page‐top"><a       id="top_of_page"></a></div>
<!‐‐%%%TOP_BAR%%%‐‐> <!‐‐%%%PAGE_START%%%‐‐>

<table class="sec‐table"> <tr>
    <td>
        <p class="section‐dir"> <a href="#PROLOG">PROLOG</a> | <a
href="#NAME">NAME</a>  |  <a  href="#SYNOPSIS">SYNOPSIS</a>  | <a
href="#DESCRIPTION">DESCRIPTION</a> |  <a  href="#APPLICATION_US‐
AGE">APPLICATION&nbsp;USAGE</a>   |  <a  href="#RATIONALE">RATIO‐
NALE</a>   |   <a    href="#FUTURE_DIRECTIONS">FUTURE&nbsp;DIREC‐
TIONS</a>    |   <a   href="#SEE_ALSO">SEE&nbsp;ALSO</a>   |   <a
href="#COPYRIGHT">COPYRIGHT</a>
        </p>
    </td>
    <td class="search‐box">
        <div class="man‐search‐box">

            <form                method="get"                 ac‐
tion="http://www.google.com/search">
                <fieldset class="man‐search">
                    <input    type="text"    name="q"   size="10"
maxlength="255" value="" />
                    <input type="hidden"  name="sitesearch"  val‐
ue="man7.org/linux/man‐pages" />
                    <input  type="submit" name="sa" value="Search
online pages" />
                </fieldset>
            </form>

        </div>
    </td>
    <td> </td> </tr> </table>

<pre> <span class="headline">aio.h(0P)                 POSIX Pro‐
grammer’s  Manual                 aio.h(0P)</span>  </pre> <h2><a
id="PROLOG" href="#PROLOG"></a>PROLOG  &nbsp; &nbsp; &nbsp;  &nb‐
sp;        <a        href="#top_of_page"><span        class="top‐
link">top</span></a></h2><pre>
       This manual page is part of the POSIX Programmer’s Manual.
The Linux
       implementation of this interface may differ (consult the
       corresponding  Linux  manual page for details of Linux be‐
havior), or
       the interface may not be  implemented  on  Linux.   </pre>
<h2><a id="NAME" href="#NAME"></a>NAME  &nbsp; &nbsp; &nbsp; &nb‐
sp;        <a        href="#top_of_page"><span        class="top‐
link">top</span></a></h2><pre>
       aio.h  —  asynchronous  input  and  output  </pre>  <h2><a
id="SYNOPSIS" href="#SYNOPSIS"></a>SYNOPSIS  &nbsp; &nbsp; &nbsp;
&nbsp;       <a       href="#top_of_page"><span       class="top‐
link">top</span></a></h2><pre>
       #include  &lt;aio.h&gt;  </pre>  <h2><a   id="DESCRIPTION"
href="#DESCRIPTION"></a>DESCRIPTION   &nbsp; &nbsp; &nbsp; &nbsp;
<a             href="#top_of_page"><span              class="top‐
link">top</span></a></h2><pre>
       The  <i>&lt;aio.h&gt;</i> header shall define the <b>aiocb
</b>structure, which shall
       include at least the following members:

           <b>int             aio_fildes     </b>File descriptor.
           off_t           aio_offset     File offset.
           volatile void  *aio_buf        Location of buffer.
           size_t          aio_nbytes     Length of transfer.
           int             aio_reqprio    Request  priority  off‐
set.
           struct  sigevent aio_sigevent   Signal number and val‐
ue.
           int             aio_lio_opcode Operation  to  be  per‐
formed.

       The   <i>&lt;aio.h&gt;</i>   header   shall   define   the
<b>off_t</b>, <b>pthread_attr_t</b>, <b>size_t</b>,
       and    <b>ssize_t    </b>types     as     described     in
<i>&lt;sys/types.h&gt;</i>.

       The <i>&lt;aio.h&gt;</i> header shall define the <b>struct
timespec </b>structure as
       described in <i>&lt;time.h&gt;</i>.

       The tag <b>sigevent </b>shall be declared as naming an in‐
complete structure
       type,   the   contents  of  which  are  described  in  the
<i>&lt;signal.h&gt;</i> header.

       The <i>&lt;aio.h&gt;</i> header shall define the following
symbolic constants:

       AIO_ALLDONE    A  return value indicating that none of the
requested
                     operations could be canceled since they  are
already
                     complete.

       AIO_CANCELED  A return value indicating that all requested
operations
                     have been canceled.

       AIO_NOTCANCELED
                     A return value indicating that some  of  the
requested
                     operations  could not be canceled since they
are in
                     progress.

       LIO_NOP       A <i>lio_listio</i>() element operation  op‐
tion indicating that
                     no transfer is requested.

       LIO_NOWAIT    A <i>lio_listio</i>() synchronization opera‐
tion indicating
                     that the calling thread is to continue  exe‐
cution while
                     the  <i>lio_listio</i>()  operation is being
performed, and no
                     notification is given when the operation  is
complete.

       LIO_READ       A <i>lio_listio</i>() element operation op‐
tion requesting a
                     read.

       LIO_WAIT      A <i>lio_listio</i>() synchronization opera‐
tion indicating
                     that  the calling thread is to suspend until
the
                     <i>lio_listio</i>() operation is complete.

       LIO_WRITE     A <i>lio_listio</i>() element operation  op‐
tion requesting a
                     write.

       The  following shall be declared as functions and may also
be defined
       as macros. Function prototypes shall be provided.

           <b>int      aio_cancel(int, struct aiocb *);</b>
           <b>int      aio_error(const struct aiocb *);</b>
           <b>int      aio_fsync(int, struct aiocb *);</b>
           <b>int      aio_read(struct aiocb *);</b>
           <b>ssize_t  aio_return(struct aiocb *);</b>
           <b>int      aio_suspend(const struct aiocb *const  [],
int,</b>
                        <b>const struct timespec *);</b>
           <b>int      aio_write(struct aiocb *);</b>
           <b>int       lio_listio(int,  struct  aiocb  *restrict
const [restrict], int,</b>
                        <b>struct sigevent *restrict);</b>

       Inclusion of the <i>&lt;aio.h&gt;</i> header may make vis‐
ible symbols defined in
       the     headers     <i>&lt;fcntl.h&gt;</i>,    <i>&lt;sig‐
nal.h&gt;</i>, and <i>&lt;time.h&gt;</i>.

       <i>The  following  sections  are  informative.</i>  </pre>
<h2><a  id="APPLICATION_USAGE"  href="#APPLICATION_USAGE"></a>AP‐
PLICATION    USAGE     &nbsp;    &nbsp;    &nbsp;    &nbsp;    <a
href="#top_of_page"><span                             class="top‐
link">top</span></a></h2><pre>
       None.    </pre>   <h2><a   id="RATIONALE"    href="#RATIO‐
NALE"></a>RATIONALE     &nbsp;    &nbsp;    &nbsp;    &nbsp;   <a
href="#top_of_page"><span                             class="top‐
link">top</span></a></h2><pre>
       None.   </pre>  <h2><a  id="FUTURE_DIRECTIONS"  href="#FU‐
TURE_DIRECTIONS"></a>FUTURE DIRECTIONS  &nbsp; &nbsp; &nbsp; &nb‐
sp;        <a        href="#top_of_page"><span        class="top‐
link">top</span></a></h2><pre>
       None.    </pre>   <h2><a   id="SEE_ALSO"    href="#SEE_AL‐
SO"></a>SEE    ALSO     &nbsp;    &nbsp;    &nbsp;    &nbsp;   <a
href="#top_of_page"><span                             class="top‐
link">top</span></a></h2><pre>
       <a    href="../man0/fcntl.h.0p.html">fcntl.h(0p)</a>,   <a
href="../man0/signal.h.0p.html">signal.h(0p)</a>,              <a
href="../man0/sys_types.h.0p.html">sys_types.h(0p)</a>,        <a
href="../man0/time.h.0p.html">time.h(0p)</a>

       The  System  Interfaces   volume   of   POSIX.1‐2008,   <a
href="../man3/aio_cancel.3p.html">aio_cancel(3p)</a>,
       <a  href="../man3/aio_error.3p.html">aio_error(3p)</a>, <a
href="../man3/aio_fsync.3p.html">aio_fsync(3p)</a>,            <a
href="../man3/aio_read.3p.html">aio_read(3p)</a>,              <a
href="../man3/aio_return.3p.html">aio_return(3p)</a>,
       <a href="../man3/aio_suspend.3p.html">aio_suspend(3p)</a>,
<a     href="../man3/aio_write.3p.html">aio_write(3p)</a>,     <a
href="../man3/fsync.3p.html">fsync(3p)</a>,                    <a
href="../man3/lio_listio.3p.html">lio_listio(3p)</a>,          <a
href="../man3/lseek.3p.html">lseek(3p)</a>,
       <a      href="../man3/read.3p.html">read(3p)</a>,       <a
href="../man3/write.3p.html">write(3p)</a>      </pre>     <h2><a
id="COPYRIGHT"  href="#COPYRIGHT"></a>COPYRIGHT   &nbsp;   &nbsp;
&nbsp;    &nbsp;    <a    href="#top_of_page"><span   class="top‐
link">top</span></a></h2><pre>
       Portions of this text  are  reprinted  and  reproduced  in
electronic form
       from  IEEE Std 1003.1, 2013 Edition, Standard for Informa‐
tion
       Technology ‐‐ Portable Operating System Interface (POSIX),
The Open
       Group  Base  Specifications Issue 7, Copyright (C) 2013 by
the
       Institute of Electrical and Electronics Engineers, Inc and
The Open
       Group.  (This is POSIX.1‐2008 with the 2013 Technical Cor‐
rigendum 1
       applied.) In the event of  any  discrepancy  between  this
version and
       the  original IEEE and The Open Group Standard, the origi‐
nal IEEE and
       The Open Group Standard is the referee document. The orig‐
inal
       Standard     can     be     obtained    online    at    <a
href="http://www.unix.org/online.html">http://www.unix.org/on‐
line.html</a> .

       Any typographical or formatting errors that appear in this
page are
       most likely to have been introduced during the  conversion
of the
       source  files  to  man page format. To report such errors,
see
       <a      href="https://www.kernel.org/doc/man‐pages/report‐
ing_bugs.html">https://www.kernel.org/doc/man‐pages/report‐
ing_bugs.html</a> .

<span class="footline">IEEE/The Open  Group                  2013
aio.h(0P)</span> </pre>

<hr class="end‐man‐text" />

<hr class="start‐footer" />

<div class="footer">

<table class="colophon‐table">
    <tr>
    <td class="pub‐info">
        <p>
            HTML rendering created 2019‐08‐02
            by  <a  href="http://man7.org/mtk/index.html">Michael
Kerrisk</a>,
            author of
            <a  href="http://man7.org/tlpi/"><em>The  Linux  Pro‐
gramming Interface</em></a>,
            maintainer of the
            <a href="https://www.kernel.org/doc/man‐pages/">Linux
<em>man‐pages</em> project</a>.
        </p>
        <p>
            For details of in‐depth
            <strong>Linux/UNIX system programming training  cour‐
ses</strong>
            that  I  teach,  look <a href="http://man7.org/train‐
ing/">here</a>.
        </p>
        <p>
            Hosting   by    <a    href="http://www.jambit.com/in‐
dex_en.html">jambit GmbH</a>.
        </p>
        <p>
            <a href="http://validator.w3.org/check?uri=referer">
            <img src="http://www.w3.org/Icons/valid‐xhtml11"
                alt="Valid XHTML 1.1" height="31" width="88" />
            </a>
        </p>
    </td>
    <td class="colophon‐divider">
    </td>
    <td class="tlpi‐cover">
        <a                      href="http://man7.org/tlpi/"><img
src="http://man7.org/tlpi/cover/TLPI‐front‐cover‐vsmall.png"
alt="Cover of TLPI" /></a>
    </td>
    </tr> </table>

</div>

<hr class="end‐footer" />

</body> </html>