msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2012-04-23 07:52+0900\n"
-"PO-Revision-Date: 2012-04-25 01:33+0900\n"
+"POT-Creation-Date: 2013-09-28 04:05+0900\n"
+"PO-Revision-Date: 2013-08-16 11:13+0900\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
#. type: TH
#: build/C/man7/epoll.7:21
#, no-wrap
-msgid "2009-02-01"
-msgstr "2009-02-01"
+msgid "2012-04-17"
+msgstr "2012-04-17"
#. type: TH
-#: build/C/man7/epoll.7:21 build/C/man2/epoll_create.2:25
-#: build/C/man2/epoll_ctl.2:21 build/C/man2/epoll_wait.2:23
+#: build/C/man7/epoll.7:21 build/C/man2/epoll_create.2:24
+#: build/C/man2/epoll_ctl.2:20 build/C/man2/epoll_wait.2:22
#: build/C/man2/poll.2:31
#, no-wrap
msgid "Linux"
msgstr "Linux"
#. type: TH
-#: build/C/man7/epoll.7:21 build/C/man2/epoll_create.2:25
-#: build/C/man2/epoll_ctl.2:21 build/C/man2/epoll_wait.2:23
+#: build/C/man7/epoll.7:21 build/C/man2/epoll_create.2:24
+#: build/C/man2/epoll_ctl.2:20 build/C/man2/epoll_wait.2:22
#: build/C/man2/poll.2:31
#, no-wrap
msgid "Linux Programmer's Manual"
msgstr "Linux Programmer's Manual"
#. type: SH
-#: build/C/man7/epoll.7:22 build/C/man2/epoll_create.2:26
-#: build/C/man2/epoll_ctl.2:22 build/C/man2/epoll_wait.2:24
+#: build/C/man7/epoll.7:22 build/C/man2/epoll_create.2:25
+#: build/C/man2/epoll_ctl.2:21 build/C/man2/epoll_wait.2:23
#: build/C/man2/poll.2:32
#, no-wrap
msgid "NAME"
msgstr "epoll - I/O イベント通知機能"
#. type: SH
-#: build/C/man7/epoll.7:24 build/C/man2/epoll_create.2:28
-#: build/C/man2/epoll_ctl.2:24 build/C/man2/epoll_wait.2:26
+#: build/C/man7/epoll.7:24 build/C/man2/epoll_create.2:27
+#: build/C/man2/epoll_ctl.2:23 build/C/man2/epoll_wait.2:25
#: build/C/man2/poll.2:34
#, no-wrap
msgid "SYNOPSIS"
msgstr "書式"
#. type: Plain text
-#: build/C/man7/epoll.7:26 build/C/man2/epoll_ctl.2:26
+#: build/C/man7/epoll.7:26 build/C/man2/epoll_ctl.2:25
msgid "B<#include E<lt>sys/epoll.hE<gt>>"
msgstr "B<#include E<lt>sys/epoll.hE<gt>>"
#. type: SH
-#: build/C/man7/epoll.7:26 build/C/man2/epoll_create.2:35
-#: build/C/man2/epoll_ctl.2:29 build/C/man2/epoll_wait.2:36
+#: build/C/man7/epoll.7:26 build/C/man2/epoll_create.2:34
+#: build/C/man2/epoll_ctl.2:28 build/C/man2/epoll_wait.2:35
#: build/C/man2/poll.2:46
#, no-wrap
msgid "DESCRIPTION"
msgstr "説明"
#. type: Plain text
-#: build/C/man7/epoll.7:36
+#: build/C/man7/epoll.7:40
msgid ""
-"B<epoll> is a variant of B<poll>(2) that can be used either as an edge-"
-"triggered or a level-triggered interface and scales well to large numbers of "
-"watched file descriptors. The following system calls are provided to create "
-"and manage an B<epoll> instance:"
+"The B<epoll> API performs a similar task to B<poll>(2): monitoring multiple "
+"file descriptors to see if I/O is possible on any of them. The B<epoll> API "
+"can be used either as an edge-triggered or a level-triggered interface and "
+"scales well to large numbers of watched file descriptors. The following "
+"system calls are provided to create and manage an B<epoll> instance:"
msgstr ""
-"B<epoll> は B<poll>(2) の一種であり、エッジトリガインタフェースと レベルトリ"
-"ガインタフェースのどちらとしても使用することができ、 監視するファイルディスク"
-"リプタの数が多い場合にも使用できる。 B<epoll> インスタンスの作成や管理を行う"
-"ために 以下のシステムコールが提供されている:"
+"B<epoll> API は B<poll>(2) と同様の処理を行う、つまり、複数のファイルディス"
+"ク\n"
+"リプタを監視し、その中のいずれかが入出力可能な状態であるかを確認する。\n"
+"B<epoll> API は、エッジトリガインタフェースとレベルトリガインタフェースの\n"
+"いずれとしても使用することができ、監視するファイルディスクリプタの数が多い\n"
+"場合にも使用できる。 B<epoll> インスタンスの作成や管理を行うために\n"
+"以下のシステムコールが提供されている:"
#. type: IP
-#: build/C/man7/epoll.7:36 build/C/man7/epoll.7:46 build/C/man7/epoll.7:54
+#: build/C/man7/epoll.7:40 build/C/man7/epoll.7:49 build/C/man7/epoll.7:57
#, no-wrap
msgid "*"
msgstr "*"
#. type: Plain text
-#: build/C/man7/epoll.7:46
+#: build/C/man7/epoll.7:49
msgid ""
-"An B<epoll> instance created by B<epoll_create>(2), which returns a file "
-"descriptor referring to the epoll instance. (The more recent "
-"B<epoll_create1>(2) extends the functionality of B<epoll_create>(2).)"
+"B<epoll_create>(2) creates an B<epoll> instance and returns a file "
+"descriptor referring to that instance. (The more recent B<epoll_create1>"
+"(2) extends the functionality of B<epoll_create>(2).)"
msgstr ""
-"B<epoll> インスタンスは B<epoll_create>(2) で作成される。 B<epoll_create>"
-"(2) は作成した epoll インスタンスを参照するファイルディスクリプタを返す。 "
-"(もっと新しい B<epoll_create1>(2) では、 B<epoll_create>(2) の機能が拡張さ"
-"れている)。"
+"B<epoll_create>(2) は B<epoll> インスタンスを作成し、そのインスタンスを参照す"
+"る\n"
+"ファイルディスクリプタを返す。(もっと新しい B<epoll_create1>(2) では、\n"
+"B<epoll_create>(2) の機能が拡張されている)。"
#. type: Plain text
-#: build/C/man7/epoll.7:54
+#: build/C/man7/epoll.7:57
msgid ""
"Interest in particular file descriptors is then registered via B<epoll_ctl>"
"(2). The set of file descriptors currently registered on an B<epoll> "
"I<epoll> 集合と呼ばれることもある。"
#. type: Plain text
-#: build/C/man7/epoll.7:57
-msgid "Finally, the actual wait is started by B<epoll_wait>(2)."
-msgstr "最後に B<epoll_wait>(2) で実際のイベント待ちを開始する。"
+#: build/C/man7/epoll.7:61
+msgid ""
+"B<epoll_wait>(2) waits for I/O events, blocking the calling thread if no "
+"events are currently available."
+msgstr ""
+"B<epoll_wait>(2) は I/O イベントを待つ。\n"
+"現在利用可能な状態のイベントがなければ、呼び出したスレッドを停止する。"
#. type: SS
-#: build/C/man7/epoll.7:57
+#: build/C/man7/epoll.7:61
#, no-wrap
-msgid "Level-Triggered and Edge-Triggered"
+msgid "Level-triggered and edge-triggered"
msgstr "レベルトリガとエッジトリガ"
#. type: Plain text
-#: build/C/man7/epoll.7:66
+#: build/C/man7/epoll.7:70
msgid ""
"The B<epoll> event distribution interface is able to behave both as edge-"
"triggered (ET) and as level-triggered (LT). The difference between the two "
"は、次のように説明できる。 このようなシナリオが起こったとしよう:"
#. type: IP
-#: build/C/man7/epoll.7:66
+#: build/C/man7/epoll.7:70
#, no-wrap
msgid "1."
msgstr "1."
#. type: Plain text
-#: build/C/man7/epoll.7:72
+#: build/C/man7/epoll.7:76
msgid ""
"The file descriptor that represents the read side of a pipe (I<rfd>) is "
"registered on the B<epoll> instance."
"ンスに登録される。"
#. type: IP
-#: build/C/man7/epoll.7:72
+#: build/C/man7/epoll.7:76
#, no-wrap
msgid "2."
msgstr "2."
#. type: Plain text
-#: build/C/man7/epoll.7:74
+#: build/C/man7/epoll.7:78
msgid "A pipe writer writes 2 kB of data on the write side of the pipe."
msgstr ""
"パイプへ書き込むプログラムが 2 kB のデータをパイプの書き込み側へ書き込む。"
#. type: IP
-#: build/C/man7/epoll.7:74
+#: build/C/man7/epoll.7:78
#, no-wrap
msgid "3."
msgstr "3."
#. type: Plain text
-#: build/C/man7/epoll.7:80
+#: build/C/man7/epoll.7:84
msgid ""
"A call to B<epoll_wait>(2) is done that will return I<rfd> as a ready file "
"descriptor."
"として I<rfd> が返る。"
#. type: IP
-#: build/C/man7/epoll.7:80
+#: build/C/man7/epoll.7:84
#, no-wrap
msgid "4."
msgstr "4."
#. type: Plain text
-#: build/C/man7/epoll.7:83
+#: build/C/man7/epoll.7:87
msgid "The pipe reader reads 1 kB of data from I<rfd>."
msgstr "パイプから読み出すプログラムが、1 kB のデータを I<rfd> から読み出す。"
#. type: IP
-#: build/C/man7/epoll.7:83
+#: build/C/man7/epoll.7:87
#, no-wrap
msgid "5."
msgstr "5."
#. type: Plain text
-#: build/C/man7/epoll.7:87
+#: build/C/man7/epoll.7:91
msgid "A call to B<epoll_wait>(2) is done."
msgstr "B<epoll_wait>(2) の呼び出しが行われる。"
#. type: Plain text
-#: build/C/man7/epoll.7:122
+#: build/C/man7/epoll.7:126
msgid ""
"If the I<rfd> file descriptor has been added to the B<epoll> interface using "
"the B<EPOLLET> (edge-triggered) flag, the call to B<epoll_wait>(2) done in "
"step B<5> will probably hang despite the available data still present in the "
"file input buffer; meanwhile the remote peer might be expecting a response "
"based on the data it already sent. The reason for this is that edge-"
-"triggered mode only delivers events when changes occur on the monitored file "
+"triggered mode delivers events only when changes occur on the monitored file "
"descriptor. So, in step B<5> the caller might end up waiting for some data "
"that is already present inside the input buffer. In the above example, an "
"event on I<rfd> will be generated because of the write done in B<2> and the "
"B<epoll_wait>(2) の呼び出しが 無期限に停止 (block) するかもしれない。"
#. type: Plain text
-#: build/C/man7/epoll.7:132
+#: build/C/man7/epoll.7:136
msgid ""
"An application that employs the B<EPOLLET> flag should use nonblocking file "
"descriptors to avoid having a blocking read or write starve a task that is "
"る。"
#. type: TP
-#: build/C/man7/epoll.7:133
+#: build/C/man7/epoll.7:137
#, no-wrap
msgid "B<i>"
msgstr "B<i>"
#. type: Plain text
-#: build/C/man7/epoll.7:136
+#: build/C/man7/epoll.7:140
msgid "with nonblocking file descriptors; and"
msgstr "ブロックしないファイルディスクリプタと共に使う。"
#. type: TP
-#: build/C/man7/epoll.7:136
+#: build/C/man7/epoll.7:140
#, no-wrap
msgid "B<ii>"
msgstr "B<ii>"
#. type: Plain text
-#: build/C/man7/epoll.7:144
+#: build/C/man7/epoll.7:148
msgid ""
"by waiting for an event only after B<read>(2) or B<write>(2) return "
"B<EAGAIN>."
"つ。"
#. type: Plain text
-#: build/C/man7/epoll.7:155
+#: build/C/man7/epoll.7:159
msgid ""
"By contrast, when used as a level-triggered interface (the default, when "
"B<EPOLLET> is not specified), B<epoll> is simply a faster B<poll>(2), and "
"B<poll>(2) が使われているところではどこでも使用することができる。"
#. type: Plain text
-#: build/C/man7/epoll.7:172
+#: build/C/man7/epoll.7:176
msgid ""
"Since even with edge-triggered B<epoll>, multiple events can be generated "
"upon receipt of multiple chunks of data, the caller has the option to "
"は、 呼び出し側の責任である。"
#. type: SS
-#: build/C/man7/epoll.7:172
+#: build/C/man7/epoll.7:176
#, no-wrap
msgid "/proc interfaces"
msgstr "/proc インタフェース"
#. This specifies an upper limit on the number of epoll instances
#. that can be created per real user ID.
#. type: Plain text
-#: build/C/man7/epoll.7:180
+#: build/C/man7/epoll.7:184
msgid ""
"The following interfaces can be used to limit the amount of kernel memory "
"consumed by epoll:"
"用することができる。"
#. type: TP
-#: build/C/man7/epoll.7:180
+#: build/C/man7/epoll.7:184
#, no-wrap
msgid "I</proc/sys/fs/epoll/max_user_watches> (since Linux 2.6.28)"
msgstr "I</proc/sys/fs/epoll/max_user_watches> (Linux 2.6.28 以降)"
#. 2.6.29 (in 2.6.28, the default was 1/32 of lowmem)
#. type: Plain text
-#: build/C/man7/epoll.7:194
+#: build/C/man7/epoll.7:198
msgid ""
"This specifies a limit on the total number of file descriptors that a user "
"can register across all epoll instances on the system. The limit is per "
"1/25 (4%) であり、 登録で消費されるメモリ量 (バイト単位) で割った値となる。"
#. type: SS
-#: build/C/man7/epoll.7:194
+#: build/C/man7/epoll.7:198
#, no-wrap
-msgid "Example for Suggested Usage"
+msgid "Example for suggested usage"
msgstr "おすすめな使用例"
#. type: Plain text
-#: build/C/man7/epoll.7:223
+#: build/C/man7/epoll.7:227
msgid ""
"While the usage of B<epoll> when employed as a level-triggered interface "
"does have the same semantics as B<poll>(2), the edge-triggered usage "
"することができる。"
#. type: Plain text
-#: build/C/man7/epoll.7:229
+#: build/C/man7/epoll.7:233
#, no-wrap
msgid ""
"#define MAX_EVENTS 10\n"
"int listen_sock, conn_sock, nfds, epollfd;\n"
#. type: Plain text
-#: build/C/man7/epoll.7:232
+#: build/C/man7/epoll.7:236
#, no-wrap
msgid ""
"/* Set up listening socket, \\(aqlisten_sock\\(aq (socket(),\n"
" bind(), listen()) */\n"
#. type: Plain text
-#: build/C/man7/epoll.7:238
+#: build/C/man7/epoll.7:242
#, no-wrap
msgid ""
"epollfd = epoll_create(10);\n"
"}\n"
#. type: Plain text
-#: build/C/man7/epoll.7:245
+#: build/C/man7/epoll.7:249
#, no-wrap
msgid ""
"ev.events = EPOLLIN;\n"
"}\n"
#. type: Plain text
-#: build/C/man7/epoll.7:252
+#: build/C/man7/epoll.7:256
#, no-wrap
msgid ""
"for (;;) {\n"
" }\n"
#. type: Plain text
-#: build/C/man7/epoll.7:274
+#: build/C/man7/epoll.7:278
#, no-wrap
msgid ""
" for (n = 0; n E<lt> nfds; ++n) {\n"
"}\n"
#. type: Plain text
-#: build/C/man7/epoll.7:293
+#: build/C/man7/epoll.7:297
msgid ""
"When used as an edge-triggered interface, for performance reasons, it is "
"possible to add the file descriptor inside the B<epoll> interface "
"B<EPOLLOUT> の連続的な切り替えが避けられる。"
#. type: SS
-#: build/C/man7/epoll.7:293
+#: build/C/man7/epoll.7:297
#, no-wrap
-msgid "Questions and Answers"
+msgid "Questions and answers"
msgstr "質問と解答"
#. type: TP
-#: build/C/man7/epoll.7:294
+#: build/C/man7/epoll.7:298
#, no-wrap
msgid "B<Q0>"
msgstr "B<Q0>"
#. type: Plain text
-#: build/C/man7/epoll.7:299
+#: build/C/man7/epoll.7:303
msgid ""
"What is the key used to distinguish the file descriptors registered in an "
"B<epoll> set?"
"して使えばよいか?"
#. type: TP
-#: build/C/man7/epoll.7:299
+#: build/C/man7/epoll.7:303
#, no-wrap
msgid "B<A0>"
msgstr "B<A0>"
#. type: Plain text
-#: build/C/man7/epoll.7:305
+#: build/C/man7/epoll.7:309
msgid ""
"The key is the combination of the file descriptor number and the open file "
"description (also known as an \"open file handle\", the kernel's internal "
"ばれ、オープンされたファイルのカーネルの内部表現である)。"
#. type: TP
-#: build/C/man7/epoll.7:305
+#: build/C/man7/epoll.7:309
#, no-wrap
msgid "B<Q1>"
msgstr "B<Q1>"
#. type: Plain text
-#: build/C/man7/epoll.7:310
+#: build/C/man7/epoll.7:314
msgid ""
"What happens if you register the same file descriptor on an B<epoll> "
"instance twice?"
"なるか?"
#. type: TP
-#: build/C/man7/epoll.7:310
+#: build/C/man7/epoll.7:314
#, no-wrap
msgid "B<A1>"
msgstr "B<A1>"
#. "epoll design problems with common fork/exec patterns"
#. mtk, Feb 2008
#. type: Plain text
-#: build/C/man7/epoll.7:341
+#: build/C/man7/epoll.7:345
msgid ""
"You will probably get B<EEXIST>. However, it is possible to add a duplicate "
"(B<dup>(2), B<dup2>(2), B<fcntl>(2) B<F_DUPFD>) descriptor to the same "
"能は有用な手法である。"
#. type: TP
-#: build/C/man7/epoll.7:341
+#: build/C/man7/epoll.7:345
#, no-wrap
msgid "B<Q2>"
msgstr "B<Q2>"
#. type: Plain text
-#: build/C/man7/epoll.7:349
+#: build/C/man7/epoll.7:353
msgid ""
"Can two B<epoll> instances wait for the same file descriptor? If so, are "
"events reported to both B<epoll> file descriptors?"
"告されるか?"
#. type: TP
-#: build/C/man7/epoll.7:349
+#: build/C/man7/epoll.7:353
#, no-wrap
msgid "B<A2>"
msgstr "B<A2>"
#. type: Plain text
-#: build/C/man7/epoll.7:353
+#: build/C/man7/epoll.7:357
msgid ""
"Yes, and events would be reported to both. However, careful programming may "
"be needed to do this correctly."
"ラミングする必要が あるかもしれない。"
#. type: TP
-#: build/C/man7/epoll.7:353
+#: build/C/man7/epoll.7:357
#, no-wrap
msgid "B<Q3>"
msgstr "B<Q3>"
#. type: Plain text
-#: build/C/man7/epoll.7:358
+#: build/C/man7/epoll.7:362
msgid "Is the B<epoll> file descriptor itself poll/epoll/selectable?"
msgstr "B<epoll> ファイルディスクリプタ自身は poll/epoll/select が可能か?"
#. type: TP
-#: build/C/man7/epoll.7:358
+#: build/C/man7/epoll.7:362
#, no-wrap
msgid "B<A3>"
msgstr "B<A3>"
#. type: Plain text
-#: build/C/man7/epoll.7:365
+#: build/C/man7/epoll.7:369
msgid ""
"Yes. If an B<epoll> file descriptor has events waiting then it will "
"indicate as being readable."
"は、 読み出し可能だと通知されることだろう。"
#. type: TP
-#: build/C/man7/epoll.7:365
+#: build/C/man7/epoll.7:369
#, no-wrap
msgid "B<Q4>"
msgstr "B<Q4>"
#. type: Plain text
-#: build/C/man7/epoll.7:370
+#: build/C/man7/epoll.7:374
msgid ""
"What happens if one attempts to put an B<epoll> file descriptor into its own "
"file descriptor set?"
"とするとどうなるか?"
#. type: TP
-#: build/C/man7/epoll.7:370
+#: build/C/man7/epoll.7:374
#, no-wrap
msgid "B<A4>"
msgstr "B<A4>"
#. type: Plain text
-#: build/C/man7/epoll.7:381
+#: build/C/man7/epoll.7:385
msgid ""
"The B<epoll_ctl>(2) call will fail (B<EINVAL>). However, you can add an "
"B<epoll> file descriptor inside another B<epoll> file descriptor set."
"部に追加することは可能である。"
#. type: TP
-#: build/C/man7/epoll.7:381
+#: build/C/man7/epoll.7:385
#, no-wrap
msgid "B<Q5>"
msgstr "B<Q5>"
#. type: Plain text
-#: build/C/man7/epoll.7:386
+#: build/C/man7/epoll.7:390
msgid ""
"Can I send an B<epoll> file descriptor over a UNIX domain socket to another "
"process?"
"とは可能か?"
#. type: TP
-#: build/C/man7/epoll.7:386
+#: build/C/man7/epoll.7:390
#, no-wrap
msgid "B<A5>"
msgstr "B<A5>"
#. type: Plain text
-#: build/C/man7/epoll.7:392
+#: build/C/man7/epoll.7:396
msgid ""
"Yes, but it does not make sense to do this, since the receiving process "
"would not have copies of the file descriptors in the B<epoll> set."
"集合内のファイルディスクリプタのコピーを持っていないからである。"
#. type: TP
-#: build/C/man7/epoll.7:392
+#: build/C/man7/epoll.7:396
#, no-wrap
msgid "B<Q6>"
msgstr "B<Q6>"
#. type: Plain text
-#: build/C/man7/epoll.7:397
+#: build/C/man7/epoll.7:401
msgid ""
"Will closing a file descriptor cause it to be removed from all B<epoll> sets "
"automatically?"
"B<epoll> 集合から自動的に削除されるか?"
#. type: TP
-#: build/C/man7/epoll.7:397
+#: build/C/man7/epoll.7:401
#, no-wrap
msgid "B<A6>"
msgstr "B<A6>"
#. type: Plain text
-#: build/C/man7/epoll.7:425
+#: build/C/man7/epoll.7:429
msgid ""
"Yes, but be aware of the following point. A file descriptor is a reference "
"to an open file description (see B<open>(2)). Whenever a descriptor is "
"と いうことを意味する。"
#. type: TP
-#: build/C/man7/epoll.7:425
+#: build/C/man7/epoll.7:429
#, no-wrap
msgid "B<Q7>"
msgstr "B<Q7>"
#. type: Plain text
-#: build/C/man7/epoll.7:430
+#: build/C/man7/epoll.7:434
msgid ""
"If more than one event occurs between B<epoll_wait>(2) calls, are they "
"combined or reported separately?"
"めて報告されるか、 それとも別々に報告されるか?"
#. type: TP
-#: build/C/man7/epoll.7:430
+#: build/C/man7/epoll.7:434
#, no-wrap
msgid "B<A7>"
msgstr "B<A7>"
#. type: Plain text
-#: build/C/man7/epoll.7:433
+#: build/C/man7/epoll.7:437
msgid "They will be combined."
msgstr "まとめて報告されるだろう。"
#. type: TP
-#: build/C/man7/epoll.7:433
+#: build/C/man7/epoll.7:437
#, no-wrap
msgid "B<Q8>"
msgstr "B<Q8>"
#. type: Plain text
-#: build/C/man7/epoll.7:437
+#: build/C/man7/epoll.7:441
msgid ""
"Does an operation on a file descriptor affect the already collected but not "
"yet reported events?"
"いイベントに影響するか?"
#. type: TP
-#: build/C/man7/epoll.7:437
+#: build/C/man7/epoll.7:441
#, no-wrap
msgid "B<A8>"
msgstr "B<A8>"
#. type: Plain text
-#: build/C/man7/epoll.7:443
+#: build/C/man7/epoll.7:447
msgid ""
"You can do two operations on an existing file descriptor. Remove would be "
"meaningless for this case. Modify will reread available I/O."
"合、削除には意味がない。 変更すると、使用可能な I/O が再び読み込まれる。"
#. type: TP
-#: build/C/man7/epoll.7:443
+#: build/C/man7/epoll.7:447
#, no-wrap
msgid "B<Q9>"
msgstr "B<Q9>"
#. type: Plain text
-#: build/C/man7/epoll.7:451
+#: build/C/man7/epoll.7:455
msgid ""
"Do I need to continuously read/write a file descriptor until B<EAGAIN> when "
"using the B<EPOLLET> flag (edge-triggered behavior) ?"
"まで、 継続してファイルディスクリプタを読み書きする必要があるか?"
#. type: TP
-#: build/C/man7/epoll.7:451
+#: build/C/man7/epoll.7:455
#, no-wrap
msgid "B<A9>"
msgstr "B<A9>"
#. type: Plain text
-#: build/C/man7/epoll.7:461
+#: build/C/man7/epoll.7:465
msgid ""
"Receiving an event from B<epoll_wait>(2) should suggest to you that such "
"file descriptor is ready for the requested I/O operation. You must consider "
"リプタをいつどのように使うかは、 全くユーザに任されてる。"
#. type: Plain text
-#: build/C/man7/epoll.7:467
+#: build/C/man7/epoll.7:471
msgid ""
"For packet/token-oriented files (e.g., datagram socket, terminal in "
"canonical mode), the only way to detect the end of the read/write I/O space "
"する唯一の方法は B<EAGAIN> になるまで read/write を行うことである。"
#. type: Plain text
-#: build/C/man7/epoll.7:483
+#: build/C/man7/epoll.7:487
msgid ""
"For stream-oriented files (e.g., pipe, FIFO, stream socket), the condition "
"that the read/write I/O space is exhausted can also be detected by checking "
"ない場合には、後者の手法の使用を避けること)。"
#. type: SS
-#: build/C/man7/epoll.7:483
+#: build/C/man7/epoll.7:487
#, no-wrap
-msgid "Possible Pitfalls and Ways to Avoid Them"
+msgid "Possible pitfalls and ways to avoid them"
msgstr "ありがちな落とし穴と回避方法"
#. type: TP
-#: build/C/man7/epoll.7:484
+#: build/C/man7/epoll.7:488
#, no-wrap
msgid "B<o Starvation (edge-triggered)>"
msgstr "B<o 飢餓 (starvation) (エッジトリガ)>"
#. type: Plain text
-#: build/C/man7/epoll.7:492
+#: build/C/man7/epoll.7:496
msgid ""
"If there is a large amount of I/O space, it is possible that by trying to "
"drain it the other files will not get processed causing starvation. (This "
"B<epoll> に固有のものではない)。"
#. type: Plain text
-#: build/C/man7/epoll.7:500
+#: build/C/man7/epoll.7:504
msgid ""
"The solution is to maintain a ready list and mark the file descriptor as "
"ready in its associated data structure, thereby allowing the application to "
"もできる。"
#. type: TP
-#: build/C/man7/epoll.7:500
+#: build/C/man7/epoll.7:504
#, no-wrap
msgid "B<o If using an event cache...>"
msgstr "B<o イベントキャッシュを使っている場合>"
#. type: Plain text
-#: build/C/man7/epoll.7:516
+#: build/C/man7/epoll.7:520
msgid ""
"If you use an event cache or store all the file descriptors returned from "
"B<epoll_wait>(2), then make sure to provide a way to mark its closure "
"ルディスクリプタを待つイベントが 存在するといって、混乱が起きる。"
#. type: Plain text
-#: build/C/man7/epoll.7:527
+#: build/C/man7/epoll.7:531
msgid ""
"One solution for this is to call, during the processing of event 47, "
"B<epoll_ctl>(B<EPOLL_CTL_DEL>) to delete file descriptor 13 and B<close>"
"クリプタが以前に削除されたものであると分かるので、 混乱は起きない。"
#. type: SH
-#: build/C/man7/epoll.7:527 build/C/man2/epoll_create.2:114
-#: build/C/man2/epoll_ctl.2:224 build/C/man2/epoll_wait.2:174
-#: build/C/man2/poll.2:286
+#: build/C/man7/epoll.7:531 build/C/man2/epoll_create.2:108
+#: build/C/man2/epoll_ctl.2:225 build/C/man2/epoll_wait.2:177
+#: build/C/man2/poll.2:312
#, no-wrap
msgid "VERSIONS"
msgstr "バージョン"
#. Its interface should be finalized in Linux kernel 2.5.66.
#. type: Plain text
-#: build/C/man7/epoll.7:533
+#: build/C/man7/epoll.7:537
msgid ""
"The B<epoll> API was introduced in Linux kernel 2.5.44. Support was added "
"to glibc in version 2.3.2."
"ジョン 2.3.2 で追加された。"
#. type: SH
-#: build/C/man7/epoll.7:533 build/C/man2/epoll_create.2:124
-#: build/C/man2/epoll_ctl.2:229 build/C/man2/epoll_wait.2:184
-#: build/C/man2/poll.2:306
+#: build/C/man7/epoll.7:537 build/C/man2/epoll_create.2:118
+#: build/C/man2/epoll_ctl.2:230 build/C/man2/epoll_wait.2:187
+#: build/C/man2/poll.2:329
#, no-wrap
msgid "CONFORMING TO"
msgstr "準拠"
#. type: Plain text
-#: build/C/man7/epoll.7:542
+#: build/C/man7/epoll.7:546
msgid ""
"The B<epoll> API is Linux-specific. Some other systems provide similar "
"mechanisms, for example, FreeBSD has I<kqueue>, and Solaris has I</dev/poll>."
"る。"
#. type: SH
-#: build/C/man7/epoll.7:542 build/C/man2/epoll_create.2:133
-#: build/C/man2/epoll_ctl.2:252 build/C/man2/epoll_wait.2:187
-#: build/C/man2/poll.2:338
+#: build/C/man7/epoll.7:546 build/C/man2/epoll_create.2:144
+#: build/C/man2/epoll_ctl.2:253 build/C/man2/epoll_wait.2:219
+#: build/C/man2/poll.2:366
#, no-wrap
msgid "SEE ALSO"
msgstr "関連項目"
#. type: Plain text
-#: build/C/man7/epoll.7:547
+#: build/C/man7/epoll.7:551
msgid ""
"B<epoll_create>(2), B<epoll_create1>(2), B<epoll_ctl>(2), B<epoll_wait>(2)"
msgstr ""
"B<epoll_create>(2), B<epoll_create1>(2), B<epoll_ctl>(2), B<epoll_wait>(2)"
#. type: SH
-#: build/C/man7/epoll.7:547 build/C/man2/epoll_create.2:138
-#: build/C/man2/epoll_ctl.2:257 build/C/man2/epoll_wait.2:191
-#: build/C/man2/poll.2:342
+#: build/C/man7/epoll.7:551 build/C/man2/epoll_create.2:149
+#: build/C/man2/epoll_ctl.2:258 build/C/man2/epoll_wait.2:223
+#: build/C/man2/poll.2:371
#, no-wrap
msgid "COLOPHON"
msgstr "この文書について"
#. type: Plain text
-#: build/C/man7/epoll.7:554 build/C/man2/epoll_create.2:145
-#: build/C/man2/epoll_ctl.2:264 build/C/man2/epoll_wait.2:198
-#: build/C/man2/poll.2:349
+#: build/C/man7/epoll.7:558 build/C/man2/epoll_create.2:156
+#: build/C/man2/epoll_ctl.2:265 build/C/man2/epoll_wait.2:230
+#: build/C/man2/poll.2:378
+#, fuzzy
+#| msgid ""
+#| "This page is part of release 3.53 of the Linux I<man-pages> project. A "
+#| "description of the project, and information about reporting bugs, can be "
+#| "found at \\%http://www.kernel.org/doc/man-pages/."
msgid ""
-"This page is part of release 3.38 of the Linux I<man-pages> project. A "
+"This page is part of release 3.54 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.38 の一部である。\n"
-"プロジェクトの説明とバグ報告に関する情報は\n"
+"この man ページは Linux I<man-pages> プロジェクトのリリース 3.53 の一部\n"
+"ã\81§ã\81\82ã\82\8bã\80\82ã\83\97ã\83ã\82¸ã\82§ã\82¯ã\83\88ã\81®èª¬æ\98\8eã\81¨ã\83\90ã\82°å ±å\91\8aã\81«é\96¢ã\81\99ã\82\8bæ\83\85å ±ã\81¯\n"
"http://www.kernel.org/doc/man-pages/ に書かれている。"
#. type: TH
-#: build/C/man2/epoll_create.2:25
+#: build/C/man2/epoll_create.2:24
#, no-wrap
msgid "EPOLL_CREATE"
msgstr "EPOLL_CREATE"
#. type: TH
-#: build/C/man2/epoll_create.2:25 build/C/man2/epoll_ctl.2:21
-#: build/C/man2/epoll_wait.2:23
+#: build/C/man2/epoll_create.2:24 build/C/man2/epoll_ctl.2:20
#, no-wrap
-msgid "2010-12-03"
-msgstr "2010-12-03"
+msgid "2012-04-15"
+msgstr "2012-04-15"
#. type: Plain text
-#: build/C/man2/epoll_create.2:28
+#: build/C/man2/epoll_create.2:27
msgid "epoll_create, epoll_create1 - open an epoll file descriptor"
msgstr ""
"epoll_create, epoll_create1 - epoll ファイルディスクリプタをオープンする"
#. type: Plain text
-#: build/C/man2/epoll_create.2:31 build/C/man2/epoll_wait.2:29
+#: build/C/man2/epoll_create.2:30 build/C/man2/epoll_wait.2:28
#, no-wrap
msgid "B<#include E<lt>sys/epoll.hE<gt>>\n"
msgstr "B<#include E<lt>sys/epoll.hE<gt>>\n"
#. type: Plain text
-#: build/C/man2/epoll_create.2:34
+#: build/C/man2/epoll_create.2:33
#, no-wrap
msgid ""
"B<int epoll_create(int >I<size>B<);>\n"
"B<int epoll_create1(int >I<flags>B<);>\n"
#. type: Plain text
-#: build/C/man2/epoll_create.2:48
+#: build/C/man2/epoll_create.2:42
msgid ""
-"B<epoll_create>() creates an epoll \"instance\", requesting the kernel to "
-"allocate an event backing store dimensioned for I<size> descriptors. The "
-"I<size> is not the maximum size of the backing store but just a hint to the "
-"kernel about how to dimension internal structures. (Nowadays, I<size> is "
-"unused; see NOTES below.)"
+"B<epoll_create>() creates an B<epoll>(7) instance. Since Linux 2.6.8, the "
+"I<size> argument is ignored, but must be greater than zero; see NOTES below."
msgstr ""
-"B<epoll_create>() は、 I<size> 個のディスクリプタを保持できる大きさの\n"
-"イベントバッキングストアの割り当てをカーネルに対して要求することにより、\n"
-"epoll 「インスタンス」を作成する。 I<size> はバッキングストアの最大サイ\n"
-"ズではなく、内部構造の大きさをどの位にするかをカーネルに知らせるヒント\n"
-"でしかない。 (現在は I<size> は使用されない。下記の「注意」を参照。)"
+"B<epoll_create>()は B<epoll>(7) インスタンスを作成する。\n"
+"Linux 2.6.8 以降では、I<size> 引き数は無視されるが、 0 より大きな値で\n"
+"なければならない。下記の「注意」を参照。"
#. type: Plain text
-#: build/C/man2/epoll_create.2:61
+#: build/C/man2/epoll_create.2:55
msgid ""
"B<epoll_create>() returns a file descriptor referring to the new epoll "
"instance. This file descriptor is used for all the subsequent calls to the "
"と、 カーネルはそのインスタンスを破壊して、対応するリソースを解放し、 再使用"
"できるようにする。"
+#. type: SS
+#: build/C/man2/epoll_create.2:55
+#, no-wrap
+msgid "epoll_create1()"
+msgstr "epoll_create1()"
+
#. type: Plain text
-#: build/C/man2/epoll_create.2:73
+#: build/C/man2/epoll_create.2:67
msgid ""
"If I<flags> is 0, then, other than the fact that the obsolete I<size> "
"argument is dropped, B<epoll_create1>() is the same as B<epoll_create>(). "
"せることができる。"
#. type: TP
-#: build/C/man2/epoll_create.2:73
+#: build/C/man2/epoll_create.2:67
#, no-wrap
msgid "B<EPOLL_CLOEXEC>"
msgstr "B<EPOLL_CLOEXEC>"
#. type: Plain text
-#: build/C/man2/epoll_create.2:83
+#: build/C/man2/epoll_create.2:77
msgid ""
"Set the close-on-exec (B<FD_CLOEXEC>) flag on the new file descriptor. See "
"the description of the B<O_CLOEXEC> flag in B<open>(2) for reasons why this "
"B<O_CLOEXEC> フラグの説明を参照のこと。"
#. type: SH
-#: build/C/man2/epoll_create.2:83 build/C/man2/epoll_ctl.2:156
-#: build/C/man2/epoll_wait.2:137 build/C/man2/poll.2:257
+#: build/C/man2/epoll_create.2:77 build/C/man2/epoll_ctl.2:157
+#: build/C/man2/epoll_wait.2:140 build/C/man2/poll.2:283
#, no-wrap
msgid "RETURN VALUE"
msgstr "返り値"
#. type: Plain text
-#: build/C/man2/epoll_create.2:90
+#: build/C/man2/epoll_create.2:84
msgid ""
"On success, these system calls return a nonnegative file descriptor. On "
"error, -1 is returned, and I<errno> is set to indicate the error."
"ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
#. type: SH
-#: build/C/man2/epoll_create.2:90 build/C/man2/epoll_ctl.2:165
-#: build/C/man2/epoll_wait.2:149 build/C/man2/poll.2:267
+#: build/C/man2/epoll_create.2:84 build/C/man2/epoll_ctl.2:166
+#: build/C/man2/epoll_wait.2:152 build/C/man2/poll.2:293
#, no-wrap
msgid "ERRORS"
msgstr "エラー"
#. type: TP
-#: build/C/man2/epoll_create.2:91 build/C/man2/epoll_create.2:95
-#: build/C/man2/epoll_ctl.2:180 build/C/man2/epoll_wait.2:166
-#: build/C/man2/poll.2:276
+#: build/C/man2/epoll_create.2:85 build/C/man2/epoll_create.2:89
+#: build/C/man2/epoll_ctl.2:181 build/C/man2/epoll_wait.2:169
+#: build/C/man2/poll.2:302
#, no-wrap
msgid "B<EINVAL>"
msgstr "B<EINVAL>"
#. type: Plain text
-#: build/C/man2/epoll_create.2:95
+#: build/C/man2/epoll_create.2:89
msgid "I<size> is not positive."
msgstr "I<size> が正でない。"
#. type: Plain text
-#: build/C/man2/epoll_create.2:100
+#: build/C/man2/epoll_create.2:94
msgid "(B<epoll_create1>()) Invalid value specified in I<flags>."
msgstr "(B<epoll_create1>()) I<flags> に無効な値が指定された。"
#. type: TP
-#: build/C/man2/epoll_create.2:100
+#: build/C/man2/epoll_create.2:94
#, no-wrap
msgid "B<EMFILE>"
msgstr "B<EMFILE>"
#. type: Plain text
-#: build/C/man2/epoll_create.2:108
+#: build/C/man2/epoll_create.2:102
msgid ""
"The per-user limit on the number of epoll instances imposed by I</proc/sys/"
"fs/epoll/max_user_instances> was encountered. See B<epoll>(7) for further "
"のこと。"
#. type: TP
-#: build/C/man2/epoll_create.2:108
+#: build/C/man2/epoll_create.2:102
#, no-wrap
msgid "B<ENFILE>"
msgstr "B<ENFILE>"
#. type: Plain text
-#: build/C/man2/epoll_create.2:111
+#: build/C/man2/epoll_create.2:105
msgid "The system limit on the total number of open files has been reached."
msgstr "オープンされたファイルの総数がシステム制限に達した。"
#. type: TP
-#: build/C/man2/epoll_create.2:111 build/C/man2/epoll_ctl.2:203
-#: build/C/man2/poll.2:283
+#: build/C/man2/epoll_create.2:105 build/C/man2/epoll_ctl.2:204
+#: build/C/man2/poll.2:309
#, no-wrap
msgid "B<ENOMEM>"
msgstr "B<ENOMEM>"
#. type: Plain text
-#: build/C/man2/epoll_create.2:114
+#: build/C/man2/epoll_create.2:108
msgid "There was insufficient memory to create the kernel object."
msgstr "カーネルオブジェクトを作成するのに十分なメモリがなかった。"
#. type: Plain text
-#: build/C/man2/epoll_create.2:118
+#: build/C/man2/epoll_create.2:112
msgid ""
"B<epoll_create>() was added to the kernel in version 2.6. Library support "
"is provided in glibc starting with version 2.3.2."
#. To be precise: kernel 2.5.44.
#. The interface should be finalized by Linux kernel 2.5.66.
#. type: Plain text
-#: build/C/man2/epoll_create.2:124
+#: build/C/man2/epoll_create.2:118
msgid ""
"B<epoll_create1>() was added to the kernel in version 2.6.27. Library "
"support is provided in glibc starting with version 2.9."
"ライブラリによるサポートは glibc バージョン 2.9 以降で提供されている。"
#. type: Plain text
-#: build/C/man2/epoll_create.2:127
+#: build/C/man2/epoll_create.2:121
msgid "B<epoll_create>() is Linux-specific."
msgstr "B<epoll_create>() は Linux 独自である。"
#. type: SH
-#: build/C/man2/epoll_create.2:127 build/C/man2/epoll_ctl.2:233
-#: build/C/man2/poll.2:312
+#: build/C/man2/epoll_create.2:121 build/C/man2/epoll_ctl.2:234
+#: build/C/man2/epoll_wait.2:190 build/C/man2/poll.2:335
#, no-wrap
msgid "NOTES"
msgstr "注意"
#. type: Plain text
-#: build/C/man2/epoll_create.2:133
-msgid ""
-"Since Linux 2.6.8, the I<size> argument is unused, but must be greater than "
-"zero. (The kernel dynamically sizes the required data structures without "
-"needing this initial hint.)"
-msgstr ""
-"Linux 2.6.8 以降では、 I<size> 引き数は使用されないが、 0 より大きくなければならない。\n"
-"(カーネルは、動的に必要なデータ構造の大きさを決定し、 最初のヒントを必要しない。)"
-
-#. type: Plain text
-#: build/C/man2/epoll_create.2:138
+#: build/C/man2/epoll_create.2:144
+msgid ""
+"In the initial B<epoll_create>() implementation, the I<size> argument "
+"informed the kernel of the number of file descriptors that the caller "
+"expected to add to the B<epoll> instance. The kernel used this information "
+"as a hint for the amount of space to initially allocate in internal data "
+"structures describing events. (If necessary, the kernel would allocate more "
+"space if the caller's usage exceeded the hint given in I<size>.) Nowadays, "
+"this hint is no longer required (the kernel dynamically sizes the required "
+"data structures without needing the hint), but I<size> must still be greater "
+"than zero, in order to ensure backward compatibility when new B<epoll> "
+"applications are run on older kernels."
+msgstr ""
+"初期の B<epoll_create>() の実装では、I<size> 引き数は、呼び出し元が "
+"B<epoll>\n"
+"インスタンスに追加しようとするファイルディスクリプタ数をカーネルに教えるの"
+"に\n"
+"使われていた。カーネルはこの情報をイベントの情報を格納する内部データ構造に"
+"最\n"
+"初に割り当てる大きさを決める際のヒントとして使用していた (I<size> で渡され"
+"た\n"
+"ヒントよりも使用量が大きくなった場合には、必要に応じてカーネルは追加で領域"
+"を\n"
+"割り当てる)。\n"
+"\n"
+"現在では、このヒントはもはや必要なくなっている (カーネルはヒントなしで必要"
+"な\n"
+"データ構造のサイズを動的に変更する) が、今も I<size> には 0 より大きい値を\n"
+"指定しなければならない。これは、B<epoll> を使うアプリケーションが古いカーネ"
+"ル\n"
+"で実行される際の後方互換性を保証するためである。"
+
+#. type: Plain text
+#: build/C/man2/epoll_create.2:149
msgid "B<close>(2), B<epoll_ctl>(2), B<epoll_wait>(2), B<epoll>(7)"
msgstr "B<close>(2), B<epoll_ctl>(2), B<epoll_wait>(2), B<epoll>(7)"
#. type: TH
-#: build/C/man2/epoll_ctl.2:21
+#: build/C/man2/epoll_ctl.2:20
#, no-wrap
msgid "EPOLL_CTL"
msgstr "EPOLL_CTL"
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:24
+#: build/C/man2/epoll_ctl.2:23
msgid "epoll_ctl - control interface for an epoll descriptor"
msgstr "epoll_ctl - epoll ディスクリプタのインタフェースを操作する"
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:29
+#: build/C/man2/epoll_ctl.2:28
msgid ""
"B<int epoll_ctl(int >I<epfd>B<, int >I<op>B<, int >I<fd>B<, struct "
"epoll_event *>I<event>B<);>"
"epoll_event *>I<event>B<);>"
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:37
+#: build/C/man2/epoll_ctl.2:38
msgid ""
-"This system call performs control operations on the epoll instance referred "
-"to by the file descriptor I<epfd>. It requests that the operation I<op> be "
-"performed for the target file descriptor, I<fd>."
+"This system call performs control operations on the B<epoll>(7) instance "
+"referred to by the file descriptor I<epfd>. It requests that the operation "
+"I<op> be performed for the target file descriptor, I<fd>."
msgstr ""
-"このシステムコールは、ファイルディスクリプタ I<epfd> が参照する epoll インス"
-"タンスに対する操作を行う。 対象のファイルディスクリプタ I<fd> に対して、操作 "
-"I<op> の実行が要求される。"
+"このシステムコールは、ファイルディスクリプタ I<epfd> が参照する B<epoll>(7)\n"
+"インスタンスに対する操作を行う。 対象のファイルディスクリプタ I<fd> に対し"
+"て、\n"
+"操作 I<op> の実行が要求される。"
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:41
+#: build/C/man2/epoll_ctl.2:42
msgid "Valid values for the I<op> argument are :"
msgstr "I<op> 引き数に指定できる有効な値は以下の通りである。"
#. type: TP
-#: build/C/man2/epoll_ctl.2:41
+#: build/C/man2/epoll_ctl.2:42
#, no-wrap
msgid "B<EPOLL_CTL_ADD>"
msgstr "B<EPOLL_CTL_ADD>"
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:53
+#: build/C/man2/epoll_ctl.2:54
msgid ""
"Register the target file descriptor I<fd> on the B<epoll> instance referred "
"to by the file descriptor I<epfd> and associate the event I<event> with the "
"内部ファイルに関連付ける。"
#. type: TP
-#: build/C/man2/epoll_ctl.2:53
+#: build/C/man2/epoll_ctl.2:54
#, no-wrap
msgid "B<EPOLL_CTL_MOD>"
msgstr "B<EPOLL_CTL_MOD>"
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:59
+#: build/C/man2/epoll_ctl.2:60
msgid ""
"Change the event I<event> associated with the target file descriptor I<fd>."
msgstr ""
"する。"
#. type: TP
-#: build/C/man2/epoll_ctl.2:59
+#: build/C/man2/epoll_ctl.2:60
#, no-wrap
msgid "B<EPOLL_CTL_DEL>"
msgstr "B<EPOLL_CTL_DEL>"
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:70
+#: build/C/man2/epoll_ctl.2:71
msgid ""
"Remove (deregister) the target file descriptor I<fd> from the B<epoll> "
"instance referred to by I<epfd>. The I<event> is ignored and can be NULL "
"し、下記の「バグ」を参照)。"
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:78
+#: build/C/man2/epoll_ctl.2:79
msgid ""
"The I<event> argument describes the object linked to the file descriptor "
"I<fd>. The I<struct epoll_event> is defined as :"
"表す。 I<struct epoll_event> は以下のように定義される:"
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:87
+#: build/C/man2/epoll_ctl.2:88
#, no-wrap
msgid ""
"typedef union epoll_data {\n"
"} epoll_data_t;\n"
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:92
+#: build/C/man2/epoll_ctl.2:93
#, no-wrap
msgid ""
"struct epoll_event {\n"
"};\n"
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:99
+#: build/C/man2/epoll_ctl.2:100
msgid ""
"The I<events> member is a bit set composed using the following available "
"event types:"
"ビットセットである。"
#. type: TP
-#: build/C/man2/epoll_ctl.2:99
+#: build/C/man2/epoll_ctl.2:100
#, no-wrap
msgid "B<EPOLLIN>"
msgstr "B<EPOLLIN>"
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:104
+#: build/C/man2/epoll_ctl.2:105
msgid "The associated file is available for B<read>(2) operations."
msgstr "関連付けられたファイルに対して、 B<read>(2) 操作が可能である。"
#. type: TP
-#: build/C/man2/epoll_ctl.2:104
+#: build/C/man2/epoll_ctl.2:105
#, no-wrap
msgid "B<EPOLLOUT>"
msgstr "B<EPOLLOUT>"
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:109
+#: build/C/man2/epoll_ctl.2:110
msgid "The associated file is available for B<write>(2) operations."
msgstr "関連付けられたファイルに対して、 B<write>(2) 操作が可能である。"
#. type: TP
-#: build/C/man2/epoll_ctl.2:109
+#: build/C/man2/epoll_ctl.2:110
#, no-wrap
msgid "B<EPOLLRDHUP> (since Linux 2.6.17)"
msgstr "B<EPOLLRDHUP\">(LinuxB<2.6.17>以降)\""
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:115
+#: build/C/man2/epoll_ctl.2:116
msgid ""
"Stream socket peer closed connection, or shut down writing half of "
"connection. (This flag is especially useful for writing simple code to "
"ができる。)"
#. type: TP
-#: build/C/man2/epoll_ctl.2:115
+#: build/C/man2/epoll_ctl.2:116
#, no-wrap
msgid "B<EPOLLPRI>"
msgstr "B<EPOLLPRI>"
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:120
+#: build/C/man2/epoll_ctl.2:121
msgid "There is urgent data available for B<read>(2) operations."
msgstr "B<read>(2) 操作が可能な緊急 (urgent) データがある。"
#. type: TP
-#: build/C/man2/epoll_ctl.2:120
+#: build/C/man2/epoll_ctl.2:121
#, no-wrap
msgid "B<EPOLLERR>"
msgstr "B<EPOLLERR>"
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:126
+#: build/C/man2/epoll_ctl.2:127
msgid ""
"Error condition happened on the associated file descriptor. B<epoll_wait>"
"(2) will always wait for this event; it is not necessary to set it in "
"(2) は常にこのイベントを待つので、 I<events> に設定する必要はない。"
#. type: TP
-#: build/C/man2/epoll_ctl.2:126
+#: build/C/man2/epoll_ctl.2:127
#, no-wrap
msgid "B<EPOLLHUP>"
msgstr "B<EPOLLHUP>"
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:132
+#: build/C/man2/epoll_ctl.2:133
msgid ""
"Hang up happened on the associated file descriptor. B<epoll_wait>(2) will "
"always wait for this event; it is not necessary to set it in I<events>."
"(2) は常にこのイベントを待つので、 I<events> に設定する必要はない。"
#. type: TP
-#: build/C/man2/epoll_ctl.2:132
+#: build/C/man2/epoll_ctl.2:133
#, no-wrap
msgid "B<EPOLLET>"
msgstr "B<EPOLLET>"
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:142
+#: build/C/man2/epoll_ctl.2:143
msgid ""
"Sets the Edge Triggered behavior for the associated file descriptor. The "
"default behavior for B<epoll> is Level Triggered. See B<epoll>(7) for more "
"こと。"
#. type: TP
-#: build/C/man2/epoll_ctl.2:142
+#: build/C/man2/epoll_ctl.2:143
#, no-wrap
msgid "B<EPOLLONESHOT> (since Linux 2.6.2)"
msgstr "B<EPOLLONESHOT> (Linux 2.6.2 以降)"
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:156
+#: build/C/man2/epoll_ctl.2:157
msgid ""
"Sets the one-shot behavior for the associated file descriptor. This means "
"that after an event is pulled out with B<epoll_wait>(2) the associated file "
"り:"
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:165
+#: build/C/man2/epoll_ctl.2:166
msgid ""
"When successful, B<epoll_ctl>() returns zero. When an error occurs, "
"B<epoll_ctl>() returns -1 and I<errno> is set appropriately."
"B<epoll_ctl>() は -1 を返し、 I<errno> を適切に設定する。"
#. type: TP
-#: build/C/man2/epoll_ctl.2:166 build/C/man2/epoll_wait.2:150
+#: build/C/man2/epoll_ctl.2:167 build/C/man2/epoll_wait.2:153
#, no-wrap
msgid "B<EBADF>"
msgstr "B<EBADF>"
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:172
+#: build/C/man2/epoll_ctl.2:173
msgid "I<epfd> or I<fd> is not a valid file descriptor."
msgstr "I<epfd> か I<fd> が有効なファイルディスクリプタでない。"
#. type: TP
-#: build/C/man2/epoll_ctl.2:172
+#: build/C/man2/epoll_ctl.2:173
#, no-wrap
msgid "B<EEXIST>"
msgstr "B<EEXIST>"
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:180
+#: build/C/man2/epoll_ctl.2:181
msgid ""
"I<op> was B<EPOLL_CTL_ADD>, and the supplied file descriptor I<fd> is "
"already registered with this epoll instance."
"がこの epoll インスタンスに既に登録されている。"
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:193
+#: build/C/man2/epoll_ctl.2:194
msgid ""
"I<epfd> is not an B<epoll> file descriptor, or I<fd> is the same as I<epfd>, "
"or the requested operation I<op> is not supported by this interface."
"いない。"
#. type: TP
-#: build/C/man2/epoll_ctl.2:193
+#: build/C/man2/epoll_ctl.2:194
#, no-wrap
msgid "B<ENOENT>"
msgstr "B<ENOENT>"
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:203
+#: build/C/man2/epoll_ctl.2:204
msgid ""
"I<op> was B<EPOLL_CTL_MOD> or B<EPOLL_CTL_DEL>, and I<fd> is not registered "
"with this epoll instance."
"epoll インスタンスに登録されていない。"
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:208
+#: build/C/man2/epoll_ctl.2:209
msgid ""
"There was insufficient memory to handle the requested I<op> control "
"operation."
msgstr "要求された I<op> 制御操作を扱うのに十分なメモリがない。"
#. type: TP
-#: build/C/man2/epoll_ctl.2:208
+#: build/C/man2/epoll_ctl.2:209
#, no-wrap
msgid "B<ENOSPC>"
msgstr "B<ENOSPC>"
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:218
+#: build/C/man2/epoll_ctl.2:219
msgid ""
"The limit imposed by I</proc/sys/fs/epoll/max_user_watches> was encountered "
"while trying to register (B<EPOLL_CTL_ADD>) a new file descriptor on an "
"た。 詳細は B<epoll>(7) を参照。"
#. type: TP
-#: build/C/man2/epoll_ctl.2:218
+#: build/C/man2/epoll_ctl.2:219
#, no-wrap
msgid "B<EPERM>"
msgstr "B<EPERM>"
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:224
+#: build/C/man2/epoll_ctl.2:225
msgid "The target file I<fd> does not support B<epoll>."
msgstr "対象ファイル I<fd> が B<epoll> をサポートしていない。"
#. To be precise: kernel 2.5.44.
#. The interface should be finalized by Linux kernel 2.5.66.
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:229
+#: build/C/man2/epoll_ctl.2:230
msgid "B<epoll_ctl>() was added to the kernel in version 2.6."
msgstr "B<epoll_ctl>() はカーネル 2.6 で追加された。"
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:233
+#: build/C/man2/epoll_ctl.2:234
msgid ""
"B<epoll_ctl>() is Linux-specific. Library support is provided in glibc "
"starting with version 2.3.2."
"ライブラリによるサポートは glibc バージョン 2.3.2 以降で提供されている。"
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:238
+#: build/C/man2/epoll_ctl.2:239
msgid ""
"The B<epoll> interface supports all file descriptors that support B<poll>(2)."
msgstr ""
"リプタに対応している。"
#. type: SH
-#: build/C/man2/epoll_ctl.2:238 build/C/man2/poll.2:334
+#: build/C/man2/epoll_ctl.2:239 build/C/man2/epoll_wait.2:207
+#: build/C/man2/poll.2:362
#, no-wrap
msgid "BUGS"
msgstr "バグ"
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:252
+#: build/C/man2/epoll_ctl.2:253
msgid ""
"In kernel versions before 2.6.9, the B<EPOLL_CTL_DEL> operation required a "
"non-NULL pointer in I<event>, even though this argument is ignored. Since "
"は、 I<event> に NULL でないポインタを指定すべきである。"
#. type: Plain text
-#: build/C/man2/epoll_ctl.2:257
+#: build/C/man2/epoll_ctl.2:258
msgid "B<epoll_create>(2), B<epoll_wait>(2), B<poll>(2), B<epoll>(7)"
msgstr "B<epoll_create>(2), B<epoll_wait>(2), B<poll>(2), B<epoll>(7)"
#. type: TH
-#: build/C/man2/epoll_wait.2:23
+#: build/C/man2/epoll_wait.2:22
#, no-wrap
msgid "EPOLL_WAIT"
msgstr "EPOLL_WAIT"
+#. type: TH
+#: build/C/man2/epoll_wait.2:22
+#, no-wrap
+msgid "2012-08-17"
+msgstr "2012-08-17"
+
#. type: Plain text
-#: build/C/man2/epoll_wait.2:26
+#: build/C/man2/epoll_wait.2:25
msgid ""
"epoll_wait, epoll_pwait - wait for an I/O event on an epoll file descriptor"
msgstr ""
"epoll_wait, epoll_pwait - epoll ファイルディスクリプタの I/O イベントを待つ"
#. type: Plain text
-#: build/C/man2/epoll_wait.2:35
+#: build/C/man2/epoll_wait.2:34
#, no-wrap
msgid ""
"B<int epoll_wait(int >I<epfd>B<, struct epoll_event *>I<events>B<,>\n"
"B< const sigset_t *>I<sigmask>B<);>\n"
#. type: Plain text
-#: build/C/man2/epoll_wait.2:53
+#: build/C/man2/epoll_wait.2:52
msgid ""
-"The B<epoll_wait>() system call waits for events on the B<epoll> instance "
-"referred to by the file descriptor I<epfd>. The memory area pointed to by "
-"I<events> will contain the events that will be available for the caller. Up "
-"to I<maxevents> are returned by B<epoll_wait>(). The I<maxevents> argument "
-"must be greater than zero."
+"The B<epoll_wait>() system call waits for events on the B<epoll>(7) "
+"instance referred to by the file descriptor I<epfd>. The memory area "
+"pointed to by I<events> will contain the events that will be available for "
+"the caller. Up to I<maxevents> are returned by B<epoll_wait>(). The "
+"I<maxevents> argument must be greater than zero."
msgstr ""
-"B<epoll_wait>() システムコールは、 ファイルディスクリプタ I<epfd> で参照され"
-"る B<epoll> インスタンスに対するイベントを待つ。 I<events> が指すメモリ領域に"
-"は、呼び出し側が利用可能なイベントが格納される。 最大 I<maxevents> 個のイベン"
-"トが B<epoll_wait>() によって返される。 I<maxevents> 引き数は 0 より大きくな"
-"ければならない。"
+"B<epoll_wait>() システムコールは、ファイルディスクリプタ I<epfd> で参照され"
+"る\n"
+"B<epoll>(7) インスタンスに対するイベントを待つ。 I<events> が指すメモリ領域に"
+"は、\n"
+"呼び出し側が利用可能なイベントが格納される。最大 I<maxevents> 個のイベント"
+"が\n"
+"B<epoll_wait>() によって返される。\n"
+"I<maxevents> 引き数は 0 より大きくなければならない。"
#. type: Plain text
-#: build/C/man2/epoll_wait.2:67
+#: build/C/man2/epoll_wait.2:70
msgid ""
-"The call waits for a maximum time of I<timeout> milliseconds. Specifying a "
-"I<timeout> of -1 makes B<epoll_wait>() wait indefinitely, while specifying "
-"a I<timeout> equal to zero makes B<epoll_wait>() to return immediately even "
-"if no events are available (return code equal to zero)."
+"The I<timeout> argument specifies the minimum number of milliseconds that "
+"B<epoll_wait>() will block. (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.) Specifying a I<timeout> "
+"of -1 causes B<epoll_wait>() to block indefinitely, while specifying a "
+"I<timeout> equal to zero cause B<epoll_wait>() to return immediately, even "
+"if no events are available."
msgstr ""
-"最大で I<timeout> ミリ秒間イベントを待つ。 I<timeout> を -1 に指定すると、 "
-"B<epoll_wait>() は無限に待つ。 また I<timeout> を 0 に指定すると、 "
-"B<epoll_wait>() はイベントが利用可能でなくても、すぐに返る (返り値は 0 であ"
-"る)。"
+"I<timeout> 引き数は、 B<epoll_wait>() が停止する最小時間をミリ秒で指定\n"
+"する (この停止時間はシステムクロックの粒度に切り上げられ、カーネルの\n"
+"スケジューリング遅延により少しだけ長くなる可能性がある)。 \n"
+"I<timeout> を -1 に指定すると、 B<epoll_wait>() は無限に停止する。 \n"
+"I<timeout> を 0 に指定すると、 B<epoll_wait>() は利用可能なイベントが\n"
+"なくても、すぐに返る。"
#. type: Plain text
-#: build/C/man2/epoll_wait.2:71
+#: build/C/man2/epoll_wait.2:74
msgid "The I<struct epoll_event> is defined as :"
msgstr "I<struct epoll_event> は以下のように定義される:"
#. type: Plain text
-#: build/C/man2/epoll_wait.2:80
+#: build/C/man2/epoll_wait.2:83
#, no-wrap
msgid ""
"typedef union epoll_data {\n"
"} epoll_data_t;\n"
#. type: Plain text
-#: build/C/man2/epoll_wait.2:85
+#: build/C/man2/epoll_wait.2:88
#, no-wrap
msgid ""
"struct epoll_event {\n"
"};\n"
#. type: Plain text
-#: build/C/man2/epoll_wait.2:96
+#: build/C/man2/epoll_wait.2:99
+#, fuzzy
+#| msgid ""
+#| "The I<data> of each returned structure will contain the same data the "
+#| "user set with an B<epoll_ctl>(2) (B<EPOLL_CTL_ADD>,B<EPOLL_CTL_MOD>) "
+#| "while the I<events> member will contain the returned event bit field."
msgid ""
"The I<data> of each returned structure will contain the same data the user "
-"set with an B<epoll_ctl>(2) (B<EPOLL_CTL_ADD>,B<EPOLL_CTL_MOD>) while the "
+"set with an B<epoll_ctl>(2) (B<EPOLL_CTL_ADD>, B<EPOLL_CTL_MOD>) while the "
"I<events> member will contain the returned event bit field."
msgstr ""
"返される構造体の I<data> メンバには、ユーザが B<epoll_ctl>(2) "
"る。"
#. type: SS
-#: build/C/man2/epoll_wait.2:96
+#: build/C/man2/epoll_wait.2:99
#, no-wrap
msgid "epoll_pwait()"
msgstr "epoll_pwait()"
#. type: Plain text
-#: build/C/man2/epoll_wait.2:110
+#: build/C/man2/epoll_wait.2:113
msgid ""
"The relationship between B<epoll_wait>() and B<epoll_pwait>() is analogous "
"to the relationship between B<select>(2) and B<pselect>(2): like B<pselect>"
"が捕捉されるまで、安全に待つことができる。"
#. type: Plain text
-#: build/C/man2/epoll_wait.2:114
+#: build/C/man2/epoll_wait.2:117
msgid "The following B<epoll_pwait>() call:"
msgstr "以下の B<epoll_pwait>() の呼び出しは、"
#. type: Plain text
-#: build/C/man2/epoll_wait.2:117
+#: build/C/man2/epoll_wait.2:120
#, no-wrap
msgid " ready = epoll_pwait(epfd, &events, maxevents, timeout, &sigmask);\n"
msgstr " ready = epoll_pwait(epfd, &events, maxevents, timeout, &sigmask);\n"
#. type: Plain text
-#: build/C/man2/epoll_wait.2:122 build/C/man2/poll.2:206
+#: build/C/man2/epoll_wait.2:125 build/C/man2/poll.2:232
msgid "is equivalent to I<atomically> executing the following calls:"
msgstr "次の呼び出しを I<atomic> に実行するのと等価である。"
#. type: Plain text
-#: build/C/man2/epoll_wait.2:125
+#: build/C/man2/epoll_wait.2:128
#, no-wrap
msgid " sigset_t origmask;\n"
msgstr " sigset_t origmask;\n"
#. type: Plain text
-#: build/C/man2/epoll_wait.2:129
+#: build/C/man2/epoll_wait.2:132
#, no-wrap
msgid ""
" sigprocmask(SIG_SETMASK, &sigmask, &origmask);\n"
" sigprocmask(SIG_SETMASK, &origmask, NULL);\n"
#. type: Plain text
-#: build/C/man2/epoll_wait.2:137
+#: build/C/man2/epoll_wait.2:140
msgid ""
"The I<sigmask> argument may be specified as NULL, in which case "
"B<epoll_pwait>() is equivalent to B<epoll_wait>()."
"() は B<epoll_wait>() と等価となる。"
#. type: Plain text
-#: build/C/man2/epoll_wait.2:149
+#: build/C/man2/epoll_wait.2:152
msgid ""
"When successful, B<epoll_wait>() returns the number of file descriptors "
"ready for the requested I/O, or zero if no file descriptor became ready "
"B<epoll_wait>() は -1 を返し、 I<errno> を適切に設定する。"
#. type: Plain text
-#: build/C/man2/epoll_wait.2:154
+#: build/C/man2/epoll_wait.2:157
msgid "I<epfd> is not a valid file descriptor."
msgstr "I<epfd> が有効なファイルディスクリプタでない。"
#. type: TP
-#: build/C/man2/epoll_wait.2:154 build/C/man2/poll.2:268
+#: build/C/man2/epoll_wait.2:157 build/C/man2/poll.2:294
#, no-wrap
msgid "B<EFAULT>"
msgstr "B<EFAULT>"
#. type: Plain text
-#: build/C/man2/epoll_wait.2:159
+#: build/C/man2/epoll_wait.2:162
msgid ""
"The memory area pointed to by I<events> is not accessible with write "
"permissions."
msgstr "I<events> で指されるメモリ領域に書き込み権限でアクセスできない。"
#. type: TP
-#: build/C/man2/epoll_wait.2:159 build/C/man2/poll.2:272
+#: build/C/man2/epoll_wait.2:162 build/C/man2/poll.2:298
#, no-wrap
msgid "B<EINTR>"
msgstr "B<EINTR>"
#. type: Plain text
-#: build/C/man2/epoll_wait.2:166
+#: build/C/man2/epoll_wait.2:169
msgid ""
-"The call was interrupted by a signal handler before any of the requested "
-"events occurred or the I<timeout> expired; see B<signal>(7)."
+"The call was interrupted by a signal handler before either any of the "
+"requested events occurred or the I<timeout> expired; see B<signal>(7)."
msgstr ""
-"要求されたどのイベントも発生せず、かつ I<timeout> の期限が切れる前に、システ"
-"ムコールがシグナルハンドラによって割り込まれた。 B<signal>(7) 参照。"
+"要求されたどのイベントも発生せず、かつ I<timeout> の期限が切れる前に、\n"
+"システムコールがシグナルハンドラによって割り込まれた。 \n"
+"B<signal>(7) 参照。"
#. type: Plain text
-#: build/C/man2/epoll_wait.2:174
+#: build/C/man2/epoll_wait.2:177
msgid ""
"I<epfd> is not an B<epoll> file descriptor, or I<maxevents> is less than or "
"equal to zero."
#. To be precise: kernel 2.5.44.
#. The interface should be finalized by Linux kernel 2.5.66.
#. type: Plain text
-#: build/C/man2/epoll_wait.2:180
+#: build/C/man2/epoll_wait.2:183
msgid ""
"B<epoll_wait>() was added to the kernel in version 2.6. Library support is "
"provided in glibc starting with version 2.3.2."
"ライブラリによるサポートは glibc バージョン 2.3.2 以降で提供されている。"
#. type: Plain text
-#: build/C/man2/epoll_wait.2:184
+#: build/C/man2/epoll_wait.2:187
msgid ""
"B<epoll_pwait>() was added to Linux in kernel 2.6.19. Library support is "
"provided in glibc starting with version 2.6."
"ライブラリによるサポートは glibc バージョン 2.6 以降で提供されている。"
#. type: Plain text
-#: build/C/man2/epoll_wait.2:187
+#: build/C/man2/epoll_wait.2:190
msgid "B<epoll_wait>() is Linux-specific."
msgstr "B<epoll_wait>() は Linux 独自である。"
#. type: Plain text
-#: build/C/man2/epoll_wait.2:191
+#: build/C/man2/epoll_wait.2:200
+msgid ""
+"While one thread is blocked in a call to B<epoll_pwait>(), it is possible "
+"for another thread to add a file descriptor to the waited-upon B<epoll> "
+"instance. If the new file descriptor becomes ready, it will cause the "
+"B<epoll_wait>() call to unblock."
+msgstr ""
+"あるスレッドが B<epoll_pwait>() を呼び出して停止されている間に、\n"
+"別のスレッドが wait 中の B<epoll> インストールにファイルディスクリプタを\n"
+"追加することがある。新しいファイルディスクリプタでイベントが発生すると、\n"
+"B<epoll_wait>() の呼び出しによる停止が解除されることになる。"
+
+#. type: Plain text
+#: build/C/man2/epoll_wait.2:207
+msgid ""
+"For a discussion of what may happen if a file descriptor in an B<epoll> "
+"instance being monitored by B<epoll_wait>() is closed in another thread, "
+"see B<select>(2)."
+msgstr ""
+"B<epoll_wait>() で監視中の B<epoll> インスタンス内のファイルディスクリプタが"
+"別のスレッドによってクローズされた場合に何が起こるかの議論については、 "
+"B<select>(2) を参照してほしい。"
+
+#. type: Plain text
+#: build/C/man2/epoll_wait.2:219
+msgid ""
+"In kernels before 2.6.37, a I<timeout> value larger than approximately "
+"I<LONG_MAX / HZ> milliseconds is treated as -1 (i.e., infinity). Thus, for "
+"example, on a system where the I<sizeof(long)> is 4 and the kernel I<HZ> "
+"value is 1000, this means that timeouts greater than 35.79 minutes are "
+"treated as infinity."
+msgstr ""
+"バージョン 2.6.37 より前のカーネルでは、おおよそ I<LONG_MAX / HZ> ミリ秒より"
+"大きい I<timeout> 値は -1 (つまり無限大) として扱われる。したがって、例えば、"
+"I<sizeof(long)> が 4 で、カーネルの I<HZ> の値が 1000 のシステムでは、 35.79 "
+"分よりも大きなタイムアウトは無限大として扱われるということである。"
+
+#. type: Plain text
+#: build/C/man2/epoll_wait.2:223
msgid "B<epoll_create>(2), B<epoll_ctl>(2), B<epoll>(7)"
msgstr "B<epoll_create>(2), B<epoll_ctl>(2), B<epoll>(7)"
#. type: TH
#: build/C/man2/poll.2:31
-#, no-wrap
-msgid "2010-09-20"
-msgstr "2010-09-20"
+#, fuzzy, no-wrap
+#| msgid "2013-07-30"
+msgid "2013-09-04"
+msgstr "2013-07-30"
#. type: Plain text
#: build/C/man2/poll.2:34
msgstr "I<nfds> には、 I<fds> 配列の要素数を指定する。"
#. type: Plain text
-#: build/C/man2/poll.2:75
-msgid "The field I<fd> contains a file descriptor for an open file."
+#: build/C/man2/poll.2:86
+msgid ""
+"The field I<fd> contains a file descriptor for an open file. If this field "
+"is negative, then the corresponding I<events> field is ignored and the "
+"I<revents> field returns zero. (This provides an easy way of ignoring a "
+"file descriptor for a single B<poll>() call: simply negate the I<fd> field.)"
msgstr ""
-"構造体の I<fd> にはオープンしたファイルのファイルディスクリプタを入れる。"
+"I<fd> フィールドには、オープンされたファイルのファイルディスクリプタが入"
+"る。\n"
+"このフィールドが負の場合、対応する I<events> フィールドは無視され、\n"
+"I<revents> には 0 が返される。(この機能により、一つの B<poll>() の呼び出し"
+"で\n"
+"簡単にあるファイルディスクリプタを無視することができる。\n"
+"単に I<fd> フィールドの符号を反転するだけでよい。)"
#. type: Plain text
-#: build/C/man2/poll.2:80
+#: build/C/man2/poll.2:98
msgid ""
"The field I<events> is an input parameter, a bit mask specifying the events "
-"the application is interested in."
+"the application is interested in for the file descriptor I<fd>. If this "
+"field is specified as zero, then all events are ignored for I<fd> and "
+"I<revents> returns zero."
msgstr ""
-"構造体の I<events> 要素は入力パラメータで、アプリケーションが興味を持っている"
-"イベントの ビットマスクを指定する。"
+"構造体の I<events> 要素は入力パラメータで、\n"
+"ファイルディスクリプタ I<fd> に関して、\n"
+"アプリケーションが興味を持っているイベントのビットマスクを指定する。\n"
+"このフィールドに 0 が指定された場合は、I<fd> の全てのイベントが無視され、\n"
+"I<revents> には 0 が返される。"
#. type: Plain text
-#: build/C/man2/poll.2:99
+#: build/C/man2/poll.2:117
msgid ""
"The field I<revents> is an output parameter, filled by the kernel with the "
"events that actually occurred. The bits returned in I<revents> can include "
"意味がなく、対応した状態が真の場合に I<revents> に設定される)。"
#. type: Plain text
-#: build/C/man2/poll.2:104
+#: build/C/man2/poll.2:122
msgid ""
"If none of the events requested (and no error) has occurred for any of the "
"file descriptors, then B<poll>() blocks until one of the events occurs."
"(block) する。"
#. type: Plain text
-#: build/C/man2/poll.2:113
+#: build/C/man2/poll.2:139
+#, fuzzy
+#| msgid ""
+#| "The I<timeout> argument specifies the minimum number of milliseconds that "
+#| "B<poll>() will block. (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.) Specifying a negative value in "
+#| "I<timeout> means an infinite timeout. Specifying a I<timeout> of zero "
+#| "causes B<poll>() to return immediately, even if no file descriptors are "
+#| "ready."
msgid ""
-"The I<timeout> argument specifies an upper limit on the time for which "
-"B<poll>() will block, in milliseconds. Specifying a negative value in "
-"I<timeout> means an infinite timeout."
+"The I<timeout> argument specifies the number of milliseconds that B<poll>() "
+"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. "
+"Specifying a negative value in I<timeout> means an infinite timeout. "
+"Specifying a I<timeout> of zero causes B<poll>() to return immediately, "
+"even if no file descriptors are ready."
msgstr ""
-"I<timeout> 引き数は B<poll>() が停止する時間の上限を設定するもので、ミリ秒単"
-"位で指定する。 I<timeout> に負の値を指定すると、タイムアウト時間が無限とな"
-"る。"
+"I<timeout> 引き数は、 B<poll>() が停止する最小時間をミリ秒で指定する\n"
+"(この停止時間はシステムクロックの粒度に切り上げられ、カーネルの\n"
+"スケジューリング遅延により少しだけ長くなる可能性がある)。\n"
+"I<timeout> に負の値を指定した場合、タイムアウト時間が無限大を意味する。\n"
+"I<timeout> を 0 に指定した場合、I/O 可能なファイルディスクリプタが\n"
+"ない場合であっても、 B<poll>() はすぐに返る。"
#. type: Plain text
-#: build/C/man2/poll.2:119
+#: build/C/man2/poll.2:145
msgid ""
"The bits that may be set/returned in I<events> and I<revents> are defined in "
"I<E<lt>poll.hE<gt>>:"
"定義されている:"
#. type: TP
-#: build/C/man2/poll.2:120
+#: build/C/man2/poll.2:146
#, no-wrap
msgid "B<POLLIN>"
msgstr "B<POLLIN>"
#. type: Plain text
-#: build/C/man2/poll.2:123
+#: build/C/man2/poll.2:149
msgid "There is data to read."
msgstr "読み出し可能なデータがある。"
#. type: TP
-#: build/C/man2/poll.2:123
+#: build/C/man2/poll.2:149
#, no-wrap
msgid "B<POLLPRI>"
msgstr "B<POLLPRI>"
#. type: Plain text
-#: build/C/man2/poll.2:127
+#: build/C/man2/poll.2:153
msgid ""
"There is urgent data to read (e.g., out-of-band data on TCP socket; "
"pseudoterminal master in packet mode has seen state change in slave)."
"がスレーブ側の変化を見つけたとき)。"
#. type: TP
-#: build/C/man2/poll.2:127
+#: build/C/man2/poll.2:153
#, no-wrap
msgid "B<POLLOUT>"
msgstr "B<POLLOUT>"
#. type: Plain text
-#: build/C/man2/poll.2:130
+#: build/C/man2/poll.2:156
msgid "Writing now will not block."
msgstr "書き込みが停止 (block) しない状態である。"
#. type: TP
-#: build/C/man2/poll.2:130
+#: build/C/man2/poll.2:156
#, no-wrap
msgid "B<POLLRDHUP> (since Linux 2.6.17)"
msgstr "B<POLLRDHUP> (Linux 2.6.17 以降)"
#. type: Plain text
-#: build/C/man2/poll.2:141
+#: build/C/man2/poll.2:167
msgid ""
"Stream socket peer closed connection, or shut down writing half of "
"connection. The B<_GNU_SOURCE> feature test macro must be defined (before "
"らない。"
#. type: TP
-#: build/C/man2/poll.2:141
+#: build/C/man2/poll.2:167
#, no-wrap
msgid "B<POLLERR>"
msgstr "B<POLLERR>"
#. type: Plain text
-#: build/C/man2/poll.2:144
+#: build/C/man2/poll.2:170
msgid "Error condition (output only)."
msgstr "エラー状態 (出力の場合のみ)。"
#. type: TP
-#: build/C/man2/poll.2:144
+#: build/C/man2/poll.2:170
#, no-wrap
msgid "B<POLLHUP>"
msgstr "B<POLLHUP>"
#. type: Plain text
-#: build/C/man2/poll.2:147
+#: build/C/man2/poll.2:173
msgid "Hang up (output only)."
msgstr "ハングアップした (出力の場合のみ)。"
#. type: TP
-#: build/C/man2/poll.2:147
+#: build/C/man2/poll.2:173
#, no-wrap
msgid "B<POLLNVAL>"
msgstr "B<POLLNVAL>"
#. type: Plain text
-#: build/C/man2/poll.2:152
+#: build/C/man2/poll.2:178
msgid "Invalid request: I<fd> not open (output only)."
msgstr "不正な要求: I<fd> がオープンされていない (出力の場合のみ)。"
#. type: Plain text
-#: build/C/man2/poll.2:158
+#: build/C/man2/poll.2:184
msgid ""
"When compiling with B<_XOPEN_SOURCE> defined, one also has the following, "
"which convey no further information beyond the bits listed above:"
"だし、上記のリストにあるビット以上の情報が得られる訳ではない。"
#. type: TP
-#: build/C/man2/poll.2:159
+#: build/C/man2/poll.2:185
#, no-wrap
msgid "B<POLLRDNORM>"
msgstr "B<POLLRDNORM>"
#. type: Plain text
-#: build/C/man2/poll.2:163
+#: build/C/man2/poll.2:189
msgid "Equivalent to B<POLLIN>."
msgstr "B<POLLIN> と同じ。"
#. type: TP
-#: build/C/man2/poll.2:163
+#: build/C/man2/poll.2:189
#, no-wrap
msgid "B<POLLRDBAND>"
msgstr "B<POLLRDBAND>"
#. POLLRDBAND is used in the DECnet protocol.
#. type: Plain text
-#: build/C/man2/poll.2:167
+#: build/C/man2/poll.2:193
msgid "Priority band data can be read (generally unused on Linux)."
msgstr ""
"優先帯域データ (priority band data) が読み出し可能である (普通は Linux では使"
"用されない)。"
#. type: TP
-#: build/C/man2/poll.2:167
+#: build/C/man2/poll.2:193
#, no-wrap
msgid "B<POLLWRNORM>"
msgstr "B<POLLWRNORM>"
#. type: Plain text
-#: build/C/man2/poll.2:171
+#: build/C/man2/poll.2:197
msgid "Equivalent to B<POLLOUT>."
msgstr "B<POLLOUT> と同じ。"
#. type: TP
-#: build/C/man2/poll.2:171
+#: build/C/man2/poll.2:197
#, no-wrap
msgid "B<POLLWRBAND>"
msgstr "B<POLLWRBAND>"
#. type: Plain text
-#: build/C/man2/poll.2:174
+#: build/C/man2/poll.2:200
msgid "Priority data may be written."
msgstr "優先帯域データ (priority data) が書き込み可能である。"
#. type: Plain text
-#: build/C/man2/poll.2:178
+#: build/C/man2/poll.2:204
msgid "Linux also knows about, but does not use B<POLLMSG>."
msgstr "Linux では B<POLLMSG> も定義されているが、使用されていない。"
#. type: SS
-#: build/C/man2/poll.2:178
+#: build/C/man2/poll.2:204
#, no-wrap
msgid "ppoll()"
msgstr "ppoll()"
#. type: Plain text
-#: build/C/man2/poll.2:192
+#: build/C/man2/poll.2:218
msgid ""
"The relationship between B<poll>() and B<ppoll>() is analogous to the "
"relationship between B<select>(2) and B<pselect>(2): like B<pselect>(2), "
"つことができる。"
#. type: Plain text
-#: build/C/man2/poll.2:198
+#: build/C/man2/poll.2:224
msgid ""
"Other than the difference in the precision of the I<timeout> argument, the "
"following B<ppoll>() call:"
"I<timeout> 引き数の精度の違いを除くと、以下の B<ppoll>() の呼び出しは、"
#. type: Plain text
-#: build/C/man2/poll.2:201
+#: build/C/man2/poll.2:227
#, no-wrap
msgid " ready = ppoll(&fds, nfds, timeout_ts, &sigmask);\n"
msgstr " ready = ppoll(&fds, nfds, timeout_ts, &sigmask);\n"
#. type: Plain text
-#: build/C/man2/poll.2:210
+#: build/C/man2/poll.2:236
#, no-wrap
msgid ""
" sigset_t origmask;\n"
" int timeout;\n"
#. type: Plain text
-#: build/C/man2/poll.2:216
+#: build/C/man2/poll.2:242
#, no-wrap
msgid ""
" timeout = (timeout_ts == NULL) ? -1 :\n"
" sigprocmask(SIG_SETMASK, &origmask, NULL);\n"
#. type: Plain text
-#: build/C/man2/poll.2:223
+#: build/C/man2/poll.2:249
msgid ""
"See the description of B<pselect>(2) for an explanation of why B<ppoll>() "
"is necessary."
"と。"
#. type: Plain text
-#: build/C/man2/poll.2:235
+#: build/C/man2/poll.2:261
msgid ""
"If the I<sigmask> argument is specified as NULL, then no signal mask "
"manipulation is performed (and thus B<ppoll>() differs from B<poll>() only "
"けとなる)。"
#. type: Plain text
-#: build/C/man2/poll.2:242
+#: build/C/man2/poll.2:268
msgid ""
"The I<timeout_ts> argument specifies an upper limit on the amount of time "
"that B<ppoll>() will block. This argument is a pointer to a structure of "
"の引き数には以下の型の構造体へのポインタを指定する。"
#. type: Plain text
-#: build/C/man2/poll.2:249
+#: build/C/man2/poll.2:275
#, no-wrap
msgid ""
"struct timespec {\n"
"};\n"
#. type: Plain text
-#: build/C/man2/poll.2:257
+#: build/C/man2/poll.2:283
msgid ""
"If I<timeout_ts> is specified as NULL, then B<ppoll>() can block "
"indefinitely."
"得る。"
#. type: Plain text
-#: build/C/man2/poll.2:267
+#: build/C/man2/poll.2:293
msgid ""
"On success, a positive number is returned; this is the number of structures "
"which have nonzero I<revents> fields (in other words, those descriptors with "
"定される。"
#. type: Plain text
-#: build/C/man2/poll.2:272
+#: build/C/man2/poll.2:298
msgid ""
"The array given as argument was not contained in the calling program's "
"address space."
"い。"
#. type: Plain text
-#: build/C/man2/poll.2:276
+#: build/C/man2/poll.2:302
msgid "A signal occurred before any requested event; see B<signal>(7)."
msgstr ""
"要求されたイベントのどれかが起こる前にシグナルが発生した。 B<signal>(7) 参"
"照。"
#. type: Plain text
-#: build/C/man2/poll.2:283
+#: build/C/man2/poll.2:309
msgid "The I<nfds> value exceeds the B<RLIMIT_NOFILE> value."
msgstr "I<nfds> の値が B<RLIMIT_NOFILE> を超えた。"
#. type: Plain text
-#: build/C/man2/poll.2:286
+#: build/C/man2/poll.2:312
msgid "There was no space to allocate file descriptor tables."
msgstr "ファイルディスクリプタ・テーブルを確保するためのメモリがない。"
+#. library call was introduced in libc 5.4.28
#. type: Plain text
-#: build/C/man2/poll.2:299
+#: build/C/man2/poll.2:322
msgid ""
-"The B<poll>() system call was introduced in Linux 2.1.23. The B<poll>() "
-"library call was introduced in libc 5.4.28 (and provides emulation using "
-"B<select>(2) if your kernel does not have a B<poll>() system call)."
+"The B<poll>() system call was introduced in Linux 2.1.23. On older kernels "
+"that lack this system call, the glibc (and the old Linux libc) B<poll>() "
+"wrapper function provides emulation using B<select>(2)."
msgstr ""
-"B<poll>() システムコールは Linux 2.1.23 で導入された。 B<poll>() ライブラ"
-"ã\83ªã\83»ã\82³ã\83¼ã\83«ã\81¯ libc 5.4.28 ã\81\8bã\82\89å°\8eå\85¥ã\81\95ã\82\8cã\81\9f (ã\81\93ã\82\8cã\81¯ã\82«ã\83¼ã\83\8dã\83«ã\81\8c B<poll>() ã\82·ã\82¹ã\83\86ã\83 "
-"コールをサポートしていない場合に B<select>(2) を使用してエミュレートを行"
-"ã\81\86)。"
+"B<poll>() システムコールは Linux 2.1.23 で導入された。\n"
+"ã\81\93ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81\8cå\98å\9c¨ã\81\97ã\81ªã\81\84å\8f¤ã\81\84ã\82«ã\83¼ã\83\8dã\83«ã\81§ã\81¯ã\80\81\n"
+"glibc (や古い Linux libc) は B<select>(2) を使用して B<poll>() \n"
+"ã\83©ã\83\83ã\83\91ã\83¼é\96¢æ\95°ã\81®ã\82¨ã\83\9fã\83¥ã\83¬ã\83¼ã\82·ã\83§ã\83³ã\82\92è¡\8cã\81\86。"
#. type: Plain text
-#: build/C/man2/poll.2:306
+#: build/C/man2/poll.2:329
msgid ""
"The B<ppoll>() system call was added to Linux in kernel 2.6.16. The "
"B<ppoll>() library call was added in glibc 2.4."
#. NetBSD 3.0 has a pollts() which is like Linux ppoll().
#. type: Plain text
-#: build/C/man2/poll.2:312
+#: build/C/man2/poll.2:335
msgid "B<poll>() conforms to POSIX.1-2001. B<ppoll>() is Linux-specific."
msgstr ""
"B<poll>() は POSIX.1-2001 に準拠している。 B<ppoll>() は Linux 固有である。"
#. type: Plain text
-#: build/C/man2/poll.2:320
+#: build/C/man2/poll.2:343
msgid ""
"Some implementations define the nonstandard constant B<INFTIM> with the "
"value -1 for use as a I<timeout> for B<poll>(). This constant is not "
"B<poll>() の I<timeout> の指定に使用できる。 この定数は glibc では定義されて"
"いない。"
+#. type: Plain text
+#: build/C/man2/poll.2:348
+msgid ""
+"For a discussion of what may happen if a file descriptor being monitored by "
+"B<poll>() is closed in another thread, see B<select>(2)."
+msgstr ""
+"B<poll>() で監視中のファイルディスクリプタが別のスレッドによってクローズされ"
+"た場合に何が起こるかの議論については、 B<select>(2) を参照してほしい。"
+
#. type: SS
-#: build/C/man2/poll.2:320
+#: build/C/man2/poll.2:348
#, no-wrap
-msgid "Linux Notes"
+msgid "Linux notes"
msgstr "Linux での注意"
#. type: Plain text
-#: build/C/man2/poll.2:334
+#: build/C/man2/poll.2:362
msgid ""
"The Linux B<ppoll>() system call modifies its I<timeout_ts> argument. "
"However, the glibc wrapper function hides this behavior by using a local "
"数では I<timeout_ts> 引き数は変更されない。"
#. type: Plain text
-#: build/C/man2/poll.2:338
+#: build/C/man2/poll.2:366
msgid ""
"See the discussion of spurious readiness notifications under the BUGS "
"section of B<select>(2)."
"readiness notifications) についての議論を参照のこと。"
#. type: Plain text
-#: build/C/man2/poll.2:342
-msgid "B<select>(2), B<select_tut>(2), B<time>(7)"
-msgstr "B<select>(2), B<select_tut>(2), B<time>(7)"
-
-#~ msgid "2009-01-17"
-#~ msgstr "2009-01-17"
-
-#~ msgid "2010-08-29"
-#~ msgstr "2010-08-29"
-
-#~ msgid ""
-#~ "Glibc support for B<epoll_pwait>() is provided starting with version 2.6."
-#~ msgstr ""
-#~ "B<epoll_pwait>() の glibc でのサポートは glibc 2.6 以降で提供されている。"
+#: build/C/man2/poll.2:371
+msgid "B<restart_syscall>(2), B<select>(2), B<select_tut>(2), B<time>(7)"
+msgstr "B<restart_syscall>(2), B<select>(2), B<select_tut>(2), B<time>(7)"