Revision | 4e97855ae13e755d3b00494d44c05344088547c0 (tree) |
---|---|
Time | 2014-04-17 13:03:20 |
Author | Akihiro MOTOKI <amotoki@gmai...> |
Commiter | Akihiro MOTOKI |
(split) LDP: Update translation (socket)
@@ -80,11 +80,9 @@ recv, recvfrom, recvmsg \- ソケットからメッセージを受け取る | ||
80 | 80 | \fBssize_t recvmsg(int \fP\fIsockfd\fP\fB, struct msghdr *\fP\fImsg\fP\fB, int \fP\fIflags\fP\fB);\fP |
81 | 81 | .fi |
82 | 82 | .SH 説明 |
83 | -The \fBrecv\fP(), \fBrecvfrom\fP(), and \fBrecvmsg\fP() calls are used to receive | |
84 | -messages from a socket. They may be used to receive data on both | |
85 | -connectionless and connection\-oriented sockets. This page first describes | |
86 | -common features of all three system calls, and then describes the | |
87 | -differences between the calls. | |
83 | +\fBrecv\fP(), \fBrecvfrom\fP(), \fBrecvmsg\fP() コールは、 ソケットからメッセージを受け取るのに使用される。 | |
84 | +これらはコネクションレス型のソケットにも接続指向 (connection\-oriened) 型のソケットにも使用できる。 このページでは、まずこれら 3 | |
85 | +つのシステムコールすべてに共通の機能について説明し、 システムコール間の違いについて説明する。 | |
88 | 86 | .PP |
89 | 87 | これらの三つのシステムコールはいずれも、成功した場合にはメッセージの長さを返す。 メッセージが長過ぎて指定されたバッファに入り切らなかった場合には、 |
90 | 88 | メッセージを受信したソケットの種類によっては余分のバイトが捨てられる かもしれない。 |
@@ -96,7 +94,7 @@ differences between the calls. | ||
96 | 94 | .PP |
97 | 95 | アプリケーションは \fBselect\fP(2), \fBpoll\fP(2), \fBepoll\fP(7) |
98 | 96 | を使って、ソケットにさらにデータが到着しているかを判定することができる。 |
99 | -.SS "The flags argument" | |
97 | +.SS フラグ引き数 | |
100 | 98 | \fIflags\fP 引き数には、以下の値を 1つ以上、ビット単位の論理和 を取ったものを指定する: |
101 | 99 | .TP |
102 | 100 | \fBMSG_CMSG_CLOEXEC\fP (\fBrecvmsg\fP() のみ; Linux 2.6.23) |
@@ -180,8 +178,8 @@ Internet ストリームソケットでの利用については \fBtcp\fP(7) | ||
180 | 178 | このフラグは、要求した量いっぱいのデータが到着するまで、 操作を停止 (block) するよう要求する。 但し、シグナルを受信したり、エラーや切断 |
181 | 179 | (disconnect) が発生したり、 次に受信されるデータが異なる型だったりした場合には、 要求した量よりデータが少なくても返ることがある。 |
182 | 180 | .SS recvfrom() |
183 | -\fBrecvfrom\fP() places the received message into the buffer \fIbuf\fP. The | |
184 | -caller must specify the size of the buffer in \fIlen\fP. | |
181 | +\fBrecvfrom\fP() は受信したメッセージをバッファ \fIbuf\fP に格納する。 呼び出し元はバッファサイズを \fIlen\fP | |
182 | +で指定しなければならない。 | |
185 | 183 | |
186 | 184 | .\" (Note: for datagram sockets in both the UNIX and Internet domains, |
187 | 185 | .\" .I src_addr |
@@ -191,18 +189,15 @@ caller must specify the size of the buffer in \fIlen\fP. | ||
191 | 189 | .\" filled in for stream sockets in the Internet domain.) |
192 | 190 | .\" [The above notes on AF_UNIX and AF_INET sockets apply as at |
193 | 191 | .\" Kernel 2.4.18. (MTK, 22 Jul 02)] |
194 | -If \fIsrc_addr\fP is not NULL, and the underlying protocol provides the source | |
195 | -address of the message, that source address is placed in the buffer pointed | |
196 | -to by \fIsrc_addr\fP. In this case, \fIaddrlen\fP is a value\-result argument. | |
197 | -Before the call, it should be initialized to the size of the buffer | |
198 | -associated with \fIsrc_addr\fP. Upon return, \fIaddrlen\fP is updated to contain | |
199 | -the actual size of the source address. The returned address is truncated if | |
200 | -the buffer provided is too small; in this case, \fIaddrlen\fP will return a | |
201 | -value greater than was supplied to the call. | |
192 | +\fIsrc_addr\fP が NULL 以外で、下層のプロトコルからメッセージの送信元アドレスが分かる場合、 この送信元アドレスが \fIsrc_addr\fP | |
193 | +が指すバッファに格納される。 この場合、 \fIaddrlen\fP は入出力両用の引き数となる。 呼び出し前に、呼び出し元は \fIsrc_addr\fP | |
194 | +に割り当てたバッファの大きさで初期化しておくべきである。 返ってくる時には、 \fIaddrlen\fP | |
195 | +は送信元アドレスの実際の大きさに変更される。渡されたバッファが小さ過ぎる場合には、返されるアドレスの末尾は 切り詰められる。この場合には、 | |
196 | +\fIaddrlen\fP では、呼び出し時に渡された値よりも大きな値が返される。 | |
202 | 197 | |
203 | 198 | .\" |
204 | -If the caller is not interested in the source address, \fIsrc_addr\fP should be | |
205 | -specified as NULL and \fIaddrlen\fP should be specified as 0. | |
199 | +呼び出し元が送信元アドレスを必要としない場合は、 \fIsrc_addr\fP には NULL を指定し、 \fIaddrlen\fP には 0 | |
200 | +を指定すべきである。 | |
206 | 201 | .SS recv() |
207 | 202 | \fBrecv\fP() コールは通常 \fI接続済みの (connected)\fP ソケットに対してのみ使用される (\fBconnect\fP(2) |
208 | 203 | 参照)。次の呼び出しと等価である。 |
@@ -282,12 +277,10 @@ struct cmsghdr { | ||
282 | 277 | ストリームソケットの接続相手が正しくシャットダウンを実行した場合は、 |
283 | 278 | 返り値は 0 (昔ながらの "end\-of\-file" の戻り値) となる。 |
284 | 279 | |
285 | -Datagram sockets in various domains (e.g., the UNIX and Internet domains) | |
286 | -permit zero\-length datagrams. When such a datagram is received, the return | |
287 | -value is 0. | |
280 | +いくつかのドメインのデータグラムソケット (UNIX ドメインやインターネットドメインなど) では、長さ 0 のデータグラムが送信できる。 | |
281 | +このようなデータグラムを受信した場合、 返り値は 0 となる。 | |
288 | 282 | |
289 | -The value 0 may also be returned if the requested number of bytes to receive | |
290 | -from a stream socket was 0. | |
283 | +ストリームソケットに対する受信要求バイト数が 0 だった場合も、 値 0 が返される。 | |
291 | 284 | .SH エラー |
292 | 285 | これらはソケット層で発生する一般的なエラーである。 他のエラーが下層のプロトコル・モジュールで生成され、 返されるかもしれない。 |
293 | 286 | それらのマニュアルを参照すること。 |
@@ -129,22 +129,19 @@ glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7) 参 | ||
129 | 129 | .PP |
130 | 130 | \fInfds\fP は 3 つの集合に含まれるファイルディスクリプタの最大値に 1 を足したものである。 |
131 | 131 | .PP |
132 | -The \fItimeout\fP argument specifies the interval that \fBselect\fP() should | |
133 | -block waiting for a file descriptor to become ready. The call will block | |
134 | -until either: | |
132 | +\fItimeout\fP 引き数は、 \fBselect\fP() がファイルディスクリプタが ready になるのを待って停止する時間を指定する。 | |
133 | +呼び出しは以下のいずれかになるまで停止する。 | |
135 | 134 | .IP * 3 |
136 | -a file descriptor becomes ready; | |
135 | +ファイルディスクリプタが利用可能になる。 | |
137 | 136 | .IP * |
138 | -the call is interrupted by a signal handler; or | |
137 | +システムコールがシグナルハンドラにより割り込まれた。 | |
139 | 138 | .IP * |
140 | 139 | タイムアウト時間が満了した。 |
141 | 140 | .PP |
142 | -Note that the \fItimeout\fP interval will be rounded up to the system clock | |
143 | -granularity, and kernel scheduling delays mean that the blocking interval | |
144 | -may overrun by a small amount. If both fields of the \fItimeval\fP structure | |
145 | -are zero, then \fBselect\fP() returns immediately. (This is useful for | |
146 | -polling.) If \fItimeout\fP is NULL (no timeout), \fBselect\fP() can block | |
147 | -indefinitely. | |
141 | +この \fItimeout\fP 時間はシステムクロックの粒度に切り上げられ、 | |
142 | +カーネルのスケジューリング遅延により少しだけ長くなる可能性がある点に注意すること。 \fItimeval\fP 構造体の両方のフィールドが 0 の場合、 | |
143 | +\fBselect\fP() はすぐに復帰する (この機能はポーリング (polling) を行うのに便利である)。 \fItimeout\fP に NULL | |
144 | +(タイムアウトなし) が指定されると、 \fBselect\fP() は無期限に停止 (block) する。 | |
148 | 145 | .PP |
149 | 146 | \fIsigmask\fP は、シグナルマスク (\fBsigprocmask\fP(2) を参照) へのポインタである。 \fIsigmask\fP が NULL |
150 | 147 | でない場合、 \fBpselect\fP() は \fIsigmask\fP が指しているシグナルマスクで現在のシグナルマスクを置き換えてから、 "select" |
@@ -210,13 +207,10 @@ Linux では、 \fBselect\fP() は \fItimeout\fP を変更し、残りの停止 | ||
210 | 207 | 構造体を初期化せずにそのまま再利用して \fBselect\fP() を複数回行なっているコードを Linux へ移植する場合にも、問題が起こる。 |
211 | 208 | \fBselect\fP() から復帰した後は \fItimeout\fP は未定義であると考えるべきである。 |
212 | 209 | .SH 返り値 |
213 | -On success, \fBselect\fP() and \fBpselect\fP() return the number of file | |
214 | -descriptors contained in the three returned descriptor sets (that is, the | |
215 | -total number of bits that are set in \fIreadfds\fP, \fIwritefds\fP, \fIexceptfds\fP) | |
216 | -which may be zero if the timeout expires before anything interesting | |
217 | -happens. On error, \-1 is returned, and \fIerrno\fP is set to indicate the | |
218 | -error; the file descriptor sets are unmodified, and \fItimeout\fP becomes | |
219 | -undefined. | |
210 | +成功した場合、 \fBselect\fP() と \fBpselect\fP() は更新された 3 つのディスクリプタ集合に含まれている | |
211 | +ファイルディスクリプタの数 (つまり、 \fIreadfds\fP, \fIwritefds\fP, \fIexceptfds\fP 中の 1 になっているビットの総数) | |
212 | +を返す。 何も起こらずに時間切れになった場合、 ディスクリプタの数は 0 になることもある。 エラーならば \-1 を返し、 \fIerrno\fP | |
213 | +にエラーを示す値が設定される; ファイルディスクリプタ集合は変更されず、 \fItimeout\fP は不定となる。 | |
220 | 214 | .SH エラー |
221 | 215 | .TP |
222 | 216 | \fBEBADF\fP |
@@ -352,8 +352,7 @@ listen_socket(int listen_port) | ||
352 | 352 | int s; |
353 | 353 | int yes; |
354 | 354 | |
355 | - s = socket(AF_INET, SOCK_STREAM, 0); | |
356 | - if (s == \-1) { | |
355 | + if ((s = socket(AF_INET, SOCK_STREAM, 0)) == \-1) { | |
357 | 356 | perror("socket"); |
358 | 357 | return \-1; |
359 | 358 | } |
@@ -109,7 +109,7 @@ NULL と 0 でない場合は \fBEISCONN\fP エラーも返される)。 また | ||
109 | 109 | .\" FIXME ? document MSG_PROXY (which went away in 2.3.15) |
110 | 110 | \fIflags\fP 引き数は、以下のフラグの (0 個以上の) ビット単位の論理和を とったものを指定する。 |
111 | 111 | .TP |
112 | -\fBMSG_CONFIRM\fP (since Linux 2.3.15) | |
112 | +\fBMSG_CONFIRM\fP (Linux 2.3.15 以降) | |
113 | 113 | 転送処理に進展があった、つまり相手側から成功の応答を受けたことをリンク層に 知らせる。リンク層がこの通知を受け取らなかった場合には、通常どおり |
114 | 114 | (ユニキャスト ARP を使うなどの方法で) 近傍 (neighbor) の再検索を行う。 \fBSOCK_DGRAM\fP と \fBSOCK_RAW\fP |
115 | 115 | のソケットに対してのみ有効で、現在のところ IPv4 と IPv6 のみ実装されている。 詳しくは \fBarp\fP(7) 参照のこと。 |
@@ -126,7 +126,7 @@ NULL と 0 でない場合は \fBEISCONN\fP エラーも返される)。 また | ||
126 | 126 | \fBMSG_EOR\fP (Linux 2.2 以降) |
127 | 127 | レコードの終了を指示する (\fBSOCK_SEQPACKET\fP のようにこの概念に対応しているソケット種別のときに有効)。 |
128 | 128 | .TP |
129 | -\fBMSG_MORE\fP (since Linux 2.4.4) | |
129 | +\fBMSG_MORE\fP (Linux 2.4.4 以降) | |
130 | 130 | 呼び出し元にさらに送るデータがあることを示す。 このフラグは TCP ソケットとともに使用され、 \fBTCP_CORK\fP |
131 | 131 | ソケットオプションと同じ効果が得られる (\fBtcp\fP(7) を参照)。 \fBTCP_CORK\fP との違いは、このフラグを使うと呼び出し単位で |
132 | 132 | この機能を有効にできる点である。 |
@@ -168,8 +168,7 @@ struct msghdr { | ||
168 | 168 | カーネルが処理できる制御バッファのソケットあたりの最大長は、 \fI/proc/sys/net/core/optmem_max\fP の値に制限されている。 |
169 | 169 | \fBsocket\fP(7) を参照。 |
170 | 170 | .SH 返り値 |
171 | -On success, these calls return the number of bytes sent. On error, \-1 is | |
172 | -returned, and \fIerrno\fP is set appropriately. | |
171 | +成功した場合、これらのシステムコールは送信されたバイト数を返す。 エラーの場合、 \-1 を返し、 \fIerrno\fP を適切に設定にする。 | |
173 | 172 | .SH エラー |
174 | 173 | これらはソケット層で発生する一般的なエラーである。これ以外に、下層の プロトコル・モジュールで生成されたエラーが返されるかもしれない。 |
175 | 174 | これらについては、それぞれのマニュアルを参照すること。 |
@@ -155,7 +155,7 @@ T} | ||
155 | 155 | \fBSOCK_PACKET\fP |
156 | 156 | 廃止されており新しいプログラムで使用してはいけない。 \fBpacket\fP(7) を参照すること |
157 | 157 | .PP |
158 | -Some socket types may not be implemented by all protocol families. | |
158 | +ある種のソケット型が全てのプロトコル・ファミリで実装されているわけではない。 | |
159 | 159 | .PP |
160 | 160 | Linux 2.6.27 以降では、 \fItype\fP 引数は二つ目の目的にも使用される。 ソケットの型を指定するのに加えて、 |
161 | 161 | 以下の値のいくつかをビット単位の論理和 (OR) で指定することで、 \fBsocket\fP() の振舞いを変更することができる。 |
@@ -81,13 +81,11 @@ socket \- Linux のソケットインターフェース | ||
81 | 81 | \fIsockfd\fP\fB = socket(int \fP\fIsocket_family\fP\fB, int \fP\fIsocket_type\fP\fB, int |
82 | 82 | \fP\fIprotocol\fP\fB);\fP |
83 | 83 | .SH 説明 |
84 | -This manual page describes the Linux networking socket layer user | |
85 | -interface. The BSD compatible sockets are the uniform interface between the | |
86 | -user process and the network protocol stacks in the kernel. The protocol | |
87 | -modules are grouped into \fIprotocol families\fP such as \fBAF_INET\fP, \fBAF_IPX\fP, | |
88 | -and \fBAF_PACKET\fP, and \fIsocket types\fP such as \fBSOCK_STREAM\fP or | |
89 | -\fBSOCK_DGRAM\fP. See \fBsocket\fP(2) for more information on families and | |
90 | -types. | |
84 | +このマニュアルページは Linux ネットワークのソケット層に対する ユーザインターフェースを記述するものである。 BSD | |
85 | +互換ソケットは、ユーザプロセスとカーネル内部の ネットワークプロトコルスタック群との間に、 統一的なインターフェースを提供するものである。 | |
86 | +プロトコルモジュールは \fIプロトコルファミリー (protocol familiy)\fP (例: \fBAF_INET\fP, \fBAF_IPX\fP, | |
87 | +\fBAF_PACKET\fP) と \fIソケットタイプ (socket types)\fP (例: \fBSOCK_STREAM\fP, | |
88 | +\fBSOCK_DGRAM\fP) に分類できる。 これらに関するより詳しい情報は \fBsocket\fP(2) を参照のこと。 | |
91 | 89 | .SS ソケット層の関数群 |
92 | 90 | これらの関数はユーザプロセスがパケットを送受信したり、その他のソケット操作を 行ったりするために用いられる。詳細はそれぞれのマニュアルページを |
93 | 91 | 見てほしい。 |
@@ -289,13 +287,12 @@ struct linger { | ||
289 | 287 | .TP |
290 | 288 | \fBSO_PEEK_OFF\fP (Linux 3.4 以降) |
291 | 289 | .\" commit ef64a54f6e558155b4f149bb10666b9e914b6c54 |
292 | -This option, which is currently supported only for \fBunix\fP(7) sockets, sets | |
293 | -the value of the "peek offset" for the \fBrecv\fP(2) system call when used | |
294 | -with \fBMSG_PEEK\fP flag. | |
290 | +\fBMSG_PEEK\fP フラグと一緒に使用された場合 \fBrecv\fP(2) システムコールの "peek offset" | |
291 | +にこのオプションの値が設定される。現在のところ、このオプションは \fBunix\fP(7) ソケットでのみサポートされている。 | |
295 | 292 | |
296 | -When this option is set to a negative value (it is set to \-1 for all new | |
297 | -sockets), traditional behavior is provided: \fBrecv\fP(2) with the \fBMSG_PEEK\fP | |
298 | -flag will peek data from the front of the queue. | |
293 | +このオプションが負の値に設定された場合、従来の動作となる。 つまり \fBMSG_PEEK\fP フラグが指定された \fBrecv\fP(2) | |
294 | +は、キューの先頭のデータに対して peek 処理を行う (データを読み出すが、キューからデータの削除を行わない)。 | |
295 | +新規のソケットではこのオプションの値は必ず \-1 に設定される。 | |
299 | 296 | |
300 | 297 | このオプションに 0 以上の値が設定されると、 そのソケットのキュー上のオプション値で指定されたバイトオフセットにあるデータが次の peek |
301 | 298 | 処理で返される。 同時に、 "peek offset" がキューから peek 処理されたバイト数だけ加算される。したがって、次の peek |
@@ -7,7 +7,7 @@ msgid "" | ||
7 | 7 | msgstr "" |
8 | 8 | "Project-Id-Version: PACKAGE VERSION\n" |
9 | 9 | "POT-Creation-Date: 2014-04-13 10:27+0900\n" |
10 | -"PO-Revision-Date: 2014-04-14 23:24+0900\n" | |
10 | +"PO-Revision-Date: 2014-04-17 13:02+0900\n" | |
11 | 11 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
12 | 12 | "Language-Team: LANGUAGE <LL@li.org>\n" |
13 | 13 | "Language: \n" |
@@ -3168,21 +3168,13 @@ msgstr "B<ssize_t recvmsg(int >I<sockfd>B<, struct msghdr *>I<msg>B<, int >I<fla | ||
3168 | 3168 | |
3169 | 3169 | #. type: Plain text |
3170 | 3170 | #: build/C/man2/recv.2:70 |
3171 | -#, fuzzy | |
3172 | -#| msgid "" | |
3173 | -#| "The B<recvfrom>() and B<recvmsg>() calls are used to receive messages " | |
3174 | -#| "from a socket, and may be used to receive data on a socket whether or not " | |
3175 | -#| "it is connection-oriented." | |
3176 | 3171 | msgid "" |
3177 | 3172 | "The B<recv>(), B<recvfrom>(), and B<recvmsg>() calls are used to receive " |
3178 | 3173 | "messages from a socket. They may be used to receive data on both " |
3179 | 3174 | "connectionless and connection-oriented sockets. This page first describes " |
3180 | 3175 | "common features of all three system calls, and then describes the " |
3181 | 3176 | "differences between the calls." |
3182 | -msgstr "" | |
3183 | -"B<recvfrom>() と B<recvmsg>() コールは、ソケットからメッセージを受け取るの" | |
3184 | -"に使用する。 またソケットのデータ受信にも使うことができ、 このときソケットは" | |
3185 | -"接続指向 (connection-oriened) であってもなくてもよい。" | |
3177 | +msgstr "B<recv>(), B<recvfrom>(), B<recvmsg>() コールは、 ソケットからメッセージを受け取るのに使用される。 これらはコネクションレス型のソケットにも接続指向 (connection-oriened) 型のソケットにも使用できる。 このページでは、まずこれら 3 つのシステムコールすべてに共通の機能について説明し、 システムコール間の違いについて説明する。" | |
3186 | 3178 | |
3187 | 3179 | #. type: Plain text |
3188 | 3180 | #: build/C/man2/recv.2:76 |
@@ -3220,7 +3212,7 @@ msgstr "アプリケーションは B<select>(2), B<poll>(2), B<epoll>(7) を使 | ||
3220 | 3212 | #: build/C/man2/recv.2:93 |
3221 | 3213 | #, no-wrap |
3222 | 3214 | msgid "The flags argument" |
3223 | -msgstr "" | |
3215 | +msgstr "フラグ引き数" | |
3224 | 3216 | |
3225 | 3217 | #. type: Plain text |
3226 | 3218 | #: build/C/man2/recv.2:97 |
@@ -3464,7 +3456,7 @@ msgstr "recvfrom()" | ||
3464 | 3456 | msgid "" |
3465 | 3457 | "B<recvfrom>() places the received message into the buffer I<buf>. The " |
3466 | 3458 | "caller must specify the size of the buffer in I<len>." |
3467 | -msgstr "" | |
3459 | +msgstr "B<recvfrom>() は受信したメッセージをバッファ I<buf> に格納する。 呼び出し元はバッファサイズを I<len> で指定しなければならない。" | |
3468 | 3460 | |
3469 | 3461 | #. (Note: for datagram sockets in both the UNIX and Internet domains, |
3470 | 3462 | #. .I src_addr |
@@ -3476,17 +3468,6 @@ msgstr "" | ||
3476 | 3468 | #. Kernel 2.4.18. (MTK, 22 Jul 02)] |
3477 | 3469 | #. type: Plain text |
3478 | 3470 | #: build/C/man2/recv.2:279 |
3479 | -#, fuzzy | |
3480 | -#| msgid "" | |
3481 | -#| "If I<src_addr> is not NULL, and the underlying protocol provides the " | |
3482 | -#| "source address, this source address is filled in. When I<src_addr> is " | |
3483 | -#| "NULL, nothing is filled in; in this case, I<addrlen> is not used, and " | |
3484 | -#| "should also be NULL. The argument I<addrlen> is a value-result argument, " | |
3485 | -#| "which the caller should initialize before the call to the size of the " | |
3486 | -#| "buffer associated with I<src_addr>, and modified on return to indicate " | |
3487 | -#| "the actual size of the source address. The returned address is truncated " | |
3488 | -#| "if the buffer provided is too small; in this case, I<addrlen> will return " | |
3489 | -#| "a value greater than was supplied to the call." | |
3490 | 3471 | msgid "" |
3491 | 3472 | "If I<src_addr> is not NULL, and the underlying protocol provides the source " |
3492 | 3473 | "address of the message, that source address is placed in the buffer pointed " |
@@ -3496,23 +3477,14 @@ msgid "" | ||
3496 | 3477 | "the actual size of the source address. The returned address is truncated if " |
3497 | 3478 | "the buffer provided is too small; in this case, I<addrlen> will return a " |
3498 | 3479 | "value greater than was supplied to the call." |
3499 | -msgstr "" | |
3500 | -"I<src_addr> が NULL 以外で、下層のプロトコルから送信元アドレスが分かる場合、 " | |
3501 | -"I<src_addr> にはこの送信元アドレスが入れられる。 I<src_addr> が NULL の場" | |
3502 | -"合、 I<src_addr> には何も入らない。この場合、 I<addrlen> は使用されず、この引" | |
3503 | -"き数は NULL にしておくべきである。 引き数 I<addrlen> は入出力両用の引き数であ" | |
3504 | -"る。呼び出し時には、呼び出し元が I<src_addr> に割り当てたバッファの大きさで初" | |
3505 | -"期化しておくべきである。 返ってくる時には、送信元アドレスの実際の大きさに変更" | |
3506 | -"される。 渡されたバッファが小さ過ぎる場合には、返されるアドレスの末尾は 切り" | |
3507 | -"詰められる。この場合には、 I<addrlen> では、呼び出し時に渡された値よりも大き" | |
3508 | -"な値が返される。" | |
3480 | +msgstr "I<src_addr> が NULL 以外で、下層のプロトコルからメッセージの送信元アドレスが分かる場合、 この送信元アドレスが I<src_addr> が指すバッファに格納される。 この場合、 I<addrlen> は入出力両用の引き数となる。 呼び出し前に、呼び出し元は I<src_addr> に割り当てたバッファの大きさで初期化しておくべきである。 返ってくる時には、 I<addrlen> は送信元アドレスの実際の大きさに変更される。渡されたバッファが小さ過ぎる場合には、返されるアドレスの末尾は 切り詰められる。この場合には、 I<addrlen> では、呼び出し時に渡された値よりも大きな値が返される。" | |
3509 | 3481 | |
3510 | 3482 | #. type: Plain text |
3511 | 3483 | #: build/C/man2/recv.2:286 |
3512 | 3484 | msgid "" |
3513 | 3485 | "If the caller is not interested in the source address, I<src_addr> should be " |
3514 | 3486 | "specified as NULL and I<addrlen> should be specified as 0." |
3515 | -msgstr "" | |
3487 | +msgstr "呼び出し元が送信元アドレスを必要としない場合は、 I<src_addr> には NULL を指定し、 I<addrlen> には 0 を指定すべきである。" | |
3516 | 3488 | |
3517 | 3489 | #. type: SS |
3518 | 3490 | #: build/C/man2/recv.2:286 |
@@ -3749,14 +3721,14 @@ msgid "" | ||
3749 | 3721 | "Datagram sockets in various domains (e.g., the UNIX and Internet domains) " |
3750 | 3722 | "permit zero-length datagrams. When such a datagram is received, the return " |
3751 | 3723 | "value is 0." |
3752 | -msgstr "" | |
3724 | +msgstr "いくつかのドメインのデータグラムソケット (UNIX ドメインやインターネットドメインなど) では、長さ 0 のデータグラムが送信できる。 このようなデータグラムを受信した場合、 返り値は 0 となる。" | |
3753 | 3725 | |
3754 | 3726 | #. type: Plain text |
3755 | 3727 | #: build/C/man2/recv.2:416 |
3756 | 3728 | msgid "" |
3757 | 3729 | "The value 0 may also be returned if the requested number of bytes to receive " |
3758 | 3730 | "from a stream socket was 0." |
3759 | -msgstr "" | |
3731 | +msgstr "ストリームソケットに対する受信要求バイト数が 0 だった場合も、 値 0 が返される。" | |
3760 | 3732 | |
3761 | 3733 | #. type: Plain text |
3762 | 3734 | #: build/C/man2/recv.2:421 |
@@ -4573,7 +4545,7 @@ msgid "" | ||
4573 | 4545 | "The I<timeout> argument specifies the interval that B<select>() should " |
4574 | 4546 | "block waiting for a file descriptor to become ready. The call will block " |
4575 | 4547 | "until either:" |
4576 | -msgstr "" | |
4548 | +msgstr "I<timeout> 引き数は、 B<select>() がファイルディスクリプタが ready になるのを待って停止する時間を指定する。 呼び出しは以下のいずれかになるまで停止する。" | |
4577 | 4549 | |
4578 | 4550 | #. type: IP |
4579 | 4551 | #: build/C/man2/select.2:166 build/C/man2/select.2:168 |
@@ -4585,17 +4557,12 @@ msgstr "*" | ||
4585 | 4557 | #. type: Plain text |
4586 | 4558 | #: build/C/man2/select.2:168 |
4587 | 4559 | msgid "a file descriptor becomes ready;" |
4588 | -msgstr "" | |
4560 | +msgstr "ファイルディスクリプタが利用可能になる。" | |
4589 | 4561 | |
4590 | 4562 | #. type: Plain text |
4591 | 4563 | #: build/C/man2/select.2:170 |
4592 | -#, fuzzy | |
4593 | -#| msgid "" | |
4594 | -#| "The system call was interrupted by a signal that was caught; see B<signal>" | |
4595 | -#| "(7)." | |
4596 | 4564 | msgid "the call is interrupted by a signal handler; or" |
4597 | -msgstr "" | |
4598 | -"捕捉されたシグナルによりシステムコールが中断された。 B<signal>(7) 参照。" | |
4565 | +msgstr "システムコールがシグナルハンドラにより割り込まれた。" | |
4599 | 4566 | |
4600 | 4567 | #. type: Plain text |
4601 | 4568 | #: build/C/man2/select.2:172 |
@@ -4604,15 +4571,6 @@ msgstr "タイムアウト時間が満了した。" | ||
4604 | 4571 | |
4605 | 4572 | #. type: Plain text |
4606 | 4573 | #: build/C/man2/select.2:189 |
4607 | -#, fuzzy | |
4608 | -#| msgid "" | |
4609 | -#| "The I<timeout> argument specifies the interval that B<select>() should " | |
4610 | -#| "block waiting for a file descriptor to become ready. This interval will " | |
4611 | -#| "be rounded up to the system clock granularity, and kernel scheduling " | |
4612 | -#| "delays mean that the blocking interval may overrun by a small amount. If " | |
4613 | -#| "both fields of the I<timeval> structure are zero, then B<select>() " | |
4614 | -#| "returns immediately. (This is useful for polling.) If I<timeout> is " | |
4615 | -#| "NULL (no timeout), B<select>() can block indefinitely." | |
4616 | 4574 | msgid "" |
4617 | 4575 | "Note that the I<timeout> interval will be rounded up to the system clock " |
4618 | 4576 | "granularity, and kernel scheduling delays mean that the blocking interval " |
@@ -4620,15 +4578,7 @@ msgid "" | ||
4620 | 4578 | "are zero, then B<select>() returns immediately. (This is useful for " |
4621 | 4579 | "polling.) If I<timeout> is NULL (no timeout), B<select>() can block " |
4622 | 4580 | "indefinitely." |
4623 | -msgstr "" | |
4624 | -"I<timeout> 引き数で、ファイルディスクリプタが ready になるのを待って\n" | |
4625 | -"B<select>() が停止する停止時間を指定する\n" | |
4626 | -"(この停止時間はシステムクロックの粒度に切り上げられ、\n" | |
4627 | -"カーネルのスケジューリング遅延により少しだけ長くなる可能性がある)。\n" | |
4628 | -"I<timeval> 構造体の両方のフィールドが 0 の場合、 B<select>() はすぐに復\n" | |
4629 | -"帰する (この機能はポーリング (polling) を行うのに便利である)。\n" | |
4630 | -"I<timeout> に NULL (タイムアウトなし) が指定されると、 B<select>() は無\n" | |
4631 | -"期限に停止 (block) する。" | |
4581 | +msgstr "この I<timeout> 時間はシステムクロックの粒度に切り上げられ、 カーネルのスケジューリング遅延により少しだけ長くなる可能性がある点に注意すること。 I<timeval> 構造体の両方のフィールドが 0 の場合、 B<select>() はすぐに復帰する (この機能はポーリング (polling) を行うのに便利である)。 I<timeout> に NULL (タイムアウトなし) が指定されると、 B<select>() は無期限に停止 (block) する。" | |
4632 | 4582 | |
4633 | 4583 | #. type: Plain text |
4634 | 4584 | #: build/C/man2/select.2:199 |
@@ -4796,15 +4746,6 @@ msgstr "" | ||
4796 | 4746 | |
4797 | 4747 | #. type: Plain text |
4798 | 4748 | #: build/C/man2/select.2:317 |
4799 | -#, fuzzy | |
4800 | -#| msgid "" | |
4801 | -#| "On success, B<select>() and B<pselect>() return the number of file " | |
4802 | -#| "descriptors contained in the three returned descriptor sets (that is, the " | |
4803 | -#| "total number of bits that are set in I<readfds>, I<writefds>, " | |
4804 | -#| "I<exceptfds>) which may be zero if the timeout expires before anything " | |
4805 | -#| "interesting happens. On error, -1 is returned, and I<errno> is set " | |
4806 | -#| "appropriately; the sets and I<timeout> become undefined, so do not rely " | |
4807 | -#| "on their contents after an error." | |
4808 | 4749 | msgid "" |
4809 | 4750 | "On success, B<select>() and B<pselect>() return the number of file " |
4810 | 4751 | "descriptors contained in the three returned descriptor sets (that is, the " |
@@ -4813,13 +4754,7 @@ msgid "" | ||
4813 | 4754 | "happens. On error, -1 is returned, and I<errno> is set to indicate the " |
4814 | 4755 | "error; the file descriptor sets are unmodified, and I<timeout> becomes " |
4815 | 4756 | "undefined." |
4816 | -msgstr "" | |
4817 | -"成功した場合、 B<select>() と B<pselect>() は更新された 3 つのディスクリプ" | |
4818 | -"タ集合に含まれている ファイルディスクリプタの数 (つまり、 I<readfds>, " | |
4819 | -"I<writefds>, I<exceptfds> 中の 1 になっているビットの総数) を返す。 何も起こ" | |
4820 | -"らずに時間切れになった場合、 ディスクリプタの数は 0 になることもある。 エラー" | |
4821 | -"ならば -1 を返し、 I<errno> に適切な値が設定される; 集合と I<timeout> は未定" | |
4822 | -"義となるので、エラーが起こった後はそれらの内容を信頼してはならない。" | |
4757 | +msgstr "成功した場合、 B<select>() と B<pselect>() は更新された 3 つのディスクリプタ集合に含まれている ファイルディスクリプタの数 (つまり、 I<readfds>, I<writefds>, I<exceptfds> 中の 1 になっているビットの総数) を返す。 何も起こらずに時間切れになった場合、 ディスクリプタの数は 0 になることもある。 エラーならば -1 を返し、 I<errno> にエラーを示す値が設定される; ファイルディスクリプタ集合は変更されず、 I<timeout> は不定となる。" | |
4823 | 4758 | |
4824 | 4759 | #. type: Plain text |
4825 | 4760 | #: build/C/man2/select.2:323 |
@@ -5241,10 +5176,9 @@ msgstr "SELECT_TUT" | ||
5241 | 5176 | |
5242 | 5177 | #. type: TH |
5243 | 5178 | #: build/C/man2/select_tut.2:32 |
5244 | -#, fuzzy, no-wrap | |
5245 | -#| msgid "2013-09-04" | |
5179 | +#, no-wrap | |
5246 | 5180 | msgid "2013-12-30" |
5247 | -msgstr "2013-09-04" | |
5181 | +msgstr "2013-12-30" | |
5248 | 5182 | |
5249 | 5183 | #. type: Plain text |
5250 | 5184 | #: build/C/man2/select_tut.2:52 |
@@ -6096,31 +6030,7 @@ msgstr "" | ||
6096 | 6030 | |
6097 | 6031 | #. type: Plain text |
6098 | 6032 | #: build/C/man2/select_tut.2:584 |
6099 | -#, fuzzy, no-wrap | |
6100 | -#| msgid "" | |
6101 | -#| " if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1) {\n" | |
6102 | -#| " perror(\"socket\");\n" | |
6103 | -#| " return -1;\n" | |
6104 | -#| " }\n" | |
6105 | -#| " yes = 1;\n" | |
6106 | -#| " if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR,\n" | |
6107 | -#| " &yes, sizeof(yes)) == -1) {\n" | |
6108 | -#| " perror(\"setsockopt\");\n" | |
6109 | -#| " close(s);\n" | |
6110 | -#| " return -1;\n" | |
6111 | -#| " }\n" | |
6112 | -#| " memset(&a, 0, sizeof(a));\n" | |
6113 | -#| " a.sin_port = htons(listen_port);\n" | |
6114 | -#| " a.sin_family = AF_INET;\n" | |
6115 | -#| " if (bind(s, (struct sockaddr *) &a, sizeof(a)) == -1) {\n" | |
6116 | -#| " perror(\"bind\");\n" | |
6117 | -#| " close(s);\n" | |
6118 | -#| " return -1;\n" | |
6119 | -#| " }\n" | |
6120 | -#| " printf(\"accepting connections on port %d\\en\", listen_port);\n" | |
6121 | -#| " listen(s, 10);\n" | |
6122 | -#| " return s;\n" | |
6123 | -#| "}\n" | |
6033 | +#, no-wrap | |
6124 | 6034 | msgid "" |
6125 | 6035 | " s = socket(AF_INET, SOCK_STREAM, 0);\n" |
6126 | 6036 | " if (s == -1) {\n" |
@@ -6189,13 +6099,7 @@ msgstr "" | ||
6189 | 6099 | |
6190 | 6100 | #. type: Plain text |
6191 | 6101 | #: build/C/man2/select_tut.2:597 |
6192 | -#, fuzzy, no-wrap | |
6193 | -#| msgid "" | |
6194 | -#| " if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1) {\n" | |
6195 | -#| " perror(\"socket\");\n" | |
6196 | -#| " close(s);\n" | |
6197 | -#| " return -1;\n" | |
6198 | -#| " }\n" | |
6102 | +#, no-wrap | |
6199 | 6103 | msgid "" |
6200 | 6104 | " s = socket(AF_INET, SOCK_STREAM, 0);\n" |
6201 | 6105 | " if (s == -1) {\n" |
@@ -6204,7 +6108,8 @@ msgid "" | ||
6204 | 6108 | " return -1;\n" |
6205 | 6109 | " }\n" |
6206 | 6110 | msgstr "" |
6207 | -" if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1) {\n" | |
6111 | +" s = socket(AF_INET, SOCK_STREAM, 0);\n" | |
6112 | +" if (s == -1) {\n" | |
6208 | 6113 | " perror(\"socket\");\n" |
6209 | 6114 | " close(s);\n" |
6210 | 6115 | " return -1;\n" |
@@ -6765,10 +6670,9 @@ msgstr "SEND" | ||
6765 | 6670 | |
6766 | 6671 | #. type: TH |
6767 | 6672 | #: build/C/man2/send.2:40 |
6768 | -#, fuzzy, no-wrap | |
6769 | -#| msgid "2012-12-14" | |
6673 | +#, no-wrap | |
6770 | 6674 | msgid "2013-12-12" |
6771 | -msgstr "2012-12-14" | |
6675 | +msgstr "2013-12-12" | |
6772 | 6676 | |
6773 | 6677 | #. type: Plain text |
6774 | 6678 | #: build/C/man2/send.2:43 |
@@ -6935,8 +6839,7 @@ msgstr "" | ||
6935 | 6839 | |
6936 | 6840 | #. type: TP |
6937 | 6841 | #: build/C/man2/send.2:166 |
6938 | -#, fuzzy, no-wrap | |
6939 | -#| msgid "B<MSG_CONFIRM> (Since Linux 2.3.15)" | |
6842 | +#, no-wrap | |
6940 | 6843 | msgid "B<MSG_CONFIRM> (since Linux 2.3.15)" |
6941 | 6844 | msgstr "B<MSG_CONFIRM> (Linux 2.3.15 以降)" |
6942 | 6845 |
@@ -7002,8 +6905,7 @@ msgstr "" | ||
7002 | 6905 | |
7003 | 6906 | #. type: TP |
7004 | 6907 | #: build/C/man2/send.2:203 |
7005 | -#, fuzzy, no-wrap | |
7006 | -#| msgid "B<MSG_MORE> (Since Linux 2.4.4)" | |
6908 | +#, no-wrap | |
7007 | 6909 | msgid "B<MSG_MORE> (since Linux 2.4.4)" |
7008 | 6910 | msgstr "B<MSG_MORE> (Linux 2.4.4 以降)" |
7009 | 6911 |
@@ -7087,10 +6989,6 @@ msgstr "" | ||
7087 | 6989 | |
7088 | 6990 | #. type: Plain text |
7089 | 6991 | #: build/C/man2/send.2:280 |
7090 | -#, fuzzy | |
7091 | -#| msgid "" | |
7092 | -#| "On success, these calls return the number of characters sent. On error, " | |
7093 | -#| "-1 is returned, and I<errno> is set appropriately." | |
7094 | 6992 | msgid "" |
7095 | 6993 | "On success, these calls return the number of bytes sent. On error, -1 is " |
7096 | 6994 | "returned, and I<errno> is set appropriately." |
@@ -7650,10 +7548,9 @@ msgstr "SOCKATMARK" | ||
7650 | 7548 | |
7651 | 7549 | #. type: TH |
7652 | 7550 | #: build/C/man3/sockatmark.3:25 |
7653 | -#, fuzzy, no-wrap | |
7654 | -#| msgid "2007-12-28" | |
7551 | +#, no-wrap | |
7655 | 7552 | msgid "2014-02-28" |
7656 | -msgstr "2007-12-28" | |
7553 | +msgstr "2014-02-28" | |
7657 | 7554 | |
7658 | 7555 | #. type: Plain text |
7659 | 7556 | #: build/C/man3/sockatmark.3:28 |
@@ -8207,14 +8104,8 @@ msgstr "" | ||
8207 | 8104 | |
8208 | 8105 | #. type: Plain text |
8209 | 8106 | #: build/C/man2/socket.2:152 |
8210 | -#, fuzzy | |
8211 | -#| msgid "" | |
8212 | -#| "Some socket types may not be implemented by all protocol families; for " | |
8213 | -#| "example, B<SOCK_SEQPACKET> is not implemented for B<AF_INET>." | |
8214 | 8107 | msgid "Some socket types may not be implemented by all protocol families." |
8215 | -msgstr "" | |
8216 | -"ある種のソケット型が全てのプロトコル・ファミリで実装されているわけではない。 " | |
8217 | -"例えば B<SOCK_SEQPACKET> は B<AF_INET> には実装されていない。" | |
8108 | +msgstr "ある種のソケット型が全てのプロトコル・ファミリで実装されているわけではない。" | |
8218 | 8109 | |
8219 | 8110 | #. type: Plain text |
8220 | 8111 | #: build/C/man2/socket.2:160 |
@@ -8511,7 +8402,7 @@ msgstr "" | ||
8511 | 8402 | #: build/C/man7/socket.7:56 |
8512 | 8403 | #, no-wrap |
8513 | 8404 | msgid "2014-02-21" |
8514 | -msgstr "" | |
8405 | +msgstr "2014-02-21" | |
8515 | 8406 | |
8516 | 8407 | #. type: Plain text |
8517 | 8408 | #: build/C/man7/socket.7:59 |
@@ -8529,15 +8420,6 @@ msgstr "" | ||
8529 | 8420 | |
8530 | 8421 | #. type: Plain text |
8531 | 8422 | #: build/C/man7/socket.7:82 |
8532 | -#, fuzzy | |
8533 | -#| msgid "" | |
8534 | -#| "This manual page describes the Linux networking socket layer user " | |
8535 | -#| "interface. The BSD compatible sockets are the uniform interface between " | |
8536 | -#| "the user process and the network protocol stacks in the kernel. The " | |
8537 | -#| "protocol modules are grouped into I<protocol families> like B<AF_INET>, " | |
8538 | -#| "B<AF_IPX>, B<AF_PACKET> and I<socket types> like B<SOCK_STREAM> or " | |
8539 | -#| "B<SOCK_DGRAM>. See B<socket>(2) for more information on families and " | |
8540 | -#| "types." | |
8541 | 8423 | msgid "" |
8542 | 8424 | "This manual page describes the Linux networking socket layer user " |
8543 | 8425 | "interface. The BSD compatible sockets are the uniform interface between the " |
@@ -9223,11 +9105,6 @@ msgstr "B<SO_PEEK_OFF> (Linux 3.4 以降)" | ||
9223 | 9105 | #. commit ef64a54f6e558155b4f149bb10666b9e914b6c54 |
9224 | 9106 | #. type: Plain text |
9225 | 9107 | #: build/C/man7/socket.7:456 |
9226 | -#, fuzzy | |
9227 | -#| msgid "" | |
9228 | -#| "This option, which is currently supported only for B<unix>(7) sockets, " | |
9229 | -#| "sets the value of the \"peek offset\" for the B<recv(2)> system call when " | |
9230 | -#| "used with B<MSG_PEEK> flag." | |
9231 | 9108 | msgid "" |
9232 | 9109 | "This option, which is currently supported only for B<unix>(7) sockets, sets " |
9233 | 9110 | "the value of the \"peek offset\" for the B<recv>(2) system call when used " |
@@ -9239,11 +9116,6 @@ msgstr "" | ||
9239 | 9116 | |
9240 | 9117 | #. type: Plain text |
9241 | 9118 | #: build/C/man7/socket.7:464 |
9242 | -#, fuzzy | |
9243 | -#| msgid "" | |
9244 | -#| "When this option is set to a negative value (it is set to -1 for all new " | |
9245 | -#| "sockets), traditional behavior is provided: B<recv(2)> with the " | |
9246 | -#| "B<MSG_PEEK> flag will peek data from the front of the queue." | |
9247 | 9119 | msgid "" |
9248 | 9120 | "When this option is set to a negative value (it is set to -1 for all new " |
9249 | 9121 | "sockets), traditional behavior is provided: B<recv>(2) with the B<MSG_PEEK> " |
@@ -1,8 +1,2 @@ | ||
1 | 1 | # pagename,#complete,#remaining,#all |
2 | -recv.2,99,7,106 | |
3 | -select.2,102,5,107 | |
4 | -select_tut.2,131,3,134 | |
5 | -send.2,90,4,94 | |
6 | -sockatmark.3,44,1,45 | |
7 | -socket.2,126,1,127 | |
8 | -socket.7,175,9,184 | |
2 | +socket.7,179,5,184 |
@@ -97,13 +97,7 @@ | ||
97 | 97 | <TR class="over70"><TD>timer_getoverrun.2</TD><TD>9/36</TD><TD>75.00</TD></TR> |
98 | 98 | <TR><TD>timer_settime.2</TD><TD>17/44</TD><TD>61.36</TD></TR> |
99 | 99 | <TR><TD ALIGN="center" COLSPAN=3 BGCOLOR="Yellow"><B>socket</B></TD></TR> |
100 | -<TR class="over80"><TD>recv.2</TD><TD>7/106</TD><TD>93.40</TD></TR> | |
101 | -<TR class="over80"><TD>select.2</TD><TD>5/107</TD><TD>95.33</TD></TR> | |
102 | -<TR class="over80"><TD>select_tut.2</TD><TD>3/134</TD><TD>97.76</TD></TR> | |
103 | -<TR class="over80"><TD>send.2</TD><TD>4/94</TD><TD>95.74</TD></TR> | |
104 | -<TR class="over80"><TD>sockatmark.3</TD><TD>1/45</TD><TD>97.78</TD></TR> | |
105 | -<TR class="over80"><TD>socket.2</TD><TD>1/127</TD><TD>99.21</TD></TR> | |
106 | -<TR class="over80"><TD>socket.7</TD><TD>9/184</TD><TD>95.11</TD></TR> | |
100 | +<TR class="over80"><TD>socket.7</TD><TD>5/184</TD><TD>97.28</TD></TR> | |
107 | 101 | <TR><TD ALIGN="center" COLSPAN=3 BGCOLOR="Yellow"><B>special</B></TD></TR> |
108 | 102 | <TR><TD>cciss.4</TD><TD>44/88</TD><TD>50.00</TD></TR> |
109 | 103 | <TR><TD>cpuid.4</TD><TD>13/24</TD><TD>45.83</TD></TR> |
@@ -147,6 +141,6 @@ | ||
147 | 141 | <TR><TD ALIGN="center" COLSPAN=3 BGCOLOR="Yellow"><B>wctype</B></TD></TR> |
148 | 142 | <TR class="over80"><TD>towlower.3</TD><TD>4/37</TD><TD>89.19</TD></TR> |
149 | 143 | <TR class="over80"><TD>towupper.3</TD><TD>4/37</TD><TD>89.19</TD></TR> |
150 | -<TR><TD COLSPAN=3>Total 114 pages</TD></TR> | |
144 | +<TR><TD COLSPAN=3>Total 108 pages</TD></TR> | |
151 | 145 | </TABLE> |
152 | 146 | </BODY></HTML> |