msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2013-04-30 20:30+0900\n"
-"PO-Revision-Date: 2013-05-18 02:27+0900\n"
+"POT-Creation-Date: 2014-04-13 10:27+0900\n"
+"PO-Revision-Date: 2014-04-13 10:39+0900\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
#: 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/man7/socket.7:56 build/C/man2/socketcall.2:25
#: build/C/man2/socketpair.2:42
#, no-wrap
msgid "Linux"
#: 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/socket.2:43 build/C/man7/socket.7:56
#: build/C/man2/socketcall.2:25 build/C/man2/socketpair.2:42
#, no-wrap
msgid "Linux Programmer's Manual"
#: 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/socket.2:44 build/C/man7/socket.7:57
#: build/C/man2/socketcall.2:26 build/C/man2/socketpair.2:43
#, no-wrap
msgid "NAME"
#: 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/socket.2:46 build/C/man7/socket.7:59
#: build/C/man2/socketcall.2:28 build/C/man2/socketpair.2:45
#, no-wrap
msgid "SYNOPSIS"
#: 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/socket.2:52 build/C/man7/socket.7:63
#: build/C/man2/socketcall.2:30 build/C/man2/socketpair.2:52
#, no-wrap
msgid "DESCRIPTION"
"できる。"
#. type: TP
-#: build/C/man2/accept.2:162 build/C/man2/socket.2:164
+#: build/C/man2/accept.2:162 build/C/man2/socket.2:160
#, no-wrap
msgid "B<SOCK_NONBLOCK>"
msgstr "B<SOCK_NONBLOCK>"
#. type: Plain text
-#: build/C/man2/accept.2:170 build/C/man2/socket.2:172
+#: build/C/man2/accept.2:170 build/C/man2/socket.2:168
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:170 build/C/man2/socket.2:172
+#: build/C/man2/accept.2:170 build/C/man2/socket.2:168
#, no-wrap
msgid "B<SOCK_CLOEXEC>"
msgstr "B<SOCK_CLOEXEC>"
#. type: Plain text
-#: build/C/man2/accept.2:180 build/C/man2/socket.2:182
+#: build/C/man2/accept.2:180 build/C/man2/socket.2:178
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 "
#: 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/recv.2:400 build/C/man2/recvmmsg.2:149
+#: build/C/man2/select.2:299 build/C/man2/select_tut.2:485
#: build/C/man2/send.2:275 build/C/man2/sendmmsg.2:119
-#: build/C/man3/sockatmark.3:51 build/C/man2/socket.2:314
+#: build/C/man3/sockatmark.3:51 build/C/man2/socket.2:310
#: build/C/man2/socketpair.2:69
#, no-wrap
msgid "RETURN VALUE"
#: 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
+#: build/C/man2/recv.2:416 build/C/man2/recvmmsg.2:157
+#: build/C/man2/select.2:317 build/C/man2/send.2:280
+#: build/C/man2/sendmmsg.2:133 build/C/man3/sockatmark.3:58
+#: build/C/man2/socket.2:315 build/C/man2/socketpair.2:74
#, no-wrap
msgid "ERRORS"
msgstr "エラー"
#. type: TP
-#: build/C/man2/accept.2:215 build/C/man2/recv.2:398 build/C/man2/send.2:296
+#: build/C/man2/accept.2:215 build/C/man2/recv.2:421 build/C/man2/send.2:296
#, no-wrap
msgid "B<EAGAIN> or B<EWOULDBLOCK>"
msgstr "B<EAGAIN> または B<EWOULDBLOCK>"
#: 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
+#: build/C/man2/recv.2:430 build/C/man2/select.2:318 build/C/man2/send.2:304
+#: build/C/man3/sockatmark.3:59
#, no-wrap
msgid "B<EBADF>"
msgstr "B<EBADF>"
#. type: TP
#: build/C/man2/accept.2:229 build/C/man2/bind.2:191
#: build/C/man2/connect.2:175 build/C/man2/getsockname.2:78
-#: build/C/man2/getsockopt.2:142 build/C/man2/recv.2:416
+#: build/C/man2/getsockopt.2:142 build/C/man2/recv.2:439
#: build/C/man2/send.2:313 build/C/man2/socketpair.2:78
#, no-wrap
msgid "B<EFAULT>"
#. type: TP
#: 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
+#: build/C/man2/recv.2:443 build/C/man2/select.2:323 build/C/man2/send.2:316
#, no-wrap
msgid "B<EINTR>"
msgstr "B<EINTR>"
#. type: TP
#: build/C/man2/accept.2:239 build/C/man2/accept.2:244 build/C/man2/bind.2:169
#: build/C/man2/bind.2:195 build/C/man2/getsockname.2:84
-#: build/C/man2/getsockopt.2:152 build/C/man2/recv.2: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
+#: build/C/man2/getsockopt.2:152 build/C/man2/recv.2:448
+#: build/C/man2/recvmmsg.2:161 build/C/man2/select.2:327
+#: build/C/man2/send.2:320 build/C/man3/sockatmark.3:63
+#: build/C/man2/socket.2:323 build/C/man2/socket.2:326
#, no-wrap
msgid "B<EINVAL>"
msgstr "B<EINVAL>"
msgstr "(B<accept4>()) I<flags> に不正な値が指定されている。"
#. type: TP
-#: build/C/man2/accept.2:249 build/C/man2/socket.2:335
+#: build/C/man2/accept.2:249 build/C/man2/socket.2:331
#: build/C/man2/socketpair.2:83
#, no-wrap
msgid "B<EMFILE>"
msgstr "1プロセスがオープンできるファイル・ディスクリプタ数の上限に達した。"
#. type: TP
-#: build/C/man2/accept.2:252 build/C/man2/socket.2:338
+#: build/C/man2/accept.2:252 build/C/man2/socket.2:334
#: build/C/man2/socketpair.2:86
#, no-wrap
msgid "B<ENFILE>"
msgstr "B<ENFILE>"
#. type: Plain text
-#: build/C/man2/accept.2:255 build/C/man2/socket.2:341
+#: build/C/man2/accept.2:255 build/C/man2/socket.2:337
#: build/C/man2/socketpair.2:89
msgid "The system limit on the total number of open files has been reached."
msgstr "オープンされたファイルの総数がシステム全体の上限に達していた。"
#: 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
+#: build/C/man2/recv.2:463 build/C/man2/send.2:349
#, no-wrap
msgid "B<ENOTSOCK>"
msgstr "B<ENOTSOCK>"
#. type: SH
#: build/C/man2/accept.2:289 build/C/man3/getifaddrs.3:162
#: build/C/man3/if_nameindex.3:97 build/C/man2/recvmmsg.2:165
-#: build/C/man2/select.2:325 build/C/man2/sendmmsg.2:145
-#: build/C/man3/sockatmark.3:68 build/C/man7/socket.7:802
+#: build/C/man2/select.2:336 build/C/man2/sendmmsg.2:145
+#: build/C/man3/sockatmark.3:70 build/C/man7/socket.7:913
#, no-wrap
msgid "VERSIONS"
msgstr "バージョン"
#. type: SH
#: 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/bindresvport.3:104 build/C/man2/connect.2:225
#: build/C/man3/getifaddrs.3:170 build/C/man2/getsockname.2:97
#: build/C/man2/getsockopt.2:171 build/C/man3/if_nameindex.3:104
#: build/C/man3/if_nametoindex.3:85 build/C/man2/listen.2:106
-#: build/C/man2/recv.2: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/recv.2:468 build/C/man2/recvmmsg.2:170
+#: build/C/man2/select.2:342 build/C/man2/send.2:368
+#: build/C/man2/sendmmsg.2:150 build/C/man3/sockatmark.3:78
+#: build/C/man2/socket.2:348 build/C/man2/socketcall.2:42
#: build/C/man2/socketpair.2:95
#, no-wrap
msgid "CONFORMING TO"
#. type: SH
#: 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/bindresvport.3:107 build/C/man2/connect.2:241
#: build/C/man3/getifaddrs.3:190 build/C/man2/getsockname.2:103
#: build/C/man2/getsockopt.2:178 build/C/man2/listen.2:111
-#: build/C/man2/recv.2:455 build/C/man2/select.2:346
+#: build/C/man2/recv.2:478 build/C/man2/select.2:357
#: build/C/man2/select_tut.2:503 build/C/man2/send.2:382
-#: build/C/man2/sendmmsg.2:153 build/C/man3/sockatmark.3:73
-#: build/C/man2/socket.2:366 build/C/man7/socket.7:816
+#: build/C/man2/sendmmsg.2:153 build/C/man3/sockatmark.3:80
+#: build/C/man2/socket.2:362 build/C/man7/socket.7:927
#: build/C/man2/socketcall.2:45 build/C/man2/socketpair.2:103
#, no-wrap
msgid "NOTES"
#. type: Plain text
#: build/C/man2/accept.2:330 build/C/man2/bind.2:240
#: build/C/man2/connect.2:247 build/C/man2/getsockopt.2:184
-#: build/C/man2/listen.2:137 build/C/man2/socket.2:372
+#: build/C/man2/listen.2:137 build/C/man2/socket.2:368
#: build/C/man2/socketpair.2:124
msgid ""
"POSIX.1-2001 does not require the inclusion of I<E<lt>sys/types.hE<gt>>, and "
#. type: Plain text
#: build/C/man2/accept.2:351
+#, fuzzy
+#| 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 connection might have been removed by an asynchronous network "
+#| "error or another thread before B<accept>() is called. If this happens "
+#| "then the call will block waiting for the next connection to arrive. To "
+#| "ensure that B<accept>() never blocks, the passed socket I<sockfd> needs "
+#| "to have the B<O_NONBLOCK> flag set (see B<socket>(7))."
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 "
"connection might have been removed by an asynchronous network error or "
-"another thread before B<accept>() is called. If this happens then the call "
-"will block waiting for the next connection to arrive. To ensure that "
+"another thread before B<accept>() is called. If this happens, then the "
+"call will block waiting for the next connection to arrive. To ensure that "
"B<accept>() never blocks, the passed socket I<sockfd> needs to have the "
"B<O_NONBLOCK> flag set (see B<socket>(7))."
msgstr ""
#: 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/recv.2:513 build/C/man2/recvmmsg.2:173
+#: build/C/man2/select.2:548 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
+#: build/C/man3/sockatmark.3:104 build/C/man2/socket.2:381
#, no-wrap
msgid "EXAMPLE"
msgstr "例"
#. type: SH
#: 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/bindresvport.3:113 build/C/man2/connect.2:263
+#: build/C/man3/getifaddrs.3:309 build/C/man2/getsockname.2:114
+#: build/C/man2/getsockopt.2:202 build/C/man3/if_nameindex.3:147
#: 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/recv.2:518 build/C/man2/recvmmsg.2:268
+#: build/C/man2/select.2:585 build/C/man2/select_tut.2:821
#: 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/man3/sockatmark.3:139 build/C/man2/socket.2:386
+#: build/C/man7/socket.7:958 build/C/man2/socketcall.2:53
#: build/C/man2/socketpair.2:124
#, no-wrap
msgid "SEE ALSO"
#. 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/bindresvport.3:116 build/C/man2/connect.2:270
+#: build/C/man3/getifaddrs.3:315 build/C/man2/getsockname.2:121
+#: build/C/man2/getsockopt.2:212 build/C/man3/if_nameindex.3:154
#: 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/recv.2:529 build/C/man2/recvmmsg.2:275
+#: build/C/man2/select.2:599 build/C/man2/select_tut.2:840
#: 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/man3/sockatmark.3:144 build/C/man2/socket.2:415
+#: build/C/man7/socket.7:970 build/C/man2/socketcall.2:71
#: build/C/man2/socketpair.2:131
#, no-wrap
msgid "COLOPHON"
#. 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/bindresvport.3:123 build/C/man2/connect.2:277
+#: build/C/man3/getifaddrs.3:322 build/C/man2/getsockname.2:128
+#: build/C/man2/getsockopt.2:219 build/C/man3/if_nameindex.3:161
#: 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/recv.2:536 build/C/man2/recvmmsg.2:282
+#: build/C/man2/select.2:606 build/C/man2/select_tut.2:847
#: 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/man3/sockatmark.3:151 build/C/man2/socket.2:422
+#: build/C/man7/socket.7:977 build/C/man2/socketcall.2:78
#: build/C/man2/socketpair.2:138
msgid ""
-"This page is part of release 3.51 of the Linux I<man-pages> project. A "
+"This page is part of release 3.63 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/."
+"found at \\%http://www.kernel.org/doc/man-pages/."
msgstr ""
-"この man ページは Linux I<man-pages> プロジェクトのリリース 3.51 の一部\n"
+"この man ページは Linux I<man-pages> プロジェクトのリリース 3.63 の一部\n"
"である。プロジェクトの説明とバグ報告に関する情報は\n"
"http://www.kernel.org/doc/man-pages/ に書かれている。"
#. type: TP
#: 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
+#: build/C/man2/send.2:285 build/C/man2/socket.2:316
#, no-wrap
msgid "B<EACCES>"
msgstr "B<EACCES>"
msgstr "ファイルが存在しない。"
#. type: TP
-#: build/C/man2/bind.2:213 build/C/man2/recv.2:429 build/C/man2/select.2:322
+#: build/C/man2/bind.2:213 build/C/man2/recv.2:452 build/C/man2/select.2:333
#: build/C/man2/send.2:343
#, no-wrap
msgid "B<ENOMEM>"
#. type: Plain text
#: build/C/man2/bind.2:222
-msgid "The socket inode would reside on a read-only file system."
+msgid "The socket inode would reside on a read-only filesystem."
msgstr "ソケット inode が読み込み専用のファイルシステム上にある。"
#. SVr4 documents an additional
#. type: SH
#: 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
+#: build/C/man2/select.2:485 build/C/man2/send.2:414
+#: build/C/man3/sockatmark.3:100 build/C/man7/socket.7:945
#, no-wrap
msgid "BUGS"
msgstr "バグ"
msgstr "BINDRESVPORT"
#. type: TH
-#: 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
+#: build/C/man3/bindresvport.3:30
#, no-wrap
-msgid "2008-12-03"
-msgstr "2008-12-03"
+msgid "2013-06-21"
+msgstr "2013-06-21"
#. type: Plain text
#: build/C/man3/bindresvport.3:33
msgstr ""
"I<sin> が NULL 以外で、かつ I<sin-E<gt>sin_family> が B<AF_INET> でなかった。"
+#. type: SH
+#: build/C/man3/bindresvport.3:92 build/C/man3/sockatmark.3:73
+#, no-wrap
+msgid "ATTRIBUTES"
+msgstr "属性"
+
+#. type: SS
+#: build/C/man3/bindresvport.3:93 build/C/man3/sockatmark.3:74
+#, no-wrap
+msgid "Multithreading (see pthreads(7))"
+msgstr "マルチスレッディング (pthreads(7) 参照)"
+
#. type: Plain text
-#: build/C/man3/bindresvport.3:95
+#: build/C/man3/bindresvport.3:98
+msgid ""
+"Before glibc 2.17, the B<bindresvport>() function uses a static variable "
+"that is not protected, so it is not thread-safe."
+msgstr ""
+"glibc 2.17 より前のバージョンでは、 B<bindresvport>() 関数は保護されていない"
+"静的変数を使用しているため、スレッドセーフではない。"
+
+#. commit f6da27e53695ad1cc0e2a9490358decbbfdff5e5
+#. type: Plain text
+#: build/C/man3/bindresvport.3:104
+msgid ""
+"Since glibc 2.17, the B<bindresvport>() function uses a lock to protect "
+"static variable, so it is thread-safe."
+msgstr ""
+"glibc 2.17 以降では、 B<bindresvport>() 関数は静的変数を保護するロックを使っ"
+"ており、スレッドセーフである。"
+
+#. type: Plain text
+#: build/C/man3/bindresvport.3:107
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:101
+#: build/C/man3/bindresvport.3:113
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:104
+#: build/C/man3/bindresvport.3:116
msgid "B<bind>(2), B<getsockname>(2)"
msgstr "B<bind>(2), B<getsockname>(2)"
msgid "CONNECT"
msgstr "CONNECT"
+#. type: TH
+#: build/C/man2/connect.2:67 build/C/man2/getsockname.2:40
+#, no-wrap
+msgid "2008-12-03"
+msgstr "2008-12-03"
+
#. type: Plain text
#: build/C/man2/connect.2:70
msgid "connect - initiate a connection on a socket"
"times to change their association. Connectionless sockets may dissolve the "
"association by connecting to an address with the I<sa_family> member of "
"I<sockaddr> set to B<AF_UNSPEC> (supported on Linux since kernel 2.2)."
-msgstr "一般的に、接続指向 (connection-oriented) プロトコルでは一度だけ B<connect>() が成功する。 コネクションレス (connectionless) プロトコルでは対応を変更するために何度も B<connect>() を使用できる。 非接続ソケットは I<sockaddr> の I<sa_family> メンバに B<AF_UNSPEC> を設定することで、接続アドレスの対応を解消することができる (B<AF_UNSPEC> はカーネル 2.2 以降の Linux でサポート)。"
+msgstr ""
+"一般的に、接続指向 (connection-oriented) プロトコルでは一度だけ B<connect>"
+"() が成功する。 コネクションレス (connectionless) プロトコルでは対応を変更す"
+"るために何度も B<connect>() を使用できる。 非接続ソケットは I<sockaddr> の "
+"I<sa_family> メンバに B<AF_UNSPEC> を設定することで、接続アドレスの対応を解消"
+"することができる (B<AF_UNSPEC> はカーネル 2.2 以降の Linux でサポート)。"
#. type: Plain text
#: build/C/man2/connect.2:132
msgstr "ローカルアドレスが既に使用されている。"
#. type: TP
-#: build/C/man2/connect.2:151 build/C/man2/socket.2:324
+#: build/C/man2/connect.2:151 build/C/man2/socket.2:320
#: build/C/man2/socketpair.2:75
#, no-wrap
msgid "B<EAFNOSUPPORT>"
"い。"
#. type: TP
-#: build/C/man2/connect.2:172 build/C/man2/recv.2:412
+#: build/C/man2/connect.2:172 build/C/man2/recv.2:435
#, no-wrap
msgid "B<ECONNREFUSED>"
msgstr "B<ECONNREFUSED>"
#. type: TH
#: build/C/man3/getifaddrs.3:36
#, no-wrap
-msgid "2012-11-11"
-msgstr "2012-11-11"
+msgid "2014-02-26"
+msgstr ""
#. type: TH
#: build/C/man3/getifaddrs.3:36 build/C/man3/if_nameindex.3:26
"first item of the list in I<*ifap>. The list consists of I<ifaddrs> "
"structures, defined as follows:"
msgstr ""
+"B<getifaddrs>() 関数は、ローカルシステムのネットワークインターフェース情報を"
+"表す構造体の連結リストを作成し、 リストの先頭の要素のアドレスを I<*ifap> に格"
+"納する。 リストは I<ifaddrs> 構造体で構成される。 I<ifaddrs> 構造体は以下のよ"
+"うに定義されている。"
#. type: Plain text
#: build/C/man3/getifaddrs.3:77
"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."
msgstr ""
+"I<ifa_next> フィールドにはリストの次の構造体へのポインタが格納される。 この要"
+"素がリストの最後の場合には NULL が入る。"
#. The constant
#. .B IF NAMESIZE
#. type: Plain text
#: build/C/man3/getifaddrs.3:91
msgid "The I<ifa_name> points to the null-terminated interface name."
-msgstr ""
+msgstr "I<ifa_name> は NULL 終端されたインターフェース名を指す。"
#. type: Plain text
#: build/C/man3/getifaddrs.3:100
"B<SIOCGIFFLAGS> B<ioctl>(2) operation (see B<netdevice>(7) for a list of "
"these flags)."
msgstr ""
+"I<ifa_flags> フィールドには、 B<SIOCGIFFLAGS> B<ioctl>(2) 操作で返されるイン"
+"ターフェースのフラグが格納される (これらのフラグのリストについては "
+"B<netdevice>(7) を参照)。"
#. type: Plain text
#: build/C/man3/getifaddrs.3:109
+#, fuzzy
+#| 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.) This field may contain a NULL pointer."
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.) This field may contain a NULL pointer."
+"format of the address structure.) This field may contain a null pointer."
msgstr ""
+"I<ifa_addr> フィールドは、インターフェースのアドレスを格納した構造体へのポイ"
+"ンタである (I<sa_family> サブフィールドを参照して、アドレス構造体の形式を判別"
+"すべきである)。 このフィールドは NULL ポインタとなる場合がある。"
#. type: Plain text
#: build/C/man3/getifaddrs.3:116
+#, fuzzy
+#| msgid ""
+#| "The I<ifa_netmask> field points to a structure containing the netmask "
+#| "associated with I<ifa_addr>, if applicable for the address family. This "
+#| "field may contain a NULL pointer."
msgid ""
"The I<ifa_netmask> field points to a structure containing the netmask "
"associated with I<ifa_addr>, if applicable for the address family. This "
-"field may contain a NULL pointer."
+"field may contain a null pointer."
msgstr ""
+"I<ifa_netmask> フィールドには、 ネットマスクがあるアドレスファミリーであれ"
+"ば、 I<ifa_addr> に関連付けられたネットマスクを格納した構造体へのポインタが入"
+"る。 このフィールドは NULL ポインタとなる場合がある。"
#. type: Plain text
#: build/C/man3/getifaddrs.3:131
"applicable for the address family) or I<ifa_dstaddr> will contain the "
"destination address of the point-to-point interface."
msgstr ""
+"I<ifa_flags> にビット B<IFF_BROADCAST> か B<IFF_POINTOPOINT> のどちらが設定さ"
+"れているかにより (同時にはこれらのどちらか一方だけが設定される)、 "
+"I<ifa_broadaddr> に I<ifa_addr> に対応するブロードキャストが入るか (そのアド"
+"レスファミリーでブロードキャストがある場合)、 I<ifa_dstaddr> に point-to-"
+"point インターフェースの宛先アドレスが入るかが決まる。"
#. type: Plain text
#: build/C/man3/getifaddrs.3:136
"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 ""
+"I<ifa_data> フィールドは、 アドレスファミリー固有のデータが入ったバッファへの"
+"ポインタである。 そのインターフェースでこのようなデータがない場合には、 この"
+"フィールドは NULL となる。"
#. type: Plain text
#: build/C/man3/getifaddrs.3:142
"The data returned by B<getifaddrs>() is dynamically allocated and should be "
"freed using B<freeifaddrs>() when no longer needed."
msgstr ""
+"B<getifaddrs>() が返すデータは動的に確保される。 必要なくなった際には "
+"B<freeifaddrs>() を使って解放すべきである。"
#. type: Plain text
#: build/C/man3/getifaddrs.3:149
"On success, B<getifaddrs>() returns zero; on error, -1 is returned, and "
"I<errno> is set appropriately."
msgstr ""
+"成功すると、 B<getifaddrs> は 0 を返す。 エラーの場合、 -1 が返り、 I<errno> "
+"が適切に設定される。"
#. type: Plain text
#: build/C/man3/getifaddrs.3:162
"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>"
"(2), B<malloc>(3), or B<realloc>(3)."
-msgstr "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>(2), B<malloc>(3), or B<realloc>(3)."
+msgstr ""
+"B<getifaddrs>() は失敗する場合があり、その場合には I<errno> には B<socket>"
+"(2), B<bind>(2), B<getsockname>(2), B<recvmsg>(2), B<sendto>(2), B<malloc>"
+"(3), B<realloc>(3) に対して規定されているエラーのいずれかが設定される。"
#. type: Plain text
#: build/C/man3/getifaddrs.3:170
"added in glibc 2.3.3. Support of address families other than IPv4 is "
"available only on kernels that support netlink."
msgstr ""
+"B<getifaddrs>() 関数は glibc 2.3 で初めて登場したが、 glibc 2.3.3 より前の"
+"バージョンの実装では IPv4 アドレスだけがサポートされていた。 IPv6 のサポート"
+"は glibc 2.3.3 で追加された。 IPv4 以外のアドレスファミリーが B<getifaddrs> "
+"で利用できるのは、 netlink をサポートするカーネルの場合だけである。"
#. , but the BSD-derived documentation generally
#. appears to be confused and obsolete on this point.
"address assigned. Also, the way of choosing either I<ifa_broadaddr> or "
"I<ifa_dstaddr> differs on various systems."
msgstr ""
+"POSIX.1-2001 にはない。 この関数は BSDi で初めて登場し、 BSD 系のシステムに存"
+"在するが、 ドキュメント上はかなり動作が異なり、アドレス毎ではなくインター"
+"フェース毎に 1 エントリを返す。 このことは、 インターフェースがアドレスを持た"
+"ない場合には I<ifa_addr> や他のフィールドは実際に NULL になり、 インター"
+"フェースに IP アドレスが割り当てられている場合には リンクレベルのアドレスは返"
+"されない、ということを意味する。 また、 I<ifa_broadaddr> と I<ifa_dstaddr> の"
+"どちらを選択するかを決める方法は、 システムにより異なる。"
#. type: Plain text
#: build/C/man3/getifaddrs.3:207
"earlier, I<struct net_device_stats>, defined in I<E<lt>linux/netdevice."
"hE<gt>>), which contains various interface attributes and statistics."
msgstr ""
+"Linux では、 返されるアドレスは通常インターフェースに割り当てられた IPv4 アド"
+"レスと IPv6 アドレスになるが、 これ以外にインターフェース毎に一つ "
+"B<AF_PACKET> アドレスも返される。 B<AF_PACKET> アドレスには、 インターフェー"
+"スとその物理層に関する低レベルの詳細が格納される。 この場合、 I<ifa_data> "
+"フィールドには、 I<E<lt>linux/if_link.hE<gt>> で定義される I<struct "
+"rtnl_link_stats> (Linux 2.4 以前では I<E<lt>linux/netdevice.hE<gt>> で定義さ"
+"れる I<struct net_device_stats>) へのポインタが格納される。 この構造体には、"
+"インターフェースの様々な属性や統計情報が入る。"
#. type: Plain text
#: build/C/man3/getifaddrs.3:214
"and B<getnameinfo>(3). Here is what we see when running this program on one "
"system:"
msgstr ""
+"以下のプログラムは B<getifaddrs>(), B<freeifaddrs>(), B<getnameinfo>(3) の使"
+"用例である。 以下はこのプログラムをあるシステムで実行した際の出力である。"
#. type: Plain text
-#: build/C/man3/getifaddrs.3:228
+#: build/C/man3/getifaddrs.3:235
#, no-wrap
msgid ""
"$ B<./a.out>\n"
-"lo address family: 17 (AF_PACKET)\n"
-"eth0 address family: 17 (AF_PACKET)\n"
-"lo address family: 2 (AF_INET)\n"
-" address: E<lt>127.0.0.1E<gt>\n"
-"eth0 address family: 2 (AF_INET)\n"
-" address: E<lt>10.1.1.4E<gt>\n"
-"lo address family: 10 (AF_INET6)\n"
-" address: E<lt>::1E<gt>\n"
-"eth0 address family: 10 (AF_INET6)\n"
-" address: E<lt>fe80::2d0:59ff:feda:eb51%eth0E<gt>\n"
+"lo AF_PACKET (17)\n"
+" tx_packets = 524; rx_packets = 524\n"
+" tx_bytes = 38788; rx_bytes = 38788\n"
+"wlp3s0 AF_PACKET (17)\n"
+" tx_packets = 108391; rx_packets = 130245\n"
+" tx_bytes = 30420659; rx_bytes = 94230014\n"
+"em1 AF_PACKET (17)\n"
+" tx_packets = 0; rx_packets = 0\n"
+" tx_bytes = 0; rx_bytes = 0\n"
+"lo AF_INET (2)\n"
+" address: E<lt>127.0.0.1E<gt>\n"
+"wlp3s0 AF_INET (2)\n"
+" address: E<lt>192.168.235.137E<gt>\n"
+"lo AF_INET6 (10)\n"
+" address: E<lt>::1E<gt>\n"
+"wlp3s0 AF_INET6 (10)\n"
+" address: E<lt>fe80::7ee9:d3ff:fef5:1a91%wlp3s0E<gt>\n"
msgstr ""
-"$ B<./a.out>\n"
-"lo address family: 17 (AF_PACKET)\n"
-"eth0 address family: 17 (AF_PACKET)\n"
-"lo address family: 2 (AF_INET)\n"
-" address: E<lt>127.0.0.1E<gt>\n"
-"eth0 address family: 2 (AF_INET)\n"
-" address: E<lt>10.1.1.4E<gt>\n"
-"lo address family: 10 (AF_INET6)\n"
-" address: E<lt>::1E<gt>\n"
-"eth0 address family: 10 (AF_INET6)\n"
-" address: E<lt>fe80::2d0:59ff:feda:eb51%eth0E<gt>\n"
#. type: SS
-#: build/C/man3/getifaddrs.3:230 build/C/man3/if_nameindex.3:120
+#: build/C/man3/getifaddrs.3:237 build/C/man3/if_nameindex.3:121
#: build/C/man2/recvmmsg.2:206
#, no-wrap
msgid "Program source"
msgstr "プログラムのソース"
#. type: Plain text
-#: build/C/man3/getifaddrs.3:240
-#, no-wrap
+#: build/C/man3/getifaddrs.3:249
+#, fuzzy, no-wrap
+#| msgid ""
+#| "#include E<lt>arpa/inet.hE<gt>\n"
+#| "#include E<lt>sys/socket.hE<gt>\n"
+#| "#include E<lt>netdb.hE<gt>\n"
+#| "#include E<lt>ifaddrs.hE<gt>\n"
+#| "#include E<lt>stdio.hE<gt>\n"
+#| "#include E<lt>stdlib.hE<gt>\n"
+#| "#include E<lt>unistd.hE<gt>\n"
msgid ""
+"#define _GNU_SOURCE /* To get defns of NI_MAXSERV and NI_MAXHOST */\n"
"#include E<lt>arpa/inet.hE<gt>\n"
"#include E<lt>sys/socket.hE<gt>\n"
"#include E<lt>netdb.hE<gt>\n"
"#include E<lt>stdio.hE<gt>\n"
"#include E<lt>stdlib.hE<gt>\n"
"#include E<lt>unistd.hE<gt>\n"
+"#include E<lt>linux/if_link.hE<gt>\n"
msgstr ""
"#include E<lt>arpa/inet.hE<gt>\n"
"#include E<lt>sys/socket.hE<gt>\n"
"#include E<lt>unistd.hE<gt>\n"
#. type: Plain text
-#: build/C/man3/getifaddrs.3:247
-#, no-wrap
-msgid ""
-"int\n"
-"main(int argc, char *argv[])\n"
+#: build/C/man3/getifaddrs.3:255
+#, 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 main(int argc, char *argv[])\n"
"{\n"
" struct ifaddrs *ifaddr, *ifa;\n"
-" int family, s;\n"
+" int family, s, n;\n"
" char host[NI_MAXHOST];\n"
msgstr ""
"int\n"
" char host[NI_MAXHOST];\n"
#. type: Plain text
-#: build/C/man3/getifaddrs.3:252
+#: build/C/man3/getifaddrs.3:260
#, no-wrap
msgid ""
" if (getifaddrs(&ifaddr) == -1) {\n"
" }\n"
#. type: Plain text
-#: build/C/man3/getifaddrs.3:255
+#: build/C/man3/getifaddrs.3:263
#, 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:259
-#, no-wrap
+#: build/C/man3/getifaddrs.3:267
+#, fuzzy, no-wrap
+#| msgid ""
+#| " for (ifa = ifaddr; ifa != NULL; ifa = ifa-E<gt>ifa_next) {\n"
+#| " if (ifa-E<gt>ifa_addr == NULL)\n"
+#| " continue;\n"
msgid ""
-" for (ifa = ifaddr; ifa != NULL; ifa = ifa-E<gt>ifa_next) {\n"
+" for (ifa = ifaddr, n = 0; ifa != NULL; ifa = ifa-E<gt>ifa_next, n++) {\n"
" if (ifa-E<gt>ifa_addr == NULL)\n"
" continue;\n"
msgstr ""
" continue;\n"
#. type: Plain text
-#: build/C/man3/getifaddrs.3:261
+#: build/C/man3/getifaddrs.3:269
#, 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:264
+#: build/C/man3/getifaddrs.3:272
#, 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:270
-#, no-wrap
+#: build/C/man3/getifaddrs.3:279
+#, fuzzy, no-wrap
+#| msgid ""
+#| " printf(\"%s\\t address family: %d%s\\en\",\n"
+#| " ifa-E<gt>ifa_name, family,\n"
+#| " (family == AF_PACKET) ? \" (AF_PACKET)\" :\n"
+#| " (family == AF_INET) ? \" (AF_INET)\" :\n"
+#| " (family == AF_INET6) ? \" (AF_INET6)\" : \"\");\n"
msgid ""
-" printf(\"%s\\t address family: %d%s\\en\",\n"
-" ifa-E<gt>ifa_name, family,\n"
-" (family == AF_PACKET) ? \" (AF_PACKET)\" :\n"
-" (family == AF_INET) ? \" (AF_INET)\" :\n"
-" (family == AF_INET6) ? \" (AF_INET6)\" : \"\");\n"
+" printf(\"%-8s %s (%d)\\en\",\n"
+" ifa-E<gt>ifa_name,\n"
+" (family == AF_PACKET) ? \"AF_PACKET\" :\n"
+" (family == AF_INET) ? \"AF_INET\" :\n"
+" (family == AF_INET6) ? \"AF_INET6\" : \"???\",\n"
+" family);\n"
msgstr ""
" printf(\"%s\\t address family: %d%s\\en\",\n"
" ifa-E<gt>ifa_name, family,\n"
" (family == AF_INET6) ? \" (AF_INET6)\" : \"\");\n"
#. type: Plain text
-#: build/C/man3/getifaddrs.3:272
+#: build/C/man3/getifaddrs.3:281
#, 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:285
-#, no-wrap
+#: build/C/man3/getifaddrs.3:292
+#, fuzzy, no-wrap
+#| msgid ""
+#| " if (family == AF_INET || family == AF_INET6) {\n"
+#| " s = getnameinfo(ifa-E<gt>ifa_addr,\n"
+#| " (family == AF_INET) ? sizeof(struct sockaddr_in) :\n"
+#| " sizeof(struct sockaddr_in6),\n"
+#| " host, NI_MAXHOST, NULL, 0, NI_NUMERICHOST);\n"
+#| " if (s != 0) {\n"
+#| " printf(\"getnameinfo() failed: %s\\en\", gai_strerror(s));\n"
+#| " exit(EXIT_FAILURE);\n"
+#| " }\n"
+#| " printf(\"\\etaddress: E<lt>%sE<gt>\\en\", host);\n"
+#| " }\n"
+#| " }\n"
msgid ""
" if (family == AF_INET || family == AF_INET6) {\n"
" s = getnameinfo(ifa-E<gt>ifa_addr,\n"
" (family == AF_INET) ? sizeof(struct sockaddr_in) :\n"
" sizeof(struct sockaddr_in6),\n"
-" host, NI_MAXHOST, NULL, 0, NI_NUMERICHOST);\n"
+" host, NI_MAXHOST,\n"
+" NULL, 0, NI_NUMERICHOST);\n"
" if (s != 0) {\n"
" printf(\"getnameinfo() failed: %s\\en\", gai_strerror(s));\n"
" exit(EXIT_FAILURE);\n"
" }\n"
-" printf(\"\\etaddress: E<lt>%sE<gt>\\en\", host);\n"
-" }\n"
-" }\n"
msgstr ""
" if (family == AF_INET || family == AF_INET6) {\n"
" s = getnameinfo(ifa-E<gt>ifa_addr,\n"
" }\n"
#. type: Plain text
-#: build/C/man3/getifaddrs.3:289
+#: build/C/man3/getifaddrs.3:294
+#, no-wrap
+msgid " printf(\"\\et\\etaddress: E<lt>%sE<gt>\\en\", host);\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/getifaddrs.3:297
+#, no-wrap
+msgid ""
+" } else if (family == AF_PACKET && ifa-E<gt>ifa_data != NULL) {\n"
+" struct rtnl_link_stats *stats = ifa-E<gt>ifa_data;\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/getifaddrs.3:304
+#, no-wrap
+msgid ""
+" printf(\"\\et\\ettx_packets = %10u; rx_packets = %10u\\en\"\n"
+" \"\\et\\ettx_bytes = %10u; rx_bytes = %10u\\en\",\n"
+" stats-E<gt>tx_packets, stats-E<gt>rx_packets,\n"
+" stats-E<gt>tx_bytes, stats-E<gt>rx_bytes);\n"
+" }\n"
+" }\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/getifaddrs.3:308
#, no-wrap
msgid ""
" freeifaddrs(ifaddr);\n"
"}\n"
#. type: Plain text
-#: build/C/man3/getifaddrs.3:296
+#: build/C/man3/getifaddrs.3:315
msgid ""
"B<bind>(2), B<getsockname>(2), B<socket>(2), B<packet>(7), B<ifconfig>(8)"
msgstr ""
"SVr4, 4.4BSD (B<getsockname>() 関数は 4.2BSD で追加された), POSIX.1-2001."
#. type: Plain text
-#: build/C/man2/getsockname.2:112
+#: build/C/man2/getsockname.2:114
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 "
-"the present I<socklen_t>, also used by glibc. See also B<accept>(2)."
+"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 the present I<socklen_t>, also used by glibc. See also B<accept>"
+"(2)."
msgstr ""
"B<getsockname>() の三番目の引き数は (4.x BSD や libc4, libc5 と同様に) 実際"
-"には I<int *> である。 glibc でも使われている現在の I<socklen_t> に関して、 "
-"POSIX には少し混乱がある。 詳しくは B<accept>(2) を参照のこと。"
+"には I<int\\ *> である。 glibc でも使われている現在の I<socklen_t> に関し"
+"て、 POSIX には少し混乱がある。 詳しくは B<accept>(2) を参照のこと。"
#. type: Plain text
-#: build/C/man2/getsockname.2:119
+#: build/C/man2/getsockname.2:121
msgid ""
"B<bind>(2), B<socket>(2), B<getifaddrs>(3), B<ip>(7), B<socket>(7), B<unix>"
"(7)"
msgid "GETSOCKOPT"
msgstr "GETSOCKOPT"
+#. type: TH
+#: build/C/man2/getsockopt.2:44
+#, fuzzy, no-wrap
+#| msgid "2009-01-19"
+msgid "2014-01-24"
+msgstr "2009-01-19"
+
#. type: Plain text
#: build/C/man2/getsockopt.2:47
msgid "getsockopt, setsockopt - get and set options on sockets"
"ソケットのオプションのいくつかはシステムのより低い層で 処理されるべきである。"
#. type: Plain text
-#: build/C/man2/getsockopt.2:210
+#: build/C/man2/getsockopt.2:212
+#, fuzzy
+#| msgid ""
+#| "B<ioctl>(2), B<socket>(2), B<getprotoent>(3), B<protocols>(5), B<socket>"
+#| "(7), B<tcp>(7), B<unix>(7)"
msgid ""
-"B<ioctl>(2), B<socket>(2), B<getprotoent>(3), B<protocols>(5), B<socket>(7), "
-"B<tcp>(7), B<unix>(7)"
+"B<ioctl>(2), B<socket>(2), B<getprotoent>(3), B<protocols>(5), B<ip>(7), "
+"B<socket>(7), B<tcp>(7), B<udp>(7), B<unix>(7)"
msgstr ""
"B<ioctl>(2), B<socket>(2), B<getprotoent>(3), B<protocols>(5), B<socket>(7), "
"B<tcp>(7), B<unix>(7)"
#: build/C/man3/if_nameindex.3:29
msgid ""
"if_nameindex, if_freenameindex - get network interface names and indexes"
-msgstr "if_nameindex, if_freenameindex - ネットワークインターフェースの名前とインデックスを取得する"
+msgstr ""
+"if_nameindex, if_freenameindex - ネットワークインターフェースの名前とインデッ"
+"クスを取得する"
#. type: Plain text
#: build/C/man3/if_nameindex.3:32 build/C/man3/if_nametoindex.3:32
"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 "B<if_nameindex>() 関数は I<if_nameindex> 構造体の配列を返す。 各構造体にはローカルシステムのネットワークインターフェースのいずれかの情報が入る。 I<if_nameindex> 構造体には少なくとも以下のフィールドがある。"
+msgstr ""
+"B<if_nameindex>() 関数は I<if_nameindex> 構造体の配列を返す。 各構造体には"
+"ローカルシステムのネットワークインターフェースのいずれかの情報が入る。 "
+"I<if_nameindex> 構造体には少なくとも以下のフィールドがある。"
#. type: Plain text
#: build/C/man3/if_nameindex.3:51
"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 "I<if_index> フィールドにはインターフェースのインデックスが入る。 I<ifa_name> フィールドは NULL 終端されたインターフェース名を指す。 配列の最後は、 I<if_index> が 0 で I<ifa_name> が NULL のエントリで示される。"
+msgstr ""
+"I<if_index> フィールドにはインターフェースのインデックスが入る。 I<ifa_name> "
+"フィールドは NULL 終端されたインターフェース名を指す。 配列の最後は、 "
+"I<if_index> が 0 で I<ifa_name> が NULL のエントリで示される。"
#. 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 "B<if_nameindex>() が返すデータ構造体は動的に確保される。 必要なくなった際には B<if_freenameindex>() で解放すべきである。"
+msgstr ""
+"B<if_nameindex>() が返すデータ構造体は動的に確保される。 必要なくなった際に"
+"は B<if_freenameindex>() で解放すべきである。"
#. type: Plain text
#: build/C/man3/if_nameindex.3:78
+#, fuzzy
+#| msgid ""
+#| "On success, B<if_nameindex>() returns pointer to the array; on error, a "
+#| "NULL pointer 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 "成功した場合には B<if_nameindex>() は配列へのポインタを返す。エラー時には NULL ポインタが返され、 I<errno> が適切に設定される。"
+"On success, B<if_nameindex>() returns pointer to the array; on error, NULL "
+"is returned, and I<errno> is set appropriately."
+msgstr ""
+"成功した場合には B<if_nameindex>() は配列へのポインタを返す。エラー時には "
+"NULL ポインタが返され、 I<errno> が適切に設定される。"
#. type: Plain text
#: build/C/man3/if_nameindex.3:83
"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 "B<if_nameindex>() は、 B<socket>(2), B<bind>(2), B<ioctl>(2), B<getsockname>(2), B<recvmsg>(2), B<sendto>(2), B<malloc>(3) に対して規定されているエラーのいずれかで失敗する場合がある。"
+msgstr ""
+"B<if_nameindex>() は、 B<socket>(2), B<bind>(2), B<ioctl>(2), B<getsockname>"
+"(2), B<recvmsg>(2), B<sendto>(2), B<malloc>(3) に対して規定されているエラーの"
+"いずれかで失敗する場合がある。"
#. type: Plain text
#: build/C/man3/if_nameindex.3:104
"glibc 2.3.4, the implementation supported only interfaces with IPv4 "
"addresses. Support of interfaces that don't have IPv4 addresses is "
"available only on kernels that support netlink."
-msgstr "B<if_nameindex>() 関数は glibc 2.1 で初めて登場したが、 glibc 2.3.4 より前のバージョンの実装では IPv4 アドレスを持つインターフェースのみをサポートしていた。 IPv4 アドレスを持たないインターフェースがサポートされているのは、 netlink をサポートするカーネルにおいてのみである。"
+msgstr ""
+"B<if_nameindex>() 関数は glibc 2.1 で初めて登場したが、 glibc 2.3.4 より前の"
+"バージョンの実装では IPv4 アドレスを持つインターフェースのみをサポートしてい"
+"た。 IPv4 アドレスを持たないインターフェースがサポートされているのは、 "
+"netlink をサポートするカーネルにおいてのみである。"
#. type: Plain text
#: build/C/man3/if_nameindex.3:106 build/C/man3/if_nametoindex.3:87
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 "以下のプログラムはこのページで説明した関数の使い方を示している。このプログラムが生成する出力は以下のようになる。"
+msgstr ""
+"以下のプログラムはこのページで説明した関数の使い方を示している。このプログラ"
+"ムが生成する出力は以下のようになる。"
#. type: Plain text
-#: build/C/man3/if_nameindex.3:118
+#: build/C/man3/if_nameindex.3:119
#, no-wrap
msgid ""
"$ B<./a.out>I<\n"
"3: em1>\n"
#. type: Plain text
-#: build/C/man3/if_nameindex.3:126
+#: build/C/man3/if_nameindex.3:127
#, no-wrap
msgid ""
"#include E<lt>net/if.hE<gt>\n"
"#include E<lt>unistd.hE<gt>\n"
#. type: Plain text
-#: build/C/man3/if_nameindex.3:131
+#: build/C/man3/if_nameindex.3:132
#, no-wrap
msgid ""
"int\n"
" struct if_nameindex *if_ni, *i;\n"
#. type: Plain text
-#: build/C/man3/if_nameindex.3:137
+#: build/C/man3/if_nameindex.3:138
#, no-wrap
msgid ""
" if_ni = if_nameindex();\n"
" }\n"
#. type: Plain text
-#: build/C/man3/if_nameindex.3:140
+#: build/C/man3/if_nameindex.3:141
#, 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"
#. type: Plain text
-#: build/C/man3/if_nameindex.3:142
+#: build/C/man3/if_nameindex.3:143
#, no-wrap
msgid " if_freenameindex(if_ni);\n"
msgstr " if_freenameindex(if_ni);\n"
#. type: Plain text
-#: build/C/man3/if_nameindex.3:145 build/C/man2/select.2:573
+#: build/C/man3/if_nameindex.3:146 build/C/man2/select.2:584
#, no-wrap
msgid ""
" exit(EXIT_SUCCESS);\n"
"}\n"
#. type: Plain text
-#: build/C/man3/if_nameindex.3:153
+#: build/C/man3/if_nameindex.3:154
msgid ""
"B<getsockopt>(2), B<setsockopt>(2), B<getifaddrs>(3), B<if_indextoname>(3), "
"B<if_nametoindex>(3), B<ifconfig>(8)"
msgid ""
"if_nametoindex, if_indextoname - mappings between network interface names "
"and indexes"
-msgstr "if_nametoindex, if_indextoname - ネットワークインターフェースの名前とインデックスのマッピングを行う"
+msgstr ""
+"if_nametoindex, if_indextoname - ネットワークインターフェースの名前とインデッ"
+"クスのマッピングを行う"
#. type: Plain text
#: build/C/man3/if_nametoindex.3:34
msgid ""
"The B<if_nametoindex>() function returns the index of the network interface "
"corresponding to the name I<ifname>."
-msgstr "B<if_nametoindex>() 関数は、 名前が I<ifname> のネットワークインターフェースのインデックスを返す。"
+msgstr ""
+"B<if_nametoindex>() 関数は、 名前が I<ifname> のネットワークインターフェース"
+"のインデックスを返す。"
#. type: Plain text
#: build/C/man3/if_nametoindex.3:54
"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 "B<if_indextoname>() 関数は、 インターフェースのインデックスが I<ifindex> に対応するネットワークインターフェースの名前を返す。 名前は I<ifname> が指すバッファに格納される。 バッファは少なくとも B<IF_NAMESIZE> バイトの領域が必要である。"
+msgstr ""
+"B<if_indextoname>() 関数は、 インターフェースのインデックスが I<ifindex> に対"
+"応するネットワークインターフェースの名前を返す。 名前は I<ifname> が指すバッ"
+"ファに格納される。 バッファは少なくとも B<IF_NAMESIZE> バイトの領域が必要であ"
+"る。"
#. type: Plain text
#: build/C/man3/if_nametoindex.3:61
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 "成功した場合、 B<if_nametoindex>() はネットワークインターフェースのインデックス番号を返す。エラーの場合、 0 を返し、 I<errno> を適切に設定にする。"
+msgstr ""
+"成功した場合、 B<if_nametoindex>() はネットワークインターフェースのインデック"
+"ス番号を返す。エラーの場合、 0 を返し、 I<errno> を適切に設定にする。"
#. type: Plain text
#: build/C/man3/if_nametoindex.3:69
msgid ""
"On success, B<if_indextoname>() returns I<ifname>; on error, NULL is "
"returned and I<errno> is set appropriately."
-msgstr "成功した場合には B<if_indextoname>() は I<ifname> を返す。エラー時には NULL が返され、 I<errno> が適切に設定される。"
+msgstr ""
+"成功した場合には B<if_indextoname>() は I<ifname> を返す。エラー時には NULL "
+"が返され、 I<errno> が適切に設定される。"
#. type: Plain text
#: build/C/man3/if_nametoindex.3:74
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 "B<if_nametoindex>() と B<if_indextoname>() は、 B<socket>(2) と B<ioctl>(2) に対して規定されているエラーのいずれかで失敗する場合がある。"
+msgstr ""
+"B<if_nametoindex>() と B<if_indextoname>() は、 B<socket>(2) と B<ioctl>(2) "
+"に対して規定されているエラーのいずれかで失敗する場合がある。"
#. type: Plain text
#: build/C/man3/if_nametoindex.3:93
#. type: TH
#: build/C/man2/recv.2:41
-#, no-wrap
-msgid "2012-12-21"
-msgstr "2012-12-21"
+#, fuzzy, no-wrap
+#| msgid "2012-11-11"
+msgid "2014-02-11"
+msgstr "2012-11-11"
#. type: Plain text
#: build/C/man2/recv.2:44
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:66
+#: build/C/man2/recv.2:70
+#, fuzzy
+#| 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 connection-oriented."
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 "
-"connection-oriented."
+"The B<recv>(), B<recvfrom>(), and B<recvmsg>() calls are used to receive "
+"messages from a socket. They may be used to receive data on both "
+"connectionless and connection-oriented sockets. This page first describes "
+"common features of all three system calls, and then describes the "
+"differences between the calls."
msgstr ""
"B<recvfrom>() と B<recvmsg>() コールは、ソケットからメッセージを受け取るの"
"に使用する。 またソケットのデータ受信にも使うことができ、 このときソケットは"
"接続指向 (connection-oriened) であってもなくてもよい。"
-#. (Note: for datagram sockets in both the UNIX and Internet domains,
-#. .I src_addr
-#. is filled in.
-#. .I src_addr
-#. is also filled in for stream sockets in the UNIX domain, but is not
-#. filled in for stream sockets in the Internet domain.)
-#. [The above notes on AF_UNIX and AF_INET sockets apply as at
-#. Kernel 2.4.18. (MTK, 22 Jul 02)]
-#. type: Plain text
-#: build/C/man2/recv.2: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, "
-"nothing is filled in; in this case, I<addrlen> is not used, and should also "
-"be NULL. The argument I<addrlen> is a value-result argument, which the "
-"caller should initialize before the call to the size of the buffer "
-"associated with I<src_addr>, and modified on return to indicate the actual "
-"size of the source address. The returned address is truncated if the buffer "
-"provided is too small; in this case, I<addrlen> will return a value greater "
-"than was supplied to the call."
-msgstr ""
-"I<src_addr> が NULL 以外で、下層のプロトコルから送信元アドレスが分かる場合、 "
-"I<src_addr> にはこの送信元アドレスが入れられる。 I<src_addr> が NULL の場"
-"合、 I<src_addr> には何も入らない。この場合、 I<addrlen> は使用されず、この引"
-"き数は NULL にしておくべきである。 引き数 I<addrlen> は入出力両用の引き数であ"
-"る。呼び出し時には、呼び出し元が I<src_addr> に割り当てたバッファの大きさで初"
-"期化しておくべきである。 返ってくる時には、送信元アドレスの実際の大きさに変更"
-"される。 渡されたバッファが小さ過ぎる場合には、返されるアドレスの末尾は 切り"
-"詰められる。この場合には、 I<addrlen> では、呼び出し時に渡された値よりも大き"
-"な値が返される。"
-
-#. type: Plain text
-#: 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> "
-"argument."
-msgstr ""
-"B<recv>() コールは通常 I<接続済みの (connected)> ソケット (B<connect>(2) を"
-"参照) についてのみ使用され、 I<src_addr> 引き数に NULL を指定した B<recvfrom>"
-"() と等価である。"
-
#. type: Plain text
-#: build/C/man2/recv.2:113
+#: build/C/man2/recv.2:76
+#, fuzzy
+#| 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 bytes may be discarded depending on the type of socket the message "
+#| "is received from."
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 "
-"bytes may be discarded depending on the type of socket the message is "
-"received from."
+"All three calls return the length of the message on successful completion. "
+"If a message is too long to fit in the supplied buffer, excess bytes may be "
+"discarded depending on the type of socket the message is received from."
msgstr ""
"これらの三つのルーチンはいずれも、成功した場合にはメッセージの長さを返す。 "
"メッセージが長過ぎて指定されたバッファに入り切らなかった場合には、 メッセージ"
"を受信したソケットの種類によっては余分のバイトが捨てられる かもしれない。"
#. type: Plain text
-#: build/C/man2/recv.2:123
+#: build/C/man2/recv.2:86
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:129
+#: build/C/man2/recv.2:93
+#, fuzzy
+#| msgid ""
+#| "The B<select>(2) or B<poll>(2) call may be used to determine when more "
+#| "data arrives."
msgid ""
-"The B<select>(2) or B<poll>(2) call may be used to determine when more "
-"data arrives."
+"An application can used B<select>(2), B<poll>(2), or B<epoll>(7) to "
+"determine when more data arrives on a socket."
msgstr ""
"B<select>(2) や B<poll>(2) コールを使って、次のデータがいつ届くかを判断でき"
"る。"
+#. type: SS
+#: build/C/man2/recv.2:93
+#, no-wrap
+msgid "The flags argument"
+msgstr ""
+
#. type: Plain text
-#: build/C/man2/recv.2:135
+#: build/C/man2/recv.2:97
+#, fuzzy
+#| msgid ""
+#| "The I<flags> argument to a B<recv>() call is formed by ORing one or more "
+#| "of the following values:"
msgid ""
-"The I<flags> argument to a B<recv>() call is formed by ORing one or more of "
-"the following values:"
+"The I<flags> argument is formed by ORing one or more of the following values:"
msgstr ""
"B<recv>() コールの I<flags> 引き数には、以下の値を 1つ以上、ビット単位の論理"
"和 を取ったものを指定する:"
#. type: TP
-#: build/C/man2/recv.2:135
+#: build/C/man2/recv.2:97
#, 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:146
+#: build/C/man2/recv.2:108
msgid ""
"Set the close-on-exec flag for the file descriptor received via a UNIX "
"domain file descriptor using the B<SCM_RIGHTS> operation (described in "
"同じ理由で有用である。"
#. type: TP
-#: build/C/man2/recv.2:146 build/C/man2/send.2:188
+#: build/C/man2/recv.2:108 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:156
+#: build/C/man2/recv.2:118
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:156
+#: build/C/man2/recv.2:118
#, 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:175
+#: build/C/man2/recv.2:137
msgid ""
"This flag specifies that queued errors should be received from the socket "
"error queue. The error is passed in an ancillary message with a type "
"I<msg_name> 経由で参照できる。"
#. type: Plain text
-#: build/C/man2/recv.2:187 build/C/man2/recv.2:250
+#: build/C/man2/recv.2:149 build/C/man2/recv.2:212
msgid ""
"For local errors, no address is passed (this can be checked with the "
"I<cmsg_len> member of the I<cmsghdr>). For error receives, the "
"処理待ちのソケット・エラーが再生成され、次のソケット操作の際に渡される。"
#. type: Plain text
-#: build/C/man2/recv.2:191
+#: build/C/man2/recv.2:153
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:198
+#: build/C/man2/recv.2:160
#, 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:210
+#: build/C/man2/recv.2:172
#, no-wrap
msgid ""
"struct sock_extended_err\n"
"};\n"
#. type: Plain text
-#: build/C/man2/recv.2:212
+#: build/C/man2/recv.2:174
#, no-wrap
msgid "struct sockaddr *SO_EE_OFFENDER(struct sock_extended_err *);\n"
msgstr "struct sockaddr *SO_EE_OFFENDER(struct sock_extended_err *);\n"
#. type: Plain text
-#: build/C/man2/recv.2:236
+#: build/C/man2/recv.2:198
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:250 build/C/man2/recv.2:381 build/C/man2/send.2:230
+#: build/C/man2/recv.2:212 build/C/man2/recv.2:393 build/C/man2/send.2:230
#, no-wrap
msgid "B<MSG_OOB>"
msgstr "B<MSG_OOB>"
#. type: Plain text
-#: build/C/man2/recv.2:257
+#: build/C/man2/recv.2:219
msgid ""
"This flag requests receipt of out-of-band data that would not be received in "
"the normal data stream. Some protocols place expedited data at the head of "
"い。"
#. type: TP
-#: build/C/man2/recv.2:257
+#: build/C/man2/recv.2:219
#, no-wrap
msgid "B<MSG_PEEK>"
msgstr "B<MSG_PEEK>"
#. type: Plain text
-#: build/C/man2/recv.2:264
+#: build/C/man2/recv.2:226
msgid ""
"This flag causes the receive operation to return data from the beginning of "
"the receive queue without removing that data from the queue. Thus, a "
"が返ることになる。"
#. type: TP
-#: build/C/man2/recv.2:264
+#: build/C/man2/recv.2:226
#, 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:275
+#: build/C/man2/recv.2:234
+#, fuzzy
+#| msgid ""
+#| "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."
msgid ""
"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: "
+"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."
+"than the passed buffer."
msgstr ""
"raw ソケット (B<AF_PACKET>)、 Internet datagram ソケット (Linux 2.4.27/2.6.8 "
"以降)、 netlink (Linux 2.6.22 以降) ソケット、 UNIX datagram ソケット (Linux "
"(B<unix>(7)) ソケットについては実装されていない。"
#. type: Plain text
-#: build/C/man2/recv.2:278
+#: build/C/man2/recv.2:237
msgid "For use with Internet stream sockets, see B<tcp>(7)."
msgstr "Internet ストリームソケットでの利用については B<tcp>(7) を参照。"
#. type: TP
-#: build/C/man2/recv.2:278
+#: build/C/man2/recv.2:237
#, 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:285
+#: build/C/man2/recv.2:245
msgid ""
"This flag requests that the operation block until the full request is "
"satisfied. However, the call may still return less data than requested if a "
"生したり、 次に受信されるデータが異なる型だったりした場合には、 要求した量よ"
"りデータが少なくても返ることがある。"
+#. type: SS
+#: build/C/man2/recv.2:245
+#, no-wrap
+msgid "recvfrom()"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/recv.2:251
+msgid ""
+"B<recvfrom>() places the received message into the buffer I<buf>. The "
+"caller must specify the size of the buffer in I<len>."
+msgstr ""
+
+#. (Note: for datagram sockets in both the UNIX and Internet domains,
+#. .I src_addr
+#. is filled in.
+#. .I src_addr
+#. is also filled in for stream sockets in the UNIX domain, but is not
+#. filled in for stream sockets in the Internet domain.)
+#. [The above notes on AF_UNIX and AF_INET sockets apply as at
+#. Kernel 2.4.18. (MTK, 22 Jul 02)]
+#. type: Plain text
+#: build/C/man2/recv.2:279
+#, fuzzy
+#| msgid ""
+#| "If I<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, nothing is filled in; in this case, I<addrlen> is not used, and "
+#| "should also be NULL. The argument I<addrlen> is a value-result argument, "
+#| "which the caller should initialize before the call to the size of the "
+#| "buffer associated with I<src_addr>, and modified on return to indicate "
+#| "the actual size of the source address. The returned address is truncated "
+#| "if the buffer provided is too small; in this case, I<addrlen> will return "
+#| "a value greater than was supplied to the call."
+msgid ""
+"If I<src_addr> is not NULL, and the underlying protocol provides the source "
+"address of the message, that source address is placed in the buffer pointed "
+"to by I<src_addr>. In this case, I<addrlen> is a value-result argument. "
+"Before the call, it should be initialized to the size of the buffer "
+"associated with I<src_addr>. Upon return, I<addrlen> is updated to contain "
+"the actual size of the source address. The returned address is truncated if "
+"the buffer provided is too small; in this case, I<addrlen> will return a "
+"value greater than was supplied to the call."
+msgstr ""
+"I<src_addr> が NULL 以外で、下層のプロトコルから送信元アドレスが分かる場合、 "
+"I<src_addr> にはこの送信元アドレスが入れられる。 I<src_addr> が NULL の場"
+"合、 I<src_addr> には何も入らない。この場合、 I<addrlen> は使用されず、この引"
+"き数は NULL にしておくべきである。 引き数 I<addrlen> は入出力両用の引き数であ"
+"る。呼び出し時には、呼び出し元が I<src_addr> に割り当てたバッファの大きさで初"
+"期化しておくべきである。 返ってくる時には、送信元アドレスの実際の大きさに変更"
+"される。 渡されたバッファが小さ過ぎる場合には、返されるアドレスの末尾は 切り"
+"詰められる。この場合には、 I<addrlen> では、呼び出し時に渡された値よりも大き"
+"な値が返される。"
+
+#. type: Plain text
+#: build/C/man2/recv.2:286
+msgid ""
+"If the caller is not interested in the source address, I<src_addr> should be "
+"specified as NULL and I<addrlen> should be specified as 0."
+msgstr ""
+
+#. type: SS
+#: build/C/man2/recv.2:286
+#, no-wrap
+msgid "recv()"
+msgstr ""
+
#. type: Plain text
-#: build/C/man2/recv.2:293
+#: build/C/man2/recv.2:294
+#, fuzzy
+#| 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> argument."
+msgid ""
+"The B<recv>() call is normally used only on a I<connected> socket (see "
+"B<connect>(2)). It is equivalent to the call:"
+msgstr ""
+"B<recv>() コールは通常 I<接続済みの (connected)> ソケット (B<connect>(2) を"
+"参照) についてのみ使用され、 I<src_addr> 引き数に NULL を指定した B<recvfrom>"
+"() と等価である。"
+
+#. type: Plain text
+#: build/C/man2/recv.2:297
+#, fuzzy, no-wrap
+#| msgid " sendto(sockfd, buf, len, flags, NULL, 0);\n"
+msgid " recvfrom(fd, buf, len, flags, NULL, 0));\n"
+msgstr " sendto(sockfd, buf, len, flags, NULL, 0);\n"
+
+#. type: SS
+#: build/C/man2/recv.2:297
+#, no-wrap
+msgid "recvmsg()"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/recv.2:305
msgid ""
"The B<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:300
+#: build/C/man2/recv.2:312
#, no-wrap
msgid ""
"struct iovec { /* Scatter/gather array items */\n"
"};\n"
#. type: Plain text
-#: build/C/man2/recv.2:310 build/C/man2/send.2:258
+#: build/C/man2/recv.2:322 build/C/man2/send.2:258
#, no-wrap
msgid ""
"struct msghdr {\n"
"};\n"
#. type: Plain text
-#: build/C/man2/recv.2:340
+#: build/C/man2/recv.2:352
+#, fuzzy
+#| 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 desired or required. The fields I<msg_iov> and I<msg_iovlen> "
+#| "describe scatter-gather locations, as discussed in B<readv>(2). The "
+#| "field I<msg_control>, which has length I<msg_controllen>, points to a "
+#| "buffer for other protocol control-related messages or miscellaneous "
+#| "ancillary data. When B<recvmsg>() is called, I<msg_controllen> should "
+#| "contain the length of the available buffer in I<msg_control>; upon return "
+#| "from a successful call it will contain the length of the control message "
+#| "sequence."
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 "
+"is unconnected; I<msg_name> may be given as a null pointer if no names are "
"desired or required. The fields I<msg_iov> and I<msg_iovlen> describe "
"scatter-gather locations, as discussed in B<readv>(2). The field "
"I<msg_control>, which has length I<msg_controllen>, points to a buffer for "
"さが入っている。"
#. type: Plain text
-#: build/C/man2/recv.2:342
+#: build/C/man2/recv.2:354
msgid "The messages are of the form:"
msgstr "メッセージの形式は以下の通り:"
#. type: Plain text
-#: build/C/man2/recv.2:352
+#: build/C/man2/recv.2:364
#, no-wrap
msgid ""
"struct cmsghdr {\n"
"};\n"
#. type: Plain text
-#: build/C/man2/recv.2:357
+#: build/C/man2/recv.2:369
msgid ""
"Ancillary data should be accessed only by the macros defined in B<cmsg>(3)."
msgstr ""
"補助データは、 B<cmsg>(3) に定義されたマクロ経由でのみアクセスすべきである。"
#. type: Plain text
-#: build/C/man2/recv.2:360
+#: build/C/man2/recv.2:372
msgid ""
"As an example, Linux uses this ancillary data mechanism to pass extended "
"errors, IP options, or file descriptors over UNIX domain sockets."
"いる。"
#. type: Plain text
-#: build/C/man2/recv.2:368
+#: build/C/man2/recv.2:380
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:368
+#: build/C/man2/recv.2:380
#, no-wrap
msgid "B<MSG_EOR>"
msgstr "B<MSG_EOR>"
#. type: Plain text
-#: build/C/man2/recv.2:373
+#: build/C/man2/recv.2:385
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:373
+#: build/C/man2/recv.2:385
#, no-wrap
msgid "B<MSG_TRUNC>"
msgstr "B<MSG_TRUNC>"
#. type: Plain text
-#: build/C/man2/recv.2:377
+#: build/C/man2/recv.2:389
msgid ""
"indicates that the trailing portion of a datagram was discarded because the "
"datagram was larger than the buffer supplied."
"た部分が捨てられたことを示す。"
#. type: TP
-#: build/C/man2/recv.2:377
+#: build/C/man2/recv.2:389
#, no-wrap
msgid "B<MSG_CTRUNC>"
msgstr "B<MSG_CTRUNC>"
#. type: Plain text
-#: build/C/man2/recv.2:381
+#: build/C/man2/recv.2:393
msgid ""
"indicates that some control data were discarded due to lack of space in the "
"buffer for ancillary data."
"を示す。"
#. type: Plain text
-#: build/C/man2/recv.2:384
+#: build/C/man2/recv.2:396
msgid ""
"is returned to indicate that expedited or out-of-band data were received."
msgstr "速達データや帯域外データを受信したことを示す。"
#. type: TP
-#: build/C/man2/recv.2:384
+#: build/C/man2/recv.2:396
#, no-wrap
msgid "B<MSG_ERRQUEUE>"
msgstr "B<MSG_ERRQUEUE>"
#. type: Plain text
-#: build/C/man2/recv.2:388
+#: build/C/man2/recv.2:400
msgid ""
"indicates that no data was received but an extended error from the socket "
"error queue."
"を示す。"
#. type: Plain text
-#: build/C/man2/recv.2:393
+#: build/C/man2/recv.2:406
+#, fuzzy
+#| msgid ""
+#| "These calls return the number of bytes received, or -1 if an error "
+#| "occurred. In the event of an error, I<errno> is set to indicate the "
+#| "error. The return value will be 0 when the peer has performed an orderly "
+#| "shutdown."
msgid ""
"These calls return the number of bytes received, or -1 if an error "
-"occurred. The return value will be 0 when the peer has performed an orderly "
-"shutdown."
+"occurred. In the event of an error, I<errno> is set to indicate the error."
+msgstr ""
+"これらのコールは受信したバイト数を返す。 エラーの場合は -1 を返し、 I<errno> "
+"にエラーを示す値を設定する。 接続先が正しくシャットダウンを実行した場合は、"
+"返り値は 0 となる。"
+
+#. type: Plain text
+#: build/C/man2/recv.2:409
+msgid ""
+"When a stream socket peer has performed an orderly shutdown, the return "
+"value will be 0 (the traditional \"end-of-file\" return)."
msgstr ""
-"これらのコールは受信したバイト数を返す。 エラーの場合は -1 を返す。 接続先が"
-"正しくシャットダウンを実行した場合は、返り値は 0 となる。"
#. type: Plain text
-#: build/C/man2/recv.2:398
+#: build/C/man2/recv.2:413
+msgid ""
+"Datagram sockets in various domains (e.g., the UNIX and Internet domains) "
+"permit zero-length datagrams. When such a datagram is received, the return "
+"value is 0."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/recv.2:416
+msgid ""
+"The value 0 may also be returned if the requested number of bytes to receive "
+"from a stream socket was 0."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/recv.2:421
msgid ""
"These are some standard errors generated by the socket layer. Additional "
"errors may be generated and returned from the underlying protocol modules; "
#. Actually EAGAIN on Linux
#. type: Plain text
-#: build/C/man2/recv.2:407
+#: build/C/man2/recv.2:430
msgid ""
"The socket is marked nonblocking and the receive operation would block, or a "
"receive timeout had been set and the timeout expired before data was "
"が必要なアプリケーションでは、両方の可能性を 確認すべきである。"
#. type: Plain text
-#: build/C/man2/recv.2:412
+#: build/C/man2/recv.2:435
msgid "The argument I<sockfd> is an invalid descriptor."
msgstr "引き数 I<sockfd> が不正なディスクリプタである。"
#. type: Plain text
-#: build/C/man2/recv.2:416
+#: build/C/man2/recv.2:439
msgid ""
"A remote host refused to allow the network connection (typically because it "
"is not running the requested service)."
"たサービスが起動されていないなどがある)。"
#. type: Plain text
-#: build/C/man2/recv.2:420
+#: build/C/man2/recv.2:443
msgid ""
"The receive buffer pointer(s) point outside the process's address space."
msgstr "受信バッファへのポインタがプロセスのアドレス空間外を指している。"
#. type: Plain text
-#: build/C/man2/recv.2:425
+#: build/C/man2/recv.2:448
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:429 build/C/man2/send.2:323
+#: build/C/man2/recv.2:452 build/C/man2/send.2:323
msgid "Invalid argument passed."
msgstr "不正な引き数が渡された。"
#. type: Plain text
-#: build/C/man2/recv.2:433
+#: build/C/man2/recv.2:456
msgid "Could not allocate memory for B<recvmsg>()."
msgstr "B<recvmsg>() のためのメモリが確保できなかった。"
#. type: TP
-#: build/C/man2/recv.2:433 build/C/man2/send.2:346
+#: build/C/man2/recv.2:456 build/C/man2/send.2:346
#, no-wrap
msgid "B<ENOTCONN>"
msgstr "B<ENOTCONN>"
#. type: Plain text
-#: build/C/man2/recv.2:440
+#: build/C/man2/recv.2:463
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:445
+#: build/C/man2/recv.2:468
msgid "The argument I<sockfd> does not refer to a socket."
msgstr "引き数 I<sockfd> がソケットを参照していない。"
#. type: Plain text
-#: build/C/man2/recv.2:448
+#: build/C/man2/recv.2:471
msgid "4.4BSD (these function calls first appeared in 4.2BSD), POSIX.1-2001."
msgstr "4.4BSD (これらの関数は 4.2BSD で現われた), POSIX.1-2001。"
#. type: Plain text
-#: build/C/man2/recv.2:455
+#: build/C/man2/recv.2:478
msgid ""
"POSIX.1-2001 describes only the B<MSG_OOB>, B<MSG_PEEK>, and B<MSG_WAITALL> "
"flags."
"されている。"
#. type: Plain text
-#: build/C/man2/recv.2:471
+#: build/C/man2/recv.2:494
msgid ""
"The prototypes given above follow glibc2. The Single UNIX Specification "
"agrees, except that it has return values of type I<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:485 build/C/man2/send.2:409
+#: build/C/man2/recv.2:508 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:490
+#: build/C/man2/recv.2:513
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."
"固有の システムコールに関する情報が書かれている。"
#. type: Plain text
-#: build/C/man2/recv.2:495
+#: build/C/man2/recv.2:518
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:506
+#: build/C/man2/recv.2:529
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)"
"call. (This has performance benefits for some applications.) A further "
"extension over B<recvmsg>(2) is support for a timeout on the receive "
"operation."
-msgstr "B<recvmmsg>() システムコールは B<recvmsg>(2) の拡張で、 このシステムコールを使うと一度の呼び出しでソケットから複数のメッセージを受信することができる (アプリケーションによっては性能上のメリットがある)。 他に B<recvmsg>(2) から拡張されている点としては、受信操作におけるタイムアウトのサポートがある。"
+msgstr ""
+"B<recvmmsg>() システムコールは B<recvmsg>(2) の拡張で、 このシステムコールを"
+"使うと一度の呼び出しでソケットから複数のメッセージを受信することができる (ア"
+"プリケーションによっては性能上のメリットがある)。 他に B<recvmsg>(2) から拡張"
+"されている点としては、受信操作におけるタイムアウトのサポートがある。"
#. type: Plain text
#: build/C/man2/recvmmsg.2:59
msgid ""
"The I<sockfd> argument is the file descriptor of the socket to receive data "
"from."
-msgstr "I<sockfd> 引き数は、データを受信するソケットのファイルディスクリプタである。"
+msgstr ""
+"I<sockfd> 引き数は、データを受信するソケットのファイルディスクリプタである。"
#. type: Plain text
#: 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 "I<msgvec> 引き数は I<mmsghdr> 構造体の配列である。 この配列の大きさは I<vlen> で指定する。"
+msgstr ""
+"I<msgvec> 引き数は I<mmsghdr> 構造体の配列である。 この配列の大きさは "
+"I<vlen> で指定する。"
#. type: Plain text
#: 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 "I<mmsghdr> 構造体は I<E<lt>sys/socket.hE<gt>> で次のように定義されている。"
+msgstr ""
+"I<mmsghdr> 構造体は I<E<lt>sys/socket.hE<gt>> で次のように定義されている。"
#. type: Plain text
#: build/C/man2/recvmmsg.2:80
"(2). The I<msg_len> field is the number of bytes returned for the message "
"in the entry. This field has the same value as the return value of a single "
"B<recvmsg>(2) on the header."
-msgstr "I<msg_hdr> フィールドは、 B<recvmsg>(2) で説明されている I<msghdr> 構造体である。 I<msg_len> フィールドは、 このエントリで返されるメッセージのバイト数で、 このヘッダに対して B<recvmsg>(2) を呼び出した場合の返り値と同じ値が入る。"
+msgstr ""
+"I<msg_hdr> フィールドは、 B<recvmsg>(2) で説明されている I<msghdr> 構造体であ"
+"る。 I<msg_len> フィールドは、 このエントリで返されるメッセージのバイト数"
+"で、 このヘッダに対して B<recvmsg>(2) を呼び出した場合の返り値と同じ値が入"
+"る。"
#. type: Plain text
#: 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 "I<flags> 引き数には複数のフラグを論理和 (OR) で指定できる。 フラグは、 B<recvmsg>(2) で説明されているものに加えて、以下が使用できる。"
+msgstr ""
+"I<flags> 引き数には複数のフラグを論理和 (OR) で指定できる。 フラグは、 "
+"B<recvmsg>(2) で説明されているものに加えて、以下が使用できる。"
#. type: TP
#: build/C/man2/recvmmsg.2:102
"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 "I<timeout> 引き数は I<struct timespec> (B<clock_gettime>(2) 参照) へのポインタで、 この構造体で受信操作のタイムアウト (秒とナノ秒) を指定する (待ち時間はシステムクロックの粒度に切り上げられ、カーネルのスケジューリング遅延により少しだけ長くなる可能性がある)。 I<timeout>が I<NULL> の場合、 受信操作は無期限に停止 (block) する。"
+msgstr ""
+"I<timeout> 引き数は I<struct timespec> (B<clock_gettime>(2) 参照) へのポイン"
+"タで、 この構造体で受信操作のタイムアウト (秒とナノ秒) を指定する (待ち時間は"
+"システムクロックの粒度に切り上げられ、カーネルのスケジューリング遅延により少"
+"しだけ長くなる可能性がある)。 I<timeout>が I<NULL> の場合、 受信操作は無期限"
+"に停止 (block) する。"
#. type: Plain text
#: build/C/man2/recvmmsg.2:134
"received or until the timeout expires. A nonblocking call reads as many "
"messages as are available (up to the limit specified by I<vlen>) and "
"returns immediately."
-msgstr "停止 (blocking) モードの B<recvmmsg>() の呼び出しは、 I<vlen> 個のメッセージを受信するか、タイムアウトが満了するまで停止する。 非停止 (nonblocking) モードの呼び出しでは、 読み出し可能なメッセージ (最大で I<vlen> 個) を読み出し、 すぐに返る。"
+msgstr ""
+"停止 (blocking) モードの B<recvmmsg>() の呼び出しは、 I<vlen> 個のメッセージ"
+"を受信するか、タイムアウトが満了するまで停止する。 非停止 (nonblocking) モー"
+"ドの呼び出しでは、 読み出し可能なメッセージ (最大で I<vlen> 個) を読み出し、 "
+"すぐに返る。"
#. type: Plain text
#: build/C/man2/recvmmsg.2:149
"size of the received message; the subfields of I<msg_hdr> are updated as "
"described in B<recvmsg>(2). The return value of the call indicates the "
"number of elements of I<msgvec> that have been updated."
-msgstr "B<recvmmsg>() が返った際には、 I<msgvec> のうちデータが受信された要素には、受信したそれぞれのメッセージの情報が格納されている。 また、 I<msg_len> には受信したメッセージの大きさが入り、 I<msg_hdr> の各フィールドは B<recvmsg>(2) に書かれている通りに更新される。 呼び出しの返り値は、更新された I<msgvec> の要素数である。"
+msgstr ""
+"B<recvmmsg>() が返った際には、 I<msgvec> のうちデータが受信された要素には、受"
+"信したそれぞれのメッセージの情報が格納されている。 また、 I<msg_len> には受信"
+"したメッセージの大きさが入り、 I<msg_hdr> の各フィールドは B<recvmsg>(2) に書"
+"かれている通りに更新される。 呼び出しの返り値は、更新された I<msgvec> の要素"
+"数である。"
#. type: Plain text
#: build/C/man2/recvmmsg.2:157
"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 "
"error."
-msgstr "成功すると、 B<recvmmsg>() は I<msgvec> に受信されたメッセージ数を返す。 エラーの場合、 -1 を返し、 I<errno> にエラーを示す値を設定する。"
+msgstr ""
+"成功すると、 B<recvmmsg>() は I<msgvec> に受信されたメッセージ数を返す。 エ"
+"ラーの場合、 -1 を返し、 I<errno> にエラーを示す値を設定する。"
#. type: Plain text
#: build/C/man2/recvmmsg.2:161
msgid ""
"Errors are as for B<recvmsg>(2). In addition, the following error can occur:"
-msgstr "エラーは B<recvmsg>(2) と同じである。 これに加えて、以下のエラーが起こる場合がある。"
+msgstr ""
+"エラーは B<recvmsg>(2) と同じである。 これに加えて、以下のエラーが起こる場合"
+"がある。"
#. type: Plain text
#: build/C/man2/recvmmsg.2:165
msgid ""
"The B<recvmmsg>() system call was added in Linux 2.6.33. Support in glibc "
"was added in version 2.12."
-msgstr "B<recvmmsg>() システムコールは Linux 2.6.33 で追加された。 glibc でのサポートはバージョン 2.12 以降で利用可能である。"
+msgstr ""
+"B<recvmmsg>() システムコールは Linux 2.6.33 で追加された。 glibc でのサポート"
+"はバージョン 2.12 以降で利用可能である。"
#. type: Plain text
#: build/C/man2/recvmmsg.2:173
"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 "以下のプログラムは、 B<recvmmsg>() を使って複数のメッセージをソケットから受信し、それらを複数のバッファに格納する。 呼び出しは、すべてのバッファにメッセージが格納されるか、 指定したタイムアウト時間が経過すると返る。"
+msgstr ""
+"以下のプログラムは、 B<recvmmsg>() を使って複数のメッセージをソケットから受信"
+"し、それらを複数のバッファに格納する。 呼び出しは、すべてのバッファにメッセー"
+"ジが格納されるか、 指定したタイムアウト時間が経過すると返る。"
#. type: Plain text
#: build/C/man2/recvmmsg.2:184
msgid ""
"The following snippet periodically generates UDP datagrams containing a "
"random number:"
-msgstr "以下のコマンドは、 ランダムな数字が入った UDP データグラムを定期的に生成する。"
+msgstr ""
+"以下のコマンドは、 ランダムな数字が入った UDP データグラムを定期的に生成す"
+"る。"
#. type: Plain text
#: build/C/man2/recvmmsg.2:189
msgid ""
"These datagrams are read by the example application, which can give the "
"following output:"
-msgstr "生成されたデータグラムをサンプルアプリケーションが読み出し、以下のような出力が得られる。"
+msgstr ""
+"生成されたデータグラムをサンプルアプリケーションが読み出し、以下のような出力"
+"が得られる。"
#. type: Plain text
#: build/C/man2/recvmmsg.2:204
#. type: TH
#: build/C/man2/select.2:38
-#, no-wrap
-msgid "2012-08-17"
-msgstr "2012-08-17"
+#, fuzzy, no-wrap
+#| msgid "2009-01-19"
+msgid "2014-01-31"
+msgstr "2009-01-19"
#. type: Plain text
#: build/C/man2/select.2:42 build/C/man2/select_tut.2:36
"のである。"
#. type: Plain text
-#: build/C/man2/select.2:179
+#: build/C/man2/select.2:166
msgid ""
-"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."
+"The I<timeout> argument specifies the interval that B<select>() should "
+"block waiting for a file descriptor to become ready. The call will block "
+"until either:"
+msgstr ""
+
+#. type: IP
+#: build/C/man2/select.2:166 build/C/man2/select.2:168
+#: build/C/man2/select.2:170
+#, no-wrap
+msgid "*"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/select.2:168
+msgid "a file descriptor becomes ready;"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/select.2:170
+#, fuzzy
+#| msgid ""
+#| "The system call was interrupted by a signal that was caught; see B<signal>"
+#| "(7)."
+msgid "the call is interrupted by a signal handler; or"
+msgstr ""
+"捕捉されたシグナルによりシステムコールが中断された。 B<signal>(7) 参照。"
+
+#. type: Plain text
+#: build/C/man2/select.2:172
+#, fuzzy
+#| msgid "The timeout"
+msgid "the timeout expires."
+msgstr "タイムアウト"
+
+#. type: Plain text
+#: build/C/man2/select.2:189
+#, fuzzy
+#| msgid ""
+#| "The I<timeout> argument specifies the 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."
+msgid ""
+"Note that the I<timeout> 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> 引き数で、ファイルディスクリプタが ready になるのを待って\n"
-"B<select>() が停止する最小の停止時間を指定する\n"
+"B<select>() が停止する停止時間を指定する\n"
"(この停止時間はシステムクロックの粒度に切り上げられ、\n"
"カーネルのスケジューリング遅延により少しだけ長くなる可能性がある)。\n"
"I<timeval> 構造体の両方のフィールドが 0 の場合、 B<select>() はすぐに復\n"
"期限に停止 (block) する。"
#. type: Plain text
-#: build/C/man2/select.2:189
+#: build/C/man2/select.2:199
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:195
+#: build/C/man2/select.2:205
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:199
+#: build/C/man2/select.2:209
#, no-wrap
msgid ""
" ready = pselect(nfds, &readfds, &writefds, &exceptfds,\n"
" timeout, &sigmask);\n"
#. type: Plain text
-#: build/C/man2/select.2:204
+#: build/C/man2/select.2:214
msgid "is equivalent to I<atomically> executing the following calls:"
msgstr "次のコールを I<atomic> に実行するのと等価である。"
#. type: Plain text
-#: build/C/man2/select.2:207
+#: build/C/man2/select.2:217
#, no-wrap
msgid " sigset_t origmask;\n"
msgstr " sigset_t origmask;\n"
#. type: Plain text
-#: build/C/man2/select.2:211
+#: build/C/man2/select.2:221
#, no-wrap
msgid ""
" pthread_sigmask(SIG_SETMASK, &sigmask, &origmask);\n"
" pthread_sigmask(SIG_SETMASK, &origmask, NULL);\n"
#. type: Plain text
-#: build/C/man2/select.2:232
+#: build/C/man2/select.2:242
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:232
+#: build/C/man2/select.2:242
#, no-wrap
msgid "The timeout"
msgstr "タイムアウト"
#. type: Plain text
-#: build/C/man2/select.2:236
+#: build/C/man2/select.2:246
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:243
+#: build/C/man2/select.2:253
#, no-wrap
msgid ""
"struct timeval {\n"
"};\n"
#. type: Plain text
-#: build/C/man2/select.2:247
+#: build/C/man2/select.2:257
msgid "and"
msgstr "や"
#. type: Plain text
-#: build/C/man2/select.2:254
+#: build/C/man2/select.2:264
#, no-wrap
msgid ""
"struct timespec {\n"
"};\n"
#. type: Plain text
-#: build/C/man2/select.2:258
+#: build/C/man2/select.2:268
msgid "(However, see below on the POSIX.1-2001 versions.)"
msgstr ""
"のように定義されている。 (POSIX.1-2001 での定義については下記の「注意」を参"
"照)"
#. type: Plain text
-#: build/C/man2/select.2:266
+#: build/C/man2/select.2:276
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:289
+#: build/C/man2/select.2:299
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:306
+#: build/C/man2/select.2:317
+#, fuzzy
+#| msgid ""
+#| "On success, B<select>() and B<pselect>() return the number of file "
+#| "descriptors contained in the three returned descriptor sets (that is, the "
+#| "total number of bits that are set in I<readfds>, I<writefds>, "
+#| "I<exceptfds>) which may be zero if the timeout expires before anything "
+#| "interesting happens. On error, -1 is returned, and I<errno> is set "
+#| "appropriately; the sets and I<timeout> become undefined, so do not rely "
+#| "on their contents after an error."
msgid ""
"On success, B<select>() and B<pselect>() return the number of file "
"descriptors contained in the three returned descriptor sets (that is, the "
"total number of bits that are set in I<readfds>, I<writefds>, I<exceptfds>) "
"which may be zero if the timeout expires before anything interesting "
-"happens. On error, -1 is returned, and I<errno> is set appropriately; the "
-"sets and I<timeout> become undefined, so do not rely on their contents after "
-"an error."
+"happens. On error, -1 is returned, and I<errno> is set to indicate the "
+"error; the file descriptor sets are unmodified, and I<timeout> becomes "
+"undefined."
msgstr ""
"成功した場合、 B<select>() と B<pselect>() は更新された 3 つのディスクリプ"
"タ集合に含まれている ファイルディスクリプタの数 (つまり、 I<readfds>, "
"義となるので、エラーが起こった後はそれらの内容を信頼してはならない。"
#. type: Plain text
-#: build/C/man2/select.2:312
+#: build/C/man2/select.2:323
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:316
+#: build/C/man2/select.2:327
msgid "A signal was caught; see B<signal>(7)."
msgstr "シグナルを受信した。"
#. type: Plain text
-#: build/C/man2/select.2:322
+#: build/C/man2/select.2:333
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:325
+#: build/C/man2/select.2:336
msgid "unable to allocate memory for internal tables."
msgstr "内部テーブルにメモリを割り当てることができなかった。"
#. type: Plain text
-#: build/C/man2/select.2:331
+#: build/C/man2/select.2:342
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:342
+#: build/C/man2/select.2:353
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:346
+#: build/C/man2/select.2:357
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:363
+#: build/C/man2/select.2:374
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:372
+#: build/C/man2/select.2:383
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:379
+#: build/C/man2/select.2:390
#, no-wrap
msgid ""
"struct timeval {\n"
"};\n"
#. type: Plain text
-#: build/C/man2/select.2:390
+#: build/C/man2/select.2:401
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:402
+#: build/C/man2/select.2:413
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:414
+#: build/C/man2/select.2:425
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:414
+#: build/C/man2/select.2:425
#, no-wrap
msgid "Multithreaded applications"
msgstr "マルチスレッド・アプリケーション"
#. type: Plain text
-#: build/C/man2/select.2:430
+#: build/C/man2/select.2:441
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>() "
"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 "B<select>() で監視中のファイルディスクリプタが別のスレッドでクローズされた場合、どのような結果になるかは規定されていない。いくつかの UNIX システムでは、 B<select>() は停止 (block) せず、すぐ返り、ファイルディスクリプタが ready だと報告される (B<select>() が返ってから I/O 操作が実行されるまでの間に、 別のファイルディスクリプタが再度オープンされない限り、 それ以降の I/O 操作はおそらく失敗するだろう)。 Linux (や他のいくつかのシステム) では、 別のスレッドでファイルディスクリプタがクローズされても B<select>() には影響を与えない。 まとめると、このような場合に特定の動作に依存しているアプリケーションは「バグっている」と考えなければならない。"
+msgstr ""
+"B<select>() で監視中のファイルディスクリプタが別のスレッドでクローズされた場"
+"合、どのような結果になるかは規定されていない。いくつかの UNIX システムでは、 "
+"B<select>() は停止 (block) せず、すぐ返り、ファイルディスクリプタが ready だ"
+"と報告される (B<select>() が返ってから I/O 操作が実行されるまでの間に、 別の"
+"ファイルディスクリプタが再度オープンされない限り、 それ以降の I/O 操作はおそ"
+"らく失敗するだろう)。 Linux (や他のいくつかのシステム) では、 別のスレッドで"
+"ファイルディスクリプタがクローズされても B<select>() には影響を与えない。 ま"
+"とめると、このような場合に特定の動作に依存しているアプリケーションは「バグっ"
+"ている」と考えなければならない。"
#. type: SS
-#: build/C/man2/select.2:430
+#: build/C/man2/select.2:441
#, no-wrap
msgid "Linux notes"
msgstr "Linux での注意"
#. type: Plain text
-#: build/C/man2/select.2:438
+#: build/C/man2/select.2:449
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 "
"関数とは少し違った動作をする。"
#. type: Plain text
-#: build/C/man2/select.2:453
+#: build/C/man2/select.2:464
msgid ""
"The Linux B<pselect6>() system call modifies its I<timeout> argument. "
"However, the glibc wrapper function hides this behavior by using a local "
"これが POSIX.1-2001 が要求している動作である。"
#. type: Plain text
-#: build/C/man2/select.2:459
+#: build/C/man2/select.2:470
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:"
"ポインタではなく、以下に示す構造体である。"
#. type: Plain text
-#: build/C/man2/select.2:467
+#: build/C/man2/select.2:478
#, no-wrap
msgid ""
"struct {\n"
"};\n"
#. type: Plain text
-#: build/C/man2/select.2:474
+#: build/C/man2/select.2:485
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 "
"のサイズの両方を取得することができるのである。"
#. type: Plain text
-#: build/C/man2/select.2:480
+#: build/C/man2/select.2:491
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:493
+#: build/C/man2/select.2:504
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:506
+#: build/C/man2/select.2:517
msgid ""
"On systems that lack B<pselect>(), reliable (and more portable) signal "
"trapping can be achieved using the self-pipe trick. In this technique, a "
#. 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:522
+#: build/C/man2/select.2:533
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:537
+#: build/C/man2/select.2:548
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:544
+#: build/C/man2/select.2:555
#, 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:551
+#: build/C/man2/select.2:562
#, no-wrap
msgid ""
"int\n"
" int retval;\n"
#. type: Plain text
-#: build/C/man2/select.2:555
+#: build/C/man2/select.2:566
#, 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:559
+#: build/C/man2/select.2:570
#, no-wrap
msgid ""
" /* Wait up to five seconds. */\n"
" tv.tv_usec = 0;\n"
#. type: Plain text
-#: build/C/man2/select.2:562
+#: build/C/man2/select.2:573
#, no-wrap
msgid ""
" retval = select(1, &rfds, NULL, NULL, &tv);\n"
" /* この時点での tv の値を信頼してはならない。*/\n"
#. type: Plain text
-#: build/C/man2/select.2:570
+#: build/C/man2/select.2:581
#, no-wrap
msgid ""
" if (retval == -1)\n"
" printf(\"5 秒以内にデータが入力されませんでした。\\en\");\n"
#. type: Plain text
-#: build/C/man2/select.2:585
+#: build/C/man2/select.2:596
msgid ""
"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<sigprocmask>(2), B<write>(2), B<epoll>(7), B<time>(7)"
#. type: Plain text
-#: build/C/man2/select.2:588
+#: build/C/man2/select.2:599
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:32
-#, no-wrap
-msgid "2012-08-03"
-msgstr "2012-08-03"
+#, fuzzy, no-wrap
+#| msgid "2013-09-04"
+msgid "2013-12-30"
+msgstr "2013-09-04"
#. type: Plain text
#: build/C/man2/select_tut.2:52
" int yes;\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:583
-#, no-wrap
-msgid ""
-" if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1) {\n"
+#: build/C/man2/select_tut.2:584
+#, 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"
+#| " &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 ""
+" s = socket(AF_INET, SOCK_STREAM, 0);\n"
+" if (s == -1) {\n"
" perror(\"socket\");\n"
" return -1;\n"
" }\n"
"}\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:589
+#: build/C/man2/select_tut.2:590
#, no-wrap
msgid ""
"static int\n"
" int s;\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:595
-#, no-wrap
+#: build/C/man2/select_tut.2:597
+#, fuzzy, no-wrap
+#| msgid ""
+#| " if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1) {\n"
+#| " perror(\"socket\");\n"
+#| " close(s);\n"
+#| " return -1;\n"
+#| " }\n"
msgid ""
-" if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1) {\n"
+" s = socket(AF_INET, SOCK_STREAM, 0);\n"
+" if (s == -1) {\n"
" perror(\"socket\");\n"
" close(s);\n"
" return -1;\n"
" }\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:599
+#: build/C/man2/select_tut.2:601
#, no-wrap
msgid ""
" memset(&a, 0, sizeof(a));\n"
" a.sin_family = AF_INET;\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:605
+#: build/C/man2/select_tut.2:607
#, 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:614
+#: build/C/man2/select_tut.2:616
#, no-wrap
msgid ""
" if (connect(s, (struct sockaddr *) &a, sizeof(a)) == -1) {\n"
"}\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:622
+#: build/C/man2/select_tut.2:624
#, no-wrap
msgid ""
"#define SHUT_FD1 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 SHUT_FD2 do { \\e\n"
" } while (0)\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:632
+#: build/C/man2/select_tut.2:634
#, no-wrap
msgid "#define BUF_SIZE 1024\n"
msgstr "#define BUF_SIZE 1024\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:641
+#: build/C/man2/select_tut.2:643
#, no-wrap
msgid ""
"int\n"
" int buf2_avail, buf2_written;\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:647
+#: build/C/man2/select_tut.2:649
#, no-wrap
msgid ""
" if (argc != 4) {\n"
" }\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:649
+#: build/C/man2/select_tut.2:651
#, no-wrap
msgid " signal(SIGPIPE, SIG_IGN);\n"
msgstr " signal(SIGPIPE, SIG_IGN);\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:651
+#: build/C/man2/select_tut.2:653
#, 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:655
+#: build/C/man2/select_tut.2:657
#, no-wrap
msgid ""
" h = listen_socket(atoi(argv[1]));\n"
" exit(EXIT_FAILURE);\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:659
+#: build/C/man2/select_tut.2:661
#, no-wrap
msgid ""
" for (;;) {\n"
" fd_set rd, wr, er;\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:689
+#: build/C/man2/select_tut.2:691
#, no-wrap
msgid ""
" FD_ZERO(&rd);\n"
" }\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:691
+#: build/C/man2/select_tut.2:693
#, 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:694
+#: build/C/man2/select_tut.2:696
#, no-wrap
msgid ""
" if (r == -1 && errno == EINTR)\n"
" continue;\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:699
+#: build/C/man2/select_tut.2:701
#, no-wrap
msgid ""
" if (r == -1) {\n"
" }\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:703
+#: build/C/man2/select_tut.2:705
#, no-wrap
msgid ""
" if (FD_ISSET(h, &rd)) {\n"
" struct sockaddr_in client_address;\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:722
+#: build/C/man2/select_tut.2:724
#, no-wrap
msgid ""
" memset(&client_address, 0, l = sizeof(client_address));\n"
" }\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:724
+#: build/C/man2/select_tut.2:726
#, 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:728
+#: build/C/man2/select_tut.2:730
#, no-wrap
msgid ""
" if (fd1 E<gt> 0)\n"
" char c;\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:738
+#: build/C/man2/select_tut.2:740
#, no-wrap
msgid ""
" r = recv(fd1, &c, 1, MSG_OOB);\n"
" char c;\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:781
+#: build/C/man2/select_tut.2:783
#, no-wrap
msgid ""
" r = recv(fd2, &c, 1, MSG_OOB);\n"
" }\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:783
+#: build/C/man2/select_tut.2:785
#, 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:788
+#: build/C/man2/select_tut.2:790
#, no-wrap
msgid ""
" if (buf1_written == buf1_avail)\n"
" buf2_written = buf2_avail = 0;\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:791
+#: build/C/man2/select_tut.2:793
#, 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:799
+#: build/C/man2/select_tut.2:801
#, no-wrap
msgid ""
" if (fd1 E<lt> 0 && buf1_avail - buf1_written == 0)\n"
"}\n"
#. type: Plain text
-#: build/C/man2/select_tut.2:813
+#: build/C/man2/select_tut.2:815
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:819
+#: build/C/man2/select_tut.2:821
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:838
+#: build/C/man2/select_tut.2:840
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>"
#. type: TH
#: build/C/man2/send.2:40
-#, no-wrap
-msgid "2012-04-23"
-msgstr "2012-04-23"
+#, fuzzy, no-wrap
+#| msgid "2012-12-14"
+msgid "2013-12-12"
+msgstr "2012-12-14"
#. type: Plain text
#: build/C/man2/send.2:43
#. type: TP
#: build/C/man2/send.2:166
-#, no-wrap
-msgid "B<MSG_CONFIRM> (Since Linux 2.3.15)"
+#, fuzzy, no-wrap
+#| msgid "B<MSG_CONFIRM> (Since Linux 2.3.15)"
+msgid "B<MSG_CONFIRM> (since Linux 2.3.15)"
msgstr "B<MSG_CONFIRM> (Linux 2.3.15 以降)"
#. type: Plain text
#. type: TP
#: build/C/man2/send.2:203
-#, no-wrap
-msgid "B<MSG_MORE> (Since Linux 2.4.4)"
+#, fuzzy, no-wrap
+#| msgid "B<MSG_MORE> (Since Linux 2.4.4)"
+msgid "B<MSG_MORE> (since Linux 2.4.4)"
msgstr "B<MSG_MORE> (Linux 2.4.4 以降)"
#. type: Plain text
#. type: Plain text
#: build/C/man2/send.2:280
+#, 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, these calls return the number of characters sent. On error, -1 "
-"is returned, and I<errno> is set appropriately."
+"On success, these calls return the number of bytes sent. On error, -1 is "
+"returned, and I<errno> is set appropriately."
msgstr ""
"成功した場合、これらのシステムコールは送信されたバイト数を返す。 エラーの場"
"合、 -1 を返し、 I<errno> を適切に設定にする。"
"The B<sendmmsg>() system call is an extension of B<sendmsg>(2) that allows "
"the caller to transmit multiple messages on a socket using a single system "
"call. (This has performance benefits for some applications.)"
-msgstr "B<sendmmsg>() システムコールは B<sendmsg>(2) の拡張で、 このシステムコールを使うと一度の呼び出しでソケットに複数のメッセージを送信できる (アプリケーションによっては性能上のメリットがある)。"
+msgstr ""
+"B<sendmmsg>() システムコールは B<sendmsg>(2) の拡張で、 このシステムコールを"
+"使うと一度の呼び出しでソケットに複数のメッセージを送信できる (アプリケーショ"
+"ンによっては性能上のメリットがある)。"
#. type: Plain text
#: build/C/man2/sendmmsg.2:54
msgid ""
"The I<sockfd> argument is the file descriptor of the socket on which data is "
"to be transmitted."
-msgstr "I<sockfd> 引き数は、 データを送信するソケットのファイルディスクリプタである。"
+msgstr ""
+"I<sockfd> 引き数は、 データを送信するソケットのファイルディスクリプタである。"
#. type: Plain text
#: build/C/man2/sendmmsg.2:75
"(2). The I<msg_len> field is used to return the number of bytes sent from "
"the message in I<msg_hdr> (i.e., the same as the return value from a single "
"B<sendmsg>(2) call)."
-msgstr "I<msg_hdr> フィールドは、 B<sendmsg>(2) で説明されている I<msghdr> 構造体である。 I<msg_len> フィールドは I<msg_hdr> から送信されたメッセージのバイト数を返すのに使用される。 この値は B<sendmsg>(2) をこのヘッダに対して呼び出した場合の返り値と同じである。"
+msgstr ""
+"I<msg_hdr> フィールドは、 B<sendmsg>(2) で説明されている I<msghdr> 構造体であ"
+"る。 I<msg_len> フィールドは I<msg_hdr> から送信されたメッセージのバイト数を"
+"返すのに使用される。 この値は B<sendmsg>(2) をこのヘッダに対して呼び出した場"
+"合の返り値と同じである。"
#. type: Plain text
#: build/C/man2/sendmmsg.2:97
msgid ""
"The I<flags> argument contains flags ORed together. The flags are the same "
"as for B<sendmsg>(2)."
-msgstr "I<flags> 引き数には複数のフラグを論理和 (OR) で指定できる。フラグは B<sendmsg>(2) と同じである。"
+msgstr ""
+"I<flags> 引き数には複数のフラグを論理和 (OR) で指定できる。フラグは "
+"B<sendmsg>(2) と同じである。"
#. type: Plain text
#: build/C/man2/sendmmsg.2:107
"A blocking B<sendmmsg>() call blocks until I<vlen> messages have been "
"sent. A nonblocking call sends as many messages as possible (up to the "
"limit specified by I<vlen>) and returns immediately."
-msgstr "停止 (blocking) モードの B<sendmmsg>() の呼び出しは、 I<vlen> 個のメッセージが送信されるまで停止する。 非停止 (nonblocking) モードの呼び出しでは、 送信できるだけのメッセージ (最大で I<vlen> 個) を送信し、 すぐに返る。"
+msgstr ""
+"停止 (blocking) モードの B<sendmmsg>() の呼び出しは、 I<vlen> 個のメッセージ"
+"が送信されるまで停止する。 非停止 (nonblocking) モードの呼び出しでは、 送信で"
+"きるだけのメッセージ (最大で I<vlen> 個) を送信し、 すぐに返る。"
#. type: Plain text
#: build/C/man2/sendmmsg.2:119
"of I<msgvec> are updated to contain the number of bytes transmitted from the "
"corresponding I<msg_hdr>. The return value of the call indicates the number "
"of elements of I<msgvec> that have been updated."
-msgstr "B<sendmmsg>() が返った際には、 I<msgvec> の送信が行われた要素の I<msg_len> フィールドは、対応する I<msg_hdr> から送信されたバイト数が入っている。 呼び出しの返り値は、更新された I<msgvec> の要素数である。"
+msgstr ""
+"B<sendmmsg>() が返った際には、 I<msgvec> の送信が行われた要素の I<msg_len> "
+"フィールドは、対応する I<msg_hdr> から送信されたバイト数が入っている。 呼び出"
+"しの返り値は、更新された I<msgvec> の要素数である。"
#. type: Plain text
#: build/C/man2/sendmmsg.2:129
"On success, B<sendmmsg>() returns the number of messages sent from "
"I<msgvec>; if this is less than I<vlen>, the caller can retry with a further "
"B<sendmmsg>() call to send the remaining messages."
-msgstr "成功すると、 B<sendmmsg>() は I<msgvec> から送信されたメッセージ数を返す。 返り値が I<vlen> よりも小さい場合、 呼び出した側では再度 B<sendmmsg> を呼び出して残りのメッセージを送信することができる。"
+msgstr ""
+"成功すると、 B<sendmmsg>() は I<msgvec> から送信されたメッセージ数を返す。 返"
+"り値が I<vlen> よりも小さい場合、 呼び出した側では再度 B<sendmmsg> を呼び出し"
+"て残りのメッセージを送信することができる。"
#. type: Plain text
#: build/C/man2/sendmmsg.2:133
msgid ""
"Errors are as for B<sendmsg>(2). An error is returned only if no datagrams "
"could be sent."
-msgstr "エラーは B<sendmsg>(2) と同じである。 エラーが返されるのは、 データグラムが全く送信できなかった場合のみである。"
+msgstr ""
+"エラーは B<sendmsg>(2) と同じである。 エラーが返されるのは、 データグラムが全"
+"く送信できなかった場合のみである。"
#. type: Plain text
#: build/C/man2/sendmmsg.2:150
msgid ""
"The B<sendmmsg>() system call was added in Linux 3.0. Support in glibc was "
"added in version 2.14."
-msgstr "B<sendmmsg>() システムコールは Linux 3.0 で追加された。 glibc でのサポートはバージョン 2.14 で追加された。"
+msgstr ""
+"B<sendmmsg>() システムコールは Linux 3.0 で追加された。 glibc でのサポートは"
+"バージョン 2.14 で追加された。"
#. type: Plain text
#: build/C/man2/sendmmsg.2:153
"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 "以下の例では、 B<sendmmsg>() を使って、 一度のシステムコールで、 I<onetwo> と I<three> を二つの別々の UDP データグラムで送信する。 一つ目のデータグラムの内容は、二つのバッファから取得される。"
+msgstr ""
+"以下の例では、 B<sendmmsg>() を使って、 一度のシステムコールで、 I<onetwo> "
+"と I<three> を二つの別々の UDP データグラムで送信する。 一つ目のデータグラム"
+"の内容は、二つのバッファから取得される。"
#. type: Plain text
#: build/C/man2/sendmmsg.2:186
msgid "SOCKATMARK"
msgstr "SOCKATMARK"
+#. type: TH
+#: build/C/man3/sockatmark.3:25
+#, fuzzy, no-wrap
+#| msgid "2007-12-28"
+msgid "2014-02-28"
+msgstr "2007-12-28"
+
#. type: Plain text
#: build/C/man3/sockatmark.3:28
msgid "sockatmark - determine whether socket is at out-of-band mark"
#. type: Plain text
#: build/C/man3/sockatmark.3:30 build/C/man2/socket.2:50
-#: build/C/man7/socket.7:53 build/C/man2/socketpair.2:49
+#: build/C/man7/socket.7:61 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:56
+#: build/C/man3/sockatmark.3:58
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:61
+#: build/C/man3/sockatmark.3:63
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:68
+#: build/C/man3/sockatmark.3:70
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:71
+#: build/C/man3/sockatmark.3:73
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:73
+#: build/C/man3/sockatmark.3:78
+msgid "The B<sockatmark>() function is thread-safe."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/sockatmark.3:80
msgid "POSIX.1-2001."
msgstr "POSIX.1-2001."
#. type: Plain text
-#: build/C/man3/sockatmark.3:80
+#: build/C/man3/sockatmark.3:87
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:82
+#: build/C/man3/sockatmark.3:89
msgid "Out-of-band data is supported only on some stream socket protocols."
msgstr ""
"帯域外データは、いくつかのストリームソケットプロトコルでしか サポートされてい"
"ない。"
#. type: Plain text
-#: build/C/man3/sockatmark.3:87
+#: build/C/man3/sockatmark.3:94
msgid ""
"B<sockatmark>() can safely be called from a handler for the B<SIGURG> "
"signal."
"る。"
#. type: Plain text
-#: build/C/man3/sockatmark.3:93
+#: build/C/man3/sockatmark.3:100
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:97
+#: build/C/man3/sockatmark.3:104
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:102
+#: build/C/man3/sockatmark.3:109
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:107
+#: build/C/man3/sockatmark.3:114
#, no-wrap
msgid ""
" char buf[BUF_LEN];\n"
" int atmark, s;\n"
#. type: Plain text
-#: build/C/man3/sockatmark.3:114
+#: build/C/man3/sockatmark.3:121
#, no-wrap
msgid ""
" for (;;) {\n"
" }\n"
#. type: Plain text
-#: build/C/man3/sockatmark.3:117
+#: build/C/man3/sockatmark.3:124
#, no-wrap
msgid ""
" if (atmark)\n"
" break;\n"
#. type: Plain text
-#: build/C/man3/sockatmark.3:124
+#: build/C/man3/sockatmark.3:131
#, no-wrap
msgid ""
" s = read(sockfd, buf, BUF_LEN) E<lt>= 0);\n"
" }\n"
#. type: Plain text
-#: build/C/man3/sockatmark.3:131
+#: build/C/man3/sockatmark.3:138
#, no-wrap
msgid ""
" if (atmark == 1) {\n"
" }\n"
#. type: Plain text
-#: build/C/man3/sockatmark.3:137
+#: build/C/man3/sockatmark.3:144
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:43 build/C/man7/socket.7:48
+#: build/C/man2/socket.2:43 build/C/man7/socket.7:56
#, no-wrap
msgid "SOCKET"
msgstr "SOCKET"
#. type: TH
#: build/C/man2/socket.2:43
-#, no-wrap
-msgid "2009-01-19"
-msgstr "2009-01-19"
+#, fuzzy, no-wrap
+#| msgid "2012-12-14"
+msgid "2013-12-31"
+msgstr "2012-12-14"
#. type: Plain text
#: build/C/man2/socket.2:46
#: 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
+#: build/C/man7/socket.7:192
#, no-wrap
msgid "T}:T{\n"
msgstr "T}:T{\n"
#. type: tbl table
#: 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
+#: build/C/man2/socket.2:118 build/C/man7/socket.7:171
+#: build/C/man7/socket.7:175 build/C/man7/socket.7:178
+#: build/C/man7/socket.7:184 build/C/man7/socket.7:187
+#: build/C/man7/socket.7:196 build/C/man7/socket.7:203
#, no-wrap
msgid "T}\n"
msgstr "T}\n"
msgid ""
"Supports datagrams (connectionless, unreliable messages of a fixed maximum "
"length)."
-msgstr "データグラム (コネクションレス、信頼性無し、固定最大長メッセージ) をサポートする。"
+msgstr ""
+"データグラム (コネクションレス、信頼性無し、固定最大長メッセージ) をサポート"
+"する。"
#. type: TP
#: build/C/man2/socket.2:134
"こと"
#. type: Plain text
-#: 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>."
+#: build/C/man2/socket.2:152
+#, fuzzy
+#| msgid ""
+#| "Some socket types may not be implemented by all protocol families; for "
+#| "example, B<SOCK_SEQPACKET> is not implemented for B<AF_INET>."
+msgid "Some socket types may not be implemented by all protocol families."
msgstr ""
"ある種のソケット型が全てのプロトコル・ファミリで実装されているわけではない。 "
"例えば B<SOCK_SEQPACKET> は B<AF_INET> には実装されていない。"
#. type: Plain text
-#: build/C/man2/socket.2:164
+#: build/C/man2/socket.2:160
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:198
+#: build/C/man2/socket.2:194
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:228
+#: build/C/man2/socket.2:224
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:254
+#: build/C/man2/socket.2:250
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:264
+#: build/C/man2/socket.2:260
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:271
+#: build/C/man2/socket.2:267
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:294
+#: build/C/man2/socket.2:290
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:304
+#: build/C/man2/socket.2:300
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:314
+#: build/C/man2/socket.2:310
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:319
+#: build/C/man2/socket.2:315
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:324
+#: build/C/man2/socket.2:320
msgid ""
"Permission to create a socket of the specified type and/or protocol is "
"denied."
"指定されたタイプまたはプロトコルのソケットを作成する許可が与えられていない。"
#. type: Plain text
-#: build/C/man2/socket.2:327
+#: build/C/man2/socket.2:323
msgid "The implementation does not support the specified address family."
msgstr "指定されたアドレスファミリーがサポートされていない。"
#. type: Plain text
-#: build/C/man2/socket.2:330
+#: build/C/man2/socket.2:326
msgid "Unknown protocol, or protocol family not available."
msgstr "知らないプロトコル、または利用できないプロトコル・ファミリである。"
#. Since Linux 2.6.27
#. type: Plain text
-#: build/C/man2/socket.2:335
+#: build/C/man2/socket.2:331
msgid "Invalid flags in I<type>."
msgstr "I<type> に無効なフラグが指定されている。"
#. type: Plain text
-#: build/C/man2/socket.2:338
+#: build/C/man2/socket.2:334
msgid "Process file table overflow."
msgstr "プロセスのファイルテーブルが溢れている。"
#. type: TP
-#: build/C/man2/socket.2:341
+#: build/C/man2/socket.2:337
#, no-wrap
msgid "B<ENOBUFS> or B<ENOMEM>"
msgstr "B<ENOBUFS> または B<ENOMEM>"
#. type: Plain text
-#: build/C/man2/socket.2:346
+#: build/C/man2/socket.2:342
msgid ""
"Insufficient memory is available. The socket cannot be created until "
"sufficient resources are freed."
"ない。"
#. type: TP
-#: build/C/man2/socket.2:346 build/C/man2/socketpair.2:92
+#: build/C/man2/socket.2:342 build/C/man2/socketpair.2:92
#, no-wrap
msgid "B<EPROTONOSUPPORT>"
msgstr "B<EPROTONOSUPPORT>"
#. type: Plain text
-#: build/C/man2/socket.2:350
+#: build/C/man2/socket.2:346
msgid ""
"The protocol type or the specified protocol is not supported within this "
"domain."
"いない。"
#. type: Plain text
-#: build/C/man2/socket.2:352
+#: build/C/man2/socket.2:348
msgid "Other errors may be generated by the underlying protocol modules."
msgstr "下位のプロトコル・モジュールから他のエラーが生成されるかもしれない。"
#. type: Plain text
-#: build/C/man2/socket.2:354
+#: build/C/man2/socket.2:350
msgid "4.4BSD, POSIX.1-2001."
msgstr "4.4BSD, POSIX.1-2001."
#. type: Plain text
-#: build/C/man2/socket.2:360
+#: build/C/man2/socket.2:356
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:366
+#: build/C/man2/socket.2:362
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:385
+#: build/C/man2/socket.2:381
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<AF_INET>, and so on "
"それ以外の規格では全ての場所で AF_* が使用されている。"
#. type: Plain text
-#: build/C/man2/socket.2:390
+#: build/C/man2/socket.2:386
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:413
+#: build/C/man2/socket.2:409
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:419
+#: build/C/man2/socket.2:415
msgid ""
"\\(lqAn Introductory 4.3BSD Interprocess Communication Tutorial\\(rq and "
"\\(lqBSD Interprocess Communication Tutorial\\(rq, reprinted in I<UNIX "
"Supplementary Documents Volume 1.> として再版された)"
#. type: TH
-#: build/C/man7/socket.7:48
+#: build/C/man7/socket.7:56
#, no-wrap
-msgid "2013-03-15"
-msgstr "2013-03-15"
+msgid "2014-02-21"
+msgstr ""
#. type: Plain text
-#: build/C/man7/socket.7:51
+#: build/C/man7/socket.7:59
msgid "socket - Linux socket interface"
msgstr "socket - Linux のソケットインターフェース"
#. type: Plain text
-#: build/C/man7/socket.7:55
+#: build/C/man7/socket.7:63
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:74
+#: build/C/man7/socket.7:82
+#, fuzzy
+#| msgid ""
+#| "This manual page describes the Linux networking socket layer user "
+#| "interface. The BSD compatible sockets are the uniform interface between "
+#| "the user process and the network protocol stacks in the kernel. The "
+#| "protocol modules are grouped into I<protocol families> like B<AF_INET>, "
+#| "B<AF_IPX>, B<AF_PACKET> and I<socket types> like B<SOCK_STREAM> or "
+#| "B<SOCK_DGRAM>. See B<socket>(2) for more information on families and "
+#| "types."
msgid ""
"This manual page describes the Linux networking socket layer user "
"interface. The BSD compatible sockets are the uniform interface between the "
"user process and the network protocol stacks in the kernel. The protocol "
-"modules are grouped into I<protocol families> like B<AF_INET>, B<AF_IPX>, "
-"B<AF_PACKET> and I<socket types> like B<SOCK_STREAM> or B<SOCK_DGRAM>. See "
-"B<socket>(2) for more information on families and types."
+"modules are grouped into I<protocol families> such as B<AF_INET>, B<AF_IPX>, "
+"and B<AF_PACKET>, and I<socket types> such as B<SOCK_STREAM> or "
+"B<SOCK_DGRAM>. See B<socket>(2) for more information on families and types."
msgstr ""
"このマニュアルページは Linux ネットワークのソケット層に対する ユーザインター"
"フェースを記述するものである。 BSD 互換ソケットは、ユーザプロセスとカーネル内"
"関するより詳しい情報は B<socket>(2) を参照のこと。"
#. type: SS
-#: build/C/man7/socket.7:74
+#: build/C/man7/socket.7:82
#, no-wrap
msgid "Socket-layer functions"
msgstr "ソケット層の関数群"
#. type: Plain text
-#: build/C/man7/socket.7:78
+#: build/C/man7/socket.7:86
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:94
+#: build/C/man7/socket.7:102
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:116
+#: build/C/man7/socket.7:124
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:127
+#: build/C/man7/socket.7:135
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:132
+#: build/C/man7/socket.7:140
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:138
+#: build/C/man7/socket.7:146
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:155
+#: build/C/man7/socket.7:163
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:159
+#: build/C/man7/socket.7:167
#, no-wrap
msgid "I/O events\n"
msgstr "I/O イベント\n"
#. type: tbl table
-#: build/C/man7/socket.7:160
+#: build/C/man7/socket.7:168
#, no-wrap
msgid "Event:Poll flag:Occurrence\n"
msgstr "イベント:poll フラグ:内容\n"
#. type: tbl table
-#: build/C/man7/socket.7:161 build/C/man7/socket.7:164
+#: build/C/man7/socket.7:169 build/C/man7/socket.7:172
#, no-wrap
msgid "Read:POLLIN:T{\n"
msgstr "Read:POLLIN:T{\n"
#. type: tbl table
-#: build/C/man7/socket.7:162
+#: build/C/man7/socket.7:170
#, no-wrap
msgid "New data arrived.\n"
msgstr "新しいデータが到着した。\n"
#. type: tbl table
-#: build/C/man7/socket.7:165
+#: build/C/man7/socket.7:173
#, no-wrap
msgid "A connection setup has been completed\n"
msgstr "(接続志向のソケットで)\n"
#. type: tbl table
-#: build/C/man7/socket.7:166
+#: build/C/man7/socket.7:174
#, no-wrap
msgid "(for connection-oriented sockets)\n"
msgstr "接続の設定が終了した。\n"
#. type: tbl table
-#: build/C/man7/socket.7:168 build/C/man7/socket.7:171
+#: build/C/man7/socket.7:176 build/C/man7/socket.7:179
#, no-wrap
msgid "Read:POLLHUP:T{\n"
msgstr "Read:POLLHUP:T{\n"
#. type: tbl table
-#: build/C/man7/socket.7:169
+#: build/C/man7/socket.7:177
#, no-wrap
msgid "A disconnection request has been initiated by the other end.\n"
msgstr "接続先で切断要求が生成された。\n"
#. type: tbl table
-#: build/C/man7/socket.7:172
+#: build/C/man7/socket.7:180
#, no-wrap
msgid "A connection is broken (only for connection-oriented protocols).\n"
msgstr "接続が壊れた (接続志向のプロトコルのみ)。\n"
#. type: tbl table
-#: build/C/man7/socket.7:173
+#: build/C/man7/socket.7:181
#, no-wrap
msgid "When the socket is written\n"
msgstr "この場合、ソケットに書き込みが行われると\n"
#. type: tbl table
-#: build/C/man7/socket.7:174
+#: build/C/man7/socket.7:182
#, no-wrap
msgid "B<SIGPIPE>\n"
msgstr "B<SIGPIPE>\n"
#. type: tbl table
-#: build/C/man7/socket.7:175
+#: build/C/man7/socket.7:183
#, no-wrap
msgid "is also sent.\n"
msgstr "も送信される。\n"
#. type: tbl table
-#: build/C/man7/socket.7:177
+#: build/C/man7/socket.7:185
#, no-wrap
msgid "Write:POLLOUT:T{\n"
msgstr "Write:POLLOUT:T{\n"
#. type: tbl table
-#: build/C/man7/socket.7:178
+#: build/C/man7/socket.7:186
#, no-wrap
msgid "Socket has enough send buffer space for writing new data.\n"
msgstr "ソケットには新しいデータを書き込むのに十分なバッファがある。\n"
#. type: tbl table
-#: build/C/man7/socket.7:180
+#: build/C/man7/socket.7:188
#, no-wrap
msgid "Read/Write:T{\n"
msgstr "Read/Write:T{\n"
#. type: tbl table
-#: build/C/man7/socket.7:181
+#: build/C/man7/socket.7:189
#, no-wrap
msgid "POLLIN|\n"
msgstr "POLLIN|\n"
#. type: tbl table
-#: build/C/man7/socket.7:182
+#: build/C/man7/socket.7:190
#, no-wrap
msgid ".br\n"
msgstr ".br\n"
#. type: tbl table
-#: build/C/man7/socket.7:183
+#: build/C/man7/socket.7:191
#, no-wrap
msgid "POLLOUT\n"
msgstr "POLLOUT\n"
#. type: tbl table
-#: build/C/man7/socket.7:185
+#: build/C/man7/socket.7:193
#, no-wrap
msgid "An outgoing\n"
msgstr "外部向けの\n"
#. type: tbl table
-#: build/C/man7/socket.7:186
+#: build/C/man7/socket.7:194
#, no-wrap
msgid "B<connect>(2)\n"
msgstr "B<connect>(2)\n"
#. type: tbl table
-#: build/C/man7/socket.7:187
+#: build/C/man7/socket.7:195
#, no-wrap
msgid "finished.\n"
msgstr "が終了した。\n"
#. type: tbl table
-#: build/C/man7/socket.7:189
+#: build/C/man7/socket.7:197
#, 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:190
+#: build/C/man7/socket.7:198
#, 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:191
+#: build/C/man7/socket.7:199
#, no-wrap
msgid "Exception:POLLPRI:T{\n"
msgstr "Exception:POLLPRI:T{\n"
#. type: tbl table
-#: build/C/man7/socket.7:192
+#: build/C/man7/socket.7:200
#, no-wrap
msgid "Urgent data arrived.\n"
msgstr "緊急データ (urgent data) が到着した。この場合は\n"
#. type: tbl table
-#: build/C/man7/socket.7:193
+#: build/C/man7/socket.7:201
#, no-wrap
msgid "B<SIGURG>\n"
msgstr "B<SIGURG>\n"
#. type: tbl table
-#: build/C/man7/socket.7:194
+#: build/C/man7/socket.7:202
#, no-wrap
msgid "is sent then.\n"
msgstr "が送信される。\n"
#. type: Plain text
-#: build/C/man7/socket.7:223
+#: build/C/man7/socket.7:231
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:223
+#: build/C/man7/socket.7:231
#, no-wrap
msgid "Socket address structures"
msgstr "ソケットアドレス構造体"
#. type: Plain text
-#: build/C/man7/socket.7:239
+#: build/C/man7/socket.7:247
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 "
"(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 "各ソケットドメインにはそれぞれ独自のソケットアドレス形式があり、ドメイン固有のアドレス構造体を持っている。 これらの構造体の先頭には、アドレス構造体の種類を示す整数の \"family\" フィールド (型は I<sa_family_t>) がある。 このフィールドにより、 すべてのソケットドメインで汎用的に使用されるシステムコール (例えば、 B<connect>(2), B<bind>(2), B<accept>(2), B<getsockname>(2), B<getpeername>(2) など) が、特定のソケットアドレスのドメインを判定することができる。"
+msgstr ""
+"各ソケットドメインにはそれぞれ独自のソケットアドレス形式があり、ドメイン固有"
+"のアドレス構造体を持っている。 これらの構造体の先頭には、アドレス構造体の種類"
+"を示す整数の \"family\" フィールド (型は I<sa_family_t>) がある。 このフィー"
+"ルドにより、 すべてのソケットドメインで汎用的に使用されるシステムコール (例え"
+"ば、 B<connect>(2), B<bind>(2), B<accept>(2), B<getsockname>(2), "
+"B<getpeername>(2) など) が、特定のソケットアドレスのドメインを判定することが"
+"できる。"
#. type: Plain text
-#: build/C/man7/socket.7:249
+#: build/C/man7/socket.7:257
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 "任意の種類のソケットアドレスをソケット API のインターフェースに渡せるように、 I<struct sockaddr> 型が定義されている。 この型の目的は、 純粋に、 ドメイン固有のソケットアドレスを 「汎用的な」型にキャストできるようにする点にある。 これにより、 ソケット API 呼び出しにおいて、 コンパイラが型の不一致の警告を出すのを避けることができる。"
+msgstr ""
+"任意の種類のソケットアドレスをソケット API のインターフェースに渡せるよう"
+"に、 I<struct sockaddr> 型が定義されている。 この型の目的は、 純粋に、 ドメイ"
+"ン固有のソケットアドレスを 「汎用的な」型にキャストできるようにする点にあ"
+"る。 これにより、 ソケット API 呼び出しにおいて、 コンパイラが型の不一致の警"
+"告を出すのを避けることができる。"
#. type: Plain text
-#: build/C/man7/socket.7:259
+#: build/C/man7/socket.7:267
msgid ""
"In addition, the sockets API provides the data type I<struct "
"sockaddr_storage>. This type is suitable to accommodate all supported "
"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 "これに加えて、ソケット API ではデータ型 I<struct sockaddr_storage> が提供されている。 サポートしているすべてのドメイン固有のソケットアドレス構造体を収容するのに、この型を使うことができる。 この型は十分な大きさがあり、(メモリ境界への) アラインも適切に行われている (特に、 IPv6 ソケットアドレスを収容するのにも十分な大きさである)。 この構造体には次のフィールドがあり、 このフィールドを使って、 この構造体に実際に格納されているソケットアドレスの型を特定することができる。"
+msgstr ""
+"これに加えて、ソケット API ではデータ型 I<struct sockaddr_storage> が提供され"
+"ている。 サポートしているすべてのドメイン固有のソケットアドレス構造体を収容す"
+"るのに、この型を使うことができる。 この型は十分な大きさがあり、(メモリ境界へ"
+"の) アラインも適切に行われている (特に、 IPv6 ソケットアドレスを収容するのに"
+"も十分な大きさである)。 この構造体には次のフィールドがあり、 このフィールドを"
+"使って、 この構造体に実際に格納されているソケットアドレスの型を特定することが"
+"できる。"
#. type: Plain text
-#: build/C/man7/socket.7:263
+#: build/C/man7/socket.7:271
#, no-wrap
msgid " sa_family_t ss_family;\n"
msgstr " sa_family_t ss_family;\n"
#. type: Plain text
-#: build/C/man7/socket.7:271
+#: build/C/man7/socket.7:279
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 "I<sockaddr_storage> 構造体は、 ソケットアドレスを汎用的な方法で扱う必要があるプログラム (例えば、 IPv4 と IPv6 の両方のソケットアドレスを扱う必要があるプログラム) で有用である。"
+msgstr ""
+"I<sockaddr_storage> 構造体は、 ソケットアドレスを汎用的な方法で扱う必要がある"
+"プログラム (例えば、 IPv4 と IPv6 の両方のソケットアドレスを扱う必要があるプ"
+"ログラム) で有用である。"
#. type: SS
-#: build/C/man7/socket.7:271
+#: build/C/man7/socket.7:279
#, no-wrap
msgid "Socket options"
msgstr "ソケットオプション"
#. 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:285
+#: build/C/man7/socket.7:297
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:"
+"The socket options listed below 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. Unless otherwise noted, I<optval> is a pointer to an I<int>."
msgstr ""
"これらのソケットオプションは、 B<setsockopt>(2) を用いれば設定でき、 "
"B<getsockopt>(2) を用いれば取得できる。 但し、どのソケットの場合も ソケット"
-"レベルには B<SOL_SOCKET> を指定すること。"
+"レベルには B<SOL_SOCKET> を指定すること。 注釈がない限り、 I<optval> は "
+"I<int> へのポインタである。"
#. type: TP
-#: build/C/man7/socket.7:285
+#: build/C/man7/socket.7:297
#, no-wrap
msgid "B<SO_ACCEPTCONN>"
msgstr "B<SO_ACCEPTCONN>"
#. type: Plain text
-#: build/C/man7/socket.7:293
+#: build/C/man7/socket.7:305
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:293
+#: build/C/man7/socket.7:305
#, no-wrap
msgid "B<SO_BINDTODEVICE>"
msgstr "B<SO_BINDTODEVICE>"
#. type: Plain text
-#: build/C/man7/socket.7:312
+#: build/C/man7/socket.7:324
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 "
"that this works only for some socket types, particularly B<AF_INET> "
"sockets. It is not supported for packet sockets (use normal B<bind>(2) "
"there)."
-msgstr "このソケットを、引き数で渡したインターフェース名で指定される (\\(lqeth0\\(rq のような) 特定のデバイスにバインドする。 名前が空文字列だったり、オプションの長さ (optlen) が 0 の場合には、 ソケットのバインドが削除される。 渡すオプションは、インターフェース名が 入ったヌル文字で終端された可変長の文字列である。 文字列の最大のサイズは B<IFNAMSIX> である。 ソケットがインターフェースにバインドされると、 その特定のインターフェースから受信されたパケットだけを処理する。 このオプションはいくつかのソケットタイプ、 特に B<AF_INET> に対してのみ動作する点に注意すること。 パケットソケットではサポートされていない (通常の B<bind>(2) を使うこと)。"
+msgstr ""
+"このソケットを、引き数で渡したインターフェース名で指定される (\\(lqeth0\\(rq "
+"のような) 特定のデバイスにバインドする。 名前が空文字列だったり、オプションの"
+"長さ (optlen) が 0 の場合には、 ソケットのバインドが削除される。 渡すオプショ"
+"ンは、インターフェース名が 入ったヌル文字で終端された可変長の文字列である。 "
+"文字列の最大のサイズは B<IFNAMSIX> である。 ソケットがインターフェースにバイ"
+"ンドされると、 その特定のインターフェースから受信されたパケットだけを処理す"
+"る。 このオプションはいくつかのソケットタイプ、 特に B<AF_INET> に対してのみ"
+"動作する点に注意すること。 パケットソケットではサポートされていない (通常の "
+"B<bind>(2) を使うこと)。"
#. type: Plain text
-#: build/C/man7/socket.7:326
+#: build/C/man7/socket.7:338
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 "Linux 3.8 より前のバージョンでは、このソケットオプションは B<getsockname>(2) で設定することはできたが、取得することができなかった。 Linux 3.8 以降では、読み出すことができる。 I<optlen> 引き数には、 デバイス名を格納するのに十分なバッファサイズを渡すべきであり、 B<IFNAMSIZ> バイトにすることを推奨する。 実際のデバイス名の長さは I<optlen> 引き数に格納されて返される。"
+msgstr ""
+"Linux 3.8 より前のバージョンでは、このソケットオプションは B<getsockname>(2) "
+"で設定することはできたが、取得することができなかった。 Linux 3.8 以降では、読"
+"み出すことができる。 I<optlen> 引き数には、 デバイス名を格納するのに十分な"
+"バッファサイズを渡すべきであり、 B<IFNAMSIZ> バイトにすることを推奨する。 実"
+"際のデバイス名の長さは I<optlen> 引き数に格納されて返される。"
#. type: TP
-#: build/C/man7/socket.7:326
+#: build/C/man7/socket.7:338
#, no-wrap
msgid "B<SO_BROADCAST>"
msgstr "B<SO_BROADCAST>"
#. type: Plain text
-#: build/C/man7/socket.7:332
+#: build/C/man7/socket.7:344
msgid ""
"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-"
"ストリーム指向のソケットには何の効果もない。"
#. type: TP
-#: build/C/man7/socket.7:332
+#: build/C/man7/socket.7:344
#, no-wrap
msgid "B<SO_BSDCOMPAT>"
msgstr "B<SO_BSDCOMPAT>"
#. type: Plain text
-#: build/C/man7/socket.7:344
+#: build/C/man7/socket.7:356
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:344
+#: build/C/man7/socket.7:356
#, no-wrap
msgid "B<SO_DEBUG>"
msgstr "B<SO_DEBUG>"
#. type: Plain text
-#: build/C/man7/socket.7:350
+#: build/C/man7/socket.7:362
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:350
+#: build/C/man7/socket.7:362
#, 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:358
+#: build/C/man7/socket.7:370
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:358
+#: build/C/man7/socket.7:370
#, no-wrap
msgid "B<SO_ERROR>"
msgstr "B<SO_ERROR>"
#. type: Plain text
-#: build/C/man7/socket.7:363
+#: build/C/man7/socket.7:375
msgid ""
"Get and clear the pending socket error. This socket option is read-only. "
"Expects an integer."
"このソケットオプションは読み込み専用である。整数値をとる。"
#. type: TP
-#: build/C/man7/socket.7:363
+#: build/C/man7/socket.7:375
#, no-wrap
msgid "B<SO_DONTROUTE>"
msgstr "B<SO_DONTROUTE>"
#. type: Plain text
-#: build/C/man7/socket.7:372
+#: build/C/man7/socket.7:384
msgid ""
"Don't send via a gateway, send only to directly connected hosts. The same "
"effect can be achieved by setting the B<MSG_DONTROUTE> flag on a socket "
"B<send>(2) operation. Expects an integer boolean flag."
-msgstr "ゲートウェイを経由せず、直接接続されているホストにのみ送信する。 B<send>(2) 操作で B<MSG_DONTROUTE> フラグをセットした場合も同じ効果が得られる。 ブール整数のフラグを取る。"
+msgstr ""
+"ゲートウェイを経由せず、直接接続されているホストにのみ送信する。 B<send>(2) "
+"操作で B<MSG_DONTROUTE> フラグをセットした場合も同じ効果が得られる。 ブール整"
+"数のフラグを取る。"
#. type: TP
-#: build/C/man7/socket.7:372
+#: build/C/man7/socket.7:384
#, no-wrap
msgid "B<SO_KEEPALIVE>"
msgstr "B<SO_KEEPALIVE>"
#. type: Plain text
-#: build/C/man7/socket.7:376
+#: build/C/man7/socket.7:388
msgid ""
"Enable sending of keep-alive messages on connection-oriented sockets. "
"Expects an integer boolean flag."
"の整数フラグをとる。"
#. type: TP
-#: build/C/man7/socket.7:376
+#: build/C/man7/socket.7:388
#, no-wrap
msgid "B<SO_LINGER>"
msgstr "B<SO_LINGER>"
#. type: Plain text
-#: build/C/man7/socket.7:384
+#: build/C/man7/socket.7:396
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:391
+#: build/C/man7/socket.7:403
#, no-wrap
msgid ""
"struct linger {\n"
"};\n"
#. type: Plain text
-#: build/C/man7/socket.7:405
+#: build/C/man7/socket.7:417
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:405
+#: build/C/man7/socket.7:417
#, no-wrap
msgid "B<SO_MARK> (since Linux 2.6.25)"
msgstr "B<SO_MARK> (Linux 2.6.25 以降)"
#. commit 4a19ec5800fc3bb64e2d87c4d9fdd9e636086fe0
#. and 914a9ab386a288d0f22252fc268ecbc048cdcbd5
#. type: Plain text
-#: build/C/man7/socket.7:416
+#: build/C/man7/socket.7:428
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 "このソケットから送信される各パケットにマークをセットする (netfilter の MARK ターゲットと似ているが、ソケット単位である点が異なる)。 マークの変更は、 netfilter なしでのマークに基づいてのルーティングや、 パケットフィルタリングに使うことができる。 このオプションを変更するには B<CAP_NET_ADMIN> ケーパビリティが必要である。"
+msgstr ""
+"このソケットから送信される各パケットにマークをセットする (netfilter の MARK "
+"ターゲットと似ているが、ソケット単位である点が異なる)。 マークの変更は、 "
+"netfilter なしでのマークに基づいてのルーティングや、 パケットフィルタリングに"
+"使うことができる。 このオプションを変更するには B<CAP_NET_ADMIN> ケーパビリ"
+"ティが必要である。"
#. type: TP
-#: build/C/man7/socket.7:416
+#: build/C/man7/socket.7:428
#, 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:425
+#: build/C/man7/socket.7:437
msgid ""
"If this option is enabled, out-of-band data is directly placed into the "
"receive data stream. Otherwise out-of-band data is passed only when the "
"ラグがセットされている場合に限って渡される。"
#. type: TP
-#: build/C/man7/socket.7:425
+#: build/C/man7/socket.7:437
#, 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:434
+#: build/C/man7/socket.7:446
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:434
+#: build/C/man7/socket.7:446
+#, no-wrap
+msgid "B<SO_PEEK_OFF> (since Linux 3.4)"
+msgstr "B<SO_PEEK_OFF> (Linux 3.4 以降)"
+
+#. commit ef64a54f6e558155b4f149bb10666b9e914b6c54
+#. type: Plain text
+#: build/C/man7/socket.7:456
+#, fuzzy
+#| msgid ""
+#| "This option, which is currently supported only for B<unix>(7) sockets, "
+#| "sets the value of the \"peek offset\" for the B<recv(2)> system call when "
+#| "used with B<MSG_PEEK> flag."
+msgid ""
+"This option, which is currently supported only for B<unix>(7) sockets, sets "
+"the value of the \"peek offset\" for the B<recv>(2) system call when used "
+"with B<MSG_PEEK> flag."
+msgstr ""
+"B<MSG_PEEK> フラグと一緒に使用された場合 B<recv>(2) システムコールの \"peek "
+"offset\" にこのオプションの値が設定される。現在のところ、このオプションは "
+"B<unix>(7) ソケットでのみサポートされている。"
+
+#. type: Plain text
+#: build/C/man7/socket.7:464
+#, fuzzy
+#| msgid ""
+#| "When this option is set to a negative value (it is set to -1 for all new "
+#| "sockets), traditional behavior is provided: B<recv(2)> with the "
+#| "B<MSG_PEEK> flag will peek data from the front of the queue."
+msgid ""
+"When this option is set to a negative value (it is set to -1 for all new "
+"sockets), traditional behavior is provided: B<recv>(2) with the B<MSG_PEEK> "
+"flag will peek data from the front of the queue."
+msgstr ""
+"このオプションが負の値に設定された場合、従来の動作となる。 つまり "
+"B<MSG_PEEK> フラグが指定された B<recv>(2) は、キューの先頭のデータに対して "
+"peek 処理を行う (データを読み出すが、キューからデータの削除を行わない)。 新規"
+"のソケットではこのオプションの値は必ず -1 に設定される。"
+
+#. type: Plain text
+#: build/C/man7/socket.7:471
+msgid ""
+"When the option is set to a value greater than or equal to zero, then the "
+"next peek at data queued in the socket will occur at the byte offset "
+"specified by the option value. At the same time, the \"peek offset\" will "
+"be incremented by the number of bytes that were peeked from the queue, so "
+"that a subsequent peek will return the next data in the queue."
+msgstr ""
+"このオプションに 0 以上の値が設定されると、 そのソケットのキュー上のオプショ"
+"ン値で指定されたバイトオフセットにあるデータが次の peek 処理で返される。 同時"
+"に、 \"peek offset\" がキューから peek 処理されたバイト数だけ加算される。した"
+"がって、次の peek 処理ではキューのその次にあるデータが返される。"
+
+#. type: Plain text
+#: build/C/man7/socket.7:483
+msgid ""
+"If data is removed from the front of the queue via a call to B<recv>(2) (or "
+"similar) without the B<MSG_PEEK> flag, the \"peek offset\" will be decreased "
+"by the number of bytes removed. In other words, receiving data without the "
+"B<MSG_PEEK> flag will cause the \"peek offset\" to be adjusted to maintain "
+"the correct relative position in the queued data, so that a subsequent peek "
+"will retrieve the data that would have been retrieved had the data not been "
+"removed."
+msgstr ""
+"B<recv>(2) (や同様のシステムコール) の B<MSG_PEEK> フラグなしの呼び出しで"
+"キューの先頭のデータが削除された場合、 \"peek offset\" は削除されたバイト数だ"
+"け減算される。 言い換えると、 B<MSG_PEEK> フラグなしでデータを受信すると、 "
+"\"peek offset\" が指すキュー内の相対的な位置が狂わないように調整され、この後"
+"の peek では、 データ削除が行われなかった場合に返されたのと同じ値が返されると"
+"いうことである。"
+
+#. type: Plain text
+#: build/C/man7/socket.7:488
+msgid ""
+"For datagram sockets, if the \"peek offset\" points to the middle of a "
+"packet, the data returned will be marked with the B<MSG_TRUNC> flag."
+msgstr ""
+"データグラムソケットでは、 \"peek offset\" がパケットの途中を指している場合に"
+"は、 返されるデータには B<MSG_TRUNC> フラグが付与される。"
+
+#. type: Plain text
+#: build/C/man7/socket.7:492
+msgid ""
+"The following example serves to illustrate the use of B<SO_PEEK_OFF>. "
+"Suppose a stream socket has the following queued input data:"
+msgstr ""
+"以下の例は B<SO_PEEK_OFF> の利用例を示している。ストリームソケットのキューに"
+"以下の入力データが入っているものとする。"
+
+#. type: Plain text
+#: build/C/man7/socket.7:494
+#, no-wrap
+msgid " aabbccddeeff\n"
+msgstr " aabbccddeeff\n"
+
+#. type: Plain text
+#: build/C/man7/socket.7:499
+msgid ""
+"The following sequence of B<recv>(2) calls would have the effect noted in "
+"the comments:"
+msgstr ""
+"以下の順序で B<recv>(2) の呼び出しを行うと、コメントに書かれた結果となる。"
+
+#. type: Plain text
+#: build/C/man7/socket.7:504
+#, no-wrap
+msgid ""
+"int ov = 4; // Set peek offset to 4\n"
+"setsockopt(fd, SOL_SOCKET, SO_PEEK_OFF, &ov, sizeof(ov));\n"
+msgstr ""
+"int ov = 4; // Set peek offset to 4\n"
+"setsockopt(fd, SOL_SOCKET, SO_PEEK_OFF, &ov, sizeof(ov));\n"
+
+#. type: Plain text
+#: build/C/man7/socket.7:509
+#, no-wrap
+msgid ""
+"recv(fd, buf, 2, MSG_PEEK); // Peeks \"cc\"; offset set to 6\n"
+"recv(fd, buf, 2, MSG_PEEK); // Peeks \"dd\"; offset set to 8\n"
+"recv(fd, buf, 2, 0); // Reads \"aa\"; offset set to 6\n"
+"recv(fd, buf, 2, MSG_PEEK); // Peeks \"ee\"; offset set to 8\n"
+msgstr ""
+"recv(fd, buf, 2, MSG_PEEK); // Peeks \"cc\"; offset set to 6\n"
+"recv(fd, buf, 2, MSG_PEEK); // Peeks \"dd\"; offset set to 8\n"
+"recv(fd, buf, 2, 0); // Reads \"aa\"; offset set to 6\n"
+"recv(fd, buf, 2, MSG_PEEK); // Peeks \"ee\"; offset set to 8\n"
+
+#. type: TP
+#: build/C/man7/socket.7:511
#, no-wrap
msgid "B<SO_PEERCRED>"
msgstr "B<SO_PEERCRED>"
#. type: Plain text
-#: build/C/man7/socket.7:457
+#: build/C/man7/socket.7:534
msgid ""
"Return the credentials of the foreign process connected to this socket. "
"This is possible only for connected B<AF_UNIX> stream sockets and B<AF_UNIX> "
"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) を返す。このソケットオプションが利用できるのは、接続された B<AF_UNIX> ストリームソケット間、および B<socketpair>(2) を使って作成された B<AF_UNIX> のストリームソケットとデータグラムソケットのペアだけである。 B<unix>(7) を参照のこと。 B<connect>(2) や B<socketpair>(2) が呼ばれた時に有効であった信任状が返される。引き数は I<ucred> 構造体である。このソケットオプションは読み込み専用である。"
+msgstr ""
+"このソケットに接続してきた外部プロセスの信任状 (credential) を返す。このソ"
+"ケットオプションが利用できるのは、接続された B<AF_UNIX> ストリームソケット"
+"間、および B<socketpair>(2) を使って作成された B<AF_UNIX> のストリームソケッ"
+"トとデータグラムソケットのペアだけである。 B<unix>(7) を参照のこと。 "
+"B<connect>(2) や B<socketpair>(2) が呼ばれた時に有効であった信任状が返され"
+"る。引き数は I<ucred> 構造体である。このソケットオプションは読み込み専用であ"
+"る。"
#. type: TP
-#: build/C/man7/socket.7:457
+#: build/C/man7/socket.7:534
#, no-wrap
msgid "B<SO_PRIORITY>"
msgstr "B<SO_PRIORITY>"
#. type: Plain text
-#: build/C/man7/socket.7:470
+#: build/C/man7/socket.7:547
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:470
+#: build/C/man7/socket.7:547
#, 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:478
+#: build/C/man7/socket.7:555
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-"
"詳細は B<socket>(2) を参照。このソケットオプションは読み込み専用である。"
#. type: TP
-#: build/C/man7/socket.7:478
+#: build/C/man7/socket.7:555
#, no-wrap
msgid "B<SO_RCVBUF>"
msgstr "B<SO_RCVBUF>"
#. 17 July 2012
#. http://thread.gmane.org/gmane.linux.kernel/1328935
#. type: Plain text
-#: build/C/man7/socket.7:497
+#: build/C/man7/socket.7:574
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:497
+#: build/C/man7/socket.7:574
#, 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:506
+#: build/C/man7/socket.7:583
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:506
+#: build/C/man7/socket.7:583
#, 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:535
+#: build/C/man7/socket.7:612
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:535
+#: build/C/man7/socket.7:612
#, 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:570
+#: build/C/man7/socket.7:647
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 "
"タイムアウトは影響を及ぼさない。"
#. type: TP
-#: build/C/man7/socket.7:570
+#: build/C/man7/socket.7:647
#, no-wrap
msgid "B<SO_REUSEADDR>"
msgstr "B<SO_REUSEADDR>"
#. type: Plain text
-#: build/C/man7/socket.7:585
+#: build/C/man7/socket.7:662
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:585
+#: build/C/man7/socket.7:662
+#, fuzzy, no-wrap
+#| msgid "B<SO_PROTOCOL> (since Linux 2.6.32)"
+msgid "B<SO_RXQ_OVFL> (since Linux 2.6.33)"
+msgstr "B<SO_PROTOCOL> (Linux 2.6.32 以降)"
+
+#. commit 3b885787ea4112eaa80945999ea0901bf742707f
+#. type: Plain text
+#: build/C/man7/socket.7:669
+msgid ""
+"Indicates that an unsigned 32-bit value ancilliary msg (cmsg) should be "
+"attached to received skbs indicating the number of packets dropped by the "
+"socket between the last received packet and this received packet"
+msgstr ""
+
+#. type: TP
+#: build/C/man7/socket.7:669
#, 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:601
+#: build/C/man7/socket.7:685
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:601
+#: build/C/man7/socket.7:685
#, 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:610
+#: build/C/man7/socket.7:694
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:610
+#: build/C/man7/socket.7:694
#, no-wrap
msgid "B<SO_TIMESTAMP>"
msgstr "B<SO_TIMESTAMP>"
#. type: Plain text
-#: build/C/man7/socket.7:626
+#: build/C/man7/socket.7:710
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:626
+#: build/C/man7/socket.7:710
#, no-wrap
msgid "B<SO_TYPE>"
msgstr "B<SO_TYPE>"
#. type: Plain text
-#: build/C/man7/socket.7:631
+#: build/C/man7/socket.7:715
msgid ""
"Gets the socket type as an integer (e.g., B<SOCK_STREAM>). This socket "
"option is read-only."
"ソケットのタイプを整数で取得する (例: B<SOCK_STREAM>)。\n"
"このソケットオプションは読み出し専用である。"
+#. type: TP
+#: build/C/man7/socket.7:715
+#, fuzzy, no-wrap
+#| msgid "B<SO_PEEK_OFF> (since Linux 3.4)"
+msgid "B<SO_BUSY_POLL> (since Linux 3.11)"
+msgstr "B<SO_PEEK_OFF> (Linux 3.4 以降)"
+
+#. type: Plain text
+#: build/C/man7/socket.7:724
+msgid ""
+"Sets the approximate time in microseconds to busy poll on a blocking receive "
+"when there is no data. Increasing this value requires B<CAP_NET_ADMIN>. "
+"The default for this option is controlled by the I</proc/sys/net/core/"
+"busy_read> file."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/socket.7:734
+msgid ""
+"The value in the I</proc/sys/net/core/busy_poll> file determines how long "
+"B<select>(2) and B<poll>(2) will busy poll when they operate on sockets "
+"with B<SO_BUSY_POLL> set and no events to report are found."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/socket.7:738
+msgid ""
+"In both cases, busy polling will only be done when the socket last received "
+"data from a network device that supports this option."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/socket.7:742
+msgid ""
+"While busy polling may improve latency of some applications, care must be "
+"taken when using it since this will increase both CPU utilization and power "
+"usage."
+msgstr ""
+
#. type: SS
-#: build/C/man7/socket.7:631
+#: build/C/man7/socket.7:742
#, no-wrap
msgid "Signals"
msgstr "シグナル"
#. type: Plain text
-#: build/C/man7/socket.7:642
+#: build/C/man7/socket.7:753
msgid ""
"When writing onto a connection-oriented socket that has been shut down (by "
"the local or the remote end) B<SIGPIPE> is sent to the writing process and "
"していた場合はシグナルは送られない。"
#. type: Plain text
-#: build/C/man7/socket.7:667
+#: build/C/man7/socket.7:778
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 "
#. .SS Ancillary messages
#. type: Plain text
-#: build/C/man7/socket.7:675
+#: build/C/man7/socket.7:786
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:675
+#: build/C/man7/socket.7:786
#, no-wrap
msgid "/proc interfaces"
msgstr "/proc インタフェース"
#. type: Plain text
-#: build/C/man7/socket.7:679
+#: build/C/man7/socket.7:790
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:679
+#: build/C/man7/socket.7:790
#, no-wrap
msgid "I<rmem_default>"
msgstr "I<rmem_default>"
#. type: Plain text
-#: build/C/man7/socket.7:682
+#: build/C/man7/socket.7:793
msgid "contains the default setting in bytes of the socket receive buffer."
msgstr "ソケットの受信バッファサイズのデフォルト値 (バイト単位)。"
#. type: TP
-#: build/C/man7/socket.7:682
+#: build/C/man7/socket.7:793
#, no-wrap
msgid "I<rmem_max>"
msgstr "I<rmem_max>"
#. type: Plain text
-#: build/C/man7/socket.7:688
+#: build/C/man7/socket.7:799
msgid ""
"contains the maximum socket receive buffer size in bytes which a user may "
"set by using the B<SO_RCVBUF> socket option."
"ファサイズの最大値 (バイト単位)。"
#. type: TP
-#: build/C/man7/socket.7:688
+#: build/C/man7/socket.7:799
#, no-wrap
msgid "I<wmem_default>"
msgstr "I<wmem_default>"
#. type: Plain text
-#: build/C/man7/socket.7:691
+#: build/C/man7/socket.7:802
msgid "contains the default setting in bytes of the socket send buffer."
msgstr "ソケットの送信バッファサイズのデフォルト値 (バイト単位)。"
#. type: TP
-#: build/C/man7/socket.7:691
+#: build/C/man7/socket.7:802
#, no-wrap
msgid "I<wmem_max>"
msgstr "I<wmem_max>"
#. type: Plain text
-#: build/C/man7/socket.7:697
+#: build/C/man7/socket.7:808
msgid ""
"contains the maximum socket send buffer size in bytes which a user may set "
"by using the B<SO_SNDBUF> socket option."
"ファサイズの最大値 (バイト単位)。"
#. type: TP
-#: build/C/man7/socket.7:697
+#: build/C/man7/socket.7:808
#, 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:701
+#: build/C/man7/socket.7:812
msgid ""
"configure the token bucket filter used to load limit warning messages caused "
"by external network events."
"よって引き起こされた 負荷限界の警告メッセージに用いられる。"
#. type: TP
-#: build/C/man7/socket.7:701
+#: build/C/man7/socket.7:812
#, no-wrap
msgid "I<netdev_max_backlog>"
msgstr "I<netdev_max_backlog>"
#. type: Plain text
-#: build/C/man7/socket.7:704
+#: build/C/man7/socket.7:815
msgid "Maximum number of packets in the global input queue."
msgstr "グローバルな入力キューにおける最大のパケット数。"
#. type: TP
-#: build/C/man7/socket.7:704
+#: build/C/man7/socket.7:815
#, 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:709
+#: build/C/man7/socket.7:820
msgid ""
"Maximum length of ancillary data and user control data like the iovecs per "
"socket."
"うなもの) との和の最大長。"
#. type: SS
-#: build/C/man7/socket.7:709
+#: build/C/man7/socket.7:820
#, no-wrap
msgid "Ioctls"
msgstr "ioctl"
#. type: Plain text
-#: build/C/man7/socket.7:712
+#: build/C/man7/socket.7:823
msgid "These operations can be accessed using B<ioctl>(2):"
msgstr "以下に示す操作には B<ioctl>(2) を用いてアクセスできる。"
#. type: Plain text
-#: build/C/man7/socket.7:716
+#: build/C/man7/socket.7:827
#, 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:718
+#: build/C/man7/socket.7:829
#, no-wrap
msgid "B<SIOCGSTAMP>"
msgstr "B<SIOCGSTAMP>"
#. type: Plain text
-#: build/C/man7/socket.7:742
+#: build/C/man7/socket.7:853
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:742
+#: build/C/man7/socket.7:853
#, no-wrap
msgid "B<SIOCSPGRP>"
msgstr "B<SIOCSPGRP>"
#. type: Plain text
-#: build/C/man7/socket.7:761
+#: build/C/man7/socket.7:872
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:761
+#: build/C/man7/socket.7:872
#, no-wrap
msgid "B<FIOASYNC>"
msgstr "B<FIOASYNC>"
#. type: Plain text
-#: build/C/man7/socket.7:771
+#: build/C/man7/socket.7:882
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:779
+#: build/C/man7/socket.7:890
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:779
+#: build/C/man7/socket.7:890
#, no-wrap
msgid "B<SIOCGPGRP>"
msgstr "B<SIOCGPGRP>"
#. type: Plain text
-#: build/C/man7/socket.7:788
+#: build/C/man7/socket.7:899
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:792
+#: build/C/man7/socket.7:903
msgid "Valid B<fcntl>(2) operations:"
msgstr "有効な B<fcntl>(2) 操作:"
#. type: TP
-#: build/C/man7/socket.7:792
+#: build/C/man7/socket.7:903
#, no-wrap
msgid "B<FIOGETOWN>"
msgstr "B<FIOGETOWN>"
#. type: Plain text
-#: build/C/man7/socket.7:797
+#: build/C/man7/socket.7:908
msgid "The same as the B<SIOCGPGRP> B<ioctl>(2)."
msgstr "B<SIOCGPGRP> B<ioctl>(2) と同じ。"
#. type: TP
-#: build/C/man7/socket.7:797
+#: build/C/man7/socket.7:908
#, no-wrap
msgid "B<FIOSETOWN>"
msgstr "B<FIOSETOWN>"
#. type: Plain text
-#: build/C/man7/socket.7:802
+#: build/C/man7/socket.7:913
msgid "The same as the B<SIOCSPGRP> B<ioctl>(2)."
msgstr "B<SIOCSPGRP> B<ioctl>(2) と同じ。"
#. type: Plain text
-#: build/C/man7/socket.7:816
+#: build/C/man7/socket.7:927
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:821
+#: build/C/man7/socket.7:932
msgid ""
"Linux assumes that half of the send/receive buffer is used for internal "
"kernel structures; thus the values in the corresponding I</proc> files are "
"なる。"
#. type: Plain text
-#: build/C/man7/socket.7:834
+#: build/C/man7/socket.7:945
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:847
+#: build/C/man7/socket.7:958
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:859
+#: build/C/man7/socket.7:970
+#, fuzzy
+#| msgid ""
+#| "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)"
msgid ""
-"B<getsockopt>(2), B<connect>(2), B<setsockopt>(2), B<socket>(2), "
+"B<connect>(2), 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)"
msgstr ""
"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 ""
+#~ "$ B<./a.out>\n"
+#~ "lo address family: 17 (AF_PACKET)\n"
+#~ "eth0 address family: 17 (AF_PACKET)\n"
+#~ "lo address family: 2 (AF_INET)\n"
+#~ " address: E<lt>127.0.0.1E<gt>\n"
+#~ "eth0 address family: 2 (AF_INET)\n"
+#~ " address: E<lt>10.1.1.4E<gt>\n"
+#~ "lo address family: 10 (AF_INET6)\n"
+#~ " address: E<lt>::1E<gt>\n"
+#~ "eth0 address family: 10 (AF_INET6)\n"
+#~ " address: E<lt>fe80::2d0:59ff:feda:eb51%eth0E<gt>\n"
+#~ msgstr ""
+#~ "$ B<./a.out>\n"
+#~ "lo address family: 17 (AF_PACKET)\n"
+#~ "eth0 address family: 17 (AF_PACKET)\n"
+#~ "lo address family: 2 (AF_INET)\n"
+#~ " address: E<lt>127.0.0.1E<gt>\n"
+#~ "eth0 address family: 2 (AF_INET)\n"
+#~ " address: E<lt>10.1.1.4E<gt>\n"
+#~ "lo address family: 10 (AF_INET6)\n"
+#~ " address: E<lt>::1E<gt>\n"
+#~ "eth0 address family: 10 (AF_INET6)\n"
+#~ " address: E<lt>fe80::2d0:59ff:feda:eb51%eth0E<gt>\n"
+
+#~ msgid "2013-04-19"
+#~ msgstr "2013-04-19"
+
+#~ msgid "2012-08-03"
+#~ msgstr "2012-08-03"
+
+#~ msgid "2012-04-23"
+#~ msgstr "2012-04-23"
+
+#~ msgid "2012-08-17"
+#~ msgstr "2012-08-17"