OSDN Git Service

d31db652e9be04f0a2516186a8d380f9203ce253
[linuxjm/LDP_man-pages.git] / release / man2 / io_submit.2
1 .\" Copyright (C) 2003 Free Software Foundation, Inc.
2 .\" This file is distributed according to the GNU General Public License.
3 .\" See the file COPYING in the top level source directory for details.
4 .\"
5 .\" Japanese Version Copyright (c) 2003 Akihiro MOTOKI, all rights reserved.
6 .\" Translated Mon Mar  8 2003 by Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
7 .\"
8 .\" .de Sh \" Subsection
9 .\" .br
10 .\" .if t .Sp
11 .\" .ne 5
12 .\" .PP
13 .\" \fB\\$1\fP
14 .\" .PP
15 .\" ..
16 .\" .de Sp \" Vertical space (when we can't use .PP)
17 .\" .if t .sp .5v
18 .\" .if n .sp
19 .\" ..
20 .\" .de Ip \" List item
21 .\" .br
22 .\" .ie \\n(.$>=3 .ne \\$3
23 .\" .el .ne 3
24 .\" .IP "\\$1" \\$2
25 .\" ..
26 .TH IO_SUBMIT 2 2008-06-18 "Linux" "Linux Programmer's Manual"
27 .SH 名前
28 io_submit \- 非同期 I/O ブロックを処理待ちキューに登録する
29 .SH 書式
30 .nf
31 .\" .ad l
32 .\" .hy 0
33 .B #include <libaio.h>
34 .\" #include <linux/aio.h>
35 .sp
36 .\" .HP 16
37 .BI "int io_submit(aio_context_t " ctx_id ", long " nr \
38 ", struct iocb **" iocbpp );
39 .\" .ad
40 .\" .hy
41 .sp
42 \fI\-laio\fP とリンクする。
43 .fi
44 .SH 説明
45 .PP
46 .BR io_submit ()
47 は、AIO コンテキスト \fIctx_id\fP に \fInr\fP 個の I/O
48 リクエストを処理待ちとしてキューに追加する。
49 \fIiocbpp\fP は、AIO コンテキスト \fIctx_id\fP に登録される \fInr\fP 個の
50 AIO 制御ブロックの配列になっていなければならない。
51 .SH 返り値
52 成功すると、
53 .BR io_submit ()
54 は登録した \fIiocb\fP の個数を返す
55 (\fInr\fP が 0 の場合は 0 を返す)。
56 失敗時の返り値については、「注意」の節を参照すること。
57 .SH エラー
58 .TP
59 .B EAGAIN
60 何個かの \fIiocb\fP をキューに入れるのに必要なリソースが得られない。
61 .TP
62 .B EBADF
63 先頭の \fIiocb\fP に指定されたファイル・ディスクリプタが無効である。
64 .TP
65 .B EFAULT
66 データ構造の中に無効なデータを指しているものがある。
67 .TP
68 .B EINVAL
69 \fIctx_id\fP で指定された \fIaio_context\fP が無効である。
70 \fInr\fP が 0 未満である。
71 *iocbpp[0] の \fIiocb\fP が適切に初期化されていないか、
72 指定された操作がその \fIiocb\fP 中のファイル・ディスクリプタに対して
73 無効である。
74 .TP
75 .B ENOSYS
76 .BR io_submit ()
77 はこのアーキテクチャでは実装されていない。
78 .SH バージョン
79 .PP
80 非同期 I/O システム・コールは 2002年8月に Linux 2.5 で初めて登場した。
81 .SH 準拠
82 .PP
83 .BR io_submit ()
84 は Linux 固有であり、移植を想定したプログラムで
85 使用すべきではない。
86 .SH 注意
87 glibc はこのシステムコール用のラッパー関数を提供していない。
88
89 .I libaio
90
91 .BR io_submit ()
92 用に提供されているラッパー関数は、エラーの通知が通常の C ライブラリの
93 慣習にしたがっておらず、エラーの場合には負のエラー番号
94 (エラーの節に列挙されている値の一つを負にしたもの) が返り値となる。
95 .BR syscall (2)
96 経由でシステムコールを起動すると、返り値は通常のエラー通知の慣習に
97 したがってものとなり、エラーの場合には \-1 が返り、
98 .I errno
99 にエラーを示す (正の) 値が設定される。
100 .SH 関連項目
101 .BR io_cancel (2),
102 .BR io_destroy (2),
103 .BR io_getevents (2),
104 .BR io_setup (2),
105 .BR aio (7)
106 .\" .SH 注
107 .\" .PP
108 .\" 非同期 I/O システム・コールは Benjamin LaHaise が書いた。
109 .\" .SH 著者
110 .\" Kent Yoder.