OSDN Git Service

(split) LDP: Update POT and ja.po to LDP v3.40.
[linuxjm/LDP_man-pages.git] / po4a / aio / po / aio.pot
1 # SOME DESCRIPTIVE TITLE
2 # Copyright (C) YEAR Free Software Foundation, Inc.
3 # This file is distributed under the same license as the PACKAGE package.
4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5 #
6 #, fuzzy
7 msgid ""
8 msgstr ""
9 "Project-Id-Version: PACKAGE VERSION\n"
10 "POT-Creation-Date: 2012-05-01 04:37+0900\n"
11 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13 "Language-Team: LANGUAGE <LL@li.org>\n"
14 "Language: \n"
15 "MIME-Version: 1.0\n"
16 "Content-Type: text/plain; charset=CHARSET\n"
17 "Content-Transfer-Encoding: 8bit\n"
18
19 #. type: TH
20 #: build/C/man7/aio.7:24
21 #, no-wrap
22 msgid "AIO"
23 msgstr ""
24
25 #. type: TH
26 #: build/C/man7/aio.7:24 build/C/man3/aio_fsync.3:23 build/C/man3/aio_suspend.3:24 build/C/man3/aio_write.3:23
27 #, no-wrap
28 msgid "2010-10-02"
29 msgstr ""
30
31 #. type: TH
32 #: build/C/man7/aio.7:24 build/C/man3/aio_init.3:24 build/C/man2/io_cancel.2:23 build/C/man2/io_destroy.2:23 build/C/man2/io_getevents.2:23 build/C/man2/io_setup.2:23 build/C/man2/io_submit.2:23
33 #, no-wrap
34 msgid "Linux"
35 msgstr ""
36
37 #. type: TH
38 #: build/C/man7/aio.7:24 build/C/man3/aio_cancel.3:23 build/C/man3/aio_error.3:23 build/C/man3/aio_fsync.3:23 build/C/man3/aio_init.3:24 build/C/man3/aio_read.3:23 build/C/man3/aio_return.3:23 build/C/man3/aio_suspend.3:24 build/C/man3/aio_write.3:23 build/C/man2/io_cancel.2:23 build/C/man2/io_destroy.2:23 build/C/man2/io_getevents.2:23 build/C/man2/io_setup.2:23 build/C/man2/io_submit.2:23 build/C/man3/lio_listio.3:23
39 #, no-wrap
40 msgid "Linux Programmer's Manual"
41 msgstr ""
42
43 #. type: SH
44 #: build/C/man7/aio.7:25 build/C/man3/aio_cancel.3:24 build/C/man3/aio_error.3:24 build/C/man3/aio_fsync.3:24 build/C/man3/aio_init.3:25 build/C/man3/aio_read.3:24 build/C/man3/aio_return.3:24 build/C/man3/aio_suspend.3:25 build/C/man3/aio_write.3:24 build/C/man2/io_cancel.2:24 build/C/man2/io_destroy.2:24 build/C/man2/io_getevents.2:24 build/C/man2/io_setup.2:24 build/C/man2/io_submit.2:24 build/C/man3/lio_listio.3:24
45 #, no-wrap
46 msgid "NAME"
47 msgstr ""
48
49 #. type: Plain text
50 #: build/C/man7/aio.7:27
51 msgid "aio - POSIX asynchronous I/O overview"
52 msgstr ""
53
54 #. type: SH
55 #: build/C/man7/aio.7:27 build/C/man3/aio_cancel.3:32 build/C/man3/aio_error.3:32 build/C/man3/aio_fsync.3:32 build/C/man3/aio_init.3:36 build/C/man3/aio_read.3:32 build/C/man3/aio_return.3:32 build/C/man3/aio_suspend.3:38 build/C/man3/aio_write.3:32 build/C/man2/io_cancel.2:42 build/C/man2/io_destroy.2:40 build/C/man2/io_getevents.2:43 build/C/man2/io_setup.2:40 build/C/man2/io_submit.2:41 build/C/man3/lio_listio.3:35
56 #, no-wrap
57 msgid "DESCRIPTION"
58 msgstr ""
59
60 #. type: Plain text
61 #: build/C/man7/aio.7:35
62 msgid ""
63 "The POSIX asynchronous I/O (AIO) interface allows applications to initiate "
64 "one or more I/O operations that are performed asynchronously (i.e., in the "
65 "background).  The application can elect to be notified of completion of the "
66 "I/O operation in a variety of ways: by delivery of a signal, by "
67 "instantiation of a thread, or no notification at all."
68 msgstr ""
69
70 #. type: Plain text
71 #: build/C/man7/aio.7:37
72 msgid "The POSIX AIO interface consists of the following functions:"
73 msgstr ""
74
75 #. type: TP
76 #: build/C/man7/aio.7:37
77 #, no-wrap
78 msgid "B<aio_read>(3)"
79 msgstr ""
80
81 #. type: Plain text
82 #: build/C/man7/aio.7:42
83 msgid "Enqueue a read request.  This is the asynchronous analog of B<read>(2)."
84 msgstr ""
85
86 #. type: TP
87 #: build/C/man7/aio.7:42
88 #, no-wrap
89 msgid "B<aio_write>(3)"
90 msgstr ""
91
92 #. type: Plain text
93 #: build/C/man7/aio.7:47
94 msgid "Enqueue a write request.  This is the asynchronous analog of B<write>(2)."
95 msgstr ""
96
97 #. type: TP
98 #: build/C/man7/aio.7:47
99 #, no-wrap
100 msgid "B<aio_fsync>(3)"
101 msgstr ""
102
103 #. type: Plain text
104 #: build/C/man7/aio.7:54
105 msgid ""
106 "Enqueue a sync request for the I/O operations on a file descriptor.  This is "
107 "the asynchronous analog of B<fsync>(2)  and B<fdatasync>(2)."
108 msgstr ""
109
110 #. type: TP
111 #: build/C/man7/aio.7:54
112 #, no-wrap
113 msgid "B<aio_error>(3)"
114 msgstr ""
115
116 #. type: Plain text
117 #: build/C/man7/aio.7:57
118 msgid "Obtain the error status of an enqueued I/O request."
119 msgstr ""
120
121 #. type: TP
122 #: build/C/man7/aio.7:57
123 #, no-wrap
124 msgid "B<aio_return>(3)"
125 msgstr ""
126
127 #. type: Plain text
128 #: build/C/man7/aio.7:60
129 msgid "Obtain the return status of a completed I/O request."
130 msgstr ""
131
132 #. type: TP
133 #: build/C/man7/aio.7:60
134 #, no-wrap
135 msgid "B<aio_suspend>(3)"
136 msgstr ""
137
138 #. type: Plain text
139 #: build/C/man7/aio.7:64
140 msgid ""
141 "Suspend the caller until one or more of a specified set of I/O requests "
142 "completes."
143 msgstr ""
144
145 #. type: TP
146 #: build/C/man7/aio.7:64
147 #, no-wrap
148 msgid "B<aio_cancel>(3)"
149 msgstr ""
150
151 #. type: Plain text
152 #: build/C/man7/aio.7:68
153 msgid "Attempt to cancel outstanding I/O requests on a specified file descriptor."
154 msgstr ""
155
156 #. type: TP
157 #: build/C/man7/aio.7:68
158 #, no-wrap
159 msgid "B<lio_listio>(3)"
160 msgstr ""
161
162 #. type: Plain text
163 #: build/C/man7/aio.7:71
164 msgid "Enqueue multiple I/O requests using a single function call."
165 msgstr ""
166
167 #. type: Plain text
168 #: build/C/man7/aio.7:78
169 msgid ""
170 "The I<aiocb> (\"asynchronous I/O control block\") structure defines "
171 "parameters that control an I/O operation.  An argument of this type is "
172 "employed with all of the functions listed above.  This structure has the "
173 "following form:"
174 msgstr ""
175
176 #. type: Plain text
177 #: build/C/man7/aio.7:82
178 #, no-wrap
179 msgid "#include E<lt>aiocb.hE<gt>\n"
180 msgstr ""
181
182 #. type: Plain text
183 #: build/C/man7/aio.7:85
184 #, no-wrap
185 msgid ""
186 "struct aiocb {\n"
187 "    /* The order of these fields is implementation-dependent */\n"
188 msgstr ""
189
190 #. type: Plain text
191 #: build/C/man7/aio.7:94
192 #, no-wrap
193 msgid ""
194 "    int             aio_fildes;     /* File descriptor */\n"
195 "    off_t           aio_offset;     /* File offset */\n"
196 "    volatile void  *aio_buf;        /* Location of buffer */\n"
197 "    size_t          aio_nbytes;     /* Length of transfer */\n"
198 "    int             aio_reqprio;    /* Request priority */\n"
199 "    struct sigevent aio_sigevent;   /* Notification method */\n"
200 "    int             aio_lio_opcode; /* Operation to be performed;\n"
201 "                                       lio_listio() only */\n"
202 msgstr ""
203
204 #. type: Plain text
205 #: build/C/man7/aio.7:97
206 #, no-wrap
207 msgid ""
208 "    /* Various implementation-internal fields not shown */\n"
209 "};\n"
210 msgstr ""
211
212 #. type: Plain text
213 #: build/C/man7/aio.7:99
214 #, no-wrap
215 msgid "/* Operation codes for \\(aqaio_lio_opcode\\(aq: */\n"
216 msgstr ""
217
218 #. type: Plain text
219 #: build/C/man7/aio.7:101
220 #, no-wrap
221 msgid "enum { LIO_READ, LIO_WRITE, LIO_NOP };\n"
222 msgstr ""
223
224 #. type: Plain text
225 #: build/C/man7/aio.7:105
226 msgid "The fields of this structure are as follows:"
227 msgstr ""
228
229 #. type: TP
230 #: build/C/man7/aio.7:105
231 #, no-wrap
232 msgid "I<aio_filedes>"
233 msgstr ""
234
235 #. type: Plain text
236 #: build/C/man7/aio.7:108
237 msgid "The file descriptor on which the I/O operation is to be performed."
238 msgstr ""
239
240 #. type: TP
241 #: build/C/man7/aio.7:108
242 #, no-wrap
243 msgid "I<aio_offset>"
244 msgstr ""
245
246 #. type: Plain text
247 #: build/C/man7/aio.7:111
248 msgid "This is the file offset at which the I/O operation is to be performed."
249 msgstr ""
250
251 #. type: TP
252 #: build/C/man7/aio.7:111
253 #, no-wrap
254 msgid "I<aio_buf>"
255 msgstr ""
256
257 #. type: Plain text
258 #: build/C/man7/aio.7:114
259 msgid "This is the buffer used to transfer data for a read or write operation."
260 msgstr ""
261
262 #. type: TP
263 #: build/C/man7/aio.7:114
264 #, no-wrap
265 msgid "I<aio_nbytes>"
266 msgstr ""
267
268 #. type: Plain text
269 #: build/C/man7/aio.7:118
270 msgid "This is the size of the buffer pointed to by I<aio_buf>."
271 msgstr ""
272
273 #. type: TP
274 #: build/C/man7/aio.7:118
275 #, no-wrap
276 msgid "I<aio_reqprio>"
277 msgstr ""
278
279 #. type: Plain text
280 #: build/C/man7/aio.7:127
281 msgid ""
282 "This field specifies a value that is subtracted from the calling thread's "
283 "real-time priority in order to determine the priority for execution of this "
284 "I/O request (see B<pthread_setschedparam>(3)).  The specified value must be "
285 "between 0 and the value returned by I<sysconf(_SC_AIO_PRIO_DELTA_MAX)>.  "
286 "This field is ignored for file synchronization operations."
287 msgstr ""
288
289 #. type: TP
290 #: build/C/man7/aio.7:127
291 #, no-wrap
292 msgid "I<aio_sigevent>"
293 msgstr ""
294
295 #. type: Plain text
296 #: build/C/man7/aio.7:141
297 msgid ""
298 "This field is a structure that specifies how the caller is to be notified "
299 "when the asynchronous I/O operation completes.  Possible values for "
300 "I<aio_sigevent.sigev_notify> are B<SIGEV_NONE>, B<SIGEV_SIGNAL>, and "
301 "B<SIGEV_THREAD>.  See B<sigevent>(7)  for further details."
302 msgstr ""
303
304 #. type: TP
305 #: build/C/man7/aio.7:141
306 #, no-wrap
307 msgid "I<aio_lio_opcode>"
308 msgstr ""
309
310 #. type: Plain text
311 #: build/C/man7/aio.7:145
312 msgid "The type of operation to be performed; used only for B<lio_listio>(3)."
313 msgstr ""
314
315 #. type: Plain text
316 #: build/C/man7/aio.7:148
317 msgid ""
318 "In addition to the standard functions listed above, the GNU C library "
319 "provides the following extension to the POSIX AIO API:"
320 msgstr ""
321
322 #. type: TP
323 #: build/C/man7/aio.7:148
324 #, no-wrap
325 msgid "B<aio_init>(3)"
326 msgstr ""
327
328 #. type: Plain text
329 #: build/C/man7/aio.7:151
330 msgid ""
331 "Set parameters for tuning the behavior of the glibc POSIX AIO "
332 "implementation."
333 msgstr ""
334
335 #. type: SH
336 #: build/C/man7/aio.7:151 build/C/man3/aio_read.3:132 build/C/man3/aio_suspend.3:104 build/C/man3/aio_write.3:137 build/C/man2/io_cancel.2:78 build/C/man2/io_destroy.2:72 build/C/man2/io_getevents.2:85 build/C/man2/io_setup.2:81 build/C/man2/io_submit.2:83 build/C/man3/lio_listio.3:206
337 #, no-wrap
338 msgid "NOTES"
339 msgstr ""
340
341 #. type: Plain text
342 #: build/C/man7/aio.7:158
343 msgid ""
344 "It is a good idea to zero out the control block buffer before use (see "
345 "B<memset>(3)).  The control block buffer and the buffer pointed to by "
346 "I<aio_buf> must not be changed while the I/O operation is in progress.  "
347 "These buffers must remain valid until the I/O operation completes."
348 msgstr ""
349
350 #. type: Plain text
351 #: build/C/man7/aio.7:162
352 msgid ""
353 "Simultaneous asynchronous read or write operations using the same I<aiocb> "
354 "structure yield undefined results."
355 msgstr ""
356
357 #.  http://lse.sourceforge.net/io/aio.html
358 #.  http://lse.sourceforge.net/io/aionotes.txt
359 #.  http://lwn.net/Articles/148755/
360 #. type: Plain text
361 #: build/C/man7/aio.7:180
362 msgid ""
363 "The current Linux POSIX AIO implementation is provided in userspace by "
364 "glibc.  This has a number of limitations, most notably that maintaining "
365 "multiple threads to perform I/O operations is expensive and scales poorly.  "
366 "Work has been in progress for some time on a kernel state-machine-based "
367 "implementation of asynchronous I/O (see B<io_submit>(2), B<io_setup>(2), "
368 "B<io_cancel>(2), B<io_destroy>(2), B<io_getevents>(2)), but this "
369 "implementation hasn't yet matured to the point where the POSIX AIO "
370 "implementation can be completely reimplemented using the kernel system "
371 "calls."
372 msgstr ""
373
374 #. type: SH
375 #: build/C/man7/aio.7:180 build/C/man3/aio_cancel.3:90 build/C/man3/aio_error.3:65 build/C/man3/aio_fsync.3:78 build/C/man3/aio_read.3:102 build/C/man3/aio_return.3:62 build/C/man3/aio_suspend.3:87 build/C/man3/aio_write.3:109 build/C/man2/io_cancel.2:56 build/C/man2/io_destroy.2:53 build/C/man2/io_getevents.2:60 build/C/man2/io_setup.2:54 build/C/man2/io_submit.2:54 build/C/man3/lio_listio.3:145
376 #, no-wrap
377 msgid "ERRORS"
378 msgstr ""
379
380 #. type: TP
381 #: build/C/man7/aio.7:181 build/C/man3/aio_error.3:66 build/C/man3/aio_fsync.3:86 build/C/man3/aio_read.3:110 build/C/man3/aio_return.3:63 build/C/man3/aio_write.3:121 build/C/man2/io_cancel.2:63 build/C/man2/io_destroy.2:57 build/C/man2/io_getevents.2:64 build/C/man2/io_setup.2:61 build/C/man2/io_submit.2:64 build/C/man3/lio_listio.3:160
382 #, no-wrap
383 msgid "B<EINVAL>"
384 msgstr ""
385
386 #. type: Plain text
387 #: build/C/man7/aio.7:190
388 msgid ""
389 "The I<aio_reqprio> field of the I<aiocb> structure was less than 0, or was "
390 "greater than the limit returned by the call "
391 "I<sysconf(_SC_AIO_PRIO_DELTA_MAX)>."
392 msgstr ""
393
394 #. type: SH
395 #: build/C/man7/aio.7:190 build/C/man3/aio_cancel.3:95 build/C/man3/aio_error.3:73 build/C/man3/aio_fsync.3:94 build/C/man3/aio_init.3:91 build/C/man3/aio_read.3:126 build/C/man3/aio_return.3:68 build/C/man3/aio_suspend.3:98 build/C/man3/aio_write.3:131 build/C/man2/io_cancel.2:70 build/C/man2/io_destroy.2:64 build/C/man2/io_getevents.2:77 build/C/man2/io_setup.2:73 build/C/man2/io_submit.2:75 build/C/man3/lio_listio.3:200
396 #, no-wrap
397 msgid "VERSIONS"
398 msgstr ""
399
400 #. type: Plain text
401 #: build/C/man7/aio.7:192
402 msgid "The POSIX AIO interfaces are provided by glibc since version 2.1."
403 msgstr ""
404
405 #. type: SH
406 #: build/C/man7/aio.7:192 build/C/man3/aio_cancel.3:99 build/C/man3/aio_error.3:77 build/C/man3/aio_fsync.3:98 build/C/man3/aio_init.3:95 build/C/man3/aio_read.3:130 build/C/man3/aio_return.3:72 build/C/man3/aio_suspend.3:102 build/C/man3/aio_write.3:135 build/C/man2/io_cancel.2:73 build/C/man2/io_destroy.2:67 build/C/man2/io_getevents.2:80 build/C/man2/io_setup.2:76 build/C/man2/io_submit.2:78 build/C/man3/lio_listio.3:204
407 #, no-wrap
408 msgid "CONFORMING TO"
409 msgstr ""
410
411 #. type: Plain text
412 #: build/C/man7/aio.7:194 build/C/man3/aio_cancel.3:101 build/C/man3/aio_error.3:79 build/C/man3/aio_fsync.3:100 build/C/man3/aio_read.3:132 build/C/man3/aio_return.3:74 build/C/man3/aio_suspend.3:104 build/C/man3/aio_write.3:137 build/C/man3/lio_listio.3:206
413 msgid "POSIX.1-2001, POSIX.1-2008."
414 msgstr ""
415
416 #. type: SH
417 #: build/C/man7/aio.7:194 build/C/man3/aio_cancel.3:101 build/C/man3/aio_error.3:79 build/C/man3/aio_read.3:144 build/C/man3/aio_return.3:74
418 #, no-wrap
419 msgid "EXAMPLE"
420 msgstr ""
421
422 #. type: Plain text
423 #: build/C/man7/aio.7:207
424 msgid ""
425 "The program below opens each of the files named in its command-line "
426 "arguments and queues a request on the resulting file descriptor using "
427 "B<aio_read>(3).  The program then loops, periodically monitoring each of the "
428 "I/O operations that is still in progress using B<aio_error>(3).  Each of the "
429 "I/O requests is set up to provide notification by delivery of a signal.  "
430 "After all I/O requests have completed, the program retrieves their status "
431 "using B<aio_return>(3)."
432 msgstr ""
433
434 #. type: Plain text
435 #: build/C/man7/aio.7:213
436 msgid ""
437 "The B<SIGQUIT> signal (generated by typing control-\\e) causes the program "
438 "to request cancellation of each of the outstanding requests using "
439 "B<aio_cancel>(3)."
440 msgstr ""
441
442 #. type: Plain text
443 #: build/C/man7/aio.7:218
444 msgid ""
445 "Here is an example of what we might see when running this program.  In this "
446 "example, the program queues two requests to standard input, and these are "
447 "satisfied by two lines of input containing \"abc\" and \"x\"."
448 msgstr ""
449
450 #. type: Plain text
451 #: build/C/man7/aio.7:242
452 #, no-wrap
453 msgid ""
454 "$ B<./a.out /dev/stdin /dev/stdin>\n"
455 "opened /dev/stdin on descriptor 3\n"
456 "opened /dev/stdin on descriptor 4\n"
457 "aio_error():\n"
458 "    for request 0 (descriptor 3): In progress\n"
459 "    for request 1 (descriptor 4): In progress\n"
460 "B<abc>\n"
461 "I/O completion signal received\n"
462 "aio_error():\n"
463 "    for request 0 (descriptor 3): I/O succeeded\n"
464 "    for request 1 (descriptor 4): In progress\n"
465 "aio_error():\n"
466 "    for request 1 (descriptor 4): In progress\n"
467 "B<x>\n"
468 "I/O completion signal received\n"
469 "aio_error():\n"
470 "    for request 1 (descriptor 4): I/O succeeded\n"
471 "All I/O requests completed\n"
472 "aio_return():\n"
473 "    for request 0 (descriptor 3): 4\n"
474 "    for request 1 (descriptor 4): 2\n"
475 msgstr ""
476
477 #. type: SS
478 #: build/C/man7/aio.7:244
479 #, no-wrap
480 msgid "Program source"
481 msgstr ""
482
483 #. type: Plain text
484 #: build/C/man7/aio.7:253
485 #, no-wrap
486 msgid ""
487 "#include E<lt>stdlib.hE<gt>\n"
488 "#include E<lt>unistd.hE<gt>\n"
489 "#include E<lt>stdio.hE<gt>\n"
490 "#include E<lt>errno.hE<gt>\n"
491 "#include E<lt>aio.hE<gt>\n"
492 "#include E<lt>signal.hE<gt>\n"
493 msgstr ""
494
495 #. type: Plain text
496 #: build/C/man7/aio.7:255
497 #, no-wrap
498 msgid "#define BUF_SIZE 20     /* Size of buffers for read operations */\n"
499 msgstr ""
500
501 #. type: Plain text
502 #: build/C/man7/aio.7:257
503 #, no-wrap
504 msgid "#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
505 msgstr ""
506
507 #. type: Plain text
508 #: build/C/man7/aio.7:259
509 #, no-wrap
510 msgid "#define errMsg(msg)  do { perror(msg); } while (0)\n"
511 msgstr ""
512
513 #. type: Plain text
514 #: build/C/man7/aio.7:266
515 #, no-wrap
516 msgid ""
517 "struct ioRequest {      /* Application-defined structure for tracking\n"
518 "                           I/O requests */\n"
519 "    int           reqNum;\n"
520 "    int           status;\n"
521 "    struct aiocb *aiocbp;\n"
522 "};\n"
523 msgstr ""
524
525 #. type: Plain text
526 #: build/C/man7/aio.7:270
527 #, no-wrap
528 msgid ""
529 "static volatile sig_atomic_t gotSIGQUIT = 0;\n"
530 "                        /* On delivery of SIGQUIT, we attempt to\n"
531 "                           cancel all outstanding I/O requests */\n"
532 msgstr ""
533
534 #. type: Plain text
535 #: build/C/man7/aio.7:276
536 #, no-wrap
537 msgid ""
538 "static void             /* Handler for SIGQUIT */\n"
539 "quitHandler(int sig)\n"
540 "{\n"
541 "    gotSIGQUIT = 1;\n"
542 "}\n"
543 msgstr ""
544
545 #. type: Plain text
546 #: build/C/man7/aio.7:278
547 #, no-wrap
548 msgid "#define IO_SIGNAL SIGUSR1   /* Signal used to notify I/O completion */\n"
549 msgstr ""
550
551 #. type: Plain text
552 #: build/C/man7/aio.7:283
553 #, no-wrap
554 msgid ""
555 "static void                 /* Handler for I/O completion signal */\n"
556 "aioSigHandler(int sig, siginfo_t *si, void *ucontext)\n"
557 "{\n"
558 "    write(STDOUT_FILENO, \"I/O completion signal received\\en\", 31);\n"
559 msgstr ""
560
561 #. type: Plain text
562 #: build/C/man7/aio.7:289
563 #, no-wrap
564 msgid ""
565 "    /* The corresponding ioRequest structure would be available as\n"
566 "           struct ioRequest *ioReq = si-E<gt>si_value.sival_ptr;\n"
567 "       and the file descriptor would then be available via\n"
568 "           ioReq-E<gt>aiocbp-E<gt>aio_fildes */\n"
569 "}\n"
570 msgstr ""
571
572 #. type: Plain text
573 #: build/C/man7/aio.7:299
574 #, no-wrap
575 msgid ""
576 "int\n"
577 "main(int argc, char *argv[])\n"
578 "{\n"
579 "    struct ioRequest *ioList;\n"
580 "    struct aiocb *aiocbList;\n"
581 "    struct sigaction sa;\n"
582 "    int s, j;\n"
583 "    int numReqs;        /* Total number of queued I/O requests */\n"
584 "    int openReqs;       /* Number of I/O requests still in progress */\n"
585 msgstr ""
586
587 #. type: Plain text
588 #: build/C/man7/aio.7:305
589 #, no-wrap
590 msgid ""
591 "    if (argc E<lt> 2) {\n"
592 "        fprintf(stderr, \"Usage: %s E<lt>pathnameE<gt> "
593 "E<lt>pathnameE<gt>...\\en\",\n"
594 "                argv[0]);\n"
595 "        exit(EXIT_FAILURE);\n"
596 "    }\n"
597 msgstr ""
598
599 #. type: Plain text
600 #: build/C/man7/aio.7:307
601 #, no-wrap
602 msgid "    numReqs = argc - 1;\n"
603 msgstr ""
604
605 #. type: Plain text
606 #: build/C/man7/aio.7:309
607 #, no-wrap
608 msgid "    /* Allocate our arrays */\n"
609 msgstr ""
610
611 #. type: Plain text
612 #: build/C/man7/aio.7:313
613 #, no-wrap
614 msgid ""
615 "    ioList = calloc(numReqs, sizeof(struct ioRequest));\n"
616 "    if (ioList == NULL)\n"
617 "        errExit(\"calloc\");\n"
618 msgstr ""
619
620 #. type: Plain text
621 #: build/C/man7/aio.7:317
622 #, no-wrap
623 msgid ""
624 "    aiocbList = calloc(numReqs, sizeof(struct aiocb));\n"
625 "    if (aiocbList == NULL)\n"
626 "        errExit(\"calloc\");\n"
627 msgstr ""
628
629 #. type: Plain text
630 #: build/C/man7/aio.7:319
631 #, no-wrap
632 msgid "    /* Establish handlers for SIGQUIT and the I/O completion signal */\n"
633 msgstr ""
634
635 #. type: Plain text
636 #: build/C/man7/aio.7:322
637 #, no-wrap
638 msgid ""
639 "    sa.sa_flags = SA_RESTART;\n"
640 "    sigemptyset(&sa.sa_mask);\n"
641 msgstr ""
642
643 #. type: Plain text
644 #: build/C/man7/aio.7:326
645 #, no-wrap
646 msgid ""
647 "    sa.sa_handler = quitHandler;\n"
648 "    if (sigaction(SIGQUIT, &sa, NULL) == -1)\n"
649 "        errExit(\"sigaction\");\n"
650 msgstr ""
651
652 #. type: Plain text
653 #: build/C/man7/aio.7:331
654 #, no-wrap
655 msgid ""
656 "    sa.sa_flags = SA_RESTART | SA_SIGINFO;\n"
657 "    sa.sa_sigaction = aioSigHandler;\n"
658 "    if (sigaction(IO_SIGNAL, &sa, NULL) == -1)\n"
659 "        errExit(\"sigaction\");\n"
660 msgstr ""
661
662 #. type: Plain text
663 #: build/C/man7/aio.7:334
664 #, no-wrap
665 msgid ""
666 "    /* Open each file specified on the command line, and queue\n"
667 "       a read request on the resulting file descriptor */\n"
668 msgstr ""
669
670 #. type: Plain text
671 #: build/C/man7/aio.7:339
672 #, no-wrap
673 msgid ""
674 "    for (j = 0; j E<lt> numReqs; j++) {\n"
675 "        ioList[j].reqNum = j;\n"
676 "        ioList[j].status = EINPROGRESS;\n"
677 "        ioList[j].aiocbp = &aiocbList[j];\n"
678 msgstr ""
679
680 #. type: Plain text
681 #: build/C/man7/aio.7:345
682 #, no-wrap
683 msgid ""
684 "        ioList[j].aiocbp-E<gt>aio_fildes = open(argv[j + 1], O_RDONLY);\n"
685 "        if (ioList[j].aiocbp-E<gt>aio_fildes == -1)\n"
686 "            errExit(\"open\");\n"
687 "        printf(\"opened %s on descriptor %d\\en\", argv[j + 1],\n"
688 "                ioList[j].aiocbp-E<gt>aio_fildes);\n"
689 msgstr ""
690
691 #. type: Plain text
692 #: build/C/man7/aio.7:349
693 #, no-wrap
694 msgid ""
695 "        ioList[j].aiocbp-E<gt>aio_buf = malloc(BUF_SIZE);\n"
696 "        if (ioList[j].aiocbp-E<gt>aio_buf == NULL)\n"
697 "            errExit(\"malloc\");\n"
698 msgstr ""
699
700 #. type: Plain text
701 #: build/C/man7/aio.7:357
702 #, no-wrap
703 msgid ""
704 "        ioList[j].aiocbp-E<gt>aio_nbytes = BUF_SIZE;\n"
705 "        ioList[j].aiocbp-E<gt>aio_reqprio = 0;\n"
706 "        ioList[j].aiocbp-E<gt>aio_offset = 0;\n"
707 "        ioList[j].aiocbp-E<gt>aio_sigevent.sigev_notify = SIGEV_SIGNAL;\n"
708 "        ioList[j].aiocbp-E<gt>aio_sigevent.sigev_signo = IO_SIGNAL;\n"
709 "        ioList[j].aiocbp-E<gt>aio_sigevent.sigev_value.sival_ptr =\n"
710 "                                &ioList[j];\n"
711 msgstr ""
712
713 #. type: Plain text
714 #: build/C/man7/aio.7:362
715 #, no-wrap
716 msgid ""
717 "        s = aio_read(ioList[j].aiocbp);\n"
718 "        if (s == -1)\n"
719 "            errExit(\"aio_read\");\n"
720 "    }\n"
721 msgstr ""
722
723 #. type: Plain text
724 #: build/C/man7/aio.7:364
725 #, no-wrap
726 msgid "    openReqs = numReqs;\n"
727 msgstr ""
728
729 #. type: Plain text
730 #: build/C/man7/aio.7:366
731 #, no-wrap
732 msgid "    /* Loop, monitoring status of I/O requests */\n"
733 msgstr ""
734
735 #. type: Plain text
736 #: build/C/man7/aio.7:369
737 #, no-wrap
738 msgid ""
739 "    while (openReqs E<gt> 0) {\n"
740 "        sleep(3);       /* Delay between each monitoring step */\n"
741 msgstr ""
742
743 #. type: Plain text
744 #: build/C/man7/aio.7:371
745 #, no-wrap
746 msgid "        if (gotSIGQUIT) {\n"
747 msgstr ""
748
749 #. type: Plain text
750 #: build/C/man7/aio.7:375
751 #, no-wrap
752 msgid ""
753 "            /* On receipt of SIGQUIT, attempt to cancel each of the\n"
754 "               outstanding I/O requests, and display status returned\n"
755 "               from the cancellation requests */\n"
756 msgstr ""
757
758 #. type: Plain text
759 #: build/C/man7/aio.7:377
760 #, no-wrap
761 msgid "            printf(\"got SIGQUIT; canceling I/O requests: \\en\");\n"
762 msgstr ""
763
764 #. type: Plain text
765 #: build/C/man7/aio.7:394
766 #, no-wrap
767 msgid ""
768 "            for (j = 0; j E<lt> numReqs; j++) {\n"
769 "                if (ioList[j].status == EINPROGRESS) {\n"
770 "                    printf(\"    Request %d on descriptor %d:\", j,\n"
771 "                            ioList[j].aiocbp-E<gt>aio_fildes);\n"
772 "                    s = aio_cancel(ioList[j].aiocbp-E<gt>aio_fildes,\n"
773 "                            ioList[j].aiocbp);\n"
774 "                    if (s == AIO_CANCELED)\n"
775 "                        printf(\"I/O canceled\\en\");\n"
776 "                    else if (s == AIO_NOTCANCELED)\n"
777 "                            printf(\"I/O not canceled\\en\");\n"
778 "                    else if (s == AIO_ALLDONE)\n"
779 "                        printf(\"I/O all done\\en\");\n"
780 "                    else\n"
781 "                        errMsg(\"aio_cancel\");\n"
782 "                }\n"
783 "            }\n"
784 msgstr ""
785
786 #. type: Plain text
787 #: build/C/man7/aio.7:397
788 #, no-wrap
789 msgid ""
790 "            gotSIGQUIT = 0;\n"
791 "        }\n"
792 msgstr ""
793
794 #. type: Plain text
795 #: build/C/man7/aio.7:400
796 #, no-wrap
797 msgid ""
798 "        /* Check the status of each I/O request that is still\n"
799 "           in progress */\n"
800 msgstr ""
801
802 #. type: Plain text
803 #: build/C/man7/aio.7:407
804 #, no-wrap
805 msgid ""
806 "        printf(\"aio_error():\\en\");\n"
807 "        for (j = 0; j E<lt> numReqs; j++) {\n"
808 "            if (ioList[j].status == EINPROGRESS) {\n"
809 "                printf(\"    for request %d (descriptor %d): \",\n"
810 "                        j, ioList[j].aiocbp-E<gt>aio_fildes);\n"
811 "                ioList[j].status = aio_error(ioList[j].aiocbp);\n"
812 msgstr ""
813
814 #. type: Plain text
815 #: build/C/man7/aio.7:422
816 #, no-wrap
817 msgid ""
818 "                switch (ioList[j].status) {\n"
819 "                case 0:\n"
820 "                    printf(\"I/O succeeded\\en\");\n"
821 "                    break;\n"
822 "                case EINPROGRESS:\n"
823 "                    printf(\"In progress\\en\");\n"
824 "                    break;\n"
825 "                case ECANCELED:\n"
826 "                    printf(\"Canceled\\en\");\n"
827 "                    break;\n"
828 "                default:\n"
829 "                    errMsg(\"aio_error\");\n"
830 "                    break;\n"
831 "                }\n"
832 msgstr ""
833
834 #. type: Plain text
835 #: build/C/man7/aio.7:428
836 #, no-wrap
837 msgid ""
838 "                if (ioList[j].status != EINPROGRESS)\n"
839 "                    openReqs--;\n"
840 "            }\n"
841 "        }\n"
842 "    }\n"
843 msgstr ""
844
845 #. type: Plain text
846 #: build/C/man7/aio.7:430
847 #, no-wrap
848 msgid "    printf(\"All I/O requests completed\\en\");\n"
849 msgstr ""
850
851 #. type: Plain text
852 #: build/C/man7/aio.7:432
853 #, no-wrap
854 msgid "    /* Check status return of all I/O requests */\n"
855 msgstr ""
856
857 #. type: Plain text
858 #: build/C/man7/aio.7:436
859 #, no-wrap
860 msgid ""
861 "    printf(\"aio_return():\\en\");\n"
862 "    for (j = 0; j E<lt> numReqs; j++) {\n"
863 "        ssize_t s;\n"
864 msgstr ""
865
866 #. type: Plain text
867 #: build/C/man7/aio.7:441
868 #, no-wrap
869 msgid ""
870 "        s = aio_return(ioList[j].aiocbp);\n"
871 "        printf(\"    for request %d (descriptor %d): %ld\\en\",\n"
872 "                j, ioList[j].aiocbp-E<gt>aio_fildes, (long) s);\n"
873 "    }\n"
874 msgstr ""
875
876 #. type: Plain text
877 #: build/C/man7/aio.7:444
878 #, no-wrap
879 msgid ""
880 "    exit(EXIT_SUCCESS);\n"
881 "}\n"
882 msgstr ""
883
884 #. type: SH
885 #: build/C/man7/aio.7:445 build/C/man3/aio_cancel.3:104 build/C/man3/aio_error.3:82 build/C/man3/aio_fsync.3:100 build/C/man3/aio_init.3:97 build/C/man3/aio_read.3:147 build/C/man3/aio_return.3:77 build/C/man3/aio_suspend.3:124 build/C/man3/aio_write.3:149 build/C/man2/io_cancel.2:94 build/C/man2/io_destroy.2:88 build/C/man2/io_getevents.2:101 build/C/man2/io_setup.2:97 build/C/man2/io_submit.2:99 build/C/man3/lio_listio.3:218
886 #, no-wrap
887 msgid "SEE ALSO"
888 msgstr ""
889
890 #. type: Plain text
891 #: build/C/man7/aio.7:460
892 msgid ""
893 "B<io_cancel>(2), B<io_destroy>(2), B<io_getevents>(2), B<io_setup>(2), "
894 "B<io_submit>(2), B<aio_cancel>(3), B<aio_error>(3), B<aio_init>(3), "
895 "B<aio_read>(3), B<aio_return>(3), B<aio_write>(3), B<lio_listio>(3), "
896 "http://www.squid-cache.org/~adrian/Reprint-Pulavarty-OLS2003.pdf"
897 msgstr ""
898
899 #. type: SH
900 #: build/C/man7/aio.7:460 build/C/man3/aio_cancel.3:113 build/C/man3/aio_error.3:91 build/C/man3/aio_fsync.3:110 build/C/man3/aio_init.3:99 build/C/man3/aio_read.3:156 build/C/man3/aio_return.3:86 build/C/man3/aio_suspend.3:134 build/C/man3/aio_write.3:158 build/C/man2/io_cancel.2:107 build/C/man2/io_destroy.2:101 build/C/man2/io_getevents.2:116 build/C/man2/io_setup.2:108 build/C/man2/io_submit.2:110 build/C/man3/lio_listio.3:226
901 #, no-wrap
902 msgid "COLOPHON"
903 msgstr ""
904
905 #. type: Plain text
906 #: build/C/man7/aio.7:467 build/C/man3/aio_cancel.3:120 build/C/man3/aio_error.3:98 build/C/man3/aio_fsync.3:117 build/C/man3/aio_init.3:106 build/C/man3/aio_read.3:163 build/C/man3/aio_return.3:93 build/C/man3/aio_suspend.3:141 build/C/man3/aio_write.3:165 build/C/man2/io_cancel.2:114 build/C/man2/io_destroy.2:108 build/C/man2/io_getevents.2:123 build/C/man2/io_setup.2:115 build/C/man2/io_submit.2:117 build/C/man3/lio_listio.3:233
907 msgid ""
908 "This page is part of release 3.40 of the Linux I<man-pages> project.  A "
909 "description of the project, and information about reporting bugs, can be "
910 "found at http://www.kernel.org/doc/man-pages/."
911 msgstr ""
912
913 #. type: TH
914 #: build/C/man3/aio_cancel.3:23
915 #, no-wrap
916 msgid "AIO_CANCEL"
917 msgstr ""
918
919 #. type: TH
920 #: build/C/man3/aio_cancel.3:23
921 #, no-wrap
922 msgid "2012-04-18"
923 msgstr ""
924
925 #. type: Plain text
926 #: build/C/man3/aio_cancel.3:26
927 msgid "aio_cancel - cancel an outstanding asynchronous I/O request"
928 msgstr ""
929
930 #. type: SH
931 #: build/C/man3/aio_cancel.3:26 build/C/man3/aio_error.3:26 build/C/man3/aio_fsync.3:26 build/C/man3/aio_init.3:27 build/C/man3/aio_read.3:26 build/C/man3/aio_return.3:26 build/C/man3/aio_suspend.3:27 build/C/man3/aio_write.3:26 build/C/man2/io_cancel.2:26 build/C/man2/io_destroy.2:26 build/C/man2/io_getevents.2:26 build/C/man2/io_setup.2:26 build/C/man2/io_submit.2:26 build/C/man3/lio_listio.3:26
932 #, no-wrap
933 msgid "SYNOPSIS"
934 msgstr ""
935
936 #. type: Plain text
937 #: build/C/man3/aio_cancel.3:28 build/C/man3/aio_error.3:28 build/C/man3/aio_fsync.3:28 build/C/man3/aio_read.3:28 build/C/man3/aio_return.3:28 build/C/man3/aio_write.3:28
938 msgid "B<#include E<lt>aio.hE<gt>>"
939 msgstr ""
940
941 #. type: Plain text
942 #: build/C/man3/aio_cancel.3:30
943 msgid "B<int aio_cancel(int >I<fd>B<, struct aiocb *>I<aiocbp>B<);>"
944 msgstr ""
945
946 #. type: Plain text
947 #: build/C/man3/aio_cancel.3:32 build/C/man3/aio_error.3:32 build/C/man3/aio_fsync.3:32 build/C/man3/aio_init.3:36 build/C/man3/aio_read.3:32 build/C/man3/aio_return.3:32 build/C/man3/aio_write.3:32
948 msgid "Link with I<-lrt>."
949 msgstr ""
950
951 #. type: Plain text
952 #: build/C/man3/aio_cancel.3:50
953 msgid ""
954 "The B<aio_cancel>()  function attempts to cancel outstanding asynchronous "
955 "I/O requests for the file descriptor I<fd>.  If I<aiocbp> is NULL, all such "
956 "requests are canceled.  Otherwise, only the request described by the control "
957 "block pointed to by I<aiocbp> is canceled.  (See B<aio>(7)  for a "
958 "description of the I<aiocb> structure.)"
959 msgstr ""
960
961 #. type: Plain text
962 #: build/C/man3/aio_cancel.3:59
963 msgid ""
964 "Normal asynchronous notification occurs for canceled requests.  The request "
965 "return status (B<aio_return>(3))  is set to -1, and the request error status "
966 "(B<aio_error>(3))  is set to B<ECANCELED>.  The control block of requests "
967 "that cannot be canceled is not changed."
968 msgstr ""
969
970 #. type: Plain text
971 #: build/C/man3/aio_cancel.3:66
972 msgid ""
973 "If I<aiocbp> is not NULL, and I<fd> differs from the file descriptor with "
974 "which the asynchronous operation was initiated, unspecified results occur."
975 msgstr ""
976
977 #.  FreeBSD: not those on raw disk devices.
978 #. type: Plain text
979 #: build/C/man3/aio_cancel.3:69
980 msgid "Which operations are cancelable is implementation-defined."
981 msgstr ""
982
983 #. type: SH
984 #: build/C/man3/aio_cancel.3:69 build/C/man3/aio_error.3:43 build/C/man3/aio_fsync.3:72 build/C/man3/aio_read.3:87 build/C/man3/aio_return.3:48 build/C/man3/aio_suspend.3:79 build/C/man3/aio_write.3:94 build/C/man2/io_cancel.2:51 build/C/man2/io_destroy.2:48 build/C/man2/io_getevents.2:54 build/C/man2/io_setup.2:49 build/C/man2/io_submit.2:48 build/C/man3/lio_listio.3:107
985 #, no-wrap
986 msgid "RETURN VALUE"
987 msgstr ""
988
989 #. type: Plain text
990 #: build/C/man3/aio_cancel.3:73
991 msgid "The B<aio_cancel>()  function returns one of the following values:"
992 msgstr ""
993
994 #. type: TP
995 #: build/C/man3/aio_cancel.3:73
996 #, no-wrap
997 msgid "B<AIO_CANCELED>"
998 msgstr ""
999
1000 #. type: Plain text
1001 #: build/C/man3/aio_cancel.3:76
1002 msgid "All requests were successfully canceled."
1003 msgstr ""
1004
1005 #. type: TP
1006 #: build/C/man3/aio_cancel.3:76
1007 #, no-wrap
1008 msgid "B<AIO_NOTCANCELED>"
1009 msgstr ""
1010
1011 #. type: Plain text
1012 #: build/C/man3/aio_cancel.3:82
1013 msgid ""
1014 "At least one of the requests specified was not canceled because it was in "
1015 "progress.  In this case, one may check the status of individual requests "
1016 "using B<aio_error>(3)."
1017 msgstr ""
1018
1019 #. type: TP
1020 #: build/C/man3/aio_cancel.3:82
1021 #, no-wrap
1022 msgid "B<AIO_ALLDONE>"
1023 msgstr ""
1024
1025 #. type: Plain text
1026 #: build/C/man3/aio_cancel.3:85
1027 msgid "All requests had already been completed before the call."
1028 msgstr ""
1029
1030 #. type: TP
1031 #: build/C/man3/aio_cancel.3:85
1032 #, no-wrap
1033 msgid "-1"
1034 msgstr ""
1035
1036 #. type: Plain text
1037 #: build/C/man3/aio_cancel.3:90
1038 msgid ""
1039 "An error occurred.  The cause of the error can be found by inspecting "
1040 "I<errno>."
1041 msgstr ""
1042
1043 #. type: TP
1044 #: build/C/man3/aio_cancel.3:91 build/C/man3/aio_fsync.3:82 build/C/man3/aio_read.3:106 build/C/man3/aio_write.3:113 build/C/man2/io_submit.2:58
1045 #, no-wrap
1046 msgid "B<EBADF>"
1047 msgstr ""
1048
1049 #. type: Plain text
1050 #: build/C/man3/aio_cancel.3:95
1051 msgid "I<fd> is not a valid file descriptor."
1052 msgstr ""
1053
1054 #. type: Plain text
1055 #: build/C/man3/aio_cancel.3:99
1056 msgid "The B<aio_cancel>()  function is available since glibc 2.1."
1057 msgstr ""
1058
1059 #. type: Plain text
1060 #: build/C/man3/aio_cancel.3:104 build/C/man3/aio_error.3:82 build/C/man3/aio_read.3:147 build/C/man3/aio_return.3:77
1061 msgid "See B<aio>(7)."
1062 msgstr ""
1063
1064 #. type: Plain text
1065 #: build/C/man3/aio_cancel.3:113
1066 msgid ""
1067 "B<aio_error>(3), B<aio_fsync>(3), B<aio_read>(3), B<aio_return>(3), "
1068 "B<aio_suspend>(3), B<aio_write>(3), B<lio_listio>(3), B<aio>(7)"
1069 msgstr ""
1070
1071 #. type: TH
1072 #: build/C/man3/aio_error.3:23
1073 #, no-wrap
1074 msgid "AIO_ERROR"
1075 msgstr ""
1076
1077 #. type: TH
1078 #: build/C/man3/aio_error.3:23 build/C/man3/aio_read.3:23 build/C/man3/aio_return.3:23
1079 #, no-wrap
1080 msgid "2010-10-03"
1081 msgstr ""
1082
1083 #. type: Plain text
1084 #: build/C/man3/aio_error.3:26
1085 msgid "aio_error - get error status of asynchronous I/O operation"
1086 msgstr ""
1087
1088 #. type: Plain text
1089 #: build/C/man3/aio_error.3:30
1090 msgid "B<int aio_error(const struct aiocb *>I<aiocbp>B<);>"
1091 msgstr ""
1092
1093 #. type: Plain text
1094 #: build/C/man3/aio_error.3:43
1095 msgid ""
1096 "The B<aio_error>()  function returns the error status for the asynchronous "
1097 "I/O request with control block pointed to by I<aiocbp>.  (See B<aio>(7)  for "
1098 "a description of the I<aiocb> structure.)"
1099 msgstr ""
1100
1101 #. type: Plain text
1102 #: build/C/man3/aio_error.3:45
1103 msgid "This function returns one of the following:"
1104 msgstr ""
1105
1106 #. type: IP
1107 #: build/C/man3/aio_error.3:45 build/C/man3/aio_error.3:49 build/C/man3/aio_error.3:52 build/C/man3/aio_error.3:54 build/C/man3/aio_suspend.3:42 build/C/man3/aio_suspend.3:46 build/C/man3/aio_suspend.3:48
1108 #, no-wrap
1109 msgid "*"
1110 msgstr ""
1111
1112 #. type: Plain text
1113 #: build/C/man3/aio_error.3:49
1114 msgid "B<EINPROGRESS>, if the request has not been completed yet."
1115 msgstr ""
1116
1117 #. type: Plain text
1118 #: build/C/man3/aio_error.3:52
1119 msgid "B<ECANCELED>, if the request was canceled."
1120 msgstr ""
1121
1122 #. type: Plain text
1123 #: build/C/man3/aio_error.3:54
1124 msgid "0, if the request completed successfully."
1125 msgstr ""
1126
1127 #. type: Plain text
1128 #: build/C/man3/aio_error.3:65
1129 msgid ""
1130 "A positive error, if the asynchronous I/O operation failed.  This is the "
1131 "same value that would have been stored in the I<errno> variable in the case "
1132 "of a synchronous B<read>(2), B<write>(2), B<fsync>(2), or B<fdatasync>(2)  "
1133 "call."
1134 msgstr ""
1135
1136 #. type: Plain text
1137 #: build/C/man3/aio_error.3:73
1138 msgid ""
1139 "I<aiocbp> does not point at a control block for an asynchronous I/O request "
1140 "of which the return status (see B<aio_return>(3))  has not been retrieved "
1141 "yet."
1142 msgstr ""
1143
1144 #. type: Plain text
1145 #: build/C/man3/aio_error.3:77
1146 msgid "The B<aio_error>()  function is available since glibc 2.1."
1147 msgstr ""
1148
1149 #. type: Plain text
1150 #: build/C/man3/aio_error.3:91
1151 msgid ""
1152 "B<aio_cancel>(3), B<aio_fsync>(3), B<aio_read>(3), B<aio_return>(3), "
1153 "B<aio_suspend>(3), B<aio_write>(3), B<lio_listio>(3), B<aio>(7)"
1154 msgstr ""
1155
1156 #. type: TH
1157 #: build/C/man3/aio_fsync.3:23
1158 #, no-wrap
1159 msgid "AIO_FSYNC"
1160 msgstr ""
1161
1162 #. type: Plain text
1163 #: build/C/man3/aio_fsync.3:26
1164 msgid "aio_fsync - asynchronous file synchronization"
1165 msgstr ""
1166
1167 #. type: Plain text
1168 #: build/C/man3/aio_fsync.3:30
1169 msgid "B<int aio_fsync(int >I<op>B<, struct aiocb *>I<aiocbp>B<);>"
1170 msgstr ""
1171
1172 #. type: Plain text
1173 #: build/C/man3/aio_fsync.3:43
1174 msgid ""
1175 "The B<aio_fsync>()  function does a sync on all outstanding asynchronous I/O "
1176 "operations associated with I<aiocbp-E<gt>aio_fildes>.  (See B<aio>(7)  for a "
1177 "description of the I<aiocb> structure.)"
1178 msgstr ""
1179
1180 #. type: Plain text
1181 #: build/C/man3/aio_fsync.3:57
1182 msgid ""
1183 "More precisely, if I<op> is B<O_SYNC>, then all currently queued I/O "
1184 "operations shall be completed as if by a call of B<fsync>(2), and if I<op> "
1185 "is B<O_DSYNC>, this call is the asynchronous analog of B<fdatasync>(2)."
1186 msgstr ""
1187
1188 #. type: Plain text
1189 #: build/C/man3/aio_fsync.3:59
1190 msgid "Note that this is a request only; it does not wait for I/O completion."
1191 msgstr ""
1192
1193 #. type: Plain text
1194 #: build/C/man3/aio_fsync.3:72
1195 msgid ""
1196 "Apart from I<aio_fildes>, the only field in the structure pointed to by "
1197 "I<aiocbp> that is used by this call is the I<aio_sigevent> field (a "
1198 "I<sigevent> structure, described in B<sigevent>(7)), which indicates the "
1199 "desired type of asynchronous notification at completion.  All other fields "
1200 "are ignored."
1201 msgstr ""
1202
1203 #. type: Plain text
1204 #: build/C/man3/aio_fsync.3:78
1205 msgid ""
1206 "On success (the sync request was successfully queued)  this function returns "
1207 "0.  On error -1 is returned, and I<errno> is set appropriately."
1208 msgstr ""
1209
1210 #. type: TP
1211 #: build/C/man3/aio_fsync.3:79 build/C/man3/aio_read.3:103 build/C/man3/aio_suspend.3:88 build/C/man3/aio_write.3:110 build/C/man2/io_cancel.2:57 build/C/man2/io_setup.2:55 build/C/man2/io_submit.2:55 build/C/man3/lio_listio.3:149 build/C/man3/lio_listio.3:152
1212 #, no-wrap
1213 msgid "B<EAGAIN>"
1214 msgstr ""
1215
1216 #. type: Plain text
1217 #: build/C/man3/aio_fsync.3:82 build/C/man3/aio_read.3:106 build/C/man3/aio_write.3:113 build/C/man3/lio_listio.3:152
1218 msgid "Out of resources."
1219 msgstr ""
1220
1221 #. type: Plain text
1222 #: build/C/man3/aio_fsync.3:86 build/C/man3/aio_write.3:117
1223 msgid "I<aio_fildes> is not a valid file descriptor open for writing."
1224 msgstr ""
1225
1226 #. type: Plain text
1227 #: build/C/man3/aio_fsync.3:94
1228 msgid ""
1229 "Synchronized I/O is not supported for this file, or I<op> is not B<O_SYNC> "
1230 "or B<O_DSYNC>."
1231 msgstr ""
1232
1233 #. type: Plain text
1234 #: build/C/man3/aio_fsync.3:98
1235 msgid "The B<aio_fsync>()  function is available since glibc 2.1."
1236 msgstr ""
1237
1238 #. type: Plain text
1239 #: build/C/man3/aio_fsync.3:110
1240 msgid ""
1241 "B<aio_cancel>(3), B<aio_error>(3), B<aio_read>(3), B<aio_return>(3), "
1242 "B<aio_suspend>(3), B<aio_write>(3), B<lio_listio>(3), B<aio>(7), "
1243 "B<sigevent>(7)"
1244 msgstr ""
1245
1246 #. type: TH
1247 #: build/C/man3/aio_init.3:24
1248 #, no-wrap
1249 msgid "AIO_INIT"
1250 msgstr ""
1251
1252 #. type: TH
1253 #: build/C/man3/aio_init.3:24
1254 #, no-wrap
1255 msgid "2012-04-26"
1256 msgstr ""
1257
1258 #. type: Plain text
1259 #: build/C/man3/aio_init.3:27
1260 msgid "aio_init - asynchronous I/O initialization"
1261 msgstr ""
1262
1263 #. type: Plain text
1264 #: build/C/man3/aio_init.3:31
1265 #, no-wrap
1266 msgid ""
1267 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
1268 "B<#include E<lt>aio.hE<gt>>\n"
1269 msgstr ""
1270
1271 #. type: Plain text
1272 #: build/C/man3/aio_init.3:33
1273 #, no-wrap
1274 msgid "B<void aio_init(const struct aioinit *>I<init>B<);>\n"
1275 msgstr ""
1276
1277 #. type: Plain text
1278 #: build/C/man3/aio_init.3:43
1279 msgid ""
1280 "The GNU-specific B<aio_init>()  function allows the caller to provide tuning "
1281 "hints to the glibc POSIX AIO implementation.  Use of this function is "
1282 "optional, but to be effective, it must be called before employing any other "
1283 "functions in the POSIX AIO API."
1284 msgstr ""
1285
1286 #. type: Plain text
1287 #: build/C/man3/aio_init.3:47
1288 msgid ""
1289 "The tuning information is provided in the buffer pointed to by the argument "
1290 "I<init>.  This buffer is a structure of the following form:"
1291 msgstr ""
1292
1293 #. type: Plain text
1294 #: build/C/man3/aio_init.3:62
1295 #, no-wrap
1296 msgid ""
1297 "struct aioinit {\n"
1298 "    int aio_threads;    /* Maximum number of threads */\n"
1299 "    int aio_num;        /* Number of expected simultaneous\n"
1300 "                           requests */\n"
1301 "    int aio_locks;      /* Not used */\n"
1302 "    int aio_usedba;     /* Not used */\n"
1303 "    int aio_debug;      /* Not used */\n"
1304 "    int aio_numusers;   /* Not used */\n"
1305 "    int aio_idle_time;  /* Number of seconds before idle thread\n"
1306 "                           terminates (since glibc 2.2) */\n"
1307 "    int aio_reserved;\n"
1308 "};\n"
1309 msgstr ""
1310
1311 #. type: Plain text
1312 #: build/C/man3/aio_init.3:68
1313 msgid "The following fields are used in the I<aioinit> structure:"
1314 msgstr ""
1315
1316 #. type: TP
1317 #: build/C/man3/aio_init.3:68
1318 #, no-wrap
1319 msgid "I<aio_threads>"
1320 msgstr ""
1321
1322 #. type: Plain text
1323 #: build/C/man3/aio_init.3:76
1324 msgid ""
1325 "This field specifies the maximum number of worker threads that may be used "
1326 "by the implementation.  If the number of outstanding I/O operations exceeds "
1327 "this limit, then excess operations will be queued until a worker thread "
1328 "becomes free.  If this field is specified with a value less than 1, the "
1329 "value 1 is used.  The default value is 20."
1330 msgstr ""
1331
1332 #. type: TP
1333 #: build/C/man3/aio_init.3:76
1334 #, no-wrap
1335 msgid "I<aio_num>"
1336 msgstr ""
1337
1338 #.  FIXME But, if aio_num > 32, the behavior looks strange. See
1339 #.  http://sourceware.org/bugzilla/show_bug.cgi?id=12083
1340 #. type: Plain text
1341 #: build/C/man3/aio_init.3:85
1342 msgid ""
1343 "This field should specify the maximum number of simultaneous I/O requests "
1344 "that the caller expects to enqueue.  If a value less than 32 is specified "
1345 "for this field, it is rounded up to 32.  The default value is 64."
1346 msgstr ""
1347
1348 #. type: TP
1349 #: build/C/man3/aio_init.3:85
1350 #, no-wrap
1351 msgid "I<aio_idle_time>"
1352 msgstr ""
1353
1354 #. type: Plain text
1355 #: build/C/man3/aio_init.3:91
1356 msgid ""
1357 "This field specifies the amount of time in seconds that a worker thread "
1358 "should wait for further requests before terminating, after having completed "
1359 "a previous request.  The default value is 1."
1360 msgstr ""
1361
1362 #. type: Plain text
1363 #: build/C/man3/aio_init.3:95
1364 msgid "The B<aio_init>()  function is available since glibc 2.1."
1365 msgstr ""
1366
1367 #. type: Plain text
1368 #: build/C/man3/aio_init.3:97
1369 msgid "This function is a GNU extension."
1370 msgstr ""
1371
1372 #. type: Plain text
1373 #: build/C/man3/aio_init.3:99
1374 msgid "B<aio>(7)"
1375 msgstr ""
1376
1377 #. type: TH
1378 #: build/C/man3/aio_read.3:23
1379 #, no-wrap
1380 msgid "AIO_READ"
1381 msgstr ""
1382
1383 #. type: Plain text
1384 #: build/C/man3/aio_read.3:26
1385 msgid "aio_read - asynchronous read"
1386 msgstr ""
1387
1388 #. type: Plain text
1389 #: build/C/man3/aio_read.3:30
1390 msgid "B<int aio_read(struct aiocb *>I<aiocbp>B<);>"
1391 msgstr ""
1392
1393 #. type: Plain text
1394 #: build/C/man3/aio_read.3:40
1395 msgid ""
1396 "The B<aio_read>()  function queues the I/O request described by the buffer "
1397 "pointed to by I<aiocbp>.  This function is the asynchronous analog of "
1398 "B<read>(2).  The arguments of the call"
1399 msgstr ""
1400
1401 #. type: Plain text
1402 #: build/C/man3/aio_read.3:42
1403 #, no-wrap
1404 msgid "    read(fd, buf, count)\n"
1405 msgstr ""
1406
1407 #. type: Plain text
1408 #: build/C/man3/aio_read.3:55 build/C/man3/aio_write.3:55
1409 msgid ""
1410 "correspond (in order) to the fields I<aio_fildes>, I<aio_buf>, and "
1411 "I<aio_nbytes> of the structure pointed to by I<aiocbp>.  (See B<aio>(7)  for "
1412 "a description of the I<aiocb> structure.)"
1413 msgstr ""
1414
1415 #. type: Plain text
1416 #: build/C/man3/aio_read.3:61
1417 msgid ""
1418 "The data is read starting at the absolute file offset "
1419 "I<aiocbp-E<gt>aio_offset>, regardless of the current file offset.  After the "
1420 "call, the value of the current file offset is unspecified."
1421 msgstr ""
1422
1423 #. type: Plain text
1424 #: build/C/man3/aio_read.3:74
1425 msgid ""
1426 "The \"asynchronous\" means that this call returns as soon as the request has "
1427 "been enqueued; the read may or may not have completed when the call "
1428 "returns.  One tests for completion using B<aio_error>(3).  The return status "
1429 "of a completed I/O operation can be obtained by B<aio_return>(3).  "
1430 "Asynchronous notification of I/O completion can be obtained by setting "
1431 "I<aiocbp-E<gt>aio_sigevent> appropriately; see B<sigevent>(7)  for details."
1432 msgstr ""
1433
1434 #. type: Plain text
1435 #: build/C/man3/aio_read.3:81 build/C/man3/aio_write.3:88
1436 msgid ""
1437 "If B<_POSIX_PRIORITIZED_IO> is defined, and this file supports it, then the "
1438 "asynchronous operation is submitted at a priority equal to that of the "
1439 "calling process minus I<aiocbp-E<gt>aio_reqprio>."
1440 msgstr ""
1441
1442 #. type: Plain text
1443 #: build/C/man3/aio_read.3:85 build/C/man3/aio_write.3:92
1444 msgid "The field I<aiocbp-E<gt>aio_lio_opcode> is ignored."
1445 msgstr ""
1446
1447 #. type: Plain text
1448 #: build/C/man3/aio_read.3:87
1449 msgid "No data is read from a regular file beyond its maximum offset."
1450 msgstr ""
1451
1452 #. type: Plain text
1453 #: build/C/man3/aio_read.3:102 build/C/man3/aio_write.3:109
1454 msgid ""
1455 "On success, 0 is returned.  On error the request is not enqueued, -1 is "
1456 "returned, and I<errno> is set appropriately.  If an error is only detected "
1457 "later, it will be reported via B<aio_return>(3)  (returns status -1) and "
1458 "B<aio_error>(3)  (error status\\(emwhatever one would have gotten in "
1459 "I<errno>, such as B<EBADF>)."
1460 msgstr ""
1461
1462 #. type: Plain text
1463 #: build/C/man3/aio_read.3:110
1464 msgid "I<aio_fildes> is not a valid file descriptor open for reading."
1465 msgstr ""
1466
1467 #. type: Plain text
1468 #: build/C/man3/aio_read.3:118
1469 msgid "One or more of I<aio_offset>, I<aio_reqprio>, or I<aio_nbytes> are invalid."
1470 msgstr ""
1471
1472 #. type: TP
1473 #: build/C/man3/aio_read.3:118 build/C/man3/aio_write.3:128 build/C/man2/io_cancel.2:66 build/C/man2/io_destroy.2:60 build/C/man2/io_getevents.2:73 build/C/man2/io_setup.2:69 build/C/man2/io_submit.2:71
1474 #, no-wrap
1475 msgid "B<ENOSYS>"
1476 msgstr ""
1477
1478 #. type: Plain text
1479 #: build/C/man3/aio_read.3:121 build/C/man3/aio_write.3:131
1480 msgid "This function is not supported."
1481 msgstr ""
1482
1483 #. type: TP
1484 #: build/C/man3/aio_read.3:121
1485 #, no-wrap
1486 msgid "B<EOVERFLOW>"
1487 msgstr ""
1488
1489 #. type: Plain text
1490 #: build/C/man3/aio_read.3:126
1491 msgid ""
1492 "The file is a regular file, we start reading before end-of-file and want at "
1493 "least one byte, but the starting position is past the maximum offset for "
1494 "this file."
1495 msgstr ""
1496
1497 #. type: Plain text
1498 #: build/C/man3/aio_read.3:130
1499 msgid "The B<aio_read>()  function is available since glibc 2.1."
1500 msgstr ""
1501
1502 #.  or the control block of the operation
1503 #. type: Plain text
1504 #: build/C/man3/aio_read.3:140
1505 msgid ""
1506 "It is a good idea to zero out the control block before use.  The control "
1507 "block must not be changed while the read operation is in progress.  The "
1508 "buffer area being read into must not be accessed during the operation or "
1509 "undefined results may occur.  The memory areas involved must remain valid."
1510 msgstr ""
1511
1512 #. type: Plain text
1513 #: build/C/man3/aio_read.3:144 build/C/man3/aio_write.3:149 build/C/man3/lio_listio.3:218
1514 msgid ""
1515 "Simultaneous I/O operations specifying the same I<aiocb> structure produce "
1516 "undefined results."
1517 msgstr ""
1518
1519 #. type: Plain text
1520 #: build/C/man3/aio_read.3:156
1521 msgid ""
1522 "B<aio_cancel>(3), B<aio_error>(3), B<aio_fsync>(3), B<aio_return>(3), "
1523 "B<aio_suspend>(3), B<aio_write>(3), B<lio_listio>(3), B<aio>(7)"
1524 msgstr ""
1525
1526 #. type: TH
1527 #: build/C/man3/aio_return.3:23
1528 #, no-wrap
1529 msgid "AIO_RETURN"
1530 msgstr ""
1531
1532 #. type: Plain text
1533 #: build/C/man3/aio_return.3:26
1534 msgid "aio_return - get return status of asynchronous I/O operation"
1535 msgstr ""
1536
1537 #. type: Plain text
1538 #: build/C/man3/aio_return.3:30
1539 msgid "B<ssize_t aio_return(struct aiocb *>I<aiocbp>B<);>"
1540 msgstr ""
1541
1542 #. type: Plain text
1543 #: build/C/man3/aio_return.3:43
1544 msgid ""
1545 "The B<aio_return>()  function returns the final return status for the "
1546 "asynchronous I/O request with control block pointed to by I<aiocbp>.  (See "
1547 "B<aio>(7)  for a description of the I<aiocb> structure.)"
1548 msgstr ""
1549
1550 #. type: Plain text
1551 #: build/C/man3/aio_return.3:48
1552 msgid ""
1553 "This function should be called only once for any given request, after "
1554 "B<aio_error>(3)  returns something other than B<EINPROGRESS>."
1555 msgstr ""
1556
1557 #. type: Plain text
1558 #: build/C/man3/aio_return.3:57
1559 msgid ""
1560 "If the asynchronous I/O operation has completed, this function returns the "
1561 "value that would have been returned in case of a synchronous B<read>(2), "
1562 "B<write>(2), B<fsync>(2)  or B<fdatasync>(2), call."
1563 msgstr ""
1564
1565 #. type: Plain text
1566 #: build/C/man3/aio_return.3:62
1567 msgid ""
1568 "If the asynchronous I/O operation has not yet completed, the return value "
1569 "and effect of B<aio_return>()  are undefined."
1570 msgstr ""
1571
1572 #. type: Plain text
1573 #: build/C/man3/aio_return.3:68
1574 msgid ""
1575 "I<aiocbp> does not point at a control block for an asynchronous I/O request "
1576 "of which the return status has not been retrieved yet."
1577 msgstr ""
1578
1579 #. type: Plain text
1580 #: build/C/man3/aio_return.3:72
1581 msgid "The B<aio_return>()  function is available since glibc 2.1."
1582 msgstr ""
1583
1584 #. type: Plain text
1585 #: build/C/man3/aio_return.3:86
1586 msgid ""
1587 "B<aio_cancel>(3), B<aio_error>(3), B<aio_fsync>(3), B<aio_read>(3), "
1588 "B<aio_suspend>(3), B<aio_write>(3), B<lio_listio>(3), B<aio>(7)"
1589 msgstr ""
1590
1591 #. type: TH
1592 #: build/C/man3/aio_suspend.3:24
1593 #, no-wrap
1594 msgid "AIO_SUSPEND"
1595 msgstr ""
1596
1597 #. type: Plain text
1598 #: build/C/man3/aio_suspend.3:27
1599 msgid "aio_suspend - wait for asynchronous I/O operation or timeout"
1600 msgstr ""
1601
1602 #. type: Plain text
1603 #: build/C/man3/aio_suspend.3:31 build/C/man3/lio_listio.3:29
1604 #, no-wrap
1605 msgid "B<#include E<lt>aio.hE<gt>>\n"
1606 msgstr ""
1607
1608 #. type: Plain text
1609 #: build/C/man3/aio_suspend.3:33
1610 #, no-wrap
1611 msgid "B<int aio_suspend(const struct aiocb * const >I<aiocb_list>B<[],>\n"
1612 msgstr ""
1613
1614 #. type: Plain text
1615 #: build/C/man3/aio_suspend.3:35
1616 #, no-wrap
1617 msgid ""
1618 "B<                int >I<nitems>B<, const struct timespec "
1619 "*>I<timeout>B<);>\n"
1620 msgstr ""
1621
1622 #. type: Plain text
1623 #: build/C/man3/aio_suspend.3:37 build/C/man3/lio_listio.3:34
1624 #, no-wrap
1625 msgid "Link with I<-lrt>.\n"
1626 msgstr ""
1627
1628 #. type: Plain text
1629 #: build/C/man3/aio_suspend.3:42
1630 msgid ""
1631 "The B<aio_suspend>()  function suspends the calling thread until one of the "
1632 "following occurs:"
1633 msgstr ""
1634
1635 #. type: Plain text
1636 #: build/C/man3/aio_suspend.3:46
1637 msgid ""
1638 "One or more of the asynchronous I/O requests in the list I<aiocb_list> has "
1639 "completed."
1640 msgstr ""
1641
1642 #. type: Plain text
1643 #: build/C/man3/aio_suspend.3:48
1644 msgid "A signal is delivered."
1645 msgstr ""
1646
1647 #. type: Plain text
1648 #: build/C/man3/aio_suspend.3:55
1649 msgid ""
1650 "I<timeout> is not NULL and the specified time interval has passed.  (For "
1651 "details of the I<timespec> structure, see B<nanosleep>(2).)"
1652 msgstr ""
1653
1654 #. type: Plain text
1655 #: build/C/man3/aio_suspend.3:73
1656 msgid ""
1657 "The I<nitems> argument specifies the number of items in I<aiocb_list>.  Each "
1658 "item in the list pointed to by I<aiocb_list> must be either NULL (and then "
1659 "is ignored), or a pointer to a control block on which I/O was initiated "
1660 "using B<aio_read>(3), B<aio_write>(3), or B<lio_listio>(3).  (See B<aio>(7)  "
1661 "for a description of the I<aiocb> structure.)"
1662 msgstr ""
1663
1664 #. type: Plain text
1665 #: build/C/man3/aio_suspend.3:79
1666 msgid ""
1667 "If B<CLOCK_MONOTONIC> is supported, this clock is used to measure the "
1668 "timeout interval (see B<clock_gettime>(3))."
1669 msgstr ""
1670
1671 #. type: Plain text
1672 #: build/C/man3/aio_suspend.3:87
1673 msgid ""
1674 "If this function returns after completion of one of the I/O requests "
1675 "specified in I<aiocb_list>, 0 is returned.  Otherwise, -1 is returned, and "
1676 "I<errno> is set to indicate the error."
1677 msgstr ""
1678
1679 #. type: Plain text
1680 #: build/C/man3/aio_suspend.3:92
1681 msgid "The call timed out before any of the indicated operations had completed."
1682 msgstr ""
1683
1684 #. type: TP
1685 #: build/C/man3/aio_suspend.3:92 build/C/man2/io_getevents.2:69 build/C/man3/lio_listio.3:168
1686 #, no-wrap
1687 msgid "B<EINTR>"
1688 msgstr ""
1689
1690 #. type: Plain text
1691 #: build/C/man3/aio_suspend.3:98
1692 msgid ""
1693 "The call was ended by signal (possibly the completion signal of one of the "
1694 "operations we were waiting for); see B<signal>(7)."
1695 msgstr ""
1696
1697 #. type: Plain text
1698 #: build/C/man3/aio_suspend.3:102
1699 msgid "The B<aio_suspend>()  function is available since glibc 2.1."
1700 msgstr ""
1701
1702 #. type: Plain text
1703 #: build/C/man3/aio_suspend.3:108
1704 msgid ""
1705 "One can achieve polling by using a non-NULL I<timeout> that specifies a zero "
1706 "time interval."
1707 msgstr ""
1708
1709 #. type: Plain text
1710 #: build/C/man3/aio_suspend.3:114
1711 msgid ""
1712 "If one or more of the asynchronous I/O operations specified in I<aiocb_list> "
1713 "has already completed at the time of the call to B<aio_suspend>(), then the "
1714 "call returns immediately."
1715 msgstr ""
1716
1717 #. type: Plain text
1718 #: build/C/man3/aio_suspend.3:124
1719 msgid ""
1720 "To determine which I/O operations have completed after a successful return "
1721 "from B<aio_suspend>(), use B<aio_error>(3)  to scan the list of I<aiocb> "
1722 "structures pointed to by I<aiocb_list>."
1723 msgstr ""
1724
1725 #. type: Plain text
1726 #: build/C/man3/aio_suspend.3:134
1727 msgid ""
1728 "B<aio_cancel>(3), B<aio_error>(3), B<aio_fsync>(3), B<aio_read>(3), "
1729 "B<aio_return>(3), B<aio_write>(3), B<lio_listio>(3), B<aio>(7), B<time>(7)"
1730 msgstr ""
1731
1732 #. type: TH
1733 #: build/C/man3/aio_write.3:23
1734 #, no-wrap
1735 msgid "AIO_WRITE"
1736 msgstr ""
1737
1738 #. type: Plain text
1739 #: build/C/man3/aio_write.3:26
1740 msgid "aio_write - asynchronous write"
1741 msgstr ""
1742
1743 #. type: Plain text
1744 #: build/C/man3/aio_write.3:30
1745 msgid "B<int aio_write(struct aiocb *>I<aiocbp>B<);>"
1746 msgstr ""
1747
1748 #. type: Plain text
1749 #: build/C/man3/aio_write.3:40
1750 msgid ""
1751 "The B<aio_write>()  function queues the I/O request described by the buffer "
1752 "pointed to by I<aiocb>.  This function is the asynchronous analog of "
1753 "B<write>(2).  The arguments of the call"
1754 msgstr ""
1755
1756 #. type: Plain text
1757 #: build/C/man3/aio_write.3:42
1758 #, no-wrap
1759 msgid "    write(fd, buf, count)\n"
1760 msgstr ""
1761
1762 #. type: Plain text
1763 #: build/C/man3/aio_write.3:68
1764 msgid ""
1765 "If B<O_APPEND> is not set, the data is written starting at the absolute file "
1766 "offset I<aiocbp-E<gt>aio_offset>, regardless of the current file offset.  If "
1767 "B<O_APPEND> is set, data is written at the end of the file in the same order "
1768 "as B<aio_write>()  calls are made.  After the call, the value of the current "
1769 "file offset is unspecified."
1770 msgstr ""
1771
1772 #. type: Plain text
1773 #: build/C/man3/aio_write.3:81
1774 msgid ""
1775 "The \"asynchronous\" means that this call returns as soon as the request has "
1776 "been enqueued; the write may or may not have completed when the call "
1777 "returns.  One tests for completion using B<aio_error>(3).  The return status "
1778 "of a completed I/O operation can be obtained B<aio_return>(3).  Asynchronous "
1779 "notification of I/O completion can be obtained by setting "
1780 "I<aiocbp-E<gt>aio_sigevent> appropriately; see B<sigevent>(7)  for details."
1781 msgstr ""
1782
1783 #. type: Plain text
1784 #: build/C/man3/aio_write.3:94
1785 msgid "No data is written to a regular file beyond its maximum offset."
1786 msgstr ""
1787
1788 #. type: TP
1789 #: build/C/man3/aio_write.3:117
1790 #, no-wrap
1791 msgid "B<EFBIG>"
1792 msgstr ""
1793
1794 #. type: Plain text
1795 #: build/C/man3/aio_write.3:121
1796 msgid ""
1797 "The file is a regular file, we want to write at least one byte, but the "
1798 "starting position is at or beyond the maximum offset for this file."
1799 msgstr ""
1800
1801 #. type: Plain text
1802 #: build/C/man3/aio_write.3:128
1803 msgid "One or more of I<aio_offset>, I<aio_reqprio>, I<aio_nbytes> are invalid."
1804 msgstr ""
1805
1806 #. type: Plain text
1807 #: build/C/man3/aio_write.3:135
1808 msgid "The B<aio_write>()  function is available since glibc 2.1."
1809 msgstr ""
1810
1811 #.  or the control block of the operation
1812 #. type: Plain text
1813 #: build/C/man3/aio_write.3:145
1814 msgid ""
1815 "It is a good idea to zero out the control block before use.  The control "
1816 "block must not be changed while the write operation is in progress.  The "
1817 "buffer area being written out must not be accessed during the operation or "
1818 "undefined results may occur.  The memory areas involved must remain valid."
1819 msgstr ""
1820
1821 #. type: Plain text
1822 #: build/C/man3/aio_write.3:158
1823 msgid ""
1824 "B<aio_cancel>(3), B<aio_error>(3), B<aio_fsync>(3), B<aio_read>(3), "
1825 "B<aio_return>(3), B<aio_suspend>(3), B<lio_listio>(3), B<aio>(7)"
1826 msgstr ""
1827
1828 #. type: TH
1829 #: build/C/man2/io_cancel.2:23
1830 #, no-wrap
1831 msgid "IO_CANCEL"
1832 msgstr ""
1833
1834 #. type: TH
1835 #: build/C/man2/io_cancel.2:23 build/C/man2/io_destroy.2:23 build/C/man2/io_setup.2:23 build/C/man2/io_submit.2:23
1836 #, no-wrap
1837 msgid "2008-06-18"
1838 msgstr ""
1839
1840 #. type: Plain text
1841 #: build/C/man2/io_cancel.2:26
1842 msgid "io_cancel - cancel an outstanding asynchronous I/O operation"
1843 msgstr ""
1844
1845 #.  .ad l
1846 #.  .hy 0
1847 #.  #include <linux/aio.h>
1848 #. type: Plain text
1849 #: build/C/man2/io_cancel.2:33 build/C/man2/io_destroy.2:32 build/C/man2/io_setup.2:32 build/C/man2/io_submit.2:32
1850 #, no-wrap
1851 msgid "B<#include E<lt>libaio.hE<gt>>\n"
1852 msgstr ""
1853
1854 #.  .HP 16
1855 #.  .ad
1856 #.  .hy
1857 #. type: Plain text
1858 #: build/C/man2/io_cancel.2:39
1859 #, no-wrap
1860 msgid ""
1861 "B<int io_cancel(aio_context_t >I<ctx_id>B<, struct iocb *>I<iocb>B<,>\n"
1862 "B<              struct io_event *>I<result>B<);>\n"
1863 msgstr ""
1864
1865 #. type: Plain text
1866 #: build/C/man2/io_cancel.2:41 build/C/man2/io_destroy.2:39 build/C/man2/io_getevents.2:42 build/C/man2/io_setup.2:39 build/C/man2/io_submit.2:40
1867 #, no-wrap
1868 msgid "Link with I<-laio>.\n"
1869 msgstr ""
1870
1871 #. type: Plain text
1872 #: build/C/man2/io_cancel.2:51
1873 msgid ""
1874 "B<io_cancel>()  attempts to cancel an asynchronous I/O operation previously "
1875 "submitted with B<io_submit>(2).  I<ctx_id> is the AIO context ID of the "
1876 "operation to be canceled.  If the AIO context is found, the event will be "
1877 "canceled and then copied into the memory pointed to by I<result> without "
1878 "being placed into the completion queue."
1879 msgstr ""
1880
1881 #. type: Plain text
1882 #: build/C/man2/io_cancel.2:56
1883 msgid "On success, B<io_cancel>()  returns 0.  For the failure return, see NOTES."
1884 msgstr ""
1885
1886 #. type: Plain text
1887 #: build/C/man2/io_cancel.2:60
1888 msgid "The I<iocb> specified was not canceled."
1889 msgstr ""
1890
1891 #. type: TP
1892 #: build/C/man2/io_cancel.2:60 build/C/man2/io_destroy.2:54 build/C/man2/io_getevents.2:61 build/C/man2/io_setup.2:58 build/C/man2/io_submit.2:61
1893 #, no-wrap
1894 msgid "B<EFAULT>"
1895 msgstr ""
1896
1897 #. type: Plain text
1898 #: build/C/man2/io_cancel.2:63 build/C/man2/io_submit.2:64
1899 msgid "One of the data structures points to invalid data."
1900 msgstr ""
1901
1902 #. type: Plain text
1903 #: build/C/man2/io_cancel.2:66
1904 msgid "The AIO context specified by I<ctx_id> is invalid."
1905 msgstr ""
1906
1907 #. type: Plain text
1908 #: build/C/man2/io_cancel.2:70
1909 msgid "B<io_cancel>()  is not implemented on this architecture."
1910 msgstr ""
1911
1912 #. type: Plain text
1913 #: build/C/man2/io_cancel.2:73 build/C/man2/io_destroy.2:67 build/C/man2/io_getevents.2:80 build/C/man2/io_setup.2:76 build/C/man2/io_submit.2:78
1914 msgid "The asynchronous I/O system calls first appeared in Linux 2.5, August 2002."
1915 msgstr ""
1916
1917 #. type: Plain text
1918 #: build/C/man2/io_cancel.2:78
1919 msgid ""
1920 "B<io_cancel>()  is Linux-specific and should not be used in programs that "
1921 "are intended to be portable."
1922 msgstr ""
1923
1924 #. type: Plain text
1925 #: build/C/man2/io_cancel.2:80 build/C/man2/io_destroy.2:74 build/C/man2/io_getevents.2:87 build/C/man2/io_setup.2:83 build/C/man2/io_submit.2:85
1926 msgid "Glibc does not provide a wrapper function for this system call."
1927 msgstr ""
1928
1929 #. type: Plain text
1930 #: build/C/man2/io_cancel.2:94
1931 msgid ""
1932 "The wrapper provided in I<libaio> for B<io_cancel>()  does not follow the "
1933 "usual C library conventions for indicating error: on error it returns a "
1934 "negated error number (the negative of one of the values listed in ERRORS).  "
1935 "If the system call is invoked via B<syscall>(2), then the return value "
1936 "follows the usual conventions for indicating an error: -1, with I<errno> set "
1937 "to a (positive) value that indicates the error."
1938 msgstr ""
1939
1940 #.  .SH "NOTES"
1941 #
1942 #.  .PP
1943 #.  The asynchronous I/O system calls were written by Benjamin LaHaise.
1944 #
1945 #.  .SH AUTHOR
1946 #.  Kent Yoder.
1947 #. type: Plain text
1948 #: build/C/man2/io_cancel.2:107
1949 msgid ""
1950 "B<io_destroy>(2), B<io_getevents>(2), B<io_setup>(2), B<io_submit>(2), "
1951 "B<aio>(7)"
1952 msgstr ""
1953
1954 #. type: TH
1955 #: build/C/man2/io_destroy.2:23
1956 #, no-wrap
1957 msgid "IO_DESTROY"
1958 msgstr ""
1959
1960 #. type: Plain text
1961 #: build/C/man2/io_destroy.2:26
1962 msgid "io_destroy - destroy an asynchronous I/O context"
1963 msgstr ""
1964
1965 #.  .HP 17
1966 #.  .ad
1967 #.  .hy
1968 #. type: Plain text
1969 #: build/C/man2/io_destroy.2:37
1970 #, no-wrap
1971 msgid "B<int io_destroy(aio_context_t >I<ctx>B<);>\n"
1972 msgstr ""
1973
1974 #. type: Plain text
1975 #: build/C/man2/io_destroy.2:48
1976 msgid ""
1977 "B<io_destroy>()  removes the asynchronous I/O context from the list of I/O "
1978 "contexts and then destroys it.  B<io_destroy>()  can also cancel any "
1979 "outstanding asynchronous I/O actions on I<ctx> and block on completion."
1980 msgstr ""
1981
1982 #. type: Plain text
1983 #: build/C/man2/io_destroy.2:53
1984 msgid "On success, B<io_destroy>()  returns 0.  For the failure return, see NOTES."
1985 msgstr ""
1986
1987 #. type: Plain text
1988 #: build/C/man2/io_destroy.2:57
1989 msgid "The context pointed to is invalid."
1990 msgstr ""
1991
1992 #. type: Plain text
1993 #: build/C/man2/io_destroy.2:60
1994 msgid "The AIO context specified by I<ctx> is invalid."
1995 msgstr ""
1996
1997 #. type: Plain text
1998 #: build/C/man2/io_destroy.2:64
1999 msgid "B<io_destroy>()  is not implemented on this architecture."
2000 msgstr ""
2001
2002 #. type: Plain text
2003 #: build/C/man2/io_destroy.2:72
2004 msgid ""
2005 "B<io_destroy>()  is Linux-specific and should not be used in programs that "
2006 "are intended to be portable."
2007 msgstr ""
2008
2009 #. type: Plain text
2010 #: build/C/man2/io_destroy.2:88
2011 msgid ""
2012 "The wrapper provided in I<libaio> for B<io_destroy>()  does not follow the "
2013 "usual C library conventions for indicating error: on error it returns a "
2014 "negated error number (the negative of one of the values listed in ERRORS).  "
2015 "If the system call is invoked via B<syscall>(2), then the return value "
2016 "follows the usual conventions for indicating an error: -1, with I<errno> set "
2017 "to a (positive) value that indicates the error."
2018 msgstr ""
2019
2020 #.  .SH "NOTES"
2021 #
2022 #.  .PP
2023 #.  The asynchronous I/O system calls were written by Benjamin LaHaise.
2024 #
2025 #.  .SH AUTHOR
2026 #.  Kent Yoder.
2027 #. type: Plain text
2028 #: build/C/man2/io_destroy.2:101
2029 msgid ""
2030 "B<io_cancel>(2), B<io_getevents>(2), B<io_setup>(2), B<io_submit>(2), "
2031 "B<aio>(7)"
2032 msgstr ""
2033
2034 #. type: TH
2035 #: build/C/man2/io_getevents.2:23
2036 #, no-wrap
2037 msgid "IO_GETEVENTS"
2038 msgstr ""
2039
2040 #. type: TH
2041 #: build/C/man2/io_getevents.2:23
2042 #, no-wrap
2043 msgid "2008-07-04"
2044 msgstr ""
2045
2046 #. type: Plain text
2047 #: build/C/man2/io_getevents.2:26
2048 msgid "io_getevents - read asynchronous I/O events from the completion queue"
2049 msgstr ""
2050
2051 #.  .ad l
2052 #.  .hy 0
2053 #.  #include <linux/aio.h>
2054 #. type: Plain text
2055 #: build/C/man2/io_getevents.2:33
2056 #, no-wrap
2057 msgid ""
2058 "B<#include E<lt>linux/time.hE<gt>>\n"
2059 "B<#include E<lt>libaio.hE<gt>>\n"
2060 msgstr ""
2061
2062 #.  .HP 19
2063 #.  .ad
2064 #.  .hy
2065 #. type: Plain text
2066 #: build/C/man2/io_getevents.2:40
2067 #, no-wrap
2068 msgid ""
2069 "B<int io_getevents(aio_context_t >I<ctx_id>B<, long >I<min_nr>B<, long "
2070 ">I<nr>B<,>\n"
2071 "B<                 struct io_event *>I<events>B<, struct timespec "
2072 "*>I<timeout>B<);>\n"
2073 msgstr ""
2074
2075 #. type: Plain text
2076 #: build/C/man2/io_getevents.2:54
2077 msgid ""
2078 "B<io_getevents>()  attempts to read at least I<min_nr> events and up to "
2079 "I<nr> events from the completion queue of the AIO context specified by "
2080 "I<ctx_id>.  I<timeout> specifies the amount of time to wait for events, "
2081 "where a NULL timeout waits until at least I<min_nr> events have been seen.  "
2082 "Note that I<timeout> is relative and will be updated if not NULL and the "
2083 "operation blocks."
2084 msgstr ""
2085
2086 #. type: Plain text
2087 #: build/C/man2/io_getevents.2:60
2088 msgid ""
2089 "On success, B<io_getevents>()  returns the number of events read: 0 if no "
2090 "events are available, or less than I<min_nr> if the I<timeout> has elapsed.  "
2091 "For the failure return, see NOTES."
2092 msgstr ""
2093
2094 #. type: Plain text
2095 #: build/C/man2/io_getevents.2:64
2096 msgid "Either I<events> or I<timeout> is an invalid pointer."
2097 msgstr ""
2098
2099 #. type: Plain text
2100 #: build/C/man2/io_getevents.2:69
2101 msgid "I<ctx_id> is invalid.  I<min_nr> is out of range or I<nr> is out of range."
2102 msgstr ""
2103
2104 #. type: Plain text
2105 #: build/C/man2/io_getevents.2:73
2106 msgid "Interrupted by a signal handler; see B<signal>(7)."
2107 msgstr ""
2108
2109 #. type: Plain text
2110 #: build/C/man2/io_getevents.2:77
2111 msgid "B<io_getevents>()  is not implemented on this architecture."
2112 msgstr ""
2113
2114 #. type: Plain text
2115 #: build/C/man2/io_getevents.2:85
2116 msgid ""
2117 "B<io_getevents>()  is Linux-specific and should not be used in programs that "
2118 "are intended to be portable."
2119 msgstr ""
2120
2121 #. type: Plain text
2122 #: build/C/man2/io_getevents.2:101
2123 msgid ""
2124 "The wrapper provided in I<libaio> for B<io_getevents>()  does not follow the "
2125 "usual C library conventions for indicating error: on error it returns a "
2126 "negated error number (the negative of one of the values listed in ERRORS).  "
2127 "If the system call is invoked via B<syscall>(2), then the return value "
2128 "follows the usual conventions for indicating an error: -1, with I<errno> set "
2129 "to a (positive) value that indicates the error."
2130 msgstr ""
2131
2132 #.  .SH "NOTES"
2133 #
2134 #.  .PP
2135 #.  The asynchronous I/O system calls were written by Benjamin LaHaise.
2136 #
2137 #.  .SH AUTHOR
2138 #.  Kent Yoder.
2139 #. type: Plain text
2140 #: build/C/man2/io_getevents.2:116
2141 msgid ""
2142 "B<io_cancel>(2), B<io_destroy>(2), B<io_setup>(2), B<io_submit>(2), "
2143 "B<aio>(7), B<time>(7)"
2144 msgstr ""
2145
2146 #. type: TH
2147 #: build/C/man2/io_setup.2:23
2148 #, no-wrap
2149 msgid "IO_SETUP"
2150 msgstr ""
2151
2152 #. type: Plain text
2153 #: build/C/man2/io_setup.2:26
2154 msgid "io_setup - create an asynchronous I/O context"
2155 msgstr ""
2156
2157 #.  .HP 15
2158 #.  .ad
2159 #.  .hy
2160 #. type: Plain text
2161 #: build/C/man2/io_setup.2:37
2162 #, no-wrap
2163 msgid "B<int io_setup(unsigned >I<nr_events>B<, aio_context_t *>I<ctxp>B<);>\n"
2164 msgstr ""
2165
2166 #. type: Plain text
2167 #: build/C/man2/io_setup.2:49
2168 msgid ""
2169 "B<io_setup>()  creates an asynchronous I/O context capable of receiving at "
2170 "least I<nr_events>.  I<ctxp> must not point to an AIO context that already "
2171 "exists, and must be initialized to 0 prior to the call.  On successful "
2172 "creation of the AIO context, I<*ctxp> is filled in with the resulting "
2173 "handle."
2174 msgstr ""
2175
2176 #. type: Plain text
2177 #: build/C/man2/io_setup.2:54
2178 msgid "On success, B<io_setup>()  returns 0.  For the failure return, see NOTES."
2179 msgstr ""
2180
2181 #. type: Plain text
2182 #: build/C/man2/io_setup.2:58
2183 msgid "The specified I<nr_events> exceeds the user's limit of available events."
2184 msgstr ""
2185
2186 #. type: Plain text
2187 #: build/C/man2/io_setup.2:61
2188 msgid "An invalid pointer is passed for I<ctxp>."
2189 msgstr ""
2190
2191 #. type: Plain text
2192 #: build/C/man2/io_setup.2:66
2193 msgid ""
2194 "I<ctxp> is not initialized, or the specified I<nr_events> exceeds internal "
2195 "limits.  I<nr_events> should be greater than 0."
2196 msgstr ""
2197
2198 #. type: TP
2199 #: build/C/man2/io_setup.2:66
2200 #, no-wrap
2201 msgid "B<ENOMEM>"
2202 msgstr ""
2203
2204 #. type: Plain text
2205 #: build/C/man2/io_setup.2:69
2206 msgid "Insufficient kernel resources are available."
2207 msgstr ""
2208
2209 #. type: Plain text
2210 #: build/C/man2/io_setup.2:73
2211 msgid "B<io_setup>()  is not implemented on this architecture."
2212 msgstr ""
2213
2214 #. type: Plain text
2215 #: build/C/man2/io_setup.2:81
2216 msgid ""
2217 "B<io_setup>()  is Linux-specific and should not be used in programs that are "
2218 "intended to be portable."
2219 msgstr ""
2220
2221 #. type: Plain text
2222 #: build/C/man2/io_setup.2:97
2223 msgid ""
2224 "The wrapper provided in I<libaio> for B<io_setup>()  does not follow the "
2225 "usual C library conventions for indicating error: on error it returns a "
2226 "negated error number (the negative of one of the values listed in ERRORS).  "
2227 "If the system call is invoked via B<syscall>(2), then the return value "
2228 "follows the usual conventions for indicating an error: -1, with I<errno> set "
2229 "to a (positive) value that indicates the error."
2230 msgstr ""
2231
2232 #.  .SH "NOTES"
2233 #.  .PP
2234 #.  The asynchronous I/O system calls were written by Benjamin LaHaise.
2235 #.  .SH AUTHOR
2236 #.  Kent Yoder.
2237 #. type: Plain text
2238 #: build/C/man2/io_setup.2:108
2239 msgid ""
2240 "B<io_cancel>(2), B<io_destroy>(2), B<io_getevents>(2), B<io_submit>(2), "
2241 "B<aio>(7)"
2242 msgstr ""
2243
2244 #. type: TH
2245 #: build/C/man2/io_submit.2:23
2246 #, no-wrap
2247 msgid "IO_SUBMIT"
2248 msgstr ""
2249
2250 #. type: Plain text
2251 #: build/C/man2/io_submit.2:26
2252 msgid "io_submit - submit asynchronous I/O blocks for processing"
2253 msgstr ""
2254
2255 #.  .HP 16
2256 #.  .ad
2257 #.  .hy
2258 #. type: Plain text
2259 #: build/C/man2/io_submit.2:38
2260 #, no-wrap
2261 msgid ""
2262 "B<int io_submit(aio_context_t >I<ctx_id>B<, long >I<nr>B<, struct iocb "
2263 "**>I<iocbpp>B<);>\n"
2264 msgstr ""
2265
2266 #. type: Plain text
2267 #: build/C/man2/io_submit.2:48
2268 msgid ""
2269 "B<io_submit>()  queues I<nr> I/O request blocks for processing in the AIO "
2270 "context I<ctx_id>.  I<iocbpp> should be an array of I<nr> AIO control "
2271 "blocks, which will be submitted to context I<ctx_id>."
2272 msgstr ""
2273
2274 #. type: Plain text
2275 #: build/C/man2/io_submit.2:54
2276 msgid ""
2277 "On success, B<io_submit>()  returns the number of I<iocb>s submitted (which "
2278 "may be 0 if I<nr> is zero).  For the failure return, see NOTES."
2279 msgstr ""
2280
2281 #. type: Plain text
2282 #: build/C/man2/io_submit.2:58
2283 msgid "Insufficient resources are available to queue any I<iocb>s."
2284 msgstr ""
2285
2286 #. type: Plain text
2287 #: build/C/man2/io_submit.2:61
2288 msgid "The file descriptor specified in the first I<iocb> is invalid."
2289 msgstr ""
2290
2291 #. type: Plain text
2292 #: build/C/man2/io_submit.2:71
2293 msgid ""
2294 "The I<aio_context> specified by I<ctx_id> is invalid.  I<nr> is less than "
2295 "0.  The I<iocb> at *iocbpp[0] is not properly initialized, or the operation "
2296 "specified is invalid for the file descriptor in the I<iocb>."
2297 msgstr ""
2298
2299 #. type: Plain text
2300 #: build/C/man2/io_submit.2:75
2301 msgid "B<io_submit>()  is not implemented on this architecture."
2302 msgstr ""
2303
2304 #. type: Plain text
2305 #: build/C/man2/io_submit.2:83
2306 msgid ""
2307 "B<io_submit>()  is Linux-specific and should not be used in programs that "
2308 "are intended to be portable."
2309 msgstr ""
2310
2311 #. type: Plain text
2312 #: build/C/man2/io_submit.2:99
2313 msgid ""
2314 "The wrapper provided in I<libaio> for B<io_submit>()  does not follow the "
2315 "usual C library conventions for indicating error: on error it returns a "
2316 "negated error number (the negative of one of the values listed in ERRORS).  "
2317 "If the system call is invoked via B<syscall>(2), then the return value "
2318 "follows the usual conventions for indicating an error: -1, with I<errno> set "
2319 "to a (positive) value that indicates the error."
2320 msgstr ""
2321
2322 #.  .SH "NOTES"
2323 #.  .PP
2324 #.  The asynchronous I/O system calls were written by Benjamin LaHaise.
2325 #.  .SH AUTHOR
2326 #.  Kent Yoder.
2327 #. type: Plain text
2328 #: build/C/man2/io_submit.2:110
2329 msgid ""
2330 "B<io_cancel>(2), B<io_destroy>(2), B<io_getevents>(2), B<io_setup>(2), "
2331 "B<aio>(7)"
2332 msgstr ""
2333
2334 #. type: TH
2335 #: build/C/man3/lio_listio.3:23
2336 #, no-wrap
2337 msgid "LIO_LISTIO"
2338 msgstr ""
2339
2340 #. type: TH
2341 #: build/C/man3/lio_listio.3:23
2342 #, no-wrap
2343 msgid "2010-10-20"
2344 msgstr ""
2345
2346 #. type: Plain text
2347 #: build/C/man3/lio_listio.3:26
2348 msgid "lio_listio - initiate a list of I/O requests"
2349 msgstr ""
2350
2351 #. type: Plain text
2352 #: build/C/man3/lio_listio.3:32
2353 #, no-wrap
2354 msgid ""
2355 "B<int lio_listio(int >I<mode>B<, struct aiocb *const >I<aiocb_list>B<[],>\n"
2356 "B<               int >I<nitems>B<, struct sigevent *>I<sevp>B<);>\n"
2357 msgstr ""
2358
2359 #. type: Plain text
2360 #: build/C/man3/lio_listio.3:40
2361 msgid ""
2362 "The B<lio_listio>()  function initiates the list of I/O operations described "
2363 "by the array I<aiocb_list>."
2364 msgstr ""
2365
2366 #. type: Plain text
2367 #: build/C/man3/lio_listio.3:44
2368 msgid "The I<mode> operation has one of the following values:"
2369 msgstr ""
2370
2371 #. type: TP
2372 #: build/C/man3/lio_listio.3:44
2373 #, no-wrap
2374 msgid "B<LIO_WAIT>"
2375 msgstr ""
2376
2377 #. type: Plain text
2378 #: build/C/man3/lio_listio.3:50
2379 msgid ""
2380 "The call blocks until all operations are complete.  The I<sevp> argument is "
2381 "ignored."
2382 msgstr ""
2383
2384 #. type: TP
2385 #: build/C/man3/lio_listio.3:50
2386 #, no-wrap
2387 msgid "B<LIO_NOWAIT>"
2388 msgstr ""
2389
2390 #. type: Plain text
2391 #: build/C/man3/lio_listio.3:62
2392 msgid ""
2393 "The I/O operations are queued for processing and the call returns "
2394 "immediately.  When the I/O operations complete, asynchronous notification "
2395 "occurs, as specified by the I<sevp> argument; see B<sigevent>(7)  for "
2396 "details.  If I<sevp> is NULL, no asynchronous notification occurs."
2397 msgstr ""
2398
2399 #. type: Plain text
2400 #: build/C/man3/lio_listio.3:76
2401 msgid ""
2402 "The I<aiocb_list> argument is an array of pointers to I<aiocb> structures "
2403 "that describe I/O operations.  These operations are executed in an "
2404 "unspecified order.  The I<nitems> argument specifies the size of the array "
2405 "I<aiocb_list>.  NULL pointers in I<aiocb_list> are ignored."
2406 msgstr ""
2407
2408 #. type: Plain text
2409 #: build/C/man3/lio_listio.3:82
2410 msgid ""
2411 "In each control block in I<aiocb_list>, the I<aio_lio_opcode> field "
2412 "specifies the I/O operation to be initiated, as follows:"
2413 msgstr ""
2414
2415 #. type: TP
2416 #: build/C/man3/lio_listio.3:82
2417 #, no-wrap
2418 msgid "B<LIO_READ>"
2419 msgstr ""
2420
2421 #. type: Plain text
2422 #: build/C/man3/lio_listio.3:88
2423 msgid ""
2424 "Initiate a read operation.  The operation is queued as for a call to "
2425 "B<aio_read>(3)  specifying this control block."
2426 msgstr ""
2427
2428 #. type: TP
2429 #: build/C/man3/lio_listio.3:88
2430 #, no-wrap
2431 msgid "B<LIO_WRITE>"
2432 msgstr ""
2433
2434 #. type: Plain text
2435 #: build/C/man3/lio_listio.3:94
2436 msgid ""
2437 "Initiate a write operation.  The operation is queued as for a call to "
2438 "B<aio_write>(3)  specifying this control block."
2439 msgstr ""
2440
2441 #. type: TP
2442 #: build/C/man3/lio_listio.3:94
2443 #, no-wrap
2444 msgid "B<LIO_NOP>"
2445 msgstr ""
2446
2447 #. type: Plain text
2448 #: build/C/man3/lio_listio.3:97
2449 msgid "Ignore this control block."
2450 msgstr ""
2451
2452 #. type: Plain text
2453 #: build/C/man3/lio_listio.3:107
2454 msgid ""
2455 "The remaining fields in each control block have the same meanings as for "
2456 "B<aio_read>(3)  and B<aio_write>(3).  The I<aio_sigevent> fields of each "
2457 "control block can be used to specify notifications for the individual I/O "
2458 "operations (see B<sigevent>(7))."
2459 msgstr ""
2460
2461 #. type: Plain text
2462 #: build/C/man3/lio_listio.3:117
2463 msgid ""
2464 "If I<mode> is B<LIO_NOWAIT>, B<lio_listio>()  returns 0 if all I/O "
2465 "operations are successfully queued.  Otherwise, -1 is returned, and I<errno> "
2466 "is set to indicate the error."
2467 msgstr ""
2468
2469 #. type: Plain text
2470 #: build/C/man3/lio_listio.3:127
2471 msgid ""
2472 "If I<mode> is B<LIO_WAIT>, B<lio_listio>()  returns 0 when all of the I/O "
2473 "operations have completed successfully.  Otherwise, -1 is returned, and "
2474 "I<errno> is set to indicate the error."
2475 msgstr ""
2476
2477 #. type: Plain text
2478 #: build/C/man3/lio_listio.3:145
2479 msgid ""
2480 "The return status from B<lio_listio>()  provides information only about the "
2481 "call itself, not about the individual I/O operations.  One or more of the "
2482 "I/O operations may fail, but this does not prevent other operations "
2483 "completing.  The status of individual I/O operations in I<aiocb_list> can be "
2484 "determined using B<aio_error>(3).  When an operation has completed, its "
2485 "return status can be obtained using B<aio_return>(3).  Individual I/O "
2486 "operations can fail for the reasons described in B<aio_read>(3)  and "
2487 "B<aio_write>(3)."
2488 msgstr ""
2489
2490 #. type: Plain text
2491 #: build/C/man3/lio_listio.3:149
2492 msgid "The B<lio_listio>()  function may fail for the following reasons:"
2493 msgstr ""
2494
2495 #.  Doesn't happen in glibc(?)
2496 #. type: Plain text
2497 #: build/C/man3/lio_listio.3:160
2498 msgid ""
2499 "The number of I/O operations specified by I<nitems> would cause the limit "
2500 "B<AIO_MAX> to be exceeded."
2501 msgstr ""
2502
2503 #.  Doesn't happen in glibc(?)
2504 #. type: Plain text
2505 #: build/C/man3/lio_listio.3:168
2506 msgid "I<mode> is invalid, or I<nitems> exceeds the limit B<AIO_LISTIO_MAX>."
2507 msgstr ""
2508
2509 #. type: Plain text
2510 #: build/C/man3/lio_listio.3:177
2511 msgid ""
2512 "I<mode> was B<LIO_WAIT> and a signal was caught before all I/O operations "
2513 "completed.  (This may even be one of the signals used for asynchronous I/O "
2514 "completion notification.)"
2515 msgstr ""
2516
2517 #. type: TP
2518 #: build/C/man3/lio_listio.3:177
2519 #, no-wrap
2520 msgid "B<EIO>"
2521 msgstr ""
2522
2523 #.  e.g., ioa_reqprio or aio_lio_opcode was invalid
2524 #. type: Plain text
2525 #: build/C/man3/lio_listio.3:185
2526 msgid ""
2527 "One of more of the operations specified by I<aiocb_list> failed.  The "
2528 "application can check the status of each operation using B<aio_return>(3)."
2529 msgstr ""
2530
2531 #. type: Plain text
2532 #: build/C/man3/lio_listio.3:200
2533 msgid ""
2534 "If B<lio_listio>()  fails with the error B<EAGAIN>, B<EINTR>, or B<EIO>, "
2535 "then some of the operations in I<aiocb_list> may have been initiated.  If "
2536 "B<lio_listio>()  fails for any other reason, then none of the I/O operations "
2537 "has been initiated."
2538 msgstr ""
2539
2540 #. type: Plain text
2541 #: build/C/man3/lio_listio.3:204
2542 msgid "The B<lio_listio>()  function is available since glibc 2.1."
2543 msgstr ""
2544
2545 #.  or the control block of the operation
2546 #. type: Plain text
2547 #: build/C/man3/lio_listio.3:214
2548 msgid ""
2549 "It is a good idea to zero out the control blocks before use.  The control "
2550 "blocks must not be changed while the I/O operations are in progress.  The "
2551 "buffer areas being read into or written from must not be accessed during the "
2552 "operations or undefined results may occur.  The memory areas involved must "
2553 "remain valid."
2554 msgstr ""
2555
2556 #. type: Plain text
2557 #: build/C/man3/lio_listio.3:226
2558 msgid ""
2559 "B<aio_cancel>(3), B<aio_error>(3), B<aio_fsync>(3), B<aio_return>(3), "
2560 "B<aio_suspend>(3), B<aio_write>(3), B<aio>(7)"
2561 msgstr ""