1 .\" Copyright (c) 2003 Andries Brouwer (aeb@cwi.nl)
3 .\" %%%LICENSE_START(GPLv2+_DOC_FULL)
4 .\" This is free documentation; you can redistribute it and/or
5 .\" modify it under the terms of the GNU General Public License as
6 .\" published by the Free Software Foundation; either version 2 of
7 .\" the License, or (at your option) any later version.
9 .\" The GNU General Public License's references to "object code"
10 .\" and "executables" are to be interpreted as the output of any
11 .\" document formatting or typesetting system, including
12 .\" intermediate and printed output.
14 .\" This manual is distributed in the hope that it will be useful,
15 .\" but WITHOUT ANY WARRANTY; without even the implied warranty of
16 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 .\" GNU General Public License for more details.
19 .\" You should have received a copy of the GNU General Public
20 .\" License along with this manual; if not, see
21 .\" <http://www.gnu.org/licenses/>.
24 .TH AIO_READ 3 2020-06-09 "" "Linux Programmer's Manual"
26 aio_read \- asynchronous read
31 .BI "int aio_read(struct aiocb *" aiocbp );
33 Link with \fI\-lrt\fP.
38 function queues the I/O request described by the buffer pointed to by
40 This function is the asynchronous analog of
42 The arguments of the call
46 correspond (in order) to the fields
51 of the structure pointed to by
55 for a description of the
59 The data is read starting at the absolute position
60 .IR aiocbp\->aio_offset ,
61 regardless of the file offset.
63 the value of the file offset is unspecified.
65 The "asynchronous" means that this call returns as soon as the
66 request has been enqueued; the read may or may not have completed
67 when the call returns.
68 One tests for completion using
70 The return status of a completed I/O operation can be obtained by
72 Asynchronous notification of I/O completion can be obtained by setting
73 .IR aiocbp\->aio_sigevent
79 .B _POSIX_PRIORITIZED_IO
80 is defined, and this file supports it,
81 then the asynchronous operation is submitted at a priority equal
82 to that of the calling process minus
83 .IR aiocbp\->aio_reqprio .
86 .I aiocbp\->aio_lio_opcode
89 No data is read from a regular file beyond its maximum offset.
91 On success, 0 is returned.
92 On error, the request is not enqueued, \-1
95 is set to indicate the error.
96 If an error is detected only later, it will
99 (returns status \-1) and
101 (error status\(emwhatever one would have gotten in
112 is not a valid file descriptor open for reading.
127 The file is a regular file, we start reading before end-of-file
128 and want at least one byte, but the starting position is past
129 the maximum offset for this file.
133 function is available since glibc 2.1.
135 For an explanation of the terms used in this section, see
143 Interface Attribute Value
146 T} Thread safety MT-Safe
152 POSIX.1-2001, POSIX.1-2008.
154 It is a good idea to zero out the control block before use.
155 The control block must not be changed while the read operation
157 The buffer area being read into
158 .\" or the control block of the operation
159 must not be accessed during the operation or undefined results may occur.
160 The memory areas involved must remain valid.
162 Simultaneous I/O operations specifying the same
164 structure produce undefined results.