# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2014-04-13 10:27+0900\n" "PO-Revision-Date: 2014-04-13 10:39+0900\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: TH #: build/C/man2/accept.2:41 #, no-wrap msgid "ACCEPT" msgstr "ACCEPT" #. type: TH #: build/C/man2/accept.2:41 #, no-wrap msgid "2010-09-10" msgstr "2010-09-10" #. type: TH #: build/C/man2/accept.2:41 build/C/man2/bind.2:68 build/C/man2/connect.2:67 #: build/C/man2/getsockname.2:40 build/C/man2/getsockopt.2:44 #: build/C/man2/listen.2:45 build/C/man2/recv.2:41 build/C/man2/recvmmsg.2:31 #: build/C/man2/select.2:38 build/C/man2/select_tut.2:32 #: build/C/man2/send.2:40 build/C/man2/sendmmsg.2:28 #: build/C/man3/sockatmark.3:25 build/C/man2/socket.2:43 #: build/C/man7/socket.7:56 build/C/man2/socketcall.2:25 #: build/C/man2/socketpair.2:42 #, no-wrap msgid "Linux" msgstr "Linux" #. type: TH #: build/C/man2/accept.2:41 build/C/man2/bind.2:68 #: build/C/man3/bindresvport.3:30 build/C/man2/connect.2:67 #: build/C/man3/getifaddrs.3:36 build/C/man2/getsockname.2:40 #: build/C/man2/getsockopt.2:44 build/C/man3/if_nameindex.3:26 #: build/C/man3/if_nametoindex.3:25 build/C/man2/listen.2:45 #: build/C/man2/recv.2:41 build/C/man2/recvmmsg.2:31 build/C/man2/select.2:38 #: build/C/man2/select_tut.2:32 build/C/man2/send.2:40 #: build/C/man2/sendmmsg.2:28 build/C/man3/sockatmark.3:25 #: build/C/man2/socket.2:43 build/C/man7/socket.7:56 #: build/C/man2/socketcall.2:25 build/C/man2/socketpair.2:42 #, no-wrap msgid "Linux Programmer's Manual" msgstr "Linux Programmer's Manual" #. type: SH #: build/C/man2/accept.2:42 build/C/man2/bind.2:69 #: build/C/man3/bindresvport.3:31 build/C/man2/connect.2:68 #: build/C/man3/getifaddrs.3:37 build/C/man2/getsockname.2:41 #: build/C/man2/getsockopt.2:45 build/C/man3/if_nameindex.3:27 #: build/C/man3/if_nametoindex.3:26 build/C/man2/listen.2:46 #: build/C/man2/recv.2:42 build/C/man2/recvmmsg.2:32 build/C/man2/select.2:39 #: build/C/man2/select_tut.2:33 build/C/man2/send.2:41 #: build/C/man2/sendmmsg.2:29 build/C/man3/sockatmark.3:26 #: build/C/man2/socket.2:44 build/C/man7/socket.7:57 #: build/C/man2/socketcall.2:26 build/C/man2/socketpair.2:43 #, no-wrap msgid "NAME" msgstr "名前" #. type: Plain text #: build/C/man2/accept.2:44 msgid "accept, accept4 - accept a connection on a socket" msgstr "accept, accept4 - ソケットへの接続を受ける" #. type: SH #: build/C/man2/accept.2:44 build/C/man2/bind.2:71 #: build/C/man3/bindresvport.3:33 build/C/man2/connect.2:70 #: build/C/man3/getifaddrs.3:39 build/C/man2/getsockname.2:43 #: build/C/man2/getsockopt.2:47 build/C/man3/if_nameindex.3:29 #: build/C/man3/if_nametoindex.3:29 build/C/man2/listen.2:48 #: build/C/man2/recv.2:44 build/C/man2/recvmmsg.2:34 build/C/man2/select.2:42 #: build/C/man2/select_tut.2:36 build/C/man2/send.2:43 #: build/C/man2/sendmmsg.2:31 build/C/man3/sockatmark.3:28 #: build/C/man2/socket.2:46 build/C/man7/socket.7:59 #: build/C/man2/socketcall.2:28 build/C/man2/socketpair.2:45 #, no-wrap msgid "SYNOPSIS" msgstr "書式" #. type: Plain text #: build/C/man2/accept.2:48 build/C/man2/bind.2:75 #, no-wrap msgid "" "B<#include Esys/types.hE> /* See NOTES */\n" "B<#include Esys/socket.hE>\n" msgstr "" "B<#include Esys/types.hE> /* 「注意」参照 */\n" "B<#include Esys/socket.hE>\n" #. type: Plain text #: build/C/man2/accept.2:50 #, no-wrap msgid "BIB<, struct sockaddr *>IB<, socklen_t *>IB<);>\n" msgstr "BIB<, struct sockaddr *>IB<, socklen_t *>IB<);>\n" #. type: Plain text #: build/C/man2/accept.2:53 #, no-wrap msgid "" "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n" "B<#include Esys/socket.hE>\n" msgstr "" "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */\n" "B<#include Esys/socket.hE>\n" #. type: Plain text #: build/C/man2/accept.2:56 #, no-wrap msgid "" "BIB<, struct sockaddr *>IB<,>\n" "B< socklen_t *>IB<, int >IB<);>\n" msgstr "" "BIB<, struct sockaddr *>IB<,>\n" "B< socklen_t *>IB<, int >IB<);>\n" #. type: SH #: build/C/man2/accept.2:57 build/C/man2/bind.2:79 #: build/C/man3/bindresvport.3:40 build/C/man2/connect.2:79 #: build/C/man3/getifaddrs.3:48 build/C/man2/getsockname.2:50 #: build/C/man2/getsockopt.2:58 build/C/man3/if_nameindex.3:36 #: build/C/man3/if_nametoindex.3:37 build/C/man2/listen.2:56 #: build/C/man2/recv.2:59 build/C/man2/recvmmsg.2:44 build/C/man2/select.2:81 #: build/C/man2/select_tut.2:75 build/C/man2/send.2:58 #: build/C/man2/sendmmsg.2:40 build/C/man3/sockatmark.3:42 #: build/C/man2/socket.2:52 build/C/man7/socket.7:63 #: build/C/man2/socketcall.2:30 build/C/man2/socketpair.2:52 #, no-wrap msgid "DESCRIPTION" msgstr "説明" #. type: Plain text #: build/C/man2/accept.2:72 msgid "" "The B() system call is used with connection-based socket types " "(B, B). It extracts the first connection " "request on the queue of pending connections for the listening socket, " "I, creates a new connected socket, and returns a new file descriptor " "referring to that socket. The newly created socket is not in the listening " "state. The original socket I is unaffected by this call." msgstr "" "B() システムコールは、接続指向のソケット型 (B, " "B) で用いられる。 この関数は、接続待ちソケット I 宛" "ての保留状態の接続要求が入っているキューから 先頭の接続要求を取り出し、接続済" "みソケットを新規に生成し、 そのソケットを参照する新しいファイル・ディスクリプ" "タを返す。 新規に生成されたソケットは、接続待ち (listen) 状態ではない。 もと" "もとのソケット I はこの呼び出しによって影響を受けない。" #. type: Plain text #: build/C/man2/accept.2:81 msgid "" "The argument I is a socket that has been created with B(2), " "bound to a local address with B(2), and is listening for connections " "after a B(2)." msgstr "" "引き数 I は、 B(2) によって生成され、 B(2) によって" "ローカルアドレスにバインドされ、 B(2) を経て接続を待っているソケット" "である。" #. type: Plain text #: build/C/man2/accept.2:99 msgid "" "The argument I is a pointer to a I structure. This " "structure is filled in with the address of the peer socket, as known to the " "communications layer. The exact format of the address returned I is " "determined by the socket's address family (see B(2) and the " "respective protocol man pages). When I is NULL, nothing is filled in; " "in this case, I is not used, and should also be NULL." msgstr "" "I 引き数は I 構造体へのポインタである。 この構造体には接続相" "手のソケットのアドレスが入っている。 I 引き数で返されるアドレスの正確な" "フォーマットは、 ソケットのアドレス種別によって変わる (B(2) およびそ" "れぞれのプロトコルの man ページを参照)。 I が NULL の場合、 I に" "は何も入らない。この場合、 I は使用されず、この引き数は NULL にして" "おくべきである。" #. type: Plain text #: build/C/man2/accept.2:107 msgid "" "The I argument is a value-result argument: the caller must " "initialize it to contain the size (in bytes) of the structure pointed to by " "I; on return it will contain the actual size of the peer address." msgstr "" "I 引き数は入出力両用の引き数である。呼び出し時には、呼び出し元が " "I が指す構造体のサイズ (バイト単位) で初期化しておかなければならない。 " "返ってくる時には、接続相手のアドレスの実際の大きさが格納される。" #. type: Plain text #: build/C/man2/accept.2:112 build/C/man2/getsockname.2:67 msgid "" "The returned address is truncated if the buffer provided is too small; in " "this case, I will return a value greater than was supplied to the " "call." msgstr "" "渡されたバッファが小さ過ぎた場合は、返されるアドレスの末尾が切り詰められ" "る。\n" "この場合には、 I には、呼び出し時に指定された値よりも大きな値が格納" "される。" #. type: Plain text #: build/C/man2/accept.2:125 msgid "" "If no pending connections are present on the queue, and the socket is not " "marked as nonblocking, B() blocks the caller until a connection is " "present. If the socket is marked nonblocking and no pending connections are " "present on the queue, B() fails with the error B or " "B." msgstr "" "キューに保留となっている接続要求がなく、 かつソケットが非停止になっていないと" "きは、 B() は接続が発生するまで呼び出し元を停止 (block) する。 ソ" "ケットが非停止になっていて、 待ち状態の接続要求がキューに無いときは、 " "B() はエラー B か B で失敗する。" #. type: Plain text #: build/C/man2/accept.2:139 msgid "" "In order to be notified of incoming connections on a socket, you can use " "B(2) または B(2) を用いれば" "よい。 新しい接続要求が来るとソケットは読み込み可能になるので、 そうしたら " "B() を呼んでその接続に対するソケットを取得すればよい。 あるいはソ" "ケットに設定を行い、何らかのアクションがあったときに B を配送 " "(deliver) させるようにすることもできる。詳細は B(7) を参照のこと。" #. type: Plain text #: build/C/man2/accept.2:152 msgid "" "For certain protocols which require an explicit confirmation, such as " "DECNet, B() can be thought of as merely dequeuing the next " "connection request and not implying confirmation. Confirmation can be " "implied by a normal read or write on the new file descriptor, and rejection " "can be implied by closing the new socket. Currently only DECNet has these " "semantics on Linux." msgstr "" "明示的な接続確認 (confirmation) を必要とするようなプロトコル (DECNet など) で" "は、 B() は単に次の接続要求をキューから取り出すだけであり、 接続確認" "は行わないことに注意せよ。接続確認は、 新しいファイル・ディスクリプタに対す" "る 通常の読み取り/書き込みによってなされ、接続拒否 (rejection) は新しいソ" "ケットをクローズすることによってなされる。 現在のところ、 Linux 上でこれらの" "セマンティクスを持つのは DECNet だけである。" #. type: Plain text #: build/C/man2/accept.2:162 msgid "" "If I is 0, then B() is the same as B(). The " "following values can be bitwise ORed in I to obtain different " "behavior:" msgstr "" "I が 0 の場合、 B() は B() と同じである。 I " "に以下の値をビット毎の論理和 (OR) で指定することで、 異なる動作をさせることが" "できる。" #. type: TP #: build/C/man2/accept.2:162 build/C/man2/socket.2:160 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man2/accept.2:170 build/C/man2/socket.2:168 msgid "" "Set the B file status flag on the new open file description. " "Using this flag saves extra calls to B(2) to achieve the same result." msgstr "" "新しく生成されるオープンファイル記述 (open file description) の " "B ファイルステータスフラグをセットする。 このフラグを使うこと" "で、 B をセットするために B(2) を追加で呼び出す必要がなく" "なる。" #. type: TP #: build/C/man2/accept.2:170 build/C/man2/socket.2:168 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man2/accept.2:180 build/C/man2/socket.2:178 msgid "" "Set the close-on-exec (B) flag on the new file descriptor. See " "the description of the B flag in B(2) for reasons why this " "may be useful." msgstr "" "新しいファイルディスクリプタに対して close-on-exec (B) フラグを" "セットする。 このフラグが役に立つ理由については、 B(2) の " "B フラグの説明を参照のこと。" #. type: SH #: build/C/man2/accept.2:180 build/C/man2/bind.2:152 #: build/C/man3/bindresvport.3:67 build/C/man2/connect.2:127 #: build/C/man3/getifaddrs.3:142 build/C/man2/getsockname.2:67 #: build/C/man2/getsockopt.2:131 build/C/man3/if_nameindex.3:71 #: build/C/man3/if_nametoindex.3:54 build/C/man2/listen.2:82 #: build/C/man2/recv.2:400 build/C/man2/recvmmsg.2:149 #: build/C/man2/select.2:299 build/C/man2/select_tut.2:485 #: build/C/man2/send.2:275 build/C/man2/sendmmsg.2:119 #: build/C/man3/sockatmark.3:51 build/C/man2/socket.2:310 #: build/C/man2/socketpair.2:69 #, no-wrap msgid "RETURN VALUE" msgstr "返り値" #. type: Plain text #: build/C/man2/accept.2:187 msgid "" "On success, these system calls return a nonnegative integer that is a " "descriptor for the accepted socket. On error, -1 is returned, and I " "is set appropriately." msgstr "" "成功した場合、これらのシステムコールは 受け付けたソケットのディスクリプタであ" "る非負の整数値を返す。 エラーが発生した場合は -1 を返し、 I を適切に設" "定する。" #. type: SS #: build/C/man2/accept.2:187 #, no-wrap msgid "Error handling" msgstr "エラー処理" #. type: Plain text #: build/C/man2/accept.2:214 msgid "" "Linux B() (and B()) passes already-pending network errors " "on the new socket as an error code from B(). This behavior differs " "from other BSD socket implementations. For reliable operation the " "application should detect the network errors defined for the protocol after " "B() and treat them like B by retrying. In the case of TCP/" "IP, these are B, B, B, B, " "B, B, B, and B." msgstr "" "Linux の B() (と B()) は、新しいソケットにおける、発生済み" "のネットワークエラーを B() からのエラーコードとして渡す。 この振舞い" "は BSD ソケットの実装とは異なる。 信頼性の高い動作を行うためには、 アプリケー" "ションはプロトコルで定義されているネットワークエラーの検知を B() の" "あとに行い、それらのエラーを B と同じように扱い、再試行 (retry) を行" "うべきである。 TCP/IP では、以下のエラーが該当する: B, B, " "B, B, B, B, B, " "B" #. type: SH #: build/C/man2/accept.2:214 build/C/man2/bind.2:157 #: build/C/man3/bindresvport.3:72 build/C/man2/connect.2:132 #: build/C/man3/getifaddrs.3:149 build/C/man2/getsockname.2:72 #: build/C/man2/getsockopt.2:136 build/C/man3/if_nameindex.3:78 #: build/C/man3/if_nametoindex.3:69 build/C/man2/listen.2:87 #: build/C/man2/recv.2:416 build/C/man2/recvmmsg.2:157 #: build/C/man2/select.2:317 build/C/man2/send.2:280 #: build/C/man2/sendmmsg.2:133 build/C/man3/sockatmark.3:58 #: build/C/man2/socket.2:315 build/C/man2/socketpair.2:74 #, no-wrap msgid "ERRORS" msgstr "エラー" #. type: TP #: build/C/man2/accept.2:215 build/C/man2/recv.2:421 build/C/man2/send.2:296 #, no-wrap msgid "B or B" msgstr "B または B" #. Actually EAGAIN on Linux #. type: Plain text #: build/C/man2/accept.2:223 msgid "" "The socket is marked nonblocking and no connections are present to be " "accepted. POSIX.1-2001 allows either error to be returned for this case, " "and does not require these constants to have the same value, so a portable " "application should check for both possibilities." msgstr "" "ソケットが非停止になっていて、 かつ受付け対象の接続が存在しない。 " "POSIX.1-2001 は、この場合にどちらのエラーを返すことも認めており、 これら 2 つ" "の定数が同じ値を持つことも求めていない。 したがって、移植性が必要なアプリケー" "ションでは、両方の可能性を 確認すべきである。" #. type: TP #: build/C/man2/accept.2:223 build/C/man2/bind.2:165 #: build/C/man2/connect.2:169 build/C/man2/getsockname.2:73 #: build/C/man2/getsockopt.2:137 build/C/man2/listen.2:91 #: build/C/man2/recv.2:430 build/C/man2/select.2:318 build/C/man2/send.2:304 #: build/C/man3/sockatmark.3:59 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man2/accept.2:226 msgid "The descriptor is invalid." msgstr "ディスクリプタが不正。" #. type: TP #: build/C/man2/accept.2:226 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man2/accept.2:229 msgid "A connection has been aborted." msgstr "接続が中止された。" #. type: TP #: build/C/man2/accept.2:229 build/C/man2/bind.2:191 #: build/C/man2/connect.2:175 build/C/man2/getsockname.2:78 #: build/C/man2/getsockopt.2:142 build/C/man2/recv.2:439 #: build/C/man2/send.2:313 build/C/man2/socketpair.2:78 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man2/accept.2:234 msgid "" "The I argument is not in a writable part of the user address space." msgstr "I 引き数がユーザアドレス空間の書き込み可能領域にない。" #. type: TP #: build/C/man2/accept.2:234 build/C/man2/connect.2:203 #: build/C/man2/recv.2:443 build/C/man2/select.2:323 build/C/man2/send.2:316 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man2/accept.2:239 msgid "" "The system call was interrupted by a signal that was caught before a valid " "connection arrived; see B(7)." msgstr "" "有効な接続が到着する前に捕捉されたシグナルによって システムコールが中断され" "た。 B(7) 参照。" #. type: TP #: build/C/man2/accept.2:239 build/C/man2/accept.2:244 build/C/man2/bind.2:169 #: build/C/man2/bind.2:195 build/C/man2/getsockname.2:84 #: build/C/man2/getsockopt.2:152 build/C/man2/recv.2:448 #: build/C/man2/recvmmsg.2:161 build/C/man2/select.2:327 #: build/C/man2/send.2:320 build/C/man3/sockatmark.3:63 #: build/C/man2/socket.2:323 build/C/man2/socket.2:326 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man2/accept.2:244 msgid "" "Socket is not listening for connections, or I is invalid (e.g., is " "negative)." msgstr "" "ソケットが接続待ち状態ではない。もしくは、 I が不正である (例えば、" "負の場合など)。" #. type: Plain text #: build/C/man2/accept.2:249 msgid "(B()) invalid value in I." msgstr "(B()) I に不正な値が指定されている。" #. type: TP #: build/C/man2/accept.2:249 build/C/man2/socket.2:331 #: build/C/man2/socketpair.2:83 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man2/accept.2:252 msgid "The per-process limit of open file descriptors has been reached." msgstr "1プロセスがオープンできるファイル・ディスクリプタ数の上限に達した。" #. type: TP #: build/C/man2/accept.2:252 build/C/man2/socket.2:334 #: build/C/man2/socketpair.2:86 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man2/accept.2:255 build/C/man2/socket.2:337 #: build/C/man2/socketpair.2:89 msgid "The system limit on the total number of open files has been reached." msgstr "オープンされたファイルの総数がシステム全体の上限に達していた。" #. type: TP #: build/C/man2/accept.2:255 #, no-wrap msgid "B, B" msgstr "B, B" #. type: Plain text #: build/C/man2/accept.2:260 msgid "" "Not enough free memory. This often means that the memory allocation is " "limited by the socket buffer limits, not by the system memory." msgstr "" "メモリが足りない。 多くの場合は、システムメモリが足りないわけではなく、 ソ" "ケットバッファの大きさによるメモリ割り当ての制限である。" #. type: TP #: build/C/man2/accept.2:260 build/C/man2/bind.2:174 #: build/C/man2/connect.2:215 build/C/man2/getsockname.2:92 #: build/C/man2/getsockopt.2:166 build/C/man2/listen.2:96 #: build/C/man2/recv.2:463 build/C/man2/send.2:349 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man2/accept.2:263 msgid "The descriptor references a file, not a socket." msgstr "ディスクリプタはソケットではなくファイルを参照している。" #. type: TP #: build/C/man2/accept.2:263 build/C/man2/listen.2:101 build/C/man2/send.2:354 #: build/C/man2/socketpair.2:89 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man2/accept.2:267 msgid "The referenced socket is not of type B." msgstr "参照しているソケットの型が B でない。" #. type: TP #: build/C/man2/accept.2:267 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man2/accept.2:270 msgid "Protocol error." msgstr "プロトコル・エラー。" #. type: Plain text #: build/C/man2/accept.2:274 msgid "In addition, Linux B() may fail if:" msgstr "上記に加えて、Linux の B() は以下のエラーで失敗する:" #. type: TP #: build/C/man2/accept.2:274 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man2/accept.2:277 msgid "Firewall rules forbid connection." msgstr "ファイアウォールのルールにより接続が禁止された。" #. type: Plain text #: build/C/man2/accept.2:289 msgid "" "In addition, network errors for the new socket and as defined for the " "protocol may be returned. Various Linux kernels can return other errors " "such as B, B, B, B. The " "value B may be seen during a trace." msgstr "" "この他に、新しいソケットに対するネットワークエラーが返されることもある。 これ" "らはそれぞれのプロトコルで定義されている。 いろいろな Linux カーネルでは、 以" "下に示すようなエラーを返すこともある。 B, B, " "B, B. B がトレースの最中に現れるこ" "ともある。" #. type: SH #: build/C/man2/accept.2:289 build/C/man3/getifaddrs.3:162 #: build/C/man3/if_nameindex.3:97 build/C/man2/recvmmsg.2:165 #: build/C/man2/select.2:336 build/C/man2/sendmmsg.2:145 #: build/C/man3/sockatmark.3:70 build/C/man7/socket.7:913 #, no-wrap msgid "VERSIONS" msgstr "バージョン" #. type: Plain text #: build/C/man2/accept.2:294 msgid "" "The B() system call is available starting with Linux 2.6.28; " "support in glibc is available starting with version 2.10." msgstr "" "B() システムコールは Linux 2.6.28 以降で利用可能である。 glibc での" "サポートはバージョン 2.10 以降で利用可能である。" #. type: SH #: build/C/man2/accept.2:294 build/C/man2/bind.2:222 #: build/C/man3/bindresvport.3:104 build/C/man2/connect.2:225 #: build/C/man3/getifaddrs.3:170 build/C/man2/getsockname.2:97 #: build/C/man2/getsockopt.2:171 build/C/man3/if_nameindex.3:104 #: build/C/man3/if_nametoindex.3:85 build/C/man2/listen.2:106 #: build/C/man2/recv.2:468 build/C/man2/recvmmsg.2:170 #: build/C/man2/select.2:342 build/C/man2/send.2:368 #: build/C/man2/sendmmsg.2:150 build/C/man3/sockatmark.3:78 #: build/C/man2/socket.2:348 build/C/man2/socketcall.2:42 #: build/C/man2/socketpair.2:95 #, no-wrap msgid "CONFORMING TO" msgstr "準拠" #. The BSD man page documents five possible error returns #. (EBADF, ENOTSOCK, EOPNOTSUPP, EWOULDBLOCK, EFAULT). #. POSIX.1-2001 documents errors #. EAGAIN, EBADF, ECONNABORTED, EINTR, EINVAL, EMFILE, #. ENFILE, ENOBUFS, ENOMEM, ENOTSOCK, EOPNOTSUPP, EPROTO, EWOULDBLOCK. #. In addition, SUSv2 documents EFAULT and ENOSR. #. type: Plain text #: build/C/man2/accept.2:306 msgid "" "B(): POSIX.1-2001, SVr4, 4.4BSD, (B() first appeared in " "4.2BSD)." msgstr "" "B(): POSIX.1-2001, SVr4, 4.4BSD, (B() は 4.2BSD で初めて実装" "された)." #. type: Plain text #: build/C/man2/accept.2:309 msgid "B() is a nonstandard Linux extension." msgstr "B() は非標準の Linux による拡張である。" #. Some testing seems to show that Tru64 5.1 and HP-UX 11 also #. do not inherit file status flags -- MTK Jun 05 #. type: Plain text #: build/C/man2/accept.2:324 msgid "" "On Linux, the new socket returned by B() does I inherit file " "status flags such as B and B from the listening " "socket. This behavior differs from the canonical BSD sockets " "implementation. Portable programs should not rely on inheritance or " "noninheritance of file status flags and always explicitly set all required " "flags on the socket returned from B()." msgstr "" "Linux では、 B() が返す新しいソケットは listen を行っているソケット" "の ファイル状態フラグ (B や B など) を継承「しない」。 " "この動作は標準的な BSD ソケットの実装とは異なっている。 移植性を考慮したプロ" "グラムではファイル状態フラグが継承されるかどうかは 前提にせず、常に B" "() が返したソケットに対して全ての必要なフラグを明示的に設定するように すべき" "である。" #. type: SH #: build/C/man2/accept.2:324 build/C/man2/bind.2:234 #: build/C/man3/bindresvport.3:107 build/C/man2/connect.2:241 #: build/C/man3/getifaddrs.3:190 build/C/man2/getsockname.2:103 #: build/C/man2/getsockopt.2:178 build/C/man2/listen.2:111 #: build/C/man2/recv.2:478 build/C/man2/select.2:357 #: build/C/man2/select_tut.2:503 build/C/man2/send.2:382 #: build/C/man2/sendmmsg.2:153 build/C/man3/sockatmark.3:80 #: build/C/man2/socket.2:362 build/C/man7/socket.7:927 #: build/C/man2/socketcall.2:45 build/C/man2/socketpair.2:103 #, no-wrap msgid "NOTES" msgstr "注意" #. type: Plain text #: build/C/man2/accept.2:330 build/C/man2/bind.2:240 #: build/C/man2/connect.2:247 build/C/man2/getsockopt.2:184 #: build/C/man2/listen.2:137 build/C/man2/socket.2:368 #: build/C/man2/socketpair.2:124 msgid "" "POSIX.1-2001 does not require the inclusion of Isys/types.hE>, and " "this header file is not required on Linux. However, some historical (BSD) " "implementations required this header file, and portable applications are " "probably wise to include it." msgstr "" "POSIX.1-2001 では Isys/types.hE> のインクルードは必須とされておら" "ず、 Linux ではこのヘッダファイルは必要ではない。 しかし、歴史的には、いくつ" "かの実装 (BSD 系) でこのヘッダファイルが 必要であり、移植性が必要なアプリケー" "ションではこのファイルを インクルードするのが賢明であろう。" #. type: Plain text #: build/C/man2/accept.2:351 #, fuzzy #| msgid "" #| "There may not always be a connection waiting after a B is " #| "delivered or B(2) or B(2) return a readability event because the " "connection might have been removed by an asynchronous network error or " "another thread before B() is called. If this happens, then the " "call will block waiting for the next connection to arrive. To ensure that " "B() never blocks, the passed socket I needs to have the " "B flag set (see B(7))." msgstr "" "B が届けられた後や、 B(2), B(2), " "B(7)" msgstr "" "B(2), B(2), B(2), B(2) or B(2) for completion " "by selecting the socket for writing. After B(2) や B(2) を使ってそのソケットが書き" "込み可能になるのを待つことで、 接続の完了を知ることができる。 B(2) or B(2) call may be used to determine when more " #| "data arrives." msgid "" "An application can used B(2) や B(2) コールを使って、次のデータがいつ届くかを判断でき" "る。" #. type: SS #: build/C/man2/recv.2:93 #, no-wrap msgid "The flags argument" msgstr "" #. type: Plain text #: build/C/man2/recv.2:97 #, fuzzy #| msgid "" #| "The I argument to a B() call is formed by ORing one or more " #| "of the following values:" msgid "" "The I argument is formed by ORing one or more of the following values:" msgstr "" "B() コールの I 引き数には、以下の値を 1つ以上、ビット単位の論理" "和 を取ったものを指定する:" #. type: TP #: build/C/man2/recv.2:97 #, no-wrap msgid "B (B() only; since Linux 2.6.23)" msgstr "B (B() のみ; Linux 2.6.23)" #. type: Plain text #: build/C/man2/recv.2:108 msgid "" "Set the close-on-exec flag for the file descriptor received via a UNIX " "domain file descriptor using the B operation (described in " "B(7)). This flag is useful for the same reasons as the B " "flag of B(2)." msgstr "" "(B(7) で説明されている) B 操作を使って UNIX ドメインの" "ファイルディスクリプタ経由で受信した ファイルディスクリプタについて close-on-" "exec フラグをセットする。 このフラグは、 B(2) の B フラグと" "同じ理由で有用である。" #. type: TP #: build/C/man2/recv.2:108 build/C/man2/send.2:188 #, no-wrap msgid "B (since Linux 2.2)" msgstr "B (Linux 2.2 以降)" #. type: Plain text #: build/C/man2/recv.2:118 msgid "" "Enables nonblocking operation; if the operation would block, the call fails " "with the error B or B (this can also be enabled using " "the B flag with the B B(2))." msgstr "" "非停止 (nonblocking) 操作を有効にする。 操作が停止するような場合にエラー " "B か B で呼び出しが失敗する (B(2) の B " "で B フラグを指定することによっても有効にできる)。" #. type: TP #: build/C/man2/recv.2:118 #, no-wrap msgid "B (since Linux 2.2)" msgstr "B (Linux 2.2 以降)" #. type: Plain text #: build/C/man2/recv.2:137 msgid "" "This flag specifies that queued errors should be received from the socket " "error queue. The error is passed in an ancillary message with a type " "dependent on the protocol (for IPv4 B). The user should supply " "a buffer of sufficient size. See B(3) and B(7) for more " "information. The payload of the original packet that caused the error is " "passed as normal data via I. The original destination address of " "the datagram that caused the error is supplied via I." msgstr "" "このフラグを指定すると、 キューに入れられたエラーをソケットのエラーキューから" "取りだせるようになる。 このエラーは補助メッセージに組み込まれて渡され、 この" "補助メッセージの種別はプロトコルに依存する (IPv4 の場合は B)。 " "ユーザは十分なサイズのバッファを用意しなければならない。 補助メッセージに関す" "るより詳細な情報は B(3) および B(7) を参照のこと。 エラーの原因と" "なったオリジナルパケットのペイロードは、 I 経由で通常のデータとし" "て渡される。 エラーを起こしたデータグラムのオリジナルの宛先アドレスは、 " "I 経由で参照できる。" #. type: Plain text #: build/C/man2/recv.2:149 build/C/man2/recv.2:212 msgid "" "For local errors, no address is passed (this can be checked with the " "I member of the I). For error receives, the " "B is set in the I. After an error has been passed, " "the pending socket error is regenerated based on the next queued error and " "will be passed on the next socket operation." msgstr "" "ローカルなエラーの場合はアドレスは渡されない\n" "(これは I の I メンバーでチェックできる)。\n" "受信エラーの場合は B が I にセットされる。\n" "エラーが渡された後には、キューに入っている次のエラーに基いて、\n" "処理待ちのソケット・エラーが再生成され、次のソケット操作の際に渡される。" #. type: Plain text #: build/C/man2/recv.2:153 msgid "The error is supplied in a I structure:" msgstr "このエラーは I 構造体で提供される:" #. type: Plain text #: build/C/man2/recv.2:160 #, no-wrap msgid "" "#define SO_EE_ORIGIN_NONE 0\n" "#define SO_EE_ORIGIN_LOCAL 1\n" "#define SO_EE_ORIGIN_ICMP 2\n" "#define SO_EE_ORIGIN_ICMP6 3\n" msgstr "" "#define SO_EE_ORIGIN_NONE 0\n" "#define SO_EE_ORIGIN_LOCAL 1\n" "#define SO_EE_ORIGIN_ICMP 2\n" "#define SO_EE_ORIGIN_ICMP6 3\n" #. type: Plain text #: build/C/man2/recv.2:172 #, no-wrap msgid "" "struct sock_extended_err\n" "{\n" " uint32_t ee_errno; /* error number */\n" " uint8_t ee_origin; /* where the error originated */\n" " uint8_t ee_type; /* type */\n" " uint8_t ee_code; /* code */\n" " uint8_t ee_pad; /* padding */\n" " uint32_t ee_info; /* additional information */\n" " uint32_t ee_data; /* other data */\n" " /* More data may follow */\n" "};\n" msgstr "" "struct sock_extended_err\n" "{\n" " uint32_t ee_errno; /* error number */\n" " uint8_t ee_origin; /* where the error originated */\n" " uint8_t ee_type; /* type */\n" " uint8_t ee_code; /* code */\n" " uint8_t ee_pad; /* padding */\n" " uint32_t ee_info; /* additional information */\n" " uint32_t ee_data; /* other data */\n" " /* More data may follow */\n" "};\n" #. type: Plain text #: build/C/man2/recv.2:174 #, no-wrap msgid "struct sockaddr *SO_EE_OFFENDER(struct sock_extended_err *);\n" msgstr "struct sockaddr *SO_EE_OFFENDER(struct sock_extended_err *);\n" #. type: Plain text #: build/C/man2/recv.2:198 msgid "" "I contains the I number of the queued error. I " "is the origin code of where the error originated. The other fields are " "protocol-specific. The macro B returns a pointer to the " "address of the network object where the error originated from given a " "pointer to the ancillary message. If this address is not known, the " "I member of the I contains B and the other " "fields of the I are undefined. The payload of the packet that " "caused the error is passed as normal data." msgstr "" "I にはキューに入れられたエラーの I が入っている。 " "I にはエラーが発生した場所のオリジン・コード (origin code) が入っ" "ている。 他のフィールドはプロトコル依存である。 B マクロは、" "この補助的なメッセージを引き数に取って、 エラーの発生したネットワークオブジェ" "クトのアドレスへのポインタを返す。 アドレスが不明の場合には、 I の " "I メンバーが B になっている。 I の他のフィー" "ルドは不定である。 エラーの発生したパケットのペイロードは通常のデータとして渡" "される。" #. type: TP #: build/C/man2/recv.2:212 build/C/man2/recv.2:393 build/C/man2/send.2:230 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man2/recv.2:219 msgid "" "This flag requests receipt of out-of-band data that would not be received in " "the normal data stream. Some protocols place expedited data at the head of " "the normal data queue, and thus this flag cannot be used with such protocols." msgstr "" "このフラグは、通常のデータ・ストリームでは受信できない 帯域外 (out-of-band) " "データの受信を要求する。 プロトコルによっては、 通常のデータ・キューの先頭に" "速達データを置くものがあるが、 そのようなプロトコルではこのフラグは使用できな" "い。" #. type: TP #: build/C/man2/recv.2:219 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man2/recv.2:226 msgid "" "This flag causes the receive operation to return data from the beginning of " "the receive queue without removing that data from the queue. Thus, a " "subsequent receive call will return the same data." msgstr "" "このフラグを指定すると、 受信キューの最初のデータを返すとき、キューからデータ" "を削除しない。 したがって、この後でもう一度受信コールを呼び出すと、同じデータ" "が返ることになる。" #. type: TP #: build/C/man2/recv.2:226 #, no-wrap msgid "B (since Linux 2.2)" msgstr "B (Linux 2.2 以降)" #. type: Plain text #: build/C/man2/recv.2:234 #, fuzzy #| msgid "" #| "For raw (B), Internet datagram (since Linux 2.4.27/2.6.8), " #| "netlink (since Linux 2.6.22) and UNIX datagram (since Linux 3.4) sockets: " #| "return the real length of the packet or datagram, even when it was longer " #| "than the passed buffer. Not implemented for UNIX domain (B(7)) " #| "sockets." msgid "" "For raw (B), Internet datagram (since Linux 2.4.27/2.6.8), " "netlink (since Linux 2.6.22), and UNIX datagram (since Linux 3.4) sockets: " "return the real length of the packet or datagram, even when it was longer " "than the passed buffer." msgstr "" "raw ソケット (B)、 Internet datagram ソケット (Linux 2.4.27/2.6.8 " "以降)、 netlink (Linux 2.6.22 以降) ソケット、 UNIX datagram ソケット (Linux " "3.4 以降) の場合、パケットやデータグラムの長さが渡したバッファよりも長かった" "場合にも、 パケットやデータグラムの実際の長さを返す。 UNIX ドメインソケット " "(B(7)) ソケットについては実装されていない。" #. type: Plain text #: build/C/man2/recv.2:237 msgid "For use with Internet stream sockets, see B(7)." msgstr "Internet ストリームソケットでの利用については B(7) を参照。" #. type: TP #: build/C/man2/recv.2:237 #, no-wrap msgid "B (since Linux 2.2)" msgstr "B (Linux 2.2 以降)" #. type: Plain text #: build/C/man2/recv.2:245 msgid "" "This flag requests that the operation block until the full request is " "satisfied. However, the call may still return less data than requested if a " "signal is caught, an error or disconnect occurs, or the next data to be " "received is of a different type than that returned." msgstr "" "このフラグは、要求した量いっぱいのデータが到着するまで、 操作を停止 (block) " "するよう要求する。 但し、シグナルを受信したり、エラーや切断 (disconnect) が発" "生したり、 次に受信されるデータが異なる型だったりした場合には、 要求した量よ" "りデータが少なくても返ることがある。" #. type: SS #: build/C/man2/recv.2:245 #, no-wrap msgid "recvfrom()" msgstr "" #. type: Plain text #: build/C/man2/recv.2:251 msgid "" "B() places the received message into the buffer I. The " "caller must specify the size of the buffer in I." msgstr "" #. (Note: for datagram sockets in both the UNIX and Internet domains, #. .I src_addr #. is filled in. #. .I src_addr #. is also filled in for stream sockets in the UNIX domain, but is not #. filled in for stream sockets in the Internet domain.) #. [The above notes on AF_UNIX and AF_INET sockets apply as at #. Kernel 2.4.18. (MTK, 22 Jul 02)] #. type: Plain text #: build/C/man2/recv.2:279 #, fuzzy #| msgid "" #| "If I is not NULL, and the underlying protocol provides the " #| "source address, this source address is filled in. When I is " #| "NULL, nothing is filled in; in this case, I is not used, and " #| "should also be NULL. The argument I is a value-result argument, " #| "which the caller should initialize before the call to the size of the " #| "buffer associated with I, and modified on return to indicate " #| "the actual size of the source address. The returned address is truncated " #| "if the buffer provided is too small; in this case, I will return " #| "a value greater than was supplied to the call." msgid "" "If I is not NULL, and the underlying protocol provides the source " "address of the message, that source address is placed in the buffer pointed " "to by I. In this case, I is a value-result argument. " "Before the call, it should be initialized to the size of the buffer " "associated with I. Upon return, I is updated to contain " "the actual size of the source address. The returned address is truncated if " "the buffer provided is too small; in this case, I will return a " "value greater than was supplied to the call." msgstr "" "I が NULL 以外で、下層のプロトコルから送信元アドレスが分かる場合、 " "I にはこの送信元アドレスが入れられる。 I が NULL の場" "合、 I には何も入らない。この場合、 I は使用されず、この引" "き数は NULL にしておくべきである。 引き数 I は入出力両用の引き数であ" "る。呼び出し時には、呼び出し元が I に割り当てたバッファの大きさで初" "期化しておくべきである。 返ってくる時には、送信元アドレスの実際の大きさに変更" "される。 渡されたバッファが小さ過ぎる場合には、返されるアドレスの末尾は 切り" "詰められる。この場合には、 I では、呼び出し時に渡された値よりも大き" "な値が返される。" #. type: Plain text #: build/C/man2/recv.2:286 msgid "" "If the caller is not interested in the source address, I should be " "specified as NULL and I should be specified as 0." msgstr "" #. type: SS #: build/C/man2/recv.2:286 #, no-wrap msgid "recv()" msgstr "" #. type: Plain text #: build/C/man2/recv.2:294 #, fuzzy #| msgid "" #| "The B() call is normally used only on a I socket (see " #| "B(2)) and is identical to B() with a NULL " #| "I argument." msgid "" "The B() call is normally used only on a I socket (see " "B(2)). It is equivalent to the call:" msgstr "" "B() コールは通常 I<接続済みの (connected)> ソケット (B(2) を" "参照) についてのみ使用され、 I 引き数に NULL を指定した B" "() と等価である。" #. type: Plain text #: build/C/man2/recv.2:297 #, fuzzy, no-wrap #| msgid " sendto(sockfd, buf, len, flags, NULL, 0);\n" msgid " recvfrom(fd, buf, len, flags, NULL, 0));\n" msgstr " sendto(sockfd, buf, len, flags, NULL, 0);\n" #. type: SS #: build/C/man2/recv.2:297 #, no-wrap msgid "recvmsg()" msgstr "" #. type: Plain text #: build/C/man2/recv.2:305 msgid "" "The B() call uses a I structure to minimize the number of " "directly supplied arguments. This structure is defined as follows in " "Isys/socket.hE>:" msgstr "" "B() コールは、直接渡す引き数の数を減らすために I 構造体を使" "用する。この構造体は Isys/socket.hE> で以下のように定義されている:" #. type: Plain text #: build/C/man2/recv.2:312 #, no-wrap msgid "" "struct iovec { /* Scatter/gather array items */\n" " void *iov_base; /* Starting address */\n" " size_t iov_len; /* Number of bytes to transfer */\n" "};\n" msgstr "" "struct iovec { /* Scatter/gather array items */\n" " void *iov_base; /* Starting address */\n" " size_t iov_len; /* Number of bytes to transfer */\n" "};\n" #. type: Plain text #: build/C/man2/recv.2:322 build/C/man2/send.2:258 #, no-wrap msgid "" "struct msghdr {\n" " void *msg_name; /* optional address */\n" " socklen_t msg_namelen; /* size of address */\n" " struct iovec *msg_iov; /* scatter/gather array */\n" " size_t msg_iovlen; /* # elements in msg_iov */\n" " void *msg_control; /* ancillary data, see below */\n" " size_t msg_controllen; /* ancillary data buffer len */\n" " int msg_flags; /* flags on received message */\n" "};\n" msgstr "" "struct msghdr {\n" " void *msg_name; /* 追加のアドレス */\n" " socklen_t msg_namelen; /* アドレスのサイズ */\n" " struct iovec *msg_iov; /* scatter/gather 配列 */\n" " size_t msg_iovlen; /* msg_iov の要素数 */\n" " void *msg_control; /* 補助データ (後述) */\n" " size_t msg_controllen; /* 補助データバッファ長 */\n" " int msg_flags; /* 受信メッセージのフラグ */\n" "};\n" #. type: Plain text #: build/C/man2/recv.2:352 #, fuzzy #| msgid "" #| "Here I and I specify the source address if the " #| "socket is unconnected; I may be given as a NULL pointer if no " #| "names are desired or required. The fields I and I " #| "describe scatter-gather locations, as discussed in B(2). The " #| "field I, which has length I, points to a " #| "buffer for other protocol control-related messages or miscellaneous " #| "ancillary data. When B() is called, I should " #| "contain the length of the available buffer in I; upon return " #| "from a successful call it will contain the length of the control message " #| "sequence." msgid "" "Here I and I specify the source address if the socket " "is unconnected; I may be given as a null pointer if no names are " "desired or required. The fields I and I describe " "scatter-gather locations, as discussed in B(2). The field " "I, which has length I, points to a buffer for " "other protocol control-related messages or miscellaneous ancillary data. " "When B() is called, I should contain the length of " "the available buffer in I; upon return from a successful call " "it will contain the length of the control message sequence." msgstr "" "I と I は、ソケットが接続されていない場合に送信元のア" "ドレスを指定する。 名前が必要ない場合には I に NULL ポインタを指定" "する。 I と I フィールドは B(2) に記述されている" "ような分解/結合用のベクトル (scatter-gather locations) を指定する。 " "I フィールドは I の長さを持ち、他のプロトコル制" "御メッセージや 種々の補助データのためのバッファへのポインタである。 " "B() を呼ぶ際には、 I に I のバッファの" "長さを入れておく必要がある。 コールが成功して返った場合、制御メッセージ列の長" "さが入っている。" #. type: Plain text #: build/C/man2/recv.2:354 msgid "The messages are of the form:" msgstr "メッセージの形式は以下の通り:" #. type: Plain text #: build/C/man2/recv.2:364 #, no-wrap msgid "" "struct cmsghdr {\n" " socklen_t cmsg_len; /* data byte count, including hdr */\n" " int cmsg_level; /* originating protocol */\n" " int cmsg_type; /* protocol-specific type */\n" "/* followed by\n" " unsigned char cmsg_data[]; */\n" "};\n" msgstr "" "struct cmsghdr {\n" " socklen_t cmsg_len; /* data byte count, including hdr */\n" " int cmsg_level; /* originating protocol */\n" " int cmsg_type; /* protocol-specific type */\n" "/* followed by\n" " unsigned char cmsg_data[]; */\n" "};\n" #. type: Plain text #: build/C/man2/recv.2:369 msgid "" "Ancillary data should be accessed only by the macros defined in B(3)." msgstr "" "補助データは、 B(3) に定義されたマクロ経由でのみアクセスすべきである。" #. type: Plain text #: build/C/man2/recv.2:372 msgid "" "As an example, Linux uses this ancillary data mechanism to pass extended " "errors, IP options, or file descriptors over UNIX domain sockets." msgstr "" "例をあげると、 Linux はこの補助データのメカニズムを、 UNIX ドメインソケット上" "での拡張エラーや IP オプション、 ファイル・ディスクリプタの受け渡しに利用して" "いる。" #. type: Plain text #: build/C/man2/recv.2:380 msgid "" "The I field in the I is set on return of B(). " "It can contain several flags:" msgstr "" "I の I フィールドは B() からのリターン時に設定さ" "れる。ここにはいくつかのフラグが入る。" #. type: TP #: build/C/man2/recv.2:380 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man2/recv.2:385 msgid "" "indicates end-of-record; the data returned completed a record (generally " "used with sockets of type B)." msgstr "" "これはレコードの終り (end-of-record) を示し、 返されたデータが完全なレコード" "であることを示す (一般的には B 型のソケットで使用される)。" #. type: TP #: build/C/man2/recv.2:385 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man2/recv.2:389 msgid "" "indicates that the trailing portion of a datagram was discarded because the " "datagram was larger than the buffer supplied." msgstr "" "データグラムが与えられたバッファより大きかったために、 データグラムのはみ出し" "た部分が捨てられたことを示す。" #. type: TP #: build/C/man2/recv.2:389 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man2/recv.2:393 msgid "" "indicates that some control data were discarded due to lack of space in the " "buffer for ancillary data." msgstr "" "補助データのためのバッファが不足したために、 制御データの一部が捨てられたこと" "を示す。" #. type: Plain text #: build/C/man2/recv.2:396 msgid "" "is returned to indicate that expedited or out-of-band data were received." msgstr "速達データや帯域外データを受信したことを示す。" #. type: TP #: build/C/man2/recv.2:396 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man2/recv.2:400 msgid "" "indicates that no data was received but an extended error from the socket " "error queue." msgstr "" "データは受信しなかったが ソケットのエラー・キューから拡張エラーを受信したこと" "を示す。" #. type: Plain text #: build/C/man2/recv.2:406 #, fuzzy #| msgid "" #| "These calls return the number of bytes received, or -1 if an error " #| "occurred. In the event of an error, I is set to indicate the " #| "error. The return value will be 0 when the peer has performed an orderly " #| "shutdown." msgid "" "These calls return the number of bytes received, or -1 if an error " "occurred. In the event of an error, I is set to indicate the error." msgstr "" "これらのコールは受信したバイト数を返す。 エラーの場合は -1 を返し、 I " "にエラーを示す値を設定する。 接続先が正しくシャットダウンを実行した場合は、" "返り値は 0 となる。" #. type: Plain text #: build/C/man2/recv.2:409 msgid "" "When a stream socket peer has performed an orderly shutdown, the return " "value will be 0 (the traditional \"end-of-file\" return)." msgstr "" #. type: Plain text #: build/C/man2/recv.2:413 msgid "" "Datagram sockets in various domains (e.g., the UNIX and Internet domains) " "permit zero-length datagrams. When such a datagram is received, the return " "value is 0." msgstr "" #. type: Plain text #: build/C/man2/recv.2:416 msgid "" "The value 0 may also be returned if the requested number of bytes to receive " "from a stream socket was 0." msgstr "" #. type: Plain text #: build/C/man2/recv.2:421 msgid "" "These are some standard errors generated by the socket layer. Additional " "errors may be generated and returned from the underlying protocol modules; " "see their manual pages." msgstr "" "これらはソケット層で発生する一般的なエラーである。 他のエラーが下層のプロトコ" "ル・モジュールで生成され、 返されるかもしれない。 それらのマニュアルを参照す" "ること。" #. Actually EAGAIN on Linux #. type: Plain text #: build/C/man2/recv.2:430 msgid "" "The socket is marked nonblocking and the receive operation would block, or a " "receive timeout had been set and the timeout expired before data was " "received. POSIX.1-2001 allows either error to be returned for this case, " "and does not require these constants to have the same value, so a portable " "application should check for both possibilities." msgstr "" "ソケットが非停止 (nonblocking) に設定されていて 受信操作が停止するような状況" "になったか、 受信に時間切れ (timeout) が設定されていて データを受信する前に時" "間切れになった。 POSIX.1-2001 は、この場合にどちらのエラーを返すことも認めて" "おり、 これら 2 つの定数が同じ値を持つことも求めていない。 したがって、移植性" "が必要なアプリケーションでは、両方の可能性を 確認すべきである。" #. type: Plain text #: build/C/man2/recv.2:435 msgid "The argument I is an invalid descriptor." msgstr "引き数 I が不正なディスクリプタである。" #. type: Plain text #: build/C/man2/recv.2:439 msgid "" "A remote host refused to allow the network connection (typically because it " "is not running the requested service)." msgstr "" "リモートのホストでネットワーク接続が拒否された (よくある理由としては、要求し" "たサービスが起動されていないなどがある)。" #. type: Plain text #: build/C/man2/recv.2:443 msgid "" "The receive buffer pointer(s) point outside the process's address space." msgstr "受信バッファへのポインタがプロセスのアドレス空間外を指している。" #. type: Plain text #: build/C/man2/recv.2:448 msgid "" "The receive was interrupted by delivery of a signal before any data were " "available; see B(7)." msgstr "" "データを受信する前に、シグナルが配送されて割り込まれた。 B(7) 参照。" #. type: Plain text #: build/C/man2/recv.2:452 build/C/man2/send.2:323 msgid "Invalid argument passed." msgstr "不正な引き数が渡された。" #. type: Plain text #: build/C/man2/recv.2:456 msgid "Could not allocate memory for B()." msgstr "B() のためのメモリが確保できなかった。" #. type: TP #: build/C/man2/recv.2:456 build/C/man2/send.2:346 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man2/recv.2:463 msgid "" "The socket is associated with a connection-oriented protocol and has not " "been connected (see B(2) and B(2))." msgstr "" "ソケットに接続指向プロトコルが割り当てられており、 まだ接続されていない " "(B(2) と B(2) を参照のこと)。" #. type: Plain text #: build/C/man2/recv.2:468 msgid "The argument I does not refer to a socket." msgstr "引き数 I がソケットを参照していない。" #. type: Plain text #: build/C/man2/recv.2:471 msgid "4.4BSD (these function calls first appeared in 4.2BSD), POSIX.1-2001." msgstr "4.4BSD (これらの関数は 4.2BSD で現われた), POSIX.1-2001。" #. type: Plain text #: build/C/man2/recv.2:478 msgid "" "POSIX.1-2001 describes only the B, B, and B " "flags." msgstr "" "POSIX.1-2001 では、 B, B, B フラグだけが記載" "されている。" #. type: Plain text #: build/C/man2/recv.2:494 msgid "" "The prototypes given above follow glibc2. The Single UNIX Specification " "agrees, except that it has return values of type I (while 4.x BSD " "and libc4 and libc5 all have I). The I argument is I in 4." "x BSD, but I in libc4 and libc5. The I argument is " "I in 4.x BSD, but I in libc4 and libc5. The I " "argument is I in 4.x BSD, libc4 and libc5. The present I was invented by POSIX. See also B(2)." msgstr "" "上記のプロトタイプは glibc2 にしたがっている。 Single UNIX Specification でも" "同様だが、 返り値の型が I となっている (一方で 4.x BSD や libc4 や " "libc5 は全て I を使用している)。 I 引き数は 4.x BSD では I " "だが、libc4 と libc5 では I である。 I 引き数は 4.x BSD で" "は I だが、 libc4 と libc5 では I である。 I 引き数は " "4.x BSD, libc4, libc5 では I である。 現在の I は " "POSIX で発案された。 B(2) も参照すること。" #. glibc bug raised 12 Mar 2006 #. http://sourceware.org/bugzilla/show_bug.cgi?id=2448 #. The problem is an underlying kernel issue: the size of the #. __kernel_size_t type used to type this field varies #. across architectures, but socklen_t is always 32 bits. #. type: Plain text #: build/C/man2/recv.2:508 build/C/man2/send.2:409 msgid "" "According to POSIX.1-2001, the I field of the I " "structure should be typed as I, but glibc currently types it as " "I." msgstr "" "POSIX.1-2001 では、構造体 I のフィールド I は " "I 型であるべきだとされているが、 現在の glibc では I 型で" "ある。" #. type: Plain text #: build/C/man2/recv.2:513 msgid "" "See B(2) for information about a Linux-specific system call that " "can be used to receive multiple datagrams in a single call." msgstr "" "B(2) には、一度の呼び出しでの複数のデータグラムに使用できる Linux " "固有の システムコールに関する情報が書かれている。" #. type: Plain text #: build/C/man2/recv.2:518 msgid "An example of the use of B() is shown in B(3)." msgstr "B() の利用例が B(3) に記載されている。" #. type: Plain text #: build/C/man2/recv.2:529 msgid "" "B(2), B(2), B(2), B(2), B(2), " "B(2), B(2), B(3), B(3), B(7)" #. type: TH #: build/C/man2/recvmmsg.2:31 #, no-wrap msgid "RECVMMSG" msgstr "RECVMMSG" #. type: TH #: build/C/man2/recvmmsg.2:31 #, no-wrap msgid "2012-12-24" msgstr "2012-12-24" #. type: Plain text #: build/C/man2/recvmmsg.2:34 msgid "recvmmsg - receive multiple messages on a socket" msgstr "recvmmsg - 複数のメッセージをソケットから受信する" #. type: Plain text #: build/C/man2/recvmmsg.2:38 build/C/man2/sendmmsg.2:35 #, no-wrap msgid "" "B<#define _GNU_SOURCE>\n" "B<#include Esys/socket.hE>\n" msgstr "" "B<#define _GNU_SOURCE>\n" "B<#include Esys/socket.hE>\n" #. type: Plain text #: build/C/man2/recvmmsg.2:41 #, no-wrap msgid "BIB<, struct mmsghdr *>IB<, unsigned int >IB<,>\n" msgstr "BIB<, struct mmsghdr *>IB<, unsigned int >IB<,>\n" #. type: Plain text #: build/C/man2/recvmmsg.2:43 #, no-wrap msgid "B< unsigned int >IB<, struct timespec *>IB<);>\n" msgstr "B< unsigned int >IB<, struct timespec *>IB<);>\n" #. type: Plain text #: build/C/man2/recvmmsg.2:55 msgid "" "The B() system call is an extension of B(2) that allows " "the caller to receive multiple messages from a socket using a single system " "call. (This has performance benefits for some applications.) A further " "extension over B(2) is support for a timeout on the receive " "operation." msgstr "" "B() システムコールは B(2) の拡張で、 このシステムコールを" "使うと一度の呼び出しでソケットから複数のメッセージを受信することができる (ア" "プリケーションによっては性能上のメリットがある)。 他に B(2) から拡張" "されている点としては、受信操作におけるタイムアウトのサポートがある。" #. type: Plain text #: build/C/man2/recvmmsg.2:59 msgid "" "The I argument is the file descriptor of the socket to receive data " "from." msgstr "" "I 引き数は、データを受信するソケットのファイルディスクリプタである。" #. type: Plain text #: build/C/man2/recvmmsg.2:67 build/C/man2/sendmmsg.2:62 msgid "" "The I argument is a pointer to an array of I structures. " "The size of this array is specified in I." msgstr "" "I 引き数は I 構造体の配列である。 この配列の大きさは " "I で指定する。" #. type: Plain text #: build/C/man2/recvmmsg.2:73 build/C/man2/sendmmsg.2:68 msgid "The I structure is defined in Isys/socket.hE> as:" msgstr "" "I 構造体は Isys/socket.hE> で次のように定義されている。" #. type: Plain text #: build/C/man2/recvmmsg.2:80 #, no-wrap msgid "" "struct mmsghdr {\n" " struct msghdr msg_hdr; /* Message header */\n" " unsigned int msg_len; /* Number of received bytes for header */\n" "};\n" msgstr "" "struct mmsghdr {\n" " struct msghdr msg_hdr; /* メッセージヘッダ */\n" " unsigned int msg_len; /* このヘッダで受信されたバイト数 */\n" "};\n" #. type: Plain text #: build/C/man2/recvmmsg.2:95 msgid "" "The I field is a I structure, as described in B" "(2). The I field is the number of bytes returned for the message " "in the entry. This field has the same value as the return value of a single " "B(2) on the header." msgstr "" "I フィールドは、 B(2) で説明されている I 構造体であ" "る。 I フィールドは、 このエントリで返されるメッセージのバイト数" "で、 このヘッダに対して B(2) を呼び出した場合の返り値と同じ値が入" "る。" #. type: Plain text #: build/C/man2/recvmmsg.2:102 msgid "" "The I argument contains flags ORed together. The flags are the same " "as documented for B(2), with the following addition:" msgstr "" "I 引き数には複数のフラグを論理和 (OR) で指定できる。 フラグは、 " "B(2) で説明されているものに加えて、以下が使用できる。" #. type: TP #: build/C/man2/recvmmsg.2:102 #, no-wrap msgid "B (since Linux 2.6.34)" msgstr "B (Linux 2.6.34 以降)" #. type: Plain text #: build/C/man2/recvmmsg.2:107 msgid "Turns on B after the first message has been received." msgstr "最初のメッセージを受信後に B を有効にする。" #. type: Plain text #: build/C/man2/recvmmsg.2:123 msgid "" "The I argument points to a I (see B" "(2)) defining a timeout (seconds plus nanoseconds) for the receive " "operation. (This interval will be rounded up to the system clock " "granularity, and kernel scheduling delays mean that the blocking interval " "may overrun by a small amount.) If I is I then the operation " "blocks indefinitely." msgstr "" "I 引き数は I (B(2) 参照) へのポイン" "タで、 この構造体で受信操作のタイムアウト (秒とナノ秒) を指定する (待ち時間は" "システムクロックの粒度に切り上げられ、カーネルのスケジューリング遅延により少" "しだけ長くなる可能性がある)。 Iが I の場合、 受信操作は無期限" "に停止 (block) する。" #. type: Plain text #: build/C/man2/recvmmsg.2:134 msgid "" "A blocking B() call blocks until I messages have been " "received or until the timeout expires. A nonblocking call reads as many " "messages as are available (up to the limit specified by I) and " "returns immediately." msgstr "" "停止 (blocking) モードの B() の呼び出しは、 I 個のメッセージ" "を受信するか、タイムアウトが満了するまで停止する。 非停止 (nonblocking) モー" "ドの呼び出しでは、 読み出し可能なメッセージ (最大で I 個) を読み出し、 " "すぐに返る。" #. type: Plain text #: build/C/man2/recvmmsg.2:149 msgid "" "On return from B(), successive elements of I are updated " "to contain information about each received message: I contains the " "size of the received message; the subfields of I are updated as " "described in B(2). The return value of the call indicates the " "number of elements of I that have been updated." msgstr "" "B() が返った際には、 I のうちデータが受信された要素には、受" "信したそれぞれのメッセージの情報が格納されている。 また、 I には受信" "したメッセージの大きさが入り、 I の各フィールドは B(2) に書" "かれている通りに更新される。 呼び出しの返り値は、更新された I の要素" "数である。" #. type: Plain text #: build/C/man2/recvmmsg.2:157 msgid "" "On success, B() returns the number of messages received in " "I; on error, -1 is returned, and I is set to indicate the " "error." msgstr "" "成功すると、 B() は I に受信されたメッセージ数を返す。 エ" "ラーの場合、 -1 を返し、 I にエラーを示す値を設定する。" #. type: Plain text #: build/C/man2/recvmmsg.2:161 msgid "" "Errors are as for B(2). In addition, the following error can occur:" msgstr "" "エラーは B(2) と同じである。 これに加えて、以下のエラーが起こる場合" "がある。" #. type: Plain text #: build/C/man2/recvmmsg.2:165 msgid "I is invalid." msgstr "I が無効である。" #. type: Plain text #: build/C/man2/recvmmsg.2:170 msgid "" "The B() system call was added in Linux 2.6.33. Support in glibc " "was added in version 2.12." msgstr "" "B() システムコールは Linux 2.6.33 で追加された。 glibc でのサポート" "はバージョン 2.12 以降で利用可能である。" #. type: Plain text #: build/C/man2/recvmmsg.2:173 msgid "B() is Linux-specific." msgstr "B() は Linux 固有である。" #. type: Plain text #: build/C/man2/recvmmsg.2:181 msgid "" "The following program uses B() to receive multiple messages on a " "socket and stores them in multiple buffers. The call returns if all buffers " "are filled or if the timeout specified has expired." msgstr "" "以下のプログラムは、 B() を使って複数のメッセージをソケットから受信" "し、それらを複数のバッファに格納する。 呼び出しは、すべてのバッファにメッセー" "ジが格納されるか、 指定したタイムアウト時間が経過すると返る。" #. type: Plain text #: build/C/man2/recvmmsg.2:184 msgid "" "The following snippet periodically generates UDP datagrams containing a " "random number:" msgstr "" "以下のコマンドは、 ランダムな数字が入った UDP データグラムを定期的に生成す" "る。" #. type: Plain text #: build/C/man2/recvmmsg.2:189 #, no-wrap msgid "" "$B< while true; do echo $RANDOM E /dev/udp/127.0.0.1/1234; >\n" "B\n" msgstr "" "$B< while true; do echo $RANDOM E /dev/udp/127.0.0.1/1234; >\n" "B\n" #. type: Plain text #: build/C/man2/recvmmsg.2:194 msgid "" "These datagrams are read by the example application, which can give the " "following output:" msgstr "" "生成されたデータグラムをサンプルアプリケーションが読み出し、以下のような出力" "が得られる。" #. type: Plain text #: build/C/man2/recvmmsg.2:204 #, no-wrap msgid "" "$B< ./a.out>\n" "5 messages received\n" "1 11782\n" "2 11345\n" "3 304\n" "4 13514\n" "5 28421\n" msgstr "" "$B< ./a.out>\n" "5 messages received\n" "1 11782\n" "2 11345\n" "3 304\n" "4 13514\n" "5 28421\n" #. type: Plain text #: build/C/man2/recvmmsg.2:215 #, no-wrap msgid "" "#define _GNU_SOURCE\n" "#include Enetinet/ip.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Estring.hE\n" "#include Esys/socket.hE\n" msgstr "" "#define _GNU_SOURCE\n" "#include Enetinet/ip.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Estring.hE\n" "#include Esys/socket.hE\n" #. type: Plain text #: build/C/man2/recvmmsg.2:228 #, no-wrap msgid "" "int\n" "main(void)\n" "{\n" "#define VLEN 10\n" "#define BUFSIZE 200\n" "#define TIMEOUT 1\n" " int sockfd, retval, i;\n" " struct sockaddr_in sa;\n" " struct mmsghdr msgs[VLEN];\n" " struct iovec iovecs[VLEN];\n" " char bufs[VLEN][BUFSIZE+1];\n" " struct timespec timeout;\n" msgstr "" "int\n" "main(void)\n" "{\n" "#define VLEN 10\n" "#define BUFSIZE 200\n" "#define TIMEOUT 1\n" " int sockfd, retval, i;\n" " struct sockaddr_in sa;\n" " struct mmsghdr msgs[VLEN];\n" " struct iovec iovecs[VLEN];\n" " char bufs[VLEN][BUFSIZE+1];\n" " struct timespec timeout;\n" #. type: Plain text #: build/C/man2/recvmmsg.2:234 build/C/man2/sendmmsg.2:201 #, no-wrap msgid "" " sockfd = socket(AF_INET, SOCK_DGRAM, 0);\n" " if (sockfd == -1) {\n" " perror(\"socket()\");\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" " sockfd = socket(AF_INET, SOCK_DGRAM, 0);\n" " if (sockfd == -1) {\n" " perror(\"socket()\");\n" " exit(EXIT_FAILURE);\n" " }\n" #. type: Plain text #: build/C/man2/recvmmsg.2:242 #, no-wrap msgid "" " sa.sin_family = AF_INET;\n" " sa.sin_addr.s_addr = htonl(INADDR_LOOPBACK);\n" " sa.sin_port = htons(1234);\n" " if (bind(sockfd, (struct sockaddr *) &sa, sizeof(sa)) == -1) {\n" " perror(\"bind()\");\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" " sa.sin_family = AF_INET;\n" " sa.sin_addr.s_addr = htonl(INADDR_LOOPBACK);\n" " sa.sin_port = htons(1234);\n" " if (bind(sockfd, (struct sockaddr *) &sa, sizeof(sa)) == -1) {\n" " perror(\"bind()\");\n" " exit(EXIT_FAILURE);\n" " }\n" #. type: Plain text #: build/C/man2/recvmmsg.2:250 #, no-wrap msgid "" " memset(msgs, 0, sizeof(msgs));\n" " for (i = 0; i E VLEN; i++) {\n" " iovecs[i].iov_base = bufs[i];\n" " iovecs[i].iov_len = BUFSIZE;\n" " msgs[i].msg_hdr.msg_iov = &iovecs[i];\n" " msgs[i].msg_hdr.msg_iovlen = 1;\n" " }\n" msgstr "" " memset(msgs, 0, sizeof(msgs));\n" " for (i = 0; i E VLEN; i++) {\n" " iovecs[i].iov_base = bufs[i];\n" " iovecs[i].iov_len = BUFSIZE;\n" " msgs[i].msg_hdr.msg_iov = &iovecs[i];\n" " msgs[i].msg_hdr.msg_iovlen = 1;\n" " }\n" #. type: Plain text #: build/C/man2/recvmmsg.2:253 #, no-wrap msgid "" " timeout.tv_sec = TIMEOUT;\n" " timeout.tv_nsec = 0;\n" msgstr "" " timeout.tv_sec = TIMEOUT;\n" " timeout.tv_nsec = 0;\n" #. type: Plain text #: build/C/man2/recvmmsg.2:259 #, no-wrap msgid "" " retval = recvmmsg(sockfd, msgs, VLEN, 0, &timeout);\n" " if (retval == -1) {\n" " perror(\"recvmmsg()\");\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" " retval = recvmmsg(sockfd, msgs, VLEN, 0, &timeout);\n" " if (retval == -1) {\n" " perror(\"recvmmsg()\");\n" " exit(EXIT_FAILURE);\n" " }\n" #. type: Plain text #: build/C/man2/recvmmsg.2:267 #, no-wrap msgid "" " printf(\"%d messages received\\en\", retval);\n" " for (i = 0; i E retval; i++) {\n" " bufs[i][msgs[i].msg_len] = 0;\n" " printf(\"%d %s\", i+1, bufs[i]);\n" " }\n" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" " printf(\"%d messages received\\en\", retval);\n" " for (i = 0; i E retval; i++) {\n" " bufs[i][msgs[i].msg_len] = 0;\n" " printf(\"%d %s\", i+1, bufs[i]);\n" " }\n" " exit(EXIT_SUCCESS);\n" "}\n" #. type: Plain text #: build/C/man2/recvmmsg.2:275 msgid "" "B(2), B(2), B(2), B(2), B" "(2), B(7)" msgstr "" "B(2), B(2), B(2), B(2), B" "(2), B(7)" #. type: TH #: build/C/man2/select.2:38 #, no-wrap msgid "SELECT" msgstr "SELECT" #. type: TH #: build/C/man2/select.2:38 #, fuzzy, no-wrap #| msgid "2009-01-19" msgid "2014-01-31" msgstr "2009-01-19" #. type: Plain text #: build/C/man2/select.2:42 build/C/man2/select_tut.2:36 msgid "" "select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO - synchronous I/O " "multiplexing" msgstr "select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO - 同期 I/O の多重化" #. type: Plain text #: build/C/man2/select.2:45 build/C/man2/select_tut.2:39 #, no-wrap msgid "/* According to POSIX.1-2001 */\n" msgstr "/* POSIX.1-2001 に従う場合 */\n" #. type: Plain text #: build/C/man2/select.2:47 build/C/man2/select.2:68 #: build/C/man2/select_tut.2:41 build/C/man2/select_tut.2:62 #, no-wrap msgid "B<#include Esys/select.hE>\n" msgstr "B<#include Esys/select.hE>\n" #. type: Plain text #: build/C/man2/select.2:49 build/C/man2/select_tut.2:43 #, no-wrap msgid "/* According to earlier standards */\n" msgstr "/* 以前の規格に従う場合 */\n" #. type: Plain text #: build/C/man2/select.2:51 build/C/man2/select_tut.2:45 #, no-wrap msgid "B<#include Esys/time.hE>\n" msgstr "B<#include Esys/time.hE>\n" #. type: Plain text #: build/C/man2/select.2:55 build/C/man2/select_tut.2:49 #, no-wrap msgid "B<#include Eunistd.hE>\n" msgstr "B<#include Eunistd.hE>\n" #. type: Plain text #: build/C/man2/select.2:58 #, no-wrap msgid "" "BIB<, fd_set *>IB<, fd_set *>IB<,>\n" "B< fd_set *>IB<, struct timeval *>IB<);>\n" msgstr "" "BIB<, fd_set *>IB<, fd_set *>IB<,>\n" "B< fd_set *>IB<, struct timeval *>IB<);>\n" #. type: Plain text #: build/C/man2/select.2:60 build/C/man2/select_tut.2:54 #, no-wrap msgid "BIB<, fd_set *>IB<);>\n" msgstr "BIB<, fd_set *>IB<);>\n" #. type: Plain text #: build/C/man2/select.2:62 build/C/man2/select_tut.2:56 #, no-wrap msgid "BIB<, fd_set *>IB<);>\n" msgstr "BIB<, fd_set *>IB<);>\n" #. type: Plain text #: build/C/man2/select.2:64 build/C/man2/select_tut.2:58 #, no-wrap msgid "BIB<, fd_set *>IB<);>\n" msgstr "BIB<, fd_set *>IB<);>\n" #. type: Plain text #: build/C/man2/select.2:66 build/C/man2/select_tut.2:60 #, no-wrap msgid "BIB<);>\n" msgstr "BIB<);>\n" #. type: Plain text #: build/C/man2/select.2:72 #, no-wrap msgid "" "BIB<, fd_set *>IB<, fd_set *>IB<,>\n" "B< fd_set *>IB<, const struct timespec *>IB<,>\n" "B< const sigset_t *>IB<);>\n" msgstr "" "BIB<, fd_set *>IB<, fd_set *>IB<,>\n" "B< fd_set *>IB<, const struct timespec *>IB<,>\n" "B< const sigset_t *>IB<);>\n" #. type: Plain text #: build/C/man2/select.2:77 build/C/man2/select_tut.2:71 #: build/C/man3/sockatmark.3:36 msgid "" "Feature Test Macro Requirements for glibc (see B(7)):" msgstr "glibc 向けの機能検査マクロの要件 (B(7) 参照):" #. type: Plain text #: build/C/man2/select.2:81 build/C/man2/select_tut.2:75 msgid "" "B(): _POSIX_C_SOURCE\\ E=\\ 200112L || _XOPEN_SOURCE\\ E=\\ " "600" msgstr "" "B(): _POSIX_C_SOURCE\\ E=\\ 200112L || _XOPEN_SOURCE\\ E=\\ " "600" #. type: Plain text #: build/C/man2/select.2:92 msgid "" "B() や B() を使うと、プログラムで複数のファイルディスクリ" "プタを監視し、 一つ以上のファイルディスクリプタがある種の I/O 操作の 「ready " "(準備ができた)」状態 (例えば、読み込み可能になった状態) になるまで待つことが" "できる。 ファイルディスクリプタが ready (準備ができた) とは、 対応する I/O 操" "作 (例えば B(2) など) が停止 (block) なしに実行可能な状態にあることを" "意味する。" #. type: Plain text #: build/C/man2/select.2:98 msgid "" "The operation of B() と B() の動作は同じであるが、以下の 3 点が異なる:" #. type: TP #: build/C/man2/select.2:98 #, no-wrap msgid "(i)" msgstr "(i)" #. type: Plain text #: build/C/man2/select.2:108 msgid "" "B() では、タイムアウト時間の指定に構造体 I (秒・マイ" "クロ秒単位) を用いる。 一方、 B() 関数では、構造体 I (秒・ナノ秒単位) を用いる。" #. type: TP #: build/C/man2/select.2:108 #, no-wrap msgid "(ii)" msgstr "(ii)" #. type: Plain text #: build/C/man2/select.2:116 msgid "" "B() は残り時間を示す I 引き数を更新することがある。 " "B() はこの引き数を変更しない。" #. type: TP #: build/C/man2/select.2:116 #, no-wrap msgid "(iii)" msgstr "(iii)" #. type: Plain text #: build/C/man2/select.2:125 msgid "" "B() は I 引き数を持たない。その動作は I に NULL を" "指定した場合の B() と同じである。" #. type: Plain text #: build/C/man2/select.2:143 msgid "" "Three independent sets of file descriptors are watched. Those listed in " "I will be watched to see if characters become available for reading " "(more precisely, to see if a read will not block; in particular, a file " "descriptor is also ready on end-of-file), those in I will be " "watched to see if a write will not block, and those in I will be " "watched for exceptions. On exit, the sets are modified in place to indicate " "which file descriptors actually changed status. Each of the three file " "descriptor sets may be specified as NULL if no file descriptors are to be " "watched for the corresponding class of events." msgstr "" "3 つの独立したファイルディスクリプタ集合の監視を行う。 I に入れられ" "たディスクリプタについては、読み込みが可能かどうかを 監視する (より正確にいう" "と、停止 (block) なしで読むことができるかを 調べる。ファイルの終端 (end-of-" "file) の場合も、 ファイルディスクリプタは読み込み可能として扱われる)。 " "I に入れられたディスクリプタについては、停止せずに書き込みが 可能か" "どうかを監視する。 I にあるものについては、例外の監視を行なう。シ" "ステムコール終了時に、 どのファイルディスクリプタの状態が実際に変化したか示す" "ために、 集合の内容が変更される。 ある種別のイベントを監視したいファイルディ" "スクリプタが一つもない場合には、 対応するファイルディスクリプタ集合に NULL を" "指定することができる。" #. type: Plain text #: build/C/man2/select.2:156 msgid "" "Four macros are provided to manipulate the sets. B() clears a " "set. B() and B() respectively add and remove a given file " "descriptor from a set. B() tests to see if a file descriptor is " "part of the set; this is useful after B() が終了した後に使うと便利であ" "る。" #. type: Plain text #: build/C/man2/select.2:159 msgid "" "I is the highest-numbered file descriptor in any of the three sets, " "plus 1." msgstr "" "I は 3 つの集合に含まれるファイルディスクリプタの最大値に 1 を足したも" "のである。" #. type: Plain text #: build/C/man2/select.2:166 msgid "" "The I argument specifies the interval that B() should " #| "block waiting for a file descriptor to become ready. This interval will " #| "be rounded up to the system clock granularity, and kernel scheduling " #| "delays mean that the blocking interval may overrun by a small amount. If " #| "both fields of the I structure are zero, then B() can block indefinitely." msgid "" "Note that the I interval will be rounded up to the system clock " "granularity, and kernel scheduling delays mean that the blocking interval " "may overrun by a small amount. If both fields of the I structure " "are zero, then B() can block " "indefinitely." msgstr "" "I 引き数で、ファイルディスクリプタが ready になるのを待って\n" "B() はすぐに復\n" "帰する (この機能はポーリング (polling) を行うのに便利である)。\n" "I に NULL (タイムアウトなし) が指定されると、 B() could hang indefinitely if the signal arrived just " "after the test but just before the call. By contrast, B() allows " "one to first block signals, handle the signals that have come in, then call " "B() with the desired I, avoiding the race.)" msgstr "" "B() が必要になる理由は、シグナルやファイルディスクリプタの状態変化" "を 待ちたいときには、競合状態を避けるために atomic なテストが必要になる から" "である。 (シグナルハンドラが大域フラグを設定して戻る場合を考えてみよう。 この" "大域フラグのテストに続けて B() は永久にハングしてしまうかもし" "れない。 一方、 B() を使うと、まずシグナルを禁止 (block) して、入っ" "てくるシグナルを操作し、 望みの I で B() を呼び出すこと" "で、前記の競合を避けることができる。)" #. type: SS #: build/C/man2/select.2:242 #, no-wrap msgid "The timeout" msgstr "タイムアウト" #. type: Plain text #: build/C/man2/select.2:246 msgid "" "The time structures involved are defined in Isys/time.hE> and look " "like" msgstr "" "これらの関数で使用される時間関連の構造体は、 Isys/time.hE> で" #. type: Plain text #: build/C/man2/select.2:253 #, no-wrap msgid "" "struct timeval {\n" " long tv_sec; /* seconds */\n" " long tv_usec; /* microseconds */\n" "};\n" msgstr "" "struct timeval {\n" " long tv_sec; /* 秒 */\n" " long tv_usec; /* マイクロ秒 */\n" "};\n" #. type: Plain text #: build/C/man2/select.2:257 msgid "and" msgstr "や" #. type: Plain text #: build/C/man2/select.2:264 #, no-wrap msgid "" "struct timespec {\n" " long tv_sec; /* seconds */\n" " long tv_nsec; /* nanoseconds */\n" "};\n" msgstr "" "struct timespec {\n" " long tv_sec; /* 秒 */\n" " long tv_nsec; /* ナノ秒 */\n" "};\n" #. type: Plain text #: build/C/man2/select.2:268 msgid "(However, see below on the POSIX.1-2001 versions.)" msgstr "" "のように定義されている。 (POSIX.1-2001 での定義については下記の「注意」を参" "照)" #. type: Plain text #: build/C/man2/select.2:276 msgid "" "Some code calls B() を" "呼び出すという方法を使っているコードもある。" #. .PP - it is rumored that: #. On BSD, when a timeout occurs, the file descriptor bits are not changed. #. - it is certainly true that: #. Linux follows SUSv2 and sets the bit masks to zero upon a timeout. #. type: Plain text #: build/C/man2/select.2:299 msgid "" "On Linux, B()s in a loop " "without reinitializing it. Consider I to be undefined after " "B() は I を変更し、残りの停止時間を反映するよ" "うになっているが、 他のほとんどの実装ではこのようになっていない " "(POSIX.1-2001 はどちらの動作も認めている)。 このため、 I を参照して" "いる Linux のコードを他のオペレーティング・システムへ 移植する場合、問題が起" "こる。 また、ループの中で I 構造体を初期化せずにそのまま再利用して " "B() から復帰した後は I は未定義であると考えるべきで" "ある。" #. type: Plain text #: build/C/man2/select.2:317 #, fuzzy #| msgid "" #| "On success, B() and B() return the number of file " "descriptors contained in the three returned descriptor sets (that is, the " "total number of bits that are set in I, I, I) " "which may be zero if the timeout expires before anything interesting " "happens. On error, -1 is returned, and I is set to indicate the " "error; the file descriptor sets are unmodified, and I becomes " "undefined." msgstr "" "成功した場合、 B() conforms to POSIX.1-2001 and 4.4BSD (B() は POSIX.1-2001 と 4.4BSD (B(). The POSIX.1-2001 situation is that one " "should include Isys/select.hE> for B() を使いたい場合は、 " "Itime.hE> をインクルードすればよい。 POSIX.1-2001 の環境で " "B() is closed in another " "thread, the result is unspecified. On some UNIX systems, B() returned and the " "I/O operations was performed). On Linux (and some other systems), closing " "the file descriptor in another thread has no effect on B() で監視中のファイルディスクリプタが別のスレッドでクローズされた場" "合、どのような結果になるかは規定されていない。いくつかの UNIX システムでは、 " "B() が返ってから I/O 操作が実行されるまでの間に、 別の" "ファイルディスクリプタが再度オープンされない限り、 それ以降の I/O 操作はおそ" "らく失敗するだろう)。 Linux (や他のいくつかのシステム) では、 別のスレッドで" "ファイルディスクリプタがクローズされても B(). This " "implementation remained vulnerable to the very race condition that B" "() was designed to prevent. Modern versions of glibc use the (race-free) " "B() system call on kernels where it is provided." msgstr "" "バージョン 2.1 以降の glibc では、 B() は B(2) と " "B() in the main program. (To avoid possibly blocking when writing " "to a pipe that may be full or reading from a pipe that may be empty, " "nonblocking I/O is used when reading from and writing to the pipe.)" msgstr "" "B() がないシステムにおいて、シグナルの捕捉を信頼性があり (移植\n" "性も高い) 方法で行うには、 自己パイプ (self-pipe) という技を使うとよい。\n" "この方法では、シグナルハンドラはパイプへ 1 バイトのデータを書き込み、\n" "同じパイプのもう一端をメインプログラムの B() may report a socket file descriptor as \"ready for " "reading\", while nevertheless a subsequent read blocks. This could for " "example happen when data has arrived but upon examination has wrong checksum " "and is discarded. There may be other circumstances in which a file " "descriptor is spuriously reported as ready. Thus it may be safer to use " "B on sockets that should not block." msgstr "" "Linux では、 B() also modifies I if the call is interrupted " "by a signal handler (i.e., the B error return). This is not " "permitted by POSIX.1-2001. The Linux B() system call has the same " "behavior, but the glibc wrapper hides this behavior by internally copying " "the I to a local variable and passing that variable to the system " "call." msgstr "" "Linux では、 B() (or B()) is used to efficiently monitor multiple file " "descriptors, to see if any of them is, or becomes, \"ready\"; that is, to " "see whether I/O becomes possible, or an \"exceptional condition\" has " "occurred on any of the descriptors." msgstr "" "B() modifies the contents of the sets " "according to the rules described below; after calling B() はこれらの集合の内容" "を、以降に述べる規則に従って修正する。 B() has returned, I will be " "cleared of all file descriptors except for those that are immediately " "available for reading." msgstr "" "この集合に含まれるいずれかのファイルディスクリプタで、 データの読み込みが可能" "になったかどうかを監視する。 B() has returned, I will be " "cleared of all file descriptors except for those that are immediately " "available for writing." msgstr "" "この集合に含まれるいずれかのファイルディスクリプタで、 データを書き込むスペー" "スがあるかどうかを監視する。 B(2) indicates an exceptional condition occurs with " "pseudoterminals in packet mode; see B(4).) After B() が例外" "状態を示すことがある。) B() may wait before returning, even if " "nothing interesting happened. If this value is passed as NULL, then " "B() to " "return immediately, with information about the readiness of file descriptors " "at the time of the call. The structure I is defined as:" msgstr "" "(何も起こらなかった場合に) B() はファイルディスクリプタのいずれかが ready " "(準備ができた) 状態に なるまで待ち続けてずっと停止する。 I は 0 秒" "にすることもでき、 この場合 B()." msgstr "" "この引き数は、呼び出し側が B() 内部で停止している間に、カーネルが通" "知を許可すべきシグナル集合 (すなわち、呼び出したスレッドのシグナルマスクから" "削除すべきシグナル集合) を保持する (B(3) と B(2) " "を参照)。 この引き数は NULL にすることもでき、その場合はこの関数へ 入るとき・" "出るときにシグナルマスクを変更しない。 この場合、 B() は B() (or B()) call to " "return with I set to B. This behavior is essential so that " "signals can be processed in the main loop of the program, otherwise B() call? The answer " "is that B() (や B()) は " "I に B をセットして戻ることになる。 シグナルがプログラムのメイ" "ンループで処理されるためにはこの動作が不可欠で、 これがないと B() コールの前に到着したら どうなるの" "か?」 答えは「その B()? Can't I just read and write to my " "descriptors whenever I want? The point of B() " "efficiently copes with this situation." msgstr "" "実際のところ B() の重要なところは、複数のディスクリ" "プタを同時に監視でき、 なんの動きもなければプロセスを適切にスリープ状態に移行" "するところにあるのだ。 UNIX プログラマは、 複数のファイルディスクリプタの入出" "力を同時に扱わねばならず、 しかもデータの流れは間欠的である、という状況によく" "出会う。 単に B(2) や B(2) コールのシーケンスを作るだけでは、" "それらのコールのどれかが ファイルディスクリプタからのデータを待ってブロックし" "ており、 別のファイルディスクリプタには I/O が可能なのに使えない、 ということ" "になってしまうだろう。 B() come across behavior that is " "difficult to understand and produces nonportable or borderline results. For " "instance, the above program is carefully written not to block at any point, " "even though it does not set its file descriptors to nonblocking mode. It is " "easy to introduce subtle errors that will remove the advantage of using " "B()." msgstr "" "B() を使う利点は簡単に失われてしま" "う。 そこで、 B() without a timeout. Your program " "should have nothing to do if there is no data available. Code that depends " "on timeouts is not usually portable and is difficult to debug." msgstr "" "B() call, and respond appropriately. See next " "rule." msgstr "" "B() returns, all file descriptors in all sets should be " "checked to see if they are ready." msgstr "" "B() call can return -1 with I set to B, or " "with I set to B (B). These results must be " "properly managed (not done properly above). If your program is not going to " "receive any signals, then it is unlikely you will get B. If your " "program does not set nonblocking I/O, you will not get B." msgstr "" "B(2), B(2), B(2), B(2) などの関数や B() again. In the example below, I close the " "descriptor immediately, and then set it to -1 to prevent it being included " "in a set." msgstr "" "B(2), B(2), B(2), B(2) が B<7.> に示した以外のエ" "ラーで失敗した場合や、 入力系の関数の一つがファイル末尾を表す 0 を返した場合" "は、 そのディスクリプタをもう一度 select に渡してはI<ならない>。 下記の例で" "は、そのディスクリプタをただちにクローズし、 そこには -1 をセットして、 それ" "が集合に含まれ続けるのを許さないようにしている。" #. type: TP #: build/C/man2/select_tut.2:443 #, no-wrap msgid "10." msgstr "10." #. type: Plain text #: build/C/man2/select_tut.2:450 msgid "" "The timeout value must be initialized with each new call to B() を呼ぶたびに初期化すべきである。 OS によって" "は timeout 構造体が変更される場合があるからである。 但し、 B() は自" "分の timeout 構造体を変更することはない。" #. type: TP #: build/C/man2/select_tut.2:450 #, no-wrap msgid "11." msgstr "11." #. "I have heard" does not fill me with confidence, and doesn't #. belong in a man page, so I've commented this point out. #. .TP #. 11. #. I have heard that the Windows socket layer does not cope with OOB data #. properly. #. It also does not cope with #. .BR select () #. calls when no file descriptors are set at all. #. Having no file descriptors set is a useful #. way to sleep the process with subsecond precision by using the timeout. #. (See further on.) #. type: Plain text #: build/C/man2/select_tut.2:469 msgid "" "Since B() はファイルディスクリプタ集合を変更するので、 B" "() with a finite timeout and no file descriptors as follows:" msgstr "" "B(3) 関数を持たないシステムでは、 有限のタイムアウトを指定し、ファイ" "ルディスクリプタを全くセットせずに B() returns the total number of file descriptors still " "present in the file descriptor sets." msgstr "" "成功すると、 B() timed out, then the return value will be zero. The file " "descriptors set should be all empty (but may not be on some systems)." msgstr "" "B(). B() もサポートしている。 B(), and " "is somewhat more efficient when monitoring sparse file descriptor sets. It " "is nowadays widely available, but historically was less portable than " "B() と同じ機能を持っており、 まばらな" "ファイルディスクリプタ集合を監視する場合に いくらか効率がよい。 現在では広く" "利用可能であるが、以前は B(2) and B(2) when monitoring large numbers " "of file descriptors." msgstr "" "Linux 独自の B(7) API は、多数のファイルディスクリプタを監視する場合" "に B" "(). The listing below is a TCP forwarding program that forwards from one " "TCP port to another." msgstr "" "B(2), B(2), B(2), B(2), B" "(3), B(3), B(3), B(3), B" "(3), B(7)" msgstr "" "B(2), B(2), B(2), B(2), B(2), B" "(2), B(2) call may be used to determine when it is " "possible to send more data." msgstr "" "メッセージがソケットの送信バッファに入れることができない場合、 B() は" "通常は停止 (block) する (ソケットが非停止 (nonblocking) I/O モード でない場" "合)。非停止モードの場合にはエラー B か B で失敗する。 い" "つデータをさらに送信できるようになるかを知るために、 B(2), B(2), " "B(2), B(2), B(2), B(2), B(3), B" "(7), B(7), B(7), B(7)" msgstr "" "B(2), B(2), B(2), B(2), B(2), B(2), B(2), " "B(2), B(3), B(7), B(7), B(7), B" "(7), B(7)" msgstr "" "B(2), B(2), B(2), B(2), B(2), " "B(2), B(2), B(2), B(2), B(2), " "B(2), B(2) wait for arriving data or a readiness to send " "data. In addition, the standard I/O operations like B(2), B" "(2), B(2), B(2), and B(2) can be used to read and " "write data." msgstr "" "B(2), B(2), B(2) はソケットを通してデータを送信し、 " "B(2) B(2), B(2) はソケットからデータを受信する。 " "B(2) と B(2)." msgstr "" "非ブロッキングな I/O をソケットで行うことは可能で、 B(2) を使ってソ" "ケットのファイルディスクリプタに B フラグをセットすれば良い。 こ" "うするとブロックされる操作は、 (通常) B エラーで戻ることになる (後で" "処理が再試行されることが期待されている)。 B(2) では B " "エラーが返される。 この場合、ユーザはさまざまなイベントを B(2) や " "B(2) is to let the kernel inform " "the application about events via a B signal. For that the B " "flag must be set on a socket file descriptor via B(2) and a valid " "signal handler for B must be installed via B(2). See the " "I discussion below." msgstr "" "B(2) や B(2) and B(2) system calls currently do not respect the " "B setting on Linux, and mark a socket readable when even a " "single byte of data is available. A subsequent read from the socket will " "block until B bytes are available." msgstr "" "バッファ中に溜めることのできるデータの最小値を指定する。 このサイズを越える" "と、ソケット層はそのデータをプロトコルに渡し (B)、 受信時には" "ユーザに渡す (B)。 これら二つの値は 1 に初期化される。 " "B は Linux では変更できない (B(2) は " "B エラーで失敗する)。 B は Linux 2.4 以降でのみ変更" "可能である。 現状、Linux ではシステムコール B(2), B(2), B(2), and so on." msgstr "" "送信・受信のタイムアウトを指定する。これを越えるとエラーを報告する。 引き数" "は I である。 入出力関数がタイムアウト時間の間ブロックされ、" "かつデータの送信または 受信が行われていた場合は、転送されたデータ量が関数の返" "り値となる。 何もデータが転送されずにタイムアウトに達した場合は、 -1 を返" "し、 I に B か B か B (B" "(2) の場合) が設定され、 あたかもソケットに非ブロッキングが指定されたように見" "える。 タイムアウト値に (デフォルト値である) 0 に設定すると、 操作は決してタ" "イムアウトしなくなる。 タイムアウトが影響を及ぼすのは、 ソケット I/O を実行す" "るシステムコールだけ (例えば B(2), B(2), B(2), " "B(2)) である。 B(2) and B(2) will busy poll when they operate on sockets " "with B set and no events to report are found." msgstr "" #. type: Plain text #: build/C/man7/socket.7:738 msgid "" "In both cases, busy polling will only be done when the socket last received " "data from a network device that supports this option." msgstr "" #. type: Plain text #: build/C/man7/socket.7:742 msgid "" "While busy polling may improve latency of some applications, care must be " "taken when using it since this will increase both CPU utilization and power " "usage." msgstr "" #. type: SS #: build/C/man7/socket.7:742 #, no-wrap msgid "Signals" msgstr "シグナル" #. type: Plain text #: build/C/man7/socket.7:753 msgid "" "When writing onto a connection-oriented socket that has been shut down (by " "the local or the remote end) B is sent to the writing process and " "B is returned. The signal is not sent when the write call specified " "the B flag." msgstr "" "(ローカルもしくはリモート側で) 切断された 接続指向 (connection-oriented) のソ" "ケットに対して 書き込みを行うと、その書き込みを行ったプロセスに B が" "送られ、 B が返される。 write 呼び出しに B フラグを指定" "していた場合はシグナルは送られない。" #. type: Plain text #: build/C/man7/socket.7:778 msgid "" "When requested with the B B(2) or B B" "(2), B is sent when an I/O event occurs. It is possible to use " "B(2) or B(2) をシグナルハンドラ内で用いれば、どのソケッ" "トでイベントが起こったかを 知ることができる。 (Linux 2.2 における) 別の方法と" "しては、 B B(2) を用いてリアルタイムシグナルを設定するやり" "方もある。 リアルタイムシグナルのハンドラは、 I の I フィー" "ルドにファイルディスクリプタが入った状態で呼び出される。 詳細は B(2) " "を参照のこと。" #. .SS Ancillary messages #. type: Plain text #: build/C/man7/socket.7:786 msgid "" "Under some circumstances (e.g., multiple processes accessing a single " "socket), the condition that caused the B may have already disappeared " "when the process reacts to the signal. If this happens, the process should " "wait again because Linux will resend the signal later." msgstr "" "状況によっては (例えば複数のプロセスが一つのソケットにアクセスしているな" "ど)、 B の原因となった状態は、プロセスがそのシグナルへの対応を行ったと" "きには 消えてしまっているかもしれない。 この場合は、プロセスは再び待つように" "すべきである。 Linux は同じシグナルを後で再送するからである。" #. type: SS #: build/C/man7/socket.7:786 #, no-wrap msgid "/proc interfaces" msgstr "/proc インタフェース" #. type: Plain text #: build/C/man7/socket.7:790 msgid "" "The core socket networking parameters can be accessed via files in the " "directory I." msgstr "" "core のソケットのネットワーキングパラメータには、 I ディ" "レクトリ内のファイルを通してアクセスできる。" #. type: TP #: build/C/man7/socket.7:790 #, no-wrap msgid "I" msgstr "I" #. type: Plain text #: build/C/man7/socket.7:793 msgid "contains the default setting in bytes of the socket receive buffer." msgstr "ソケットの受信バッファサイズのデフォルト値 (バイト単位)。" #. type: TP #: build/C/man7/socket.7:793 #, no-wrap msgid "I" msgstr "I" #. type: Plain text #: build/C/man7/socket.7:799 msgid "" "contains the maximum socket receive buffer size in bytes which a user may " "set by using the B socket option." msgstr "" "B ソケットオプションを用いてユーザが設定できる ソケットの受信バッ" "ファサイズの最大値 (バイト単位)。" #. type: TP #: build/C/man7/socket.7:799 #, no-wrap msgid "I" msgstr "I" #. type: Plain text #: build/C/man7/socket.7:802 msgid "contains the default setting in bytes of the socket send buffer." msgstr "ソケットの送信バッファサイズのデフォルト値 (バイト単位)。" #. type: TP #: build/C/man7/socket.7:802 #, no-wrap msgid "I" msgstr "I" #. type: Plain text #: build/C/man7/socket.7:808 msgid "" "contains the maximum socket send buffer size in bytes which a user may set " "by using the B socket option." msgstr "" "B ソケットオプションを用いてユーザが設定できる ソケットの送信バッ" "ファサイズの最大値 (バイト単位)。" #. type: TP #: build/C/man7/socket.7:808 #, no-wrap msgid "I and I" msgstr "I と I" #. type: Plain text #: build/C/man7/socket.7:812 msgid "" "configure the token bucket filter used to load limit warning messages caused " "by external network events." msgstr "" "トークン・バケット・フィルターを設定する。 これは外部のネットワークイベントに" "よって引き起こされた 負荷限界の警告メッセージに用いられる。" #. type: TP #: build/C/man7/socket.7:812 #, no-wrap msgid "I" msgstr "I" #. type: Plain text #: build/C/man7/socket.7:815 msgid "Maximum number of packets in the global input queue." msgstr "グローバルな入力キューにおける最大のパケット数。" #. type: TP #: build/C/man7/socket.7:815 #, no-wrap msgid "I" msgstr "I" #. netdev_fastroute is not documented because it is experimental #. type: Plain text #: build/C/man7/socket.7:820 msgid "" "Maximum length of ancillary data and user control data like the iovecs per " "socket." msgstr "" "ソケットあたりの、補助データ (ancillary data) とユーザ制御データ (iovecs のよ" "うなもの) との和の最大長。" #. type: SS #: build/C/man7/socket.7:820 #, no-wrap msgid "Ioctls" msgstr "ioctl" #. type: Plain text #: build/C/man7/socket.7:823 msgid "These operations can be accessed using B(2):" msgstr "以下に示す操作には B(2) を用いてアクセスできる。" #. type: Plain text #: build/C/man7/socket.7:827 #, no-wrap msgid "IB< = ioctl(>IB<, >IB<, >I<&value_result>B<);>\n" msgstr "IB< = ioctl(>IB<, >IB<, >I<&value_result>B<);>\n" #. type: TP #: build/C/man7/socket.7:829 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man7/socket.7:853 msgid "" "Return a I with the receive timestamp of the last packet " "passed to the user. This is useful for accurate round trip time " "measurements. See B(2) for a description of I. " "This ioctl should be used only if the socket option B is not " "set on the socket. Otherwise, it returns the timestamp of the last packet " "that was received while B was not set, or it fails if no such " "packet has been received, (i.e., B(2) returns -1 with I set " "to B)." msgstr "" "最後にユーザに渡されたパケットの受信タイムスタンプを I に入れ" "て返す。 これは round trip 時間を正確に測りたいときに便利である。 I の説明は B(2) を見てほしい。 この ioctl は、ソケットオプ" "ション B がソケットにセットされていない場合にのみ使用すべきであ" "る。 さもなければ、この ioctl は B がセットされていなかった間に" "受信した最後のパケットの時刻を返すか、 そのようなパケットを受信していない場合" "には失敗する (つまり、 B(2) は -1 を返し、 I に B を" "セットする)。" #. type: TP #: build/C/man7/socket.7:853 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man7/socket.7:872 msgid "" "Set the process or process group to send B or B signals to " "when an asynchronous I/O operation has finished or urgent data is " "available. The argument is a pointer to a I. If the argument is " "positive, send the signals to that process. If the argument is negative, " "send the signals to the process group with the ID of the absolute value of " "the argument. The process may only choose itself or its own process group " "to receive signals unless it has the B capability or an effective " "UID of 0." msgstr "" "非同期 I/O 操作の終了時や緊急データの受信時に B や B シグナル" "群を送るプロセスやプロセスグループを設定する。 引き数は I へのポインタ" "である。 引き数が正だと、そのプロセスにシグナルが送られる。負だと、 引き数の" "絶対値を ID に持つプロセスグループにシグナルが送られる。 シグナル受信先には、" "自分自身のプロセス / 自分の所属するプロセスグループ しか指定できない。但し、 " "B ケーパビリティを持っている場合、及び実効ユーザ ID が 0 のプロセス" "の場合は この限りではない。" #. type: TP #: build/C/man7/socket.7:872 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man7/socket.7:882 msgid "" "Change the B flag to enable or disable asynchronous I/O mode of the " "socket. Asynchronous I/O mode means that the B signal or the signal " "set with B is raised when a new I/O event occurs." msgstr "" "B フラグを変更し、ソケットの非同期 (asynchronous) I/O モードを 有効/" "無効にする。非同期 I/O モードでは、 新しい I/O イベントが起きたときに、 " "B シグナルや B で設定されたシグナル・セットが発行される。" #. type: Plain text #: build/C/man7/socket.7:890 msgid "" "Argument is an integer boolean flag. (This operation is synonymous with the " "use of B(2) to set the B flag.)" msgstr "" "引き数はブール整数のフラグである。 (この操作は B(2) を使って " "B フラグをセットするのと同じ意味である。)" #. type: TP #: build/C/man7/socket.7:890 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man7/socket.7:899 msgid "" "Get the current process or process group that receives B or B " "signals, or 0 when none is set." msgstr "" "B や B を受信したカレントプロセス・プロセスグループを取得す" "る。 ない場合は 0 が返る。" #. type: Plain text #: build/C/man7/socket.7:903 msgid "Valid B(2) operations:" msgstr "有効な B(2) 操作:" #. type: TP #: build/C/man7/socket.7:903 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man7/socket.7:908 msgid "The same as the B B(2)." msgstr "B B(2) と同じ。" #. type: TP #: build/C/man7/socket.7:908 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man7/socket.7:913 msgid "The same as the B B(2)." msgstr "B B(2) と同じ。" #. type: Plain text #: build/C/man7/socket.7:927 msgid "" "B was introduced in Linux 2.0.30. B is new in " "Linux 2.2. The I interfaces was introduced in Linux 2.2. " "B and B are supported since Linux 2.3.41. " "Earlier, timeouts were fixed to a protocol-specific setting, and could not " "be read or written." msgstr "" "B は Linux 2.0.30 で導入された。 B は Linux " "2.2 で登場した。 I インタフェースは Linux 2.2 で導入された。 " "B と B は Linux 2.3.41 以降でサポートされている。 " "それ以前は、タイムアウトはプロトコル固有の固定の設定値で、 読み書きをすること" "はできなかった。" #. type: Plain text #: build/C/man7/socket.7:932 msgid "" "Linux assumes that half of the send/receive buffer is used for internal " "kernel structures; thus the values in the corresponding I files are " "twice what can be observed on the wire." msgstr "" "Linux は、送受信バッファの半分を内部のカーネル構造体で用いると仮定している。 " "したがって、対応する I ファイルはネットワーク回線上での大きさの 2 倍に" "なる。" #. type: Plain text #: build/C/man7/socket.7:945 msgid "" "Linux will only allow port reuse with the B option when this " "option was set both in the previous program that performed a B(2) to " "the port and in the program that wants to reuse the port. This differs from " "some implementations (e.g., FreeBSD) where only the later program needs to " "set the B option. Typically this difference is invisible, " "since, for example, a server program is designed to always set this option." msgstr "" "Linux では、 B オプションでポートの再利用が許可されるのは、 そ" "のポートに対して B(2) を前に実行したプログラムとそのポートを再利用 し" "ようとするプログラムの両方で B がセットされた場合のみである。 " "この動作は (FreeBSD などの) いくつかの実装とは異なる。これらでは、 後でポート" "を再利用しようとするプログラムで B オプションをセットするだけで" "よい。 たいていはこの違いは見えない。なぜなら、例えばサーバプログラムは 常に" "このオプションをセットするように設計されるからである。" #. FIXME Document SO_ATTACH_FILTER and SO_DETACH_FILTER #. .SH AUTHORS #. This man page was written by Andi Kleen. #. type: Plain text #: build/C/man7/socket.7:958 msgid "" "The B socket options B and " "B are not documented. The suggested interface to use them " "is via the libpcap library." msgstr "" "B ソケットオプションである B と " "B について記載されていない。これらは libpcap ライブラリを通" "して 用いる方が良い。" #. type: Plain text #: build/C/man7/socket.7:970 #, fuzzy #| msgid "" #| "B(2), B(2), B(2), B(2), " #| "B(7), B(7), B(7), B(7), B(7), B" #| "(7), B(7)" msgid "" "B(2), B(2), B(2), B(2), " "B(7), B(7), B(7), B(7), B(7), B(7), " "B(7)" msgstr "" "B(2), B(2), B(2), B(2), " "B(7), B(7), B(7), B(7), B(7), B(7), " "B(7)" #. type: TH #: build/C/man2/socketcall.2:25 #, no-wrap msgid "SOCKETCALL" msgstr "SOCKETCALL" #. type: TH #: build/C/man2/socketcall.2:25 #, no-wrap msgid "2012-10-16" msgstr "2012-10-16" #. type: Plain text #: build/C/man2/socketcall.2:28 msgid "socketcall - socket system calls" msgstr "socketcall - ソケット・システムコール" #. type: Plain text #: build/C/man2/socketcall.2:30 msgid "BIB<, unsigned long *>IB<);>" msgstr "BIB<, unsigned long *>IB<);>" #. type: Plain text #: build/C/man2/socketcall.2:38 msgid "" "B() is a common kernel entry point for the socket system " "calls. I determines which socket function to invoke. I points " "to a block containing the actual arguments, which are passed through to the " "appropriate call." msgstr "" "B() はソケット・システムコールのための共通のカーネル・エント" "リ・ ポイント(kernel entry point)である。 I はどのソケット関数を呼び出" "すかを指定する。 I は適切なコールに渡すための実際の引き数を含んでいるブ" "ロックを指す。" #. type: Plain text #: build/C/man2/socketcall.2:42 msgid "" "User programs should call the appropriate functions by their usual names. " "Only standard library implementors and kernel hackers need to know about " "B()." msgstr "" "ユーザー・プログラムは通常の名前を使用して適切な関数を呼び出すべきである。 標" "準ライブラリの実装者やカーネル・ハッカーのみが B() について知る" "必要がある。" #. type: Plain text #: build/C/man2/socketcall.2:45 msgid "" "This call is specific to Linux, and should not be used in programs intended " "to be portable." msgstr "" "このコールは Linux 特有であり、移植を意図したプログラムで 使用してはいけな" "い。" #. type: Plain text #: build/C/man2/socketcall.2:53 msgid "" "On a some architectures\\(emfor example, x86-64 and ARM\\(emthere is no " "B() system call; instead B(2), B(2), B" "(2), and so on really are implemented as separate system calls." msgstr "" "いくつかのアーキテクチャ\\\\(emfor 例えば x86-64 や ARM\\\\(emでは、システム" "コール B() が存在しない。実際には、その代わりに B(2), " "B(2), B(2) などが独立したシステムコールとして実装されている。" #. type: Plain text #: build/C/man2/socketcall.2:71 msgid "" "B(2), B(2), B(2), B(2), B" "(2), B(2), B(2), B(2), B(2), B" "(2), B(2), B(2), B(2), B(2), B" "(2), B(2), B(2)" msgstr "" "B(2), B(2), B(2), B(2), B" "(2), B(2), B(2), B(2), B(2), B" "(2), B(2), B(2), B(2), B(2), B" "(2), B(2), B(2)" #. type: TH #: build/C/man2/socketpair.2:42 #, no-wrap msgid "SOCKETPAIR" msgstr "SOCKETPAIR" #. type: TH #: build/C/man2/socketpair.2:42 #, no-wrap msgid "2008-10-11" msgstr "2008-10-11" #. type: Plain text #: build/C/man2/socketpair.2:45 msgid "socketpair - create a pair of connected sockets" msgstr "socketpair - 接続されたソケットのペアを作成する" #. type: Plain text #: build/C/man2/socketpair.2:52 msgid "" "BIB<, int >IB<, int >IB<, int " ">IB<[2]);>" msgstr "" "BIB<, int >IB<, int >IB<, int " ">IB<[2]);>" #. type: Plain text #: build/C/man2/socketpair.2:63 msgid "" "The B() call creates an unnamed pair of connected sockets in " "the specified I, of the specified I, and using the optionally " "specified I. For further details of these arguments, see B" "(2)." msgstr "" "B() は、指定されたドメイン I に指定された種類 I で" "名前のないソケットの接続されたペアを作成する。 I が指定されると、こ" "のプロトコルを用いる。 これらの引き数の詳細は B(2) を参照のこと。" #. type: Plain text #: build/C/man2/socketpair.2:69 msgid "" "The descriptors used in referencing the new sockets are returned in I[0] " "and I[1]. The two sockets are indistinguishable." msgstr "" "新しいソケットの参照に使用するディスクリプタ (descriptor) が I[0] と " "I[1] に返される。 二つのソケットは全く同じである。" #. type: Plain text #: build/C/man2/socketpair.2:78 msgid "The specified address family is not supported on this machine." msgstr "このマシンでは指定されたアドレス・ファミリがサポートされていない。" #. type: Plain text #: build/C/man2/socketpair.2:83 msgid "" "The address I does not specify a valid part of the process address space." msgstr "アドレス I がこのプロセスで使えるアドレス空間を指定していない。" #. type: Plain text #: build/C/man2/socketpair.2:86 msgid "Too many descriptors are in use by this process." msgstr "このプロセスが使用しているディスクリプタの数が多すぎる。" #. type: Plain text #: build/C/man2/socketpair.2:92 msgid "The specified protocol does not support creation of socket pairs." msgstr "指定されたプロトコルではソケットのペアの作成がサポートされていない。" #. type: Plain text #: build/C/man2/socketpair.2:95 msgid "The specified protocol is not supported on this machine." msgstr "このマシンでは指定されたプロトコルがサポートされていない。" #. type: Plain text #: build/C/man2/socketpair.2:103 msgid "" "4.4BSD, POSIX.1-2001. The B() function call appeared in " "4.2BSD. It is generally portable to/from non-BSD systems supporting clones " "of the BSD socket layer (including System V variants)." msgstr "" "4.4BSD, POSIX.1-2001. B() 関数コールは 4.2BSD で現われた。一般" "に (System V の変種を含めて) BSD のソケット層のクローンをサポートしている、" "BSD 以外のシステムと、 互いに移植性がある。" #. type: Plain text #: build/C/man2/socketpair.2:109 msgid "" "On Linux, the only supported domain for this call is B (or " "synonymously, B). (Most implementations have the same " "restriction.)" msgstr "" "Linux では、この関数でサポートされているドメインは B (または同義語で" "ある B) だけである。 (ほとんどの実装で同じ制限がある)" #. type: Plain text #: build/C/man2/socketpair.2:118 msgid "" "Since Linux 2.6.27, B() supports the B and " "B flags described in B(2)." msgstr "" "Linux 2.6.27 以降では、 B() は、フラグ B と " "B に対応している。フラグの説明は B(2) を参照のこと。" #. type: Plain text #: build/C/man2/socketpair.2:131 msgid "" "B(2), B(2), B(2), B(2), B(7), B(7)" msgstr "" "B(2), B(2), B(2), B(2), B(7), B(7)" #~ msgid "" #~ "$ B<./a.out>\n" #~ "lo address family: 17 (AF_PACKET)\n" #~ "eth0 address family: 17 (AF_PACKET)\n" #~ "lo address family: 2 (AF_INET)\n" #~ " address: E127.0.0.1E\n" #~ "eth0 address family: 2 (AF_INET)\n" #~ " address: E10.1.1.4E\n" #~ "lo address family: 10 (AF_INET6)\n" #~ " address: E::1E\n" #~ "eth0 address family: 10 (AF_INET6)\n" #~ " address: Efe80::2d0:59ff:feda:eb51%eth0E\n" #~ msgstr "" #~ "$ B<./a.out>\n" #~ "lo address family: 17 (AF_PACKET)\n" #~ "eth0 address family: 17 (AF_PACKET)\n" #~ "lo address family: 2 (AF_INET)\n" #~ " address: E127.0.0.1E\n" #~ "eth0 address family: 2 (AF_INET)\n" #~ " address: E10.1.1.4E\n" #~ "lo address family: 10 (AF_INET6)\n" #~ " address: E::1E\n" #~ "eth0 address family: 10 (AF_INET6)\n" #~ " address: Efe80::2d0:59ff:feda:eb51%eth0E\n" #~ msgid "2013-04-19" #~ msgstr "2013-04-19" #~ msgid "2012-08-03" #~ msgstr "2012-08-03" #~ msgid "2012-04-23" #~ msgstr "2012-04-23" #~ msgid "2012-08-17" #~ msgstr "2012-08-17"