msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2012-04-25 05:36+0900\n"
-"PO-Revision-Date: 2012-04-30 19:23+0900\n"
+"POT-Creation-Date: 2013-03-22 01:06+0900\n"
+"PO-Revision-Date: 2012-05-29 21:31+0900\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"Content-Transfer-Encoding: 8bit\n"
#. type: TH
-#: build/C/man2/accept.2:39
+#: build/C/man2/accept.2:41
#, no-wrap
msgid "ACCEPT"
msgstr "ACCEPT"
#. type: TH
-#: build/C/man2/accept.2:39
+#: build/C/man2/accept.2:41
#, no-wrap
msgid "2010-09-10"
msgstr "2010-09-10"
#. type: TH
-#: build/C/man2/accept.2:39 build/C/man2/bind.2:66 build/C/man2/connect.2:65
-#: build/C/man2/getsockname.2:38 build/C/man2/getsockopt.2:42
-#: build/C/man2/listen.2:43 build/C/man2/recv.2:39 build/C/man2/recvmmsg.2:26
-#: build/C/man2/select.2:38 build/C/man2/select_tut.2:30
-#: build/C/man2/send.2:38 build/C/man2/sendmmsg.2:28
-#: build/C/man3/sockatmark.3:23 build/C/man2/socket.2:41
-#: build/C/man7/socket.7:26 build/C/man2/socketcall.2:26
-#: build/C/man2/socketpair.2:40
+#: 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:48 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:39 build/C/man2/bind.2:66
-#: build/C/man3/bindresvport.3:27 build/C/man2/connect.2:65
-#: build/C/man3/getifaddrs.3:33 build/C/man2/getsockname.2:38
-#: build/C/man2/getsockopt.2:42 build/C/man2/listen.2:43
-#: build/C/man2/recv.2:39 build/C/man2/recvmmsg.2:26 build/C/man2/select.2:38
-#: build/C/man2/select_tut.2:30 build/C/man2/send.2:38
-#: build/C/man2/sendmmsg.2:28 build/C/man3/sockatmark.3:23
-#: build/C/man2/socket.2:41 build/C/man7/socket.7:26
-#: build/C/man2/socketcall.2:26 build/C/man2/socketpair.2:40
+#: 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:48
+#: 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:40 build/C/man2/bind.2:67
-#: build/C/man3/bindresvport.3:28 build/C/man2/connect.2:66
-#: build/C/man3/getifaddrs.3:34 build/C/man2/getsockname.2:39
-#: build/C/man2/getsockopt.2:43 build/C/man2/listen.2:44
-#: build/C/man2/recv.2:40 build/C/man2/recvmmsg.2:27 build/C/man2/select.2:39
-#: build/C/man2/select_tut.2:31 build/C/man2/send.2:39
-#: build/C/man2/sendmmsg.2:29 build/C/man3/sockatmark.3:24
-#: build/C/man2/socket.2:42 build/C/man7/socket.7:27
-#: build/C/man2/socketcall.2:27 build/C/man2/socketpair.2:41
+#: 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:49
+#: 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:42
-msgid "accept - accept a connection on a socket"
+#: build/C/man2/accept.2:44
+#, fuzzy
+#| msgid "accept - accept a connection on a socket"
+msgid "accept, accept4 - accept a connection on a socket"
msgstr "accept - ソケットへの接続を受ける"
#. type: SH
-#: build/C/man2/accept.2:42 build/C/man2/bind.2:69
-#: build/C/man3/bindresvport.3:30 build/C/man2/connect.2:68
-#: build/C/man3/getifaddrs.3:36 build/C/man2/getsockname.2:41
-#: build/C/man2/getsockopt.2:45 build/C/man2/listen.2:46
-#: build/C/man2/recv.2:42 build/C/man2/recvmmsg.2:29 build/C/man2/select.2:42
-#: build/C/man2/select_tut.2:34 build/C/man2/send.2:41
-#: build/C/man2/sendmmsg.2:31 build/C/man3/sockatmark.3:26
-#: build/C/man2/socket.2:44 build/C/man7/socket.7:29
-#: build/C/man2/socketcall.2:29 build/C/man2/socketpair.2:43
+#: 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:51
+#: 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:46 build/C/man2/bind.2:73
+#: build/C/man2/accept.2:48 build/C/man2/bind.2:75
#, no-wrap
msgid ""
"B<#include E<lt>sys/types.hE<gt>> /* See NOTES */\n"
"B<#include E<lt>sys/socket.hE<gt>>\n"
#. type: Plain text
-#: build/C/man2/accept.2:48
+#: build/C/man2/accept.2:50
#, no-wrap
msgid "B<int accept(int >I<sockfd>B<, struct sockaddr *>I<addr>B<, socklen_t *>I<addrlen>B<);>\n"
msgstr "B<int accept(int >I<sockfd>B<, struct sockaddr *>I<addr>B<, socklen_t *>I<addrlen>B<);>\n"
#. type: Plain text
-#: build/C/man2/accept.2:51
+#: build/C/man2/accept.2:53
#, no-wrap
msgid ""
"B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
"B<#include E<lt>sys/socket.hE<gt>>\n"
#. type: Plain text
-#: build/C/man2/accept.2:54
+#: build/C/man2/accept.2:56
#, no-wrap
msgid ""
"B<int accept4(int >I<sockfd>B<, struct sockaddr *>I<addr>B<,>\n"
"B< socklen_t *>I<addrlen>B<, int >I<flags>B<);>\n"
#. type: SH
-#: build/C/man2/accept.2:55 build/C/man2/bind.2:77
-#: build/C/man3/bindresvport.3:37 build/C/man2/connect.2:77
-#: build/C/man3/getifaddrs.3:45 build/C/man2/getsockname.2:48
-#: build/C/man2/getsockopt.2:56 build/C/man2/listen.2:54
-#: build/C/man2/recv.2:57 build/C/man2/recvmmsg.2:39 build/C/man2/select.2:81
-#: build/C/man2/select_tut.2:73 build/C/man2/send.2:56
-#: build/C/man2/sendmmsg.2:40 build/C/man3/sockatmark.3:40
-#: build/C/man2/socket.2:50 build/C/man7/socket.7:33
-#: build/C/man2/socketcall.2:31 build/C/man2/socketpair.2:50
+#: 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:55
+#: 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:70
+#: build/C/man2/accept.2:72
msgid ""
"The B<accept>() system call is used with connection-based socket types "
"(B<SOCK_STREAM>, B<SOCK_SEQPACKET>). It extracts the first connection "
"もとのソケット I<sockfd> はこの呼び出しによって影響を受けない。"
#. type: Plain text
-#: build/C/man2/accept.2:79
+#: build/C/man2/accept.2:81
msgid ""
"The argument I<sockfd> is a socket that has been created with B<socket>(2), "
"bound to a local address with B<bind>(2), and is listening for connections "
"である。"
#. type: Plain text
-#: build/C/man2/accept.2:97
+#: build/C/man2/accept.2:99
msgid ""
"The argument I<addr> is a pointer to a I<sockaddr> structure. This "
"structure is filled in with the address of the peer socket, as known to the "
"おくべきである。"
#. type: Plain text
-#: build/C/man2/accept.2:105
+#: build/C/man2/accept.2:107
msgid ""
"The I<addrlen> argument is a value-result argument: the caller must "
"initialize it to contain the size (in bytes) of the structure pointed to by "
"返ってくる時には、接続相手のアドレスの実際の大きさが格納される。"
#. type: Plain text
-#: build/C/man2/accept.2:110 build/C/man2/getsockname.2:65
+#: 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<addrlen> will return a value greater than was supplied to the "
"される。"
#. type: Plain text
-#: build/C/man2/accept.2:123
+#: 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<accept>() blocks the caller until a connection is "
"B<accept>() はエラー B<EAGAIN> か B<EWOULDBLOCK> で失敗する。"
#. type: Plain text
-#: build/C/man2/accept.2:137
+#: build/C/man2/accept.2:139
msgid ""
"In order to be notified of incoming connections on a socket, you can use "
"B<select>(2) or B<poll>(2). A readable event will be delivered when a new "
"(deliver) させるようにすることもできる。詳細は B<socket>(7) を参照のこと。"
#. type: Plain text
-#: build/C/man2/accept.2:150
+#: build/C/man2/accept.2:152
msgid ""
"For certain protocols which require an explicit confirmation, such as "
"DECNet, B<accept>() can be thought of as merely dequeuing the next "
"セマンティクスを持つのは DECNet だけである。"
#. type: Plain text
-#: build/C/man2/accept.2:160
+#: build/C/man2/accept.2:162
msgid ""
"If I<flags> is 0, then B<accept4>() is the same as B<accept>(). The "
"following values can be bitwise ORed in I<flags> to obtain different "
"できる。"
#. type: TP
-#: build/C/man2/accept.2:160 build/C/man2/socket.2:162
+#: build/C/man2/accept.2:162 build/C/man2/socket.2:164
#, no-wrap
msgid "B<SOCK_NONBLOCK>"
msgstr "B<SOCK_NONBLOCK>"
#. type: Plain text
-#: build/C/man2/accept.2:168 build/C/man2/socket.2:170
+#: build/C/man2/accept.2:170 build/C/man2/socket.2:172
msgid ""
"Set the B<O_NONBLOCK> file status flag on the new open file description. "
"Using this flag saves extra calls to B<fcntl>(2) to achieve the same result."
"なる。"
#. type: TP
-#: build/C/man2/accept.2:168 build/C/man2/socket.2:170
+#: build/C/man2/accept.2:170 build/C/man2/socket.2:172
#, no-wrap
msgid "B<SOCK_CLOEXEC>"
msgstr "B<SOCK_CLOEXEC>"
#. type: Plain text
-#: build/C/man2/accept.2:178 build/C/man2/socket.2:180
+#: build/C/man2/accept.2:180 build/C/man2/socket.2:182
msgid ""
"Set the close-on-exec (B<FD_CLOEXEC>) flag on the new file descriptor. See "
"the description of the B<O_CLOEXEC> flag in B<open>(2) for reasons why this "
"B<O_CLOEXEC> フラグの説明を参照のこと。"
#. type: SH
-#: build/C/man2/accept.2:178 build/C/man2/bind.2:150
-#: build/C/man3/bindresvport.3:64 build/C/man2/connect.2:125
-#: build/C/man3/getifaddrs.3:137 build/C/man2/getsockname.2:65
-#: build/C/man2/getsockopt.2:129 build/C/man2/listen.2:80
-#: build/C/man2/recv.2:386 build/C/man2/recvmmsg.2:141
-#: build/C/man2/select.2:285 build/C/man2/select_tut.2:483
-#: build/C/man2/send.2:273 build/C/man2/sendmmsg.2:119
-#: build/C/man3/sockatmark.3:49 build/C/man2/socket.2:312
-#: build/C/man2/socketpair.2:67
+#: 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:388 build/C/man2/recvmmsg.2:149
+#: build/C/man2/select.2:289 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:314
+#: build/C/man2/socketpair.2:69
#, no-wrap
msgid "RETURN VALUE"
msgstr "返り値"
#. type: Plain text
-#: build/C/man2/accept.2:185
+#: 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<errno> "
"定する。"
#. type: SS
-#: build/C/man2/accept.2:185
-#, no-wrap
-msgid "Error Handling"
+#: build/C/man2/accept.2:187
+#, fuzzy, no-wrap
+#| msgid "Error Handling"
+msgid "Error handling"
msgstr "エラー処理"
#. type: Plain text
-#: build/C/man2/accept.2:212
+#: build/C/man2/accept.2:214
msgid ""
"Linux B<accept>() (and B<accept4>()) passes already-pending network errors "
"on the new socket as an error code from B<accept>(). This behavior differs "
"from other BSD socket implementations. For reliable operation the "
"application should detect the network errors defined for the protocol after "
-"B<accept>() and treat them like B<EAGAIN> by retrying. In case of TCP/IP "
-"these are B<ENETDOWN>, B<EPROTO>, B<ENOPROTOOPT>, B<EHOSTDOWN>, B<ENONET>, "
-"B<EHOSTUNREACH>, B<EOPNOTSUPP>, and B<ENETUNREACH>."
+"B<accept>() and treat them like B<EAGAIN> by retrying. In the case of TCP/"
+"IP, these are B<ENETDOWN>, B<EPROTO>, B<ENOPROTOOPT>, B<EHOSTDOWN>, "
+"B<ENONET>, B<EHOSTUNREACH>, B<EOPNOTSUPP>, and B<ENETUNREACH>."
msgstr ""
"Linux の B<accept>() (と B<accept4>()) は、新しいソケットにおける、発生済み"
"のネットワークエラーを B<accept>() からのエラーコードとして渡す。 この振舞い"
"B<ENETUNREACH>"
#. type: SH
-#: build/C/man2/accept.2:212 build/C/man2/bind.2:155
-#: build/C/man3/bindresvport.3:69 build/C/man2/connect.2:130
-#: build/C/man3/getifaddrs.3:144 build/C/man2/getsockname.2:70
-#: build/C/man2/getsockopt.2:134 build/C/man2/listen.2:85
-#: build/C/man2/recv.2:391 build/C/man2/recvmmsg.2:149
-#: build/C/man2/select.2:302 build/C/man2/send.2:278
-#: build/C/man2/sendmmsg.2:133 build/C/man3/sockatmark.3:54
-#: build/C/man2/socket.2:317 build/C/man2/socketpair.2:72
+#: 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:393 build/C/man2/recvmmsg.2:157
+#: build/C/man2/select.2:306 build/C/man2/send.2:280
+#: build/C/man2/sendmmsg.2:133 build/C/man3/sockatmark.3:56
+#: build/C/man2/socket.2:319 build/C/man2/socketpair.2:74
#, no-wrap
msgid "ERRORS"
msgstr "エラー"
#. type: TP
-#: build/C/man2/accept.2:213 build/C/man2/recv.2:396 build/C/man2/send.2:291
+#: build/C/man2/accept.2:215 build/C/man2/recv.2:398 build/C/man2/send.2:296
#, no-wrap
msgid "B<EAGAIN> or B<EWOULDBLOCK>"
msgstr "B<EAGAIN> または B<EWOULDBLOCK>"
#. Actually EAGAIN on Linux
#. type: Plain text
-#: build/C/man2/accept.2:221
+#: 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, "
"ションでは、両方の可能性を 確認すべきである。"
#. type: TP
-#: build/C/man2/accept.2:221 build/C/man2/bind.2:163
-#: build/C/man2/connect.2:167 build/C/man2/getsockname.2:71
-#: build/C/man2/getsockopt.2:135 build/C/man2/listen.2:89
-#: build/C/man2/recv.2:405 build/C/man2/select.2:303 build/C/man2/send.2:299
-#: build/C/man3/sockatmark.3:55
+#: 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:407 build/C/man2/select.2:307 build/C/man2/send.2:304
+#: build/C/man3/sockatmark.3:57
#, no-wrap
msgid "B<EBADF>"
msgstr "B<EBADF>"
#. type: Plain text
-#: build/C/man2/accept.2:224
+#: build/C/man2/accept.2:226
msgid "The descriptor is invalid."
msgstr "ディスクリプタが不正。"
#. type: TP
-#: build/C/man2/accept.2:224
+#: build/C/man2/accept.2:226
#, no-wrap
msgid "B<ECONNABORTED>"
msgstr "B<ECONNABORTED>"
#. type: Plain text
-#: build/C/man2/accept.2:227
+#: build/C/man2/accept.2:229
msgid "A connection has been aborted."
msgstr "接続が中止された。"
#. type: TP
-#: build/C/man2/accept.2:227 build/C/man2/bind.2:189
-#: build/C/man2/connect.2:173 build/C/man2/getsockname.2:76
-#: build/C/man2/getsockopt.2:140 build/C/man2/recv.2:414
-#: build/C/man2/send.2:308 build/C/man2/socketpair.2:76
+#: 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:416
+#: build/C/man2/send.2:313 build/C/man2/socketpair.2:78
#, no-wrap
msgid "B<EFAULT>"
msgstr "B<EFAULT>"
#. type: Plain text
-#: build/C/man2/accept.2:232
+#: build/C/man2/accept.2:234
msgid ""
"The I<addr> argument is not in a writable part of the user address space."
msgstr "I<addr> 引き数がユーザアドレス空間の書き込み可能領域にない。"
#. type: TP
-#: build/C/man2/accept.2:232 build/C/man2/connect.2:201
-#: build/C/man2/recv.2:418 build/C/man2/select.2:308 build/C/man2/send.2:311
+#: build/C/man2/accept.2:234 build/C/man2/connect.2:203
+#: build/C/man2/recv.2:420 build/C/man2/select.2:312 build/C/man2/send.2:316
#, no-wrap
msgid "B<EINTR>"
msgstr "B<EINTR>"
#. type: Plain text
-#: build/C/man2/accept.2:237
+#: 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<signal>(7)."
"た。 B<signal>(7) 参照。"
#. type: TP
-#: build/C/man2/accept.2:237 build/C/man2/accept.2:242 build/C/man2/bind.2:167
-#: build/C/man2/bind.2:193 build/C/man2/getsockname.2:82
-#: build/C/man2/getsockopt.2:150 build/C/man2/recv.2:423
-#: build/C/man2/recvmmsg.2:153 build/C/man2/select.2:312
-#: build/C/man2/send.2:315 build/C/man3/sockatmark.3:59
-#: build/C/man2/socket.2:325 build/C/man2/socket.2:328
+#: 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:425
+#: build/C/man2/recvmmsg.2:161 build/C/man2/select.2:316
+#: build/C/man2/send.2:320 build/C/man3/sockatmark.3:61
+#: build/C/man2/socket.2:327 build/C/man2/socket.2:330
#, no-wrap
msgid "B<EINVAL>"
msgstr "B<EINVAL>"
#. type: Plain text
-#: build/C/man2/accept.2:242
+#: build/C/man2/accept.2:244
msgid ""
"Socket is not listening for connections, or I<addrlen> is invalid (e.g., is "
"negative)."
"負の場合など)。"
#. type: Plain text
-#: build/C/man2/accept.2:247
+#: build/C/man2/accept.2:249
msgid "(B<accept4>()) invalid value in I<flags>."
msgstr "(B<accept4>()) I<flags> に不正な値が指定されている。"
#. type: TP
-#: build/C/man2/accept.2:247 build/C/man2/socket.2:333
-#: build/C/man2/socketpair.2:81
+#: build/C/man2/accept.2:249 build/C/man2/socket.2:335
+#: build/C/man2/socketpair.2:83
#, no-wrap
msgid "B<EMFILE>"
msgstr "B<EMFILE>"
#. type: Plain text
-#: build/C/man2/accept.2:250
+#: 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:250 build/C/man2/socket.2:336
-#: build/C/man2/socketpair.2:84
+#: build/C/man2/accept.2:252 build/C/man2/socket.2:338
+#: build/C/man2/socketpair.2:86
#, no-wrap
msgid "B<ENFILE>"
msgstr "B<ENFILE>"
#. type: Plain text
-#: build/C/man2/accept.2:253 build/C/man2/socket.2:339
-#: build/C/man2/socketpair.2:87
+#: build/C/man2/accept.2:255 build/C/man2/socket.2:341
+#: 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:253
+#: build/C/man2/accept.2:255
#, no-wrap
msgid "B<ENOBUFS>, B<ENOMEM>"
msgstr "B<ENOBUFS>, B<ENOMEM>"
#. type: Plain text
-#: build/C/man2/accept.2:258
+#: 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."
"ケットバッファの大きさによるメモリ割り当ての制限である。"
#. type: TP
-#: build/C/man2/accept.2:258 build/C/man2/bind.2:172
-#: build/C/man2/connect.2:213 build/C/man2/getsockname.2:90
-#: build/C/man2/getsockopt.2:164 build/C/man2/listen.2:94
-#: build/C/man2/recv.2:438 build/C/man2/send.2:344
+#: 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:440 build/C/man2/send.2:349
#, no-wrap
msgid "B<ENOTSOCK>"
msgstr "B<ENOTSOCK>"
#. type: Plain text
-#: build/C/man2/accept.2:261
+#: build/C/man2/accept.2:263
msgid "The descriptor references a file, not a socket."
msgstr "ディスクリプタはソケットではなくファイルを参照している。"
#. type: TP
-#: build/C/man2/accept.2:261 build/C/man2/listen.2:99 build/C/man2/send.2:349
-#: build/C/man2/socketpair.2:87
+#: 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<EOPNOTSUPP>"
msgstr "B<EOPNOTSUPP>"
#. type: Plain text
-#: build/C/man2/accept.2:265
+#: build/C/man2/accept.2:267
msgid "The referenced socket is not of type B<SOCK_STREAM>."
msgstr "参照しているソケットの型が B<SOCK_STREAM> でない。"
#. type: TP
-#: build/C/man2/accept.2:265
+#: build/C/man2/accept.2:267
#, no-wrap
msgid "B<EPROTO>"
msgstr "B<EPROTO>"
#. type: Plain text
-#: build/C/man2/accept.2:268
+#: build/C/man2/accept.2:270
msgid "Protocol error."
msgstr "プロトコル・エラー。"
#. type: Plain text
-#: build/C/man2/accept.2:272
+#: build/C/man2/accept.2:274
msgid "In addition, Linux B<accept>() may fail if:"
msgstr "上記に加えて、Linux の B<accept>() は以下のエラーで失敗する:"
#. type: TP
-#: build/C/man2/accept.2:272
+#: build/C/man2/accept.2:274
#, no-wrap
msgid "B<EPERM>"
msgstr "B<EPERM>"
#. type: Plain text
-#: build/C/man2/accept.2:275
+#: build/C/man2/accept.2:277
msgid "Firewall rules forbid connection."
msgstr "ファイアウォールのルールにより接続が禁止された。"
#. type: Plain text
-#: build/C/man2/accept.2:287
+#: 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 "
"ともある。"
#. type: SH
-#: build/C/man2/accept.2:287 build/C/man3/getifaddrs.3:157
-#: build/C/man2/recvmmsg.2:157 build/C/man2/select.2:321
-#: build/C/man2/sendmmsg.2:145 build/C/man3/sockatmark.3:66
-#: build/C/man7/socket.7:697
+#: 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:325 build/C/man2/sendmmsg.2:145
+#: build/C/man3/sockatmark.3:68 build/C/man7/socket.7:802
#, no-wrap
msgid "VERSIONS"
msgstr "バージョン"
#. type: Plain text
-#: build/C/man2/accept.2:292
+#: build/C/man2/accept.2:294
msgid ""
"The B<accept4>() system call is available starting with Linux 2.6.28; "
"support in glibc is available starting with version 2.10."
"サポートはバージョン 2.10 以降で利用可能である。"
#. type: SH
-#: build/C/man2/accept.2:292 build/C/man2/bind.2:220
-#: build/C/man3/bindresvport.3:89 build/C/man2/connect.2:223
-#: build/C/man3/getifaddrs.3:165 build/C/man2/getsockname.2:95
-#: build/C/man2/getsockopt.2:169 build/C/man2/listen.2:104
-#: build/C/man2/recv.2:443 build/C/man2/recvmmsg.2:162
-#: build/C/man2/select.2:327 build/C/man2/send.2:363
-#: build/C/man2/sendmmsg.2:150 build/C/man3/sockatmark.3:69
-#: build/C/man2/socket.2:350 build/C/man2/socketcall.2:43
-#: build/C/man2/socketpair.2:93
+#: build/C/man2/accept.2:294 build/C/man2/bind.2:222
+#: build/C/man3/bindresvport.3:92 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:445 build/C/man2/recvmmsg.2:170
+#: build/C/man2/select.2:331 build/C/man2/send.2:368
+#: build/C/man2/sendmmsg.2:150 build/C/man3/sockatmark.3:71
+#: build/C/man2/socket.2:352 build/C/man2/socketcall.2:42
+#: build/C/man2/socketpair.2:95
#, no-wrap
msgid "CONFORMING TO"
msgstr "準拠"
#. ENFILE, ENOBUFS, ENOMEM, ENOTSOCK, EOPNOTSUPP, EPROTO, EWOULDBLOCK.
#. In addition, SUSv2 documents EFAULT and ENOSR.
#. type: Plain text
-#: build/C/man2/accept.2:304
+#: build/C/man2/accept.2:306
msgid ""
"B<accept>(): POSIX.1-2001, SVr4, 4.4BSD, (B<accept>() first appeared in "
"4.2BSD)."
"された)."
#. type: Plain text
-#: build/C/man2/accept.2:307
+#: build/C/man2/accept.2:309
msgid "B<accept4>() is a nonstandard Linux extension."
msgstr "B<accept4>() は非標準の 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:322
+#: build/C/man2/accept.2:324
msgid ""
"On Linux, the new socket returned by B<accept>() does I<not> inherit file "
"status flags such as B<O_NONBLOCK> and B<O_ASYNC> from the listening "
"である。"
#. type: SH
-#: build/C/man2/accept.2:322 build/C/man2/bind.2:232
-#: build/C/man3/bindresvport.3:92 build/C/man2/connect.2:239
-#: build/C/man3/getifaddrs.3:185 build/C/man2/getsockname.2:101
-#: build/C/man2/getsockopt.2:176 build/C/man2/listen.2:109
-#: build/C/man2/recv.2:453 build/C/man2/select.2:342
-#: build/C/man2/select_tut.2:501 build/C/man2/send.2:377
-#: build/C/man2/sendmmsg.2:153 build/C/man3/sockatmark.3:71
-#: build/C/man2/socket.2:364 build/C/man7/socket.7:711
-#: build/C/man2/socketcall.2:46 build/C/man2/socketpair.2:101
+#: build/C/man2/accept.2:324 build/C/man2/bind.2:234
+#: build/C/man3/bindresvport.3:95 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:455 build/C/man2/select.2:346
+#: build/C/man2/select_tut.2:503 build/C/man2/send.2:382
+#: build/C/man2/sendmmsg.2:153 build/C/man3/sockatmark.3:73
+#: build/C/man2/socket.2:366 build/C/man7/socket.7:816
+#: 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:328 build/C/man2/bind.2:238
-#: build/C/man2/connect.2:245 build/C/man2/getsockopt.2:182
-#: build/C/man2/listen.2:135 build/C/man2/socket.2:370
-#: build/C/man2/socketpair.2:122
+#: 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:372
+#: build/C/man2/socketpair.2:124
msgid ""
"POSIX.1-2001 does not require the inclusion of I<E<lt>sys/types.hE<gt>>, and "
"this header file is not required on Linux. However, some historical (BSD) "
"ションではこのファイルを インクルードするのが賢明であろう。"
#. type: Plain text
-#: build/C/man2/accept.2:349
+#: build/C/man2/accept.2:351
msgid ""
"There may not always be a connection waiting after a B<SIGIO> is delivered "
"or B<select>(2) or B<poll>(2) return a readability event because the "
"見よ)。"
#. type: SS
-#: build/C/man2/accept.2:349
+#: build/C/man2/accept.2:351
#, no-wrap
msgid "The socklen_t type"
msgstr "socklen_t 型"
#. type: Plain text
-#: build/C/man2/accept.2:359
+#: build/C/man2/accept.2:361
msgid ""
"The third argument of B<accept>() was originally declared as an I<int *> "
"(and is that under libc4 and libc5 and on many other systems like 4.x BSD, "
#. .I fails: only italicizes a single line
#. type: Plain text
-#: build/C/man2/accept.2:376
+#: build/C/man2/accept.2:378
msgid ""
"\"_Any_ sane library _must_ have \"socklen_t\" be the same size as int. "
"Anything else breaks any BSD socket layer stuff. POSIX initially I<did> "
"う)。」"
#. type: SH
-#: build/C/man2/accept.2:376 build/C/man2/bind.2:252
-#: build/C/man2/connect.2:256 build/C/man3/getifaddrs.3:198
-#: build/C/man2/listen.2:164 build/C/man2/recv.2:488 build/C/man2/select.2:484
-#: build/C/man2/select_tut.2:527 build/C/man2/send.2:414
-#: build/C/man3/sockatmark.3:95 build/C/man2/socket.2:382
+#: build/C/man2/accept.2:378 build/C/man2/bind.2:254
+#: build/C/man2/connect.2:258 build/C/man3/getifaddrs.3:207
+#: build/C/man3/if_nameindex.3:108 build/C/man2/listen.2:166
+#: build/C/man2/recv.2:490 build/C/man2/recvmmsg.2:173
+#: build/C/man2/select.2:537 build/C/man2/select_tut.2:529
+#: build/C/man2/send.2:419 build/C/man2/sendmmsg.2:168
+#: build/C/man3/sockatmark.3:97 build/C/man2/socket.2:385
#, no-wrap
msgid "EXAMPLE"
msgstr "例"
#. type: Plain text
-#: build/C/man2/accept.2:379 build/C/man2/listen.2:167
+#: build/C/man2/accept.2:381 build/C/man2/listen.2:169
msgid "See B<bind>(2)."
msgstr "B<bind>(2) 参照。"
#. type: SH
-#: build/C/man2/accept.2:379 build/C/man2/bind.2:317
-#: build/C/man3/bindresvport.3:98 build/C/man2/connect.2:261
-#: build/C/man3/getifaddrs.3:281 build/C/man2/getsockname.2:110
-#: build/C/man2/getsockopt.2:200 build/C/man2/listen.2:167
-#: build/C/man2/recv.2:493 build/C/man2/recvmmsg.2:165
-#: build/C/man2/select.2:521 build/C/man2/select_tut.2:817
-#: build/C/man2/send.2:419 build/C/man2/sendmmsg.2:168
-#: build/C/man3/sockatmark.3:130 build/C/man2/socket.2:387
-#: build/C/man7/socket.7:742 build/C/man2/socketcall.2:54
-#: build/C/man2/socketpair.2:122
+#: build/C/man2/accept.2:381 build/C/man2/bind.2:319
+#: build/C/man3/bindresvport.3:101 build/C/man2/connect.2:263
+#: build/C/man3/getifaddrs.3:290 build/C/man2/getsockname.2:112
+#: build/C/man2/getsockopt.2:202 build/C/man3/if_nameindex.3:146
+#: build/C/man3/if_nametoindex.3:89 build/C/man2/listen.2:169
+#: build/C/man2/recv.2:495 build/C/man2/recvmmsg.2:268
+#: build/C/man2/select.2:574 build/C/man2/select_tut.2:819
+#: build/C/man2/send.2:424 build/C/man2/sendmmsg.2:236
+#: build/C/man3/sockatmark.3:132 build/C/man2/socket.2:390
+#: build/C/man7/socket.7:847 build/C/man2/socketcall.2:53
+#: build/C/man2/socketpair.2:124
#, no-wrap
msgid "SEE ALSO"
msgstr "関連項目"
#. type: Plain text
-#: build/C/man2/accept.2:385
+#: build/C/man2/accept.2:388
msgid ""
"B<bind>(2), B<connect>(2), B<listen>(2), B<select>(2), B<socket>(2), "
"B<socket>(7)"
"B<bind>(2), B<connect>(2), B<listen>(2), B<select>(2), B<socket>(2), "
"B<socket>(7)"
+#. type: SH
+#: build/C/man2/accept.2:388 build/C/man2/bind.2:332
+#: build/C/man3/bindresvport.3:104 build/C/man2/connect.2:270
+#: build/C/man3/getifaddrs.3:296 build/C/man2/getsockname.2:119
+#: build/C/man2/getsockopt.2:210 build/C/man3/if_nameindex.3:153
+#: build/C/man3/if_nametoindex.3:93 build/C/man2/listen.2:175
+#: build/C/man2/recv.2:506 build/C/man2/recvmmsg.2:275
+#: build/C/man2/select.2:588 build/C/man2/select_tut.2:838
+#: build/C/man2/send.2:439 build/C/man2/sendmmsg.2:241
+#: build/C/man3/sockatmark.3:137 build/C/man2/socket.2:419
+#: build/C/man7/socket.7:859 build/C/man2/socketcall.2:71
+#: build/C/man2/socketpair.2:131
+#, no-wrap
+msgid "COLOPHON"
+msgstr "この文書について"
+
+#. type: Plain text
+#: build/C/man2/accept.2:395 build/C/man2/bind.2:339
+#: build/C/man3/bindresvport.3:111 build/C/man2/connect.2:277
+#: build/C/man3/getifaddrs.3:303 build/C/man2/getsockname.2:126
+#: build/C/man2/getsockopt.2:217 build/C/man3/if_nameindex.3:160
+#: build/C/man3/if_nametoindex.3:100 build/C/man2/listen.2:182
+#: build/C/man2/recv.2:513 build/C/man2/recvmmsg.2:282
+#: build/C/man2/select.2:595 build/C/man2/select_tut.2:845
+#: build/C/man2/send.2:446 build/C/man2/sendmmsg.2:248
+#: build/C/man3/sockatmark.3:144 build/C/man2/socket.2:426
+#: build/C/man7/socket.7:866 build/C/man2/socketcall.2:78
+#: build/C/man2/socketpair.2:138
+#, fuzzy
+#| msgid ""
+#| "This page is part of release 3.41 of the Linux I<man-pages> project. A "
+#| "description of the project, and information about reporting bugs, can be "
+#| "found at http://www.kernel.org/doc/man-pages/."
+msgid ""
+"This page is part of release 3.50 of the Linux I<man-pages> project. A "
+"description of the project, and information about reporting bugs, can be "
+"found at http://www.kernel.org/doc/man-pages/."
+msgstr ""
+"この man ページは Linux I<man-pages> プロジェクトのリリース 3.41 の一部\n"
+"である。プロジェクトの説明とバグ報告に関する情報は\n"
+"http://www.kernel.org/doc/man-pages/ に書かれている。"
+
#. type: TH
-#: build/C/man2/bind.2:66
+#: build/C/man2/bind.2:68
#, no-wrap
msgid "BIND"
msgstr "BIND"
#. type: TH
-#: build/C/man2/bind.2:66
+#: build/C/man2/bind.2:68
#, no-wrap
msgid "2007-12-28"
msgstr "2007-12-28"
#. type: Plain text
-#: build/C/man2/bind.2:69
+#: build/C/man2/bind.2:71
msgid "bind - bind a name to a socket"
msgstr "bind - ソケットに名前をつける"
#. type: Plain text
-#: build/C/man2/bind.2:76
+#: build/C/man2/bind.2:78
#, no-wrap
msgid ""
"B<int bind(int >I<sockfd>B<, const struct sockaddr *>I<addr>B<,>\n"
"B< socklen_t >I<addrlen>B<);>\n"
#. type: Plain text
-#: build/C/man2/bind.2:90
+#: build/C/man2/bind.2:92
msgid ""
"When a socket is created with B<socket>(2), it exists in a name space "
"(address family) but has no address assigned to it. B<bind>() assigns the "
-"address specified to by I<addr> to the socket referred to by the file "
+"address specified by I<addr> to the socket referred to by the file "
"descriptor I<sockfd>. I<addrlen> specifies the size, in bytes, of the "
"address structure pointed to by I<addr>. Traditionally, this operation is "
"called \\(lqassigning a name to a socket\\(rq."
"る。"
#. type: Plain text
-#: build/C/man2/bind.2:97
+#: build/C/man2/bind.2:99
msgid ""
"It is normally necessary to assign a local address using B<bind>() before a "
"B<SOCK_STREAM> socket may receive connections (see B<accept>(2))."
"る。"
#. type: Plain text
-#: build/C/man2/bind.2:128
+#: build/C/man2/bind.2:130
msgid ""
"The rules used in name binding vary between address families. Consult the "
"manual entries in Section 7 for detailed information. For B<AF_INET> see "
"B<AF_NETLINK> は B<netlink>(7) を参照。"
#. type: Plain text
-#: build/C/man2/bind.2:135
+#: build/C/man2/bind.2:137
msgid ""
"The actual structure passed for the I<addr> argument will depend on the "
"address family. The I<sockaddr> structure is defined as something like:"
"依存する。 I<sockaddr> 構造体は以下のような感じで定義されている:"
#. type: Plain text
-#: build/C/man2/bind.2:142
+#: build/C/man2/bind.2:144
#, no-wrap
msgid ""
"struct sockaddr {\n"
"}\n"
#. type: Plain text
-#: build/C/man2/bind.2:150
+#: build/C/man2/bind.2:152
msgid ""
"The only purpose of this structure is to cast the structure pointer passed "
"in I<addr> in order to avoid compiler warnings. See EXAMPLE below."
"の警告メッセージを抑えるためだけに存在する。 下記の「例」を参照。"
#. type: Plain text
-#: build/C/man2/bind.2:155 build/C/man2/getsockname.2:70
-#: build/C/man2/getsockopt.2:134 build/C/man2/listen.2:85
-#: build/C/man2/socketpair.2:72
+#: build/C/man2/bind.2:157 build/C/man2/getsockname.2:72
+#: build/C/man2/getsockopt.2:136 build/C/man2/listen.2:87
+#: build/C/man2/socketpair.2:74
msgid ""
"On success, zero is returned. On error, -1 is returned, and I<errno> is set "
"appropriately."
"設定される。"
#. type: TP
-#: build/C/man2/bind.2:156 build/C/man2/bind.2:180
-#: build/C/man3/bindresvport.3:74 build/C/man2/connect.2:133
-#: build/C/man2/send.2:283 build/C/man2/socket.2:318
+#: build/C/man2/bind.2:158 build/C/man2/bind.2:182
+#: build/C/man3/bindresvport.3:77 build/C/man2/connect.2:135
+#: build/C/man2/send.2:285 build/C/man2/socket.2:320
#, no-wrap
msgid "B<EACCES>"
msgstr "B<EACCES>"
#. e.g., privileged port in AF_INET domain
#. type: Plain text
-#: build/C/man2/bind.2:160
+#: build/C/man2/bind.2:162
msgid "The address is protected, and the user is not the superuser."
msgstr "そのアドレスは保護されていて、かつユーザがスーパーユーザではない。"
#. type: TP
-#: build/C/man2/bind.2:160 build/C/man3/bindresvport.3:79
-#: build/C/man2/connect.2:146 build/C/man2/listen.2:86
+#: build/C/man2/bind.2:162 build/C/man3/bindresvport.3:82
+#: build/C/man2/connect.2:148 build/C/man2/listen.2:88
#, no-wrap
msgid "B<EADDRINUSE>"
msgstr "B<EADDRINUSE>"
#. type: Plain text
-#: build/C/man2/bind.2:163
+#: build/C/man2/bind.2:165
msgid "The given address is already in use."
msgstr "指定されたアドレスが既に使用中である。"
#. type: Plain text
-#: build/C/man2/bind.2:167
+#: build/C/man2/bind.2:169
msgid "I<sockfd> is not a valid descriptor."
msgstr "I<sockfd> が不正なディスクリプタである。"
#. This may change in the future: see
#. .I linux/unix/sock.c for details.
#. type: Plain text
-#: build/C/man2/bind.2:172
+#: build/C/man2/bind.2:174
msgid "The socket is already bound to an address."
msgstr "ソケットがすでにアドレスに結びつけ (bind) られている。"
#. type: Plain text
-#: build/C/man2/bind.2:176
+#: build/C/man2/bind.2:178
msgid "I<sockfd> is a descriptor for a file, not a socket."
msgstr ""
"I<sockfd> がファイルに対するディスクリプタで、ソケットに対するものではない。"
#. type: Plain text
-#: build/C/man2/bind.2:180
+#: build/C/man2/bind.2:182
msgid "The following errors are specific to UNIX domain (B<AF_UNIX>) sockets:"
msgstr "以下のエラーは UNIXドメイン (B<AF_UNIX>) のソケット特有である:"
#. type: Plain text
-#: build/C/man2/bind.2:185
+#: build/C/man2/bind.2:187
msgid ""
"Search permission is denied on a component of the path prefix. (See also "
"B<path_resolution>(7).)"
"(7) も参照すること)。"
#. type: TP
-#: build/C/man2/bind.2:185
+#: build/C/man2/bind.2:187
#, no-wrap
msgid "B<EADDRNOTAVAIL>"
msgstr "B<EADDRNOTAVAIL>"
#. type: Plain text
-#: build/C/man2/bind.2:189
+#: build/C/man2/bind.2:191
msgid ""
"A nonexistent interface was requested or the requested address was not local."
msgstr ""
"かった。"
#. type: Plain text
-#: build/C/man2/bind.2:193
+#: build/C/man2/bind.2:195
msgid "I<addr> points outside the user's accessible address space."
msgstr "I<addr> がユーザのアクセス可能なアドレス空間の外を指している。"
#. type: Plain text
-#: build/C/man2/bind.2:200
+#: build/C/man2/bind.2:202
msgid ""
"The I<addrlen> is wrong, or the socket was not in the B<AF_UNIX> family."
msgstr "I<addrlen> が不正であるか、ソケットが B<AF_UNIX> ファミリーではない。"
#. type: TP
-#: build/C/man2/bind.2:200
+#: build/C/man2/bind.2:202
#, no-wrap
msgid "B<ELOOP>"
msgstr "B<ELOOP>"
#. type: Plain text
-#: build/C/man2/bind.2:204
+#: build/C/man2/bind.2:206
msgid "Too many symbolic links were encountered in resolving I<addr>."
msgstr "I<addr> を解決する際に遭遇したシンボリック・リンクが多過ぎる。"
#. type: TP
-#: build/C/man2/bind.2:204
+#: build/C/man2/bind.2:206
#, no-wrap
msgid "B<ENAMETOOLONG>"
msgstr "B<ENAMETOOLONG>"
#. type: Plain text
-#: build/C/man2/bind.2:208
+#: build/C/man2/bind.2:210
msgid "I<addr> is too long."
msgstr "I<addr> が長過ぎる。"
#. type: TP
-#: build/C/man2/bind.2:208
+#: build/C/man2/bind.2:210
#, no-wrap
msgid "B<ENOENT>"
msgstr "B<ENOENT>"
#. type: Plain text
-#: build/C/man2/bind.2:211
+#: build/C/man2/bind.2:213
msgid "The file does not exist."
msgstr "ファイルが存在しない。"
#. type: TP
-#: build/C/man2/bind.2:211 build/C/man2/recv.2:427 build/C/man2/select.2:318
-#: build/C/man2/send.2:338
+#: build/C/man2/bind.2:213 build/C/man2/recv.2:429 build/C/man2/select.2:322
+#: build/C/man2/send.2:343
#, no-wrap
msgid "B<ENOMEM>"
msgstr "B<ENOMEM>"
#. type: Plain text
-#: build/C/man2/bind.2:214
+#: build/C/man2/bind.2:216
msgid "Insufficient kernel memory was available."
msgstr "カーネルに、利用可能なメモリーが十分にない。"
#. type: TP
-#: build/C/man2/bind.2:214
+#: build/C/man2/bind.2:216
#, no-wrap
msgid "B<ENOTDIR>"
msgstr "B<ENOTDIR>"
#. type: Plain text
-#: build/C/man2/bind.2:217
+#: build/C/man2/bind.2:219
msgid "A component of the path prefix is not a directory."
msgstr "パス名の構成要素がディレクトリではない。"
#. type: TP
-#: build/C/man2/bind.2:217
+#: build/C/man2/bind.2:219
#, no-wrap
msgid "B<EROFS>"
msgstr "B<EROFS>"
#. type: Plain text
-#: build/C/man2/bind.2:220
+#: build/C/man2/bind.2:222
msgid "The socket inode would reside on a read-only file system."
msgstr "ソケット inode が読み込み専用のファイルシステム上にある。"
#. .B EISDIR
#. UNIX-domain error conditions.
#. type: Plain text
-#: build/C/man2/bind.2:232
+#: build/C/man2/bind.2:234
msgid "SVr4, 4.4BSD, POSIX.1-2001 (B<bind>() first appeared in 4.2BSD)."
msgstr "SVr4, 4.4BSD, POSIX.1-2001 (B<bind>() は 4.2BSD で最初に現われた)。"
#. type: Plain text
-#: build/C/man2/bind.2:249
+#: build/C/man2/bind.2:251
msgid ""
"The third argument of B<bind>() is in reality an I<int> (and this is what 4."
"x BSD and libc4 and libc5 have). Some POSIX confusion resulted in the "
"少し混乱がある。 詳しくは B<accept>(2) を参照のこと。"
#. type: SH
-#: build/C/man2/bind.2:249 build/C/man2/getsockopt.2:197
-#: build/C/man2/select.2:425 build/C/man2/send.2:409
-#: build/C/man3/sockatmark.3:91 build/C/man7/socket.7:729
+#: build/C/man2/bind.2:251 build/C/man2/getsockopt.2:199
+#: build/C/man2/select.2:474 build/C/man2/send.2:414
+#: build/C/man3/sockatmark.3:93 build/C/man7/socket.7:834
#, no-wrap
msgid "BUGS"
msgstr "バグ"
#. FIXME What *are* transparent proxy options?
#. type: Plain text
-#: build/C/man2/bind.2:252
+#: build/C/man2/bind.2:254
msgid "The transparent proxy options are not described."
msgstr "透過的プロキシ (transparent proxy) オプションについて記述していない。"
#. type: Plain text
-#: build/C/man2/bind.2:257
+#: build/C/man2/bind.2:259
msgid ""
"An example of the use of B<bind>() with Internet domain sockets can be "
"found in B<getaddrinfo>(3)."
#. accept.7 refers to this example.
#. unix.7 refers to this example.
#. type: Plain text
-#: build/C/man2/bind.2:264
+#: build/C/man2/bind.2:266
msgid ""
"The following example shows how to bind a stream socket in the UNIX "
"(B<AF_UNIX>) domain, and accept connections:"
"を示したものである。"
#. type: Plain text
-#: build/C/man2/bind.2:271
+#: build/C/man2/bind.2:273
#, no-wrap
msgid ""
"#include E<lt>sys/socket.hE<gt>\n"
"#include E<lt>string.hE<gt>\n"
#. type: Plain text
-#: build/C/man2/bind.2:274
+#: build/C/man2/bind.2:276
#, no-wrap
msgid ""
"#define MY_SOCK_PATH \"/somepath\"\n"
"#define LISTEN_BACKLOG 50\n"
#. type: Plain text
-#: build/C/man2/bind.2:277
+#: build/C/man2/bind.2:279
#, no-wrap
msgid ""
"#define handle_error(msg) \\e\n"
" do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
#. type: Plain text
-#: build/C/man2/bind.2:284
+#: build/C/man2/bind.2:286
#, no-wrap
msgid ""
"int\n"
" socklen_t peer_addr_size;\n"
#. type: Plain text
-#: build/C/man2/bind.2:288
+#: build/C/man2/bind.2:290
#, no-wrap
msgid ""
" sfd = socket(AF_UNIX, SOCK_STREAM, 0);\n"
" handle_error(\"socket\");\n"
#. type: Plain text
-#: build/C/man2/bind.2:294
+#: build/C/man2/bind.2:296
#, no-wrap
msgid ""
" memset(&my_addr, 0, sizeof(struct sockaddr_un));\n"
" sizeof(my_addr.sun_path) - 1);\n"
#. type: Plain text
-#: build/C/man2/bind.2:298
+#: build/C/man2/bind.2:300
#, no-wrap
msgid ""
" if (bind(sfd, (struct sockaddr *) &my_addr,\n"
" handle_error(\"bind\");\n"
#. type: Plain text
-#: build/C/man2/bind.2:301
+#: build/C/man2/bind.2:303
#, no-wrap
msgid ""
" if (listen(sfd, LISTEN_BACKLOG) == -1)\n"
" handle_error(\"listen\");\n"
#. type: Plain text
-#: build/C/man2/bind.2:304
+#: build/C/man2/bind.2:306
#, no-wrap
msgid ""
" /* Now we can accept incoming connections one\n"
" at a time using accept(2) */\n"
#. type: Plain text
-#: build/C/man2/bind.2:310
+#: build/C/man2/bind.2:312
#, no-wrap
msgid ""
" peer_addr_size = sizeof(struct sockaddr_un);\n"
" handle_error(\"accept\");\n"
#. type: Plain text
-#: build/C/man2/bind.2:312
+#: build/C/man2/bind.2:314
#, no-wrap
msgid " /* Code to deal with incoming connection(s)... */\n"
msgstr " /* Code to deal with incoming connection(s)... */\n"
#. type: Plain text
-#: build/C/man2/bind.2:316
+#: build/C/man2/bind.2:318
#, no-wrap
msgid ""
" /* When no longer required, the socket pathname, MY_SOCK_PATH\n"
"}\n"
#. type: Plain text
-#: build/C/man2/bind.2:329
+#: build/C/man2/bind.2:332
msgid ""
"B<accept>(2), B<connect>(2), B<getsockname>(2), B<listen>(2), B<socket>(2), "
"B<getaddrinfo>(3), B<getifaddrs>(3), B<ip>(7), B<ipv6>(7), B<path_resolution>"
"(7), B<socket>(7), B<unix>(7)"
#. type: TH
-#: build/C/man3/bindresvport.3:27
+#: build/C/man3/bindresvport.3:30
#, no-wrap
msgid "BINDRESVPORT"
msgstr "BINDRESVPORT"
#. type: TH
-#: build/C/man3/bindresvport.3:27 build/C/man2/connect.2:65
-#: build/C/man2/getsockname.2:38 build/C/man2/getsockopt.2:42
-#: build/C/man3/sockatmark.3:23
+#: build/C/man3/bindresvport.3:30 build/C/man2/connect.2:67
+#: build/C/man2/getsockname.2:40 build/C/man2/getsockopt.2:44
+#: build/C/man3/sockatmark.3:25
#, no-wrap
msgid "2008-12-03"
msgstr "2008-12-03"
#. type: Plain text
-#: build/C/man3/bindresvport.3:30
+#: build/C/man3/bindresvport.3:33
msgid "bindresvport - bind a socket to a privileged IP port"
msgstr "bindresvport - ソケットを特権 IP ポートにバインドする"
#. type: Plain text
-#: build/C/man3/bindresvport.3:34
+#: build/C/man3/bindresvport.3:37
#, no-wrap
msgid ""
"B<#include E<lt>sys/types.hE<gt>>\n"
"B<#include E<lt>netinet/in.hE<gt>>\n"
#. type: Plain text
-#: build/C/man3/bindresvport.3:36
+#: build/C/man3/bindresvport.3:39
#, no-wrap
msgid "B<int bindresvport(int >I<sockfd>B<, struct sockaddr_in *>I<sin>B<);>\n"
msgstr "B<int bindresvport(int >I<sockfd>B<, struct sockaddr_in *>I<sin>B<);>\n"
#. Glibc actually starts searching with a port # in the range 600 to 1023
#. type: Plain text
-#: build/C/man3/bindresvport.3:43
+#: build/C/man3/bindresvport.3:46
msgid ""
"B<bindresvport>() is used to bind a socket descriptor to a privileged "
"anonymous IP port, that is, a port number arbitrarily selected from the "
"番号が 512 から 1023 の範囲から任意に選択されるポートである。"
#. type: Plain text
-#: build/C/man3/bindresvport.3:53
+#: build/C/man3/bindresvport.3:56
msgid ""
"If the B<bind>(2) performed by B<bindresvport>() is successful, and I<sin> "
"is not NULL, then I<sin-E<gt>sin_port> returns the port number actually "
"される。"
#. type: Plain text
-#: build/C/man3/bindresvport.3:64
+#: build/C/man3/bindresvport.3:67
msgid ""
"I<sin> can be NULL, in which case I<sin-E<gt>sin_family> is implicitly taken "
"to be B<AF_INET>. However, in this case, B<bindresvport>() has no way to "
"ト番号は、後で B<getsockname>(2) を使って取得できる)。"
#. type: Plain text
-#: build/C/man3/bindresvport.3:69
+#: build/C/man3/bindresvport.3:72
msgid ""
"B<bindresvport>() returns 0 on success; otherwise -1 is returned and "
"I<errno> set to indicate the cause of the error."
"I<errno> にエラーの原因を示す値を設定する。"
#. type: Plain text
-#: build/C/man3/bindresvport.3:74
+#: build/C/man3/bindresvport.3:77
msgid ""
"B<bindresvport>() can fail for any of the same reasons as B<bind>(2). In "
"addition, the following errors may occur:"
"以下のエラーが発生することがある:"
#. type: Plain text
-#: build/C/man3/bindresvport.3:79
+#: build/C/man3/bindresvport.3:82
msgid ""
"The caller did not have superuser privilege (to be precise: the "
"B<CAP_NET_BIND_SERVICE> capability is required)."
"B<CAP_NET_BIND_SERVICE> ケーパビリティが必要である)。"
#. type: Plain text
-#: build/C/man3/bindresvport.3:82
+#: build/C/man3/bindresvport.3:85
msgid "All privileged ports are in use."
msgstr "全ての特権ポートが使用中である。"
#. type: TP
-#: build/C/man3/bindresvport.3:82
+#: build/C/man3/bindresvport.3:85
#, no-wrap
msgid "B<EAFNOSUPPORT> (B<EPFNOSUPPORT> in glibc 2.7 and earlier)"
msgstr "B<EAFNOSUPPORT> (glibc 2.7 以前では B<EPFNOSUPPORT>)"
#. type: Plain text
-#: build/C/man3/bindresvport.3:89
+#: build/C/man3/bindresvport.3:92
msgid "I<sin> is not NULL and I<sin-E<gt>sin_family> is not B<AF_INET>."
msgstr ""
"I<sin> が NULL 以外で、かつ I<sin-E<gt>sin_family> が B<AF_INET> でなかった。"
#. type: Plain text
-#: build/C/man3/bindresvport.3:92
+#: build/C/man3/bindresvport.3:95
msgid ""
"Not in POSIX.1-2001. Present on the BSDs, Solaris, and many other systems."
msgstr ""
"POSIX.1-2001 にはない。 BSD, Solaris およびその他の多くのシステムに存在する。"
#. type: Plain text
-#: build/C/man3/bindresvport.3:98
+#: build/C/man3/bindresvport.3:101
msgid ""
"Unlike some B<bindresvport>() implementations, the glibc implementation "
"ignores any value that the caller supplies in I<sin-E<gt>sin_port>."
"I<sin-E<gt>sin_port> で渡した値はどんな値であっても無視される。"
#. type: Plain text
-#: build/C/man3/bindresvport.3:100
+#: build/C/man3/bindresvport.3:104
msgid "B<bind>(2), B<getsockname>(2)"
msgstr "B<bind>(2), B<getsockname>(2)"
#. type: TH
-#: build/C/man2/connect.2:65
+#: build/C/man2/connect.2:67
#, no-wrap
msgid "CONNECT"
msgstr "CONNECT"
#. type: Plain text
-#: build/C/man2/connect.2:68
+#: build/C/man2/connect.2:70
msgid "connect - initiate a connection on a socket"
msgstr "connect - ソケットの接続を行う"
#. type: Plain text
-#: build/C/man2/connect.2:71 build/C/man2/getsockopt.2:48
-#: build/C/man2/listen.2:49
+#: build/C/man2/connect.2:73 build/C/man2/getsockopt.2:50
+#: build/C/man2/listen.2:51
#, no-wrap
msgid "B<#include E<lt>sys/types.hE<gt>> /* See NOTES */\n"
msgstr "B<#include E<lt>sys/types.hE<gt>> /* 「注意」参照 */\n"
#. type: Plain text
-#: build/C/man2/connect.2:73 build/C/man2/getsockname.2:44
-#: build/C/man2/getsockopt.2:50 build/C/man2/listen.2:51
-#: build/C/man2/recv.2:49
+#: build/C/man2/connect.2:75 build/C/man2/getsockname.2:46
+#: build/C/man2/getsockopt.2:52 build/C/man2/listen.2:53
+#: build/C/man2/recv.2:51
#, no-wrap
msgid "B<#include E<lt>sys/socket.hE<gt>>\n"
msgstr "B<#include E<lt>sys/socket.hE<gt>>\n"
#. type: Plain text
-#: build/C/man2/connect.2:76
+#: build/C/man2/connect.2:78
#, no-wrap
msgid ""
"B<int connect(int >I<sockfd>B<, const struct sockaddr *>I<addr>B<,>\n"
"B< socklen_t >I<addrlen>B<);>\n"
#. type: Plain text
-#: build/C/man2/connect.2:95
+#: build/C/man2/connect.2:97
msgid ""
"The B<connect>() system call connects the socket referred to by the file "
"descriptor I<sockfd> to the address specified by I<addr>. The I<addrlen> "
"こと。"
#. type: Plain text
-#: build/C/man2/connect.2:111
+#: build/C/man2/connect.2:113
msgid ""
"If the socket I<sockfd> is of type B<SOCK_DGRAM> then I<addr> is the address "
"to which datagrams are sent by default, and the only address from which "
"に対する接続の 作成を試みる。"
#. type: Plain text
-#: build/C/man2/connect.2:125
+#: build/C/man2/connect.2:127
msgid ""
"Generally, connection-based protocol sockets may successfully B<connect>() "
"only once; connectionless protocol sockets may use B<connect>() multiple "
"することができる (B<AF_UNSPEC> はカーネル 2.2 以降の Linux でサポート)。"
#. type: Plain text
-#: build/C/man2/connect.2:130
+#: build/C/man2/connect.2:132
msgid ""
"If the connection or binding succeeds, zero is returned. On error, -1 is "
"returned, and I<errno> is set appropriately."
"適切な値を設定する。"
#. type: Plain text
-#: build/C/man2/connect.2:133
+#: build/C/man2/connect.2:135
msgid ""
"The following are general socket errors only. There may be other domain-"
"specific error codes."
"する可能性がある。"
#. type: Plain text
-#: build/C/man2/connect.2:141
+#: build/C/man2/connect.2:143
msgid ""
"For UNIX domain sockets, which are identified by pathname: Write permission "
"is denied on the socket file, or search permission is denied for one of the "
"がなかった。 (B<path_resolution>(7) も参照のこと)"
#. type: TP
-#: build/C/man2/connect.2:141
+#: build/C/man2/connect.2:143
#, no-wrap
msgid "B<EACCES>, B<EPERM>"
msgstr "B<EACCES>, B<EPERM>"
#. type: Plain text
-#: build/C/man2/connect.2:146
+#: build/C/man2/connect.2:148
msgid ""
"The user tried to connect to a broadcast address without having the socket "
"broadcast flag enabled or the connection request failed because of a local "
"要求が失敗した。"
#. type: Plain text
-#: build/C/man2/connect.2:149
+#: build/C/man2/connect.2:151
msgid "Local address is already in use."
msgstr "ローカルアドレスが既に使用されている。"
#. type: TP
-#: build/C/man2/connect.2:149 build/C/man2/socket.2:322
-#: build/C/man2/socketpair.2:73
+#: build/C/man2/connect.2:151 build/C/man2/socket.2:324
+#: build/C/man2/socketpair.2:75
#, no-wrap
msgid "B<EAFNOSUPPORT>"
msgstr "B<EAFNOSUPPORT>"
#. type: Plain text
-#: build/C/man2/connect.2:154
+#: build/C/man2/connect.2:156
msgid ""
"The passed address didn't have the correct address family in its "
"I<sa_family> field."
"い。"
#. type: TP
-#: build/C/man2/connect.2:154
+#: build/C/man2/connect.2:156
#, no-wrap
msgid "B<EAGAIN>"
msgstr "B<EAGAIN>"
#. type: Plain text
-#: build/C/man2/connect.2:163
+#: build/C/man2/connect.2:165
msgid ""
"No more free local ports or insufficient entries in the routing cache. For "
"B<AF_INET> see the description of I</proc/sys/net/ipv4/ip_local_port_range> "
"(7) の I</proc/sys/net/ipv4/ip_local_port_range> の説明を参照のこと。"
#. type: TP
-#: build/C/man2/connect.2:163
+#: build/C/man2/connect.2:165
#, no-wrap
msgid "B<EALREADY>"
msgstr "B<EALREADY>"
#. type: Plain text
-#: build/C/man2/connect.2:167
+#: build/C/man2/connect.2:169
msgid ""
"The socket is nonblocking and a previous connection attempt has not yet been "
"completed."
"ソケットが非停止 (nonblocking) に設定されており、 前の接続が完了していない。"
#. type: Plain text
-#: build/C/man2/connect.2:170
+#: build/C/man2/connect.2:172
msgid "The file descriptor is not a valid index in the descriptor table."
msgstr ""
"ファイルディスクリプターがディスクリプターテーブルの 有効なインデックスではな"
"い。"
#. type: TP
-#: build/C/man2/connect.2:170 build/C/man2/recv.2:410
+#: build/C/man2/connect.2:172 build/C/man2/recv.2:412
#, no-wrap
msgid "B<ECONNREFUSED>"
msgstr "B<ECONNREFUSED>"
#. type: Plain text
-#: build/C/man2/connect.2:173
+#: build/C/man2/connect.2:175
msgid "No-one listening on the remote address."
msgstr "リモートアドレスで接続を待っているプログラムがない。"
#. type: Plain text
-#: build/C/man2/connect.2:176
+#: build/C/man2/connect.2:178
msgid "The socket structure address is outside the user's address space."
msgstr "ソケット構造体のアドレスがユーザーのアドレス空間外にある。"
#. type: TP
-#: build/C/man2/connect.2:176
+#: build/C/man2/connect.2:178
#, no-wrap
msgid "B<EINPROGRESS>"
msgstr "B<EINPROGRESS>"
#. type: Plain text
-#: build/C/man2/connect.2:201
+#: build/C/man2/connect.2:203
msgid ""
"The socket is nonblocking and the connection cannot be completed "
"immediately. It is possible to B<select>(2) or B<poll>(2) for completion "
#. For TCP, the connection will complete asynchronously.
#. See http://lkml.org/lkml/2005/7/12/254
#. type: Plain text
-#: build/C/man2/connect.2:207
+#: build/C/man2/connect.2:209
msgid ""
"The system call was interrupted by a signal that was caught; see B<signal>"
"(7)."
"捕捉されたシグナルによりシステムコールが中断された。 B<signal>(7) 参照。"
#. type: TP
-#: build/C/man2/connect.2:207 build/C/man2/send.2:318
+#: build/C/man2/connect.2:209 build/C/man2/send.2:323
#, no-wrap
msgid "B<EISCONN>"
msgstr "B<EISCONN>"
#. type: Plain text
-#: build/C/man2/connect.2:210
+#: build/C/man2/connect.2:212
msgid "The socket is already connected."
msgstr "ソケットは既に接続 (connect) されている。"
#. type: TP
-#: build/C/man2/connect.2:210
+#: build/C/man2/connect.2:212
#, no-wrap
msgid "B<ENETUNREACH>"
msgstr "B<ENETUNREACH>"
#. type: Plain text
-#: build/C/man2/connect.2:213
+#: build/C/man2/connect.2:215
msgid "Network is unreachable."
msgstr "到達できないネットワークである。"
#. type: Plain text
-#: build/C/man2/connect.2:216
+#: build/C/man2/connect.2:218
msgid "The file descriptor is not associated with a socket."
msgstr "ファイルディスクリプターがソケットと関連付けられていない。"
#. type: TP
-#: build/C/man2/connect.2:216
+#: build/C/man2/connect.2:218
#, no-wrap
msgid "B<ETIMEDOUT>"
msgstr "B<ETIMEDOUT>"
#. type: Plain text
-#: build/C/man2/connect.2:223
+#: build/C/man2/connect.2:225
msgid ""
"Timeout while attempting connection. The server may be too busy to accept "
"new connections. Note that for IP sockets the timeout may be very long when "
#. It also
#. documents many additional error conditions not described here.
#. type: Plain text
-#: build/C/man2/connect.2:239
+#: build/C/man2/connect.2:241
msgid ""
"SVr4, 4.4BSD, (the B<connect>() function first appeared in 4.2BSD), "
"POSIX.1-2001."
"SVr4, 4.4BSD, (B<connect>() 関数は 4.2BSD で最初に登場した), POSIX.1-2001."
#. type: Plain text
-#: build/C/man2/connect.2:256
+#: build/C/man2/connect.2:258
msgid ""
"The third argument of B<connect>() is in reality an I<int> (and this is "
"what 4.x BSD and libc4 and libc5 have). Some POSIX confusion resulted in "
"glibc でも I<socklen_t> を使っている。 B<accept>(2) も参照のこと。"
#. type: Plain text
-#: build/C/man2/connect.2:261
+#: build/C/man2/connect.2:263
msgid "An example of the use of B<connect>() is shown in B<getaddrinfo>(3)."
msgstr "B<connect>() の利用例が B<getaddrinfo>(3) に記載されている。"
#. type: Plain text
-#: build/C/man2/connect.2:267
+#: build/C/man2/connect.2:270
msgid ""
"B<accept>(2), B<bind>(2), B<getsockname>(2), B<listen>(2), B<socket>(2), "
"B<path_resolution>(7)"
"B<path_resolution>(7)"
#. type: TH
-#: build/C/man3/getifaddrs.3:33
+#: build/C/man3/getifaddrs.3:36
#, no-wrap
msgid "GETIFADDRS"
msgstr "GETIFADDRS"
#. type: TH
-#: build/C/man3/getifaddrs.3:33
-#, no-wrap
-msgid "2010-10-06"
-msgstr "2010-10-06"
+#: build/C/man3/getifaddrs.3:36
+#, fuzzy, no-wrap
+#| msgid "2011-10-01"
+msgid "2012-11-11"
+msgstr "2011-10-01"
#. type: TH
-#: build/C/man3/getifaddrs.3:33
+#: build/C/man3/getifaddrs.3:36 build/C/man3/if_nameindex.3:26
+#: build/C/man3/if_nametoindex.3:25
#, no-wrap
msgid "GNU"
msgstr "GNU"
#. type: Plain text
-#: build/C/man3/getifaddrs.3:36
+#: build/C/man3/getifaddrs.3:39
msgid "getifaddrs, freeifaddrs - get interface addresses"
msgstr ""
#. type: Plain text
-#: build/C/man3/getifaddrs.3:40
+#: build/C/man3/getifaddrs.3:43
#, no-wrap
msgid ""
"B<#include E<lt>sys/types.hE<gt>>\n"
"B<#include E<lt>ifaddrs.hE<gt>>\n"
#. type: Plain text
-#: build/C/man3/getifaddrs.3:42
+#: build/C/man3/getifaddrs.3:45
#, no-wrap
msgid "B<int getifaddrs(struct ifaddrs **>I<ifap>B<);>\n"
msgstr "B<int getifaddrs(struct ifaddrs **>I<ifap>B<);>\n"
#. type: Plain text
-#: build/C/man3/getifaddrs.3:44
+#: build/C/man3/getifaddrs.3:47
#, no-wrap
msgid "B<void freeifaddrs(struct ifaddrs *>I<ifa>B<);>\n"
msgstr "B<void freeifaddrs(struct ifaddrs *>I<ifa>B<);>\n"
#. type: Plain text
-#: build/C/man3/getifaddrs.3:55
+#: build/C/man3/getifaddrs.3:58
msgid ""
"The B<getifaddrs>() function creates a linked list of structures describing "
"the network interfaces of the local system, and stores the address of the "
msgstr ""
#. type: Plain text
-#: build/C/man3/getifaddrs.3:74
+#: build/C/man3/getifaddrs.3:77
#, no-wrap
msgid ""
"struct ifaddrs {\n"
"};\n"
#. type: Plain text
-#: build/C/man3/getifaddrs.3:81
+#: build/C/man3/getifaddrs.3:84
msgid ""
"The I<ifa_next> field contains a pointer to the next structure on the list, "
"or NULL if this is the last item of the list."
#. .B IF NAMESIZE
#. indicates the maximum length of this field.
#. type: Plain text
-#: build/C/man3/getifaddrs.3:88
+#: build/C/man3/getifaddrs.3:91
msgid "The I<ifa_name> points to the null-terminated interface name."
msgstr ""
#. type: Plain text
-#: build/C/man3/getifaddrs.3:97
+#: build/C/man3/getifaddrs.3:100
msgid ""
"The I<ifa_flags> field contains the interface flags, as returned by the "
"B<SIOCGIFFLAGS> B<ioctl>(2) operation (see B<netdevice>(7) for a list of "
msgstr ""
#. type: Plain text
-#: build/C/man3/getifaddrs.3:105
+#: build/C/man3/getifaddrs.3:109
msgid ""
"The I<ifa_addr> field points to a structure containing the interface "
"address. (The I<sa_family> subfield should be consulted to determine the "
-"format of the address structure.)"
+"format of the address structure.) This field may contain a NULL pointer."
msgstr ""
#. type: Plain text
-#: build/C/man3/getifaddrs.3:111
+#: build/C/man3/getifaddrs.3:116
msgid ""
"The I<ifa_netmask> field points to a structure containing the netmask "
-"associated with I<ifa_addr>, if applicable for the address family."
+"associated with I<ifa_addr>, if applicable for the address family. This "
+"field may contain a NULL pointer."
msgstr ""
#. type: Plain text
-#: build/C/man3/getifaddrs.3:126
+#: build/C/man3/getifaddrs.3:131
msgid ""
"Depending on whether the bit B<IFF_BROADCAST> or B<IFF_POINTOPOINT> is set "
"in I<ifa_flags> (only one can be set at a time), either I<ifa_broadaddr> "
msgstr ""
#. type: Plain text
-#: build/C/man3/getifaddrs.3:131
+#: build/C/man3/getifaddrs.3:136
msgid ""
"The I<ifa_data> field points to a buffer containing address-family-specific "
"data; this field may be NULL if there is no such data for this interface."
msgstr ""
#. type: Plain text
-#: build/C/man3/getifaddrs.3:137
+#: build/C/man3/getifaddrs.3:142
msgid ""
"The data returned by B<getifaddrs>() is dynamically allocated and should be "
"freed using B<freeifaddrs>() when no longer needed."
msgstr ""
#. type: Plain text
-#: build/C/man3/getifaddrs.3:144
+#: build/C/man3/getifaddrs.3:149
msgid ""
"On success, B<getifaddrs>() returns zero; on error, -1 is returned, and "
"I<errno> is set appropriately."
msgstr ""
#. type: Plain text
-#: build/C/man3/getifaddrs.3:157
+#: build/C/man3/getifaddrs.3:162
msgid ""
"B<getifaddrs>() may fail and set I<errno> for any of the errors specified "
"for B<socket>(2), B<bind>(2), B<getsockname>(2), B<recvmsg>(2), B<sendto>"
msgstr ""
#. type: Plain text
-#: build/C/man3/getifaddrs.3:165
+#: build/C/man3/getifaddrs.3:170
msgid ""
"The B<getifaddrs>() function first appeared in glibc 2.3, but before glibc "
"2.3.3, the implementation only supported IPv4 addresses; IPv6 support was "
#. i.e., commonly it still says one of them will be NULL, even if
#. the ifa_ifu union is already present
#. type: Plain text
-#: build/C/man3/getifaddrs.3:185
+#: build/C/man3/getifaddrs.3:190
msgid ""
"Not in POSIX.1-2001. This function first appeared in BSDi and is present on "
"the BSD systems, but with slightly different semantics documented"
msgstr ""
#. type: Plain text
-#: build/C/man3/getifaddrs.3:198
+#: build/C/man3/getifaddrs.3:207
msgid ""
"The addresses returned on Linux will usually be the IPv4 and IPv6 addresses "
"assigned to the interface, but also one B<AF_PACKET> address per interface "
"containing lower-level details about the interface and its physical layer. "
"In this case, the I<ifa_data> field may contain a pointer to a I<struct "
-"net_device_stats>, defined in I<E<lt>linux/netdevice.hE<gt>>, which contains "
-"various interface attributes and statistics."
+"rtnl_link_stats>, defined in I<E<lt>linux/if_link.hE<gt>> (in Linux 2.4 and "
+"earlier, I<struct net_device_stats>, defined in I<E<lt>linux/netdevice."
+"hE<gt>>), which contains various interface attributes and statistics."
msgstr ""
#. type: Plain text
-#: build/C/man3/getifaddrs.3:205
+#: build/C/man3/getifaddrs.3:214
msgid ""
"The program below demonstrates the use of B<getifaddrs>(), B<freeifaddrs>(), "
"and B<getnameinfo>(3). Here is what we see when running this program on one "
msgstr ""
#. type: Plain text
-#: build/C/man3/getifaddrs.3:219
+#: build/C/man3/getifaddrs.3:228
#, no-wrap
msgid ""
"$ B<./a.out>\n"
" address: E<lt>fe80::2d0:59ff:feda:eb51%eth0E<gt>\n"
#. type: SS
-#: build/C/man3/getifaddrs.3:221
+#: build/C/man3/getifaddrs.3:230 build/C/man3/if_nameindex.3:120
+#: build/C/man2/recvmmsg.2:206
#, no-wrap
msgid "Program source"
msgstr ""
#. type: Plain text
-#: build/C/man3/getifaddrs.3:231
+#: build/C/man3/getifaddrs.3:240
#, no-wrap
msgid ""
"#include E<lt>arpa/inet.hE<gt>\n"
"#include E<lt>unistd.hE<gt>\n"
#. type: Plain text
-#: build/C/man3/getifaddrs.3:238
+#: build/C/man3/getifaddrs.3:247
#, no-wrap
msgid ""
"int\n"
" char host[NI_MAXHOST];\n"
#. type: Plain text
-#: build/C/man3/getifaddrs.3:243
+#: build/C/man3/getifaddrs.3:252
#, no-wrap
msgid ""
" if (getifaddrs(&ifaddr) == -1) {\n"
" }\n"
#. type: Plain text
-#: build/C/man3/getifaddrs.3:246
+#: build/C/man3/getifaddrs.3:255
#, no-wrap
msgid ""
" /* Walk through linked list, maintaining head pointer so we\n"
" can free list later */\n"
#. type: Plain text
-#: build/C/man3/getifaddrs.3:250
+#: build/C/man3/getifaddrs.3:259
#, no-wrap
msgid ""
" for (ifa = ifaddr; ifa != NULL; ifa = ifa-E<gt>ifa_next) {\n"
" continue;\n"
#. type: Plain text
-#: build/C/man3/getifaddrs.3:252
+#: build/C/man3/getifaddrs.3:261
#, no-wrap
msgid " family = ifa-E<gt>ifa_addr-E<gt>sa_family;\n"
msgstr " family = ifa-E<gt>ifa_addr-E<gt>sa_family;\n"
#. type: Plain text
-#: build/C/man3/getifaddrs.3:255
+#: build/C/man3/getifaddrs.3:264
#, no-wrap
msgid ""
" /* Display interface name and family (including symbolic\n"
" form of the latter for the common families) */\n"
#. type: Plain text
-#: build/C/man3/getifaddrs.3:261
+#: build/C/man3/getifaddrs.3:270
#, no-wrap
msgid ""
" printf(\"%s\\t address family: %d%s\\en\",\n"
" (family == AF_INET6) ? \" (AF_INET6)\" : \"\");\n"
#. type: Plain text
-#: build/C/man3/getifaddrs.3:263
+#: build/C/man3/getifaddrs.3:272
#, no-wrap
msgid " /* For an AF_INET* interface address, display the address */\n"
msgstr " /* For an AF_INET* interface address, display the address */\n"
#. type: Plain text
-#: build/C/man3/getifaddrs.3:276
+#: build/C/man3/getifaddrs.3:285
#, no-wrap
msgid ""
" if (family == AF_INET || family == AF_INET6) {\n"
" }\n"
#. type: Plain text
-#: build/C/man3/getifaddrs.3:280
+#: build/C/man3/getifaddrs.3:289
#, no-wrap
msgid ""
" freeifaddrs(ifaddr);\n"
"}\n"
#. type: Plain text
-#: build/C/man3/getifaddrs.3:286
+#: build/C/man3/getifaddrs.3:296
msgid ""
"B<bind>(2), B<getsockname>(2), B<socket>(2), B<packet>(7), B<ifconfig>(8)"
msgstr ""
"B<bind>(2), B<getsockname>(2), B<socket>(2), B<packet>(7), B<ifconfig>(8)"
#. type: TH
-#: build/C/man2/getsockname.2:38
+#: build/C/man2/getsockname.2:40
#, no-wrap
msgid "GETSOCKNAME"
msgstr "GETSOCKNAME"
#. type: Plain text
-#: build/C/man2/getsockname.2:41
+#: build/C/man2/getsockname.2:43
msgid "getsockname - get socket name"
msgstr "getsockname - ソケットの名前を取得する"
#. type: Plain text
-#: build/C/man2/getsockname.2:47
+#: build/C/man2/getsockname.2:49
#, no-wrap
msgid "B<int getsockname(int >I<sockfd>B<, struct sockaddr *>I<addr>B<, socklen_t *>I<addrlen>B<);>\n"
msgstr "B<int getsockname(int >I<sockfd>B<, struct sockaddr *>I<addr>B<, socklen_t *>I<addrlen>B<);>\n"
#. type: Plain text
-#: build/C/man2/getsockname.2:60
+#: build/C/man2/getsockname.2:62
msgid ""
"B<getsockname>() returns the current address to which the socket I<sockfd> "
"is bound, in the buffer pointed to by I<addr>. The I<addrlen> argument "
"納される。"
#. type: Plain text
-#: build/C/man2/getsockname.2:76 build/C/man2/getsockopt.2:140
-#: build/C/man2/listen.2:94
+#: build/C/man2/getsockname.2:78 build/C/man2/getsockopt.2:142
+#: build/C/man2/listen.2:96
msgid "The argument I<sockfd> is not a valid descriptor."
msgstr "引き数 I<sockfd> は有効なディスクリプターでない。"
#. type: Plain text
-#: build/C/man2/getsockname.2:82
+#: build/C/man2/getsockname.2:84
msgid ""
"The I<addr> argument points to memory not in a valid part of the process "
"address space."
"い。"
#. type: Plain text
-#: build/C/man2/getsockname.2:86
+#: build/C/man2/getsockname.2:88
msgid "I<addrlen> is invalid (e.g., is negative)."
msgstr "I<addrlen> が不正である (例えば、負で場合など)。"
#. type: TP
-#: build/C/man2/getsockname.2:86 build/C/man2/send.2:330
+#: build/C/man2/getsockname.2:88 build/C/man3/if_nameindex.3:83
+#: build/C/man2/send.2:335
#, no-wrap
msgid "B<ENOBUFS>"
msgstr "B<ENOBUFS>"
#. type: Plain text
-#: build/C/man2/getsockname.2:90
+#: build/C/man2/getsockname.2:92
msgid ""
"Insufficient resources were available in the system to perform the operation."
msgstr "処理をするだけの十分なリソースがシステムに無い。"
#. type: Plain text
-#: build/C/man2/getsockname.2:95 build/C/man2/getsockopt.2:169
+#: build/C/man2/getsockname.2:97 build/C/man2/getsockopt.2:171
msgid "The argument I<sockfd> is a file, not a socket."
msgstr "引き数 I<sockfd> がソケットではなくファイルである。"
#. SVr4 documents additional ENOMEM
#. and ENOSR error codes.
#. type: Plain text
-#: build/C/man2/getsockname.2:101
+#: build/C/man2/getsockname.2:103
msgid ""
"SVr4, 4.4BSD (the B<getsockname>() function call appeared in 4.2BSD), "
"POSIX.1-2001."
"SVr4, 4.4BSD (B<getsockname>() 関数は 4.2BSD で追加された), POSIX.1-2001."
#. type: Plain text
-#: build/C/man2/getsockname.2:110
+#: build/C/man2/getsockname.2:112
msgid ""
"The third argument of B<getsockname>() is in reality an I<int *> (and this "
"is what 4.x BSD and libc4 and libc5 have). Some POSIX confusion resulted in "
"POSIX には少し混乱がある。 詳しくは B<accept>(2) を参照のこと。"
#. type: Plain text
-#: build/C/man2/getsockname.2:116
+#: build/C/man2/getsockname.2:119
msgid ""
"B<bind>(2), B<socket>(2), B<getifaddrs>(3), B<ip>(7), B<socket>(7), B<unix>"
"(7)"
"(7)"
#. type: TH
-#: build/C/man2/getsockopt.2:42
+#: build/C/man2/getsockopt.2:44
#, no-wrap
msgid "GETSOCKOPT"
msgstr "GETSOCKOPT"
#. type: Plain text
-#: build/C/man2/getsockopt.2:45
+#: build/C/man2/getsockopt.2:47
msgid "getsockopt, setsockopt - get and set options on sockets"
msgstr "getsockopt, setsockopt - ソケットのオプションの設定と取得を行なう"
#. type: Plain text
-#: build/C/man2/getsockopt.2:55
+#: build/C/man2/getsockopt.2:57
#, no-wrap
msgid ""
"B<int getsockopt(int >I<sockfd>B<, int >I<level>B<, int >I<optname>B<,>\n"
"B< const void *>I<optval>B<, socklen_t >I<optlen>B<);>\n"
#. type: Plain text
-#: build/C/man2/getsockopt.2:65
+#: build/C/man2/getsockopt.2:67
msgid ""
"B<getsockopt>() and B<setsockopt>() manipulate options for the socket "
"referred to by the file descriptor I<sockfd>. Options may exist at multiple "
"定される。"
#. type: Plain text
-#: build/C/man2/getsockopt.2:84
+#: build/C/man2/getsockopt.2:86
msgid ""
"When manipulating socket options, the level at which the option resides and "
"the name of the option must be specified. To manipulate options at the "
"B<getprotoent>(3) を参照すること。"
#. type: Plain text
-#: build/C/man2/getsockopt.2:106
+#: build/C/man2/getsockopt.2:108
msgid ""
"The arguments I<optval> and I<optlen> are used to access option values for "
"B<setsockopt>(). For B<getsockopt>() they identify a buffer in which the "
"I<optval> は NULL でも良い。"
#. type: Plain text
-#: build/C/man2/getsockopt.2:116
+#: build/C/man2/getsockopt.2:118
msgid ""
"I<Optname> and any specified options are passed uninterpreted to the "
"appropriate protocol module for interpretation. The include file I<E<lt>sys/"
"ること。"
#. type: Plain text
-#: build/C/man2/getsockopt.2:125
+#: build/C/man2/getsockopt.2:127
msgid ""
"Most socket-level options utilize an I<int> argument for I<optval>. For "
"B<setsockopt>(), the argument should be nonzero to enable a boolean option, "
"を指定し、 無効(disable)にするにはゼロを指定する。"
#. type: Plain text
-#: build/C/man2/getsockopt.2:129
+#: build/C/man2/getsockopt.2:131
msgid ""
"For a description of the available socket options see B<socket>(7) and the "
"appropriate protocol man pages."
"ルの man ページを参照のこと。"
#. type: Plain text
-#: build/C/man2/getsockopt.2:150
+#: build/C/man2/getsockopt.2:152
msgid ""
"The address pointed to by I<optval> is not in a valid part of the process "
"address space. For B<getsockopt>(), this error may also be returned if "
"い場合にもこのエラーが返される。"
#. type: Plain text
-#: build/C/man2/getsockopt.2:161
+#: build/C/man2/getsockopt.2:163
msgid ""
"I<optlen> invalid in B<setsockopt>(). In some cases this error can also "
"occur for an invalid value in I<optval> (e.g., for the B<IP_ADD_MEMBERSHIP> "
"B<IP_ADD_MEMBERSHIP> オプションなど)。"
#. type: TP
-#: build/C/man2/getsockopt.2:161
+#: build/C/man2/getsockopt.2:163
#, no-wrap
msgid "B<ENOPROTOOPT>"
msgstr "B<ENOPROTOOPT>"
#. type: Plain text
-#: build/C/man2/getsockopt.2:164
+#: build/C/man2/getsockopt.2:166
msgid "The option is unknown at the level indicated."
msgstr "指定された層(level)にはこのオプションは存在しない。"
#. .BR SO_SNDLOWAT ", " SO_RCVLOWAT ", " SO_SNDTIMEO ", " SO_RCVTIMEO
#. options
#. type: Plain text
-#: build/C/man2/getsockopt.2:176
+#: build/C/man2/getsockopt.2:178
msgid ""
"SVr4, 4.4BSD (these system calls first appeared in 4.2BSD), POSIX.1-2001."
msgstr ""
"POSIX.1-2001."
#. type: Plain text
-#: build/C/man2/getsockopt.2:197
+#: build/C/man2/getsockopt.2:199
msgid ""
"The I<optlen> argument of B<getsockopt>() and B<setsockopt>() is in "
"reality an I<int [*]> (and this is what 4.x BSD and libc4 and libc5 have). "
"る。 B<accept>(2) も参照のこと。"
#. type: Plain text
-#: build/C/man2/getsockopt.2:200
+#: build/C/man2/getsockopt.2:202
msgid ""
"Several of the socket options should be handled at lower levels of the "
"system."
"ソケットのオプションのいくつかはシステムのより低い層で 処理されるべきである。"
#. type: Plain text
-#: build/C/man2/getsockopt.2:207
+#: build/C/man2/getsockopt.2:210
msgid ""
"B<ioctl>(2), B<socket>(2), B<getprotoent>(3), B<protocols>(5), B<socket>(7), "
"B<tcp>(7), B<unix>(7)"
"B<tcp>(7), B<unix>(7)"
#. type: TH
-#: build/C/man2/listen.2:43
+#: build/C/man3/if_nameindex.3:26
+#, no-wrap
+msgid "IF_NAMEINDEX"
+msgstr ""
+
+#. type: TH
+#: build/C/man3/if_nameindex.3:26
+#, fuzzy, no-wrap
+#| msgid "2008-11-20"
+msgid "2012-11-21"
+msgstr "2008-11-20"
+
+#. type: Plain text
+#: build/C/man3/if_nameindex.3:29
+msgid ""
+"if_nameindex, if_freenameindex - get network interface names and indexes"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/if_nameindex.3:32 build/C/man3/if_nametoindex.3:32
+#, fuzzy, no-wrap
+#| msgid "B<#include E<lt>unistd.hE<gt>>\n"
+msgid "B<#include E<lt>net/if.hE<gt>>\n"
+msgstr "B<#include E<lt>unistd.hE<gt>>\n"
+
+#. type: Plain text
+#: build/C/man3/if_nameindex.3:35
+#, no-wrap
+msgid ""
+"B<struct if_nameindex *if_nameindex(void);>\n"
+"B<void if_freenameindex(struct if_nameindex *>I<ptr>B<);>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/if_nameindex.3:46
+msgid ""
+"The B<if_nameindex>() function returns an array of I<if_nameindex> "
+"structures, each containing information about one of the network interfaces "
+"on the local system. The I<if_nameindex> structure contains at least the "
+"following entries:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/if_nameindex.3:51
+#, no-wrap
+msgid ""
+" unsigned int if_index; /* Index of interface (1, 2, ...) */\n"
+" char *if_name; /* Null-terminated name (\"eth0\", etc.) */\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/if_nameindex.3:65
+msgid ""
+"The I<if_index> field contains the interface index. The I<ifa_name> field "
+"points to the null-terminated interface name. The end of the array is "
+"indicated by entry with I<if_index> set to zero and I<ifa_name> set to NULL."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/if_nameindex.3:71
+msgid ""
+"The data structure returned by B<if_nameindex>() is dynamically allocated "
+"and should be freed using B<if_freenameindex>() when no longer needed."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/if_nameindex.3:78
+#, fuzzy
+#| msgid ""
+#| "On success, zero is returned. On error, -1 is returned, and I<errno> is "
+#| "set appropriately."
+msgid ""
+"On success, B<if_nameindex>() returns pointer to the array; on error, a "
+"NULL pointer is returned, and I<errno> is set appropriately."
+msgstr ""
+"成功した場合にはゼロが返される。エラー時には -1 が返され、 I<errno> が適切に"
+"設定される。"
+
+#. type: Plain text
+#: build/C/man3/if_nameindex.3:83
+msgid "B<if_nameindex>() may fail and set I<errno> if:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/if_nameindex.3:86
+#, fuzzy
+#| msgid "Insufficient kernel memory was available."
+msgid "Insufficient resources available."
+msgstr "カーネルに、利用可能なメモリーが十分にない。"
+
+#. type: Plain text
+#: build/C/man3/if_nameindex.3:97
+msgid ""
+"B<if_nameindex>() may also fail for any of the errors specified for "
+"B<socket>(2), B<bind>(2), B<ioctl>(2), B<getsockname>(2), B<recvmsg>(2), "
+"B<sendto>(2), or B<malloc>(3)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/if_nameindex.3:104
+msgid ""
+"The B<if_nameindex>() function first appeared in glibc 2.1, but before "
+"glibc 2.3.4, the implementation only supported interfaces with IPv4 "
+"addresses. Support of interfaces that don't have IPv4 addresses is only "
+"available on kernels that support netlink."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/if_nameindex.3:106 build/C/man3/if_nametoindex.3:87
+#, fuzzy
+#| msgid "4.4BSD, POSIX.1-2001."
+msgid "RFC\\ 3493, POSIX.1-2001."
+msgstr "4.4BSD, POSIX.1-2001."
+
+#. type: Plain text
+#: build/C/man3/if_nameindex.3:108 build/C/man3/if_nametoindex.3:89
+#, fuzzy
+#| msgid ""
+#| "4.4BSD (these function calls first appeared in 4.2BSD), POSIX.1-2001."
+msgid "This function first appeared in BSDi."
+msgstr "4.4BSD (これらの関数は 4.2BSD で現われた), POSIX.1-2001。"
+
+#. type: Plain text
+#: build/C/man3/if_nameindex.3:112
+msgid ""
+"The program below demonstrates the use of the functions described on this "
+"page. An example of the output this program might produce is the following:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/if_nameindex.3:118
+#, no-wrap
+msgid ""
+"$ B<./a.out>I<\n"
+"1: lo\n"
+"2: wlan0\n"
+"3: em1>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/if_nameindex.3:126
+#, fuzzy, no-wrap
+#| msgid ""
+#| "#include E<lt>stdio.hE<gt>\n"
+#| "#include E<lt>stdlib.hE<gt>\n"
+#| "#include E<lt>sys/time.hE<gt>\n"
+#| "#include E<lt>sys/types.hE<gt>\n"
+#| "#include E<lt>unistd.hE<gt>\n"
+msgid ""
+"#include E<lt>net/if.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+msgstr ""
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>sys/time.hE<gt>\n"
+"#include E<lt>sys/types.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+
+#. type: Plain text
+#: build/C/man3/if_nameindex.3:131
+#, fuzzy, no-wrap
+#| msgid ""
+#| "int\n"
+#| "main(int argc, char *argv[])\n"
+#| "{\n"
+#| " struct ifaddrs *ifaddr, *ifa;\n"
+#| " int family, s;\n"
+#| " char host[NI_MAXHOST];\n"
+msgid ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" struct if_nameindex *if_ni, *i;\n"
+msgstr ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" struct ifaddrs *ifaddr, *ifa;\n"
+" int family, s;\n"
+" char host[NI_MAXHOST];\n"
+
+#. type: Plain text
+#: build/C/man3/if_nameindex.3:137
+#, fuzzy, no-wrap
+#| msgid ""
+#| " if (getifaddrs(&ifaddr) == -1) {\n"
+#| " perror(\"getifaddrs\");\n"
+#| " exit(EXIT_FAILURE);\n"
+#| " }\n"
+msgid ""
+" if_ni = if_nameindex();\n"
+" if (if_ni == NULL) {\n"
+" perror(\"if_nameindex\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+" if (getifaddrs(&ifaddr) == -1) {\n"
+" perror(\"getifaddrs\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+
+#. type: Plain text
+#: build/C/man3/if_nameindex.3:140
+#, no-wrap
+msgid ""
+" for (i = if_ni; ! (i-E<gt>if_index == 0 && i-E<gt>if_name == NULL); i++)\n"
+" printf(\"%u: %s\\en\", i-E<gt>if_index, i-E<gt>if_name);\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/if_nameindex.3:142
+#, no-wrap
+msgid " if_freenameindex(if_ni);\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/if_nameindex.3:145 build/C/man2/select.2:573
+#, no-wrap
+msgid ""
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+msgstr ""
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+
+#. type: Plain text
+#: build/C/man3/if_nameindex.3:153
+#, fuzzy
+#| msgid ""
+#| "B<bind>(2), B<socket>(2), B<getifaddrs>(3), B<ip>(7), B<socket>(7), "
+#| "B<unix>(7)"
+msgid ""
+"B<getsockopt>(2), B<setsockopt>(2), B<getifaddrs>(3), B<if_indextoname>(3), "
+"B<if_nametoindex>(3), B<ifconfig>(8)"
+msgstr ""
+"B<bind>(2), B<socket>(2), B<getifaddrs>(3), B<ip>(7), B<socket>(7), B<unix>"
+"(7)"
+
+#. type: TH
+#: build/C/man3/if_nametoindex.3:25
+#, no-wrap
+msgid "IF_NAMETOINDEX"
+msgstr ""
+
+#. type: TH
+#: build/C/man3/if_nametoindex.3:25
+#, fuzzy, no-wrap
+#| msgid "2012-02-27"
+msgid "2012-12-14"
+msgstr "2012-02-27"
+
+#. type: Plain text
+#: build/C/man3/if_nametoindex.3:29
+msgid ""
+"if_nametoindex, if_indextoname - mappings between network interface names "
+"and indexes"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/if_nametoindex.3:34
+#, no-wrap
+msgid "B<unsigned int if_nametoindex(const char *>I<ifname>B<);>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/if_nametoindex.3:36
+#, no-wrap
+msgid "B<char *if_indextoname(unsigned int ifindex, char *>I<ifname>B<);>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/if_nametoindex.3:43
+msgid ""
+"The B<if_nametoindex>() function returns the index of the network interface "
+"corresponding to the name I<ifname>."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/if_nametoindex.3:54
+msgid ""
+"The B<if_indextoname>() function returns the name of the network interface "
+"corresponding to the interface index I<ifindex>. The name is placed in the "
+"buffer pointed to by I<ifname>. The buffer must allow for the storage of at "
+"least B<IF_NAMESIZE> bytes."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/if_nametoindex.3:61
+#, fuzzy
+#| msgid ""
+#| "On success, these calls return the number of characters sent. On error, "
+#| "-1 is returned, and I<errno> is set appropriately."
+msgid ""
+"On success, B<if_nametoindex>() returns the index number of the network "
+"interface; on error, 0 is returned and I<errno> is set appropriately."
+msgstr ""
+"成功した場合、これらのシステムコールは送信されたバイト数を返す。 エラーの場"
+"合、 -1 を返し、 I<errno> を適切に設定にする。"
+
+#. type: Plain text
+#: build/C/man3/if_nametoindex.3:69
+#, fuzzy
+#| msgid ""
+#| "On success, zero is returned. On error, -1 is returned, and I<errno> is "
+#| "set appropriately."
+msgid ""
+"On success, B<if_indextoname>() returns I<ifname>; on error, NULL is "
+"returned and I<errno> is set appropriately."
+msgstr ""
+"成功した場合にはゼロが返される。エラー時には -1 が返され、 I<errno> が適切に"
+"設定される。"
+
+#. type: Plain text
+#: build/C/man3/if_nametoindex.3:74
+msgid "B<if_indextoname>() may fail and set I<errno> if:"
+msgstr ""
+
+#. type: TP
+#: build/C/man3/if_nametoindex.3:74
+#, fuzzy, no-wrap
+#| msgid "B<ENFILE>"
+msgid "B<ENXIO>"
+msgstr "B<ENFILE>"
+
+#. type: Plain text
+#: build/C/man3/if_nametoindex.3:77
+msgid "No interface found for the index."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/if_nametoindex.3:85
+msgid ""
+"B<if_nametoindex>() and B<if_indextoname>() may also fail for any of the "
+"errors specified for B<socket>(2) or B<ioctl>(2)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/if_nametoindex.3:93
+msgid "B<getifaddrs>(3), B<if_nameindex>(3), B<ifconfig>(8)"
+msgstr ""
+
+#. type: TH
+#: build/C/man2/listen.2:45
#, no-wrap
msgid "LISTEN"
msgstr "LISTEN"
#. type: TH
-#: build/C/man2/listen.2:43
+#: build/C/man2/listen.2:45
#, no-wrap
msgid "2008-11-20"
msgstr "2008-11-20"
#. type: Plain text
-#: build/C/man2/listen.2:46
+#: build/C/man2/listen.2:48
msgid "listen - listen for connections on a socket"
msgstr "listen - ソケット(socket)上の接続を待つ"
#. type: Plain text
-#: build/C/man2/listen.2:53
+#: build/C/man2/listen.2:55
#, no-wrap
msgid "B<int listen(int >I<sockfd>B<, int >I<backlog>B<);>\n"
msgstr "B<int listen(int >I<sockfd>B<, int >I<backlog>B<);>\n"
#. type: Plain text
-#: build/C/man2/listen.2:61
+#: build/C/man2/listen.2:63
msgid ""
"B<listen>() marks the socket referred to by I<sockfd> as a passive socket, "
"that is, as a socket that will be used to accept incoming connection "
"した接続要求を受け付けるのに使用されるソケットである。"
#. type: Plain text
-#: build/C/man2/listen.2:68
+#: build/C/man2/listen.2:70
msgid ""
"The I<sockfd> argument is a file descriptor that refers to a socket of type "
"B<SOCK_STREAM> or B<SOCK_SEQPACKET>."
"するファイルディスクリプタである。"
#. type: Plain text
-#: build/C/man2/listen.2:80
+#: build/C/man2/listen.2:82
msgid ""
"The I<backlog> argument defines the maximum length to which the queue of "
"pending connections for I<sockfd> may grow. If a connection request arrives "
"い。"
#. type: Plain text
-#: build/C/man2/listen.2:89
+#: build/C/man2/listen.2:91
msgid "Another socket is already listening on the same port."
msgstr "別のソケットが既に同じポートを listen している。"
#. type: Plain text
-#: build/C/man2/listen.2:99 build/C/man2/send.2:349
+#: build/C/man2/listen.2:101 build/C/man2/send.2:354
msgid "The argument I<sockfd> is not a socket."
msgstr "引き数 I<sockfd> はソケットではない。"
#. type: Plain text
-#: build/C/man2/listen.2:104
+#: build/C/man2/listen.2:106
msgid "The socket is not of a type that supports the B<listen>() operation."
msgstr "ソケットは B<listen>() がサポートしている型ではない。"
#. type: Plain text
-#: build/C/man2/listen.2:109
+#: build/C/man2/listen.2:111
msgid ""
"4.4BSD, POSIX.1-2001. The B<listen>() function call first appeared in "
"4.2BSD."
msgstr "4.4BSD, POSIX.1-2001. B<listen>() 関数は 4.2BSDで初めて実装された。"
#. type: Plain text
-#: build/C/man2/listen.2:111
+#: build/C/man2/listen.2:113
msgid "To accept connections, the following steps are performed:"
msgstr "接続を受け付けるには、以下の処理が実行される。"
#. type: TP
-#: build/C/man2/listen.2:112 build/C/man2/select_tut.2:345
+#: build/C/man2/listen.2:114 build/C/man2/select_tut.2:347
#, no-wrap
msgid "1."
msgstr "1."
#. type: Plain text
-#: build/C/man2/listen.2:115
+#: build/C/man2/listen.2:117
msgid "A socket is created with B<socket>(2)."
msgstr "B<socket>(2) でソケットを作成する。"
#. type: TP
-#: build/C/man2/listen.2:115 build/C/man2/select_tut.2:354
+#: build/C/man2/listen.2:117 build/C/man2/select_tut.2:356
#, no-wrap
msgid "2."
msgstr "2."
#. type: Plain text
-#: build/C/man2/listen.2:121
+#: build/C/man2/listen.2:123
msgid ""
"The socket is bound to a local address using B<bind>(2), so that other "
"sockets may be B<connect>(2)ed to it."
"のソケットに B<connect>(2) できるようにする。"
#. type: TP
-#: build/C/man2/listen.2:121 build/C/man2/select_tut.2:358
+#: build/C/man2/listen.2:123 build/C/man2/select_tut.2:360
#, no-wrap
msgid "3."
msgstr "3."
#. type: Plain text
-#: build/C/man2/listen.2:125
+#: build/C/man2/listen.2:127
msgid ""
"A willingness to accept incoming connections and a queue limit for incoming "
"connections are specified with B<listen>()."
"定する。"
#. type: TP
-#: build/C/man2/listen.2:125 build/C/man2/select_tut.2:365
+#: build/C/man2/listen.2:127 build/C/man2/select_tut.2:367
#, no-wrap
msgid "4."
msgstr "4."
#. type: Plain text
-#: build/C/man2/listen.2:128
+#: build/C/man2/listen.2:130
msgid "Connections are accepted with B<accept>(2)."
msgstr "B<accept>(2) を使って接続を受け付ける。"
#. type: Plain text
-#: build/C/man2/listen.2:151
+#: build/C/man2/listen.2:153
msgid ""
"The behavior of the I<backlog> argument on TCP sockets changed with Linux "
"2.2. Now it specifies the queue length for I<completely> established "
#. Don't rely on this value in portable applications since BSD
#. (and some BSD-derived systems) limit the backlog to 5.
#. type: Plain text
-#: build/C/man2/listen.2:164
+#: build/C/man2/listen.2:166
msgid ""
"If the I<backlog> argument is greater than the value in I</proc/sys/net/core/"
"somaxconn>, then it is silently truncated to that value; the default value "
"埋め込みの固定値 B<SOMAXCONN> であり、その値は 128 であった。"
#. type: Plain text
-#: build/C/man2/listen.2:172
+#: build/C/man2/listen.2:175
msgid "B<accept>(2), B<bind>(2), B<connect>(2), B<socket>(2), B<socket>(7)"
msgstr "B<accept>(2), B<bind>(2), B<connect>(2), B<socket>(2), B<socket>(7)"
#. type: TH
-#: build/C/man2/recv.2:39
+#: build/C/man2/recv.2:41
#, no-wrap
msgid "RECV"
msgstr "RECV"
#. type: TH
-#: build/C/man2/recv.2:39
-#, no-wrap
-msgid "2011-09-16"
-msgstr "2011-09-16"
+#: build/C/man2/recv.2:41
+#, fuzzy, no-wrap
+#| msgid "2012-02-27"
+msgid "2012-12-21"
+msgstr "2012-02-27"
#. type: Plain text
-#: build/C/man2/recv.2:42
+#: build/C/man2/recv.2:44
msgid "recv, recvfrom, recvmsg - receive a message from a socket"
msgstr "recv, recvfrom, recvmsg - ソケットからメッセージを受け取る"
#. type: Plain text
-#: build/C/man2/recv.2:47 build/C/man2/select.2:53
-#: build/C/man2/select_tut.2:45
+#: build/C/man2/recv.2:49 build/C/man2/select.2:53
+#: build/C/man2/select_tut.2:47
#, no-wrap
msgid "B<#include E<lt>sys/types.hE<gt>>\n"
msgstr "B<#include E<lt>sys/types.hE<gt>>\n"
#. type: Plain text
-#: build/C/man2/recv.2:51
+#: build/C/man2/recv.2:53
#, no-wrap
msgid "B<ssize_t recv(int >I<sockfd>B<, void *>I<buf>B<, size_t >I<len>B<, int >I<flags>B<);>\n"
msgstr "B<ssize_t recv(int >I<sockfd>B<, void *>I<buf>B<, size_t >I<len>B<, int >I<flags>B<);>\n"
#. type: Plain text
-#: build/C/man2/recv.2:54
+#: build/C/man2/recv.2:56
#, no-wrap
msgid ""
"B<ssize_t recvfrom(int >I<sockfd>B<, void *>I<buf>B<, size_t >I<len>B<, int >I<flags>B<,>\n"
"B< struct sockaddr *>I<src_addr>B<, socklen_t *>I<addrlen>B<);>\n"
#. type: Plain text
-#: build/C/man2/recv.2:56
+#: build/C/man2/recv.2:58
#, no-wrap
msgid "B<ssize_t recvmsg(int >I<sockfd>B<, struct msghdr *>I<msg>B<, int >I<flags>B<);>\n"
msgstr "B<ssize_t recvmsg(int >I<sockfd>B<, struct msghdr *>I<msg>B<, int >I<flags>B<);>\n"
#. type: Plain text
-#: build/C/man2/recv.2:64
+#: build/C/man2/recv.2:66
msgid ""
"The B<recvfrom>() and B<recvmsg>() calls are used to receive messages from "
"a socket, and may be used to receive data on a socket whether or not it is "
#. [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:93
+#: build/C/man2/recv.2:95
msgid ""
"If I<src_addr> is not NULL, and the underlying protocol provides the source "
"address, this source address is filled in. When I<src_addr> is NULL, "
"な値が返される。"
#. type: Plain text
-#: build/C/man2/recv.2:105
+#: build/C/man2/recv.2:107
msgid ""
"The B<recv>() call is normally used only on a I<connected> socket (see "
"B<connect>(2)) and is identical to B<recvfrom>() with a NULL I<src_addr> "
"() と等価である。"
#. type: Plain text
-#: build/C/man2/recv.2:111
+#: build/C/man2/recv.2:113
msgid ""
"All three routines return the length of the message on successful "
"completion. If a message is too long to fit in the supplied buffer, excess "
"を受信したソケットの種類によっては余分のバイトが捨てられる かもしれない。"
#. type: Plain text
-#: build/C/man2/recv.2:121
+#: build/C/man2/recv.2:123
msgid ""
"If no messages are available at the socket, the receive calls wait for a "
"message to arrive, unless the socket is nonblocking (see B<fcntl>(2)), in "
"る (受信されるデータの最大サイズは要求したサイズである)。"
#. type: Plain text
-#: build/C/man2/recv.2:127
+#: build/C/man2/recv.2:129
msgid ""
"The B<select>(2) or B<poll>(2) call may be used to determine when more "
"data arrives."
"る。"
#. type: Plain text
-#: build/C/man2/recv.2:133
+#: build/C/man2/recv.2:135
msgid ""
"The I<flags> argument to a B<recv>() call is formed by ORing one or more of "
"the following values:"
"和 を取ったものを指定する:"
#. type: TP
-#: build/C/man2/recv.2:133
+#: build/C/man2/recv.2:135
#, no-wrap
msgid "B<MSG_CMSG_CLOEXEC> (B<recvmsg>() only; since Linux 2.6.23)"
msgstr "B<MSG_CMSG_CLOEXEC> (B<recvmsg>() のみ; Linux 2.6.23)"
#. type: Plain text
-#: build/C/man2/recv.2:144
+#: build/C/man2/recv.2:146
msgid ""
"Set the close-on-exec flag for the file descriptor received via a UNIX "
"domain file descriptor using the B<SCM_RIGHTS> operation (described in "
"同じ理由で有用である。"
#. type: TP
-#: build/C/man2/recv.2:144 build/C/man2/send.2:186
+#: build/C/man2/recv.2:146 build/C/man2/send.2:188
#, no-wrap
msgid "B<MSG_DONTWAIT> (since Linux 2.2)"
msgstr "B<MSG_DONTWAIT> (Linux 2.2 以降)"
#. type: Plain text
-#: build/C/man2/recv.2:154
+#: build/C/man2/recv.2:156
msgid ""
"Enables nonblocking operation; if the operation would block, the call fails "
"with the error B<EAGAIN> or B<EWOULDBLOCK> (this can also be enabled using "
"で B<O_NONBLOCK> フラグを指定することによっても有効にできる)。"
#. type: TP
-#: build/C/man2/recv.2:154
+#: build/C/man2/recv.2:156
#, no-wrap
msgid "B<MSG_ERRQUEUE> (since Linux 2.2)"
msgstr "B<MSG_ERRQUEUE> (Linux 2.2 以降)"
#. type: Plain text
-#: build/C/man2/recv.2:173
+#: build/C/man2/recv.2:175
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 "
"I<msg_name> 経由で参照できる。"
#. type: Plain text
-#: build/C/man2/recv.2:185 build/C/man2/recv.2:248
+#: build/C/man2/recv.2:187 build/C/man2/recv.2:250
msgid ""
"For local errors, no address is passed (this can be checked with the "
"I<cmsg_len> member of the I<cmsghdr>). For error receives, the "
"処理待ちのソケット・エラーが再生成され、次のソケット操作の際に渡される。"
#. type: Plain text
-#: build/C/man2/recv.2:189
+#: build/C/man2/recv.2:191
msgid "The error is supplied in a I<sock_extended_err> structure:"
msgstr "このエラーは I<sock_extended_err> 構造体で提供される:"
#. type: Plain text
-#: build/C/man2/recv.2:196
+#: build/C/man2/recv.2:198
#, no-wrap
msgid ""
"#define SO_EE_ORIGIN_NONE 0\n"
"#define SO_EE_ORIGIN_ICMP6 3\n"
#. type: Plain text
-#: build/C/man2/recv.2:208
+#: build/C/man2/recv.2:210
#, no-wrap
msgid ""
"struct sock_extended_err\n"
"};\n"
#. type: Plain text
-#: build/C/man2/recv.2:210
+#: build/C/man2/recv.2:212
#, 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:234
+#: build/C/man2/recv.2:236
msgid ""
"I<ee_errno> contains the I<errno> number of the queued error. I<ee_origin> "
"is the origin code of where the error originated. The other fields are "
"される。"
#. type: TP
-#: build/C/man2/recv.2:248 build/C/man2/recv.2:379 build/C/man2/send.2:228
+#: build/C/man2/recv.2:250 build/C/man2/recv.2:381 build/C/man2/send.2:230
#, no-wrap
msgid "B<MSG_OOB>"
msgstr "B<MSG_OOB>"
#. type: Plain text
-#: build/C/man2/recv.2:255
+#: build/C/man2/recv.2:257
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 "
"い。"
#. type: TP
-#: build/C/man2/recv.2:255
+#: build/C/man2/recv.2:257
#, no-wrap
msgid "B<MSG_PEEK>"
msgstr "B<MSG_PEEK>"
#. type: Plain text
-#: build/C/man2/recv.2:262
+#: build/C/man2/recv.2:264
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 "
"が返ることになる。"
#. type: TP
-#: build/C/man2/recv.2:262
+#: build/C/man2/recv.2:264
#, no-wrap
msgid "B<MSG_TRUNC> (since Linux 2.2)"
msgstr "B<MSG_TRUNC> (Linux 2.2 以降)"
#. type: Plain text
-#: build/C/man2/recv.2:273
+#: build/C/man2/recv.2:275
+#, fuzzy
+#| msgid ""
+#| "For raw (B<AF_PACKET>), Internet datagram (since Linux 2.4.27/2.6.8), and "
+#| "netlink (since Linux 2.6.22) 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<unix>(7)) sockets."
msgid ""
-"For raw (B<AF_PACKET>), Internet datagram (since Linux 2.4.27/2.6.8), and "
-"netlink (since Linux 2.6.22) 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<unix>(7)) sockets."
+"For raw (B<AF_PACKET>), 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<unix>(7)) "
+"sockets."
msgstr ""
"raw ソケット (B<AF_PACKET>)、 Internet datagram ソケット (Linux 2.4.27/2.6.8 "
"以降)、 netlink (Linux 2.6.22 以降) ソケットの場合、 パケットやデータグラムの"
"ない。"
#. type: Plain text
-#: build/C/man2/recv.2:276
+#: build/C/man2/recv.2:278
msgid "For use with Internet stream sockets, see B<tcp>(7)."
msgstr "Internet ストリームソケットでの利用については B<tcp>(7) を参照。"
#. type: TP
-#: build/C/man2/recv.2:276
+#: build/C/man2/recv.2:278
#, no-wrap
msgid "B<MSG_WAITALL> (since Linux 2.2)"
msgstr "B<MSG_WAITALL> (Linux 2.2 以降)"
#. type: Plain text
-#: build/C/man2/recv.2:283
+#: build/C/man2/recv.2:285
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 "
"りデータが少なくても返ることがある。"
#. type: Plain text
-#: build/C/man2/recv.2:291
+#: build/C/man2/recv.2:293
msgid ""
"The B<recvmsg>() call uses a I<msghdr> structure to minimize the number of "
"directly supplied arguments. This structure is defined as follows in "
"用する。この構造体は I<E<lt>sys/socket.hE<gt>> で以下のように定義されている:"
#. type: Plain text
-#: build/C/man2/recv.2:298
+#: build/C/man2/recv.2:300
#, no-wrap
msgid ""
"struct iovec { /* Scatter/gather array items */\n"
"};\n"
#. type: Plain text
-#: build/C/man2/recv.2:308 build/C/man2/send.2:256
+#: build/C/man2/recv.2:310 build/C/man2/send.2:258
#, no-wrap
msgid ""
"struct msghdr {\n"
"};\n"
#. type: Plain text
-#: build/C/man2/recv.2:338
+#: build/C/man2/recv.2:340
msgid ""
"Here I<msg_name> and I<msg_namelen> specify the source address if the socket "
"is unconnected; I<msg_name> may be given as a NULL pointer if no names are "
"さが入っている。"
#. type: Plain text
-#: build/C/man2/recv.2:340
+#: build/C/man2/recv.2:342
msgid "The messages are of the form:"
msgstr "メッセージの形式は以下の通り:"
#. type: Plain text
-#: build/C/man2/recv.2:350
+#: build/C/man2/recv.2:352
#, no-wrap
msgid ""
"struct cmsghdr {\n"
"};\n"
#. type: Plain text
-#: build/C/man2/recv.2:355
+#: build/C/man2/recv.2:357
msgid ""
"Ancillary data should only be accessed by the macros defined in B<cmsg>(3)."
msgstr ""
"補助データは、 B<cmsg>(3) に定義されたマクロ経由でのみアクセスすべきである。"
#. type: Plain text
-#: build/C/man2/recv.2:358
+#: build/C/man2/recv.2:360
msgid ""
"As an example, Linux uses this ancillary data mechanism to pass extended "
"errors, IP options, or file descriptors over UNIX domain sockets."
"いる。"
#. type: Plain text
-#: build/C/man2/recv.2:366
+#: build/C/man2/recv.2:368
msgid ""
"The I<msg_flags> field in the I<msghdr> is set on return of B<recvmsg>(). "
"It can contain several flags:"
"れる。ここにはいくつかのフラグが入る。"
#. type: TP
-#: build/C/man2/recv.2:366
+#: build/C/man2/recv.2:368
#, no-wrap
msgid "B<MSG_EOR>"
msgstr "B<MSG_EOR>"
#. type: Plain text
-#: build/C/man2/recv.2:371
+#: build/C/man2/recv.2:373
msgid ""
"indicates end-of-record; the data returned completed a record (generally "
"used with sockets of type B<SOCK_SEQPACKET>)."
"であることを示す (一般的には B<SOCK_SEQPACKET> 型のソケットで使用される)。"
#. type: TP
-#: build/C/man2/recv.2:371
+#: build/C/man2/recv.2:373
#, no-wrap
msgid "B<MSG_TRUNC>"
msgstr "B<MSG_TRUNC>"
#. type: Plain text
-#: build/C/man2/recv.2:375
+#: build/C/man2/recv.2:377
msgid ""
"indicates that the trailing portion of a datagram was discarded because the "
"datagram was larger than the buffer supplied."
"た部分が捨てられたことを示す。"
#. type: TP
-#: build/C/man2/recv.2:375
+#: build/C/man2/recv.2:377
#, no-wrap
msgid "B<MSG_CTRUNC>"
msgstr "B<MSG_CTRUNC>"
#. type: Plain text
-#: build/C/man2/recv.2:379
+#: build/C/man2/recv.2:381
msgid ""
"indicates that some control data were discarded due to lack of space in the "
"buffer for ancillary data."
"を示す。"
#. type: Plain text
-#: build/C/man2/recv.2:382
+#: build/C/man2/recv.2:384
msgid ""
"is returned to indicate that expedited or out-of-band data were received."
msgstr "速達データや帯域外データを受信したことを示す。"
#. type: TP
-#: build/C/man2/recv.2:382
+#: build/C/man2/recv.2:384
#, no-wrap
msgid "B<MSG_ERRQUEUE>"
msgstr "B<MSG_ERRQUEUE>"
#. type: Plain text
-#: build/C/man2/recv.2:386
+#: build/C/man2/recv.2:388
msgid ""
"indicates that no data was received but an extended error from the socket "
"error queue."
"を示す。"
#. type: Plain text
-#: build/C/man2/recv.2:391
+#: build/C/man2/recv.2:393
msgid ""
"These calls return the number of bytes received, or -1 if an error "
"occurred. The return value will be 0 when the peer has performed an orderly "
"正しくシャットダウンを実行した場合は、返り値は 0 となる。"
#. type: Plain text
-#: build/C/man2/recv.2:396
+#: build/C/man2/recv.2:398
msgid ""
"These are some standard errors generated by the socket layer. Additional "
"errors may be generated and returned from the underlying protocol modules; "
#. Actually EAGAIN on Linux
#. type: Plain text
-#: build/C/man2/recv.2:405
+#: build/C/man2/recv.2:407
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 "
"が必要なアプリケーションでは、両方の可能性を 確認すべきである。"
#. type: Plain text
-#: build/C/man2/recv.2:410
+#: build/C/man2/recv.2:412
msgid "The argument I<sockfd> is an invalid descriptor."
msgstr "引き数 I<sockfd> が不正なディスクリプタである。"
#. type: Plain text
-#: build/C/man2/recv.2:414
+#: build/C/man2/recv.2:416
msgid ""
"A remote host refused to allow the network connection (typically because it "
"is not running the requested service)."
"たサービスが起動されていないなどがある)。"
#. type: Plain text
-#: build/C/man2/recv.2:418
+#: build/C/man2/recv.2:420
msgid ""
"The receive buffer pointer(s) point outside the process's address space."
msgstr "受信バッファへのポインタがプロセスのアドレス空間外を指している。"
#. type: Plain text
-#: build/C/man2/recv.2:423
+#: build/C/man2/recv.2:425
msgid ""
"The receive was interrupted by delivery of a signal before any data were "
"available; see B<signal>(7)."
"データを受信する前に、シグナルが配送されて割り込まれた。 B<signal>(7) 参照。"
#. type: Plain text
-#: build/C/man2/recv.2:427 build/C/man2/send.2:318
+#: build/C/man2/recv.2:429 build/C/man2/send.2:323
msgid "Invalid argument passed."
msgstr "不正な引き数が渡された。"
#. type: Plain text
-#: build/C/man2/recv.2:431
+#: build/C/man2/recv.2:433
msgid "Could not allocate memory for B<recvmsg>()."
msgstr "B<recvmsg>() のためのメモリが確保できなかった。"
#. type: TP
-#: build/C/man2/recv.2:431 build/C/man2/send.2:341
+#: build/C/man2/recv.2:433 build/C/man2/send.2:346
#, no-wrap
msgid "B<ENOTCONN>"
msgstr "B<ENOTCONN>"
#. type: Plain text
-#: build/C/man2/recv.2:438
+#: build/C/man2/recv.2:440
msgid ""
"The socket is associated with a connection-oriented protocol and has not "
"been connected (see B<connect>(2) and B<accept>(2))."
"(B<connect>(2) と B<accept>(2) を参照のこと)。"
#. type: Plain text
-#: build/C/man2/recv.2:443
+#: build/C/man2/recv.2:445
msgid "The argument I<sockfd> does not refer to a socket."
msgstr "引き数 I<sockfd> がソケットを参照していない。"
#. type: Plain text
-#: build/C/man2/recv.2:446
+#: build/C/man2/recv.2:448
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:453
+#: build/C/man2/recv.2:455
msgid ""
"POSIX.1-2001 only describes the B<MSG_OOB>, B<MSG_PEEK>, and B<MSG_WAITALL> "
"flags."
"されている。"
#. type: Plain text
-#: build/C/man2/recv.2:469
+#: build/C/man2/recv.2:471
msgid ""
"The prototypes given above follow glibc2. The Single UNIX Specification "
"agrees, except that it has return values of type I<ssize_t> (while 4.x BSD "
#. __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:483 build/C/man2/send.2:404
+#: build/C/man2/recv.2:485 build/C/man2/send.2:409
msgid ""
"According to POSIX.1-2001, the I<msg_controllen> field of the I<msghdr> "
"structure should be typed as I<socklen_t>, but glibc currently types it as "
"ある。"
#. type: Plain text
-#: build/C/man2/recv.2:488
+#: build/C/man2/recv.2:490
+#, fuzzy
+#| msgid ""
+#| "See B<recvmmsg(2)> for information about a Linux-specific system call "
+#| "that can be used to receive multiple datagrams in a single call."
msgid ""
-"See B<recvmmsg(2)> for information about a Linux-specific system call that "
+"See B<recvmmsg>(2) for information about a Linux-specific system call that "
"can be used to receive multiple datagrams in a single call."
msgstr ""
"B<recvmmsg>(2) には、一度の呼び出しでの複数のデータグラムに使用できる Linux "
"固有の システムコールに関する情報が書かれている。"
#. type: Plain text
-#: build/C/man2/recv.2:493
+#: build/C/man2/recv.2:495
msgid "An example of the use of B<recvfrom>() is shown in B<getaddrinfo>(3)."
msgstr "B<recvfrom>() の利用例が B<getaddrinfo>(3) に記載されている。"
#. type: Plain text
-#: build/C/man2/recv.2:503
+#: build/C/man2/recv.2:506
msgid ""
"B<fcntl>(2), B<getsockopt>(2), B<read>(2), B<recvmmsg>(2), B<select>(2), "
"B<shutdown>(2), B<socket>(2), B<cmsg>(3), B<sockatmark>(3), B<socket>(7)"
"B<shutdown>(2), B<socket>(2), B<cmsg>(3), B<sockatmark>(3), B<socket>(7)"
#. type: TH
-#: build/C/man2/recvmmsg.2:26
+#: build/C/man2/recvmmsg.2:31
#, no-wrap
msgid "RECVMMSG"
msgstr "RECVMMSG"
#. type: TH
-#: build/C/man2/recvmmsg.2:26
-#, no-wrap
-msgid "2011-10-04"
-msgstr "2011-10-04"
+#: build/C/man2/recvmmsg.2:31
+#, fuzzy, no-wrap
+#| msgid "2012-02-27"
+msgid "2012-12-24"
+msgstr "2012-02-27"
#. type: Plain text
-#: build/C/man2/recvmmsg.2:29
+#: build/C/man2/recvmmsg.2:34
msgid "recvmmsg - receive multiple messages on a socket"
msgstr ""
#. type: Plain text
-#: build/C/man2/recvmmsg.2:33 build/C/man2/sendmmsg.2:35
+#: build/C/man2/recvmmsg.2:38 build/C/man2/sendmmsg.2:35
#, no-wrap
msgid ""
"B<#define _GNU_SOURCE>\n"
"B<#include E<lt>sys/socket.hE<gt>>\n"
#. type: Plain text
-#: build/C/man2/recvmmsg.2:36
+#: build/C/man2/recvmmsg.2:41
#, no-wrap
msgid "B<int recvmmsg(int >I<sockfd>B<, struct mmsghdr *>I<msgvec>B<, unsigned int >I<vlen>B<,>\n"
msgstr "B<int recvmmsg(int >I<sockfd>B<, struct mmsghdr *>I<msgvec>B<, unsigned int >I<vlen>B<,>\n"
#. type: Plain text
-#: build/C/man2/recvmmsg.2:38
+#: build/C/man2/recvmmsg.2:43
#, no-wrap
msgid "B< unsigned int >I<flags>B<, struct timespec *>I<timeout>B<);>\n"
msgstr "B< unsigned int >I<flags>B<, struct timespec *>I<timeout>B<);>\n"
#. type: Plain text
-#: build/C/man2/recvmmsg.2:50
+#: build/C/man2/recvmmsg.2:55
msgid ""
"The B<recvmmsg>() system call is an extension of B<recvmsg>(2) that allows "
"the caller to receive multiple messages from a socket using a single system "
msgstr ""
#. type: Plain text
-#: build/C/man2/recvmmsg.2:54
+#: build/C/man2/recvmmsg.2:59
msgid ""
"The I<sockfd> argument is the file descriptor of the socket to receive data "
"from."
msgstr ""
#. type: Plain text
-#: build/C/man2/recvmmsg.2:62 build/C/man2/sendmmsg.2:62
+#: build/C/man2/recvmmsg.2:67 build/C/man2/sendmmsg.2:62
msgid ""
"The I<msgvec> argument is a pointer to an array of I<mmsghdr> structures. "
"The size of this array is specified in I<vlen>."
msgstr ""
#. type: Plain text
-#: build/C/man2/recvmmsg.2:68 build/C/man2/sendmmsg.2:68
+#: build/C/man2/recvmmsg.2:73 build/C/man2/sendmmsg.2:68
msgid "The I<mmsghdr> structure is defined in I<E<lt>sys/socket.hE<gt>> as:"
msgstr ""
#. type: Plain text
-#: build/C/man2/recvmmsg.2:75
+#: build/C/man2/recvmmsg.2:80
#, no-wrap
msgid ""
"struct mmsghdr {\n"
"};\n"
#. type: Plain text
-#: build/C/man2/recvmmsg.2:90
+#: build/C/man2/recvmmsg.2:95
msgid ""
"The I<msg_hdr> field is a I<msghdr> structure, as described in B<recvmsg>"
"(2). The I<msg_len> field is the number of bytes returned for the message "
msgstr ""
#. type: Plain text
-#: build/C/man2/recvmmsg.2:97
+#: build/C/man2/recvmmsg.2:102
msgid ""
"The I<flags> argument contains flags ORed together. The flags are the same "
"as documented for B<recvmsg>(2), with the following addition:"
msgstr ""
#. type: TP
-#: build/C/man2/recvmmsg.2:97
-#, no-wrap
-msgid "B<MSG_WAITFORONE>"
-msgstr "B<MSG_WAITFORONE>"
+#: build/C/man2/recvmmsg.2:102
+#, fuzzy, no-wrap
+#| msgid "B<MSG_MORE> (Since Linux 2.4.4)"
+msgid "B<MSG_WAITFORONE> (since Linux 2.6.34)"
+msgstr "B<MSG_MORE> (Linux 2.4.4 以降)"
#. type: Plain text
-#: build/C/man2/recvmmsg.2:102
+#: build/C/man2/recvmmsg.2:107
msgid "Turns on B<MSG_DONTWAIT> after the first message has been received."
msgstr ""
#. type: Plain text
-#: build/C/man2/recvmmsg.2:115
+#: build/C/man2/recvmmsg.2:123
msgid ""
"The I<timeout> argument points to a I<struct timespec> (see B<clock_gettime>"
"(2)) defining a timeout (seconds plus nanoseconds) for the receive "
-"operation. If I<timeout> is I<NULL> then the operation blocks indefinitely."
+"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<timeout> is I<NULL> then the operation "
+"blocks indefinitely."
msgstr ""
#. type: Plain text
-#: build/C/man2/recvmmsg.2:126
+#: build/C/man2/recvmmsg.2:134
msgid ""
"A blocking B<recvmmsg>() call blocks until I<vlen> messages have been "
"received or until the timeout expires. A nonblocking call reads as many "
msgstr ""
#. type: Plain text
-#: build/C/man2/recvmmsg.2:141
+#: build/C/man2/recvmmsg.2:149
msgid ""
"On return from B<recvmmsg>(), successive elements of I<msgvec> are updated "
"to contain information about each received message: I<msg_len> contains the "
msgstr ""
#. type: Plain text
-#: build/C/man2/recvmmsg.2:149
+#: build/C/man2/recvmmsg.2:157
msgid ""
"On success, B<recvmmsg>() returns the number of messages received in "
"I<msgvec>; on error, -1 is returned, and I<errno> is set to indicate the "
msgstr ""
#. type: Plain text
-#: build/C/man2/recvmmsg.2:153
+#: build/C/man2/recvmmsg.2:161
msgid ""
"Errors are as for B<recvmsg>(2). In addition, the following error can occur:"
msgstr ""
#. type: Plain text
-#: build/C/man2/recvmmsg.2:157
+#: build/C/man2/recvmmsg.2:165
msgid "I<timeout> is invalid."
msgstr ""
#. type: Plain text
-#: build/C/man2/recvmmsg.2:162
+#: build/C/man2/recvmmsg.2:170
+#, fuzzy
+#| msgid ""
+#| "The B<accept4>() system call is available starting with Linux 2.6.28; "
+#| "support in glibc is available starting with version 2.10."
msgid ""
-"The B<recvmmsg>() system call was added in Linux 2.6.32. Support in glibc "
+"The B<recvmmsg>() system call was added in Linux 2.6.33. Support in glibc "
"was added in version 2.12."
msgstr ""
+"B<accept4>() システムコールは Linux 2.6.28 以降で利用可能である。 glibc での"
+"サポートはバージョン 2.10 以降で利用可能である。"
#. type: Plain text
-#: build/C/man2/recvmmsg.2:165
+#: build/C/man2/recvmmsg.2:173
msgid "B<recvmmsg>() is Linux-specific."
msgstr ""
#. type: Plain text
-#: build/C/man2/recvmmsg.2:171
+#: build/C/man2/recvmmsg.2:181
+msgid ""
+"The following program uses B<recvmmsg>() 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 ""
+
+#. type: Plain text
+#: build/C/man2/recvmmsg.2:184
+msgid ""
+"The following snippet periodically generates UDP datagrams containing a "
+"random number:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/recvmmsg.2:189
+#, no-wrap
+msgid ""
+"$B< while true; do echo $RANDOM E<gt> /dev/udp/127.0.0.1/1234; >\n"
+"B<sleep 0.25; done>\n"
+msgstr ""
+
+#. 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 ""
+
+#. type: Plain text
+#: build/C/man2/recvmmsg.2:215
+#, fuzzy, no-wrap
+#| msgid ""
+#| "#include E<lt>sys/socket.hE<gt>\n"
+#| "#include E<lt>sys/un.hE<gt>\n"
+#| "#include E<lt>stdlib.hE<gt>\n"
+#| "#include E<lt>stdio.hE<gt>\n"
+#| "#include E<lt>string.hE<gt>\n"
+msgid ""
+"#define _GNU_SOURCE\n"
+"#include E<lt>netinet/ip.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
+"#include E<lt>sys/socket.hE<gt>\n"
+msgstr ""
+"#include E<lt>sys/socket.hE<gt>\n"
+"#include E<lt>sys/un.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>string.hE<gt>\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 ""
+
+#. type: Plain text
+#: build/C/man2/recvmmsg.2:234 build/C/man2/sendmmsg.2:201
+#, fuzzy, no-wrap
+#| msgid ""
+#| " sfd = socket(AF_UNIX, SOCK_STREAM, 0);\n"
+#| " if (sfd == -1)\n"
+#| " handle_error(\"socket\");\n"
+msgid ""
+" sockfd = socket(AF_INET, SOCK_DGRAM, 0);\n"
+" if (sockfd == -1) {\n"
+" perror(\"socket()\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+" sfd = socket(AF_UNIX, SOCK_STREAM, 0);\n"
+" if (sfd == -1)\n"
+" handle_error(\"socket\");\n"
+
+#. type: Plain text
+#: build/C/man2/recvmmsg.2:242
+#, fuzzy, no-wrap
+#| msgid ""
+#| " sa.sa_flags = 0;\n"
+#| " sa.sa_handler = child_sig_handler;\n"
+#| " sigemptyset(&sa.sa_mask);\n"
+#| " if (sigaction(SIGCHLD, &sa, NULL) == -1) {\n"
+#| " perror(\"sigaction\");\n"
+#| " exit(EXIT_FAILURE);\n"
+#| " }\n"
+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.sa_flags = 0;\n"
+" sa.sa_handler = child_sig_handler;\n"
+" sigemptyset(&sa.sa_mask);\n"
+" if (sigaction(SIGCHLD, &sa, NULL) == -1) {\n"
+" perror(\"sigaction\");\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<lt> 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 ""
+
+#. type: Plain text
+#: build/C/man2/recvmmsg.2:253
+#, fuzzy, no-wrap
+#| msgid ""
+#| " /* Wait up to five seconds. */\n"
+#| " tv.tv_sec = 5;\n"
+#| " tv.tv_usec = 0;\n"
+msgid ""
+" timeout.tv_sec = TIMEOUT;\n"
+" timeout.tv_nsec = 0;\n"
+msgstr ""
+" /* 5 秒間監視する。*/\n"
+" tv.tv_sec = 5;\n"
+" tv.tv_usec = 0;\n"
+
+#. type: Plain text
+#: build/C/man2/recvmmsg.2:259
+#, fuzzy, no-wrap
+#| msgid ""
+#| " if (r == -1) {\n"
+#| " perror(\"select()\");\n"
+#| " exit(EXIT_FAILURE);\n"
+#| " }\n"
+msgid ""
+" retval = recvmmsg(sockfd, msgs, VLEN, 0, &timeout);\n"
+" if (retval == -1) {\n"
+" perror(\"recvmmsg()\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+" if (r == -1) {\n"
+" perror(\"select()\");\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<lt> 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 ""
+
+#. type: Plain text
+#: build/C/man2/recvmmsg.2:275
msgid ""
"B<clock_gettime>(2), B<recvmsg>(2), B<sendmmsg>(2), B<sendmsg>(2), B<socket>"
"(2), B<socket>(7)"
#. type: TH
#: build/C/man2/select.2:38
-#, no-wrap
-msgid "2010-08-31"
-msgstr "2010-08-31"
+#, fuzzy, no-wrap
+#| msgid "2012-02-27"
+msgid "2012-08-17"
+msgstr "2012-02-27"
#. type: Plain text
-#: build/C/man2/select.2:42 build/C/man2/select_tut.2:34
+#: 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:37
+#: 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:39 build/C/man2/select_tut.2:60
+#: build/C/man2/select_tut.2:41 build/C/man2/select_tut.2:62
#, no-wrap
msgid "B<#include E<lt>sys/select.hE<gt>>\n"
msgstr "B<#include E<lt>sys/select.hE<gt>>\n"
#. type: Plain text
-#: build/C/man2/select.2:49 build/C/man2/select_tut.2:41
+#: 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:43
+#: build/C/man2/select.2:51 build/C/man2/select_tut.2:45
#, no-wrap
msgid "B<#include E<lt>sys/time.hE<gt>>\n"
msgstr "B<#include E<lt>sys/time.hE<gt>>\n"
#. type: Plain text
-#: build/C/man2/select.2:55 build/C/man2/select_tut.2:47
+#: build/C/man2/select.2:55 build/C/man2/select_tut.2:49
#, no-wrap
msgid "B<#include E<lt>unistd.hE<gt>>\n"
msgstr "B<#include E<lt>unistd.hE<gt>>\n"
"B< fd_set *>I<exceptfds>B<, struct timeval *>I<timeout>B<);>\n"
#. type: Plain text
-#: build/C/man2/select.2:60 build/C/man2/select_tut.2:52
+#: build/C/man2/select.2:60 build/C/man2/select_tut.2:54
#, no-wrap
msgid "B<void FD_CLR(int >I<fd>B<, fd_set *>I<set>B<);>\n"
msgstr "B<void FD_CLR(int >I<fd>B<, fd_set *>I<set>B<);>\n"
#. type: Plain text
-#: build/C/man2/select.2:62 build/C/man2/select_tut.2:54
+#: build/C/man2/select.2:62 build/C/man2/select_tut.2:56
#, no-wrap
msgid "B<int FD_ISSET(int >I<fd>B<, fd_set *>I<set>B<);>\n"
msgstr "B<int FD_ISSET(int >I<fd>B<, fd_set *>I<set>B<);>\n"
#. type: Plain text
-#: build/C/man2/select.2:64 build/C/man2/select_tut.2:56
+#: build/C/man2/select.2:64 build/C/man2/select_tut.2:58
#, no-wrap
msgid "B<void FD_SET(int >I<fd>B<, fd_set *>I<set>B<);>\n"
msgstr "B<void FD_SET(int >I<fd>B<, fd_set *>I<set>B<);>\n"
#. type: Plain text
-#: build/C/man2/select.2:66 build/C/man2/select_tut.2:58
+#: build/C/man2/select.2:66 build/C/man2/select_tut.2:60
#, no-wrap
msgid "B<void FD_ZERO(fd_set *>I<set>B<);>\n"
msgstr "B<void FD_ZERO(fd_set *>I<set>B<);>\n"
"B< const sigset_t *>I<sigmask>B<);>\n"
#. type: Plain text
-#: build/C/man2/select.2:77 build/C/man2/select_tut.2:69
-#: build/C/man3/sockatmark.3:34
+#: 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<feature_test_macros>(7)):"
msgstr "glibc 向けの機能検査マクロの要件 (B<feature_test_macros>(7) 参照):"
#. type: Plain text
-#: build/C/man2/select.2:81 build/C/man2/select_tut.2:73
+#: build/C/man2/select.2:81 build/C/man2/select_tut.2:75
msgid ""
"B<pselect>(): _POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>=\\ "
"600"
#. type: Plain text
#: build/C/man2/select.2:98
+#, fuzzy
+#| msgid ""
+#| "The operation of B<select>() and B<pselect>() is identical, with three "
+#| "differences:"
msgid ""
-"The operation of B<select>() and B<pselect>() is identical, with three "
-"differences:"
+"The operation of B<select>() and B<pselect>() is identical, other than "
+"these three differences:"
msgstr ""
"B<select>() と B<pselect>() の動作は同じであるが、以下の 3 点が異なる:"
"のである。"
#. type: Plain text
-#: build/C/man2/select.2:175
+#: build/C/man2/select.2:179
msgid ""
-"I<timeout> is an upper bound on the amount of time elapsed before B<select>"
-"() returns. If both fields of the I<timeval> structure are zero, then "
-"B<select>() returns immediately. (This is useful for polling.) If "
-"I<timeout> is NULL (no timeout), B<select>() can block indefinitely."
+"The I<timeout> argument specifies the minimum interval that B<select>() "
+"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<timeval> structure are zero, then B<select>() returns "
+"immediately. (This is useful for polling.) If I<timeout> is NULL (no "
+"timeout), B<select>() can block indefinitely."
msgstr ""
-"I<timeout> は B<select>() が復帰するまでの経過時間の上限である。 I<timeval> "
-"構造体の両方のフィールドが 0 の場合、 B<select>() はすぐに復帰する (この機能"
-"はポーリング (polling) を行うのに便利である)。 I<timeout> に NULL (タイムアウ"
-"トなし) が指定されると、 B<select>() は無期限に停止 (block) する。"
+"I<timeout> 引き数で、ファイルディスクリプタが ready になるのを待って\n"
+"B<select>() が停止する最小の停止時間を指定する\n"
+"(この停止時間はシステムクロックの粒度に切り上げられ、\n"
+"カーネルのスケジューリング遅延により少しだけ長くなる可能性がある)。\n"
+"I<timeval> 構造体の両方のフィールドが 0 の場合、 B<select>() はすぐに復\n"
+"帰する (この機能はポーリング (polling) を行うのに便利である)。\n"
+"I<timeout> に NULL (タイムアウトなし) が指定されると、 B<select>() は無\n"
+"期限に停止 (block) する。"
#. type: Plain text
-#: build/C/man2/select.2:185
+#: build/C/man2/select.2:189
msgid ""
"I<sigmask> is a pointer to a signal mask (see B<sigprocmask>(2)); if it is "
"not NULL, then B<pselect>() first replaces the current signal mask by the "
"し、 終了後にシグナルマスクを元のシグナルマスクに戻す。"
#. type: Plain text
-#: build/C/man2/select.2:191
+#: build/C/man2/select.2:195
msgid ""
"Other than the difference in the precision of the I<timeout> argument, the "
"following B<pselect>() call:"
"I<timeout> 引き数の精度の違いを除くと、以下の B<pselect>() の呼び出しは、"
#. type: Plain text
-#: build/C/man2/select.2:195
+#: build/C/man2/select.2:199
#, no-wrap
msgid ""
" ready = pselect(nfds, &readfds, &writefds, &exceptfds,\n"
" timeout, &sigmask);\n"
#. type: Plain text
-#: build/C/man2/select.2:200
+#: build/C/man2/select.2:204
msgid "is equivalent to I<atomically> executing the following calls:"
msgstr "次のコールを I<atomic> に実行するのと等価である。"
#. type: Plain text
-#: build/C/man2/select.2:203
+#: build/C/man2/select.2:207
#, no-wrap
msgid " sigset_t origmask;\n"
msgstr " sigset_t origmask;\n"
#. type: Plain text
-#: build/C/man2/select.2:207
-#, no-wrap
+#: build/C/man2/select.2:211
+#, fuzzy, no-wrap
+#| msgid ""
+#| " sigprocmask(SIG_SETMASK, &sigmask, &origmask);\n"
+#| " ready = select(nfds, &readfds, &writefds, &exceptfds, timeout);\n"
+#| " sigprocmask(SIG_SETMASK, &origmask, NULL);\n"
msgid ""
-" sigprocmask(SIG_SETMASK, &sigmask, &origmask);\n"
+" pthread_sigmask(SIG_SETMASK, &sigmask, &origmask);\n"
" ready = select(nfds, &readfds, &writefds, &exceptfds, timeout);\n"
-" sigprocmask(SIG_SETMASK, &origmask, NULL);\n"
+" pthread_sigmask(SIG_SETMASK, &origmask, NULL);\n"
msgstr ""
" sigprocmask(SIG_SETMASK, &sigmask, &origmask);\n"
" ready = select(nfds, &readfds, &writefds, &exceptfds, timeout);\n"
" sigprocmask(SIG_SETMASK, &origmask, NULL);\n"
#. type: Plain text
-#: build/C/man2/select.2:228
+#: build/C/man2/select.2:232
msgid ""
"The reason that B<pselect>() is needed is that if one wants to wait for "
"either a signal or for a file descriptor to become ready, then an atomic "
"で、前記の競合を避けることができる。)"
#. type: SS
-#: build/C/man2/select.2:228
+#: build/C/man2/select.2:232
#, no-wrap
msgid "The timeout"
msgstr "タイムアウト"
#. type: Plain text
-#: build/C/man2/select.2:232
+#: build/C/man2/select.2:236
msgid ""
"The time structures involved are defined in I<E<lt>sys/time.hE<gt>> and look "
"like"
"これらの関数で使用される時間関連の構造体は、 I<E<lt>sys/time.hE<gt>> で"
#. type: Plain text
-#: build/C/man2/select.2:239
+#: build/C/man2/select.2:243
#, no-wrap
msgid ""
"struct timeval {\n"
"};\n"
#. type: Plain text
-#: build/C/man2/select.2:243
+#: build/C/man2/select.2:247
msgid "and"
msgstr "や"
#. type: Plain text
-#: build/C/man2/select.2:250
+#: build/C/man2/select.2:254
#, no-wrap
msgid ""
"struct timespec {\n"
"};\n"
#. type: Plain text
-#: build/C/man2/select.2:254
+#: build/C/man2/select.2:258
msgid "(However, see below on the POSIX.1-2001 versions.)"
msgstr ""
"のように定義されている。 (POSIX.1-2001 での定義については下記の「注意」を参"
"照)"
#. type: Plain text
-#: build/C/man2/select.2:262
+#: build/C/man2/select.2:266
msgid ""
"Some code calls B<select>() with all three sets empty, I<nfds> zero, and a "
"non-NULL I<timeout> as a fairly portable way to sleep with subsecond "
#. - 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:285
+#: build/C/man2/select.2:289
msgid ""
"On Linux, B<select>() modifies I<timeout> to reflect the amount of time not "
"slept; most other implementations do not do this. (POSIX.1-2001 permits "
"ある。"
#. type: Plain text
-#: build/C/man2/select.2:302
+#: build/C/man2/select.2:306
msgid ""
"On success, B<select>() and B<pselect>() return the number of file "
"descriptors contained in the three returned descriptor sets (that is, the "
"義となるので、エラーが起こった後はそれらの内容を信頼してはならない。"
#. type: Plain text
-#: build/C/man2/select.2:308
+#: build/C/man2/select.2:312
msgid ""
"An invalid file descriptor was given in one of the sets. (Perhaps a file "
"descriptor that was already closed, or one on which an error has occurred.)"
"タが指定された)。"
#. type: Plain text
-#: build/C/man2/select.2:312
+#: build/C/man2/select.2:316
msgid "A signal was caught; see B<signal>(7)."
msgstr "シグナルを受信した。"
#. type: Plain text
-#: build/C/man2/select.2:318
+#: build/C/man2/select.2:322
msgid ""
"I<nfds> is negative or the value contained within I<timeout> is invalid."
msgstr "I<n> が負、または I<timeout> に入っている値が不正である。"
#. type: Plain text
-#: build/C/man2/select.2:321
+#: build/C/man2/select.2:325
msgid "unable to allocate memory for internal tables."
msgstr "内部テーブルにメモリを割り当てることができなかった。"
#. type: Plain text
-#: build/C/man2/select.2:327
+#: build/C/man2/select.2:331
msgid ""
"B<pselect>() was added to Linux in kernel 2.6.16. Prior to this, B<pselect>"
"() was emulated in glibc (but see BUGS)."
"B<pselect>() は glibc でエミュレートされていた (「バグ」の章を参照)。"
#. type: Plain text
-#: build/C/man2/select.2:338
+#: build/C/man2/select.2:342
msgid ""
"B<select>() conforms to POSIX.1-2001 and 4.4BSD (B<select>() first "
"appeared in 4.2BSD). Generally portable to/from non-BSD systems supporting "
"ること。"
#. type: Plain text
-#: build/C/man2/select.2:342
+#: build/C/man2/select.2:346
msgid "B<pselect>() is defined in POSIX.1g, and in POSIX.1-2001."
msgstr "B<pselect>() は POSIX.1g と POSIX.1-2001 で定義されている。"
#. type: Plain text
-#: build/C/man2/select.2:359
+#: build/C/man2/select.2:363
msgid ""
"An I<fd_set> is a fixed size buffer. Executing B<FD_CLR>() or B<FD_SET>() "
"with a value of I<fd> that is negative or is equal to or larger than "
"プタでなければならないと規定されている。"
#. type: Plain text
-#: build/C/man2/select.2:368
+#: build/C/man2/select.2:372
msgid ""
"Concerning the types involved, the classical situation is that the two "
"fields of a I<timeval> structure are typed as I<long> (as shown above), and "
"定義されている。 POSIX.1-2001 の下では、以下のようになっている。"
#. type: Plain text
-#: build/C/man2/select.2:375
+#: build/C/man2/select.2:379
#, no-wrap
msgid ""
"struct timeval {\n"
"};\n"
#. type: Plain text
-#: build/C/man2/select.2:386
+#: build/C/man2/select.2:390
msgid ""
"where the structure is defined in I<E<lt>sys/select.hE<gt>> and the data "
"types I<time_t> and I<suseconds_t> are defined in I<E<lt>sys/types.hE<gt>>."
"と I<suseconds_t> は I<E<lt>sys/types.hE<gt>> で定義されている。"
#. type: Plain text
-#: build/C/man2/select.2:398
+#: build/C/man2/select.2:402
msgid ""
"Concerning prototypes, the classical situation is that one should include "
"I<E<lt>time.hE<gt>> for B<select>(). The POSIX.1-2001 situation is that one "
"インクルードすればよい。"
#. type: Plain text
-#: build/C/man2/select.2:410
+#: build/C/man2/select.2:414
msgid ""
"Libc4 and libc5 do not have a I<E<lt>sys/select.hE<gt>> header; under glibc "
"2.0 and later this header exists. Under glibc 2.0 it unconditionally gives "
"使用するには、「書式」に記載された要件を満たす必要がある。"
#. type: SS
-#: build/C/man2/select.2:410
+#: build/C/man2/select.2:414
#, no-wrap
-msgid "Linux Notes"
+msgid "Multithreaded applications"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/select.2:430
+msgid ""
+"If a file descriptor being monitored by B<select>() is closed in another "
+"thread, the result is unspecified. On some UNIX systems, B<select>() "
+"unblocks and returns, with an indication that the file descriptor is ready "
+"(a subsequent I/O operation will likely fail with an error, unless another "
+"the file descriptor reopened between the time B<select>() 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<select>(). In "
+"summary, any application that relies on a particular behavior in this "
+"scenario must be considered buggy."
+msgstr ""
+
+#. type: SS
+#: build/C/man2/select.2:430
+#, fuzzy, no-wrap
+#| msgid "Linux Notes"
+msgid "Linux notes"
msgstr "Linux での注意"
#. type: Plain text
-#: build/C/man2/select.2:425
+#: build/C/man2/select.2:438
+#, fuzzy
+#| msgid ""
+#| "The B<pselect>() interface described in this page is implemented by "
+#| "glibc. The underlying Linux system call is named B<pselect6>(). This "
+#| "system call has somewhat different behavior from the gibc wrapper "
+#| "function."
msgid ""
-"The Linux B<pselect>() system call modifies its I<timeout> argument. "
+"The B<pselect>() interface described in this page is implemented by glibc. "
+"The underlying Linux system call is named B<pselect6>(). This system call "
+"has somewhat different behavior from the glibc wrapper function."
+msgstr ""
+"このページで説明している B<pselect>() のインターフェースは、glibc に\n"
+"実装されているものである。内部で呼び出される Linux のシステムコールは\n"
+"B<pselect6>() という名前である。このシステムコールは glibc のラッパー\n"
+"関数とは少し違った動作をする。"
+
+#. type: Plain text
+#: build/C/man2/select.2:453
+msgid ""
+"The Linux B<pselect6>() system call modifies its I<timeout> argument. "
"However, the glibc wrapper function hides this behavior by using a local "
"variable for the timeout argument that is passed to the system call. Thus, "
"the glibc B<pselect>() function does not modify its I<timeout> argument; "
"this is the behavior required by POSIX.1-2001."
msgstr ""
-"Linux の B<pselect>() システムコールは I<timeout> 引き数を変更する。 しかし、\n"
-"glibc のラッパー関数は、システムコールに渡す timeout 引き数 としてローカル変数\n"
-"を使うことでこの動作を隠蔽している。 このため、glibc の B<pselect>() 関数は\n"
-"I<timeout> 引き数を変更しない。 これが POSIX.1-2001 が要求している動作である。"
+"Linux の B<pselect6>() システムコールは I<timeout> 引き数を変更する。\n"
+"しかし、glibc のラッパー関数は、システムコールに渡す timeout 引き数と\n"
+"してローカル変数を使うことでこの動作を隠蔽している。このため、glibc の\n"
+"B<pselect>() 関数は I<timeout> 引き数を変更しない。\n"
+"これが POSIX.1-2001 が要求している動作である。"
+
+#. type: Plain text
+#: build/C/man2/select.2:459
+#, fuzzy
+#| msgid ""
+#| "The final argument of the B<pselect6()> system call is not a I<sigset_t\\ "
+#| "*> pointer, but is instead a structure of the form:"
+msgid ""
+"The final argument of the B<pselect6>() system call is not a I<sigset_t\\ "
+"*> pointer, but is instead a structure of the form:"
+msgstr ""
+"B<pselect6>() システムコールの最後の引き数はI<sigset_t\\ *> 型の\n"
+"ポインタではなく、以下に示す構造体である。"
+
+#. type: Plain text
+#: build/C/man2/select.2:467
+#, no-wrap
+msgid ""
+"struct {\n"
+" const sigset_t *ss; /* Pointer to signal set */\n"
+" size_t ss_len; /* Size (in bytes) of object pointed\n"
+" to by 'ss' */\n"
+"};\n"
+msgstr ""
+"struct {\n"
+" const sigset_t *ss; /* シグナル集合へのポインタ */\n"
+" size_t ss_len; /* 'ss' が指すオブジェクトのサイズ\n"
+" (バイト数) */\n"
+"};\n"
+
+#. type: Plain text
+#: build/C/man2/select.2:474
+msgid ""
+"This allows the system call to obtain both a pointer to the signal set and "
+"its size, while allowing for the fact that most architectures support a "
+"maximum of 6 arguments to a system call."
+msgstr ""
+"このようにすることで、ほとんどのアーキテクチャがサポートしている\n"
+"システムコールの引き数が最大で 6 個という事実を満たしつつ、\n"
+"B<pselect6>() システムコールがシグナル集合へのポインタとシグナル集合\n"
+"のサイズの両方を取得することができるのである。"
#. type: Plain text
-#: build/C/man2/select.2:431
+#: build/C/man2/select.2:480
msgid ""
"Glibc 2.0 provided a version of B<pselect>() that did not take a I<sigmask> "
"argument."
"されていた。"
#. type: Plain text
-#: build/C/man2/select.2:444
+#: build/C/man2/select.2:493
msgid ""
"Starting with version 2.1, glibc provided an emulation of B<pselect>() that "
"was implemented using B<sigprocmask>(2) and B<select>(). This "
"が使用される。"
#. type: Plain text
-#: build/C/man2/select.2:453
+#: build/C/man2/select.2:506
msgid ""
"On systems that lack B<pselect>(), reliable (and more portable) signal "
-"trapping can be achieved using the self-pipe trick (where a signal handler "
-"writes a byte to a pipe whose other end is monitored by B<select>() in the "
-"main program.)"
-msgstr ""
-"B<pselect>() がないシステムにおいて、 シグナルの捕捉を信頼性があり (移植性も"
-"高い) 方法で行うには、 自己パイプ (self-pipe) という技を使うとよい (シグナル"
-"ハンドラはパイプへ 1 バイトのデータを書き込み、同じパイプのもう一端をメインプ"
-"ログラムの B<select>() で監視するという方法である)。"
+"trapping can be achieved using the self-pipe trick. In this technique, a "
+"signal handler writes a byte to a pipe whose other end is monitored by "
+"B<select>() 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<pselect>() がないシステムにおいて、シグナルの捕捉を信頼性があり (移植\n"
+"性も高い) 方法で行うには、 自己パイプ (self-pipe) という技を使うとよい。\n"
+"この方法では、シグナルハンドラはパイプへ 1 バイトのデータを書き込み、\n"
+"同じパイプのもう一端をメインプログラムの B<select>() で監視する (一杯に\n"
+"なったパイプへの書き込みや空のパイプから読み出しを行った際に起こるであ\n"
+"ろう停止 (blocking) を避けるためには、パイプへの読み書きの際には 非停止\n"
+"(nonblocking) I/O を使用するとよい)。"
#. Stevens discusses a case where accept can block after select
#. returns successfully because of an intervening RST from the client.
#. Maybe the kernel should have returned EIO in such a situation?
#. type: Plain text
-#: build/C/man2/select.2:469
+#: build/C/man2/select.2:522
msgid ""
"Under Linux, B<select>() may report a socket file descriptor as \"ready for "
"reading\", while nevertheless a subsequent read blocks. This could for "
"ないソケットに対しては B<O_NONBLOCK> を使うとより安全であろう。"
#. type: Plain text
-#: build/C/man2/select.2:484
+#: build/C/man2/select.2:537
msgid ""
"On Linux, B<select>() also modifies I<timeout> if the call is interrupted "
"by a signal handler (i.e., the B<EINTR> error return). This is not "
"数をシステムコールに渡している。"
#. type: Plain text
-#: build/C/man2/select.2:491
+#: build/C/man2/select.2:544
#, no-wrap
msgid ""
"#include E<lt>stdio.hE<gt>\n"
"#include E<lt>unistd.hE<gt>\n"
#. type: Plain text
-#: build/C/man2/select.2:498
+#: build/C/man2/select.2:551
#, no-wrap
msgid ""
"int\n"
" int retval;\n"
#. type: Plain text
-#: build/C/man2/select.2:502
+#: build/C/man2/select.2:555
#, no-wrap
msgid ""
" /* Watch stdin (fd 0) to see when it has input. */\n"
" FD_SET(0, &rfds);\n"
#. type: Plain text
-#: build/C/man2/select.2:506
+#: build/C/man2/select.2:559
#, no-wrap
msgid ""
" /* Wait up to five seconds. */\n"
" tv.tv_usec = 0;\n"
#. type: Plain text
-#: build/C/man2/select.2:509
+#: build/C/man2/select.2:562
#, no-wrap
msgid ""
" retval = select(1, &rfds, NULL, NULL, &tv);\n"
" /* この時点での tv の値を信頼してはならない。*/\n"
#. type: Plain text
-#: build/C/man2/select.2:517
+#: build/C/man2/select.2:570
#, no-wrap
msgid ""
" if (retval == -1)\n"
" printf(\"5 秒以内にデータが入力されませんでした。\\en\");\n"
#. type: Plain text
-#: build/C/man2/select.2:520
-#, no-wrap
+#: build/C/man2/select.2:585
+#, fuzzy
+#| msgid ""
+#| "For vaguely related stuff, see B<accept>(2), B<connect>(2), B<poll>(2), "
+#| "B<read>(2), B<recv>(2), B<send>(2), B<sigprocmask>(2), B<write>(2), "
+#| "B<epoll>(7), B<time>(7)"
msgid ""
-" exit(EXIT_SUCCESS);\n"
-"}\n"
-msgstr ""
-" exit(EXIT_SUCCESS);\n"
-"}\n"
-
-#. type: Plain text
-#: build/C/man2/select.2:524
-msgid "For a tutorial with discussion and examples, see B<select_tut>(2)."
-msgstr ""
-"考察と使用例の書かれたチュートリアルとして、 B<select_tut>(2) がある。"
-
-#. type: Plain text
-#: build/C/man2/select.2:535
-msgid ""
-"For vaguely related stuff, see B<accept>(2), B<connect>(2), B<poll>(2), "
-"B<read>(2), B<recv>(2), B<send>(2), B<sigprocmask>(2), B<write>(2), B<epoll>"
-"(7), B<time>(7)"
+"B<accept>(2), B<connect>(2), B<poll>(2), B<read>(2), B<recv>(2), B<send>(2), "
+"B<sigprocmask>(2), B<write>(2), B<epoll>(7), B<time>(7)"
msgstr ""
"関係がありそうなものを挙げておく: B<accept>(2), B<connect>(2), B<poll>(2), "
"B<read>(2), B<recv>(2), B<send>(2), B<sigprocmask>(2), B<write>(2), B<epoll>"
"(7), B<time>(7)"
+#. type: Plain text
+#: build/C/man2/select.2:588
+msgid "For a tutorial with discussion and examples, see B<select_tut>(2)."
+msgstr ""
+"考察と使用例の書かれたチュートリアルとして、 B<select_tut>(2) がある。"
+
#. type: TH
-#: build/C/man2/select_tut.2:30
+#: build/C/man2/select_tut.2:32
#, no-wrap
msgid "SELECT_TUT"
msgstr "SELECT_TUT"
#. type: TH
-#: build/C/man2/select_tut.2:30
-#, no-wrap
-msgid "2010-06-10"
-msgstr "2010-06-10"
+#: build/C/man2/select_tut.2:32
+#, fuzzy, no-wrap
+#| msgid "2012-05-02"
+msgid "2012-08-03"
+msgstr "2012-05-02"
#. type: Plain text
-#: build/C/man2/select_tut.2:50
+#: build/C/man2/select_tut.2:52
#, no-wrap
msgid ""
"B<int select(int >I<nfds>B<, fd_set *>I<readfds>B<, fd_set *>I<writefds>B<,>\n"
"B< fd_set *>I<exceptfds>B<, struct timeval *>I<utimeout>B<);>\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:64
+#: build/C/man2/select_tut.2:66
#, no-wrap
msgid ""
"B<int pselect(int >I<nfds>B<, fd_set *>I<readfds>B<, fd_set *>I<writefds>B<,>\n"
"B< const sigset_t *>I<sigmask>B<);>\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:81
+#: build/C/man2/select_tut.2:83
msgid ""
"B<select>() (or B<pselect>()) is used to efficiently monitor multiple file "
"descriptors, to see if any of them is, or becomes, \"ready\"; that is, to "
"る。"
#. type: Plain text
-#: build/C/man2/select_tut.2:106
+#: build/C/man2/select_tut.2:108
msgid ""
"Its principal arguments are three \"sets\" of file descriptors: I<readfds>, "
"I<writefds>, and I<exceptfds>. Each set is declared as type I<fd_set>, and "
"のファイルディスクリプタの削除を行う。"
#. type: SS
-#: build/C/man2/select_tut.2:106
+#: build/C/man2/select_tut.2:108
#, no-wrap
msgid "Arguments"
msgstr "引き数"
#. type: TP
-#: build/C/man2/select_tut.2:107
+#: build/C/man2/select_tut.2:109
#, no-wrap
msgid "I<readfds>"
msgstr "I<readfds>"
#. type: Plain text
-#: build/C/man2/select_tut.2:116
+#: build/C/man2/select_tut.2:118
msgid ""
"This set is watched to see if data is available for reading from any of its "
"file descriptors. After B<select>() has returned, I<readfds> will be "
"直ちに読み込み可能なファイルディスクリプタ以外は 集合から削除される。"
#. type: TP
-#: build/C/man2/select_tut.2:116
+#: build/C/man2/select_tut.2:118
#, no-wrap
msgid "I<writefds>"
msgstr "I<writefds>"
#. type: Plain text
-#: build/C/man2/select_tut.2:125
+#: build/C/man2/select_tut.2:127
msgid ""
"This set is watched to see if there is space to write data to any of its "
"file descriptors. After B<select>() has returned, I<writefds> will be "
"直ちに書き込み可能なファイルディスクリプタ以外は 集合から削除される。"
#. type: TP
-#: build/C/man2/select_tut.2:125
+#: build/C/man2/select_tut.2:127
#, no-wrap
msgid "I<exceptfds>"
msgstr "I<exceptfds>"
#. type: Plain text
-#: build/C/man2/select_tut.2:147
+#: build/C/man2/select_tut.2:149
msgid ""
"This set is watched for \"exceptional conditions\". In practice, only one "
"such exceptional condition is common: the availability of I<out-of-band> "
"状態が発生したディスクリプタ以外は集合から削除される。"
#. type: TP
-#: build/C/man2/select_tut.2:147
+#: build/C/man2/select_tut.2:149
#, no-wrap
msgid "I<nfds>"
msgstr "I<nfds>"
#. type: Plain text
-#: build/C/man2/select_tut.2:154
+#: build/C/man2/select_tut.2:156
msgid ""
"This is an integer one more than the maximum of any file descriptor in any "
"of the sets. In other words, while adding file descriptors to each of the "
"I<nfds> として渡さないといけない、ということだ。"
#. type: TP
-#: build/C/man2/select_tut.2:154
+#: build/C/man2/select_tut.2:156
#, no-wrap
msgid "I<utimeout>"
msgstr "I<utimeout>"
#. type: Plain text
-#: build/C/man2/select_tut.2:167
+#: build/C/man2/select_tut.2:169
msgid ""
"This is the longest time B<select>() may wait before returning, even if "
"nothing interesting happened. If this value is passed as NULL, then "
"ように定義されている:"
#. type: Plain text
-#: build/C/man2/select_tut.2:174
+#: build/C/man2/select_tut.2:176
#, no-wrap
msgid ""
"struct timeval {\n"
"};\n"
#. type: TP
-#: build/C/man2/select_tut.2:176
+#: build/C/man2/select_tut.2:178
#, no-wrap
msgid "I<ntimeout>"
msgstr "I<ntimeout>"
#. type: Plain text
-#: build/C/man2/select_tut.2:185
+#: build/C/man2/select_tut.2:187
msgid ""
"This argument for B<pselect>() has the same meaning as I<utimeout>, but "
"I<struct timespec> has nanosecond precision as follows:"
"timespec> は次に示すようにナノ秒の精度を持つ。"
#. type: Plain text
-#: build/C/man2/select_tut.2:192
+#: build/C/man2/select_tut.2:194
#, no-wrap
msgid ""
"struct timespec {\n"
"};\n"
#. type: TP
-#: build/C/man2/select_tut.2:194
+#: build/C/man2/select_tut.2:196
#, no-wrap
msgid "I<sigmask>"
msgstr "I<sigmask>"
#. type: Plain text
-#: build/C/man2/select_tut.2:211
+#: build/C/man2/select_tut.2:213
msgid ""
"This argument holds a set of signals that the kernel should unblock (i.e., "
"remove from the signal mask of the calling thread), while the caller is "
"() と全く同じ動作となる。"
#. type: SS
-#: build/C/man2/select_tut.2:211
-#, no-wrap
-msgid "Combining Signal and Data Events"
+#: build/C/man2/select_tut.2:213
+#, fuzzy, no-wrap
+#| msgid "Combining Signal and Data Events"
+msgid "Combining signal and data events"
msgstr "シグナルとデータイベントを組み合わせる"
#. type: Plain text
-#: build/C/man2/select_tut.2:255
+#: build/C/man2/select_tut.2:257
msgid ""
"B<pselect>() is useful if you are waiting for a signal as well as for file "
"descriptor(s) to become ready for I/O. Programs that receive signals "
"る。"
#. type: Plain text
-#: build/C/man2/select_tut.2:258
+#: build/C/man2/select_tut.2:260
#, no-wrap
msgid "static volatile sig_atomic_t got_SIGCHLD = 0;\n"
msgstr "static volatile sig_atomic_t got_SIGCHLD = 0;\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:264
+#: build/C/man2/select_tut.2:266
#, no-wrap
msgid ""
"static void\n"
"}\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:272
+#: build/C/man2/select_tut.2:274
#, no-wrap
msgid ""
"int\n"
" int r;\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:279
+#: build/C/man2/select_tut.2:281
#, no-wrap
msgid ""
" sigemptyset(&sigmask);\n"
" }\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:287
+#: build/C/man2/select_tut.2:289
#, no-wrap
msgid ""
" sa.sa_flags = 0;\n"
" }\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:289
+#: build/C/man2/select_tut.2:291
#, no-wrap
msgid " sigemptyset(&empty_mask);\n"
msgstr " sigemptyset(&empty_mask);\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:293
+#: build/C/man2/select_tut.2:295
#, no-wrap
msgid ""
" for (;;) { /* main loop */\n"
" before the pselect() call. (Code omitted.) */\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:299
+#: build/C/man2/select_tut.2:301
#, no-wrap
msgid ""
" r = pselect(nfds, &readfds, &writefds, &exceptfds,\n"
" }\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:302
+#: build/C/man2/select_tut.2:304
#, no-wrap
msgid ""
" if (got_SIGCHLD) {\n"
" got_SIGCHLD = 0;\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:306
+#: build/C/man2/select_tut.2:308
#, no-wrap
msgid ""
" /* Handle signalled event here; e.g., wait() for all\n"
" }\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:310
+#: build/C/man2/select_tut.2:312
#, no-wrap
msgid ""
" /* main body of program */\n"
"}\n"
#. type: SS
-#: build/C/man2/select_tut.2:311
+#: build/C/man2/select_tut.2:313
#, no-wrap
msgid "Practical"
msgstr "実例"
#. type: Plain text
-#: build/C/man2/select_tut.2:332
+#: build/C/man2/select_tut.2:334
msgid ""
"So what is the point of B<select>()? Can't I just read and write to my "
"descriptors whenever I want? The point of B<select>() is that it watches "
"になってしまうだろう。 B<select>() を使うとこの状況に効果的に対処できる。"
#. type: SS
-#: build/C/man2/select_tut.2:332
-#, no-wrap
-msgid "Select Law"
+#: build/C/man2/select_tut.2:334
+#, fuzzy, no-wrap
+#| msgid "Select Law"
+msgid "Select law"
msgstr "SELECT の掟"
#. type: Plain text
-#: build/C/man2/select_tut.2:345
+#: build/C/man2/select_tut.2:347
msgid ""
"Many people who try to use B<select>() come across behavior that is "
"difficult to understand and produces nonportable or borderline results. For "
"ことにする。"
#. type: Plain text
-#: build/C/man2/select_tut.2:354
+#: build/C/man2/select_tut.2:356
msgid ""
"You should always try to use B<select>() without a timeout. Your program "
"should have nothing to do if there is no data available. Code that depends "
"ウトに依存したコードは通常移植性がなく、 デバッグも難しくなる。"
#. type: Plain text
-#: build/C/man2/select_tut.2:358
+#: build/C/man2/select_tut.2:360
msgid ""
"The value I<nfds> must be properly calculated for efficiency as explained "
"above."
"えなければならない。"
#. type: Plain text
-#: build/C/man2/select_tut.2:365
+#: build/C/man2/select_tut.2:367
msgid ""
"No file descriptor must be added to any set if you do not intend to check "
"its result after the B<select>() call, and respond appropriately. See next "
"ファイルディスクリプタは、 どの集合にも加えてはならない。 次のルールも参照。"
#. type: Plain text
-#: build/C/man2/select_tut.2:371
+#: build/C/man2/select_tut.2:373
msgid ""
"After B<select>() returns, all file descriptors in all sets should be "
"checked to see if they are ready."
"て 読み書き可能な状態になっているかをチェックすべきである。"
#. type: TP
-#: build/C/man2/select_tut.2:371
+#: build/C/man2/select_tut.2:373
#, no-wrap
msgid "5."
msgstr "5."
#. type: Plain text
-#: build/C/man2/select_tut.2:386
+#: build/C/man2/select_tut.2:388
msgid ""
"The functions B<read>(2), B<recv>(2), B<write>(2), and B<send>(2) do I<not> "
"necessarily read/write the full amount of data that you have requested. If "
"うな場合も 考慮に入れてやらなければならない。"
#. type: TP
-#: build/C/man2/select_tut.2:386
+#: build/C/man2/select_tut.2:388
#, no-wrap
msgid "6."
msgstr "6."
#. type: Plain text
-#: build/C/man2/select_tut.2:394
+#: build/C/man2/select_tut.2:396
msgid ""
"Never read/write only in single bytes at a time unless you are really sure "
"that you have a small amount of data to process. It is extremely "
"バイトにしているが、 このサイズを大きくするのは簡単だろう。"
#. type: TP
-#: build/C/man2/select_tut.2:394
+#: build/C/man2/select_tut.2:396
#, no-wrap
msgid "7."
msgstr "7."
#. Nonetheless, you should still cope with these errors for completeness.
#. type: Plain text
-#: build/C/man2/select_tut.2:416
+#: build/C/man2/select_tut.2:418
msgid ""
"The functions B<read>(2), B<recv>(2), B<write>(2), and B<send>(2) as well "
"as the B<select>() call can return -1 with I<errno> set to B<EINTR>, or "
"ク I/O をセットしていない場合は、 B<EAGAIN> が返されることはないだろう。"
#. type: TP
-#: build/C/man2/select_tut.2:416
+#: build/C/man2/select_tut.2:418
#, no-wrap
msgid "8."
msgstr "8."
#. type: Plain text
-#: build/C/man2/select_tut.2:425
+#: build/C/man2/select_tut.2:427
msgid ""
"Never call B<read>(2), B<recv>(2), B<write>(2), or B<send>(2) with a buffer "
"length of zero."
"(2), B<send>(2) を呼び出してはならない。"
#. type: TP
-#: build/C/man2/select_tut.2:425
+#: build/C/man2/select_tut.2:427
#, no-wrap
msgid "9."
msgstr "9."
#. type: Plain text
-#: build/C/man2/select_tut.2:441
+#: build/C/man2/select_tut.2:443
msgid ""
"If the functions B<read>(2), B<recv>(2), B<write>(2), and B<send>(2) fail "
"with errors other than those listed in B<7.>, or one of the input functions "
"が集合に含まれ続けるのを許さないようにしている。"
#. type: TP
-#: build/C/man2/select_tut.2:441
+#: build/C/man2/select_tut.2:443
#, no-wrap
msgid "10."
msgstr "10."
#. type: Plain text
-#: build/C/man2/select_tut.2:448
+#: build/C/man2/select_tut.2:450
msgid ""
"The timeout value must be initialized with each new call to B<select>(), "
"since some operating systems modify the structure. B<pselect>() however "
"分の timeout 構造体を変更することはない。"
#. type: TP
-#: build/C/man2/select_tut.2:448
+#: build/C/man2/select_tut.2:450
#, no-wrap
msgid "11."
msgstr "11."
#. way to sleep the process with subsecond precision by using the timeout.
#. (See further on.)
#. type: Plain text
-#: build/C/man2/select_tut.2:467
+#: build/C/man2/select_tut.2:469
msgid ""
"Since B<select>() modifies its file descriptor sets, if the call is being "
"used in a loop, then the sets must be reinitialized before each call."
"期化し直さなければならない。"
#. type: SS
-#: build/C/man2/select_tut.2:467
-#, no-wrap
-msgid "Usleep Emulation"
+#: build/C/man2/select_tut.2:469
+#, fuzzy, no-wrap
+#| msgid "Usleep Emulation"
+msgid "Usleep emulation"
msgstr "usleep エミュレーション"
#. type: Plain text
-#: build/C/man2/select_tut.2:474
+#: build/C/man2/select_tut.2:476
msgid ""
"On systems that do not have a B<usleep>(3) function, you can call B<select>"
"() with a finite timeout and no file descriptors as follows:"
"できる。 以下のようにする。"
#. type: Plain text
-#: build/C/man2/select_tut.2:480
+#: build/C/man2/select_tut.2:482
#, no-wrap
msgid ""
" struct timeval tv;\n"
" select(0, NULL, NULL, NULL, &tv);\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:483
+#: build/C/man2/select_tut.2:485
msgid "This is only guaranteed to work on UNIX systems, however."
msgstr "但し、これが動くと保証されているのは UNIX システムに限られる。"
#. type: Plain text
-#: build/C/man2/select_tut.2:488
+#: build/C/man2/select_tut.2:490
msgid ""
"On success, B<select>() returns the total number of file descriptors still "
"present in the file descriptor sets."
"ディスクリプタの総数を返す。"
#. type: Plain text
-#: build/C/man2/select_tut.2:494
+#: build/C/man2/select_tut.2:496
msgid ""
"If B<select>() timed out, then the return value will be zero. The file "
"descriptors set should be all empty (but may not be on some systems)."
"クリプタ集合はすべて空である (しかしそうならないシステムもある)。"
#. type: Plain text
-#: build/C/man2/select_tut.2:501
+#: build/C/man2/select_tut.2:503
msgid ""
"A return value of -1 indicates an error, with I<errno> being set "
"appropriately. In the case of an error, the contents of the returned sets "
"変更しない。"
#. type: Plain text
-#: build/C/man2/select_tut.2:510
+#: build/C/man2/select_tut.2:512
msgid ""
"Generally speaking, all operating systems that support sockets also support "
"B<select>(). B<select>() can be used to solve many problems in a portable "
"しようとする多くの問題が、 移植性がありかつ効率的な方法で解決できる。"
#. type: Plain text
-#: build/C/man2/select_tut.2:519
+#: build/C/man2/select_tut.2:521
msgid ""
"The B<poll>(2) system call has the same functionality as B<select>(), and "
"is somewhat more efficient when monitoring sparse file descriptor sets. It "
"利用可能であるが、以前は B<select>() より移植性の面で劣っていた。"
#. type: Plain text
-#: build/C/man2/select_tut.2:527
+#: build/C/man2/select_tut.2:529
msgid ""
"The Linux-specific B<epoll>(7) API provides an interface that is more "
"efficient than B<select>(2) and B<poll>(2) when monitoring large numbers "
"に B<select>(2) や B<poll>(2) よりも効率的なインタフェースを提供している。"
#. type: Plain text
-#: build/C/man2/select_tut.2:532
+#: build/C/man2/select_tut.2:534
msgid ""
"Here is an example that better demonstrates the true utility of B<select>"
"(). The listing below is a TCP forwarding program that forwards from one "
"TCP ポートから別のポートへ転送を行う TCP フォワードプログラムである。"
#. type: Plain text
-#: build/C/man2/select_tut.2:545
+#: build/C/man2/select_tut.2:547
#, no-wrap
msgid ""
"#include E<lt>stdlib.hE<gt>\n"
"#include E<lt>errno.hE<gt>\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:547
+#: build/C/man2/select_tut.2:549
#, no-wrap
msgid "static int forward_port;\n"
msgstr "static int forward_port;\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:550
+#: build/C/man2/select_tut.2:552
#, no-wrap
msgid ""
"#undef max\n"
"#define max(x,y) ((x) E<gt> (y) ? (x) : (y))\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:557
+#: build/C/man2/select_tut.2:559
#, no-wrap
msgid ""
"static int\n"
" int yes;\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:581
-#, no-wrap
+#: build/C/man2/select_tut.2:583
+#, fuzzy, no-wrap
+#| msgid ""
+#| " if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1) {\n"
+#| " perror(\"socket\");\n"
+#| " return -1;\n"
+#| " }\n"
+#| " yes = 1;\n"
+#| " if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR,\n"
+#| " (char *) &yes, sizeof(yes)) == -1) {\n"
+#| " perror(\"setsockopt\");\n"
+#| " close(s);\n"
+#| " return -1;\n"
+#| " }\n"
+#| " memset(&a, 0, sizeof(a));\n"
+#| " a.sin_port = htons(listen_port);\n"
+#| " a.sin_family = AF_INET;\n"
+#| " if (bind(s, (struct sockaddr *) &a, sizeof(a)) == -1) {\n"
+#| " perror(\"bind\");\n"
+#| " close(s);\n"
+#| " return -1;\n"
+#| " }\n"
+#| " printf(\"accepting connections on port %d\\en\", listen_port);\n"
+#| " listen(s, 10);\n"
+#| " return s;\n"
+#| "}\n"
msgid ""
" if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1) {\n"
" perror(\"socket\");\n"
" }\n"
" yes = 1;\n"
" if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR,\n"
-" (char *) &yes, sizeof(yes)) == -1) {\n"
+" &yes, sizeof(yes)) == -1) {\n"
" perror(\"setsockopt\");\n"
" close(s);\n"
" return -1;\n"
"}\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:587
+#: build/C/man2/select_tut.2:589
#, no-wrap
msgid ""
"static int\n"
" int s;\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:593
+#: build/C/man2/select_tut.2:595
#, no-wrap
msgid ""
" if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1) {\n"
" }\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:597
+#: build/C/man2/select_tut.2:599
#, no-wrap
msgid ""
" memset(&a, 0, sizeof(a));\n"
" a.sin_family = AF_INET;\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:603
+#: build/C/man2/select_tut.2:605
#, no-wrap
msgid ""
" if (!inet_aton(address, (struct in_addr *) &a.sin_addr.s_addr)) {\n"
" }\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:612
+#: build/C/man2/select_tut.2:614
#, no-wrap
msgid ""
" if (connect(s, (struct sockaddr *) &a, sizeof(a)) == -1) {\n"
"}\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:620
+#: build/C/man2/select_tut.2:622
#, no-wrap
msgid ""
"#define SHUT_FD1 do { \\e\n"
" } while (0)\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:628
+#: build/C/man2/select_tut.2:630
#, no-wrap
msgid ""
"#define SHUT_FD2 do { \\e\n"
" } while (0)\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:630
+#: build/C/man2/select_tut.2:632
#, no-wrap
msgid "#define BUF_SIZE 1024\n"
msgstr "#define BUF_SIZE 1024\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:639
+#: build/C/man2/select_tut.2:641
#, no-wrap
msgid ""
"int\n"
" int buf2_avail, buf2_written;\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:645
+#: build/C/man2/select_tut.2:647
#, no-wrap
msgid ""
" if (argc != 4) {\n"
" }\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:647
+#: build/C/man2/select_tut.2:649
#, no-wrap
msgid " signal(SIGPIPE, SIG_IGN);\n"
msgstr " signal(SIGPIPE, SIG_IGN);\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:649
+#: build/C/man2/select_tut.2:651
#, no-wrap
msgid " forward_port = atoi(argv[2]);\n"
msgstr " forward_port = atoi(argv[2]);\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:653
+#: build/C/man2/select_tut.2:655
#, no-wrap
msgid ""
" h = listen_socket(atoi(argv[1]));\n"
" exit(EXIT_FAILURE);\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:657
+#: build/C/man2/select_tut.2:659
#, no-wrap
msgid ""
" for (;;) {\n"
" fd_set rd, wr, er;\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:687
+#: build/C/man2/select_tut.2:689
#, no-wrap
msgid ""
" FD_ZERO(&rd);\n"
" }\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:689
+#: build/C/man2/select_tut.2:691
#, no-wrap
msgid " r = select(nfds + 1, &rd, &wr, &er, NULL);\n"
msgstr " r = select(nfds + 1, &rd, &wr, &er, NULL);\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:692
+#: build/C/man2/select_tut.2:694
#, no-wrap
msgid ""
" if (r == -1 && errno == EINTR)\n"
" continue;\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:697
+#: build/C/man2/select_tut.2:699
#, no-wrap
msgid ""
" if (r == -1) {\n"
" }\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:701
+#: build/C/man2/select_tut.2:703
#, no-wrap
msgid ""
" if (FD_ISSET(h, &rd)) {\n"
" struct sockaddr_in client_address;\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:720
+#: build/C/man2/select_tut.2:722
#, no-wrap
msgid ""
" memset(&client_address, 0, l = sizeof(client_address));\n"
" }\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:722
+#: build/C/man2/select_tut.2:724
#, no-wrap
msgid " /* NB: read oob data before normal reads */\n"
msgstr " /* NB: read oob data before normal reads */\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:726
+#: build/C/man2/select_tut.2:728
#, no-wrap
msgid ""
" if (fd1 E<gt> 0)\n"
" char c;\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:736
+#: build/C/man2/select_tut.2:738
#, no-wrap
msgid ""
" r = recv(fd1, &c, 1, MSG_OOB);\n"
" char c;\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:779
+#: build/C/man2/select_tut.2:781
#, no-wrap
msgid ""
" r = recv(fd2, &c, 1, MSG_OOB);\n"
" }\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:781
+#: build/C/man2/select_tut.2:783
#, no-wrap
msgid " /* check if write data has caught read data */\n"
msgstr " /* check if write data has caught read data */\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:786
+#: build/C/man2/select_tut.2:788
#, no-wrap
msgid ""
" if (buf1_written == buf1_avail)\n"
" buf2_written = buf2_avail = 0;\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:789
+#: build/C/man2/select_tut.2:791
#, no-wrap
msgid ""
" /* one side has closed the connection, keep\n"
" writing to the other side until empty */\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:797
+#: build/C/man2/select_tut.2:799
#, no-wrap
msgid ""
" if (fd1 E<lt> 0 && buf1_avail - buf1_written == 0)\n"
"}\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:811
+#: build/C/man2/select_tut.2:813
msgid ""
"The above program properly forwards most kinds of TCP connections including "
"OOB signal data transmitted by B<telnet> servers. It handles the tricky "
"起こってしまう。"
#. type: Plain text
-#: build/C/man2/select_tut.2:817
+#: build/C/man2/select_tut.2:819
msgid ""
"The program does not handle more than one simultaneous connection at a time, "
"although it could easily be extended to do this with a linked list of buffers"
"張するのは簡単で、バッファのリンクリストを (接続ごとにひとつずつ) 使えばよ"
"い。 現時点のものでは、新しい接続がくると古い接続は落ちてしまう。"
+#. .SH AUTHORS
+#. This man page was written by Paul Sheer.
#. type: Plain text
-#: build/C/man2/select_tut.2:833
+#: build/C/man2/select_tut.2:838
msgid ""
"B<accept>(2), B<connect>(2), B<ioctl>(2), B<poll>(2), B<read>(2), B<recv>"
"(2), B<select>(2), B<send>(2), B<sigprocmask>(2), B<write>(2), B<sigaddset>"
"(3), B<epoll>(7)"
#. type: TH
-#: build/C/man2/send.2:38
+#: build/C/man2/send.2:40
#, no-wrap
msgid "SEND"
msgstr "SEND"
#. type: TH
-#: build/C/man2/send.2:38 build/C/man2/sendmmsg.2:28
+#: build/C/man2/send.2:40
#, no-wrap
-msgid "2012-02-27"
-msgstr "2012-02-27"
+msgid "2012-04-23"
+msgstr "2012-04-23"
#. type: Plain text
-#: build/C/man2/send.2:41
+#: build/C/man2/send.2:43
msgid "send, sendto, sendmsg - send a message on a socket"
msgstr "send, sendto, sendmsg - ソケットへメッセージを送る"
#. type: Plain text
-#: build/C/man2/send.2:45
+#: build/C/man2/send.2:47
#, no-wrap
msgid ""
"B<#include E<lt>sys/types.hE<gt>>\n"
"B<#include E<lt>sys/socket.hE<gt>>\n"
#. type: Plain text
-#: build/C/man2/send.2:48
+#: build/C/man2/send.2:50
#, no-wrap
msgid "B<ssize_t send(int >I<sockfd>B<, const void *>I<buf>B<, size_t >I<len>B<, int >I<flags>B<);>\n"
msgstr "B<ssize_t send(int >I<sockfd>B<, const void *>I<buf>B<, size_t >I<len>B<, int >I<flags>B<);>\n"
#. type: Plain text
-#: build/C/man2/send.2:52
+#: build/C/man2/send.2:54
#, no-wrap
msgid ""
"B<ssize_t sendto(int >I<sockfd>B<, const void *>I<buf>B<, size_t >I<len>B<, int >I<flags>B<,>\n"
"B< const struct sockaddr *>I<dest_addr>B<, socklen_t >I<addrlen>B<);>\n"
#. type: Plain text
-#: build/C/man2/send.2:55
+#: build/C/man2/send.2:57
#, no-wrap
msgid "B<ssize_t sendmsg(int >I<sockfd>B<, const struct msghdr *>I<msg>B<, int >I<flags>B<);>\n"
msgstr "B<ssize_t sendmsg(int >I<sockfd>B<, const struct msghdr *>I<msg>B<, int >I<flags>B<);>\n"
#. type: Plain text
-#: build/C/man2/send.2:63
+#: build/C/man2/send.2:65
msgid ""
"The system calls B<send>(), B<sendto>(), and B<sendmsg>() are used to "
"transmit a message to another socket."
"メッセージを転送するのに使用される。"
#. type: Plain text
-#: build/C/man2/send.2:82
+#: build/C/man2/send.2:84
msgid ""
"The B<send>() call may be used only when the socket is in a I<connected> "
"state (so that the intended recipient is known). The only difference "
"にフラグが指定されない場合、 B<send>() は B<write>(2) と等価である。 また、"
#. type: Plain text
-#: build/C/man2/send.2:84
+#: build/C/man2/send.2:86
#, no-wrap
msgid " send(sockfd, buf, len, flags);\n"
msgstr " send(sockfd, buf, len, flags);\n"
#. type: Plain text
-#: build/C/man2/send.2:86
+#: build/C/man2/send.2:88
msgid "is equivalent to"
msgstr "は以下と等価である。"
#. type: Plain text
-#: build/C/man2/send.2:88
+#: build/C/man2/send.2:90
#, no-wrap
msgid " sendto(sockfd, buf, len, flags, NULL, 0);\n"
msgstr " sendto(sockfd, buf, len, flags, NULL, 0);\n"
#. type: Plain text
-#: build/C/man2/send.2:92
+#: build/C/man2/send.2:94
msgid "The argument I<sockfd> is the file descriptor of the sending socket."
msgstr ""
"引き数 I<sockfd> は、データを送信するパケットのファイル・ディスクリプタであ"
"る。"
#. type: Plain text
-#: build/C/man2/send.2:120
+#: build/C/man2/send.2:122
msgid ""
"If B<sendto>() is used on a connection-mode (B<SOCK_STREAM>, "
"B<SOCK_SEQPACKET>) socket, the arguments I<dest_addr> and I<addrlen> are "
"msg_namelen> で指定される。"
#. type: Plain text
-#: build/C/man2/send.2:136
+#: build/C/man2/send.2:138
msgid ""
"For B<send>() and B<sendto>(), the message is found in I<buf> and has "
"length I<len>. For B<sendmsg>(), the message is pointed to by the elements "
"(制御情報とも呼ばれる) を送信することもできる。"
#. type: Plain text
-#: build/C/man2/send.2:141
+#: build/C/man2/send.2:143
msgid ""
"If the message is too long to pass atomically through the underlying "
"protocol, the error B<EMSGSIZE> is returned, and the message is not "
"ラーが返され、そのメッセージは転送されない。"
#. type: Plain text
-#: build/C/man2/send.2:145
+#: build/C/man2/send.2:147
msgid ""
"No indication of failure to deliver is implicit in a B<send>(). Locally "
"detected errors are indicated by a return value of -1."
"出された場合は、返り値 -1 として通知される。"
#. type: Plain text
-#: build/C/man2/send.2:158
+#: build/C/man2/send.2:160
msgid ""
"When the message does not fit into the send buffer of the socket, B<send>() "
"normally blocks, unless the socket has been placed in nonblocking I/O mode. "
#. FIXME ? document MSG_PROXY (which went away in 2.3.15)
#. type: Plain text
-#: build/C/man2/send.2:164
+#: build/C/man2/send.2:166
msgid ""
"The I<flags> argument is the bitwise OR of zero or more of the following "
"flags."
"のを指定する。"
#. type: TP
-#: build/C/man2/send.2:164
+#: build/C/man2/send.2:166
#, no-wrap
msgid "B<MSG_CONFIRM> (Since Linux 2.3.15)"
msgstr "B<MSG_CONFIRM> (Linux 2.3.15 以降)"
#. type: Plain text
-#: build/C/man2/send.2:178
+#: build/C/man2/send.2:180
msgid ""
"Tell the link layer that forward progress happened: you got a successful "
"reply from the other side. If the link layer doesn't get this it will "
"されている。 詳しくは B<arp>(7) 参照のこと。"
#. type: TP
-#: build/C/man2/send.2:178
+#: build/C/man2/send.2:180
#, no-wrap
msgid "B<MSG_DONTROUTE>"
msgstr "B<MSG_DONTROUTE>"
#. type: Plain text
-#: build/C/man2/send.2:186
+#: build/C/man2/send.2:188
msgid ""
"Don't use a gateway to send out the packet, only send to hosts on directly "
"connected networks. This is usually used only by diagnostic or routing "
"ファミリー に対してのみ定義されている。パケットソケットには定義されていない。"
#. type: Plain text
-#: build/C/man2/send.2:197
+#: build/C/man2/send.2:199
msgid ""
"Enables nonblocking operation; if the operation would block, B<EAGAIN> or "
"B<EWOULDBLOCK> is returned (this can also be enabled using the B<O_NONBLOCK> "
"B<O_NONBLOCK> フラグを指定することによっても有効にできる)。"
#. type: TP
-#: build/C/man2/send.2:197
+#: build/C/man2/send.2:199
#, no-wrap
msgid "B<MSG_EOR> (since Linux 2.2)"
msgstr "B<MSG_EOR> (Linux 2.2 以降)"
#. type: Plain text
-#: build/C/man2/send.2:201
+#: build/C/man2/send.2:203
msgid ""
"Terminates a record (when this notion is supported, as for sockets of type "
"B<SOCK_SEQPACKET>)."
"ケット種別のときに有効)。"
#. type: TP
-#: build/C/man2/send.2:201
+#: build/C/man2/send.2:203
#, no-wrap
msgid "B<MSG_MORE> (Since Linux 2.4.4)"
msgstr "B<MSG_MORE> (Linux 2.4.4 以降)"
#. type: Plain text
-#: build/C/man2/send.2:210
+#: build/C/man2/send.2:212
msgid ""
"The caller has more data to send. This flag is used with TCP sockets to "
"obtain the same effect as the B<TCP_CORK> socket option (see B<tcp>(7)), "
"機能を有効にできる点である。"
#. type: Plain text
-#: build/C/man2/send.2:219
+#: build/C/man2/send.2:221
msgid ""
"Since Linux 2.6, this flag is also supported for UDP sockets, and informs "
"the kernel to package all of the data sent in calls with this flag set into "
"ソケットオプション B<UDP_CORK> も参照)。"
#. type: TP
-#: build/C/man2/send.2:219
+#: build/C/man2/send.2:221
#, no-wrap
msgid "B<MSG_NOSIGNAL> (since Linux 2.2)"
msgstr "B<MSG_NOSIGNAL> (Linux 2.2 以降)"
#. type: Plain text
-#: build/C/man2/send.2:228
+#: build/C/man2/send.2:230
msgid ""
"Requests not to send B<SIGPIPE> on errors on stream oriented sockets when "
"the other end breaks the connection. The B<EPIPE> error is still returned."
"B<SIGPIPE> を送信しないように要求する。この場合でも B<EPIPE> は返される。"
#. type: Plain text
-#: build/C/man2/send.2:237
+#: build/C/man2/send.2:239
msgid ""
"Sends I<out-of-band> data on sockets that support this notion (e.g., of type "
"B<SOCK_STREAM>); the underlying protocol must also support I<out-of-band> "
"をサポートしている必要がある。"
#. type: Plain text
-#: build/C/man2/send.2:244
+#: build/C/man2/send.2:246
msgid ""
"The definition of the I<msghdr> structure follows. See B<recv>(2) and "
"below for an exact description of its fields."
#. msg_control* fields.
#. The flags returned in msg_flags.
#. type: Plain text
-#: build/C/man2/send.2:273
+#: build/C/man2/send.2:275
msgid ""
"You may send control information using the I<msg_control> and "
"I<msg_controllen> members. The maximum control buffer length the kernel can "
"proc/sys/net/core/optmem_max> の値に制限されている。 B<socket>(7) を参照。"
#. type: Plain text
-#: build/C/man2/send.2:278
+#: build/C/man2/send.2:280
msgid ""
"On success, these calls return the number of characters sent. On error, -1 "
"is returned, and I<errno> is set appropriately."
"合、 -1 を返し、 I<errno> を適切に設定にする。"
#. type: Plain text
-#: build/C/man2/send.2:283
+#: build/C/man2/send.2:285
msgid ""
"These are some standard errors generated by the socket layer. Additional "
"errors may be generated and returned from the underlying protocol modules; "
"れぞれのマニュアルを参照すること。"
#. type: Plain text
-#: build/C/man2/send.2:291
+#: build/C/man2/send.2:293
msgid ""
"(For UNIX domain sockets, which are identified by pathname) Write "
"permission is denied on the destination socket file, or search permission is "
"denied for one of the directories the path prefix. (See B<path_resolution>"
"(7).)"
msgstr ""
-"(UNIX ドメインソケットはパス名で識別される。) ソケット・ファイルへの書き込み"
-"許可がなかったか、パス名へ 到達するまでのディレクトリのいずれかに対する検索許"
-"可がなかった。 (B<path_resolution>(7) も参照のこと)"
+"(UNIX ドメインソケットの場合; パス名で識別される。)\n"
+"\n"
+"ソケット・ファイルへの書き込み許可がなかったか、パス名へ到達するまでの\n"
+"ディレクトリのいずれかに対する検索許可がなかった。\n"
+"(B<path_resolution>(7) も参照のこと)"
+
+#. type: Plain text
+#: build/C/man2/send.2:296
+msgid ""
+"(For UDP sockets) An attempt was made to send to a network/broadcast address "
+"as though it was a unicast address."
+msgstr ""
+"(UDP ソケットの場合) ユニキャストアドレスであるかのように、\n"
+"ネットワークアドレスやブロードキャストアドレスへの送信が試みられた。"
#. Actually EAGAIN on Linux
#. type: Plain text
-#: build/C/man2/send.2:299
+#: build/C/man2/send.2:304
msgid ""
"The socket is marked nonblocking and the requested operation would block. "
"POSIX.1-2001 allows either error to be returned for this case, and does not "
"両方の可能性を 確認すべきである。"
#. type: Plain text
-#: build/C/man2/send.2:302
+#: build/C/man2/send.2:307
msgid "An invalid descriptor was specified."
msgstr "無効なディスクリプターが指定された。"
#. type: TP
-#: build/C/man2/send.2:302
+#: build/C/man2/send.2:307
#, no-wrap
msgid "B<ECONNRESET>"
msgstr "B<ECONNRESET>"
#. type: Plain text
-#: build/C/man2/send.2:305
+#: build/C/man2/send.2:310
msgid "Connection reset by peer."
msgstr "接続が接続相手によりリセットされた。"
#. type: TP
-#: build/C/man2/send.2:305
+#: build/C/man2/send.2:310
#, no-wrap
msgid "B<EDESTADDRREQ>"
msgstr "B<EDESTADDRREQ>"
#. type: Plain text
-#: build/C/man2/send.2:308
+#: build/C/man2/send.2:313
msgid "The socket is not connection-mode, and no peer address is set."
msgstr ""
"ソケットが接続型 (connection-mode) ではなく、 かつ送信先のアドレスが設定され"
"ていない。"
#. type: Plain text
-#: build/C/man2/send.2:311
+#: build/C/man2/send.2:316
msgid "An invalid user space address was specified for an argument."
msgstr "ユーザー空間として不正なアドレスがパラメーターとして指定された。"
#. type: Plain text
-#: build/C/man2/send.2:315
+#: build/C/man2/send.2:320
msgid "A signal occurred before any data was transmitted; see B<signal>(7)."
msgstr "データが送信される前に、シグナルが発生した。 B<signal>(7) 参照。"
#. type: Plain text
-#: build/C/man2/send.2:324
+#: build/C/man2/send.2:329
msgid ""
"The connection-mode socket was connected already but a recipient was "
"specified. (Now either this error is returned, or the recipient "
"いずれかとなる)"
#. type: TP
-#: build/C/man2/send.2:324
+#: build/C/man2/send.2:329
#, no-wrap
msgid "B<EMSGSIZE>"
msgstr "B<EMSGSIZE>"
#. (e.g., SOCK_DGRAM )
#. type: Plain text
-#: build/C/man2/send.2:330
+#: build/C/man2/send.2:335
msgid ""
"The socket type requires that message be sent atomically, and the size of "
"the message to be sent made this impossible."
"るが、 メッセージが大き過ぎるため送信することができない。"
#. type: Plain text
-#: build/C/man2/send.2:338
+#: build/C/man2/send.2:343
msgid ""
"The output queue for a network interface was full. This generally indicates "
"that the interface has stopped sending, but may be caused by transient "
"フローした場合にはパケットは黙って捨てられる)"
#. type: Plain text
-#: build/C/man2/send.2:341
+#: build/C/man2/send.2:346
msgid "No memory available."
msgstr "メモリが足りない。"
#. type: Plain text
-#: build/C/man2/send.2:344
+#: build/C/man2/send.2:349
msgid "The socket is not connected, and no target has been given."
msgstr "ソケットが接続されておらず、接続先も指定されていない。"
#. type: Plain text
-#: build/C/man2/send.2:354
+#: build/C/man2/send.2:359
msgid "Some bit in the I<flags> argument is inappropriate for the socket type."
msgstr ""
"引き数 I<flags> のいくつかのビットが、そのソケット種別では不適切なものであ"
"る。"
#. type: TP
-#: build/C/man2/send.2:354
+#: build/C/man2/send.2:359
#, no-wrap
msgid "B<EPIPE>"
msgstr "B<EPIPE>"
#. type: Plain text
-#: build/C/man2/send.2:363
+#: build/C/man2/send.2:368
msgid ""
"The local end has been shut down on a connection oriented socket. In this "
"case the process will also receive a B<SIGPIPE> unless B<MSG_NOSIGNAL> is "
"が設定されていなければ、プロセスには B<SIGPIPE> も同時に送られる。"
#. type: Plain text
-#: build/C/man2/send.2:366
+#: build/C/man2/send.2:371
msgid "4.4BSD, SVr4, POSIX.1-2001. These function calls appeared in 4.2BSD."
msgstr ""
"4.4BSD, SVr4, POSIX.1-2001. (これらの関数コールは 4.2BSD で最初に登場した)。"
#. type: Plain text
-#: build/C/man2/send.2:377
+#: build/C/man2/send.2:382
msgid ""
"POSIX.1-2001 only describes the B<MSG_OOB> and B<MSG_EOR> flags. "
"POSIX.1-2008 adds a specification of B<MSG_NOSIGNAL>. The B<MSG_CONFIRM> "
"ラグは Linux での拡張である。"
#. type: Plain text
-#: build/C/man2/send.2:390
+#: build/C/man2/send.2:395
msgid ""
"The prototypes given above follow the Single UNIX Specification, as glibc2 "
"also does; the I<flags> argument was I<int> in 4.x BSD, but I<unsigned int> "
"libc5 では I<int> である。 B<accept>(2) も参照すること。"
#. type: Plain text
-#: build/C/man2/send.2:409
+#: build/C/man2/send.2:414
+#, fuzzy
+#| msgid ""
+#| "See B<sendmmsg(2)> for information about a Linux-specific system call "
+#| "that can be used to transmit multiple datagrams in a single call."
msgid ""
-"See B<sendmmsg(2)> for information about a Linux-specific system call that "
+"See B<sendmmsg>(2) for information about a Linux-specific system call that "
"can be used to transmit multiple datagrams in a single call."
msgstr ""
"B<sendmmsg>(2) には、一度の呼び出しでの複数のデータグラムの送信に使用でき"
"Linux 固有の システムコールに関する情報が書かれている。"
#. type: Plain text
-#: build/C/man2/send.2:414
+#: build/C/man2/send.2:419
msgid "Linux may return B<EPIPE> instead of B<ENOTCONN>."
msgstr "Linux は B<ENOTCONN> を返す状況で B<EPIPE> を返すことがある。"
#. type: Plain text
-#: build/C/man2/send.2:419
+#: build/C/man2/send.2:424
msgid "An example of the use of B<sendto>() is shown in B<getaddrinfo>(3)."
msgstr "B<sendto>() の利用例が B<getaddrinfo>(3) に記載されている。"
#. type: Plain text
-#: build/C/man2/send.2:433
+#: build/C/man2/send.2:439
msgid ""
"B<fcntl>(2), B<getsockopt>(2), B<recv>(2), B<select>(2), B<sendfile>(2), "
"B<sendmmsg>(2), B<shutdown>(2), B<socket>(2), B<write>(2), B<cmsg>(3), B<ip>"
msgid "SENDMMSG"
msgstr "SENDMMSG"
+#. type: TH
+#: build/C/man2/sendmmsg.2:28
+#, fuzzy, no-wrap
+#| msgid "2012-02-27"
+msgid "2012-12-16"
+msgstr "2012-02-27"
+
#. type: Plain text
#: build/C/man2/sendmmsg.2:31
msgid "sendmmsg - send multiple messages on a socket"
msgstr ""
#. type: Plain text
-#: build/C/man2/sendmmsg.2:172
+#: build/C/man2/sendmmsg.2:177
+msgid ""
+"The example below uses B<sendmmsg>() to send I<onetwo> and I<three> in two "
+"distinct UDP datagrams using one system call. The contents of the first "
+"datagram originates from a pair of buffers."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/sendmmsg.2:186
+#, fuzzy, no-wrap
+#| msgid ""
+#| "#include E<lt>stdio.hE<gt>\n"
+#| "#include E<lt>stdlib.hE<gt>\n"
+#| "#include E<lt>sys/time.hE<gt>\n"
+#| "#include E<lt>sys/types.hE<gt>\n"
+#| "#include E<lt>unistd.hE<gt>\n"
+msgid ""
+"#define _GNU_SOURCE\n"
+"#include E<lt>netinet/ip.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
+"#include E<lt>sys/types.hE<gt>\n"
+"#include E<lt>sys/socket.hE<gt>\n"
+msgstr ""
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>sys/time.hE<gt>\n"
+"#include E<lt>sys/types.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+
+#. type: Plain text
+#: build/C/man2/sendmmsg.2:195
+#, fuzzy, no-wrap
+#| msgid ""
+#| "int\n"
+#| "main(void)\n"
+#| "{\n"
+#| " fd_set rfds;\n"
+#| " struct timeval tv;\n"
+#| " int retval;\n"
+msgid ""
+"int\n"
+"main(void)\n"
+"{\n"
+" int sockfd;\n"
+" struct sockaddr_in sa;\n"
+" struct mmsghdr msg[2];\n"
+" struct iovec msg1[2], msg2;\n"
+" int retval;\n"
+msgstr ""
+"int\n"
+"main(void)\n"
+"{\n"
+" fd_set rfds;\n"
+" struct timeval tv;\n"
+" int retval;\n"
+
+#. type: Plain text
+#: build/C/man2/sendmmsg.2:209
+#, fuzzy, no-wrap
+#| msgid ""
+#| " sa.sa_flags = 0;\n"
+#| " sa.sa_handler = child_sig_handler;\n"
+#| " sigemptyset(&sa.sa_mask);\n"
+#| " if (sigaction(SIGCHLD, &sa, NULL) == -1) {\n"
+#| " perror(\"sigaction\");\n"
+#| " exit(EXIT_FAILURE);\n"
+#| " }\n"
+msgid ""
+" sa.sin_family = AF_INET;\n"
+" sa.sin_addr.s_addr = htonl(INADDR_LOOPBACK);\n"
+" sa.sin_port = htons(1234);\n"
+" if (connect(sockfd, (struct sockaddr *) &sa, sizeof(sa)) == -1) {\n"
+" perror(\"connect()\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+" sa.sa_flags = 0;\n"
+" sa.sa_handler = child_sig_handler;\n"
+" sigemptyset(&sa.sa_mask);\n"
+" if (sigaction(SIGCHLD, &sa, NULL) == -1) {\n"
+" perror(\"sigaction\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+
+#. type: Plain text
+#: build/C/man2/sendmmsg.2:215
+#, no-wrap
+msgid ""
+" memset(msg1, 0, sizeof(msg1));\n"
+" msg1[0].iov_base = \"one\";\n"
+" msg1[0].iov_len = 3;\n"
+" msg1[1].iov_base = \"two\";\n"
+" msg1[1].iov_len = 3;\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/sendmmsg.2:219
+#, fuzzy, no-wrap
+#| msgid ""
+#| " memset(&a, 0, sizeof(a));\n"
+#| " a.sin_port = htons(connect_port);\n"
+#| " a.sin_family = AF_INET;\n"
+msgid ""
+" memset(&msg2, 0, sizeof(msg2));\n"
+" msg2.iov_base = \"three\";\n"
+" msg2.iov_len = 5;\n"
+msgstr ""
+" memset(&a, 0, sizeof(a));\n"
+" a.sin_port = htons(connect_port);\n"
+" a.sin_family = AF_INET;\n"
+
+#. type: Plain text
+#: build/C/man2/sendmmsg.2:223
+#, no-wrap
+msgid ""
+" memset(msg, 0, sizeof(msg));\n"
+" msg[0].msg_hdr.msg_iov = msg1;\n"
+" msg[0].msg_hdr.msg_iovlen = 2;\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/sendmmsg.2:226
+#, no-wrap
+msgid ""
+" msg[1].msg_hdr.msg_iov = &msg2;\n"
+" msg[1].msg_hdr.msg_iovlen = 1;\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/sendmmsg.2:232
+#, no-wrap
+msgid ""
+" retval = sendmmsg(sockfd, msg, 2, 0);\n"
+" if (retval == -1)\n"
+" perror(\"sendmmsg()\");\n"
+" else\n"
+" printf(\"%d messages sent\\en\", retval);\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/sendmmsg.2:235
+#, fuzzy, no-wrap
+#| msgid ""
+#| " exit(EXIT_SUCCESS);\n"
+#| "}\n"
+msgid ""
+" exit(0);\n"
+"}\n"
+msgstr ""
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+
+#. type: Plain text
+#: build/C/man2/sendmmsg.2:241
msgid "B<recvmmsg>(2), B<sendmsg>(2), B<socket>(2), B<socket>(7)"
msgstr "B<recvmmsg>(2), B<sendmsg>(2), B<socket>(2), B<socket>(7)"
#. type: TH
-#: build/C/man3/sockatmark.3:23
+#: build/C/man3/sockatmark.3:25
#, no-wrap
msgid "SOCKATMARK"
msgstr "SOCKATMARK"
#. type: Plain text
-#: build/C/man3/sockatmark.3:26
+#: build/C/man3/sockatmark.3:28
msgid "sockatmark - determine whether socket is at out-of-band mark"
msgstr ""
"sockatmark - どのソケットに帯域外 (out-of-band) マークが付けられているかを調"
"べる"
#. type: Plain text
-#: build/C/man3/sockatmark.3:28 build/C/man2/socket.2:48
-#: build/C/man7/socket.7:31 build/C/man2/socketpair.2:47
+#: build/C/man3/sockatmark.3:30 build/C/man2/socket.2:50
+#: build/C/man7/socket.7:53 build/C/man2/socketpair.2:49
msgid "B<#include E<lt>sys/socket.hE<gt>>"
msgstr "B<#include E<lt>sys/socket.hE<gt>>"
#. type: Plain text
-#: build/C/man3/sockatmark.3:30
+#: build/C/man3/sockatmark.3:32
msgid "B<int sockatmark(int >I<sockfd>B<);>"
msgstr "B<int sockatmark(int >I<sockfd>B<);>"
#. type: Plain text
-#: build/C/man3/sockatmark.3:39
+#: build/C/man3/sockatmark.3:41
msgid ""
"B<sockatmark>(): _POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>="
"\\ 600"
"\\ 600"
#. type: Plain text
-#: build/C/man3/sockatmark.3:49
+#: build/C/man3/sockatmark.3:51
msgid ""
"B<sockatmark>() returns a value indicating whether or not the socket "
"referred to by the file descriptor I<sockfd> is at the out-of-band mark. If "
"この関数は帯域外マークを削除しない。"
#. type: Plain text
-#: build/C/man3/sockatmark.3:54
+#: build/C/man3/sockatmark.3:56
msgid ""
"A successful call to B<sockatmark>() returns 1 if the socket is at the out-"
"of-band mark, or 0 if it is not. On error, -1 is returned and I<errno> is "
"れ、エラーを表す I<errno> が設定される。"
#. type: Plain text
-#: build/C/man3/sockatmark.3:59
+#: build/C/man3/sockatmark.3:61
msgid "I<sockfd> is not a valid file descriptor."
msgstr "I<sockfd> が有効なファイルディスクリプタでない。"
#. POSIX.1 says ENOTTY for this case
#. type: Plain text
-#: build/C/man3/sockatmark.3:66
+#: build/C/man3/sockatmark.3:68
msgid ""
"I<sockfd> is not a file descriptor to which B<sockatmark>() can be applied."
msgstr ""
"I<sockfd> は B<sockatmark>() が適用できないファイルディスクリプタである。"
#. type: Plain text
-#: build/C/man3/sockatmark.3:69
+#: build/C/man3/sockatmark.3:71
msgid "B<sockatmark>() was added to glibc in version 2.2.4."
msgstr "B<sockatmark>() は glibc バージョン 2.2.4 で追加された。"
#. type: Plain text
-#: build/C/man3/sockatmark.3:71
+#: build/C/man3/sockatmark.3:73
msgid "POSIX.1-2001."
msgstr "POSIX.1-2001."
#. type: Plain text
-#: build/C/man3/sockatmark.3:78
+#: build/C/man3/sockatmark.3:80
msgid ""
"If B<sockatmark>() returns 1, then the out-of-band data can be read using "
"the B<MSG_OOB> flag of B<recv>(2)."
"B<recv>(2) で読み込むことができる。"
#. type: Plain text
-#: build/C/man3/sockatmark.3:80
+#: build/C/man3/sockatmark.3:82
msgid "Out-of-band data is only supported on some stream socket protocols."
msgstr ""
"帯域外データは、いくつかのストリームソケットプロトコルでしか サポートされてい"
"ない。"
#. type: Plain text
-#: build/C/man3/sockatmark.3:85
+#: build/C/man3/sockatmark.3:87
msgid ""
"B<sockatmark>() can safely be called from a handler for the B<SIGURG> "
"signal."
"る。"
#. type: Plain text
-#: build/C/man3/sockatmark.3:91
+#: build/C/man3/sockatmark.3:93
msgid ""
"B<sockatmark>() is implemented using the B<SIOCATMARK> B<ioctl>(2) "
"operation."
"B<sockatmark>() は B<SIOCATMARK> B<ioctl>(2) 操作を使って実装されている。"
#. type: Plain text
-#: build/C/man3/sockatmark.3:95
+#: build/C/man3/sockatmark.3:97
msgid "Prior to glibc 2.4, B<sockatmark>() did not work."
msgstr "glibc 2.4 より前のバージョンでは、 B<sockatmark>() は動作しない。"
#. type: Plain text
-#: build/C/man3/sockatmark.3:100
+#: build/C/man3/sockatmark.3:102
msgid ""
"The following code can be used after receipt of a B<SIGURG> signal to read "
"(and discard) all data up to the mark, and then read the byte of data at the "
"読み込んで (破棄し)、 マークされたデータのバイトを読み込むのに使用できる。"
#. type: Plain text
-#: build/C/man3/sockatmark.3:105
+#: build/C/man3/sockatmark.3:107
#, no-wrap
msgid ""
" char buf[BUF_LEN];\n"
" int atmark, s;\n"
#. type: Plain text
-#: build/C/man3/sockatmark.3:112
+#: build/C/man3/sockatmark.3:114
#, no-wrap
msgid ""
" for (;;) {\n"
" }\n"
#. type: Plain text
-#: build/C/man3/sockatmark.3:115
+#: build/C/man3/sockatmark.3:117
#, no-wrap
msgid ""
" if (atmark)\n"
" break;\n"
#. type: Plain text
-#: build/C/man3/sockatmark.3:122
+#: build/C/man3/sockatmark.3:124
#, no-wrap
msgid ""
" s = read(sockfd, buf, BUF_LEN) E<lt>= 0);\n"
" }\n"
#. type: Plain text
-#: build/C/man3/sockatmark.3:129
+#: build/C/man3/sockatmark.3:131
#, no-wrap
msgid ""
" if (atmark == 1) {\n"
" }\n"
#. type: Plain text
-#: build/C/man3/sockatmark.3:134
+#: build/C/man3/sockatmark.3:137
msgid "B<fcntl>(2), B<recv>(2), B<send>(2), B<tcp>(7)"
msgstr "B<fcntl>(2), B<recv>(2), B<send>(2), B<tcp>(7)"
#. type: TH
-#: build/C/man2/socket.2:41 build/C/man7/socket.7:26
+#: build/C/man2/socket.2:43 build/C/man7/socket.7:48
#, no-wrap
msgid "SOCKET"
msgstr "SOCKET"
#. type: TH
-#: build/C/man2/socket.2:41
+#: build/C/man2/socket.2:43
#, no-wrap
msgid "2009-01-19"
msgstr "2009-01-19"
#. type: Plain text
-#: build/C/man2/socket.2:44
+#: build/C/man2/socket.2:46
msgid "socket - create an endpoint for communication"
msgstr "socket - 通信のための端点(endpoint)を作成する"
#. type: Plain text
-#: build/C/man2/socket.2:46 build/C/man2/socketpair.2:45
+#: build/C/man2/socket.2:48 build/C/man2/socketpair.2:47
msgid "B<#include E<lt>sys/types.hE<gt>> /* See NOTES */"
msgstr "B<#include E<lt>sys/types.hE<gt>> /* 「注意」参照 */"
#. type: Plain text
-#: build/C/man2/socket.2:50
+#: build/C/man2/socket.2:52
msgid "B<int socket(int >I<domain>B<, int >I<type>B<, int >I<protocol>B<);>"
msgstr "B<int socket(int >I<domain>B<, int >I<type>B<, int >I<protocol>B<);>"
#. type: Plain text
-#: build/C/man2/socket.2:53
+#: build/C/man2/socket.2:55
msgid ""
"B<socket>() creates an endpoint for communication and returns a descriptor."
msgstr ""
"(descriptor)を返す。"
#. type: Plain text
-#: build/C/man2/socket.2:61
+#: build/C/man2/socket.2:63
msgid ""
"The I<domain> argument specifies a communication domain; this selects the "
"protocol family which will be used for communication. These families are "
"下の通り。"
#. type: tbl table
-#: build/C/man2/socket.2:64
+#: build/C/man2/socket.2:66
#, no-wrap
msgid "Name:Purpose:Man page\n"
msgstr "名前:目的:マニュアル\n"
#. type: tbl table
-#: build/C/man2/socket.2:65 build/C/man2/socket.2:72 build/C/man2/socket.2:77
-#: build/C/man2/socket.2:82 build/C/man2/socket.2:85 build/C/man2/socket.2:92
-#: build/C/man2/socket.2:97 build/C/man2/socket.2:102
-#: build/C/man2/socket.2:105 build/C/man2/socket.2:110
+#: build/C/man2/socket.2:67 build/C/man2/socket.2:74 build/C/man2/socket.2:79
+#: build/C/man2/socket.2:84 build/C/man2/socket.2:87 build/C/man2/socket.2:94
+#: build/C/man2/socket.2:99 build/C/man2/socket.2:104
+#: build/C/man2/socket.2:107 build/C/man2/socket.2:112
#, no-wrap
msgid "T{\n"
msgstr "T{\n"
#. type: tbl table
-#: build/C/man2/socket.2:66
+#: build/C/man2/socket.2:68
#, no-wrap
msgid "B<AF_UNIX>, B<AF_LOCAL>\n"
msgstr "B<AF_UNIX>, B<AF_LOCAL>\n"
#. type: tbl table
-#: build/C/man2/socket.2:67 build/C/man2/socket.2:69 build/C/man2/socket.2:87
-#: build/C/man2/socket.2:89 build/C/man2/socket.2:99 build/C/man2/socket.2:112
-#: build/C/man2/socket.2:114 build/C/man7/socket.7:162
+#: build/C/man2/socket.2:69 build/C/man2/socket.2:71 build/C/man2/socket.2:89
+#: build/C/man2/socket.2:91 build/C/man2/socket.2:101
+#: build/C/man2/socket.2:114 build/C/man2/socket.2:116
+#: build/C/man7/socket.7:184
#, no-wrap
msgid "T}:T{\n"
msgstr "T}:T{\n"
#. type: tbl table
-#: build/C/man2/socket.2:68
+#: build/C/man2/socket.2:70
#, no-wrap
msgid "Local communication\n"
msgstr "ローカル通信\n"
#. type: tbl table
-#: build/C/man2/socket.2:70
+#: build/C/man2/socket.2:72
#, no-wrap
msgid "B<unix>(7)\n"
msgstr "B<unix>(7)\n"
#. type: tbl table
-#: build/C/man2/socket.2:71 build/C/man2/socket.2:76 build/C/man2/socket.2:81
-#: build/C/man2/socket.2:91 build/C/man2/socket.2:96 build/C/man2/socket.2:109
-#: build/C/man2/socket.2:116 build/C/man7/socket.7:141
-#: build/C/man7/socket.7:145 build/C/man7/socket.7:148
-#: build/C/man7/socket.7:154 build/C/man7/socket.7:157
-#: build/C/man7/socket.7:166 build/C/man7/socket.7:173
+#: build/C/man2/socket.2:73 build/C/man2/socket.2:78 build/C/man2/socket.2:83
+#: build/C/man2/socket.2:93 build/C/man2/socket.2:98 build/C/man2/socket.2:111
+#: build/C/man2/socket.2:118 build/C/man7/socket.7:163
+#: build/C/man7/socket.7:167 build/C/man7/socket.7:170
+#: build/C/man7/socket.7:176 build/C/man7/socket.7:179
+#: build/C/man7/socket.7:188 build/C/man7/socket.7:195
#, no-wrap
msgid "T}\n"
msgstr "T}\n"
#. type: tbl table
-#: build/C/man2/socket.2:73
+#: build/C/man2/socket.2:75
#, no-wrap
msgid "B<AF_INET>\n"
msgstr "B<AF_INET>\n"
#. type: tbl table
-#: build/C/man2/socket.2:74
+#: build/C/man2/socket.2:76
#, no-wrap
msgid "T}:IPv4 Internet protocols:T{\n"
msgstr "T}:IPv4 インターネット・プロトコル:T{\n"
#. type: tbl table
-#: build/C/man2/socket.2:75
+#: build/C/man2/socket.2:77
#, no-wrap
msgid "B<ip>(7)\n"
msgstr "B<ip>(7)\n"
#. type: tbl table
-#: build/C/man2/socket.2:78
+#: build/C/man2/socket.2:80
#, no-wrap
msgid "B<AF_INET6>\n"
msgstr "B<AF_INET6>\n"
#. type: tbl table
-#: build/C/man2/socket.2:79
+#: build/C/man2/socket.2:81
#, no-wrap
msgid "T}:IPv6 Internet protocols:T{\n"
msgstr "T}:IPv6 インターネット・プロトコル:T{\n"
#. type: tbl table
-#: build/C/man2/socket.2:80
+#: build/C/man2/socket.2:82
#, no-wrap
msgid "B<ipv6>(7)\n"
msgstr "B<ipv6>(7)\n"
#. type: tbl table
-#: build/C/man2/socket.2:83
+#: build/C/man2/socket.2:85
#, no-wrap
msgid "B<AF_IPX>\n"
msgstr "B<AF_IPX>\n"
#. type: tbl table
-#: build/C/man2/socket.2:84
+#: build/C/man2/socket.2:86
#, no-wrap
msgid "T}:IPX - Novell protocols:\n"
msgstr "T}:IPX - Novell プロトコル:\n"
#. type: tbl table
-#: build/C/man2/socket.2:86
+#: build/C/man2/socket.2:88
#, no-wrap
msgid "B<AF_NETLINK>\n"
msgstr "B<AF_NETLINK>\n"
#. type: tbl table
-#: build/C/man2/socket.2:88
+#: build/C/man2/socket.2:90
#, no-wrap
msgid "Kernel user interface device\n"
msgstr "カーネル・ユーザ・デバイス\n"
#. type: tbl table
-#: build/C/man2/socket.2:90
+#: build/C/man2/socket.2:92
#, no-wrap
msgid "B<netlink>(7)\n"
msgstr "B<netlink>(7)\n"
#. type: tbl table
-#: build/C/man2/socket.2:93
+#: build/C/man2/socket.2:95
#, no-wrap
msgid "B<AF_X25>\n"
msgstr "B<AF_X25>\n"
#. type: tbl table
-#: build/C/man2/socket.2:94
+#: build/C/man2/socket.2:96
#, no-wrap
msgid "T}:ITU-T X.25 / ISO-8208 protocol:T{\n"
msgstr "T}:ITU-T X.25 / ISO-8208 プロトコル:T{\n"
#. type: tbl table
-#: build/C/man2/socket.2:95
+#: build/C/man2/socket.2:97
#, no-wrap
msgid "B<x25>(7)\n"
msgstr "B<x25>(7)\n"
#. type: tbl table
-#: build/C/man2/socket.2:98
+#: build/C/man2/socket.2:100
#, no-wrap
msgid "B<AF_AX25>\n"
msgstr "B<AF_AX25>\n"
#. type: tbl table
-#: build/C/man2/socket.2:100
+#: build/C/man2/socket.2:102
#, no-wrap
msgid "Amateur radio AX.25 protocol\n"
msgstr "アマチュア無線 AX.25 プロトコル\n"
#. type: tbl table
-#: build/C/man2/socket.2:101
+#: build/C/man2/socket.2:103
#, no-wrap
msgid "T}:\n"
msgstr "T}:\n"
#. type: tbl table
-#: build/C/man2/socket.2:103
+#: build/C/man2/socket.2:105
#, no-wrap
msgid "B<AF_ATMPVC>\n"
msgstr "B<AF_ATMPVC>\n"
#. type: tbl table
-#: build/C/man2/socket.2:104
+#: build/C/man2/socket.2:106
#, no-wrap
msgid "T}:Access to raw ATM PVCs:\n"
msgstr "T}:生の ATM PVC にアクセスする:\n"
#. type: tbl table
-#: build/C/man2/socket.2:106
+#: build/C/man2/socket.2:108
#, no-wrap
msgid "B<AF_APPLETALK>\n"
msgstr "B<AF_APPLETALK>\n"
#. type: tbl table
-#: build/C/man2/socket.2:107
+#: build/C/man2/socket.2:109
#, no-wrap
msgid "T}:Appletalk:T{\n"
msgstr "T}:アップルトーク:T{\n"
#. type: tbl table
-#: build/C/man2/socket.2:108
+#: build/C/man2/socket.2:110
#, no-wrap
msgid "B<ddp>(7)\n"
msgstr "B<ddp>(7)\n"
#. type: tbl table
-#: build/C/man2/socket.2:111
+#: build/C/man2/socket.2:113
#, no-wrap
msgid "B<AF_PACKET>\n"
msgstr "B<AF_PACKET>\n"
#. type: tbl table
-#: build/C/man2/socket.2:113
+#: build/C/man2/socket.2:115
#, no-wrap
msgid "Low level packet interface\n"
msgstr "低レベルのパケットインターフェース\n"
#. type: tbl table
-#: build/C/man2/socket.2:115
+#: build/C/man2/socket.2:117
#, no-wrap
msgid "B<packet>(7)\n"
msgstr "B<packet>(7)\n"
#. type: Plain text
-#: build/C/man2/socket.2:124
+#: build/C/man2/socket.2:126
msgid ""
"The socket has the indicated I<type>, which specifies the communication "
"semantics. Currently defined types are:"
"る。 定義されている型は現在以下の通り。"
#. type: TP
-#: build/C/man2/socket.2:124
+#: build/C/man2/socket.2:126
#, no-wrap
msgid "B<SOCK_STREAM>"
msgstr "B<SOCK_STREAM>"
#. type: Plain text
-#: build/C/man2/socket.2:128
+#: build/C/man2/socket.2:130
msgid ""
"Provides sequenced, reliable, two-way, connection-based byte streams. An "
"out-of-band data transmission mechanism may be supported."
"提供する。 帯域外(out-of-band)データ転送メカニズムもサポートされる。"
#. type: TP
-#: build/C/man2/socket.2:128
+#: build/C/man2/socket.2:130
#, no-wrap
msgid "B<SOCK_DGRAM>"
msgstr "B<SOCK_DGRAM>"
#. type: Plain text
-#: build/C/man2/socket.2:132
+#: build/C/man2/socket.2:134
msgid ""
"Supports datagrams (connectionless, unreliable messages of a fixed maximum "
"length)."
msgstr "データグラム(接続、信頼性無し、固定最大長メッセージ) をサポートする。"
#. type: TP
-#: build/C/man2/socket.2:132
+#: build/C/man2/socket.2:134
#, no-wrap
msgid "B<SOCK_SEQPACKET>"
msgstr "B<SOCK_SEQPACKET>"
#. type: Plain text
-#: build/C/man2/socket.2:137
+#: build/C/man2/socket.2:139
msgid ""
"Provides a sequenced, reliable, two-way connection-based data transmission "
"path for datagrams of fixed maximum length; a consumer is required to read "
"ト全体を読み取ることが要求される。"
#. type: TP
-#: build/C/man2/socket.2:137
+#: build/C/man2/socket.2:139
#, no-wrap
msgid "B<SOCK_RAW>"
msgstr "B<SOCK_RAW>"
#. type: Plain text
-#: build/C/man2/socket.2:140
+#: build/C/man2/socket.2:142
msgid "Provides raw network protocol access."
msgstr "生のネットワーク・プロトコルへのアクセスを提供する。"
#. type: TP
-#: build/C/man2/socket.2:140
+#: build/C/man2/socket.2:142
#, no-wrap
msgid "B<SOCK_RDM>"
msgstr "B<SOCK_RDM>"
#. type: Plain text
-#: build/C/man2/socket.2:143
+#: build/C/man2/socket.2:145
msgid "Provides a reliable datagram layer that does not guarantee ordering."
msgstr "信頼性はあるが、順序は保証しないデータグラム層を提供する。"
#. type: TP
-#: build/C/man2/socket.2:143
+#: build/C/man2/socket.2:145
#, no-wrap
msgid "B<SOCK_PACKET>"
msgstr "B<SOCK_PACKET>"
#. type: Plain text
-#: build/C/man2/socket.2:148
+#: build/C/man2/socket.2:150
msgid "Obsolete and should not be used in new programs; see B<packet>(7)."
msgstr ""
"廃止されており新しいプログラムで使用してはいけない。 B<packet>(7) を参照する"
"こと"
#. type: Plain text
-#: build/C/man2/socket.2:154
+#: build/C/man2/socket.2:156
msgid ""
"Some socket types may not be implemented by all protocol families; for "
"example, B<SOCK_SEQPACKET> is not implemented for B<AF_INET>."
"例えば B<SOCK_SEQPACKET> は B<AF_INET> には実装されていない。"
#. type: Plain text
-#: build/C/man2/socket.2:162
+#: build/C/man2/socket.2:164
msgid ""
"Since Linux 2.6.27, the I<type> argument serves a second purpose: in "
"addition to specifying a socket type, it may include the bitwise OR of any "
"ることで、 B<socket>() の振舞いを変更することができる。"
#. type: Plain text
-#: build/C/man2/socket.2:196
+#: build/C/man2/socket.2:198
msgid ""
"The I<protocol> specifies a particular protocol to be used with the socket. "
"Normally only a single protocol exists to support a particular socket type "
"てプロトコル番号に対応させるかについては B<getprotoent>(3) を参照すること。"
#. type: Plain text
-#: build/C/man2/socket.2:226
+#: build/C/man2/socket.2:228
msgid ""
"Sockets of type B<SOCK_STREAM> are full-duplex byte streams, similar to "
"pipes. They do not preserve record boundaries. A stream socket must be in "
"の転送も B<send>(2) に記述されており、 受信も B<recv>(2) に記述されている。"
#. type: Plain text
-#: build/C/man2/socket.2:252
+#: build/C/man2/socket.2:254
msgid ""
"The communications protocols which implement a B<SOCK_STREAM> ensure that "
"data is not lost or duplicated. If a piece of data for which the peer "
"る。同様に入ってくるデータグラムの全てのメッセージ境界は 保存される。"
#. type: Plain text
-#: build/C/man2/socket.2:262
+#: build/C/man2/socket.2:264
msgid ""
"B<SOCK_DGRAM> and B<SOCK_RAW> sockets allow sending of datagrams to "
"correspondents named in B<sendto>(2) calls. Datagrams are generally "
"す。"
#. type: Plain text
-#: build/C/man2/socket.2:269
+#: build/C/man2/socket.2:271
msgid ""
"B<SOCK_PACKET> is an obsolete socket type to receive raw packets directly "
"from the device driver. Use B<packet>(7) instead."
"接受信するためのものである。 今は代わりに B<packet>(7) を用いること。"
#. type: Plain text
-#: build/C/man2/socket.2:292
+#: build/C/man2/socket.2:294
msgid ""
"An B<fcntl>(2) B<F_SETOWN> operation can be used to specify a process or "
"process group to receive a B<SIGURG> signal when the out-of-band data "
"B<SIOCSPGRP> の引数で B<ioctl>(2) を使用することと等価である。"
#. type: Plain text
-#: build/C/man2/socket.2:302
+#: build/C/man2/socket.2:304
msgid ""
"When the network signals an error condition to the protocol module (e.g., "
"using a ICMP message for IP) the pending error flag is set for the socket. "
"B<IP_RECVERR> を参照すること。"
#. type: Plain text
-#: build/C/man2/socket.2:312
+#: build/C/man2/socket.2:314
msgid ""
"The operation of sockets is controlled by socket level I<options>. These "
"options are defined in I<E<lt>sys/socket.hE<gt>>. The functions "
"B<getsockopt>(2) 関数はそれぞれオプションの設定と取得を行なう。"
#. type: Plain text
-#: build/C/man2/socket.2:317
+#: build/C/man2/socket.2:319
msgid ""
"On success, a file descriptor for the new socket is returned. On error, -1 "
"is returned, and I<errno> is set appropriately."
"した場合は -1 を返し、 I<errno> を適切に設定する。"
#. type: Plain text
-#: build/C/man2/socket.2:322
+#: build/C/man2/socket.2:324
msgid ""
"Permission to create a socket of the specified type and/or protocol is "
"denied."
"指定されたタイプまたはプロトコルのソケットを作成する許可が与えられていない。"
#. type: Plain text
-#: build/C/man2/socket.2:325
+#: build/C/man2/socket.2:327
msgid "The implementation does not support the specified address family."
msgstr "指定されたアドレスファミリーがサポートされていない。"
#. type: Plain text
-#: build/C/man2/socket.2:328
+#: build/C/man2/socket.2:330
msgid "Unknown protocol, or protocol family not available."
msgstr "知らないプロトコル、または利用できないプロトコル・ファミリである。"
#. Since Linux 2.6.27
#. type: Plain text
-#: build/C/man2/socket.2:333
+#: build/C/man2/socket.2:335
msgid "Invalid flags in I<type>."
msgstr "I<type> に無効なフラグが指定されている。"
#. type: Plain text
-#: build/C/man2/socket.2:336
+#: build/C/man2/socket.2:338
msgid "Process file table overflow."
msgstr "プロセスのファイルテーブルが溢れている。"
#. type: TP
-#: build/C/man2/socket.2:339
+#: build/C/man2/socket.2:341
#, no-wrap
msgid "B<ENOBUFS> or B<ENOMEM>"
msgstr "B<ENOBUFS> または B<ENOMEM>"
#. type: Plain text
-#: build/C/man2/socket.2:344
+#: build/C/man2/socket.2:346
msgid ""
"Insufficient memory is available. The socket cannot be created until "
"sufficient resources are freed."
"ない。"
#. type: TP
-#: build/C/man2/socket.2:344 build/C/man2/socketpair.2:90
+#: build/C/man2/socket.2:346 build/C/man2/socketpair.2:92
#, no-wrap
msgid "B<EPROTONOSUPPORT>"
msgstr "B<EPROTONOSUPPORT>"
#. type: Plain text
-#: build/C/man2/socket.2:348
+#: build/C/man2/socket.2:350
msgid ""
"The protocol type or the specified protocol is not supported within this "
"domain."
"いない。"
#. type: Plain text
-#: build/C/man2/socket.2:350
+#: build/C/man2/socket.2:352
msgid "Other errors may be generated by the underlying protocol modules."
msgstr "下位のプロトコル・モジュールから他のエラーが生成されるかもしれない。"
#. type: Plain text
-#: build/C/man2/socket.2:352
+#: build/C/man2/socket.2:354
msgid "4.4BSD, POSIX.1-2001."
msgstr "4.4BSD, POSIX.1-2001."
#. type: Plain text
-#: build/C/man2/socket.2:358
+#: build/C/man2/socket.2:360
msgid "The B<SOCK_NONBLOCK> and B<SOCK_CLOEXEC> flags are Linux-specific."
msgstr "フラグ B<SOCK_NONBLOCK>, B<SOCK_CLOEXEC> は Linux 固有である。"
#. type: Plain text
-#: build/C/man2/socket.2:364
+#: build/C/man2/socket.2:366
msgid ""
"B<socket>() appeared in 4.2BSD. It is generally portable to/from non-BSD "
"systems supporting clones of the BSD socket layer (including System V "
"外のシステムからの移植ができる。"
#. type: Plain text
-#: build/C/man2/socket.2:382
+#: build/C/man2/socket.2:385
+#, fuzzy
+#| msgid ""
+#| "The manifest constants used under 4.x BSD for protocol families are "
+#| "B<PF_UNIX>, B<PF_INET>, and so on, while B<AF_UNIX>, B<PF_INET>, and so "
+#| "on are used for address families. However, already the BSD man page "
+#| "promises: \"The protocol family generally is the same as the address "
+#| "family\", and subsequent standards use AF_* everywhere."
msgid ""
"The manifest constants used under 4.x BSD for protocol families are "
-"B<PF_UNIX>, B<PF_INET>, etc., while B<AF_UNIX> etc. are used for address "
-"families. However, already the BSD man page promises: \"The protocol family "
-"generally is the same as the address family\", and subsequent standards use "
-"AF_* everywhere."
+"B<PF_UNIX>, B<PF_INET>, and so on, while B<AF_UNIX>, B<AF_INET>, and so on "
+"are used for address families. However, already the BSD man page promises: "
+"\"The protocol family generally is the same as the address family\", and "
+"subsequent standards use AF_* everywhere."
msgstr ""
-"4.x BSD において定数を使用する場合、プロトコル・ファミリーには B<PF_UNIX>, "
-"B<PF_INET> 等を使用している。一方でアドレス・ファミリーには B<AF_UNIX> 等が使"
-"用されている。しかしながら BSD のマニュアルでは 「一般にプロトコル・ファミ"
-"リーはアドレス・ファミリーと同じものである。」 と保証している。それでそれ以外"
-"の規格では全ての場所で AF_* が使用されている。"
+"4.x BSD において定数を使用する場合、プロトコル・ファミリーには\n"
+"B<PF_UNIX>, B<PF_INET> 等を使用している。一方でアドレス・ファミリーには\n"
+"B<AF_UNIX>, B<AF_INET> 等が使用されている。\n"
+"しかしながら BSD のマニュアルでは 「一般にプロトコル・ファミリーは\n"
+"アドレス・ファミリーと同じものである。」 と保証している。\n"
+"それ以外の規格では全ての場所で AF_* が使用されている。"
#. type: Plain text
-#: build/C/man2/socket.2:387
+#: build/C/man2/socket.2:390
msgid "An example of the use of B<socket>() is shown in B<getaddrinfo>(3)."
msgstr "B<socket>() の利用例が B<getaddrinfo>(3) に記載されている。"
#. type: Plain text
-#: build/C/man2/socket.2:410
+#: build/C/man2/socket.2:413
msgid ""
"B<accept>(2), B<bind>(2), B<connect>(2), B<fcntl>(2), B<getpeername>(2), "
"B<getsockname>(2), B<getsockopt>(2), B<ioctl>(2), B<listen>(2), B<read>(2), "
"(7), B<unix>(7)"
#. type: Plain text
-#: build/C/man2/socket.2:414
+#: build/C/man2/socket.2:419
+#, fuzzy
+#| msgid ""
+#| "\\(lqAn Introductory 4.3BSD Interprocess Communication Tutorial\\(rq is "
+#| "reprinted in I<UNIX Programmer's Supplementary Documents Volume 1.>"
msgid ""
-"\\(lqAn Introductory 4.3BSD Interprocess Communication Tutorial\\(rq is "
-"reprinted in I<UNIX Programmer's Supplementary Documents Volume 1.>"
+"\\(lqAn Introductory 4.3BSD Interprocess Communication Tutorial\\(rq and "
+"\\(lqBSD Interprocess Communication Tutorial\\(rq, reprinted in I<UNIX "
+"Programmer's Supplementary Documents Volume 1.>"
msgstr ""
"\\(lqAn Introductory 4.3BSD Interprocess Communication Tutorial\\(rq は "
"I<UNIX Programmer's Supplementary Documents Volume 1> として再版された。"
-#. type: Plain text
-#: build/C/man2/socket.2:417
-msgid ""
-"\\(lqBSD Interprocess Communication Tutorial\\(rq is reprinted in I<UNIX "
-"Programmer's Supplementary Documents Volume 1.>"
-msgstr ""
-"\\(lqBSD Interprocess Communication Tutorial\\(rq は I<UNIX Programmer's "
-"Supplementary Documents Volume 1> として再版された。"
-
#. type: TH
-#: build/C/man7/socket.7:26
+#: build/C/man7/socket.7:48
#, no-wrap
-msgid "2010-06-13"
-msgstr "2010-06-13"
+msgid "2013-03-15"
+msgstr ""
#. type: Plain text
-#: build/C/man7/socket.7:29
+#: build/C/man7/socket.7:51
msgid "socket - Linux socket interface"
msgstr "socket - Linux のソケットインターフェース"
#. type: Plain text
-#: build/C/man7/socket.7:33
+#: build/C/man7/socket.7:55
msgid ""
"I<sockfd>B< = socket(int >I<socket_family>B<, int >I<socket_type>B<, int "
">I<protocol>B<);>"
">I<protocol>B<);>"
#. type: Plain text
-#: build/C/man7/socket.7:52
+#: build/C/man7/socket.7:74
msgid ""
"This manual page describes the Linux networking socket layer user "
"interface. The BSD compatible sockets are the uniform interface between the "
"関するより詳しい情報は B<socket>(2) を参照のこと。"
#. type: SS
-#: build/C/man7/socket.7:52
-#, no-wrap
-msgid "Socket Layer Functions"
+#: build/C/man7/socket.7:74
+#, fuzzy, no-wrap
+#| msgid "Socket Layer Functions"
+msgid "Socket-layer functions"
msgstr "ソケット層の関数群"
#. type: Plain text
-#: build/C/man7/socket.7:56
+#: build/C/man7/socket.7:78
msgid ""
"These functions are used by the user process to send or receive packets and "
"to do other socket operations. For more information see their respective "
"行ったりするために用いられる。詳細はそれぞれのマニュアルページを 見てほしい。"
#. type: Plain text
-#: build/C/man7/socket.7:72
+#: build/C/man7/socket.7:94
msgid ""
"B<socket>(2) creates a socket, B<connect>(2) connects a socket to a remote "
"socket address, the B<bind>(2) function binds a socket to a local socket "
"リーでしか実装されていない)。"
#. type: Plain text
-#: build/C/man7/socket.7:94
+#: build/C/man7/socket.7:116
msgid ""
"B<send>(2), B<sendto>(2), and B<sendmsg>(2) send data over a socket, and "
"B<recv>(2), B<recvfrom>(2), B<recvmsg>(2) receive data from a socket. "
"ことができる。"
#. type: Plain text
-#: build/C/man7/socket.7:105
+#: build/C/man7/socket.7:127
msgid ""
"B<getsockname>(2) returns the local socket address and B<getpeername>(2) "
"returns the remote socket address. B<getsockopt>(2) and B<setsockopt>(2) "
"いくつかのオプションの取得・設定には B<ioctl>(2) を使うことができる。"
#. type: Plain text
-#: build/C/man7/socket.7:110
+#: build/C/man7/socket.7:132
msgid ""
"B<close>(2) is used to close a socket. B<shutdown>(2) closes parts of a "
"full-duplex socket connection."
"続を部分的にクローズする。"
#. type: Plain text
-#: build/C/man7/socket.7:116
+#: build/C/man7/socket.7:138
msgid ""
"Seeking, or calling B<pread>(2) or B<pwrite>(2) with a nonzero position is "
"not supported on sockets."
"ではサポートされていない。"
#. type: Plain text
-#: build/C/man7/socket.7:133
+#: build/C/man7/socket.7:155
msgid ""
"It is possible to do nonblocking I/O on sockets by setting the B<O_NONBLOCK> "
"flag on a socket file descriptor using B<fcntl>(2). Then all operations "
"B<select>(2) を使って待つことができる。"
#. type: tbl table
-#: build/C/man7/socket.7:137
+#: build/C/man7/socket.7:159
#, no-wrap
msgid "I/O events\n"
msgstr "I/O イベント\n"
#. type: tbl table
-#: build/C/man7/socket.7:138
+#: build/C/man7/socket.7:160
#, no-wrap
msgid "Event:Poll flag:Occurrence\n"
msgstr "イベント:poll フラグ:内容\n"
#. type: tbl table
-#: build/C/man7/socket.7:139 build/C/man7/socket.7:142
+#: build/C/man7/socket.7:161 build/C/man7/socket.7:164
#, no-wrap
msgid "Read:POLLIN:T{\n"
msgstr "Read:POLLIN:T{\n"
#. type: tbl table
-#: build/C/man7/socket.7:140
+#: build/C/man7/socket.7:162
#, no-wrap
msgid "New data arrived.\n"
msgstr "新しいデータが到着した。\n"
#. type: tbl table
-#: build/C/man7/socket.7:143
+#: build/C/man7/socket.7:165
#, no-wrap
msgid "A connection setup has been completed\n"
msgstr "(接続志向のソケットで)\n"
#. type: tbl table
-#: build/C/man7/socket.7:144
+#: build/C/man7/socket.7:166
#, no-wrap
msgid "(for connection-oriented sockets)\n"
msgstr "接続の設定が終了した。\n"
#. type: tbl table
-#: build/C/man7/socket.7:146 build/C/man7/socket.7:149
+#: build/C/man7/socket.7:168 build/C/man7/socket.7:171
#, no-wrap
msgid "Read:POLLHUP:T{\n"
msgstr "Read:POLLHUP:T{\n"
#. type: tbl table
-#: build/C/man7/socket.7:147
+#: build/C/man7/socket.7:169
#, no-wrap
msgid "A disconnection request has been initiated by the other end.\n"
msgstr "接続先で切断要求が生成された。\n"
#. type: tbl table
-#: build/C/man7/socket.7:150
+#: build/C/man7/socket.7:172
#, no-wrap
msgid "A connection is broken (only for connection-oriented protocols).\n"
msgstr "接続が壊れた (接続志向のプロトコルのみ)。\n"
#. type: tbl table
-#: build/C/man7/socket.7:151
+#: build/C/man7/socket.7:173
#, no-wrap
msgid "When the socket is written\n"
msgstr "この場合、ソケットに書き込みが行われると\n"
#. type: tbl table
-#: build/C/man7/socket.7:152
+#: build/C/man7/socket.7:174
#, no-wrap
msgid "B<SIGPIPE>\n"
msgstr "B<SIGPIPE>\n"
#. type: tbl table
-#: build/C/man7/socket.7:153
+#: build/C/man7/socket.7:175
#, no-wrap
msgid "is also sent.\n"
msgstr "も送信される。\n"
#. type: tbl table
-#: build/C/man7/socket.7:155
+#: build/C/man7/socket.7:177
#, no-wrap
msgid "Write:POLLOUT:T{\n"
msgstr "Write:POLLOUT:T{\n"
#. type: tbl table
-#: build/C/man7/socket.7:156
+#: build/C/man7/socket.7:178
#, no-wrap
msgid "Socket has enough send buffer space for writing new data.\n"
msgstr "ソケットには新しいデータを書き込むのに充分なバッファ領域がある。\n"
#. type: tbl table
-#: build/C/man7/socket.7:158
+#: build/C/man7/socket.7:180
#, no-wrap
msgid "Read/Write:T{\n"
msgstr "Read/Write:T{\n"
#. type: tbl table
-#: build/C/man7/socket.7:159
+#: build/C/man7/socket.7:181
#, no-wrap
msgid "POLLIN|\n"
msgstr "POLLIN|\n"
#. type: tbl table
-#: build/C/man7/socket.7:160
+#: build/C/man7/socket.7:182
#, no-wrap
msgid ".br\n"
msgstr ".br\n"
#. type: tbl table
-#: build/C/man7/socket.7:161
+#: build/C/man7/socket.7:183
#, no-wrap
msgid "POLLOUT\n"
msgstr "POLLOUT\n"
#. type: tbl table
-#: build/C/man7/socket.7:163
+#: build/C/man7/socket.7:185
#, no-wrap
msgid "An outgoing\n"
msgstr "外部向けの\n"
#. type: tbl table
-#: build/C/man7/socket.7:164
+#: build/C/man7/socket.7:186
#, no-wrap
msgid "B<connect>(2)\n"
msgstr "B<connect>(2)\n"
#. type: tbl table
-#: build/C/man7/socket.7:165
+#: build/C/man7/socket.7:187
#, no-wrap
msgid "finished.\n"
msgstr "が終了した。\n"
#. type: tbl table
-#: build/C/man7/socket.7:167
+#: build/C/man7/socket.7:189
#, no-wrap
msgid "Read/Write:POLLERR:An asynchronous error occurred.\n"
msgstr "Read/Write:POLLERR:非同期的 (asynchronous) なエラーが起こった。\n"
#. type: tbl table
-#: build/C/man7/socket.7:168
+#: build/C/man7/socket.7:190
#, no-wrap
msgid "Read/Write:POLLHUP:The other end has shut down one direction.\n"
msgstr "Read/Write:POLLHUP:接続先が片方向を切断した。\n"
#. type: tbl table
-#: build/C/man7/socket.7:169
+#: build/C/man7/socket.7:191
#, no-wrap
msgid "Exception:POLLPRI:T{\n"
msgstr "Exception:POLLPRI:T{\n"
#. type: tbl table
-#: build/C/man7/socket.7:170
+#: build/C/man7/socket.7:192
#, no-wrap
msgid "Urgent data arrived.\n"
msgstr "緊急データ (urgent data) が到着した。この場合は\n"
#. type: tbl table
-#: build/C/man7/socket.7:171
+#: build/C/man7/socket.7:193
#, no-wrap
msgid "B<SIGURG>\n"
msgstr "B<SIGURG>\n"
#. type: tbl table
-#: build/C/man7/socket.7:172
+#: build/C/man7/socket.7:194
#, no-wrap
msgid "is sent then.\n"
msgstr "が送信される。\n"
#. type: Plain text
-#: build/C/man7/socket.7:202
+#: build/C/man7/socket.7:223
msgid ""
"An alternative to B<poll>(2) and B<select>(2) is to let the kernel inform "
"the application about events via a B<SIGIO> signal. For that the B<O_ASYNC> "
"と。"
#. type: SS
-#: build/C/man7/socket.7:202
+#: build/C/man7/socket.7:223
+#, no-wrap
+msgid "Socket address structures"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/socket.7:239
+msgid ""
+"Each socket domain has its own format for socket addresses, with a domain-"
+"specific address structure. Each of these structures begins with an integer "
+"\"family\" field (typed as I<sa_family_t>) that indicates the type of the "
+"address structure. This allows the various system calls (e.g., B<connect>"
+"(2), B<bind>(2), B<accept>(2), B<getsockname>(2), B<getpeername>(2)), which "
+"are generic to all socket domains, to determine the domain of a particular "
+"socket address."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/socket.7:249
+msgid ""
+"To allow any type of socket address to be passed to interfaces in the "
+"sockets API, the type I<struct sockaddr> is defined. The purpose of this "
+"type is purely to allow casting of domain-specific socket address types to a "
+"\"generic\" type, so as to avoid compiler warnings about type mismatches in "
+"calls to the sockets API."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/socket.7:259
+msgid ""
+"In addition, the sockets API provides the data type I<struct "
+"sockaddr_storage>. This type is suitable to accommodate all supported "
+"domain-specific socket address structures; it is large enough and is aligned "
+"properly. (In particular, it is large enough to hold IPv6 socket "
+"addresses.) The structure includes the following field, which can be used "
+"to identify the type of socket address actually stored in the structure:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/socket.7:263
#, no-wrap
-msgid "Socket Options"
+msgid " sa_family_t ss_family;\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/socket.7:271
+msgid ""
+"The I<sockaddr_storage> structure is useful in programs that must handle "
+"socket addresses in a generic way (e.g., programs that must deal with both "
+"IPv4 and IPv6 socket addresses)."
+msgstr ""
+
+#. type: SS
+#: build/C/man7/socket.7:271
+#, fuzzy, no-wrap
+#| msgid "Socket Options"
+msgid "Socket options"
msgstr "ソケットオプション"
#. FIXME
#. SO_ACCEPTCONN is in POSIX.1-2001, and its origin is explained in
#. W R Stevens, UNPv1
#. type: Plain text
-#: build/C/man7/socket.7:216
+#: build/C/man7/socket.7:285
msgid ""
"These socket options can be set by using B<setsockopt>(2) and read with "
"B<getsockopt>(2) with the socket level set to B<SOL_SOCKET> for all sockets:"
"レベルには B<SOL_SOCKET> を指定すること。"
#. type: TP
-#: build/C/man7/socket.7:216
+#: build/C/man7/socket.7:285
#, no-wrap
msgid "B<SO_ACCEPTCONN>"
msgstr "B<SO_ACCEPTCONN>"
#. type: Plain text
-#: build/C/man7/socket.7:224
+#: build/C/man7/socket.7:293
msgid ""
"Returns a value indicating whether or not this socket has been marked to "
"accept connections with B<listen>(2). The value 0 indicates that this is "
"状態のソケットであることを示す。このソケットオプションは読み込み専用である。"
#. type: TP
-#: build/C/man7/socket.7:224
+#: build/C/man7/socket.7:293
#, no-wrap
msgid "B<SO_BINDTODEVICE>"
msgstr "B<SO_BINDTODEVICE>"
#. type: Plain text
-#: build/C/man7/socket.7:243
+#: build/C/man7/socket.7:312
msgid ""
"Bind this socket to a particular device like \\(lqeth0\\(rq, as specified in "
"the passed interface name. If the name is an empty string or the option "
"特に B<AF_INET> に対してのみ動作する点に注意すること。\n"
"パケットソケットではサポートされていない (通常の B<bind>(2) を使うこと)。"
+#. type: Plain text
+#: build/C/man7/socket.7:326
+msgid ""
+"Before Linux 3.8, this socket option could be set, but could not retrieved "
+"with B<getsockopt>(2). Since Linux 3.8, it is readable. The I<optlen> "
+"argument should contain the buffer size available to receive the device name "
+"and is recommended to be B<IFNAMSZ> bytes. The real device name length is "
+"reported back in the I<optlen> argument."
+msgstr ""
+
#. type: TP
-#: build/C/man7/socket.7:243
+#: build/C/man7/socket.7:326
#, no-wrap
msgid "B<SO_BROADCAST>"
msgstr "B<SO_BROADCAST>"
#. type: Plain text
-#: build/C/man7/socket.7:250
+#: build/C/man7/socket.7:332
msgid ""
-"Set or get the broadcast flag. When enabled, datagram sockets receive "
-"packets sent to a broadcast address and they are allowed to send packets to "
-"a broadcast address. This option has no effect on stream-oriented sockets."
+"Set or get the broadcast flag. When enabled, datagram sockets are allowed "
+"to send packets to a broadcast address. This option has no effect on stream-"
+"oriented sockets."
msgstr ""
-"ブロードキャストフラグを設定・取得する。有効になっていると、 データグラムソ"
-"ケットはブロードキャストアドレスに送られたパケットを受信したり、 ブロードキャ"
-"ストアドレスにパケットを送信したりできるようになる。 ストリーム指向のソケット"
-"には何の効果もない。"
+"ブロードキャストフラグを設定・取得する。有効になっていると、データグラ\n"
+"ムソケットはブロードキャストアドレスにパケットを送信できるようになる。\n"
+"ストリーム指向のソケットには何の効果もない。"
#. type: TP
-#: build/C/man7/socket.7:250
+#: build/C/man7/socket.7:332
#, no-wrap
msgid "B<SO_BSDCOMPAT>"
msgstr "B<SO_BSDCOMPAT>"
#. type: Plain text
-#: build/C/man7/socket.7:262
+#: build/C/man7/socket.7:344
msgid ""
"Enable BSD bug-to-bug compatibility. This is used by the UDP protocol "
"module in Linux 2.0 and 2.2. If enabled ICMP errors received for a UDP "
"する互換機能が有効になっていた。 しかし、こちらは Linux 2.2 で削除された。"
#. type: TP
-#: build/C/man7/socket.7:262
+#: build/C/man7/socket.7:344
#, no-wrap
msgid "B<SO_DEBUG>"
msgstr "B<SO_DEBUG>"
#. type: Plain text
-#: build/C/man7/socket.7:268
+#: build/C/man7/socket.7:350
msgid ""
"Enable socket debugging. Only allowed for processes with the "
"B<CAP_NET_ADMIN> capability or an effective user ID of 0."
"実効ユーザ ID が 0 のプロセスでしか 利用できない。"
#. type: TP
-#: build/C/man7/socket.7:268
+#: build/C/man7/socket.7:350
#, no-wrap
msgid "B<SO_DOMAIN> (since Linux 2.6.32)"
msgstr "B<SO_DOMAIN> (Linux 2.6.32 以降)"
#. type: Plain text
-#: build/C/man7/socket.7:276
+#: build/C/man7/socket.7:358
msgid ""
"Retrieves the socket domain as an integer, returning a value such as "
"B<AF_INET6>. See B<socket>(2) for details. This socket option is read-"
"詳細は B<socket>(2) を参照。このソケットオプションは読み込み専用である。"
#. type: TP
-#: build/C/man7/socket.7:276
+#: build/C/man7/socket.7:358
#, no-wrap
msgid "B<SO_ERROR>"
msgstr "B<SO_ERROR>"
#. type: Plain text
-#: build/C/man7/socket.7:281
+#: build/C/man7/socket.7:363
msgid ""
"Get and clear the pending socket error. This socket option is read-only. "
"Expects an integer."
"このソケットオプションは読み込み専用である。整数値をとる。"
#. type: TP
-#: build/C/man7/socket.7:281
+#: build/C/man7/socket.7:363
#, no-wrap
msgid "B<SO_DONTROUTE>"
msgstr "B<SO_DONTROUTE>"
#. type: Plain text
-#: build/C/man7/socket.7:290
+#: build/C/man7/socket.7:372
msgid ""
"Don't send via a gateway, only send to directly connected hosts. The same "
"effect can be achieved by setting the B<MSG_DONTROUTE> flag on a socket "
"フラグを取る。"
#. type: TP
-#: build/C/man7/socket.7:290
+#: build/C/man7/socket.7:372
#, no-wrap
msgid "B<SO_KEEPALIVE>"
msgstr "B<SO_KEEPALIVE>"
#. type: Plain text
-#: build/C/man7/socket.7:294
+#: build/C/man7/socket.7:376
msgid ""
"Enable sending of keep-alive messages on connection-oriented sockets. "
"Expects an integer boolean flag."
"の整数フラグをとる。"
#. type: TP
-#: build/C/man7/socket.7:294
+#: build/C/man7/socket.7:376
#, no-wrap
msgid "B<SO_LINGER>"
msgstr "B<SO_LINGER>"
#. type: Plain text
-#: build/C/man7/socket.7:302
+#: build/C/man7/socket.7:384
msgid ""
"Sets or gets the B<SO_LINGER> option. The argument is a I<linger> structure."
msgstr ""
"B<SO_LINGER> オプションを取得・設定する。引き数には I<linger> 構造体を取る。"
#. type: Plain text
-#: build/C/man7/socket.7:309
+#: build/C/man7/socket.7:391
#, no-wrap
msgid ""
"struct linger {\n"
"};\n"
#. type: Plain text
-#: build/C/man7/socket.7:323
+#: build/C/man7/socket.7:405
msgid ""
"When enabled, a B<close>(2) or B<shutdown>(2) will not return until all "
"queued messages for the socket have been successfully sent or the linger "
"送られる。"
#. type: TP
-#: build/C/man7/socket.7:323
+#: build/C/man7/socket.7:405
+#, fuzzy, no-wrap
+#| msgid "B<SO_DOMAIN> (since Linux 2.6.32)"
+msgid "B<SO_MARK> (since Linux 2.6.25)"
+msgstr "B<SO_DOMAIN> (Linux 2.6.32 以降)"
+
+#. commit 4a19ec5800fc3bb64e2d87c4d9fdd9e636086fe0
+#. and 914a9ab386a288d0f22252fc268ecbc048cdcbd5
+#. type: Plain text
+#: build/C/man7/socket.7:416
+msgid ""
+"Set the mark for each packet sent through this socket (similar to the "
+"netfilter MARK target but socket-based). Changing the mark can be used for "
+"mark-based routing without netfilter or for packet filtering. Setting this "
+"option requires the B<CAP_NET_ADMIN> capability."
+msgstr ""
+
+#. type: TP
+#: build/C/man7/socket.7:416
#, no-wrap
msgid "B<SO_OOBINLINE>"
msgstr "B<SO_OOBINLINE>"
#. don't document it because it can do too much harm.
#. .B SO_NO_CHECK
#. type: Plain text
-#: build/C/man7/socket.7:332
+#: build/C/man7/socket.7:425
msgid ""
"If this option is enabled, out-of-band data is directly placed into the "
"receive data stream. Otherwise out-of-band data is only passed when the "
"ラグがセットされている場合に限って渡される。"
#. type: TP
-#: build/C/man7/socket.7:332
+#: build/C/man7/socket.7:425
#, no-wrap
msgid "B<SO_PASSCRED>"
msgstr "B<SO_PASSCRED>"
#. FIXME Document SO_PASSSEC, added in 2.6.18; there is some info
#. in the 2.6.18 ChangeLog
#. type: Plain text
-#: build/C/man7/socket.7:341
+#: build/C/man7/socket.7:434
msgid ""
"Enable or disable the receiving of the B<SCM_CREDENTIALS> control message. "
"For more information see B<unix>(7)."
"を参照のこと。"
#. type: TP
-#: build/C/man7/socket.7:341
+#: build/C/man7/socket.7:434
#, no-wrap
msgid "B<SO_PEERCRED>"
msgstr "B<SO_PEERCRED>"
#. type: Plain text
-#: build/C/man7/socket.7:361
+#: build/C/man7/socket.7:457
+#, fuzzy
+#| msgid ""
+#| "Return the credentials of the foreign process connected to this socket. "
+#| "This is only possible for connected B<AF_UNIX> stream sockets and "
+#| "B<AF_UNIX> stream and datagram socket pairs created using B<socketpair>"
+#| "(2); see B<unix>(7). The returned credentials are those that were in "
+#| "effect at the time of the call to B<connect>(2) or B<socketpair>(2). "
+#| "Argument is a I<ucred> structure. This socket option is read-only."
msgid ""
"Return the credentials of the foreign process connected to this socket. "
"This is only possible for connected B<AF_UNIX> stream sockets and B<AF_UNIX> "
"stream and datagram socket pairs created using B<socketpair>(2); see B<unix>"
"(7). The returned credentials are those that were in effect at the time of "
-"the call to B<connect>(2) or B<socketpair>(2). Argument is a I<ucred> "
-"structure. This socket option is read-only."
+"the call to B<connect>(2) or B<socketpair>(2). The argument is a I<ucred> "
+"structure; define the B<GNU_SOURCE> feature test macro to obtain the "
+"definition of that structure from I<E<lt>sys/socket.hE<gt>>. This socket "
+"option is read-only."
msgstr ""
"このソケットに接続してきた外部プロセスの信任状 (credential) を返す。\n"
"このソケットオプションが利用できるのは、接続された B<AF_UNIX> ストリームソ"
"このソケットオプションは読み込み専用である。"
#. type: TP
-#: build/C/man7/socket.7:361
+#: build/C/man7/socket.7:457
#, no-wrap
msgid "B<SO_PRIORITY>"
msgstr "B<SO_PRIORITY>"
#. type: Plain text
-#: build/C/man7/socket.7:374
+#: build/C/man7/socket.7:470
msgid ""
"Set the protocol-defined priority for all packets to be sent on this "
"socket. Linux uses this value to order the networking queues: packets with "
"B<CAP_NET_ADMIN> ケーパビリティが必要である。"
#. type: TP
-#: build/C/man7/socket.7:374
+#: build/C/man7/socket.7:470
#, no-wrap
msgid "B<SO_PROTOCOL> (since Linux 2.6.32)"
msgstr "B<SO_PROTOCOL> (Linux 2.6.32 以降)"
#. type: Plain text
-#: build/C/man7/socket.7:382
+#: build/C/man7/socket.7:478
msgid ""
"Retrieves the socket protocol as an integer, returning a value such as "
"B<IPPROTO_SCTP>. See B<socket>(2) for details. This socket option is read-"
"only."
msgstr ""
-"ソケットのプロトコルを整数で取得する。 B<IPPROTO_SCTP> のような値が返される。\n"
+"ソケットのプロトコルを整数で取得する。 B<IPPROTO_SCTP> のような値が返され"
+"る。\n"
"詳細は B<socket>(2) を参照。このソケットオプションは読み込み専用である。"
#. type: TP
-#: build/C/man7/socket.7:382
+#: build/C/man7/socket.7:478
#, no-wrap
msgid "B<SO_RCVBUF>"
msgstr "B<SO_RCVBUF>"
#. Most (all?) other implementations do not do this -- MTK, Dec 05
+#. The following thread on LMKL is quite informative:
+#. getsockopt/setsockopt with SO_RCVBUF and SO_SNDBUF "non-standard" behaviour
+#. 17 July 2012
+#. http://thread.gmane.org/gmane.linux.kernel/1328935
#. type: Plain text
-#: build/C/man7/socket.7:397
+#: build/C/man7/socket.7:497
msgid ""
"Sets or gets the maximum socket receive buffer in bytes. The kernel doubles "
"this value (to allow space for bookkeeping overhead) when it is set using "
"る。 このオプションの最小値は (2倍した値で) 256 である。"
#. type: TP
-#: build/C/man7/socket.7:397
+#: build/C/man7/socket.7:497
#, no-wrap
msgid "B<SO_RCVBUFFORCE> (since Linux 2.6.14)"
msgstr "B<SO_RCVBUFFORCE> (Linux 2.6.14 以降)"
#. type: Plain text
-#: build/C/man7/socket.7:406
+#: build/C/man7/socket.7:506
msgid ""
"Using this socket option, a privileged (B<CAP_NET_ADMIN>) process can "
"perform the same task as B<SO_RCVBUF>, but the I<rmem_max> limit can be "
"きすることができる。"
#. type: TP
-#: build/C/man7/socket.7:406
+#: build/C/man7/socket.7:506
#, no-wrap
msgid "B<SO_RCVLOWAT> and B<SO_SNDLOWAT>"
msgstr "B<SO_RCVLOWAT> と B<SO_SNDLOWAT>"
#. See http://marc.theaimsgroup.com/?l=linux-kernel&m=111049368106984&w=2
#. Tested on kernel 2.6.14 -- mtk, 30 Nov 05
#. type: Plain text
-#: build/C/man7/socket.7:435
+#: build/C/man7/socket.7:535
msgid ""
"Specify the minimum number of bytes in the buffer until the socket layer "
"will pass the data to the protocol (B<SO_SNDLOWAT>) or the user on "
"してしまう。"
#. type: TP
-#: build/C/man7/socket.7:435
+#: build/C/man7/socket.7:535
#, no-wrap
msgid "B<SO_RCVTIMEO> and B<SO_SNDTIMEO>"
msgstr "B<SO_RCVTIMEO> と B<SO_SNDTIMEO>"
#. Implemented in 2.3.41 for setsockopt, and actually used.
#. in fact to EAGAIN
#. type: Plain text
-#: build/C/man7/socket.7:466
+#: build/C/man7/socket.7:570
+#, fuzzy
+#| msgid ""
+#| "Specify the receiving or sending timeouts until reporting an error. The "
+#| "argument is a I<struct timeval>. If an input or output function blocks "
+#| "for this period of time, and data has been sent or received, the return "
+#| "value of that function will be the amount of data transferred; if no data "
+#| "has been transferred and the timeout has been reached then -1 is returned "
+#| "with I<errno> set to B<EAGAIN> or B<EWOULDBLOCK> just as if the socket "
+#| "was specified to be nonblocking. If the timeout is set to zero (the "
+#| "default) then the operation will never timeout. Timeouts only have "
+#| "effect for system calls that perform socket I/O (e.g., B<read>(2), "
+#| "B<recvmsg>(2), B<send>(2), B<sendmsg>(2)); timeouts have no effect for "
+#| "B<select>(2), B<poll>(2), B<epoll_wait>(2), and so on."
msgid ""
"Specify the receiving or sending timeouts until reporting an error. The "
"argument is a I<struct timeval>. If an input or output function blocks for "
"this period of time, and data has been sent or received, the return value of "
"that function will be the amount of data transferred; if no data has been "
"transferred and the timeout has been reached then -1 is returned with "
-"I<errno> set to B<EAGAIN> or B<EWOULDBLOCK> just as if the socket was "
-"specified to be nonblocking. If the timeout is set to zero (the default) "
-"then the operation will never timeout. Timeouts only have effect for system "
-"calls that perform socket I/O (e.g., B<read>(2), B<recvmsg>(2), B<send>(2), "
-"B<sendmsg>(2)); timeouts have no effect for B<select>(2), B<poll>(2), "
-"B<epoll_wait>(2), etc."
+"I<errno> set to B<EAGAIN> or B<EWOULDBLOCK>, or B<EINPROGRESS> (for "
+"B<connect>(2)) just as if the socket was specified to be nonblocking. If "
+"the timeout is set to zero (the default) then the operation will never "
+"timeout. Timeouts only have effect for system calls that perform socket I/O "
+"(e.g., B<read>(2), B<recvmsg>(2), B<send>(2), B<sendmsg>(2)); timeouts have "
+"no effect for B<select>(2), B<poll>(2), B<epoll_wait>(2), and so on."
msgstr ""
"送信・受信のタイムアウトを指定する。これを越えるとエラーを報告する。 引き数"
"は I<struct timeval> である。 入出力関数がタイムアウト時間の間ブロックされ、"
"(2), B<epoll_wait>(2) などにはタイムアウトは影響を及ぼさない。"
#. type: TP
-#: build/C/man7/socket.7:466
+#: build/C/man7/socket.7:570
#, no-wrap
msgid "B<SO_REUSEADDR>"
msgstr "B<SO_REUSEADDR>"
#. type: Plain text
-#: build/C/man7/socket.7:481
+#: build/C/man7/socket.7:585
msgid ""
"Indicates that the rules used in validating addresses supplied in a B<bind>"
"(2) call should allow reuse of local addresses. For B<AF_INET> sockets "
"ドできない。 引き数はブール整数のフラグである。"
#. type: TP
-#: build/C/man7/socket.7:481
+#: build/C/man7/socket.7:585
#, no-wrap
msgid "B<SO_SNDBUF>"
msgstr "B<SO_SNDBUF>"
#. Most (all?) other implementations do not do this -- MTK, Dec 05
+#. See also the comment to SO_RCVBUF (17 Jul 2012 LKML mail)
#. type: Plain text
-#: build/C/man7/socket.7:496
+#: build/C/man7/socket.7:601
msgid ""
"Sets or gets the maximum socket send buffer in bytes. The kernel doubles "
"this value (to allow space for bookkeeping overhead) when it is set using "
"る。 このオプションの最小値は (2倍した値で) 2048 である。"
#. type: TP
-#: build/C/man7/socket.7:496
+#: build/C/man7/socket.7:601
#, no-wrap
msgid "B<SO_SNDBUFFORCE> (since Linux 2.6.14)"
msgstr "B<SO_SNDBUFFORCE> (Linux 2.6.14 以降)"
#. type: Plain text
-#: build/C/man7/socket.7:505
+#: build/C/man7/socket.7:610
msgid ""
"Using this socket option, a privileged (B<CAP_NET_ADMIN>) process can "
"perform the same task as B<SO_SNDBUF>, but the I<wmem_max> limit can be "
"きすることができる。"
#. type: TP
-#: build/C/man7/socket.7:505
+#: build/C/man7/socket.7:610
#, no-wrap
msgid "B<SO_TIMESTAMP>"
msgstr "B<SO_TIMESTAMP>"
#. type: Plain text
-#: build/C/man7/socket.7:521
+#: build/C/man7/socket.7:626
msgid ""
"Enable or disable the receiving of the B<SO_TIMESTAMP> control message. The "
"timestamp control message is sent with level B<SOL_SOCKET> and the "
"timeval> である。 制御メッセージの詳細については B<cmsg>(3) を参照。"
#. type: TP
-#: build/C/man7/socket.7:521
+#: build/C/man7/socket.7:626
#, no-wrap
msgid "B<SO_TYPE>"
msgstr "B<SO_TYPE>"
#. type: Plain text
-#: build/C/man7/socket.7:526
+#: build/C/man7/socket.7:631
msgid ""
"Gets the socket type as an integer (e.g., B<SOCK_STREAM>). This socket "
"option is read-only."
"このソケットオプションは読み出し専用である。"
#. type: SS
-#: build/C/man7/socket.7:526
+#: build/C/man7/socket.7:631
#, no-wrap
msgid "Signals"
msgstr "シグナル"
#. type: Plain text
-#: build/C/man7/socket.7:537
+#: build/C/man7/socket.7:642
msgid ""
"When writing onto a connection-oriented socket that has been shut down (by "
"the local or the remote end) B<SIGPIPE> is sent to the writing process and "
"していた場合はシグナルは送られない。"
#. type: Plain text
-#: build/C/man7/socket.7:562
+#: build/C/man7/socket.7:667
msgid ""
"When requested with the B<FIOSETOWN> B<fcntl>(2) or B<SIOCSPGRP> B<ioctl>"
"(2), B<SIGIO> is sent when an I/O event occurs. It is possible to use "
"ルドにファイルディスクリプタが入った状態で呼び出される。 詳細は B<fcntl>(2) "
"を参照のこと。"
-#. .SS Ancillary Messages
+#. .SS Ancillary messages
#. type: Plain text
-#: build/C/man7/socket.7:570
+#: build/C/man7/socket.7:675
msgid ""
"Under some circumstances (e.g., multiple processes accessing a single "
"socket), the condition that caused the B<SIGIO> may have already disappeared "
"すべきである。 Linux は同じシグナルを後で再送するからである。"
#. type: SS
-#: build/C/man7/socket.7:570
+#: build/C/man7/socket.7:675
#, no-wrap
msgid "/proc interfaces"
msgstr "/proc インタフェース"
#. type: Plain text
-#: build/C/man7/socket.7:574
+#: build/C/man7/socket.7:679
msgid ""
"The core socket networking parameters can be accessed via files in the "
"directory I</proc/sys/net/core/>."
"レクトリ内のファイルを通してアクセスできる。"
#. type: TP
-#: build/C/man7/socket.7:574
+#: build/C/man7/socket.7:679
#, no-wrap
msgid "I<rmem_default>"
msgstr "I<rmem_default>"
#. type: Plain text
-#: build/C/man7/socket.7:577
+#: build/C/man7/socket.7:682
msgid "contains the default setting in bytes of the socket receive buffer."
msgstr "ソケットの受信バッファサイズのデフォルト値 (バイト単位)。"
#. type: TP
-#: build/C/man7/socket.7:577
+#: build/C/man7/socket.7:682
#, no-wrap
msgid "I<rmem_max>"
msgstr "I<rmem_max>"
#. type: Plain text
-#: build/C/man7/socket.7:583
+#: build/C/man7/socket.7:688
msgid ""
"contains the maximum socket receive buffer size in bytes which a user may "
"set by using the B<SO_RCVBUF> socket option."
"ファサイズの最大値 (バイト単位)。"
#. type: TP
-#: build/C/man7/socket.7:583
+#: build/C/man7/socket.7:688
#, no-wrap
msgid "I<wmem_default>"
msgstr "I<wmem_default>"
#. type: Plain text
-#: build/C/man7/socket.7:586
+#: build/C/man7/socket.7:691
msgid "contains the default setting in bytes of the socket send buffer."
msgstr "ソケットの送信バッファサイズのデフォルト値 (バイト単位)。"
#. type: TP
-#: build/C/man7/socket.7:586
+#: build/C/man7/socket.7:691
#, no-wrap
msgid "I<wmem_max>"
msgstr "I<wmem_max>"
#. type: Plain text
-#: build/C/man7/socket.7:592
+#: build/C/man7/socket.7:697
msgid ""
"contains the maximum socket send buffer size in bytes which a user may set "
"by using the B<SO_SNDBUF> socket option."
"ファサイズの最大値 (バイト単位)。"
#. type: TP
-#: build/C/man7/socket.7:592
+#: build/C/man7/socket.7:697
#, no-wrap
msgid "I<message_cost> and I<message_burst>"
msgstr "I<message_cost> と I<message_burst>"
#. type: Plain text
-#: build/C/man7/socket.7:596
+#: build/C/man7/socket.7:701
msgid ""
"configure the token bucket filter used to load limit warning messages caused "
"by external network events."
"よって引き起こされた 負荷限界の警告メッセージに用いられる。"
#. type: TP
-#: build/C/man7/socket.7:596
+#: build/C/man7/socket.7:701
#, no-wrap
msgid "I<netdev_max_backlog>"
msgstr "I<netdev_max_backlog>"
#. type: Plain text
-#: build/C/man7/socket.7:599
+#: build/C/man7/socket.7:704
msgid "Maximum number of packets in the global input queue."
msgstr "グローバルな入力キューにおける最大のパケット数。"
#. type: TP
-#: build/C/man7/socket.7:599
+#: build/C/man7/socket.7:704
#, no-wrap
msgid "I<optmem_max>"
msgstr "I<optmem_max>"
#. netdev_fastroute is not documented because it is experimental
#. type: Plain text
-#: build/C/man7/socket.7:604
+#: build/C/man7/socket.7:709
msgid ""
"Maximum length of ancillary data and user control data like the iovecs per "
"socket."
"うなもの) との和の最大長。"
#. type: SS
-#: build/C/man7/socket.7:604
+#: build/C/man7/socket.7:709
#, no-wrap
msgid "Ioctls"
msgstr "ioctl"
#. type: Plain text
-#: build/C/man7/socket.7:607
+#: build/C/man7/socket.7:712
msgid "These operations can be accessed using B<ioctl>(2):"
msgstr "以下に示す操作には B<ioctl>(2) を用いてアクセスできる。"
#. type: Plain text
-#: build/C/man7/socket.7:611
+#: build/C/man7/socket.7:716
#, no-wrap
msgid "I<error>B< = ioctl(>I<ip_socket>B<, >I<ioctl_type>B<, >I<&value_result>B<);>\n"
msgstr "I<error>B< = ioctl(>I<ip_socket>B<, >I<ioctl_type>B<, >I<&value_result>B<);>\n"
#. type: TP
-#: build/C/man7/socket.7:613
+#: build/C/man7/socket.7:718
#, no-wrap
msgid "B<SIOCGSTAMP>"
msgstr "B<SIOCGSTAMP>"
#. type: Plain text
-#: build/C/man7/socket.7:637
+#: build/C/man7/socket.7:742
msgid ""
"Return a I<struct timeval> with the receive timestamp of the last packet "
"passed to the user. This is useful for accurate round trip time "
"セットする)。"
#. type: TP
-#: build/C/man7/socket.7:637
+#: build/C/man7/socket.7:742
#, no-wrap
msgid "B<SIOCSPGRP>"
msgstr "B<SIOCSPGRP>"
#. type: Plain text
-#: build/C/man7/socket.7:656
+#: build/C/man7/socket.7:761
msgid ""
"Set the process or process group to send B<SIGIO> or B<SIGURG> signals to "
"when an asynchronous I/O operation has finished or urgent data is "
"の場合は この限りではない。"
#. type: TP
-#: build/C/man7/socket.7:656
+#: build/C/man7/socket.7:761
#, no-wrap
msgid "B<FIOASYNC>"
msgstr "B<FIOASYNC>"
#. type: Plain text
-#: build/C/man7/socket.7:666
+#: build/C/man7/socket.7:771
msgid ""
"Change the B<O_ASYNC> flag to enable or disable asynchronous I/O mode of the "
"socket. Asynchronous I/O mode means that the B<SIGIO> signal or the signal "
"B<SIGIO> シグナルや B<F_SETSIG> で設定されたシグナル・セットが発行される。"
#. type: Plain text
-#: build/C/man7/socket.7:674
+#: build/C/man7/socket.7:779
msgid ""
"Argument is an integer boolean flag. (This operation is synonymous with the "
"use of B<fcntl>(2) to set the B<O_ASYNC> flag.)"
"B<O_ASYNC> フラグをセットするのと同じ意味である。)"
#. type: TP
-#: build/C/man7/socket.7:674
+#: build/C/man7/socket.7:779
#, no-wrap
msgid "B<SIOCGPGRP>"
msgstr "B<SIOCGPGRP>"
#. type: Plain text
-#: build/C/man7/socket.7:683
+#: build/C/man7/socket.7:788
msgid ""
"Get the current process or process group that receives B<SIGIO> or B<SIGURG> "
"signals, or 0 when none is set."
"る。 ない場合は 0 が返る。"
#. type: Plain text
-#: build/C/man7/socket.7:687
+#: build/C/man7/socket.7:792
msgid "Valid B<fcntl>(2) operations:"
msgstr "有効な B<fcntl>(2) 操作:"
#. type: TP
-#: build/C/man7/socket.7:687
+#: build/C/man7/socket.7:792
#, no-wrap
msgid "B<FIOGETOWN>"
msgstr "B<FIOGETOWN>"
#. type: Plain text
-#: build/C/man7/socket.7:692
+#: build/C/man7/socket.7:797
msgid "The same as the B<SIOCGPGRP> B<ioctl>(2)."
msgstr "B<SIOCGPGRP> B<ioctl>(2) と同じ。"
#. type: TP
-#: build/C/man7/socket.7:692
+#: build/C/man7/socket.7:797
#, no-wrap
msgid "B<FIOSETOWN>"
msgstr "B<FIOSETOWN>"
#. type: Plain text
-#: build/C/man7/socket.7:697
+#: build/C/man7/socket.7:802
msgid "The same as the B<SIOCSPGRP> B<ioctl>(2)."
msgstr "B<SIOCSPGRP> B<ioctl>(2) と同じ。"
#. type: Plain text
-#: build/C/man7/socket.7:711
+#: build/C/man7/socket.7:816
msgid ""
"B<SO_BINDTODEVICE> was introduced in Linux 2.0.30. B<SO_PASSCRED> is new in "
"Linux 2.2. The I</proc> interfaces was introduced in Linux 2.2. "
"はできなかった。"
#. type: Plain text
-#: build/C/man7/socket.7:716
+#: build/C/man7/socket.7:821
msgid ""
"Linux assumes that half of the send/receive buffer is used for internal "
"kernel structures; thus the values in the corresponding I</proc> files are "
"なる。"
#. type: Plain text
-#: build/C/man7/socket.7:729
+#: build/C/man7/socket.7:834
msgid ""
"Linux will only allow port reuse with the B<SO_REUSEADDR> option when this "
"option was set both in the previous program that performed a B<bind>(2) to "
#. .SH AUTHORS
#. This man page was written by Andi Kleen.
#. type: Plain text
-#: build/C/man7/socket.7:742
+#: build/C/man7/socket.7:847
msgid ""
"The B<CONFIG_FILTER> socket options B<SO_ATTACH_FILTER> and "
"B<SO_DETACH_FILTER> are not documented. The suggested interface to use them "
"して 用いる方が良い。"
#. type: Plain text
-#: build/C/man7/socket.7:752
+#: build/C/man7/socket.7:859
+#, fuzzy
+#| msgid ""
+#| "B<getsockopt>(2), B<setsockopt>(2), B<socket>(2), B<capabilities>(7), "
+#| "B<ddp>(7), B<ip>(7), B<packet>(7), B<tcp>(7), B<udp>(7), B<unix>(7)"
msgid ""
-"B<getsockopt>(2), B<setsockopt>(2), B<socket>(2), B<capabilities>(7), B<ddp>"
-"(7), B<ip>(7), B<packet>(7), B<tcp>(7), B<udp>(7), B<unix>(7)"
+"B<getsockopt>(2), B<connect>(2), B<setsockopt>(2), B<socket>(2), "
+"B<capabilities>(7), B<ddp>(7), B<ip>(7), B<packet>(7), B<tcp>(7), B<udp>(7), "
+"B<unix>(7)"
msgstr ""
"B<getsockopt>(2), B<setsockopt>(2), B<socket>(2), B<capabilities>(7), B<ddp>"
"(7), B<ip>(7), B<packet>(7), B<tcp>(7), B<udp>(7), B<unix>(7)"
#. type: TH
-#: build/C/man2/socketcall.2:26
+#: build/C/man2/socketcall.2:25
#, no-wrap
msgid "SOCKETCALL"
msgstr "SOCKETCALL"
#. type: TH
-#: build/C/man2/socketcall.2:26
-#, no-wrap
-msgid "2007-06-28"
-msgstr "2007-06-28"
+#: build/C/man2/socketcall.2:25
+#, fuzzy, no-wrap
+#| msgid "2010-10-06"
+msgid "2012-10-16"
+msgstr "2010-10-06"
#. type: Plain text
-#: build/C/man2/socketcall.2:29
+#: build/C/man2/socketcall.2:28
msgid "socketcall - socket system calls"
msgstr "socketcall - ソケット・システムコール"
#. type: Plain text
-#: build/C/man2/socketcall.2:31
+#: build/C/man2/socketcall.2:30
msgid "B<int socketcall(int >I<call>B<, unsigned long *>I<args>B<);>"
msgstr "B<int socketcall(int >I<call>B<, unsigned long *>I<args>B<);>"
#. type: Plain text
-#: build/C/man2/socketcall.2:39
+#: build/C/man2/socketcall.2:38
msgid ""
"B<socketcall>() is a common kernel entry point for the socket system "
"calls. I<call> determines which socket function to invoke. I<args> points "
"ロックを指す。"
#. type: Plain text
-#: build/C/man2/socketcall.2:43
+#: 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 "
"必要がある。"
#. type: Plain text
-#: build/C/man2/socketcall.2:46
+#: build/C/man2/socketcall.2:45
msgid ""
"This call is specific to Linux, and should not be used in programs intended "
"to be portable."
"い。"
#. type: Plain text
-#: build/C/man2/socketcall.2:54
+#: build/C/man2/socketcall.2:53
+#, fuzzy
+#| msgid ""
+#| "On a few architectures, for example ia64, there is no B<socketcall>() "
+#| "system call; instead B<socket>(2), B<accept>(2), B<bind>(2), and so on "
+#| "really are implemented as separate system calls."
msgid ""
-"On a few architectures, for example ia64, there is no B<socketcall>() "
-"system call; instead B<socket>(2), B<accept>(2), B<bind>(2), and so on "
-"really are implemented as separate system calls."
+"On a some architectures\\(emfor example, x86-64 and ARM\\(emthere is no "
+"B<socketcall>() system call; instead B<socket>(2), B<accept>(2), B<bind>"
+"(2), and so on really are implemented as separate system calls."
msgstr ""
"ia64 などのいくつかのアーキテクチャでは、システムコール B<socketcall>() が存"
"在しない。実際には、その代わりに B<socket>(2), B<accept>(2), B<bind>(2) など"
"(2), B<socket>(2), B<socketpair>(2)"
#. type: TH
-#: build/C/man2/socketpair.2:40
+#: build/C/man2/socketpair.2:42
#, no-wrap
msgid "SOCKETPAIR"
msgstr "SOCKETPAIR"
#. type: TH
-#: build/C/man2/socketpair.2:40
+#: build/C/man2/socketpair.2:42
#, no-wrap
msgid "2008-10-11"
msgstr "2008-10-11"
#. type: Plain text
-#: build/C/man2/socketpair.2:43
+#: build/C/man2/socketpair.2:45
msgid "socketpair - create a pair of connected sockets"
msgstr "socketpair - 接続されたソケットのペアを作成する"
#. type: Plain text
-#: build/C/man2/socketpair.2:50
+#: build/C/man2/socketpair.2:52
msgid ""
"B<int socketpair(int >I<domain>B<, int >I<type>B<, int >I<protocol>B<, int "
">I<sv>B<[2]);>"
">I<sv>B<[2]);>"
#. type: Plain text
-#: build/C/man2/socketpair.2:61
+#: build/C/man2/socketpair.2:63
msgid ""
"The B<socketpair>() call creates an unnamed pair of connected sockets in "
"the specified I<domain>, of the specified I<type>, and using the optionally "
"のプロトコルを用いる。 これらの引き数の詳細は B<socket>(2) を参照のこと。"
#. type: Plain text
-#: build/C/man2/socketpair.2:67
+#: build/C/man2/socketpair.2:69
msgid ""
"The descriptors used in referencing the new sockets are returned in I<sv>[0] "
"and I<sv>[1]. The two sockets are indistinguishable."
"I<sv>[1] に返される。 二つのソケットは全く同じである。"
#. type: Plain text
-#: build/C/man2/socketpair.2:76
+#: 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:81
+#: build/C/man2/socketpair.2:83
msgid ""
"The address I<sv> does not specify a valid part of the process address space."
msgstr "アドレス I<sv> がこのプロセスで使えるアドレス空間を指定していない。"
#. type: Plain text
-#: build/C/man2/socketpair.2:84
+#: 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:90
+#: 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:93
+#: 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:101
+#: build/C/man2/socketpair.2:103
msgid ""
"4.4BSD, POSIX.1-2001. The B<socketpair>() function call appeared in "
"4.2BSD. It is generally portable to/from non-BSD systems supporting clones "
"BSD 以外のシステムと、 互いに移植性がある。"
#. type: Plain text
-#: build/C/man2/socketpair.2:107
+#: build/C/man2/socketpair.2:109
msgid ""
"On Linux, the only supported domain for this call is B<AF_UNIX> (or "
"synonymously, B<AF_LOCAL>). (Most implementations have the same "
"ある B<AF_LOCAL>) だけである。 (ほとんどの実装で同じ制限がある)"
#. type: Plain text
-#: build/C/man2/socketpair.2:116
+#: build/C/man2/socketpair.2:118
msgid ""
"Since Linux 2.6.27, B<socketpair>() supports the B<SOCK_NONBLOCK> and "
"B<SOCK_CLOEXEC> flags described in B<socket>(2)."
"B<SOCK_CLOEXEC> に対応している。フラグの説明は B<socket>(2) を参照のこと。"
#. type: Plain text
-#: build/C/man2/socketpair.2:128
+#: build/C/man2/socketpair.2:131
msgid ""
"B<pipe>(2), B<read>(2), B<socket>(2), B<write>(2), B<socket>(7), B<unix>(7)"
msgstr ""
"B<pipe>(2), B<read>(2), B<socket>(2), B<write>(2), B<socket>(7), B<unix>(7)"
-#~ msgid "COLOPHON"
-#~ msgstr "この文書について"
+#~ msgid "2011-09-16"
+#~ msgstr "2011-09-16"
+
+#~ msgid "B<MSG_WAITFORONE>"
+#~ msgstr "B<MSG_WAITFORONE>"
+
+#~ msgid "2010-06-10"
+#~ msgstr "2010-06-10"
#~ msgid ""
-#~ "This page is part of release 3.38 of the Linux I<man-pages> project. A "
-#~ "description of the project, and information about reporting bugs, can be "
-#~ "found at http://www.kernel.org/doc/man-pages/."
+#~ "\\(lqBSD Interprocess Communication Tutorial\\(rq is reprinted in I<UNIX "
+#~ "Programmer's Supplementary Documents Volume 1.>"
#~ msgstr ""
-#~ "この man ページは Linux I<man-pages> プロジェクトのリリース 3.38 の一部で"
-#~ "ある。\n"
-#~ "プロジェクトの説明とバグ報告に関する情報は\n"
-#~ "http://www.kernel.org/doc/man-pages/ に書かれている。"
+#~ "\\(lqBSD Interprocess Communication Tutorial\\(rq は I<UNIX Programmer's "
+#~ "Supplementary Documents Volume 1> として再版された。"
+
+#~ msgid "2007-06-28"
+#~ msgstr "2007-06-28"
+
+#~ msgid "2011-10-04"
+#~ msgstr "2011-10-04"
+
+#~ msgid "2010-08-31"
+#~ msgstr "2010-08-31"
+
+#~ msgid "2010-06-13"
+#~ msgstr "2010-06-13"
#~ msgid "RETURN VALUES"
#~ msgstr "RETURN VALUES"
-
-#~ msgid "2011-10-01"
-#~ msgstr "2011-10-01"