OSDN Git Service

LDP: Update POT and ja.po to LDP v3.75
[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: 2015-01-01 22:50+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=UTF-8\n"
17 "Content-Transfer-Encoding: 8bit\n"
18
19 #. type: TH
20 #: build/C/man7/aio.7:26
21 #, no-wrap
22 msgid "AIO"
23 msgstr ""
24
25 #. type: TH
26 #: build/C/man7/aio.7:26
27 #, no-wrap
28 msgid "2014-04-06"
29 msgstr ""
30
31 #. type: TH
32 #: build/C/man7/aio.7:26 build/C/man3/aio_init.3:26 build/C/man2/io_cancel.2:7 build/C/man2/io_destroy.2:7 build/C/man2/io_getevents.2:7 build/C/man2/io_setup.2:7 build/C/man2/io_submit.2:7
33 #, no-wrap
34 msgid "Linux"
35 msgstr ""
36
37 #. type: TH
38 #: build/C/man7/aio.7:26 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:26 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:7 build/C/man2/io_destroy.2:7 build/C/man2/io_getevents.2:7 build/C/man2/io_setup.2:7 build/C/man2/io_submit.2:7 build/C/man3/lio_listio.3:24
39 #, no-wrap
40 msgid "Linux Programmer's Manual"
41 msgstr ""
42
43 #. type: SH
44 #: build/C/man7/aio.7:27 build/C/man3/aio_cancel.3:25 build/C/man3/aio_error.3:25 build/C/man3/aio_fsync.3:25 build/C/man3/aio_init.3:27 build/C/man3/aio_read.3:25 build/C/man3/aio_return.3:25 build/C/man3/aio_suspend.3:26 build/C/man3/aio_write.3:25 build/C/man2/io_cancel.2:8 build/C/man2/io_destroy.2:8 build/C/man2/io_getevents.2:8 build/C/man2/io_setup.2:8 build/C/man2/io_submit.2:8 build/C/man3/lio_listio.3:25
45 #, no-wrap
46 msgid "NAME"
47 msgstr ""
48
49 #. type: Plain text
50 #: build/C/man7/aio.7:29
51 msgid "aio - POSIX asynchronous I/O overview"
52 msgstr ""
53
54 #. type: SH
55 #: build/C/man7/aio.7:29 build/C/man3/aio_cancel.3:33 build/C/man3/aio_error.3:33 build/C/man3/aio_fsync.3:33 build/C/man3/aio_init.3:38 build/C/man3/aio_read.3:33 build/C/man3/aio_return.3:33 build/C/man3/aio_suspend.3:39 build/C/man3/aio_write.3:33 build/C/man2/io_cancel.2:20 build/C/man2/io_destroy.2:19 build/C/man2/io_getevents.2:22 build/C/man2/io_setup.2:19 build/C/man2/io_submit.2:20 build/C/man3/lio_listio.3:36
56 #, no-wrap
57 msgid "DESCRIPTION"
58 msgstr ""
59
60 #. type: Plain text
61 #: build/C/man7/aio.7:37
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:39
72 msgid "The POSIX AIO interface consists of the following functions:"
73 msgstr ""
74
75 #. type: TP
76 #: build/C/man7/aio.7:39
77 #, no-wrap
78 msgid "B<aio_read>(3)"
79 msgstr ""
80
81 #. type: Plain text
82 #: build/C/man7/aio.7:44
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:44
88 #, no-wrap
89 msgid "B<aio_write>(3)"
90 msgstr ""
91
92 #. type: Plain text
93 #: build/C/man7/aio.7:49
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:49
99 #, no-wrap
100 msgid "B<aio_fsync>(3)"
101 msgstr ""
102
103 #. type: Plain text
104 #: build/C/man7/aio.7:56
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:56
112 #, no-wrap
113 msgid "B<aio_error>(3)"
114 msgstr ""
115
116 #. type: Plain text
117 #: build/C/man7/aio.7:59
118 msgid "Obtain the error status of an enqueued I/O request."
119 msgstr ""
120
121 #. type: TP
122 #: build/C/man7/aio.7:59
123 #, no-wrap
124 msgid "B<aio_return>(3)"
125 msgstr ""
126
127 #. type: Plain text
128 #: build/C/man7/aio.7:62
129 msgid "Obtain the return status of a completed I/O request."
130 msgstr ""
131
132 #. type: TP
133 #: build/C/man7/aio.7:62
134 #, no-wrap
135 msgid "B<aio_suspend>(3)"
136 msgstr ""
137
138 #. type: Plain text
139 #: build/C/man7/aio.7:66
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:66
147 #, no-wrap
148 msgid "B<aio_cancel>(3)"
149 msgstr ""
150
151 #. type: Plain text
152 #: build/C/man7/aio.7:70
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:70
158 #, no-wrap
159 msgid "B<lio_listio>(3)"
160 msgstr ""
161
162 #. type: Plain text
163 #: build/C/man7/aio.7:73
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:80
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:84
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:87
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:96
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:99
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:101
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:103
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:107
226 msgid "The fields of this structure are as follows:"
227 msgstr ""
228
229 #. type: TP
230 #: build/C/man7/aio.7:107
231 #, no-wrap
232 msgid "I<aio_filedes>"
233 msgstr ""
234
235 #. type: Plain text
236 #: build/C/man7/aio.7:110
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:110
242 #, no-wrap
243 msgid "I<aio_offset>"
244 msgstr ""
245
246 #. type: Plain text
247 #: build/C/man7/aio.7:113
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:113
253 #, no-wrap
254 msgid "I<aio_buf>"
255 msgstr ""
256
257 #. type: Plain text
258 #: build/C/man7/aio.7:116
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:116
264 #, no-wrap
265 msgid "I<aio_nbytes>"
266 msgstr ""
267
268 #. type: Plain text
269 #: build/C/man7/aio.7:120
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:120
275 #, no-wrap
276 msgid "I<aio_reqprio>"
277 msgstr ""
278
279 #. type: Plain text
280 #: build/C/man7/aio.7:129
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:129
291 #, no-wrap
292 msgid "I<aio_sigevent>"
293 msgstr ""
294
295 #. type: Plain text
296 #: build/C/man7/aio.7:143
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:143
306 #, no-wrap
307 msgid "I<aio_lio_opcode>"
308 msgstr ""
309
310 #. type: Plain text
311 #: build/C/man7/aio.7:147
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:150
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:150
324 #, no-wrap
325 msgid "B<aio_init>(3)"
326 msgstr ""
327
328 #. type: Plain text
329 #: build/C/man7/aio.7:153
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:153 build/C/man3/aio_cancel.3:101 build/C/man3/aio_error.3:66 build/C/man3/aio_fsync.3:79 build/C/man3/aio_read.3:103 build/C/man3/aio_return.3:63 build/C/man3/aio_suspend.3:88 build/C/man3/aio_write.3:110 build/C/man2/io_cancel.2:42 build/C/man2/io_destroy.2:34 build/C/man2/io_getevents.2:40 build/C/man2/io_setup.2:37 build/C/man2/io_submit.2:37 build/C/man3/lio_listio.3:146
337 #, no-wrap
338 msgid "ERRORS"
339 msgstr ""
340
341 #. type: TP
342 #: build/C/man7/aio.7:154 build/C/man3/aio_error.3:67 build/C/man3/aio_fsync.3:87 build/C/man3/aio_read.3:111 build/C/man3/aio_return.3:64 build/C/man3/aio_write.3:122 build/C/man2/io_cancel.2:49 build/C/man2/io_destroy.2:38 build/C/man2/io_getevents.2:44 build/C/man2/io_setup.2:46 build/C/man2/io_submit.2:47 build/C/man3/lio_listio.3:161
343 #, no-wrap
344 msgid "B<EINVAL>"
345 msgstr ""
346
347 #. type: Plain text
348 #: build/C/man7/aio.7:163
349 msgid ""
350 "The I<aio_reqprio> field of the I<aiocb> structure was less than 0, or was "
351 "greater than the limit returned by the call "
352 "I<sysconf(_SC_AIO_PRIO_DELTA_MAX)>."
353 msgstr ""
354
355 #. type: SH
356 #: build/C/man7/aio.7:163 build/C/man3/aio_cancel.3:110 build/C/man3/aio_error.3:78 build/C/man3/aio_fsync.3:99 build/C/man3/aio_init.3:93 build/C/man3/aio_read.3:128 build/C/man3/aio_return.3:73 build/C/man3/aio_suspend.3:103 build/C/man3/aio_write.3:133 build/C/man2/io_cancel.2:56 build/C/man2/io_destroy.2:45 build/C/man2/io_getevents.2:57 build/C/man2/io_setup.2:58 build/C/man2/io_submit.2:60 build/C/man3/lio_listio.3:201
357 #, no-wrap
358 msgid "VERSIONS"
359 msgstr ""
360
361 #. type: Plain text
362 #: build/C/man7/aio.7:165
363 msgid "The POSIX AIO interfaces are provided by glibc since version 2.1."
364 msgstr ""
365
366 #. type: SH
367 #: build/C/man7/aio.7:165 build/C/man3/aio_cancel.3:114 build/C/man3/aio_error.3:87 build/C/man3/aio_fsync.3:103 build/C/man3/aio_init.3:97 build/C/man3/aio_read.3:132 build/C/man3/aio_return.3:82 build/C/man3/aio_suspend.3:107 build/C/man3/aio_write.3:137 build/C/man2/io_cancel.2:59 build/C/man2/io_destroy.2:48 build/C/man2/io_getevents.2:60 build/C/man2/io_setup.2:61 build/C/man2/io_submit.2:63 build/C/man3/lio_listio.3:205
368 #, no-wrap
369 msgid "CONFORMING TO"
370 msgstr ""
371
372 #. type: Plain text
373 #: build/C/man7/aio.7:167 build/C/man3/aio_cancel.3:116 build/C/man3/aio_error.3:89 build/C/man3/aio_fsync.3:105 build/C/man3/aio_read.3:134 build/C/man3/aio_return.3:84 build/C/man3/aio_suspend.3:109 build/C/man3/aio_write.3:139 build/C/man3/lio_listio.3:207
374 msgid "POSIX.1-2001, POSIX.1-2008."
375 msgstr ""
376
377 #. type: SH
378 #: build/C/man7/aio.7:167 build/C/man3/aio_read.3:134 build/C/man3/aio_suspend.3:109 build/C/man3/aio_write.3:139 build/C/man2/io_cancel.2:64 build/C/man2/io_destroy.2:53 build/C/man2/io_getevents.2:65 build/C/man2/io_setup.2:66 build/C/man2/io_submit.2:68 build/C/man3/lio_listio.3:207
379 #, no-wrap
380 msgid "NOTES"
381 msgstr ""
382
383 #. type: Plain text
384 #: build/C/man7/aio.7:174
385 msgid ""
386 "It is a good idea to zero out the control block buffer before use (see "
387 "B<memset>(3)).  The control block buffer and the buffer pointed to by "
388 "I<aio_buf> must not be changed while the I/O operation is in progress.  "
389 "These buffers must remain valid until the I/O operation completes."
390 msgstr ""
391
392 #. type: Plain text
393 #: build/C/man7/aio.7:178
394 msgid ""
395 "Simultaneous asynchronous read or write operations using the same I<aiocb> "
396 "structure yield undefined results."
397 msgstr ""
398
399 #.  http://lse.sourceforge.net/io/aio.html
400 #.  http://lse.sourceforge.net/io/aionotes.txt
401 #.  http://lwn.net/Articles/148755/
402 #. type: Plain text
403 #: build/C/man7/aio.7:196
404 msgid ""
405 "The current Linux POSIX AIO implementation is provided in user space by "
406 "glibc.  This has a number of limitations, most notably that maintaining "
407 "multiple threads to perform I/O operations is expensive and scales poorly.  "
408 "Work has been in progress for some time on a kernel state-machine-based "
409 "implementation of asynchronous I/O (see B<io_submit>(2), B<io_setup>(2), "
410 "B<io_cancel>(2), B<io_destroy>(2), B<io_getevents>(2)), but this "
411 "implementation hasn't yet matured to the point where the POSIX AIO "
412 "implementation can be completely reimplemented using the kernel system "
413 "calls."
414 msgstr ""
415
416 #. type: SH
417 #: build/C/man7/aio.7:196 build/C/man3/aio_cancel.3:116 build/C/man3/aio_error.3:89 build/C/man3/aio_read.3:146 build/C/man3/aio_return.3:84
418 #, no-wrap
419 msgid "EXAMPLE"
420 msgstr ""
421
422 #. type: Plain text
423 #: build/C/man7/aio.7:209
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:215
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:220
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:244
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:246
479 #, no-wrap
480 msgid "Program source"
481 msgstr ""
482
483 #. type: Plain text
484 #: build/C/man7/aio.7:255
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:257
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:259
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:261
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:268
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:272
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:278
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:280
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:285
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:291
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:301
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:307
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:309
601 #, no-wrap
602 msgid "    numReqs = argc - 1;\n"
603 msgstr ""
604
605 #. type: Plain text
606 #: build/C/man7/aio.7:311
607 #, no-wrap
608 msgid "    /* Allocate our arrays */\n"
609 msgstr ""
610
611 #. type: Plain text
612 #: build/C/man7/aio.7:315
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:319
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:321
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:324
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:328
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:333
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:336
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:341
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:347
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:351
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:359
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:364
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:366
725 #, no-wrap
726 msgid "    openReqs = numReqs;\n"
727 msgstr ""
728
729 #. type: Plain text
730 #: build/C/man7/aio.7:368
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:371
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:373
745 #, no-wrap
746 msgid "        if (gotSIGQUIT) {\n"
747 msgstr ""
748
749 #. type: Plain text
750 #: build/C/man7/aio.7:377
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:379
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:396
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:399
788 #, no-wrap
789 msgid ""
790 "            gotSIGQUIT = 0;\n"
791 "        }\n"
792 msgstr ""
793
794 #. type: Plain text
795 #: build/C/man7/aio.7:402
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:409
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:424
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:430
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:432
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:434
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:438
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:443
868 #, no-wrap
869 msgid ""
870 "        s = aio_return(ioList[j].aiocbp);\n"
871 "        printf(\"    for request %d (descriptor %d): %zd\\en\",\n"
872 "                j, ioList[j].aiocbp-E<gt>aio_fildes, s);\n"
873 "    }\n"
874 msgstr ""
875
876 #. type: Plain text
877 #: build/C/man7/aio.7:446
878 #, no-wrap
879 msgid ""
880 "    exit(EXIT_SUCCESS);\n"
881 "}\n"
882 msgstr ""
883
884 #. type: SH
885 #: build/C/man7/aio.7:447 build/C/man3/aio_cancel.3:119 build/C/man3/aio_error.3:92 build/C/man3/aio_fsync.3:105 build/C/man3/aio_init.3:99 build/C/man3/aio_read.3:149 build/C/man3/aio_return.3:87 build/C/man3/aio_suspend.3:129 build/C/man3/aio_write.3:151 build/C/man2/io_cancel.2:94 build/C/man2/io_destroy.2:83 build/C/man2/io_getevents.2:100 build/C/man2/io_setup.2:96 build/C/man2/io_submit.2:98 build/C/man3/lio_listio.3:219
886 #, no-wrap
887 msgid "SEE ALSO"
888 msgstr ""
889
890 #. type: Plain text
891 #: build/C/man7/aio.7:462
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 msgstr ""
897
898 #. type: Plain text
899 #: build/C/man7/aio.7:465
900 msgid ""
901 "E<.UR "
902 "http://www.squid-cache.org\\:/~adrian\\:/Reprint-Pulavarty-OLS2003.pdf> "
903 "E<.UE>"
904 msgstr ""
905
906 #. type: SH
907 #: build/C/man7/aio.7:465 build/C/man3/aio_cancel.3:128 build/C/man3/aio_error.3:101 build/C/man3/aio_fsync.3:115 build/C/man3/aio_init.3:101 build/C/man3/aio_read.3:158 build/C/man3/aio_return.3:96 build/C/man3/aio_suspend.3:139 build/C/man3/aio_write.3:160 build/C/man2/io_cancel.2:102 build/C/man2/io_destroy.2:91 build/C/man2/io_getevents.2:110 build/C/man2/io_setup.2:104 build/C/man2/io_submit.2:106 build/C/man3/lio_listio.3:227
908 #, no-wrap
909 msgid "COLOPHON"
910 msgstr ""
911
912 #. type: Plain text
913 #: build/C/man7/aio.7:473 build/C/man3/aio_cancel.3:136 build/C/man3/aio_error.3:109 build/C/man3/aio_fsync.3:123 build/C/man3/aio_init.3:109 build/C/man3/aio_read.3:166 build/C/man3/aio_return.3:104 build/C/man3/aio_suspend.3:147 build/C/man3/aio_write.3:168 build/C/man2/io_cancel.2:110 build/C/man2/io_destroy.2:99 build/C/man2/io_getevents.2:118 build/C/man2/io_setup.2:112 build/C/man2/io_submit.2:114 build/C/man3/lio_listio.3:235
914 msgid ""
915 "This page is part of release 3.75 of the Linux I<man-pages> project.  A "
916 "description of the project, information about reporting bugs, and the latest "
917 "version of this page, can be found at "
918 "\\%http://www.kernel.org/doc/man-pages/."
919 msgstr ""
920
921 #. type: TH
922 #: build/C/man3/aio_cancel.3:24
923 #, no-wrap
924 msgid "AIO_CANCEL"
925 msgstr ""
926
927 #. type: TH
928 #: build/C/man3/aio_cancel.3:24 build/C/man3/aio_fsync.3:24 build/C/man3/aio_read.3:24 build/C/man3/aio_suspend.3:25 build/C/man3/aio_write.3:24 build/C/man3/lio_listio.3:24
929 #, no-wrap
930 msgid "2012-05-08"
931 msgstr ""
932
933 #. type: Plain text
934 #: build/C/man3/aio_cancel.3:27
935 msgid "aio_cancel - cancel an outstanding asynchronous I/O request"
936 msgstr ""
937
938 #. type: SH
939 #: build/C/man3/aio_cancel.3:27 build/C/man3/aio_error.3:27 build/C/man3/aio_fsync.3:27 build/C/man3/aio_init.3:29 build/C/man3/aio_read.3:27 build/C/man3/aio_return.3:27 build/C/man3/aio_suspend.3:28 build/C/man3/aio_write.3:27 build/C/man2/io_cancel.2:10 build/C/man2/io_destroy.2:10 build/C/man2/io_getevents.2:10 build/C/man2/io_setup.2:10 build/C/man2/io_submit.2:10 build/C/man3/lio_listio.3:27
940 #, no-wrap
941 msgid "SYNOPSIS"
942 msgstr ""
943
944 #. type: Plain text
945 #: build/C/man3/aio_cancel.3:29 build/C/man3/aio_error.3:29 build/C/man3/aio_fsync.3:29 build/C/man3/aio_read.3:29 build/C/man3/aio_return.3:29 build/C/man3/aio_write.3:29
946 msgid "B<#include E<lt>aio.hE<gt>>"
947 msgstr ""
948
949 #. type: Plain text
950 #: build/C/man3/aio_cancel.3:31
951 msgid "B<int aio_cancel(int >I<fd>B<, struct aiocb *>I<aiocbp>B<);>"
952 msgstr ""
953
954 #. type: Plain text
955 #: build/C/man3/aio_cancel.3:33 build/C/man3/aio_error.3:33 build/C/man3/aio_fsync.3:33 build/C/man3/aio_init.3:38 build/C/man3/aio_read.3:33 build/C/man3/aio_return.3:33 build/C/man3/aio_write.3:33
956 msgid "Link with I<-lrt>."
957 msgstr ""
958
959 #. type: Plain text
960 #: build/C/man3/aio_cancel.3:51
961 msgid ""
962 "The B<aio_cancel>()  function attempts to cancel outstanding asynchronous "
963 "I/O requests for the file descriptor I<fd>.  If I<aiocbp> is NULL, all such "
964 "requests are canceled.  Otherwise, only the request described by the control "
965 "block pointed to by I<aiocbp> is canceled.  (See B<aio>(7)  for a "
966 "description of the I<aiocb> structure.)"
967 msgstr ""
968
969 #. type: Plain text
970 #: build/C/man3/aio_cancel.3:63
971 msgid ""
972 "Normal asynchronous notification occurs for canceled requests (see B<aio>(7)  "
973 "and B<sigevent>(7)).  The request return status (B<aio_return>(3))  is set "
974 "to -1, and the request error status (B<aio_error>(3))  is set to "
975 "B<ECANCELED>.  The control block of requests that cannot be canceled is not "
976 "changed."
977 msgstr ""
978
979 #. type: Plain text
980 #: build/C/man3/aio_cancel.3:70
981 msgid ""
982 "If the request could not be canceled, then it will terminate in the usual "
983 "way after performing the I/O operation.  (In this case, B<aio_error>(3)  "
984 "will return the status B<EINPROGRESSS>.)"
985 msgstr ""
986
987 #. type: Plain text
988 #: build/C/man3/aio_cancel.3:77
989 msgid ""
990 "If I<aiocbp> is not NULL, and I<fd> differs from the file descriptor with "
991 "which the asynchronous operation was initiated, unspecified results occur."
992 msgstr ""
993
994 #.  FreeBSD: not those on raw disk devices.
995 #. type: Plain text
996 #: build/C/man3/aio_cancel.3:80
997 msgid "Which operations are cancelable is implementation-defined."
998 msgstr ""
999
1000 #. type: SH
1001 #: build/C/man3/aio_cancel.3:80 build/C/man3/aio_error.3:44 build/C/man3/aio_fsync.3:73 build/C/man3/aio_read.3:88 build/C/man3/aio_return.3:49 build/C/man3/aio_suspend.3:80 build/C/man3/aio_write.3:95 build/C/man2/io_cancel.2:37 build/C/man2/io_destroy.2:29 build/C/man2/io_getevents.2:34 build/C/man2/io_setup.2:32 build/C/man2/io_submit.2:31 build/C/man3/lio_listio.3:108
1002 #, no-wrap
1003 msgid "RETURN VALUE"
1004 msgstr ""
1005
1006 #. type: Plain text
1007 #: build/C/man3/aio_cancel.3:84
1008 msgid "The B<aio_cancel>()  function returns one of the following values:"
1009 msgstr ""
1010
1011 #. type: TP
1012 #: build/C/man3/aio_cancel.3:84
1013 #, no-wrap
1014 msgid "B<AIO_CANCELED>"
1015 msgstr ""
1016
1017 #. type: Plain text
1018 #: build/C/man3/aio_cancel.3:87
1019 msgid "All requests were successfully canceled."
1020 msgstr ""
1021
1022 #. type: TP
1023 #: build/C/man3/aio_cancel.3:87
1024 #, no-wrap
1025 msgid "B<AIO_NOTCANCELED>"
1026 msgstr ""
1027
1028 #. type: Plain text
1029 #: build/C/man3/aio_cancel.3:93
1030 msgid ""
1031 "At least one of the requests specified was not canceled because it was in "
1032 "progress.  In this case, one may check the status of individual requests "
1033 "using B<aio_error>(3)."
1034 msgstr ""
1035
1036 #. type: TP
1037 #: build/C/man3/aio_cancel.3:93
1038 #, no-wrap
1039 msgid "B<AIO_ALLDONE>"
1040 msgstr ""
1041
1042 #. type: Plain text
1043 #: build/C/man3/aio_cancel.3:96
1044 msgid "All requests had already been completed before the call."
1045 msgstr ""
1046
1047 #. type: TP
1048 #: build/C/man3/aio_cancel.3:96
1049 #, no-wrap
1050 msgid "-1"
1051 msgstr ""
1052
1053 #. type: Plain text
1054 #: build/C/man3/aio_cancel.3:101
1055 msgid ""
1056 "An error occurred.  The cause of the error can be found by inspecting "
1057 "I<errno>."
1058 msgstr ""
1059
1060 #. type: TP
1061 #: build/C/man3/aio_cancel.3:102 build/C/man3/aio_fsync.3:83 build/C/man3/aio_read.3:107 build/C/man3/aio_write.3:114 build/C/man2/io_submit.2:41
1062 #, no-wrap
1063 msgid "B<EBADF>"
1064 msgstr ""
1065
1066 #. type: Plain text
1067 #: build/C/man3/aio_cancel.3:106
1068 msgid "I<fd> is not a valid file descriptor."
1069 msgstr ""
1070
1071 #. type: TP
1072 #: build/C/man3/aio_cancel.3:106 build/C/man3/aio_error.3:74 build/C/man3/aio_fsync.3:95 build/C/man3/aio_read.3:119 build/C/man3/aio_return.3:69 build/C/man3/aio_suspend.3:99 build/C/man3/aio_write.3:129 build/C/man2/io_cancel.2:52 build/C/man2/io_destroy.2:41 build/C/man2/io_getevents.2:53 build/C/man2/io_setup.2:54 build/C/man2/io_submit.2:56
1073 #, no-wrap
1074 msgid "B<ENOSYS>"
1075 msgstr ""
1076
1077 #. type: Plain text
1078 #: build/C/man3/aio_cancel.3:110
1079 msgid "B<aio_cancel>()  is not implemented."
1080 msgstr ""
1081
1082 #. type: Plain text
1083 #: build/C/man3/aio_cancel.3:114
1084 msgid "The B<aio_cancel>()  function is available since glibc 2.1."
1085 msgstr ""
1086
1087 #. type: Plain text
1088 #: build/C/man3/aio_cancel.3:119 build/C/man3/aio_error.3:92 build/C/man3/aio_read.3:149 build/C/man3/aio_return.3:87
1089 msgid "See B<aio>(7)."
1090 msgstr ""
1091
1092 #. type: Plain text
1093 #: build/C/man3/aio_cancel.3:128
1094 msgid ""
1095 "B<aio_error>(3), B<aio_fsync>(3), B<aio_read>(3), B<aio_return>(3), "
1096 "B<aio_suspend>(3), B<aio_write>(3), B<lio_listio>(3), B<aio>(7)"
1097 msgstr ""
1098
1099 #. type: TH
1100 #: build/C/man3/aio_error.3:24
1101 #, no-wrap
1102 msgid "AIO_ERROR"
1103 msgstr ""
1104
1105 #. type: TH
1106 #: build/C/man3/aio_error.3:24 build/C/man3/aio_return.3:24
1107 #, no-wrap
1108 msgid "2013-07-04"
1109 msgstr ""
1110
1111 #. type: Plain text
1112 #: build/C/man3/aio_error.3:27
1113 msgid "aio_error - get error status of asynchronous I/O operation"
1114 msgstr ""
1115
1116 #. type: Plain text
1117 #: build/C/man3/aio_error.3:31
1118 msgid "B<int aio_error(const struct aiocb *>I<aiocbp>B<);>"
1119 msgstr ""
1120
1121 #. type: Plain text
1122 #: build/C/man3/aio_error.3:44
1123 msgid ""
1124 "The B<aio_error>()  function returns the error status for the asynchronous "
1125 "I/O request with control block pointed to by I<aiocbp>.  (See B<aio>(7)  for "
1126 "a description of the I<aiocb> structure.)"
1127 msgstr ""
1128
1129 #. type: Plain text
1130 #: build/C/man3/aio_error.3:46
1131 msgid "This function returns one of the following:"
1132 msgstr ""
1133
1134 #. type: IP
1135 #: build/C/man3/aio_error.3:46 build/C/man3/aio_error.3:50 build/C/man3/aio_error.3:53 build/C/man3/aio_error.3:55 build/C/man3/aio_suspend.3:43 build/C/man3/aio_suspend.3:47 build/C/man3/aio_suspend.3:49
1136 #, no-wrap
1137 msgid "*"
1138 msgstr ""
1139
1140 #. type: Plain text
1141 #: build/C/man3/aio_error.3:50
1142 msgid "B<EINPROGRESS>, if the request has not been completed yet."
1143 msgstr ""
1144
1145 #. type: Plain text
1146 #: build/C/man3/aio_error.3:53
1147 msgid "B<ECANCELED>, if the request was canceled."
1148 msgstr ""
1149
1150 #. type: Plain text
1151 #: build/C/man3/aio_error.3:55
1152 msgid "0, if the request completed successfully."
1153 msgstr ""
1154
1155 #. type: Plain text
1156 #: build/C/man3/aio_error.3:66
1157 msgid ""
1158 "A positive error number, if the asynchronous I/O operation failed.  This is "
1159 "the same value that would have been stored in the I<errno> variable in the "
1160 "case of a synchronous B<read>(2), B<write>(2), B<fsync>(2), or "
1161 "B<fdatasync>(2)  call."
1162 msgstr ""
1163
1164 #. type: Plain text
1165 #: build/C/man3/aio_error.3:74
1166 msgid ""
1167 "I<aiocbp> does not point at a control block for an asynchronous I/O request "
1168 "of which the return status (see B<aio_return>(3))  has not been retrieved "
1169 "yet."
1170 msgstr ""
1171
1172 #. type: Plain text
1173 #: build/C/man3/aio_error.3:78
1174 msgid "B<aio_error>()  is not implemented."
1175 msgstr ""
1176
1177 #. type: Plain text
1178 #: build/C/man3/aio_error.3:82
1179 msgid "The B<aio_error>()  function is available since glibc 2.1."
1180 msgstr ""
1181
1182 #. type: SH
1183 #: build/C/man3/aio_error.3:82 build/C/man3/aio_return.3:77
1184 #, no-wrap
1185 msgid "ATTRIBUTES"
1186 msgstr ""
1187
1188 #. type: SS
1189 #: build/C/man3/aio_error.3:83 build/C/man3/aio_return.3:78
1190 #, no-wrap
1191 msgid "Multithreading (see pthreads(7))"
1192 msgstr ""
1193
1194 #. type: Plain text
1195 #: build/C/man3/aio_error.3:87
1196 msgid "The B<aio_error>()  function is thread-safe."
1197 msgstr ""
1198
1199 #. type: Plain text
1200 #: build/C/man3/aio_error.3:101
1201 msgid ""
1202 "B<aio_cancel>(3), B<aio_fsync>(3), B<aio_read>(3), B<aio_return>(3), "
1203 "B<aio_suspend>(3), B<aio_write>(3), B<lio_listio>(3), B<aio>(7)"
1204 msgstr ""
1205
1206 #. type: TH
1207 #: build/C/man3/aio_fsync.3:24
1208 #, no-wrap
1209 msgid "AIO_FSYNC"
1210 msgstr ""
1211
1212 #. type: Plain text
1213 #: build/C/man3/aio_fsync.3:27
1214 msgid "aio_fsync - asynchronous file synchronization"
1215 msgstr ""
1216
1217 #. type: Plain text
1218 #: build/C/man3/aio_fsync.3:31
1219 msgid "B<int aio_fsync(int >I<op>B<, struct aiocb *>I<aiocbp>B<);>"
1220 msgstr ""
1221
1222 #. type: Plain text
1223 #: build/C/man3/aio_fsync.3:44
1224 msgid ""
1225 "The B<aio_fsync>()  function does a sync on all outstanding asynchronous I/O "
1226 "operations associated with I<aiocbp-E<gt>aio_fildes>.  (See B<aio>(7)  for a "
1227 "description of the I<aiocb> structure.)"
1228 msgstr ""
1229
1230 #. type: Plain text
1231 #: build/C/man3/aio_fsync.3:58
1232 msgid ""
1233 "More precisely, if I<op> is B<O_SYNC>, then all currently queued I/O "
1234 "operations shall be completed as if by a call of B<fsync>(2), and if I<op> "
1235 "is B<O_DSYNC>, this call is the asynchronous analog of B<fdatasync>(2)."
1236 msgstr ""
1237
1238 #. type: Plain text
1239 #: build/C/man3/aio_fsync.3:60
1240 msgid "Note that this is a request only; it does not wait for I/O completion."
1241 msgstr ""
1242
1243 #. type: Plain text
1244 #: build/C/man3/aio_fsync.3:73
1245 msgid ""
1246 "Apart from I<aio_fildes>, the only field in the structure pointed to by "
1247 "I<aiocbp> that is used by this call is the I<aio_sigevent> field (a "
1248 "I<sigevent> structure, described in B<sigevent>(7)), which indicates the "
1249 "desired type of asynchronous notification at completion.  All other fields "
1250 "are ignored."
1251 msgstr ""
1252
1253 #. type: Plain text
1254 #: build/C/man3/aio_fsync.3:79
1255 msgid ""
1256 "On success (the sync request was successfully queued)  this function returns "
1257 "0.  On error, -1 is returned, and I<errno> is set appropriately."
1258 msgstr ""
1259
1260 #. type: TP
1261 #: build/C/man3/aio_fsync.3:80 build/C/man3/aio_read.3:104 build/C/man3/aio_suspend.3:89 build/C/man3/aio_write.3:111 build/C/man2/io_cancel.2:43 build/C/man2/io_setup.2:38 build/C/man2/io_submit.2:38 build/C/man3/lio_listio.3:150 build/C/man3/lio_listio.3:153
1262 #, no-wrap
1263 msgid "B<EAGAIN>"
1264 msgstr ""
1265
1266 #. type: Plain text
1267 #: build/C/man3/aio_fsync.3:83 build/C/man3/aio_read.3:107 build/C/man3/aio_write.3:114 build/C/man3/lio_listio.3:153
1268 msgid "Out of resources."
1269 msgstr ""
1270
1271 #. type: Plain text
1272 #: build/C/man3/aio_fsync.3:87 build/C/man3/aio_write.3:118
1273 msgid "I<aio_fildes> is not a valid file descriptor open for writing."
1274 msgstr ""
1275
1276 #. type: Plain text
1277 #: build/C/man3/aio_fsync.3:95
1278 msgid ""
1279 "Synchronized I/O is not supported for this file, or I<op> is not B<O_SYNC> "
1280 "or B<O_DSYNC>."
1281 msgstr ""
1282
1283 #. type: Plain text
1284 #: build/C/man3/aio_fsync.3:99
1285 msgid "B<aio_fsync>()  is not implemented."
1286 msgstr ""
1287
1288 #. type: Plain text
1289 #: build/C/man3/aio_fsync.3:103
1290 msgid "The B<aio_fsync>()  function is available since glibc 2.1."
1291 msgstr ""
1292
1293 #. type: Plain text
1294 #: build/C/man3/aio_fsync.3:115
1295 msgid ""
1296 "B<aio_cancel>(3), B<aio_error>(3), B<aio_read>(3), B<aio_return>(3), "
1297 "B<aio_suspend>(3), B<aio_write>(3), B<lio_listio>(3), B<aio>(7), "
1298 "B<sigevent>(7)"
1299 msgstr ""
1300
1301 #. type: TH
1302 #: build/C/man3/aio_init.3:26
1303 #, no-wrap
1304 msgid "AIO_INIT"
1305 msgstr ""
1306
1307 #. type: TH
1308 #: build/C/man3/aio_init.3:26
1309 #, no-wrap
1310 msgid "2012-04-26"
1311 msgstr ""
1312
1313 #. type: Plain text
1314 #: build/C/man3/aio_init.3:29
1315 msgid "aio_init - asynchronous I/O initialization"
1316 msgstr ""
1317
1318 #. type: Plain text
1319 #: build/C/man3/aio_init.3:33
1320 #, no-wrap
1321 msgid ""
1322 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
1323 "B<#include E<lt>aio.hE<gt>>\n"
1324 msgstr ""
1325
1326 #. type: Plain text
1327 #: build/C/man3/aio_init.3:35
1328 #, no-wrap
1329 msgid "B<void aio_init(const struct aioinit *>I<init>B<);>\n"
1330 msgstr ""
1331
1332 #. type: Plain text
1333 #: build/C/man3/aio_init.3:45
1334 msgid ""
1335 "The GNU-specific B<aio_init>()  function allows the caller to provide tuning "
1336 "hints to the glibc POSIX AIO implementation.  Use of this function is "
1337 "optional, but to be effective, it must be called before employing any other "
1338 "functions in the POSIX AIO API."
1339 msgstr ""
1340
1341 #. type: Plain text
1342 #: build/C/man3/aio_init.3:49
1343 msgid ""
1344 "The tuning information is provided in the buffer pointed to by the argument "
1345 "I<init>.  This buffer is a structure of the following form:"
1346 msgstr ""
1347
1348 #. type: Plain text
1349 #: build/C/man3/aio_init.3:64
1350 #, no-wrap
1351 msgid ""
1352 "struct aioinit {\n"
1353 "    int aio_threads;    /* Maximum number of threads */\n"
1354 "    int aio_num;        /* Number of expected simultaneous\n"
1355 "                           requests */\n"
1356 "    int aio_locks;      /* Not used */\n"
1357 "    int aio_usedba;     /* Not used */\n"
1358 "    int aio_debug;      /* Not used */\n"
1359 "    int aio_numusers;   /* Not used */\n"
1360 "    int aio_idle_time;  /* Number of seconds before idle thread\n"
1361 "                           terminates (since glibc 2.2) */\n"
1362 "    int aio_reserved;\n"
1363 "};\n"
1364 msgstr ""
1365
1366 #. type: Plain text
1367 #: build/C/man3/aio_init.3:70
1368 msgid "The following fields are used in the I<aioinit> structure:"
1369 msgstr ""
1370
1371 #. type: TP
1372 #: build/C/man3/aio_init.3:70
1373 #, no-wrap
1374 msgid "I<aio_threads>"
1375 msgstr ""
1376
1377 #. type: Plain text
1378 #: build/C/man3/aio_init.3:78
1379 msgid ""
1380 "This field specifies the maximum number of worker threads that may be used "
1381 "by the implementation.  If the number of outstanding I/O operations exceeds "
1382 "this limit, then excess operations will be queued until a worker thread "
1383 "becomes free.  If this field is specified with a value less than 1, the "
1384 "value 1 is used.  The default value is 20."
1385 msgstr ""
1386
1387 #. type: TP
1388 #: build/C/man3/aio_init.3:78
1389 #, no-wrap
1390 msgid "I<aio_num>"
1391 msgstr ""
1392
1393 #.  FIXME . But, if aio_num > 32, the behavior looks strange. See
1394 #.  http://sourceware.org/bugzilla/show_bug.cgi?id=12083
1395 #. type: Plain text
1396 #: build/C/man3/aio_init.3:87
1397 msgid ""
1398 "This field should specify the maximum number of simultaneous I/O requests "
1399 "that the caller expects to enqueue.  If a value less than 32 is specified "
1400 "for this field, it is rounded up to 32.  The default value is 64."
1401 msgstr ""
1402
1403 #. type: TP
1404 #: build/C/man3/aio_init.3:87
1405 #, no-wrap
1406 msgid "I<aio_idle_time>"
1407 msgstr ""
1408
1409 #. type: Plain text
1410 #: build/C/man3/aio_init.3:93
1411 msgid ""
1412 "This field specifies the amount of time in seconds that a worker thread "
1413 "should wait for further requests before terminating, after having completed "
1414 "a previous request.  The default value is 1."
1415 msgstr ""
1416
1417 #. type: Plain text
1418 #: build/C/man3/aio_init.3:97
1419 msgid "The B<aio_init>()  function is available since glibc 2.1."
1420 msgstr ""
1421
1422 #. type: Plain text
1423 #: build/C/man3/aio_init.3:99
1424 msgid "This function is a GNU extension."
1425 msgstr ""
1426
1427 #. type: Plain text
1428 #: build/C/man3/aio_init.3:101
1429 msgid "B<aio>(7)"
1430 msgstr ""
1431
1432 #. type: TH
1433 #: build/C/man3/aio_read.3:24
1434 #, no-wrap
1435 msgid "AIO_READ"
1436 msgstr ""
1437
1438 #. type: Plain text
1439 #: build/C/man3/aio_read.3:27
1440 msgid "aio_read - asynchronous read"
1441 msgstr ""
1442
1443 #. type: Plain text
1444 #: build/C/man3/aio_read.3:31
1445 msgid "B<int aio_read(struct aiocb *>I<aiocbp>B<);>"
1446 msgstr ""
1447
1448 #. type: Plain text
1449 #: build/C/man3/aio_read.3:41
1450 msgid ""
1451 "The B<aio_read>()  function queues the I/O request described by the buffer "
1452 "pointed to by I<aiocbp>.  This function is the asynchronous analog of "
1453 "B<read>(2).  The arguments of the call"
1454 msgstr ""
1455
1456 #. type: Plain text
1457 #: build/C/man3/aio_read.3:43
1458 #, no-wrap
1459 msgid "    read(fd, buf, count)\n"
1460 msgstr ""
1461
1462 #. type: Plain text
1463 #: build/C/man3/aio_read.3:56 build/C/man3/aio_write.3:56
1464 msgid ""
1465 "correspond (in order) to the fields I<aio_fildes>, I<aio_buf>, and "
1466 "I<aio_nbytes> of the structure pointed to by I<aiocbp>.  (See B<aio>(7)  for "
1467 "a description of the I<aiocb> structure.)"
1468 msgstr ""
1469
1470 #. type: Plain text
1471 #: build/C/man3/aio_read.3:62
1472 msgid ""
1473 "The data is read starting at the absolute file offset "
1474 "I<aiocbp-E<gt>aio_offset>, regardless of the current file offset.  After the "
1475 "call, the value of the current file offset is unspecified."
1476 msgstr ""
1477
1478 #. type: Plain text
1479 #: build/C/man3/aio_read.3:75
1480 msgid ""
1481 "The \"asynchronous\" means that this call returns as soon as the request has "
1482 "been enqueued; the read may or may not have completed when the call "
1483 "returns.  One tests for completion using B<aio_error>(3).  The return status "
1484 "of a completed I/O operation can be obtained by B<aio_return>(3).  "
1485 "Asynchronous notification of I/O completion can be obtained by setting "
1486 "I<aiocbp-E<gt>aio_sigevent> appropriately; see B<sigevent>(7)  for details."
1487 msgstr ""
1488
1489 #. type: Plain text
1490 #: build/C/man3/aio_read.3:82 build/C/man3/aio_write.3:89
1491 msgid ""
1492 "If B<_POSIX_PRIORITIZED_IO> is defined, and this file supports it, then the "
1493 "asynchronous operation is submitted at a priority equal to that of the "
1494 "calling process minus I<aiocbp-E<gt>aio_reqprio>."
1495 msgstr ""
1496
1497 #. type: Plain text
1498 #: build/C/man3/aio_read.3:86 build/C/man3/aio_write.3:93
1499 msgid "The field I<aiocbp-E<gt>aio_lio_opcode> is ignored."
1500 msgstr ""
1501
1502 #. type: Plain text
1503 #: build/C/man3/aio_read.3:88
1504 msgid "No data is read from a regular file beyond its maximum offset."
1505 msgstr ""
1506
1507 #. type: Plain text
1508 #: build/C/man3/aio_read.3:103 build/C/man3/aio_write.3:110
1509 msgid ""
1510 "On success, 0 is returned.  On error, the request is not enqueued, -1 is "
1511 "returned, and I<errno> is set appropriately.  If an error is detected only "
1512 "later, it will be reported via B<aio_return>(3)  (returns status -1) and "
1513 "B<aio_error>(3)  (error status\\(emwhatever one would have gotten in "
1514 "I<errno>, such as B<EBADF>)."
1515 msgstr ""
1516
1517 #. type: Plain text
1518 #: build/C/man3/aio_read.3:111
1519 msgid "I<aio_fildes> is not a valid file descriptor open for reading."
1520 msgstr ""
1521
1522 #. type: Plain text
1523 #: build/C/man3/aio_read.3:119
1524 msgid "One or more of I<aio_offset>, I<aio_reqprio>, or I<aio_nbytes> are invalid."
1525 msgstr ""
1526
1527 #. type: Plain text
1528 #: build/C/man3/aio_read.3:123
1529 msgid "B<aio_read>()  is not implemented."
1530 msgstr ""
1531
1532 #. type: TP
1533 #: build/C/man3/aio_read.3:123
1534 #, no-wrap
1535 msgid "B<EOVERFLOW>"
1536 msgstr ""
1537
1538 #. type: Plain text
1539 #: build/C/man3/aio_read.3:128
1540 msgid ""
1541 "The file is a regular file, we start reading before end-of-file and want at "
1542 "least one byte, but the starting position is past the maximum offset for "
1543 "this file."
1544 msgstr ""
1545
1546 #. type: Plain text
1547 #: build/C/man3/aio_read.3:132
1548 msgid "The B<aio_read>()  function is available since glibc 2.1."
1549 msgstr ""
1550
1551 #.  or the control block of the operation
1552 #. type: Plain text
1553 #: build/C/man3/aio_read.3:142
1554 msgid ""
1555 "It is a good idea to zero out the control block before use.  The control "
1556 "block must not be changed while the read operation is in progress.  The "
1557 "buffer area being read into must not be accessed during the operation or "
1558 "undefined results may occur.  The memory areas involved must remain valid."
1559 msgstr ""
1560
1561 #. type: Plain text
1562 #: build/C/man3/aio_read.3:146 build/C/man3/aio_write.3:151 build/C/man3/lio_listio.3:219
1563 msgid ""
1564 "Simultaneous I/O operations specifying the same I<aiocb> structure produce "
1565 "undefined results."
1566 msgstr ""
1567
1568 #. type: Plain text
1569 #: build/C/man3/aio_read.3:158
1570 msgid ""
1571 "B<aio_cancel>(3), B<aio_error>(3), B<aio_fsync>(3), B<aio_return>(3), "
1572 "B<aio_suspend>(3), B<aio_write>(3), B<lio_listio>(3), B<aio>(7)"
1573 msgstr ""
1574
1575 #. type: TH
1576 #: build/C/man3/aio_return.3:24
1577 #, no-wrap
1578 msgid "AIO_RETURN"
1579 msgstr ""
1580
1581 #. type: Plain text
1582 #: build/C/man3/aio_return.3:27
1583 msgid "aio_return - get return status of asynchronous I/O operation"
1584 msgstr ""
1585
1586 #. type: Plain text
1587 #: build/C/man3/aio_return.3:31
1588 msgid "B<ssize_t aio_return(struct aiocb *>I<aiocbp>B<);>"
1589 msgstr ""
1590
1591 #. type: Plain text
1592 #: build/C/man3/aio_return.3:44
1593 msgid ""
1594 "The B<aio_return>()  function returns the final return status for the "
1595 "asynchronous I/O request with control block pointed to by I<aiocbp>.  (See "
1596 "B<aio>(7)  for a description of the I<aiocb> structure.)"
1597 msgstr ""
1598
1599 #. type: Plain text
1600 #: build/C/man3/aio_return.3:49
1601 msgid ""
1602 "This function should be called only once for any given request, after "
1603 "B<aio_error>(3)  returns something other than B<EINPROGRESS>."
1604 msgstr ""
1605
1606 #. type: Plain text
1607 #: build/C/man3/aio_return.3:58
1608 msgid ""
1609 "If the asynchronous I/O operation has completed, this function returns the "
1610 "value that would have been returned in case of a synchronous B<read>(2), "
1611 "B<write>(2), B<fsync>(2)  or B<fdatasync>(2), call."
1612 msgstr ""
1613
1614 #. type: Plain text
1615 #: build/C/man3/aio_return.3:63
1616 msgid ""
1617 "If the asynchronous I/O operation has not yet completed, the return value "
1618 "and effect of B<aio_return>()  are undefined."
1619 msgstr ""
1620
1621 #. type: Plain text
1622 #: build/C/man3/aio_return.3:69
1623 msgid ""
1624 "I<aiocbp> does not point at a control block for an asynchronous I/O request "
1625 "of which the return status has not been retrieved yet."
1626 msgstr ""
1627
1628 #. type: Plain text
1629 #: build/C/man3/aio_return.3:73
1630 msgid "B<aio_return>()  is not implemented."
1631 msgstr ""
1632
1633 #. type: Plain text
1634 #: build/C/man3/aio_return.3:77
1635 msgid "The B<aio_return>()  function is available since glibc 2.1."
1636 msgstr ""
1637
1638 #. type: Plain text
1639 #: build/C/man3/aio_return.3:82
1640 msgid "The B<aio_return>()  function is thread-safe."
1641 msgstr ""
1642
1643 #. type: Plain text
1644 #: build/C/man3/aio_return.3:96
1645 msgid ""
1646 "B<aio_cancel>(3), B<aio_error>(3), B<aio_fsync>(3), B<aio_read>(3), "
1647 "B<aio_suspend>(3), B<aio_write>(3), B<lio_listio>(3), B<aio>(7)"
1648 msgstr ""
1649
1650 #. type: TH
1651 #: build/C/man3/aio_suspend.3:25
1652 #, no-wrap
1653 msgid "AIO_SUSPEND"
1654 msgstr ""
1655
1656 #. type: Plain text
1657 #: build/C/man3/aio_suspend.3:28
1658 msgid "aio_suspend - wait for asynchronous I/O operation or timeout"
1659 msgstr ""
1660
1661 #. type: Plain text
1662 #: build/C/man3/aio_suspend.3:32 build/C/man3/lio_listio.3:30
1663 #, no-wrap
1664 msgid "B<#include E<lt>aio.hE<gt>>\n"
1665 msgstr ""
1666
1667 #. type: Plain text
1668 #: build/C/man3/aio_suspend.3:34
1669 #, no-wrap
1670 msgid "B<int aio_suspend(const struct aiocb * const >I<aiocb_list>B<[],>\n"
1671 msgstr ""
1672
1673 #. type: Plain text
1674 #: build/C/man3/aio_suspend.3:36
1675 #, no-wrap
1676 msgid ""
1677 "B<                int >I<nitems>B<, const struct timespec "
1678 "*>I<timeout>B<);>\n"
1679 msgstr ""
1680
1681 #. type: Plain text
1682 #: build/C/man3/aio_suspend.3:38 build/C/man3/lio_listio.3:35
1683 #, no-wrap
1684 msgid "Link with I<-lrt>.\n"
1685 msgstr ""
1686
1687 #. type: Plain text
1688 #: build/C/man3/aio_suspend.3:43
1689 msgid ""
1690 "The B<aio_suspend>()  function suspends the calling thread until one of the "
1691 "following occurs:"
1692 msgstr ""
1693
1694 #. type: Plain text
1695 #: build/C/man3/aio_suspend.3:47
1696 msgid ""
1697 "One or more of the asynchronous I/O requests in the list I<aiocb_list> has "
1698 "completed."
1699 msgstr ""
1700
1701 #. type: Plain text
1702 #: build/C/man3/aio_suspend.3:49
1703 msgid "A signal is delivered."
1704 msgstr ""
1705
1706 #. type: Plain text
1707 #: build/C/man3/aio_suspend.3:56
1708 msgid ""
1709 "I<timeout> is not NULL and the specified time interval has passed.  (For "
1710 "details of the I<timespec> structure, see B<nanosleep>(2).)"
1711 msgstr ""
1712
1713 #. type: Plain text
1714 #: build/C/man3/aio_suspend.3:74
1715 msgid ""
1716 "The I<nitems> argument specifies the number of items in I<aiocb_list>.  Each "
1717 "item in the list pointed to by I<aiocb_list> must be either NULL (and then "
1718 "is ignored), or a pointer to a control block on which I/O was initiated "
1719 "using B<aio_read>(3), B<aio_write>(3), or B<lio_listio>(3).  (See B<aio>(7)  "
1720 "for a description of the I<aiocb> structure.)"
1721 msgstr ""
1722
1723 #. type: Plain text
1724 #: build/C/man3/aio_suspend.3:80
1725 msgid ""
1726 "If B<CLOCK_MONOTONIC> is supported, this clock is used to measure the "
1727 "timeout interval (see B<clock_gettime>(3))."
1728 msgstr ""
1729
1730 #. type: Plain text
1731 #: build/C/man3/aio_suspend.3:88
1732 msgid ""
1733 "If this function returns after completion of one of the I/O requests "
1734 "specified in I<aiocb_list>, 0 is returned.  Otherwise, -1 is returned, and "
1735 "I<errno> is set to indicate the error."
1736 msgstr ""
1737
1738 #. type: Plain text
1739 #: build/C/man3/aio_suspend.3:93
1740 msgid "The call timed out before any of the indicated operations had completed."
1741 msgstr ""
1742
1743 #. type: TP
1744 #: build/C/man3/aio_suspend.3:93 build/C/man2/io_getevents.2:49 build/C/man3/lio_listio.3:169
1745 #, no-wrap
1746 msgid "B<EINTR>"
1747 msgstr ""
1748
1749 #. type: Plain text
1750 #: build/C/man3/aio_suspend.3:99
1751 msgid ""
1752 "The call was ended by signal (possibly the completion signal of one of the "
1753 "operations we were waiting for); see B<signal>(7)."
1754 msgstr ""
1755
1756 #. type: Plain text
1757 #: build/C/man3/aio_suspend.3:103
1758 msgid "B<aio_suspend>()  is not implemented."
1759 msgstr ""
1760
1761 #. type: Plain text
1762 #: build/C/man3/aio_suspend.3:107
1763 msgid "The B<aio_suspend>()  function is available since glibc 2.1."
1764 msgstr ""
1765
1766 #. type: Plain text
1767 #: build/C/man3/aio_suspend.3:113
1768 msgid ""
1769 "One can achieve polling by using a non-NULL I<timeout> that specifies a zero "
1770 "time interval."
1771 msgstr ""
1772
1773 #. type: Plain text
1774 #: build/C/man3/aio_suspend.3:119
1775 msgid ""
1776 "If one or more of the asynchronous I/O operations specified in I<aiocb_list> "
1777 "has already completed at the time of the call to B<aio_suspend>(), then the "
1778 "call returns immediately."
1779 msgstr ""
1780
1781 #. type: Plain text
1782 #: build/C/man3/aio_suspend.3:129
1783 msgid ""
1784 "To determine which I/O operations have completed after a successful return "
1785 "from B<aio_suspend>(), use B<aio_error>(3)  to scan the list of I<aiocb> "
1786 "structures pointed to by I<aiocb_list>."
1787 msgstr ""
1788
1789 #. type: Plain text
1790 #: build/C/man3/aio_suspend.3:139
1791 msgid ""
1792 "B<aio_cancel>(3), B<aio_error>(3), B<aio_fsync>(3), B<aio_read>(3), "
1793 "B<aio_return>(3), B<aio_write>(3), B<lio_listio>(3), B<aio>(7), B<time>(7)"
1794 msgstr ""
1795
1796 #. type: TH
1797 #: build/C/man3/aio_write.3:24
1798 #, no-wrap
1799 msgid "AIO_WRITE"
1800 msgstr ""
1801
1802 #. type: Plain text
1803 #: build/C/man3/aio_write.3:27
1804 msgid "aio_write - asynchronous write"
1805 msgstr ""
1806
1807 #. type: Plain text
1808 #: build/C/man3/aio_write.3:31
1809 msgid "B<int aio_write(struct aiocb *>I<aiocbp>B<);>"
1810 msgstr ""
1811
1812 #. type: Plain text
1813 #: build/C/man3/aio_write.3:41
1814 msgid ""
1815 "The B<aio_write>()  function queues the I/O request described by the buffer "
1816 "pointed to by I<aiocbp>.  This function is the asynchronous analog of "
1817 "B<write>(2).  The arguments of the call"
1818 msgstr ""
1819
1820 #. type: Plain text
1821 #: build/C/man3/aio_write.3:43
1822 #, no-wrap
1823 msgid "    write(fd, buf, count)\n"
1824 msgstr ""
1825
1826 #. type: Plain text
1827 #: build/C/man3/aio_write.3:69
1828 msgid ""
1829 "If B<O_APPEND> is not set, the data is written starting at the absolute file "
1830 "offset I<aiocbp-E<gt>aio_offset>, regardless of the current file offset.  If "
1831 "B<O_APPEND> is set, data is written at the end of the file in the same order "
1832 "as B<aio_write>()  calls are made.  After the call, the value of the current "
1833 "file offset is unspecified."
1834 msgstr ""
1835
1836 #. type: Plain text
1837 #: build/C/man3/aio_write.3:82
1838 msgid ""
1839 "The \"asynchronous\" means that this call returns as soon as the request has "
1840 "been enqueued; the write may or may not have completed when the call "
1841 "returns.  One tests for completion using B<aio_error>(3).  The return status "
1842 "of a completed I/O operation can be obtained B<aio_return>(3).  Asynchronous "
1843 "notification of I/O completion can be obtained by setting "
1844 "I<aiocbp-E<gt>aio_sigevent> appropriately; see B<sigevent>(7)  for details."
1845 msgstr ""
1846
1847 #. type: Plain text
1848 #: build/C/man3/aio_write.3:95
1849 msgid "No data is written to a regular file beyond its maximum offset."
1850 msgstr ""
1851
1852 #. type: TP
1853 #: build/C/man3/aio_write.3:118
1854 #, no-wrap
1855 msgid "B<EFBIG>"
1856 msgstr ""
1857
1858 #. type: Plain text
1859 #: build/C/man3/aio_write.3:122
1860 msgid ""
1861 "The file is a regular file, we want to write at least one byte, but the "
1862 "starting position is at or beyond the maximum offset for this file."
1863 msgstr ""
1864
1865 #. type: Plain text
1866 #: build/C/man3/aio_write.3:129
1867 msgid "One or more of I<aio_offset>, I<aio_reqprio>, I<aio_nbytes> are invalid."
1868 msgstr ""
1869
1870 #. type: Plain text
1871 #: build/C/man3/aio_write.3:133
1872 msgid "B<aio_write>()  is not implemented."
1873 msgstr ""
1874
1875 #. type: Plain text
1876 #: build/C/man3/aio_write.3:137
1877 msgid "The B<aio_write>()  function is available since glibc 2.1."
1878 msgstr ""
1879
1880 #.  or the control block of the operation
1881 #. type: Plain text
1882 #: build/C/man3/aio_write.3:147
1883 msgid ""
1884 "It is a good idea to zero out the control block before use.  The control "
1885 "block must not be changed while the write operation is in progress.  The "
1886 "buffer area being written out must not be accessed during the operation or "
1887 "undefined results may occur.  The memory areas involved must remain valid."
1888 msgstr ""
1889
1890 #. type: Plain text
1891 #: build/C/man3/aio_write.3:160
1892 msgid ""
1893 "B<aio_cancel>(3), B<aio_error>(3), B<aio_fsync>(3), B<aio_read>(3), "
1894 "B<aio_return>(3), B<aio_suspend>(3), B<lio_listio>(3), B<aio>(7)"
1895 msgstr ""
1896
1897 #. type: TH
1898 #: build/C/man2/io_cancel.2:7
1899 #, no-wrap
1900 msgid "IO_CANCEL"
1901 msgstr ""
1902
1903 #. type: TH
1904 #: build/C/man2/io_cancel.2:7
1905 #, no-wrap
1906 msgid "2013-04-10"
1907 msgstr ""
1908
1909 #. type: Plain text
1910 #: build/C/man2/io_cancel.2:10
1911 msgid "io_cancel - cancel an outstanding asynchronous I/O operation"
1912 msgstr ""
1913
1914 #. type: Plain text
1915 #: build/C/man2/io_cancel.2:13 build/C/man2/io_destroy.2:13 build/C/man2/io_setup.2:13 build/C/man2/io_submit.2:13
1916 #, no-wrap
1917 msgid "B<#include E<lt>linux/aio_abi.hE<gt>>          /* Defines needed types */\n"
1918 msgstr ""
1919
1920 #. type: Plain text
1921 #: build/C/man2/io_cancel.2:16
1922 #, no-wrap
1923 msgid ""
1924 "B<int io_cancel(aio_context_t >I<ctx_id>B<, struct iocb *>I<iocb>B<,>\n"
1925 "B<              struct io_event *>I<result>B<);>\n"
1926 msgstr ""
1927
1928 #. type: Plain text
1929 #: build/C/man2/io_cancel.2:20 build/C/man2/io_destroy.2:19 build/C/man2/io_getevents.2:22 build/C/man2/io_setup.2:19 build/C/man2/io_submit.2:20
1930 msgid "I<Note>: There is no glibc wrapper for this system call; see NOTES."
1931 msgstr ""
1932
1933 #. type: Plain text
1934 #: build/C/man2/io_cancel.2:37
1935 msgid ""
1936 "The B<io_cancel>()  system call attempts to cancel an asynchronous I/O "
1937 "operation previously submitted with B<io_submit>(2).  The I<iocb> argument "
1938 "describes the operation to be canceled and the I<ctx_id> argument is the AIO "
1939 "context to which the operation was submitted.  If the operation is "
1940 "successfully canceled, the event will be copied into the memory pointed to "
1941 "by I<result> without being placed into the completion queue."
1942 msgstr ""
1943
1944 #. type: Plain text
1945 #: build/C/man2/io_cancel.2:42
1946 msgid "On success, B<io_cancel>()  returns 0.  For the failure return, see NOTES."
1947 msgstr ""
1948
1949 #. type: Plain text
1950 #: build/C/man2/io_cancel.2:46
1951 msgid "The I<iocb> specified was not canceled."
1952 msgstr ""
1953
1954 #. type: TP
1955 #: build/C/man2/io_cancel.2:46 build/C/man2/io_destroy.2:35 build/C/man2/io_getevents.2:41 build/C/man2/io_setup.2:43 build/C/man2/io_submit.2:44
1956 #, no-wrap
1957 msgid "B<EFAULT>"
1958 msgstr ""
1959
1960 #. type: Plain text
1961 #: build/C/man2/io_cancel.2:49 build/C/man2/io_submit.2:47
1962 msgid "One of the data structures points to invalid data."
1963 msgstr ""
1964
1965 #. type: Plain text
1966 #: build/C/man2/io_cancel.2:52 build/C/man2/io_destroy.2:41
1967 msgid "The AIO context specified by I<ctx_id> is invalid."
1968 msgstr ""
1969
1970 #. type: Plain text
1971 #: build/C/man2/io_cancel.2:56
1972 msgid "B<io_cancel>()  is not implemented on this architecture."
1973 msgstr ""
1974
1975 #. type: Plain text
1976 #: build/C/man2/io_cancel.2:59 build/C/man2/io_destroy.2:48 build/C/man2/io_getevents.2:60 build/C/man2/io_setup.2:61 build/C/man2/io_submit.2:63
1977 msgid "The asynchronous I/O system calls first appeared in Linux 2.5."
1978 msgstr ""
1979
1980 #. type: Plain text
1981 #: build/C/man2/io_cancel.2:64
1982 msgid ""
1983 "B<io_cancel>()  is Linux-specific and should not be used in programs that "
1984 "are intended to be portable."
1985 msgstr ""
1986
1987 #.  http://git.fedorahosted.org/git/?p=libaio.git
1988 #. type: Plain text
1989 #: build/C/man2/io_cancel.2:73
1990 msgid ""
1991 "Glibc does not provide a wrapper function for this system call.  You could "
1992 "invoke it using B<syscall>(2).  But instead, you probably want to use the "
1993 "B<io_cancel>()  wrapper function provided by I<libaio>."
1994 msgstr ""
1995
1996 #.  But glibc is confused, since <libaio.h> uses 'io_context_t' to declare
1997 #.  the system call.
1998 #. type: Plain text
1999 #: build/C/man2/io_cancel.2:94 build/C/man2/io_destroy.2:83 build/C/man2/io_getevents.2:95 build/C/man2/io_submit.2:98
2000 msgid ""
2001 "Note that the I<libaio> wrapper function uses a different type "
2002 "(I<io_context_t>)  for the I<ctx_id> argument.  Note also that the I<libaio> "
2003 "wrapper does not follow the usual C library conventions for indicating "
2004 "errors: on error it returns a negated error number (the negative of one of "
2005 "the values listed in ERRORS).  If the system call is invoked via "
2006 "B<syscall>(2), then the return value follows the usual conventions for "
2007 "indicating an error: -1, with I<errno> set to a (positive) value that "
2008 "indicates the error."
2009 msgstr ""
2010
2011 #.  .SH AUTHOR
2012 #.  Kent Yoder.
2013 #. type: Plain text
2014 #: build/C/man2/io_cancel.2:102
2015 msgid ""
2016 "B<io_destroy>(2), B<io_getevents>(2), B<io_setup>(2), B<io_submit>(2), "
2017 "B<aio>(7)"
2018 msgstr ""
2019
2020 #. type: TH
2021 #: build/C/man2/io_destroy.2:7
2022 #, no-wrap
2023 msgid "IO_DESTROY"
2024 msgstr ""
2025
2026 #. type: TH
2027 #: build/C/man2/io_destroy.2:7 build/C/man2/io_getevents.2:7
2028 #, no-wrap
2029 msgid "2013-04-08"
2030 msgstr ""
2031
2032 #. type: Plain text
2033 #: build/C/man2/io_destroy.2:10
2034 msgid "io_destroy - destroy an asynchronous I/O context"
2035 msgstr ""
2036
2037 #. type: Plain text
2038 #: build/C/man2/io_destroy.2:15
2039 #, no-wrap
2040 msgid "B<int io_destroy(aio_context_t >I<ctx_id>B<);>\n"
2041 msgstr ""
2042
2043 #. type: Plain text
2044 #: build/C/man2/io_destroy.2:29
2045 msgid ""
2046 "The B<io_destroy>()  system call will attempt to cancel all outstanding "
2047 "asynchronous I/O operations against I<ctx_id>, will block on the completion "
2048 "of all operations that could not be canceled, and will destroy the "
2049 "I<ctx_id>."
2050 msgstr ""
2051
2052 #. type: Plain text
2053 #: build/C/man2/io_destroy.2:34
2054 msgid "On success, B<io_destroy>()  returns 0.  For the failure return, see NOTES."
2055 msgstr ""
2056
2057 #. type: Plain text
2058 #: build/C/man2/io_destroy.2:38
2059 msgid "The context pointed to is invalid."
2060 msgstr ""
2061
2062 #. type: Plain text
2063 #: build/C/man2/io_destroy.2:45
2064 msgid "B<io_destroy>()  is not implemented on this architecture."
2065 msgstr ""
2066
2067 #. type: Plain text
2068 #: build/C/man2/io_destroy.2:53
2069 msgid ""
2070 "B<io_destroy>()  is Linux-specific and should not be used in programs that "
2071 "are intended to be portable."
2072 msgstr ""
2073
2074 #.  http://git.fedorahosted.org/git/?p=libaio.git
2075 #. type: Plain text
2076 #: build/C/man2/io_destroy.2:62
2077 msgid ""
2078 "Glibc does not provide a wrapper function for this system call.  You could "
2079 "invoke it using B<syscall>(2).  But instead, you probably want to use the "
2080 "B<io_destroy>()  wrapper function provided by I<libaio>."
2081 msgstr ""
2082
2083 #.  .SH AUTHOR
2084 #.  Kent Yoder.
2085 #. type: Plain text
2086 #: build/C/man2/io_destroy.2:91
2087 msgid ""
2088 "B<io_cancel>(2), B<io_getevents>(2), B<io_setup>(2), B<io_submit>(2), "
2089 "B<aio>(7)"
2090 msgstr ""
2091
2092 #. type: TH
2093 #: build/C/man2/io_getevents.2:7
2094 #, no-wrap
2095 msgid "IO_GETEVENTS"
2096 msgstr ""
2097
2098 #. type: Plain text
2099 #: build/C/man2/io_getevents.2:10
2100 msgid "io_getevents - read asynchronous I/O events from the completion queue"
2101 msgstr ""
2102
2103 #. type: Plain text
2104 #: build/C/man2/io_getevents.2:14
2105 #, no-wrap
2106 msgid ""
2107 "B<#include E<lt>linux/aio_abi.hE<gt>>         /* Defines needed types */\n"
2108 "B<#include E<lt>linux/time.hE<gt>>            /* Defines 'struct timespec' "
2109 "*/\n"
2110 msgstr ""
2111
2112 #. type: Plain text
2113 #: build/C/man2/io_getevents.2:18
2114 #, no-wrap
2115 msgid ""
2116 "B<int io_getevents(aio_context_t >I<ctx_id>B<, long >I<min_nr>B<, long "
2117 ">I<nr>B<,>\n"
2118 "B<                 struct io_event *>I<events>B<, struct timespec "
2119 "*>I<timeout>B<);>\n"
2120 msgstr ""
2121
2122 #. type: Plain text
2123 #: build/C/man2/io_getevents.2:34
2124 msgid ""
2125 "The B<io_getevents>()  system call attempts to read at least I<min_nr> "
2126 "events and up to I<nr> events from the completion queue of the AIO context "
2127 "specified by I<ctx_id>.  The I<timeout> argument specifies the amount of "
2128 "time to wait for events, where a NULL timeout waits until at least I<min_nr> "
2129 "events have been seen.  Note that I<timeout> is relative."
2130 msgstr ""
2131
2132 #. type: Plain text
2133 #: build/C/man2/io_getevents.2:40
2134 msgid ""
2135 "On success, B<io_getevents>()  returns the number of events read: 0 if no "
2136 "events are available, or less than I<min_nr> if the I<timeout> has elapsed.  "
2137 "For the failure return, see NOTES."
2138 msgstr ""
2139
2140 #. type: Plain text
2141 #: build/C/man2/io_getevents.2:44
2142 msgid "Either I<events> or I<timeout> is an invalid pointer."
2143 msgstr ""
2144
2145 #. type: Plain text
2146 #: build/C/man2/io_getevents.2:49
2147 msgid "I<ctx_id> is invalid.  I<min_nr> is out of range or I<nr> is out of range."
2148 msgstr ""
2149
2150 #. type: Plain text
2151 #: build/C/man2/io_getevents.2:53
2152 msgid "Interrupted by a signal handler; see B<signal>(7)."
2153 msgstr ""
2154
2155 #. type: Plain text
2156 #: build/C/man2/io_getevents.2:57
2157 msgid "B<io_getevents>()  is not implemented on this architecture."
2158 msgstr ""
2159
2160 #. type: Plain text
2161 #: build/C/man2/io_getevents.2:65
2162 msgid ""
2163 "B<io_getevents>()  is Linux-specific and should not be used in programs that "
2164 "are intended to be portable."
2165 msgstr ""
2166
2167 #.  http://git.fedorahosted.org/git/?p=libaio.git
2168 #. type: Plain text
2169 #: build/C/man2/io_getevents.2:74
2170 msgid ""
2171 "Glibc does not provide a wrapper function for this system call.  You could "
2172 "invoke it using B<syscall>(2).  But instead, you probably want to use the "
2173 "B<io_getevents>()  wrapper function provided by I<libaio>."
2174 msgstr ""
2175
2176 #. type: SH
2177 #: build/C/man2/io_getevents.2:95
2178 #, no-wrap
2179 msgid "BUGS"
2180 msgstr ""
2181
2182 #. type: Plain text
2183 #: build/C/man2/io_getevents.2:100
2184 msgid ""
2185 "An invalid I<ctx_id> may cause a segmentation fault instead of generating "
2186 "the error B<EINVAL>."
2187 msgstr ""
2188
2189 #.  .SH AUTHOR
2190 #.  Kent Yoder.
2191 #. type: Plain text
2192 #: build/C/man2/io_getevents.2:110
2193 msgid ""
2194 "B<io_cancel>(2), B<io_destroy>(2), B<io_setup>(2), B<io_submit>(2), "
2195 "B<aio>(7), B<time>(7)"
2196 msgstr ""
2197
2198 #. type: TH
2199 #: build/C/man2/io_setup.2:7
2200 #, no-wrap
2201 msgid "IO_SETUP"
2202 msgstr ""
2203
2204 #. type: TH
2205 #: build/C/man2/io_setup.2:7
2206 #, no-wrap
2207 msgid "2013-06-21"
2208 msgstr ""
2209
2210 #. type: Plain text
2211 #: build/C/man2/io_setup.2:10
2212 msgid "io_setup - create an asynchronous I/O context"
2213 msgstr ""
2214
2215 #. type: Plain text
2216 #: build/C/man2/io_setup.2:15
2217 #, no-wrap
2218 msgid "B<int io_setup(unsigned >I<nr_events>B<, aio_context_t *>I<ctx_idp>B<);>\n"
2219 msgstr ""
2220
2221 #. type: Plain text
2222 #: build/C/man2/io_setup.2:32
2223 msgid ""
2224 "The B<io_setup>()  system call creates an asynchronous I/O context suitable "
2225 "for concurrently processing I<nr_events> operations.  The I<ctx_idp> "
2226 "argument must not point to an AIO context that already exists, and must be "
2227 "initialized to 0 prior to the call.  On successful creation of the AIO "
2228 "context, I<*ctx_idp> is filled in with the resulting handle."
2229 msgstr ""
2230
2231 #. type: Plain text
2232 #: build/C/man2/io_setup.2:37
2233 msgid "On success, B<io_setup>()  returns 0.  For the failure return, see NOTES."
2234 msgstr ""
2235
2236 #. type: Plain text
2237 #: build/C/man2/io_setup.2:43
2238 msgid ""
2239 "The specified I<nr_events> exceeds the user's limit of available events, as "
2240 "defined in I</proc/sys/fs/aio-max-nr>."
2241 msgstr ""
2242
2243 #. type: Plain text
2244 #: build/C/man2/io_setup.2:46
2245 msgid "An invalid pointer is passed for I<ctx_idp>."
2246 msgstr ""
2247
2248 #. type: Plain text
2249 #: build/C/man2/io_setup.2:51
2250 msgid ""
2251 "I<ctx_idp> is not initialized, or the specified I<nr_events> exceeds "
2252 "internal limits.  I<nr_events> should be greater than 0."
2253 msgstr ""
2254
2255 #. type: TP
2256 #: build/C/man2/io_setup.2:51
2257 #, no-wrap
2258 msgid "B<ENOMEM>"
2259 msgstr ""
2260
2261 #. type: Plain text
2262 #: build/C/man2/io_setup.2:54
2263 msgid "Insufficient kernel resources are available."
2264 msgstr ""
2265
2266 #. type: Plain text
2267 #: build/C/man2/io_setup.2:58
2268 msgid "B<io_setup>()  is not implemented on this architecture."
2269 msgstr ""
2270
2271 #. type: Plain text
2272 #: build/C/man2/io_setup.2:66
2273 msgid ""
2274 "B<io_setup>()  is Linux-specific and should not be used in programs that are "
2275 "intended to be portable."
2276 msgstr ""
2277
2278 #.  http://git.fedorahosted.org/git/?p=libaio.git
2279 #. type: Plain text
2280 #: build/C/man2/io_setup.2:75
2281 msgid ""
2282 "Glibc does not provide a wrapper function for this system call.  You could "
2283 "invoke it using B<syscall>(2).  But instead, you probably want to use the "
2284 "B<io_setup>()  wrapper function provided by I<libaio>."
2285 msgstr ""
2286
2287 #.  But glibc is confused, since <libaio.h> uses 'io_context_t' to declare
2288 #.  the system call.
2289 #. type: Plain text
2290 #: build/C/man2/io_setup.2:96
2291 msgid ""
2292 "Note that the I<libaio> wrapper function uses a different type "
2293 "(I<io_context_t\\ *>)  for the I<ctx_idp> argument.  Note also that the "
2294 "I<libaio> wrapper does not follow the usual C library conventions for "
2295 "indicating errors: on error it returns a negated error number (the negative "
2296 "of one of the values listed in ERRORS).  If the system call is invoked via "
2297 "B<syscall>(2), then the return value follows the usual conventions for "
2298 "indicating an error: -1, with I<errno> set to a (positive) value that "
2299 "indicates the error."
2300 msgstr ""
2301
2302 #.  .SH AUTHOR
2303 #.  Kent Yoder.
2304 #. type: Plain text
2305 #: build/C/man2/io_setup.2:104
2306 msgid ""
2307 "B<io_cancel>(2), B<io_destroy>(2), B<io_getevents>(2), B<io_submit>(2), "
2308 "B<aio>(7)"
2309 msgstr ""
2310
2311 #. type: TH
2312 #: build/C/man2/io_submit.2:7
2313 #, no-wrap
2314 msgid "IO_SUBMIT"
2315 msgstr ""
2316
2317 #. type: TH
2318 #: build/C/man2/io_submit.2:7
2319 #, no-wrap
2320 msgid "2012-07-13"
2321 msgstr ""
2322
2323 #. type: Plain text
2324 #: build/C/man2/io_submit.2:10
2325 msgid "io_submit - submit asynchronous I/O blocks for processing"
2326 msgstr ""
2327
2328 #. type: Plain text
2329 #: build/C/man2/io_submit.2:16
2330 #, no-wrap
2331 msgid ""
2332 "B<int io_submit(aio_context_t >I<ctx_id>B<, long >I<nr>B<, struct iocb "
2333 "**>I<iocbpp>B<);>\n"
2334 msgstr ""
2335
2336 #. type: Plain text
2337 #: build/C/man2/io_submit.2:31
2338 msgid ""
2339 "The B<io_submit>()  system call queues I<nr> I/O request blocks for "
2340 "processing in the AIO context I<ctx_id>.  The I<iocbpp> argument should be "
2341 "an array of I<nr> AIO control blocks, which will be submitted to context "
2342 "I<ctx_id>."
2343 msgstr ""
2344
2345 #. type: Plain text
2346 #: build/C/man2/io_submit.2:37
2347 msgid ""
2348 "On success, B<io_submit>()  returns the number of I<iocb>s submitted (which "
2349 "may be 0 if I<nr> is zero).  For the failure return, see NOTES."
2350 msgstr ""
2351
2352 #. type: Plain text
2353 #: build/C/man2/io_submit.2:41
2354 msgid "Insufficient resources are available to queue any I<iocb>s."
2355 msgstr ""
2356
2357 #. type: Plain text
2358 #: build/C/man2/io_submit.2:44
2359 msgid "The file descriptor specified in the first I<iocb> is invalid."
2360 msgstr ""
2361
2362 #. type: Plain text
2363 #: build/C/man2/io_submit.2:56
2364 msgid ""
2365 "The AIO context specified by I<ctx_id> is invalid.  I<nr> is less than 0.  "
2366 "The I<iocb> at I<*iocbpp[0]> is not properly initialized, or the operation "
2367 "specified is invalid for the file descriptor in the I<iocb>."
2368 msgstr ""
2369
2370 #. type: Plain text
2371 #: build/C/man2/io_submit.2:60
2372 msgid "B<io_submit>()  is not implemented on this architecture."
2373 msgstr ""
2374
2375 #. type: Plain text
2376 #: build/C/man2/io_submit.2:68
2377 msgid ""
2378 "B<io_submit>()  is Linux-specific and should not be used in programs that "
2379 "are intended to be portable."
2380 msgstr ""
2381
2382 #.  http://git.fedorahosted.org/git/?p=libaio.git
2383 #. type: Plain text
2384 #: build/C/man2/io_submit.2:77
2385 msgid ""
2386 "Glibc does not provide a wrapper function for this system call.  You could "
2387 "invoke it using B<syscall>(2).  But instead, you probably want to use the "
2388 "B<io_submit>()  wrapper function provided by I<libaio>."
2389 msgstr ""
2390
2391 #.  .SH AUTHOR
2392 #.  Kent Yoder.
2393 #. type: Plain text
2394 #: build/C/man2/io_submit.2:106
2395 msgid ""
2396 "B<io_cancel>(2), B<io_destroy>(2), B<io_getevents>(2), B<io_setup>(2), "
2397 "B<aio>(7)"
2398 msgstr ""
2399
2400 #. type: TH
2401 #: build/C/man3/lio_listio.3:24
2402 #, no-wrap
2403 msgid "LIO_LISTIO"
2404 msgstr ""
2405
2406 #. type: Plain text
2407 #: build/C/man3/lio_listio.3:27
2408 msgid "lio_listio - initiate a list of I/O requests"
2409 msgstr ""
2410
2411 #. type: Plain text
2412 #: build/C/man3/lio_listio.3:33
2413 #, no-wrap
2414 msgid ""
2415 "B<int lio_listio(int >I<mode>B<, struct aiocb *const >I<aiocb_list>B<[],>\n"
2416 "B<               int >I<nitems>B<, struct sigevent *>I<sevp>B<);>\n"
2417 msgstr ""
2418
2419 #. type: Plain text
2420 #: build/C/man3/lio_listio.3:41
2421 msgid ""
2422 "The B<lio_listio>()  function initiates the list of I/O operations described "
2423 "by the array I<aiocb_list>."
2424 msgstr ""
2425
2426 #. type: Plain text
2427 #: build/C/man3/lio_listio.3:45
2428 msgid "The I<mode> operation has one of the following values:"
2429 msgstr ""
2430
2431 #. type: TP
2432 #: build/C/man3/lio_listio.3:45
2433 #, no-wrap
2434 msgid "B<LIO_WAIT>"
2435 msgstr ""
2436
2437 #. type: Plain text
2438 #: build/C/man3/lio_listio.3:51
2439 msgid ""
2440 "The call blocks until all operations are complete.  The I<sevp> argument is "
2441 "ignored."
2442 msgstr ""
2443
2444 #. type: TP
2445 #: build/C/man3/lio_listio.3:51
2446 #, no-wrap
2447 msgid "B<LIO_NOWAIT>"
2448 msgstr ""
2449
2450 #. type: Plain text
2451 #: build/C/man3/lio_listio.3:63
2452 msgid ""
2453 "The I/O operations are queued for processing and the call returns "
2454 "immediately.  When all of the I/O operations complete, asynchronous "
2455 "notification occurs, as specified by the I<sevp> argument; see "
2456 "B<sigevent>(7)  for details.  If I<sevp> is NULL, no asynchronous "
2457 "notification occurs."
2458 msgstr ""
2459
2460 #. type: Plain text
2461 #: build/C/man3/lio_listio.3:77
2462 msgid ""
2463 "The I<aiocb_list> argument is an array of pointers to I<aiocb> structures "
2464 "that describe I/O operations.  These operations are executed in an "
2465 "unspecified order.  The I<nitems> argument specifies the size of the array "
2466 "I<aiocb_list>.  null pointers in I<aiocb_list> are ignored."
2467 msgstr ""
2468
2469 #. type: Plain text
2470 #: build/C/man3/lio_listio.3:83
2471 msgid ""
2472 "In each control block in I<aiocb_list>, the I<aio_lio_opcode> field "
2473 "specifies the I/O operation to be initiated, as follows:"
2474 msgstr ""
2475
2476 #. type: TP
2477 #: build/C/man3/lio_listio.3:83
2478 #, no-wrap
2479 msgid "B<LIO_READ>"
2480 msgstr ""
2481
2482 #. type: Plain text
2483 #: build/C/man3/lio_listio.3:89
2484 msgid ""
2485 "Initiate a read operation.  The operation is queued as for a call to "
2486 "B<aio_read>(3)  specifying this control block."
2487 msgstr ""
2488
2489 #. type: TP
2490 #: build/C/man3/lio_listio.3:89
2491 #, no-wrap
2492 msgid "B<LIO_WRITE>"
2493 msgstr ""
2494
2495 #. type: Plain text
2496 #: build/C/man3/lio_listio.3:95
2497 msgid ""
2498 "Initiate a write operation.  The operation is queued as for a call to "
2499 "B<aio_write>(3)  specifying this control block."
2500 msgstr ""
2501
2502 #. type: TP
2503 #: build/C/man3/lio_listio.3:95
2504 #, no-wrap
2505 msgid "B<LIO_NOP>"
2506 msgstr ""
2507
2508 #. type: Plain text
2509 #: build/C/man3/lio_listio.3:98
2510 msgid "Ignore this control block."
2511 msgstr ""
2512
2513 #. type: Plain text
2514 #: build/C/man3/lio_listio.3:108
2515 msgid ""
2516 "The remaining fields in each control block have the same meanings as for "
2517 "B<aio_read>(3)  and B<aio_write>(3).  The I<aio_sigevent> fields of each "
2518 "control block can be used to specify notifications for the individual I/O "
2519 "operations (see B<sigevent>(7))."
2520 msgstr ""
2521
2522 #. type: Plain text
2523 #: build/C/man3/lio_listio.3:118
2524 msgid ""
2525 "If I<mode> is B<LIO_NOWAIT>, B<lio_listio>()  returns 0 if all I/O "
2526 "operations are successfully queued.  Otherwise, -1 is returned, and I<errno> "
2527 "is set to indicate the error."
2528 msgstr ""
2529
2530 #. type: Plain text
2531 #: build/C/man3/lio_listio.3:128
2532 msgid ""
2533 "If I<mode> is B<LIO_WAIT>, B<lio_listio>()  returns 0 when all of the I/O "
2534 "operations have completed successfully.  Otherwise, -1 is returned, and "
2535 "I<errno> is set to indicate the error."
2536 msgstr ""
2537
2538 #. type: Plain text
2539 #: build/C/man3/lio_listio.3:146
2540 msgid ""
2541 "The return status from B<lio_listio>()  provides information only about the "
2542 "call itself, not about the individual I/O operations.  One or more of the "
2543 "I/O operations may fail, but this does not prevent other operations "
2544 "completing.  The status of individual I/O operations in I<aiocb_list> can be "
2545 "determined using B<aio_error>(3).  When an operation has completed, its "
2546 "return status can be obtained using B<aio_return>(3).  Individual I/O "
2547 "operations can fail for the reasons described in B<aio_read>(3)  and "
2548 "B<aio_write>(3)."
2549 msgstr ""
2550
2551 #. type: Plain text
2552 #: build/C/man3/lio_listio.3:150
2553 msgid "The B<lio_listio>()  function may fail for the following reasons:"
2554 msgstr ""
2555
2556 #.  Doesn't happen in glibc(?)
2557 #. type: Plain text
2558 #: build/C/man3/lio_listio.3:161
2559 msgid ""
2560 "The number of I/O operations specified by I<nitems> would cause the limit "
2561 "B<AIO_MAX> to be exceeded."
2562 msgstr ""
2563
2564 #.  Doesn't happen in glibc(?)
2565 #. type: Plain text
2566 #: build/C/man3/lio_listio.3:169
2567 msgid "I<mode> is invalid, or I<nitems> exceeds the limit B<AIO_LISTIO_MAX>."
2568 msgstr ""
2569
2570 #. type: Plain text
2571 #: build/C/man3/lio_listio.3:178
2572 msgid ""
2573 "I<mode> was B<LIO_WAIT> and a signal was caught before all I/O operations "
2574 "completed.  (This may even be one of the signals used for asynchronous I/O "
2575 "completion notification.)"
2576 msgstr ""
2577
2578 #. type: TP
2579 #: build/C/man3/lio_listio.3:178
2580 #, no-wrap
2581 msgid "B<EIO>"
2582 msgstr ""
2583
2584 #.  e.g., ioa_reqprio or aio_lio_opcode was invalid
2585 #. type: Plain text
2586 #: build/C/man3/lio_listio.3:186
2587 msgid ""
2588 "One of more of the operations specified by I<aiocb_list> failed.  The "
2589 "application can check the status of each operation using B<aio_return>(3)."
2590 msgstr ""
2591
2592 #. type: Plain text
2593 #: build/C/man3/lio_listio.3:201
2594 msgid ""
2595 "If B<lio_listio>()  fails with the error B<EAGAIN>, B<EINTR>, or B<EIO>, "
2596 "then some of the operations in I<aiocb_list> may have been initiated.  If "
2597 "B<lio_listio>()  fails for any other reason, then none of the I/O operations "
2598 "has been initiated."
2599 msgstr ""
2600
2601 #. type: Plain text
2602 #: build/C/man3/lio_listio.3:205
2603 msgid "The B<lio_listio>()  function is available since glibc 2.1."
2604 msgstr ""
2605
2606 #.  or the control block of the operation
2607 #. type: Plain text
2608 #: build/C/man3/lio_listio.3:215
2609 msgid ""
2610 "It is a good idea to zero out the control blocks before use.  The control "
2611 "blocks must not be changed while the I/O operations are in progress.  The "
2612 "buffer areas being read into or written from must not be accessed during the "
2613 "operations or undefined results may occur.  The memory areas involved must "
2614 "remain valid."
2615 msgstr ""
2616
2617 #. type: Plain text
2618 #: build/C/man3/lio_listio.3:227
2619 msgid ""
2620 "B<aio_cancel>(3), B<aio_error>(3), B<aio_fsync>(3), B<aio_return>(3), "
2621 "B<aio_suspend>(3), B<aio_write>(3), B<aio>(7)"
2622 msgstr ""