msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2012-03-22 04:26+0900\n"
-"PO-Revision-Date: 2012-03-22 00:51+0900\n"
+"POT-Creation-Date: 2014-06-03 01:29+0900\n"
+"PO-Revision-Date: 2014-06-06 01:38+0900\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"Content-Transfer-Encoding: 8bit\n"
#. type: TH
-#: build/C/man3/CPU_SET.3:25
+#: build/C/man3/CPU_SET.3:27
#, no-wrap
msgid "CPU_SET"
msgstr "CPU_SET"
#. type: TH
-#: build/C/man3/CPU_SET.3:25
+#: build/C/man3/CPU_SET.3:27
#, no-wrap
-msgid "2010-09-10"
-msgstr "2010-09-10"
+msgid "2012-03-15"
+msgstr "2012-03-15"
#. type: TH
-#: build/C/man3/CPU_SET.3:25 build/C/man2/clone.2:43
-#: build/C/man2/sched_get_priority_max.2:30 build/C/man3/sched_getcpu.3:24
-#: build/C/man2/sched_rr_get_interval.2:30 build/C/man2/sched_setaffinity.2:35
-#: build/C/man2/sched_setparam.2:31 build/C/man2/sched_setscheduler.2:47
-#: build/C/man2/sched_yield.2:30 build/C/man2/setns.2:4
-#: build/C/man2/unshare.2:17
+#: build/C/man3/CPU_SET.3:27 build/C/man2/clone.2:45 build/C/man2/kcmp.2:28
+#: build/C/man2/sched_get_priority_max.2:29 build/C/man3/sched_getcpu.3:26
+#: build/C/man2/sched_rr_get_interval.2:29 build/C/man2/sched_setaffinity.2:34
+#: build/C/man2/sched_setparam.2:30 build/C/man2/sched_setscheduler.2:26
+#: build/C/man2/sched_yield.2:29 build/C/man2/setns.2:8
+#: build/C/man2/unshare.2:20
#, no-wrap
msgid "Linux"
msgstr "Linux"
#. type: TH
-#: build/C/man3/CPU_SET.3:25 build/C/man2/clone.2:43
-#: build/C/man2/sched_get_priority_max.2:30 build/C/man3/sched_getcpu.3:24
-#: build/C/man2/sched_rr_get_interval.2:30 build/C/man2/sched_setaffinity.2:35
-#: build/C/man2/sched_setparam.2:31 build/C/man2/sched_setscheduler.2:47
-#: build/C/man2/sched_yield.2:30 build/C/man2/setns.2:4
-#: build/C/man2/unshare.2:17
+#: build/C/man3/CPU_SET.3:27 build/C/man2/clone.2:45 build/C/man2/kcmp.2:28
+#: build/C/man2/sched_get_priority_max.2:29 build/C/man3/sched_getcpu.3:26
+#: build/C/man2/sched_rr_get_interval.2:29 build/C/man2/sched_setaffinity.2:34
+#: build/C/man2/sched_setparam.2:30 build/C/man2/sched_setscheduler.2:26
+#: build/C/man2/sched_yield.2:29 build/C/man2/setns.2:8
+#: build/C/man2/unshare.2:20
#, no-wrap
msgid "Linux Programmer's Manual"
msgstr "Linux Programmer's Manual"
#. type: SH
-#: build/C/man3/CPU_SET.3:26 build/C/man2/clone.2:44
-#: build/C/man2/sched_get_priority_max.2:31 build/C/man3/sched_getcpu.3:25
-#: build/C/man2/sched_rr_get_interval.2:31 build/C/man2/sched_setaffinity.2:36
-#: build/C/man2/sched_setparam.2:32 build/C/man2/sched_setscheduler.2:48
-#: build/C/man2/sched_yield.2:31 build/C/man2/setns.2:5
-#: build/C/man2/unshare.2:18
+#: build/C/man3/CPU_SET.3:28 build/C/man2/clone.2:46 build/C/man2/kcmp.2:29
+#: build/C/man2/sched_get_priority_max.2:30 build/C/man3/sched_getcpu.3:27
+#: build/C/man2/sched_rr_get_interval.2:30 build/C/man2/sched_setaffinity.2:35
+#: build/C/man2/sched_setparam.2:31 build/C/man2/sched_setscheduler.2:27
+#: build/C/man2/sched_yield.2:30 build/C/man2/setns.2:9
+#: build/C/man2/unshare.2:21
#, no-wrap
msgid "NAME"
msgstr "名前"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:33
+#: build/C/man3/CPU_SET.3:35
msgid ""
"CPU_SET, CPU_CLR, CPU_ISSET, CPU_ZERO, CPU_COUNT, CPU_AND, CPU_OR, CPU_XOR, "
"CPU_EQUAL, CPU_ALLOC, CPU_ALLOC_SIZE, CPU_FREE, CPU_SET_S, CPU_CLR_S, "
"CPU_SET, CPU_CLR, CPU_ISSET, CPU_ZERO, CPU_COUNT, CPU_AND, CPU_OR, CPU_XOR, "
"CPU_EQUAL, CPU_ALLOC, CPU_ALLOC_SIZE, CPU_FREE, CPU_SET_S, CPU_CLR_S, "
"CPU_ISSET_S, CPU_ZERO_S, CPU_COUNT_S, CPU_AND_S, CPU_OR_S, CPU_XOR_S, "
-"CPU_EQUAL_S - macros for manipulating CPU sets"
+"CPU_EQUAL_S - CPU 集合を操作するためのマクロ"
#. type: SH
-#: build/C/man3/CPU_SET.3:33 build/C/man2/clone.2:46
-#: build/C/man2/sched_get_priority_max.2:33 build/C/man3/sched_getcpu.3:27
-#: build/C/man2/sched_rr_get_interval.2:33 build/C/man2/sched_setaffinity.2:39
-#: build/C/man2/sched_setparam.2:34 build/C/man2/sched_setscheduler.2:51
-#: build/C/man2/sched_yield.2:33 build/C/man2/setns.2:7
-#: build/C/man2/unshare.2:20
+#: build/C/man3/CPU_SET.3:35 build/C/man2/clone.2:48 build/C/man2/kcmp.2:31
+#: build/C/man2/sched_get_priority_max.2:32 build/C/man3/sched_getcpu.3:29
+#: build/C/man2/sched_rr_get_interval.2:32 build/C/man2/sched_setaffinity.2:38
+#: build/C/man2/sched_setparam.2:33 build/C/man2/sched_setscheduler.2:30
+#: build/C/man2/sched_yield.2:32 build/C/man2/setns.2:11
+#: build/C/man2/unshare.2:23
#, no-wrap
msgid "SYNOPSIS"
msgstr "書式"
-#. Actually _BSD_SOURCE || _SVID_SOURCE
-#. See http://sources.redhat.com/bugzilla/show_bug.cgi?id=4749
#. type: Plain text
-#: build/C/man3/CPU_SET.3:37 build/C/man2/clone.2:52
-#: build/C/man2/sched_setaffinity.2:43 build/C/man2/setns.2:11
-#: build/C/man2/unshare.2:26
+#: build/C/man3/CPU_SET.3:39 build/C/man2/sched_setaffinity.2:42
+#: build/C/man2/setns.2:15
#, no-wrap
msgid ""
"B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
"B<#include E<lt>sched.hE<gt>>\n"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:39
+#: build/C/man3/CPU_SET.3:41
#, no-wrap
msgid "B<void CPU_ZERO(cpu_set_t *>I<set>B<);>\n"
msgstr "B<void CPU_ZERO(cpu_set_t *>I<set>B<);>\n"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:43
+#: build/C/man3/CPU_SET.3:45
#, no-wrap
msgid ""
"B<void CPU_SET(int >I<cpu>B<, cpu_set_t *>I<set>B<);>\n"
"B<int CPU_ISSET(int >I<cpu>B<, cpu_set_t *>I<set>B<);>\n"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:45
+#: build/C/man3/CPU_SET.3:47
#, no-wrap
msgid "B<int CPU_COUNT(cpu_set_t *>I<set>B<);>\n"
msgstr "B<int CPU_COUNT(cpu_set_t *>I<set>B<);>\n"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:52
+#: build/C/man3/CPU_SET.3:54
#, no-wrap
msgid ""
"B<void CPU_AND(cpu_set_t *>I<destset>B<,>\n"
"B< cpu_set_t *>I<srcset1>B<, cpu_set_t *>I<srcset2>B<);>\n"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:54
+#: build/C/man3/CPU_SET.3:56
#, no-wrap
msgid "B<int CPU_EQUAL(cpu_set_t *>I<set1>B<, cpu_set_t *>I<set2>B<);>\n"
msgstr "B<int CPU_EQUAL(cpu_set_t *>I<set1>B<, cpu_set_t *>I<set2>B<);>\n"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:58
+#: build/C/man3/CPU_SET.3:60
#, no-wrap
msgid ""
"B<cpu_set_t *CPU_ALLOC(int >I<num_cpus>B<);>\n"
"B<size_t CPU_ALLOC_SIZE(int >I<num_cpus>B<);>\n"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:60
+#: build/C/man3/CPU_SET.3:62
#, no-wrap
msgid "B<void CPU_ZERO_S(size_t >I<setsize>B<, cpu_set_t *>I<set>B<);>\n"
msgstr "B<void CPU_ZERO_S(size_t >I<setsize>B<, cpu_set_t *>I<set>B<);>\n"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:64
+#: build/C/man3/CPU_SET.3:66
#, no-wrap
msgid ""
"B<void CPU_SET_S(int >I<cpu>B<, size_t >I<setsize>B<, cpu_set_t *>I<set>B<);>\n"
"B<int CPU_ISSET_S(int >I<cpu>B<, size_t >I<setsize>B<, cpu_set_t *>I<set>B<);>\n"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:66
+#: build/C/man3/CPU_SET.3:68
#, no-wrap
msgid "B<int CPU_COUNT_S(size_t >I<setsize>B<, cpu_set_t *>I<set>B<);>\n"
msgstr "B<int CPU_COUNT_S(size_t >I<setsize>B<, cpu_set_t *>I<set>B<);>\n"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:73
+#: build/C/man3/CPU_SET.3:75
#, no-wrap
msgid ""
"B<void CPU_AND_S(size_t >I<setsize>B<, cpu_set_t *>I<destset>B<,>\n"
"B< cpu_set_t *>I<srcset1>B<, cpu_set_t *>I<srcset2>B<);>\n"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:76
+#: build/C/man3/CPU_SET.3:78
#, no-wrap
msgid "B<int CPU_EQUAL_S(size_t >I<setsize>B<, cpu_set_t *>I<set1>B<, cpu_set_t *>I<set2>B<);>\n"
msgstr "B<int CPU_EQUAL_S(size_t >I<setsize>B<, cpu_set_t *>I<set1>B<, cpu_set_t *>I<set2>B<);>\n"
#. type: SH
-#: build/C/man3/CPU_SET.3:77 build/C/man2/clone.2:58
-#: build/C/man2/sched_get_priority_max.2:39 build/C/man3/sched_getcpu.3:35
-#: build/C/man2/sched_rr_get_interval.2:37 build/C/man2/sched_setaffinity.2:50
-#: build/C/man2/sched_setparam.2:48 build/C/man2/sched_setscheduler.2:67
-#: build/C/man2/sched_yield.2:37 build/C/man2/setns.2:14
-#: build/C/man2/unshare.2:29
+#: build/C/man3/CPU_SET.3:79 build/C/man2/clone.2:86 build/C/man2/kcmp.2:41
+#: build/C/man2/sched_get_priority_max.2:38 build/C/man3/sched_getcpu.3:55
+#: build/C/man2/sched_rr_get_interval.2:36 build/C/man2/sched_setaffinity.2:49
+#: build/C/man2/sched_setparam.2:47 build/C/man2/sched_setscheduler.2:41
+#: build/C/man2/sched_yield.2:36 build/C/man2/setns.2:18
+#: build/C/man2/unshare.2:50
#, no-wrap
msgid "DESCRIPTION"
msgstr "説明"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:84
+#: build/C/man3/CPU_SET.3:86
msgid ""
"The I<cpu_set_t> data structure represents a set of CPUs. CPU sets are used "
"by B<sched_setaffinity>(2) and similar interfaces."
msgstr ""
-"The I<cpu_set_t> data structure represents a set of CPUs. CPU sets are used "
-"by B<sched_setaffinity>(2) and similar interfaces."
+"I<cpu_set_t> データ構造体は CPU 集合を表現している。 CPU 集合は "
+"B<sched_setaffinity>(2) や同様のインタフェースで使用されている。"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:91
+#: build/C/man3/CPU_SET.3:93
msgid ""
-"The I<cpu_set_t> data type is implemented as a bitset. However, the data "
+"The I<cpu_set_t> data type is implemented as a bit set. However, the data "
"structure treated as considered opaque: all manipulation of CPU sets should "
"be done via the macros described in this page."
msgstr ""
-"The I<cpu_set_t> data type is implemented as a bitset. However, the data "
-"structure treated as considered opaque: all manipulation of CPU sets should "
-"be done via the macros described in this page."
+"I<cpu_set_t> データ型はビット集合として実装されている。 しかし、 データ構造体"
+"はその実装を意識せずに扱うものとされており、 CPU 集合のすべての操作は、 この"
+"ページで説明されているマクロを通して行うべきである。"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:94
+#: build/C/man3/CPU_SET.3:96
msgid "The following macros are provided to operate on the CPU set I<set>:"
-msgstr "The following macros are provided to operate on the CPU set I<set>:"
+msgstr "以下のマクロが CPU 集合 I<set> を操作するために提供されている。"
#. type: TP
-#: build/C/man3/CPU_SET.3:94
+#: build/C/man3/CPU_SET.3:96
#, no-wrap
msgid "B<CPU_ZERO>()"
msgstr "B<CPU_ZERO>()"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:99
+#: build/C/man3/CPU_SET.3:101
msgid "Clears I<set>, so that it contains no CPUs."
-msgstr "Clears I<set>, so that it contains no CPUs."
+msgstr "I<set> をクリアする。 集合には何も CPU が含まれない状態となる。"
#. type: TP
-#: build/C/man3/CPU_SET.3:99
+#: build/C/man3/CPU_SET.3:101
#, no-wrap
msgid "B<CPU_SET>()"
msgstr "B<CPU_SET>()"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:105
+#: build/C/man3/CPU_SET.3:107
msgid "Add CPU I<cpu> to I<set>."
-msgstr "Add CPU I<cpu> to I<set>."
+msgstr "I<set> に I<cpu> を追加する。"
#. type: TP
-#: build/C/man3/CPU_SET.3:105
+#: build/C/man3/CPU_SET.3:107
#, no-wrap
msgid "B<CPU_CLR>()"
msgstr "B<CPU_CLR>()"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:111
+#: build/C/man3/CPU_SET.3:113
msgid "Remove CPU I<cpu> from I<set>."
-msgstr "Remove CPU I<cpu> from I<set>."
+msgstr "I<set> から I<cpu> を削除する。"
#. type: TP
-#: build/C/man3/CPU_SET.3:111
+#: build/C/man3/CPU_SET.3:113
#, no-wrap
msgid "B<CPU_ISSET>()"
msgstr "B<CPU_ISSET>()"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:117
+#: build/C/man3/CPU_SET.3:119
msgid "Test to see if CPU I<cpu> is a member of I<set>."
-msgstr "Test to see if CPU I<cpu> is a member of I<set>."
+msgstr "CPU I<cpu> が I<set> のメンバーであるかを検査する。"
#. type: TP
-#: build/C/man3/CPU_SET.3:117
+#: build/C/man3/CPU_SET.3:119
#, no-wrap
msgid "B<CPU_COUNT>()"
msgstr "B<CPU_COUNT>()"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:121
+#: build/C/man3/CPU_SET.3:123
msgid "Return the number of CPUs in I<set>."
-msgstr "Return the number of CPUs in I<set>."
+msgstr "I<set> に含まれる CPU 数を返す。"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:126
+#: build/C/man3/CPU_SET.3:128
msgid ""
"Where a I<cpu> argument is specified, it should not produce side effects, "
"since the above macros may evaluate the argument more than once."
msgstr ""
-"Where a I<cpu> argument is specified, it should not produce side effects, "
-"since the above macros may evaluate the argument more than once."
+"I<cpu> 引き数が指定する場合、 その引き数は副作用を伴うべきではない。 上記のマ"
+"クロは引き数を複数回評価する可能性があるからである。"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:137
+#: build/C/man3/CPU_SET.3:139
msgid ""
"The first available CPU on the system corresponds to a I<cpu> value of 0, "
"the next CPU corresponds to a I<cpu> value of 1, and so on. The constant "
"B<CPU_SETSIZE> (currently 1024) specifies a value one greater than the "
"maximum CPU number that can be stored in I<cpu_set_t>."
msgstr ""
-"The first available CPU on the system corresponds to a I<cpu> value of 0, "
-"the next CPU corresponds to a I<cpu> value of 1, and so on. The constant "
-"B<CPU_SETSIZE> (currently 1024) specifies a value one greater than the "
-"maximum CPU number that can be stored in I<cpu_set_t>."
+"そのシステムで利用可能な最初の CPU が I<cpu> 値 0 に対応し、 次の CPU が "
+"I<cpu> 値 1 に対応し、 以降も同様である。 定数 B<CPU_SETSIZE> (現在のところ "
+"1024) は I<cpu_set_t> に格納できる最大 CPU 数よりも大きな値である。"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:139
+#: build/C/man3/CPU_SET.3:141
msgid "The following macros perform logical operations on CPU sets:"
-msgstr "The following macros perform logical operations on CPU sets:"
+msgstr "以下のマクロは CPU 集合どうしの論理操作を行う。"
#. type: TP
-#: build/C/man3/CPU_SET.3:139
+#: build/C/man3/CPU_SET.3:141
#, no-wrap
msgid "B<CPU_AND>()"
msgstr "B<CPU_AND>()"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:148
+#: build/C/man3/CPU_SET.3:150
msgid ""
"Store the intersection of the sets I<srcset1> and I<srcset2> in I<destset> "
"(which may be one of the source sets)."
msgstr ""
-"Store the intersection of the sets I<srcset1> and I<srcset2> in I<destset> "
-"(which may be one of the source sets)."
+"集合 I<srcset1> と I<srcset2> の積集合を I<destset> に格納する (元の集合のい"
+"ずれかが I<destset> として使用される場合もある)。"
#. type: TP
-#: build/C/man3/CPU_SET.3:148
+#: build/C/man3/CPU_SET.3:150
#, no-wrap
msgid "B<CPU_OR>()"
msgstr "B<CPU_OR>()"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:157
+#: build/C/man3/CPU_SET.3:159
msgid ""
"Store the union of the sets I<srcset1> and I<srcset2> in I<destset> (which "
"may be one of the source sets)."
msgstr ""
-"Store the union of the sets I<srcset1> and I<srcset2> in I<destset> (which "
-"may be one of the source sets)."
+"集合 I<srcset1> と I<srcset2> の和集合を I<destset> に格納する (元の集合のい"
+"ずれかが I<destset> として使用される場合もある)。"
#. type: TP
-#: build/C/man3/CPU_SET.3:157
+#: build/C/man3/CPU_SET.3:159
#, no-wrap
msgid "B<CPU_XOR>()"
msgstr "B<CPU_XOR>()"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:171
+#: build/C/man3/CPU_SET.3:173
msgid ""
"Store the XOR of the sets I<srcset1> and I<srcset2> in I<destset> (which may "
"be one of the source sets). The XOR means the set of CPUs that are in "
"either I<srcset1> or I<srcset2>, but not both."
msgstr ""
-"Store the XOR of the sets I<srcset1> and I<srcset2> in I<destset> (which may "
-"be one of the source sets). The XOR means the set of CPUs that are in "
-"either I<srcset1> or I<srcset2>, but not both."
+"集合 I<srcset1> と I<srcset2> の XOR を I<destset> に格納する (元の集合のいず"
+"れかが I<destset> として使用される場合もある)。 XOR とは、 I<srcset1> か "
+"I<srcset2> のいずれかに含まれるが、両方には含まれない集合のことである。"
#. type: TP
-#: build/C/man3/CPU_SET.3:171
+#: build/C/man3/CPU_SET.3:173
#, no-wrap
msgid "B<CPU_EQUAL>()"
msgstr "B<CPU_EQUAL>()"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:174
+#: build/C/man3/CPU_SET.3:176
msgid "Test whether two CPU set contain exactly the same CPUs."
-msgstr "Test whether two CPU set contain exactly the same CPUs."
+msgstr "二つの CPU 集合が全く同じ CPU を含んでいるかを検査する。"
#. type: SS
-#: build/C/man3/CPU_SET.3:174
+#: build/C/man3/CPU_SET.3:176
#, no-wrap
msgid "Dynamically sized CPU sets"
-msgstr "Dynamically sized CPU sets"
+msgstr "動的に大きさが決まる CPU 集合"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:180
+#: build/C/man3/CPU_SET.3:182
msgid ""
"Because some applications may require the ability to dynamically size CPU "
"sets (e.g., to allocate sets larger than that defined by the standard "
"I<cpu_set_t> data type), glibc nowadays provides a set of macros to support "
"this."
msgstr ""
-"Because some applications may require the ability to dynamically size CPU "
-"sets (e.g., to allocate sets larger than that defined by the standard "
-"I<cpu_set_t> data type), glibc nowadays provides a set of macros to support "
-"this."
+"いくつかのアプリケーションでは CPU 集合の大きさを動的に決める能力 (例えば、 "
+"標準の I<cpu_set_t> データ型で定義されたよりも大きい集合を割り当てるなど) が"
+"必要となることがあるため、 現在 glibc はこれに対応するためにいくつかのマクロ"
+"を提供している。"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:182
+#: build/C/man3/CPU_SET.3:184
msgid "The following macros are used to allocate and deallocate CPU sets:"
-msgstr "The following macros are used to allocate and deallocate CPU sets:"
+msgstr "以下のマクロを使うと CPU 集合の割り当てと解放ができる。"
#. type: TP
-#: build/C/man3/CPU_SET.3:182
+#: build/C/man3/CPU_SET.3:184
#, no-wrap
msgid "B<CPU_ALLOC>()"
msgstr "B<CPU_ALLOC>()"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:187
+#: build/C/man3/CPU_SET.3:189
msgid ""
"Allocate a CPU set large enough to hold CPUs in the range 0 to I<num_cpus-1>."
msgstr ""
-"Allocate a CPU set large enough to hold CPUs in the range 0 to I<num_cpus-1>."
+"0 から I<num_cpus-1> までの範囲の CPU を保持するのに十分な大きさの CPU 集合を"
+"割り当てる。"
#. type: TP
-#: build/C/man3/CPU_SET.3:187
+#: build/C/man3/CPU_SET.3:189
#, no-wrap
msgid "B<CPU_ALLOC_SIZE>()"
msgstr "B<CPU_ALLOC_SIZE>()"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:197
+#: build/C/man3/CPU_SET.3:199
msgid ""
"Return the size in bytes of the CPU set that would be needed to hold CPUs in "
"the range 0 to I<num_cpus-1>. This macro provides the value that can be "
"used for the I<setsize> argument in the B<CPU_*_S>() macros described below."
msgstr ""
-"Return the size in bytes of the CPU set that would be needed to hold CPUs in "
-"the range 0 to I<num_cpus-1>. This macro provides the value that can be "
-"used for the I<setsize> argument in the B<CPU_*_S>() macros described below."
+"0 から I<num_cpus-1> までの範囲の CPU を保持するのに必要な CPU 集合の大きさを"
+"バイト数で返す。 このマクロが返す値は、 後述の B<CPU_*_S>() マクロの "
+"I<setsize> 引き数として使用できる。"
#. type: TP
-#: build/C/man3/CPU_SET.3:197
+#: build/C/man3/CPU_SET.3:199
#, no-wrap
msgid "B<CPU_FREE>()"
msgstr "B<CPU_FREE>()"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:201
+#: build/C/man3/CPU_SET.3:203
msgid "Free a CPU set previously allocated by B<CPU_ALLOC>()."
-msgstr "Free a CPU set previously allocated by B<CPU_ALLOC>()."
+msgstr "以前に B<CPU_ALLOC>() で割り当てられた CPU 集合を解放する。"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:208
+#: build/C/man3/CPU_SET.3:210
msgid ""
"The macros whose names end with \"_S\" are the analogs of the similarly "
"named macros without the suffix. These macros perform the same tasks as "
"their analogs, but operate on the dynamically allocated CPU set(s) whose "
"size is I<setsize> bytes."
msgstr ""
-"The macros whose names end with \"_S\" are the analogs of the similarly "
-"named macros without the suffix. These macros perform the same tasks as "
-"their analogs, but operate on the dynamically allocated CPU set(s) whose "
-"size is I<setsize> bytes."
+"名前が \"_S\" で終わるマクロは \"_S\" なしの同じ名前のマクロと同等である。 こ"
+"れらのマクロは \"_S\" なしのものと同じ動作をするが、 動的に割り当てられた、 "
+"大きさが I<setsize> バイトの CPU 集合に対して操作を行う点が異なる。"
#. type: SH
-#: build/C/man3/CPU_SET.3:208 build/C/man2/clone.2:792
-#: build/C/man2/sched_get_priority_max.2:87 build/C/man3/sched_getcpu.3:38
-#: build/C/man2/sched_rr_get_interval.2:74
-#: build/C/man2/sched_setaffinity.2:108 build/C/man2/sched_setparam.2:88
-#: build/C/man2/sched_setscheduler.2:423 build/C/man2/sched_yield.2:42
-#: build/C/man2/setns.2:66 build/C/man2/unshare.2:183
+#: build/C/man3/CPU_SET.3:210 build/C/man2/clone.2:878 build/C/man2/kcmp.2:127
+#: build/C/man2/sched_get_priority_max.2:97 build/C/man3/sched_getcpu.3:58
+#: build/C/man2/sched_rr_get_interval.2:73
+#: build/C/man2/sched_setaffinity.2:107 build/C/man2/sched_setparam.2:87
+#: build/C/man2/sched_setscheduler.2:135 build/C/man2/sched_yield.2:41
+#: build/C/man2/setns.2:70 build/C/man2/unshare.2:207
#, no-wrap
msgid "RETURN VALUE"
msgstr "返り値"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:217
+#: build/C/man3/CPU_SET.3:219
msgid ""
"B<CPU_ISSET>() and B<CPU_ISSET_S>() return nonzero if I<cpu> is in I<set>; "
"otherwise, it returns 0."
msgstr ""
-"B<CPU_ISSET>() and B<CPU_ISSET_S>() return nonzero if I<cpu> is in I<set>; "
-"otherwise, it returns 0."
+"B<CPU_ISSET>() と B<CPU_ISSET_S>() は、 I<cpu> が I<set> に含まれていれば 0 "
+"以外を返し、含まれない場合 0 を返す。"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:223
+#: build/C/man3/CPU_SET.3:225
msgid ""
"B<CPU_COUNT>() and B<CPU_COUNT_S>() return the number of CPUs in I<set>."
-msgstr ""
-"B<CPU_COUNT>() and B<CPU_COUNT_S>() return the number of CPUs in I<set>."
+msgstr "B<CPU_COUNT>() と B<CPU_COUNT_S>() は I<set> に含まれる CPU 数を返す。"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:228
+#: build/C/man3/CPU_SET.3:230
msgid ""
"B<CPU_EQUAL>() and B<CPU_EQUAL_S>() return nonzero if the two CPU sets are "
"equal; otherwise it returns 0."
msgstr ""
-"B<CPU_EQUAL>() and B<CPU_EQUAL_S>() return nonzero if the two CPU sets are "
-"equal; otherwise it returns 0."
+"B<CPU_EQUAL>() と B<CPU_EQUAL_S>() は、 二つの CPU 集合が等しければ 0 以外を"
+"返し、 等しくない場合 0 を返す。"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:233
+#: build/C/man3/CPU_SET.3:235
msgid ""
"B<CPU_ALLOC>() returns a pointer on success, or NULL on failure. (Errors "
"are as for B<malloc>(3).)"
msgstr ""
-"B<CPU_ALLOC>() returns a pointer on success, or NULL on failure. (Errors "
-"are as for B<malloc>(3).)"
+"B<CPU_ALLOC>() は成功するとポインタを返し、 失敗すると NULL を返す (エラーは "
+"B<malloc>(3) と同じである)。"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:237
+#: build/C/man3/CPU_SET.3:239
msgid ""
"B<CPU_ALLOC_SIZE>() returns the number of bytes required to store a CPU set "
"of the specified cardinality."
msgstr ""
-"B<CPU_ALLOC_SIZE>() returns the number of bytes required to store a CPU set "
-"of the specified cardinality."
+"B<CPU_ALLOC_SIZE>() は指定された大きさの CPU 集合を格納するのに必要なバイト数"
+"を返す。"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:239
+#: build/C/man3/CPU_SET.3:241
msgid "The other functions do not return a value."
-msgstr "The other functions do not return a value."
+msgstr "他の関数は値を返さない。"
#. type: SH
-#: build/C/man3/CPU_SET.3:239 build/C/man2/clone.2:909
-#: build/C/man3/sched_getcpu.3:50 build/C/man2/sched_setaffinity.2:149
-#: build/C/man2/setns.2:93 build/C/man2/unshare.2:200
+#: build/C/man3/CPU_SET.3:241 build/C/man2/clone.2:995 build/C/man2/kcmp.2:198
+#: build/C/man3/sched_getcpu.3:70 build/C/man2/sched_setaffinity.2:148
+#: build/C/man2/setns.2:97 build/C/man2/unshare.2:224
#, no-wrap
msgid "VERSIONS"
msgstr "バージョン"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:247
+#: build/C/man3/CPU_SET.3:249
msgid ""
"The B<CPU_ZERO>(), B<CPU_SET>(), B<CPU_CLR>(), and B<CPU_ISSET>() macros "
"were added in glibc 2.3.3."
msgstr ""
-"The B<CPU_ZERO>(), B<CPU_SET>(), B<CPU_CLR>(), and B<CPU_ISSET>() macros "
-"were added in glibc 2.3.3."
+"マクロ B<CPU_ZERO>(), B<CPU_SET>(), B<CPU_CLR>(), B<CPU_ISSET>() は glibc "
+"2.3.3 で追加された。"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:250
+#: build/C/man3/CPU_SET.3:252
msgid "B<CPU_COUNT>() first appeared in glibc 2.6."
-msgstr "B<CPU_COUNT>() first appeared in glibc 2.6."
+msgstr "B<CPU_COUNT>() は glibc 2.6 で初めて登場した。"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:268
+#: build/C/man3/CPU_SET.3:270
msgid ""
"B<CPU_AND>(), B<CPU_OR>(), B<CPU_XOR>(), B<CPU_EQUAL>(), B<CPU_ALLOC>(), "
"B<CPU_ALLOC_SIZE>(), B<CPU_FREE>(), B<CPU_ZERO_S>(), B<CPU_SET_S>(), "
-"B<CPU_CLR_S>(), B<CPU_ISSET_S>(), B<CPU_AND_S>(), B<CPU_OR_S>(), B<CPU_XOR_S>"
-"(), and B<CPU_EQUAL_S>() first appeared in glibc 2.7."
+"B<CPU_CLR_S>(), B<CPU_ISSET_S>(), B<CPU_AND_S>(), B<CPU_OR_S>(), "
+"B<CPU_XOR_S>(), and B<CPU_EQUAL_S>() first appeared in glibc 2.7."
msgstr ""
"B<CPU_AND>(), B<CPU_OR>(), B<CPU_XOR>(), B<CPU_EQUAL>(), B<CPU_ALLOC>(), "
"B<CPU_ALLOC_SIZE>(), B<CPU_FREE>(), B<CPU_ZERO_S>(), B<CPU_SET_S>(), "
-"B<CPU_CLR_S>(), B<CPU_ISSET_S>(), B<CPU_AND_S>(), B<CPU_OR_S>(), B<CPU_XOR_S>"
-"(), and B<CPU_EQUAL_S>() first appeared in glibc 2.7."
+"B<CPU_CLR_S>(), B<CPU_ISSET_S>(), B<CPU_AND_S>(), B<CPU_OR_S>(), "
+"B<CPU_XOR_S>(), B<CPU_EQUAL_S>() は glibc 2.7 で初めて登場した。"
#. type: SH
-#: build/C/man3/CPU_SET.3:268 build/C/man2/clone.2:916
-#: build/C/man2/sched_get_priority_max.2:101 build/C/man3/sched_getcpu.3:52
-#: build/C/man2/sched_rr_get_interval.2:95
-#: build/C/man2/sched_setaffinity.2:160 build/C/man2/sched_setparam.2:111
-#: build/C/man2/sched_setscheduler.2:445 build/C/man2/sched_yield.2:53
-#: build/C/man2/setns.2:97 build/C/man2/unshare.2:204
+#: build/C/man3/CPU_SET.3:270 build/C/man2/clone.2:1002
+#: build/C/man2/kcmp.2:202 build/C/man2/sched_get_priority_max.2:113
+#: build/C/man3/sched_getcpu.3:77 build/C/man2/sched_rr_get_interval.2:94
+#: build/C/man2/sched_setaffinity.2:159 build/C/man2/sched_setparam.2:119
+#: build/C/man2/sched_setscheduler.2:170 build/C/man2/sched_yield.2:52
+#: build/C/man2/setns.2:102 build/C/man2/unshare.2:228
#, no-wrap
msgid "CONFORMING TO"
msgstr "準拠"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:270
+#: build/C/man3/CPU_SET.3:272
msgid "These interfaces are Linux-specific."
-msgstr "These interfaces are Linux-specific."
+msgstr "これらのインタフェースは Linux 固有である。"
#. type: SH
-#: build/C/man3/CPU_SET.3:270 build/C/man2/clone.2:923
-#: build/C/man3/sched_getcpu.3:55 build/C/man2/sched_rr_get_interval.2:97
-#: build/C/man2/sched_setaffinity.2:162 build/C/man2/sched_setscheduler.2:448
-#: build/C/man2/sched_yield.2:55 build/C/man2/setns.2:101
-#: build/C/man2/unshare.2:208
+#: build/C/man3/CPU_SET.3:272 build/C/man2/clone.2:1006
+#: build/C/man2/kcmp.2:205 build/C/man3/sched_getcpu.3:80
+#: build/C/man2/sched_rr_get_interval.2:96
+#: build/C/man2/sched_setaffinity.2:161 build/C/man2/sched_setparam.2:121
+#: build/C/man2/sched_setscheduler.2:173 build/C/man2/sched_yield.2:54
+#: build/C/man2/setns.2:106 build/C/man2/unshare.2:232
#, no-wrap
msgid "NOTES"
msgstr "注意"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:273
+#: build/C/man3/CPU_SET.3:275
msgid "To duplicate a CPU set, use B<memcpy>(3)."
-msgstr "To duplicate a CPU set, use B<memcpy>(3)."
+msgstr "CPU 集合を複製するには、 B<memcpy>(3) を使用する。"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:280
+#: build/C/man3/CPU_SET.3:282
msgid ""
-"Since CPU sets are bitsets allocated in units of long words, the actual "
+"Since CPU sets are bit sets allocated in units of long words, the actual "
"number of CPUs in a dynamically allocated CPU set will be rounded up to the "
"next multiple of I<sizeof(unsigned long)>. An application should consider "
"the contents of these extra bits to be undefined."
msgstr ""
-"Since CPU sets are bitsets allocated in units of long words, the actual "
-"number of CPUs in a dynamically allocated CPU set will be rounded up to the "
-"next multiple of I<sizeof(unsigned long)>. An application should consider "
-"the contents of these extra bits to be undefined."
+"CPU 集合はロングワード単位に割り当てられるビット集合なので、 動的に割り当てら"
+"れた CPU 集合の実際の CPU 数は I<sizeof(unsigned long)> の次の倍数に切り上げ"
+"られることになる。 アプリケーションは、 これらの余分なビットの内容は不定と考"
+"えるべきである。"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:292
+#: build/C/man3/CPU_SET.3:294
msgid ""
"Notwithstanding the similarity in the names, note that the constant "
"B<CPU_SETSIZE> indicates the number of CPUs in the I<cpu_set_t> data type "
-"(thus, it is effectively a count of bits in the bitset), while the "
+"(thus, it is effectively a count of bits in the bit set), while the "
"I<setsize> argument of the B<CPU_*_S>() macros is a size in bytes."
msgstr ""
-"Notwithstanding the similarity in the names, note that the constant "
-"B<CPU_SETSIZE> indicates the number of CPUs in the I<cpu_set_t> data type "
-"(thus, it is effectively a count of bits in the bitset), while the "
-"I<setsize> argument of the B<CPU_*_S>() macros is a size in bytes."
+"名前は似ているが、 定数 B<CPU_SETSIZE> は I<cpu_set_t> データ型に含まれる "
+"CPU 数 (つまり、事実上ビット集合内のビットカウント) を示すのに対して、 マク"
+"ロ B<CPU_*_S>() の I<setsize> 引き数はバイト単位のサイズである点に注意するこ"
+"と。"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:298
+#: build/C/man3/CPU_SET.3:300
msgid ""
"The data types for arguments and return values shown in the SYNOPSIS are "
"hints what about is expected in each case. However, since these interfaces "
"are implemented as macros, the compiler won't necessarily catch all type "
"errors if you violate the suggestions."
msgstr ""
-"The data types for arguments and return values shown in the SYNOPSIS are "
-"hints what about is expected in each case. However, since these interfaces "
-"are implemented as macros, the compiler won't necessarily catch all type "
-"errors if you violate the suggestions."
+"「書式」に書かれている引き数と返り値のデータ型は、それぞれの場合でどんな型が"
+"期待されるかのヒントである。 しかしながら、 これらのインタフェースはマクロと"
+"して実装されているため、 このヒントを守らなかった場合に、 コンパイラが必ずし"
+"も全ての型エラーを捕捉できるとは限らない。"
+
+#. type: SH
+#: build/C/man3/CPU_SET.3:300 build/C/man2/clone.2:1031
+#: build/C/man2/sched_setscheduler.2:214
+#, no-wrap
+msgid "BUGS"
+msgstr "バグ"
+
+#. http://sourceware.org/bugzilla/show_bug.cgi?id=7029
+#. type: Plain text
+#: build/C/man3/CPU_SET.3:312
+msgid ""
+"On 32-bit platforms with glibc 2.8 and earlier, B<CPU_ALLOC>() allocates "
+"twice as much space as is required, and B<CPU_ALLOC_SIZE>() returns a value "
+"twice as large as it should. This bug should not affect the semantics of a "
+"program, but does result in wasted memory and less efficient operation of "
+"the macros that operate on dynamically allocated CPU sets. These bugs are "
+"fixed in glibc 2.9."
+msgstr ""
+"glibc 2.8 以前の 32 ビットプラットフォームでは、 B<CPU_ALLOC>() は必要な空間"
+"の割り当てを二度行い、 B<CPU_ALLOC_SIZE>() は本来あるべき値の二倍の値を返"
+"す。 このバグはプログラムの動作には影響を与えないはずだが、 無駄にメモリを消"
+"費し、 動的に割り当てられた CPU 集合に対して操作を行うマクロの動作の効率が下"
+"がる結果となる。 これらのバグは glibc 2.9 で修正された。"
#. type: SH
-#: build/C/man3/CPU_SET.3:298
+#: build/C/man3/CPU_SET.3:312 build/C/man2/clone.2:1073
+#: build/C/man2/setns.2:112
#, no-wrap
msgid "EXAMPLE"
-msgstr "EXAMPLE"
+msgstr "例"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:301
+#: build/C/man3/CPU_SET.3:315
msgid ""
"The following program demonstrates the use of some of the macros used for "
"dynamically allocated CPU sets."
msgstr ""
-"The following program demonstrates the use of some of the macros used for "
-"dynamically allocated CPU sets."
+"以下のプログラムは、動的に割り当てた CPU 集合に対していくつかのマクロを使用す"
+"る例を示している。"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:309
+#: build/C/man3/CPU_SET.3:323
#, no-wrap
msgid ""
"#define _GNU_SOURCE\n"
"#include E<lt>assert.hE<gt>\n"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:316
+#: build/C/man3/CPU_SET.3:330
#, no-wrap
msgid ""
"int\n"
" int num_cpus, cpu;\n"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:321
+#: build/C/man3/CPU_SET.3:335
#, no-wrap
msgid ""
" if (argc E<lt> 2) {\n"
" }\n"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:323
+#: build/C/man3/CPU_SET.3:337
#, no-wrap
msgid " num_cpus = atoi(argv[1]);\n"
msgstr " num_cpus = atoi(argv[1]);\n"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:329
+#: build/C/man3/CPU_SET.3:343
#, no-wrap
msgid ""
" cpusetp = CPU_ALLOC(num_cpus);\n"
" }\n"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:331
+#: build/C/man3/CPU_SET.3:345
#, no-wrap
msgid " size = CPU_ALLOC_SIZE(num_cpus);\n"
msgstr " size = CPU_ALLOC_SIZE(num_cpus);\n"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:335
+#: build/C/man3/CPU_SET.3:349
#, no-wrap
msgid ""
" CPU_ZERO_S(size, cpusetp);\n"
" CPU_SET_S(cpu, size, cpusetp);\n"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:337
+#: build/C/man3/CPU_SET.3:351
#, no-wrap
msgid " printf(\"CPU_COUNT() of set: %d\\en\", CPU_COUNT_S(size, cpusetp));\n"
msgstr " printf(\"CPU_COUNT() of set: %d\\en\", CPU_COUNT_S(size, cpusetp));\n"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:341
+#: build/C/man3/CPU_SET.3:355
#, no-wrap
msgid ""
" CPU_FREE(cpusetp);\n"
"}\n"
#. type: SH
-#: build/C/man3/CPU_SET.3:342 build/C/man2/clone.2:970
-#: build/C/man2/sched_setscheduler.2:509 build/C/man2/setns.2:107
-#, no-wrap
-msgid "BUGS"
-msgstr "バグ"
-
-#. http://sourceware.org/bugzilla/show_bug.cgi?id=7029
-#. type: Plain text
-#: build/C/man3/CPU_SET.3:354
-msgid ""
-"On 32-bit platforms with glibc 2.8 and earlier, B<CPU_ALLOC>() allocates "
-"twice as much space as is required, and B<CPU_ALLOC_SIZE>() returns a value "
-"twice as large as it should. This bug should not affect the semantics of a "
-"program, but does result in wasted memory and less efficient operation of "
-"the macros that operate on dynamically allocated CPU sets. These bugs are "
-"fixed in glibc 2.9."
-msgstr ""
-"On 32-bit platforms with glibc 2.8 and earlier, B<CPU_ALLOC>() allocates "
-"twice as much space as is required, and B<CPU_ALLOC_SIZE>() returns a value "
-"twice as large as it should. This bug should not affect the semantics of a "
-"program, but does result in wasted memory and less efficient operation of "
-"the macros that operate on dynamically allocated CPU sets. These bugs are "
-"fixed in glibc 2.9."
-
-#. type: SH
-#: build/C/man3/CPU_SET.3:354 build/C/man2/clone.2:1012
-#: build/C/man2/sched_get_priority_max.2:103 build/C/man3/sched_getcpu.3:75
-#: build/C/man2/sched_rr_get_interval.2:126
-#: build/C/man2/sched_setaffinity.2:215 build/C/man2/sched_setparam.2:113
-#: build/C/man2/sched_setscheduler.2:517 build/C/man2/sched_yield.2:79
-#: build/C/man2/setns.2:115 build/C/man2/unshare.2:244
+#: build/C/man3/CPU_SET.3:356 build/C/man2/clone.2:1170
+#: build/C/man2/kcmp.2:222 build/C/man2/sched_get_priority_max.2:115
+#: build/C/man3/sched_getcpu.3:100 build/C/man2/sched_rr_get_interval.2:132
+#: build/C/man2/sched_setaffinity.2:214 build/C/man2/sched_setparam.2:127
+#: build/C/man2/sched_setscheduler.2:222 build/C/man2/sched_yield.2:79
+#: build/C/man2/setns.2:199 build/C/man2/unshare.2:266
#, no-wrap
msgid "SEE ALSO"
msgstr "関連項目"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:359
+#: build/C/man3/CPU_SET.3:361
msgid ""
"B<sched_setaffinity>(2), B<pthread_attr_setaffinity_np>(3), "
"B<pthread_setaffinity_np>(3), B<cpuset>(7)"
"B<pthread_setaffinity_np>(3), B<cpuset>(7)"
#. type: SH
-#: build/C/man3/CPU_SET.3:359 build/C/man2/clone.2:1024
-#: build/C/man2/sched_get_priority_max.2:113 build/C/man3/sched_getcpu.3:77
-#: build/C/man2/sched_rr_get_interval.2:132
-#: build/C/man2/sched_setaffinity.2:231 build/C/man2/sched_setparam.2:127
-#: build/C/man2/sched_setscheduler.2:542 build/C/man2/sched_yield.2:85
-#: build/C/man2/setns.2:121 build/C/man2/unshare.2:249
+#: build/C/man3/CPU_SET.3:361 build/C/man2/clone.2:1184
+#: build/C/man2/kcmp.2:225 build/C/man2/sched_get_priority_max.2:125
+#: build/C/man3/sched_getcpu.3:103 build/C/man2/sched_rr_get_interval.2:134
+#: build/C/man2/sched_setaffinity.2:234 build/C/man2/sched_setparam.2:142
+#: build/C/man2/sched_setscheduler.2:241 build/C/man2/sched_yield.2:81
+#: build/C/man2/setns.2:205 build/C/man2/unshare.2:275
#, no-wrap
msgid "COLOPHON"
-msgstr ""
+msgstr "この文書について"
#. type: Plain text
-#: build/C/man3/CPU_SET.3:366 build/C/man2/clone.2:1031
-#: build/C/man2/sched_get_priority_max.2:120 build/C/man3/sched_getcpu.3:84
-#: build/C/man2/sched_rr_get_interval.2:139
-#: build/C/man2/sched_setaffinity.2:238 build/C/man2/sched_setparam.2:134
-#: build/C/man2/sched_setscheduler.2:549 build/C/man2/sched_yield.2:92
-#: build/C/man2/setns.2:128 build/C/man2/unshare.2:256
+#: build/C/man3/CPU_SET.3:369 build/C/man2/clone.2:1192
+#: build/C/man2/kcmp.2:233 build/C/man2/sched_get_priority_max.2:133
+#: build/C/man3/sched_getcpu.3:111 build/C/man2/sched_rr_get_interval.2:142
+#: build/C/man2/sched_setaffinity.2:242 build/C/man2/sched_setparam.2:150
+#: build/C/man2/sched_setscheduler.2:249 build/C/man2/sched_yield.2:89
+#: build/C/man2/setns.2:213 build/C/man2/unshare.2:283
msgid ""
-"This page is part of release 3.37 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/."
+"This page is part of release 3.67 of the Linux I<man-pages> project. A "
+"description of the project, information about reporting bugs, and the latest "
+"version of this page, can be found at \\%http://www.kernel.org/doc/man-"
+"pages/."
msgstr ""
+"この man ページは Linux I<man-pages> プロジェクトのリリース 3.67 の一部\n"
+"である。プロジェクトの説明とバグ報告に関する情報は\n"
+"http://www.kernel.org/doc/man-pages/ に書かれている。"
#. type: TH
-#: build/C/man2/clone.2:43
+#: build/C/man2/clone.2:45
#, no-wrap
msgid "CLONE"
msgstr "CLONE"
#. type: TH
-#: build/C/man2/clone.2:43
-#, fuzzy, no-wrap
-#| msgid "2011-10-04"
-msgid "2011-09-08"
-msgstr "2011-10-04"
+#: build/C/man2/clone.2:45
+#, no-wrap
+msgid "2014-02-27"
+msgstr "2014-02-27"
#. type: Plain text
-#: build/C/man2/clone.2:46
+#: build/C/man2/clone.2:48
msgid "clone, __clone2 - create a child process"
msgstr "clone, __clone2 - 子プロセスを作成する"
#. type: Plain text
-#: build/C/man2/clone.2:57
+#: build/C/man2/clone.2:51
+#, no-wrap
+msgid "/* Prototype for the glibc wrapper function */\n"
+msgstr "/* glibc ラッパー関数のプロトタイプ */\n"
+
+#. type: Plain text
+#: build/C/man2/clone.2:53 build/C/man3/sched_getcpu.3:32
+#: build/C/man2/sched_setparam.2:36 build/C/man2/sched_setscheduler.2:33
+#: build/C/man2/unshare.2:26
+#, no-wrap
+msgid "B<#include E<lt>sched.hE<gt>>\n"
+msgstr "B<#include E<lt>sched.hE<gt>>\n"
+
+#. type: Plain text
+#: build/C/man2/clone.2:58
#, no-wrap
msgid ""
"B<int clone(int (*>I<fn>B<)(void *), void *>I<child_stack>B<,>\n"
"B< /* pid_t *>I<ptid>B<, struct user_desc *>I<tls>B<, pid_t *>I<ctid>B< */ );>\n"
#. type: Plain text
+#: build/C/man2/clone.2:60
+#, no-wrap
+msgid "/* Prototype for the raw system call */\n"
+msgstr "/* 素のシステムコールのプロトタイプ */\n"
+
+#. type: Plain text
+#: build/C/man2/clone.2:64
+#, no-wrap
+msgid ""
+"B<long clone(unsigned long >I<flags>B<, void *>I<child_stack>B<,>\n"
+"B< void *>I<ptid>B<, void *>I<ctid>B<,>\n"
+"B< struct pt_regs *>I<regs>B<);>\n"
+msgstr ""
+"B<long clone(unsigned long >I<flags>B<, void *>I<child_stack>B<,>\n"
+"B< void *>I<ptid>B<, void *>I<ctid>B<,>\n"
+"B< struct pt_regs *>I<regs>B<);>\n"
+
+#. type: Plain text
#: build/C/man2/clone.2:69
msgid ""
-"B<clone>() creates a new process, in a manner similar to B<fork>(2). It is "
-"actually a library function layered on top of the underlying B<clone>() "
-"system call, hereinafter referred to as B<sys_clone>. A description of "
-"B<sys_clone> is given toward the end of this page."
+"Feature Test Macro Requirements for glibc wrapper function (see "
+"B<feature_test_macros>(7)):"
+msgstr ""
+"glibc ラッパー関数の機能検査マクロの要件 (B<feature_test_macros>(7) 参照):"
+
+#. type: Plain text
+#: build/C/man2/clone.2:72
+msgid "B<clone>():"
+msgstr "B<clone>():"
+
+#. type: TP
+#: build/C/man2/clone.2:75 build/C/man3/sched_getcpu.3:45
+#: build/C/man2/unshare.2:39
+#, no-wrap
+msgid "Since glibc 2.14:"
+msgstr "glibc 2.14 以降:"
+
+#. type: Plain text
+#: build/C/man2/clone.2:78 build/C/man3/sched_getcpu.3:48
+#: build/C/man2/unshare.2:42
+msgid "_GNU_SOURCE"
+msgstr "_GNU_SOURCE"
+
+#. See http://sources.redhat.com/bugzilla/show_bug.cgi?id=4749
+#. type: TP
+#: build/C/man2/clone.2:78 build/C/man3/sched_getcpu.3:48
+#: build/C/man2/unshare.2:42
+#, no-wrap
+msgid "Before glibc 2.14:"
+msgstr "glibc 2.14 より前:"
+
+#. type: Plain text
+#: build/C/man2/clone.2:83 build/C/man3/sched_getcpu.3:52
+#: build/C/man2/unshare.2:47
+#, no-wrap
+msgid ""
+"_BSD_SOURCE || _SVID_SOURCE\n"
+" /* _GNU_SOURCE also suffices */\n"
+msgstr ""
+"_BSD_SOURCE || _SVID_SOURCE\n"
+" /* _GNU_SOURCE も定義される */\n"
+
+#. type: Plain text
+#: build/C/man2/clone.2:90
+msgid "B<clone>() creates a new process, in a manner similar to B<fork>(2)."
+msgstr "B<clone>() は、 B<fork>(2) と似た方法で新しいプロセスを作成する。"
+
+#. type: Plain text
+#: build/C/man2/clone.2:97
+msgid ""
+"This page describes both the glibc B<clone>() wrapper function and the "
+"underlying system call on which it is based. The main text describes the "
+"wrapper function; the differences for the raw system call are described "
+"toward the end of this page."
msgstr ""
-"B<clone>() は B<fork>(2) と同じような方法で新しいプロセスを作成する。 "
-"B<clone>() には、ライブラリ関数とその下層にあたる B<clone>() システムコール"
-"が存在する。以下の説明では、システムコールの方を B<sys_clone> と表すこととす"
-"る。 B<sys_clone> に関する説明はこのマニュアルの最後の方にある。"
+"このページでは、 glibc の B<clone>() ラッパー関数とその裏で呼ばれるシステム"
+"コールの両方について説明している。 メインの説明はラッパー関数に関するものであ"
+"る。 素のシステムコールにおける差分はこのページの最後の方で説明する。"
#. type: Plain text
-#: build/C/man2/clone.2:81
+#: build/C/man2/clone.2:109
msgid ""
-"Unlike B<fork>(2), these calls allow the child process to share parts of its "
-"execution context with the calling process, such as the memory space, the "
-"table of file descriptors, and the table of signal handlers. (Note that on "
-"this manual page, \"calling process\" normally corresponds to \"parent "
+"Unlike B<fork>(2), B<clone>() allows the child process to share parts of "
+"its execution context with the calling process, such as the memory space, "
+"the table of file descriptors, and the table of signal handlers. (Note that "
+"on this manual page, \"calling process\" normally corresponds to \"parent "
"process\". But see the description of B<CLONE_PARENT> below.)"
msgstr ""
-"B<fork>(2) とは異なり、これらのコールでは、子プロセス (child process) と呼"
-"ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81¨ã\81\8cã\80\81ã\83¡ã\83¢ã\83ªç©ºé\96\93ã\80\81 ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81®ã\83\86ã\83¼ã\83\96ã\83«ã\80\81ã\82·ã\82°ã\83\8a"
-"ã\83«ã\83»ã\83\8fã\83³ã\83\89ã\83©ã\81®ã\83\86ã\83¼ã\83\96ã\83«ã\81ªã\81©ã\81® å®\9fè¡\8cã\82³ã\83³ã\83\86ã\82ã\82¹ã\83\88ã\81®ä¸\80é\83¨ã\82\92å\85±æ\9c\89ã\81§ã\81\8dã\82\8bã\80\82 (ã\81\93ã\81®ã\83\9eã\83\8bã\83¥"
-"ã\82¢ã\83«ã\81«ã\81\8aã\81\91ã\82\8bã\80\8cå\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\80\8dã\81¯ã\80\81é\80\9a常ã\81¯ ã\80\8c親ã\83\97ã\83ã\82»ã\82¹ã\80\8dã\81¨ä¸\80è\87´ã\81\99ã\82\8bã\80\82ä½\86"
-"し、後述の B<CLONE_PARENT> の項も参照のこと)"
+"B<fork>(2) とは異なり、B<clone>() では、子プロセス (child process) と呼び出"
+"ã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81¨ã\81\8cã\80\81ã\83¡ã\83¢ã\83ªç©ºé\96\93ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81®ã\83\86ã\83¼ã\83\96ã\83«ã\80\81ã\82·ã\82°ã\83\8aã\83«"
+"ã\83\8fã\83³ã\83\89ã\83©ã\81®ã\83\86ã\83¼ã\83\96ã\83«ã\81ªã\81©ã\81® å®\9fè¡\8cã\82³ã\83³ã\83\86ã\82ã\82¹ã\83\88ã\81®ä¸\80é\83¨ã\82\92å\85±æ\9c\89ã\81§ã\81\8dã\82\8bã\80\82 (ã\81\93ã\81®ã\83\9eã\83\8bã\83¥ã\82¢ã\83«"
+"ã\81«ã\81\8aã\81\91ã\82\8bã\80\8cå\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\80\8dã\81¯ã\80\81é\80\9a常ã\81¯ ã\80\8c親ã\83\97ã\83ã\82»ã\82¹ã\80\8dã\81¨ä¸\80è\87´ã\81\99ã\82\8bã\80\82ä½\86ã\81\97ã\80\81å¾\8c"
+"述の B<CLONE_PARENT> の項も参照のこと)"
#. type: Plain text
-#: build/C/man2/clone.2:86
+#: build/C/man2/clone.2:114
msgid ""
"The main use of B<clone>() is to implement threads: multiple threads of "
"control in a program that run concurrently in a shared memory space."
"ログラムの中の複数のスレッドは共有されたメモリ空間で 同時に実行される。"
#. type: Plain text
-#: build/C/man2/clone.2:107
+#: build/C/man2/clone.2:134
msgid ""
"When the child process is created with B<clone>(), it executes the function "
-"application I<fn>(I<arg>). (This differs from B<fork>(2), where execution "
-"continues in the child from the point of the B<fork>(2) call.) The I<fn> "
-"argument is a pointer to a function that is called by the child process at "
-"the beginning of its execution. The I<arg> argument is passed to the I<fn> "
-"function."
+"I<fn>(I<arg>). (This differs from B<fork>(2), where execution continues in "
+"the child from the point of the B<fork>(2) call.) The I<fn> argument is a "
+"pointer to a function that is called by the child process at the beginning "
+"of its execution. The I<arg> argument is passed to the I<fn> function."
msgstr ""
-"B<clone>() で子プロセスが作成された時に、作成された子プロセスは関数 I<fn>"
-"(I<arg>) を実行する。 (この点が B<fork>(2) とは異なる。 B<fork>(2) の場"
-"å\90\88ã\80\81å\90ã\83\97ã\83ã\82»ã\82¹ã\81¯ B<fork>(2) ã\81\8cå\91¼ã\81³å\87ºã\81\95ã\82\8cã\81\9få ´æ\89\80ã\81\8bã\82\89å®\9fè¡\8cã\82\92ç¶\9aã\81\91ã\82\8bã\80\82) I<fn> å¼\95"
-"き数は、子プロセスが実行を始める時に子プロセスが呼び出す 関数へのポインタであ"
-"る。 I<arg> 引き数はそのまま I<fn> 関数へと渡される。"
+"B<clone>() で子プロセスが作成された時に、作成された子プロセスは関数 "
+"I<fn>(I<arg>) を実行する。 (この点が B<fork>(2) とは異なる。 B<fork>(2) の"
+"å ´å\90\88ã\80\81å\90ã\83\97ã\83ã\82»ã\82¹ã\81¯ B<fork>(2) ã\81\8cå\91¼ã\81³å\87ºã\81\95ã\82\8cã\81\9få ´æ\89\80ã\81\8bã\82\89å®\9fè¡\8cã\82\92ç¶\9aã\81\91ã\82\8bã\80\82) I<fn> "
+"引き数は、子プロセスが実行を始める時に子プロセスが呼び出す 関数へのポインタで"
+"ã\81\82ã\82\8bã\80\82 I<arg> å¼\95ã\81\8dæ\95°ã\81¯ã\81\9dã\81®ã\81¾ã\81¾ I<fn> é\96¢æ\95°ã\81¸ã\81¨æ¸¡ã\81\95ã\82\8cã\82\8bã\80\82"
#. type: Plain text
-#: build/C/man2/clone.2:117
+#: build/C/man2/clone.2:144
msgid ""
"When the I<fn>(I<arg>) function application returns, the child process "
"terminates. The integer returned by I<fn> is the exit code for the child "
-"process. The child process may also terminate explicitly by calling B<exit>"
-"(2) or after receiving a fatal signal."
+"process. The child process may also terminate explicitly by calling "
+"B<exit>(2) or after receiving a fatal signal."
msgstr ""
"I<fn>(I<arg>) 関数が終了すると、子プロセスは終了する。 I<fn> によって返され"
"た整数が子プロセスの終了コードとなる。 子プロセスは、 B<exit>(2) を呼んで明"
"る。"
#. type: Plain text
-#: build/C/man2/clone.2:133
+#: build/C/man2/clone.2:160
msgid ""
"The I<child_stack> argument specifies the location of the stack used by the "
"child process. Since the child and calling process may share memory, it is "
"ために用意したメモリ空間の一番大きい アドレスを指すようにする。"
#. type: Plain text
-#: build/C/man2/clone.2:149
+#: build/C/man2/clone.2:176
msgid ""
"The low byte of I<flags> contains the number of the I<termination signal> "
"sent to the parent when the child dies. If this signal is specified as "
"anything other than B<SIGCHLD>, then the parent process must specify the "
-"B<__WALL> or B<__WCLONE> options when waiting for the child with B<wait>"
-"(2). If no signal is specified, then the parent process is not signaled "
-"when the child terminates."
+"B<__WALL> or B<__WCLONE> options when waiting for the child with "
+"B<wait>(2). If no signal is specified, then the parent process is not "
+"signaled when the child terminates."
msgstr ""
"I<flags> の下位 1 バイトは子プロセスが死んだ場合に親プロセスへと送られる I<終"
"了シグナル (termination signal)> の番号を指定する。このシグナルとして "
"にシグナルは送られない。"
#. type: Plain text
-#: build/C/man2/clone.2:154
+#: build/C/man2/clone.2:181
msgid ""
"I<flags> may also be bitwise-or'ed with zero or more of the following "
"constants, in order to specify what is shared between the calling process "
"何を共有するかを指定する:"
#. type: TP
-#: build/C/man2/clone.2:154
+#: build/C/man2/clone.2:181
#, no-wrap
msgid "B<CLONE_CHILD_CLEARTID> (since Linux 2.5.49)"
msgstr "B<CLONE_CHILD_CLEARTID> (Linux 2.5.49 以降)"
#. type: Plain text
-#: build/C/man2/clone.2:164
+#: build/C/man2/clone.2:191
msgid ""
"Erase child thread ID at location I<ctid> in child memory when the child "
"exits, and do a wakeup on the futex at that address. The address involved "
"この機能はスレッドライブラリで使用される。"
#. type: TP
-#: build/C/man2/clone.2:164
+#: build/C/man2/clone.2:191
#, no-wrap
msgid "B<CLONE_CHILD_SETTID> (since Linux 2.5.49)"
msgstr "B<CLONE_CHILD_SETTID> (Linux 2.5.49 以降)"
#. type: Plain text
-#: build/C/man2/clone.2:169
+#: build/C/man2/clone.2:196
msgid "Store child thread ID at location I<ctid> in child memory."
msgstr ""
"子プロセスのメモリ内の I<ctid> が指す場所に子プロセスのスレッド ID を格納す"
"る。"
#. type: TP
-#: build/C/man2/clone.2:169 build/C/man2/unshare.2:53
+#: build/C/man2/clone.2:196
#, no-wrap
-msgid "B<CLONE_FILES>"
-msgstr "B<CLONE_FILES>"
+msgid "B<CLONE_FILES> (since Linux 2.0)"
+msgstr "B<CLONE_FILES> (Linux 2.0 以降)"
#. type: Plain text
-#: build/C/man2/clone.2:182
+#: build/C/man2/clone.2:209
msgid ""
"If B<CLONE_FILES> is set, the calling process and the child process share "
"the same file descriptor table. Any file descriptor created by the calling "
"もう一方のプロセスにも影響する。"
#. type: Plain text
-#: build/C/man2/clone.2:196
+#: build/C/man2/clone.2:223
msgid ""
"If B<CLONE_FILES> is not set, the child process inherits a copy of all file "
"descriptors opened in the calling process at the time of B<clone>(). (The "
"えない。"
#. type: TP
-#: build/C/man2/clone.2:196 build/C/man2/unshare.2:61
+#: build/C/man2/clone.2:223
#, no-wrap
-msgid "B<CLONE_FS>"
-msgstr "B<CLONE_FS>"
+msgid "B<CLONE_FS> (since Linux 2.0)"
+msgstr "B<CLONE_FS> (Linux 2.0 以降)"
#. type: Plain text
-#: build/C/man2/clone.2:211
+#: build/C/man2/clone.2:238
msgid ""
-"If B<CLONE_FS> is set, the caller and the child process share the same file "
-"system information. This includes the root of the file system, the current "
-"working directory, and the umask. Any call to B<chroot>(2), B<chdir>(2), or "
-"B<umask>(2) performed by the calling process or the child process also "
-"affects the other process."
+"If B<CLONE_FS> is set, the caller and the child process share the same "
+"filesystem information. This includes the root of the filesystem, the "
+"current working directory, and the umask. Any call to B<chroot>(2), "
+"B<chdir>(2), or B<umask>(2) performed by the calling process or the child "
+"process also affects the other process."
msgstr ""
"B<CLONE_FS> が設定された場合、呼び出し元のプロセスと子プロセスが同じファイ"
-"ã\83«ã\83»ã\82·ã\82¹ã\83\86ã\83 æ\83\85å ±ã\82\92å\85±æ\9c\89ã\81\99ã\82\8bã\80\82ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\82·ã\82¹ã\83\86ã\83 æ\83\85å ±ã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83»システムの"
-"ã\83«ã\83¼ã\83\88 (root)ã\80\81 ã\82«ã\83¬ã\83³ã\83\88ã\83»ã\83¯ã\83¼ã\82ã\83³ã\82°ã\83»ディレクトリ (current working "
+"ã\83«ã\82·ã\82¹ã\83\86ã\83 æ\83\85å ±ã\82\92å\85±æ\9c\89ã\81\99ã\82\8bã\80\82ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 æ\83\85å ±ã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«システムの"
+"ã\83«ã\83¼ã\83\88 (root)ã\80\81 ã\82«ã\83¬ã\83³ã\83\88ã\83¯ã\83¼ã\82ã\83³ã\82°ディレクトリ (current working "
"directory) や umask などである。 呼び出し元のプロセスや子プロセスのどちらか"
"一方によって B<chroot>(2), B<chdir>(2), B<umask>(2) が呼び出されると、もう一"
"方のプロセスにも影響が及ぶ。"
#. type: Plain text
-#: build/C/man2/clone.2:223
+#: build/C/man2/clone.2:250
msgid ""
-"If B<CLONE_FS> is not set, the child process works on a copy of the file "
-"system information of the calling process at the time of the B<clone>() "
+"If B<CLONE_FS> is not set, the child process works on a copy of the "
+"filesystem information of the calling process at the time of the B<clone>() "
"call. Calls to B<chroot>(2), B<chdir>(2), B<umask>(2) performed later by "
"one of the processes do not affect the other process."
msgstr ""
"B<CLONE_FS> が設定されていない場合、子プロセスは、 B<clone>() が実行された時"
-"点での、呼び出し元のプロセスのファイル・システム情報のコピーを 使用する。 こ"
-"れ以降は、呼び出し元のプロセスと子プロセスの一方が B<chroot>(2), B<chdir>"
-"(2), B<umask>(2) を呼び出しても、もう一方のプロセスには影響を与えない。"
+"点での、呼び出し元のプロセスのファイルシステム情報のコピーを 使用する。 こ"
+"れ以降は、呼び出し元のプロセスと子プロセスの一方が B<chroot>(2), "
+"B<chdir>(2), B<umask>(2) を呼び出しても、もう一方のプロセスには影響を与えな"
+"い。"
#. type: TP
-#: build/C/man2/clone.2:223
+#: build/C/man2/clone.2:250
#, no-wrap
msgid "B<CLONE_IO> (since Linux 2.6.25)"
msgstr "B<CLONE_IO> (Linux 2.6.25 以降)"
#. type: Plain text
-#: build/C/man2/clone.2:232
+#: build/C/man2/clone.2:259
msgid ""
"If B<CLONE_IO> is set, then the new process shares an I/O context with the "
"calling process. If this flag is not set, then (as with B<fork>(2)) the "
#. the anticipatory and CFQ scheduler
#. with CFQ and AS.
#. type: Plain text
-#: build/C/man2/clone.2:249
+#: build/C/man2/clone.2:276
msgid ""
"The I/O context is the I/O scope of the disk scheduler (i.e, what the I/O "
"scheduler uses to model scheduling of a process's I/O). If processes share "
"B<CLONE_IO> を利用することで I/O 性能を良くすることができる。"
#. type: Plain text
-#: build/C/man2/clone.2:253
+#: build/C/man2/clone.2:280
msgid ""
"If the kernel is not configured with the B<CONFIG_BLOCK> option, this flag "
"is a no-op."
"意味も持たない。"
#. type: TP
-#: build/C/man2/clone.2:253 build/C/man2/unshare.2:74
+#: build/C/man2/clone.2:280 build/C/man2/unshare.2:96
#, no-wrap
msgid "B<CLONE_NEWIPC> (since Linux 2.6.19)"
msgstr "B<CLONE_NEWIPC> (Linux 2.6.19 以降)"
#. type: Plain text
-#: build/C/man2/clone.2:263
+#: build/C/man2/clone.2:290
msgid ""
"If B<CLONE_NEWIPC> is set, then create the process in a new IPC namespace. "
"If this flag is not set, then (as with B<fork>(2)), the process is created "
"び出し元のプロセスと同じ IPC 名前空間でプロセスが 作成される。 このフラグは、"
"コンテナの実装での使用を意図して用意されたものである。"
+#. commit 7eafd7c74c3f2e67c27621b987b28397110d643f
+#. https://lwn.net/Articles/312232/
+#. type: Plain text
+#: build/C/man2/clone.2:302
+msgid ""
+"An IPC namespace provides an isolated view of System\\ V IPC objects (see "
+"B<svipc>(7)) and (since Linux 2.6.30) POSIX message queues (see "
+"B<mq_overview>(7)). The common characteristic of these IPC mechanisms is "
+"that IPC objects are identified by mechanisms other than filesystem "
+"pathnames."
+msgstr "IPC 名前空間は、独立の System\\ V IPC オブジェクト空間 (B<svipc>(7) 参照) を提供する 。 (Linux 2.6.30 以降では) 独立した POSIX メッセージキュー空間 (B<mq_overview>(7) 参照) も提供される。 これらの IPC 機構に共通の特徴として、 IPC オブジェクトはファイルシステムのパス名とは違った仕組みで識別されるという点がある。"
+
#. type: Plain text
-#: build/C/man2/clone.2:274
+#: build/C/man2/clone.2:306
msgid ""
-"An IPC namespace consists of the set of identifiers for System V IPC "
-"objects. (These objects are created using B<msgctl>(2), B<semctl>(2), and "
-"B<shmctl>(2)). Objects created in an IPC namespace are visible to all other "
-"processes that are members of that namespace, but are not visible to "
-"processes in other IPC namespaces."
+"Objects created in an IPC namespace are visible to all other processes that "
+"are members of that namespace, but are not visible to processes in other IPC "
+"namespaces."
msgstr ""
-"IPC 名前空間は、System V IPC オブジェクト用の識別子 (identifiers) の 集合で構"
-"成される (System V IPC オブジェクトは B<msgctl>(2), B<semctl>(2), B<shmctl>"
-"(2) を使って作成される)。 ある IPC 名前空間に作成されたオブジェクトは、 その"
-"名前空間のメンバーである他のすべてのプロセスからも見えるが、 違う IPC 名前空"
-"間のプロセスからは見えない。"
+"ある IPC 名前空間に作成されたオブジェクトは、 その名前空間のメンバーである他"
+"のすべてのプロセスからも見えるが、 違う IPC 名前空間のプロセスからは見えな"
+"い。"
#. type: Plain text
-#: build/C/man2/clone.2:278
+#: build/C/man2/clone.2:310
msgid ""
-"When an IPC namespace is destroyed (i.e, when the last process that is a "
+"When an IPC namespace is destroyed (i.e., when the last process that is a "
"member of the namespace terminates), all IPC objects in the namespace are "
"automatically destroyed."
msgstr ""
"が終了する時)、 その名前空間の全ての IPC オブジェクトは自動的に破棄される。"
#. type: Plain text
-#: build/C/man2/clone.2:287
+#: build/C/man2/clone.2:319
msgid ""
"Use of this flag requires: a kernel configured with the B<CONFIG_SYSVIPC> "
"and B<CONFIG_IPC_NS> options and that the process be privileged "
"うことはできない。"
#. type: TP
-#: build/C/man2/clone.2:287 build/C/man2/unshare.2:91
+#: build/C/man2/clone.2:319 build/C/man2/unshare.2:113
#, no-wrap
msgid "B<CLONE_NEWNET> (since Linux 2.6.24)"
msgstr "B<CLONE_NEWNET> (Linux 2.6.24 以降)"
#. FIXME Check when the implementation was completed
#. type: Plain text
-#: build/C/man2/clone.2:292
+#: build/C/man2/clone.2:324
msgid ""
-"(The implementation of this flag was only completed by about kernel version "
+"(The implementation of this flag was completed only by about kernel version "
"2.6.29.)"
-msgstr "(このフラグの実装は、Linux 2.6.29 あたりまでに完成した。)"
+msgstr "(このフラグの実装は、Linux 2.6.29 あたりまでには完成した。)"
#. type: Plain text
-#: build/C/man2/clone.2:301
+#: build/C/man2/clone.2:333
msgid ""
"If B<CLONE_NEWNET> is set, then create the process in a new network "
"namespace. If this flag is not set, then (as with B<fork>(2)), the process "
"ロセスが 作成される。 このフラグは、コンテナの実装での使用を意図して用意され"
"たものである。"
+#. FIXME Add pointer to veth(4) page when it is eventually completed
#. type: Plain text
-#: build/C/man2/clone.2:315
+#: build/C/man2/clone.2:348
msgid ""
"A network namespace provides an isolated view of the networking stack "
"(network device interfaces, IPv4 and IPv6 protocol stacks, IP routing "
"リッジを作成したり することができる。"
#. type: Plain text
-#: build/C/man2/clone.2:320
+#: build/C/man2/clone.2:353
msgid ""
"When a network namespace is freed (i.e., when the last process in the "
"namespace terminates), its physical network devices are moved back to the "
"はない)。"
#. type: Plain text
-#: build/C/man2/clone.2:325
+#: build/C/man2/clone.2:358
msgid ""
"Use of this flag requires: a kernel configured with the B<CONFIG_NET_NS> "
"option and that the process be privileged (B<CAP_SYS_ADMIN>)."
"ある。"
#. type: TP
-#: build/C/man2/clone.2:325
+#: build/C/man2/clone.2:358
#, no-wrap
msgid "B<CLONE_NEWNS> (since Linux 2.4.19)"
msgstr "B<CLONE_NEWNS> (Linux 2.4.19 以降)"
#. type: Plain text
-#: build/C/man2/clone.2:328
+#: build/C/man2/clone.2:361
msgid "Start the child in a new mount namespace."
msgstr "子プロセスを新しいマウント名前空間 (mount namespace) で開始する。"
#. type: Plain text
-#: build/C/man2/clone.2:349
+#: build/C/man2/clone.2:382
msgid ""
"Every process lives in a mount namespace. The I<namespace> of a process is "
"the data (the set of mounts) describing the file hierarchy as seen by that "
msgstr ""
"各プロセスはある一つのマウント名前空間中に存在する。プロセスの I<名前空間 "
"(namespace)> は、そのプロセスから見えるファイル階層を表すデータ (mount の集"
-"合) である。 B<CLONE_NEWNS> フラグがセットされずに B<fork>(2) か B<clone>"
-"() が呼ばれると、子プロセスは親プロセスと同じマウント名前空間に作成される。 "
-"ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83« B<mount>(2)ã\80\81 B<umount>(2) ã\81\8cå\91¼ã\81°ã\82\8cã\82\8bã\81¨å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹の"
-"ã\83\9eã\82¦ã\83³ã\83\88å\90\8då\89\8d空é\96\93ã\81\8cå¤\89æ\9b´ã\81\95ã\82\8cã\80\81ã\81\93ã\81®çµ\90æ\9e\9c å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81¨å\90\8cã\81\98å\90\8då\89\8d空é\96\93ã\81«ã\81\84ã\82\8b"
-"プロセスはすべて影響を受けるが、 異なるマウント名前空間にいるプロセスは影響を"
-"受けない。"
+"合) である。 B<CLONE_NEWNS> フラグがセットされずに B<fork>(2) か "
+"B<clone>() が呼ばれると、子プロセスは親プロセスと同じマウント名前空間に作成"
+"ã\81\95ã\82\8cã\82\8bã\80\82 ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83« B<mount>(2)ã\80\81 B<umount>(2) ã\81\8cå\91¼ã\81°ã\82\8cã\82\8bã\81¨å\91¼ã\81³å\87ºã\81\97å\85\83の"
+"ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83\9eã\82¦ã\83³ã\83\88å\90\8då\89\8d空é\96\93ã\81\8cå¤\89æ\9b´ã\81\95ã\82\8cã\80\81ã\81\93ã\81®çµ\90æ\9e\9c å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81¨å\90\8cã\81\98å\90\8då\89\8d"
+"空間にいるプロセスはすべて影響を受けるが、 異なるマウント名前空間にいるプロセ"
+"スは影響を受けない。"
#. type: Plain text
-#: build/C/man2/clone.2:356
+#: build/C/man2/clone.2:389
msgid ""
"After a B<clone>() where the B<CLONE_NEWNS> flag is set, the cloned child "
"is started in a new mount namespace, initialized with a copy of the "
"スの名前空間のコピーで初期化される。"
#. type: Plain text
-#: build/C/man2/clone.2:368
+#: build/C/man2/clone.2:401
msgid ""
"Only a privileged process (one having the B<CAP_SYS_ADMIN> capability) may "
"specify the B<CLONE_NEWNS> flag. It is not permitted to specify both "
"で、 B<CLONE_NEWNS> と B<CLONE_FS> の両方を指定することはできない。"
#. type: TP
-#: build/C/man2/clone.2:368
+#: build/C/man2/clone.2:401
#, no-wrap
msgid "B<CLONE_NEWPID> (since Linux 2.6.24)"
msgstr "B<CLONE_NEWPID> (Linux 2.6.24 以降)"
#. The primary kernel commit is 30e49c263e36341b60b735cbef5ca37912549264
#. Author: Pavel Emelyanov <xemul@openvz.org>
#. type: Plain text
-#: build/C/man2/clone.2:385
+#: build/C/man2/clone.2:418
msgid ""
"If B<CLONE_NEWPID> is set, then create the process in a new PID namespace. "
"If this flag is not set, then (as with B<fork>(2)), the process is created "
"装での使用を意図して用意されたものである。"
#. type: Plain text
-#: build/C/man2/clone.2:394
+#: build/C/man2/clone.2:427
msgid ""
"A PID namespace provides an isolated environment for PIDs: PIDs in a new "
-"namespace start at 1, somewhat like a standalone system, and calls to B<fork>"
-"(2), B<vfork>(2), or B<clone>() will produce processes with PIDs that are "
-"unique within the namespace."
+"namespace start at 1, somewhat like a standalone system, and calls to "
+"B<fork>(2), B<vfork>(2), or B<clone>() will produce processes with PIDs "
+"that are unique within the namespace."
msgstr ""
"PID 名前空間は、PID に関して分離された環境を提供するものである。 新しい名前空"
"間における PID は 1 から始まり (これはスタンドアロンのシステムと似たような感"
"な PID を持ったプロセスが作成される。"
#. type: Plain text
-#: build/C/man2/clone.2:406
+#: build/C/man2/clone.2:439
msgid ""
"The first process created in a new namespace (i.e., the process created "
"using the B<CLONE_NEWPID> flag) has the PID 1, and is the \"init\" process "
"了される。"
#. type: Plain text
-#: build/C/man2/clone.2:425
+#: build/C/man2/clone.2:458
msgid ""
"PID namespaces form a hierarchy. When a new PID namespace is created, the "
"processes in that namespace are visible in the PID namespace of the process "
#. mount -t proc proc /proc
#. type: Plain text
-#: build/C/man2/clone.2:441
+#: build/C/man2/clone.2:474
msgid ""
"After creating the new namespace, it is useful for the child to change its "
"root directory and mount a new procfs instance at I</proc> so that tools "
"る。)"
#. type: Plain text
-#: build/C/man2/clone.2:448
+#: build/C/man2/clone.2:481
msgid ""
"Use of this flag requires: a kernel configured with the B<CONFIG_PID_NS> "
"option and that the process be privileged (B<CAP_SYS_ADMIN>). This flag "
"ある。 このフラグは B<CLONE_THREAD> と組み合わせて使うことはできない。"
#. type: TP
-#: build/C/man2/clone.2:448 build/C/man2/unshare.2:140
+#: build/C/man2/clone.2:481 build/C/man2/unshare.2:149
#, no-wrap
msgid "B<CLONE_NEWUTS> (since Linux 2.6.19)"
msgstr "B<CLONE_NEWUTS> (Linux 2.6.19 以降)"
#. type: Plain text
-#: build/C/man2/clone.2:460
+#: build/C/man2/clone.2:493
msgid ""
"If B<CLONE_NEWUTS> is set, then create the process in a new UTS namespace, "
"whose identifiers are initialized by duplicating the identifiers from the "
"る。 このフラグは、コンテナの実装での使用を意図して用意されたものである。"
#. type: Plain text
-#: build/C/man2/clone.2:472
+#: build/C/man2/clone.2:504
msgid ""
"A UTS namespace is the set of identifiers returned by B<uname>(2); among "
-"these, the domain name and the host name can be modified by B<setdomainname>"
-"(2) and B<sethostname>(2), respectively. Changes made to the identifiers "
-"in a UTS namespace are visible to all other processes in the same namespace, "
-"but are not visible to processes in other UTS namespaces."
+"these, the domain name and the hostname can be modified by "
+"B<setdomainname>(2) and B<sethostname>(2), respectively. Changes made to "
+"the identifiers in a UTS namespace are visible to all other processes in the "
+"same namespace, but are not visible to processes in other UTS namespaces."
msgstr ""
"UTS 名前空間は、 B<uname>(2) が返す識別子の集合である。 識別子としてはドメイ"
"ン名とホスト名があり、 それぞれ B<setdomainname>(2), B<sethostname>(2) で修"
"のすべての プロセスに見えるが、別の UTS 名前空間のプロセスには見えない。"
#. type: Plain text
-#: build/C/man2/clone.2:477
+#: build/C/man2/clone.2:509
msgid ""
"Use of this flag requires: a kernel configured with the B<CONFIG_UTS_NS> "
"option and that the process be privileged (B<CAP_SYS_ADMIN>)."
"ある。"
#. type: TP
-#: build/C/man2/clone.2:477
+#: build/C/man2/clone.2:509
#, no-wrap
msgid "B<CLONE_PARENT> (since Linux 2.3.12)"
msgstr "B<CLONE_PARENT> (Linux 2.3.12 以降)"
#. type: Plain text
-#: build/C/man2/clone.2:484
+#: build/C/man2/clone.2:516
msgid ""
"If B<CLONE_PARENT> is set, then the parent of the new child (as returned by "
"B<getppid>(2)) will be the same as that of the calling process."
"プロセスは呼び出し元のプロセスの親プロセスと同じになる。"
#. type: Plain text
-#: build/C/man2/clone.2:490
+#: build/C/man2/clone.2:522
msgid ""
"If B<CLONE_PARENT> is not set, then (as with B<fork>(2)) the child's parent "
"is the calling process."
"プロセスがその子供の親になる。"
#. type: Plain text
-#: build/C/man2/clone.2:498
+#: build/C/man2/clone.2:530
msgid ""
"Note that it is the parent process, as returned by B<getppid>(2), which is "
"signaled when the child terminates, so that if B<CLONE_PARENT> is set, then "
"ロセスではなく呼び出し元のプロセスの 親プロセスにシグナルが送られる。"
#. type: TP
-#: build/C/man2/clone.2:498
+#: build/C/man2/clone.2:530
#, no-wrap
msgid "B<CLONE_PARENT_SETTID> (since Linux 2.5.49)"
msgstr "B<CLONE_PARENT_SETTID> (Linux 2.5.49 以降)"
#. type: Plain text
-#: build/C/man2/clone.2:506
+#: build/C/man2/clone.2:538
msgid ""
"Store child thread ID at location I<ptid> in parent and child memory. (In "
"Linux 2.5.32-2.5.48 there was a flag B<CLONE_SETTID> that did this.)"
"いうフラグが存在した。)"
#. type: TP
-#: build/C/man2/clone.2:506
+#: build/C/man2/clone.2:538
#, no-wrap
msgid "B<CLONE_PID> (obsolete)"
msgstr "B<CLONE_PID> (廃止予定)"
#. type: Plain text
-#: build/C/man2/clone.2:517
+#: build/C/man2/clone.2:549
msgid ""
"If B<CLONE_PID> is set, the child process is created with the same process "
"ID as the calling process. This is good for hacking the system, but "
"0) だけがこのフラグを指定できる。 Linux 2.5.16 で削除された。"
#. type: TP
-#: build/C/man2/clone.2:517
+#: build/C/man2/clone.2:549
#, no-wrap
-msgid "B<CLONE_PTRACE>"
-msgstr "B<CLONE_PTRACE>"
+msgid "B<CLONE_PTRACE> (since Linux 2.2)"
+msgstr "B<CLONE_PTRACE> (Linux 2.2 以降)"
#. type: Plain text
-#: build/C/man2/clone.2:524
+#: build/C/man2/clone.2:556
msgid ""
"If B<CLONE_PTRACE> is specified, and the calling process is being traced, "
"then trace the child also (see B<ptrace>(2))."
"場合、子プロセスも 同様に追跡される。 (B<ptrace>(2) を参照のこと)"
#. type: TP
-#: build/C/man2/clone.2:524
+#: build/C/man2/clone.2:556
#, no-wrap
msgid "B<CLONE_SETTLS> (since Linux 2.5.32)"
msgstr "B<CLONE_SETTLS> (Linux 2.5.32 以降)"
#. type: Plain text
-#: build/C/man2/clone.2:531
+#: build/C/man2/clone.2:563
msgid ""
"The I<newtls> argument is the new TLS (Thread Local Storage) descriptor. "
"(See B<set_thread_area>(2).)"
"(B<set_thread_area>(2) を参照のこと)"
#. type: TP
-#: build/C/man2/clone.2:531
+#: build/C/man2/clone.2:563
#, no-wrap
-msgid "B<CLONE_SIGHAND>"
-msgstr "B<CLONE_SIGHAND>"
+msgid "B<CLONE_SIGHAND> (since Linux 2.0)"
+msgstr "B<CLONE_SIGHAND> (Linux 2.0 以降)"
#. type: Plain text
-#: build/C/man2/clone.2:547
+#: build/C/man2/clone.2:579
msgid ""
"If B<CLONE_SIGHAND> is set, the calling process and the child process share "
"the same table of signal handlers. If the calling process or child process "
"B<sigprocmask>(2) without affecting the other process."
msgstr ""
"B<CLONE_SIGHAND> が設定された場合、呼び出し元のプロセスと子プロセスは同じシグ"
-"ã\83\8aã\83«ã\83»ã\83\8fã\83³ ã\83\89ã\83©ã\81®ã\83\86ã\83¼ã\83\96ã\83«ã\82\92å\85±æ\9c\89ã\81\99ã\82\8bã\80\82å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81¾ã\81\9fã\81¯å\90ã\83\97ã\83ã\82»ã\82¹ã\81®ã\81©"
+"ナルハン ドラのテーブルを共有する。呼び出し元のプロセスまたは子プロセスのど"
"ちらかが B<sigaction>(2) を呼び出してシグナルに対応する動作を変更した場合、 "
"もう一方のプロセスのシグナル動作も変更される。 但し、呼び出し元のプロセスと子"
-"ã\83\97ã\83ã\82»ã\82¹ã\81¯ã\80\81 ã\83\97ã\83ã\82»ã\82¹æ¯\8eã\81«ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83»ã\83\9eã\82¹ã\82¯ (signal mask) ã\81¨å\87¦ç\90\86å¾\85ã\81¡ã\82·ã\82°ã\83\8aã\83«"
+"プロセスは、 プロセス毎に、シグナルマスク (signal mask) と処理待ちシグナル"
"の集合 を持っている。このため、あるプロセスは、 B<sigprocmask>(2) を使用し"
"て、もう一方のプロセスに影響を与えずに シグナルを禁止 (block) したり許可 "
"(unblock) したりできる。"
#. type: Plain text
-#: build/C/man2/clone.2:558
+#: build/C/man2/clone.2:590
msgid ""
"If B<CLONE_SIGHAND> is not set, the child process inherits a copy of the "
"signal handlers of the calling process at the time B<clone>() is called. "
"effect on the other process."
msgstr ""
"B<CLONE_SIGHAND> が設定されていない場合、子プロセスは B<clone>() が実行され"
-"ã\81\9fæ\99\82ç\82¹ã\81§ã\81®ã\80\81å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®ã\82·ã\82°ã\83\8aã\83«ã\83»ã\83\8fã\83³ã\83\89ã\83©ã\81® ã\82³ã\83\94ã\83¼ã\82\92ç¶\99æ\89¿ã\81\99ã\82\8bã\80\82ã\81\93ã\82\8c"
+"た時点での、呼び出し元のプロセスのシグナルハンドラの コピーを継承する。これ"
"以降は、一方のプロセスが B<sigaction>(2) を呼び出しても、もう一方のプロセス"
"には影響を与えない。"
#. type: Plain text
-#: build/C/man2/clone.2:566
+#: build/C/man2/clone.2:598
msgid ""
"Since Linux 2.6.0-test6, I<flags> must also include B<CLONE_VM> if "
"B<CLONE_SIGHAND> is specified"
"も I<flags> に含めなければならない。"
#. type: TP
-#: build/C/man2/clone.2:566
+#: build/C/man2/clone.2:598
#, no-wrap
msgid "B<CLONE_STOPPED> (since Linux 2.6.0-test2)"
msgstr "B<CLONE_STOPPED> (Linux 2.6.0-test2 以降)"
#. type: Plain text
-#: build/C/man2/clone.2:575
+#: build/C/man2/clone.2:607
msgid ""
"If B<CLONE_STOPPED> is set, then the child is initially stopped (as though "
"it was sent a B<SIGSTOP> signal), and must be resumed by sending it a "
#. glibc 2.8 removed this defn from bits/sched.h
#. type: Plain text
-#: build/C/man2/clone.2:583
+#: build/C/man2/clone.2:615
msgid ""
"This flag was I<deprecated> from Linux 2.6.25 onward, and was I<removed> "
"altogether in Linux 2.6.38."
msgstr ""
+"このフラグは Linux 2.6.25 以降ではI<非推奨>であり、\n"
+"Linux 2.6.38 で完全にI<削除>された。"
#. type: TP
-#: build/C/man2/clone.2:583
+#: build/C/man2/clone.2:615
#, no-wrap
msgid "B<CLONE_SYSVSEM> (since Linux 2.5.10)"
msgstr "B<CLONE_SYSVSEM> (Linux 2.5.10 以降)"
#. type: Plain text
-#: build/C/man2/clone.2:592
+#: build/C/man2/clone.2:624
msgid ""
"If B<CLONE_SYSVSEM> is set, then the child and the calling process share a "
-"single list of System V semaphore undo values (see B<semop>(2)). If this "
+"single list of System\\ V semaphore undo values (see B<semop>(2)). If this "
"flag is not set, then the child has a separate undo list, which is initially "
"empty."
-msgstr ""
-"B<CLONE_SYSVSEM> がセットされると、子プロセスと呼び出し元プロセスは一つの "
-"System V セマフォのアンドゥ値リスト (B<semop>(2) 参照) を共有する。このフラ"
-"グがセットされていなければ、 子プロセスは独自のアンドゥリストを持つ (リストの"
-"初期値は空である)。"
+msgstr "B<CLONE_SYSVSEM> がセットされると、子プロセスと呼び出し元プロセスは一つの System\\ V セマフォのアンドゥ値リスト (B<semop>(2) 参照) を共有する。このフラグがセットされていなければ、 子プロセスは独自のアンドゥリストを持つ (リストの初期値は空である)。"
#. type: TP
-#: build/C/man2/clone.2:592
+#: build/C/man2/clone.2:624
#, no-wrap
msgid "B<CLONE_THREAD> (since Linux 2.4.0-test8)"
msgstr "B<CLONE_THREAD> (Linux 2.4.0-test8以降)"
#. type: Plain text
-#: build/C/man2/clone.2:601
+#: build/C/man2/clone.2:633
msgid ""
"If B<CLONE_THREAD> is set, the child is placed in the same thread group as "
"the calling process. To make the remainder of the discussion of "
"processes within a thread group."
msgstr ""
"B<CLONE_THREAD> が設定された場合、子プロセスは呼び出し元のプロセスと同じス"
-"ã\83¬ã\83\83ã\83\89ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\81« ç½®ã\81\8bã\82\8cã\82\8bã\80\82 B<CLONE_THREAD> ã\81«ã\81¤ã\81\84ã\81¦ã\81®ä»¥é\99\8dã\81®è°è«\96ã\82\92èªã\81¿ã\82\84ã\81\99"
-"ã\81\8fã\81\99ã\82\8bã\81\9fã\82\81ã\80\81 ã\80\8cã\82¹ã\83¬ã\83\83ã\83\89ã\80\8dã\81¨ã\81\84ã\81\86ç\94¨èª\9eã\81¯ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\81®ä¸ã\81®ã\83\97ã\83ã\82»ã\82¹ã\82\92 å\8f\82ç\85§"
+"レッドグループに 置かれる。 B<CLONE_THREAD> についての以降の議論を読みやす"
+"くするため、 「スレッド」という用語はスレッドグループの中のプロセスを 参照"
"するのに使うこととする。"
#. type: Plain text
-#: build/C/man2/clone.2:609
+#: build/C/man2/clone.2:641
msgid ""
"Thread groups were a feature added in Linux 2.4 to support the POSIX threads "
"notion of a set of threads that share a single PID. Internally, this shared "
"PID is the so-called thread group identifier (TGID) for the thread group. "
"Since Linux 2.4, calls to B<getpid>(2) return the TGID of the caller."
msgstr ""
-"ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\81¯ã\80\81 ã\82¹ã\83¬ã\83\83ã\83\89é\9b\86å\90\88ã\81§ä¸\80ã\81¤ã\81® PID ã\82\92å\85±æ\9c\89ã\81\99ã\82\8bã\81¨ã\81\84ã\81\86 POSIX ã\82¹ã\83¬ã\83\83"
+"スレッドグループは、 スレッド集合で一つの PID を共有するという POSIX スレッ"
"ドの概念をサポートするために Linux 2.4 に加えられた機能であった。 内部的に"
-"ã\81¯ã\80\81ã\81\93ã\81®å\85±æ\9c\89 PID ã\81¯ã\81\84ã\82\8fã\82\86ã\82\8bã\81\9dã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\82°ã\83«ã\83¼ã\83\97ã\81® ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\82°ã\83«ã\83¼ã\83\97è\98å\88¥å\90 "
+"は、この共有 PID はいわゆるそのスレッドグループの スレッドグループ識別子 "
"(TGID) である。 Linux 2.4 以降では、 B<getpid>(2) の呼び出しではそのプロセス"
-"ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\82°ã\83«ã\83¼ã\83\97 ID ã\82\92è¿\94ã\81\99ã\80\82"
+"のスレッドグループ ID を返す。"
#. type: Plain text
-#: build/C/man2/clone.2:618
+#: build/C/man2/clone.2:650
msgid ""
"The threads within a group can be distinguished by their (system-wide) "
"unique thread IDs (TID). A new thread's TID is available as the function "
"返され、 スレッドは自分自身の TID を B<gettid>(2) で取得できる。"
#. type: Plain text
-#: build/C/man2/clone.2:628
+#: build/C/man2/clone.2:660
msgid ""
"When a call is made to B<clone>() without specifying B<CLONE_THREAD>, then "
"the resulting thread is placed in a new thread group whose TGID is the same "
"as the thread's TID. This thread is the I<leader> of the new thread group."
msgstr ""
"B<CLONE_THREAD> を指定せずに B<clone>() の呼び出しが行われると、 生成された"
-"ã\82¹ã\83¬ã\83\83ã\83\89ã\81¯ã\81\9dã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81® TID ã\81¨å\90\8cã\81\98å\80¤ã\81® TGID ã\82\92æ\8c\81ã\81¤ æ\96°ã\81\97ã\81\84ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\82°ã\83«ã\83¼ã\83\97"
-"ã\81«ç½®ã\81\8bã\82\8cã\82\8bã\80\82ã\81\93ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81¯ æ\96°ã\81\97ã\81\84ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\81®ã\80\8cã\83ªã\83¼ã\83\80ã\83¼ã\80\8dã\81§ã\81\82ã\82\8bã\80\82"
+"スレッドはそのスレッドの TID と同じ値の TGID を持つ 新しいスレッドグループ"
+"に置かれる。このスレッドは 新しいスレッドグループの「リーダー」である。"
#. type: Plain text
-#: build/C/man2/clone.2:650
+#: build/C/man2/clone.2:682
msgid ""
"A new thread created with B<CLONE_THREAD> has the same parent process as the "
"caller of B<clone>() (i.e., like B<CLONE_PARENT>), so that calls to "
msgstr ""
"B<CLONE_THREAD> を指定して作成された新しいスレッドは、 (B<CLONE_PARENT> の場"
"合と同様に) B<clone>() を呼び出し元と同じ親プロセスを持つ。 そのため、 "
-"B<getppid>(2) ã\82\92å\91¼ã\81¶ã\81¨ã\80\81ä¸\80ã\81¤ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\81«å±\9eã\81\99ã\82¹ã\83¬ã\83\83ã\83\89ã\81¯å\85¨ã\81¦å\90\8cã\81\98å\80¤ã\82\92"
+"B<getppid>(2) を呼ぶと、一つのスレッドグループに属すスレッドは全て同じ値を"
"返す。 B<CLONE_THREAD> で作られたスレッドが終了した際に、 そのスレッドを "
"B<clone>() を使って生成したスレッドには B<SIGCHLD> (もしくは他の終了シグナ"
"ル) は送信されない。 また、 B<wait>(2) を使って終了したスレッドの状態を取得"
"る)。"
#. type: Plain text
-#: build/C/man2/clone.2:655
+#: build/C/man2/clone.2:687
msgid ""
"After all of the threads in a thread group terminate the parent process of "
"the thread group is sent a B<SIGCHLD> (or other termination) signal."
msgstr ""
-"ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\81«å±\9eã\81\99å\85¨ã\81¦ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81\8cçµ\82äº\86ã\81\97ã\81\9få¾\8cã\80\81 ã\81\9dã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\83»グループの"
+"ã\82¹ã\83¬ã\83\83ã\83\89ã\82°ã\83«ã\83¼ã\83\97ã\81«å±\9eã\81\99å\85¨ã\81¦ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81\8cçµ\82äº\86ã\81\97ã\81\9få¾\8cã\80\81 ã\81\9dã\81®ã\82¹ã\83¬ã\83\83ã\83\89グループの"
"親プロセスに B<SIGCHLD> (もしくは他の終了シグナル) が送られる。"
#. type: Plain text
-#: build/C/man2/clone.2:660
+#: build/C/man2/clone.2:692
msgid ""
"If any of the threads in a thread group performs an B<execve>(2), then all "
"threads other than the thread group leader are terminated, and the new "
"program is executed in the thread group leader."
msgstr ""
-"ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\81«å±\9eã\81\99ã\81\84ã\81\9aã\82\8cã\81\8bã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81\8c B<execve>(2) ã\82\92å®\9fè¡\8cã\81\99ã\82\8bã\81¨ã\80\81ã\82¹"
-"ã\83¬ã\83\83ã\83\89ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\83»リーダー以外の全てのスレッドは 終了され、新しいプロセスがそ"
-"ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\83»リーダーの下で 実行される。"
+"スレッドグループに属すいずれかのスレッドが B<execve>(2) を実行すると、ス"
+"ã\83¬ã\83\83ã\83\89ã\82°ã\83«ã\83¼ã\83\97リーダー以外の全てのスレッドは 終了され、新しいプロセスがそ"
+"ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\82°ã\83«ã\83¼ã\83\97リーダーの下で 実行される。"
#. type: Plain text
-#: build/C/man2/clone.2:666
+#: build/C/man2/clone.2:698
msgid ""
"If one of the threads in a thread group creates a child using B<fork>(2), "
"then any thread in the group can B<wait>(2) for that child."
msgstr ""
-"ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\81«å±\9eã\81\99ã\82¹ã\83¬ã\83\83ã\83\89ã\81®ä¸\80ã\81¤ã\81\8c B<fork>(2) ã\82\92使ã\81£ã\81¦å\90ã\83\97ã\83ã\82»ã\82¹ã\82\92ä½\9cæ\88\90"
-"ã\81\97ã\81\9få ´å\90\88ã\80\81 ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\81®ã\81©ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81§ã\81\82ã\81£ã\81¦ã\82\82 ã\81\9dã\81®å\90ä¾\9bã\82\92 B<wait>(2) "
+"スレッドグループに属すスレッドの一つが B<fork>(2) を使って子プロセスを作成"
+"した場合、 スレッドグループのどのスレッドであっても その子供を B<wait>(2) "
"できる。"
#. type: Plain text
-#: build/C/man2/clone.2:674
+#: build/C/man2/clone.2:711
msgid ""
"Since Linux 2.5.35, I<flags> must also include B<CLONE_SIGHAND> if "
-"B<CLONE_THREAD> is specified."
+"B<CLONE_THREAD> is specified (and note that, since Linux 2.6.0-test6, "
+"B<CLONE_SIGHAND> also requires B<CLONE_VM> to be included)."
msgstr ""
"Linux 2.5.35 以降では、 B<CLONE_THREAD> を指定する場合、 I<flags> に "
-"B<CLONE_SIGHAND> も含まれていなければならない。"
+"B<CLONE_SIGHAND> も含まれていなければならない (Linux 2.6.0-test6 以降では、 "
+"B<CLONE_SIGHAND> を指定する場合 B<CLONE_VM> も指定する必要がある点に注意する"
+"こと)。"
#. type: Plain text
-#: build/C/man2/clone.2:679
+#: build/C/man2/clone.2:716
msgid ""
-"Signals may be sent to a thread group as a whole (i.e., a TGID) using B<kill>"
-"(2), or to a specific thread (i.e., TID) using B<tgkill>(2)."
+"Signals may be sent to a thread group as a whole (i.e., a TGID) using "
+"B<kill>(2), or to a specific thread (i.e., TID) using B<tgkill>(2)."
msgstr ""
-"B<kill>(2) ã\82\92使ã\81£ã\81¦ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\82°ã\83«ã\83¼ã\83\97å\85¨ä½\93 (ã\81¤ã\81¾ã\82\8a TGID) ã\81«ã\82·ã\82°ã\83\8aã\83«ã\82\92é\80\81ã\82\8bã\81\93ã\81¨"
+"B<kill>(2) を使ってスレッドグループ全体 (つまり TGID) にシグナルを送ること"
"もできれば、 B<tgkill>(2) を使って特定のスレッド (つまり TID) にシグナルを送"
"ることもできる。"
#. type: Plain text
-#: build/C/man2/clone.2:684
+#: build/C/man2/clone.2:721
msgid ""
"Signal dispositions and actions are process-wide: if an unhandled signal is "
"delivered to a thread, then it will affect (terminate, stop, continue, be "
"ignored in) all members of the thread group."
msgstr ""
"シグナルの配送と処理はプロセス全体に影響する: ハンドラを設定していないシグナ"
-"ã\83«ã\81\8cã\81\82ã\82\8bã\82¹ã\83¬ã\83\83ã\83\89ã\81«é\85\8dé\80\81ã\81\95ã\82\8cã\82\8bã\81¨ã\80\81 ã\81\9dã\81®ã\82·ã\82°ã\83\8aã\83«ã\81¯ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\81®å\85¨ã\83¡ã\83³ã\83\90ã\83¼"
+"ルがあるスレッドに配送されると、 そのシグナルはスレッドグループの全メンバー"
"に影響を及ぼす (終了したり、停止したり、動作を継続したり、無視されたりする)。"
#. type: Plain text
-#: build/C/man2/clone.2:697
+#: build/C/man2/clone.2:734
msgid ""
"Each thread has its own signal mask, as set by B<sigprocmask>(2), but "
"signals can be pending either: for the whole process (i.e., deliverable to "
msgstr ""
"各々のスレッドは独自のシグナルマスクを持っており、 B<sigprocmask>(2) で設定"
"できる。 だが、処理待ちのシグナルには、 B<kill>(2) で送信されるプロセス全体"
-"ã\81«å¯¾ã\81\99ã\82\8bã\82\82ã\81® (ã\81¤ã\81¾ã\82\8aã\80\81ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\81® ã\81©ã\81®ã\83¡ã\83³ã\83\90ã\83¼ã\81«ã\82\82é\85\8dé\80\81ã\81§ã\81\8dã\82\8bã\82\82ã\81®) "
+"に対するもの (つまり、スレッドグループの どのメンバーにも配送できるもの) "
"と、 B<tgkill>(2) で送信される個々のスレッドに対するものがありえる。 "
"B<sigpending>(2) を呼び出すと、プロセス全体に対する処理待ちシグナルと呼び出"
"し元の スレッドに対する処理待ちシグナルを結合したシグナル集合が返される。"
#. type: Plain text
-#: build/C/man2/clone.2:709
+#: build/C/man2/clone.2:746
msgid ""
"If B<kill>(2) is used to send a signal to a thread group, and the thread "
"group has installed a handler for the signal, then the handler will be "
"accept the same signal using B<sigwaitinfo>(2), the kernel will arbitrarily "
"select one of these threads to receive a signal sent using B<kill>(2)."
msgstr ""
-"B<kill>(2) ã\82\92使ã\81£ã\81¦ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\81«ã\82·ã\82°ã\83\8aã\83«ã\81\8cé\80\81ã\82\89ã\82\8cã\81\9få ´å\90\88ã\81§ã\80\81 ã\81\9dã\81®ã\82¹ã\83¬ã\83\83"
-"ã\83\89ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\81\8cã\81\9dã\81®ã\82·ã\82°ã\83\8aã\83«ã\81«å¯¾ã\81\99ã\82\8bã\82·ã\82°ã\83\8aã\83«ã\83»ハンドラが 登録されていたときに"
-"ã\81¯ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83»ã\83\8fã\83³ã\83\89ã\83©ã\81¯ã\82¹ã\83¬ã\83\83ã\83\89ã\83»グループの メンバーのうち、ただ一つのスレッ"
+"B<kill>(2) を使ってスレッドグループにシグナルが送られた場合で、 そのスレッ"
+"ã\83\89ã\82°ã\83«ã\83¼ã\83\97ã\81\8cã\81\9dã\81®ã\82·ã\82°ã\83\8aã\83«ã\81«å¯¾ã\81\99ã\82\8bã\82·ã\82°ã\83\8aã\83«ハンドラが 登録されていたときに"
+"ã\81¯ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\81¯ã\82¹ã\83¬ã\83\83ã\83\89グループの メンバーのうち、ただ一つのスレッ"
"ドでだけ起動される。ハンドラが 起動されるスレッドは、そのシグナルを禁止 "
"(block) していない メンバーの中から一つだけが勝手に (arbitrarily) 選ばれる。 "
-"ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\81«å±\9eã\81\99è¤\87æ\95°ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81\8c B<sigwaitinfo>(2) ã\82\92使ã\81£ã\81¦å\90\8cã\81\98ã\82·ã\82°"
+"スレッドグループに属す複数のスレッドが B<sigwaitinfo>(2) を使って同じシグ"
"ナルを待っている場合、 これらのスレッドの中から一つをカーネルが勝手に選択"
"し、 そのスレッドが B<kill (2)> を使って送信されたシグナルを受信する。"
#. type: TP
-#: build/C/man2/clone.2:709
+#: build/C/man2/clone.2:746
#, no-wrap
msgid "B<CLONE_UNTRACED> (since Linux 2.5.46)"
msgstr "B<CLONE_UNTRACED> (Linux 2.5.46 以降)"
#. type: Plain text
-#: build/C/man2/clone.2:716
+#: build/C/man2/clone.2:753
msgid ""
"If B<CLONE_UNTRACED> is specified, then a tracing process cannot force "
"B<CLONE_PTRACE> on this child process."
"スに B<CLONE_PTRACE> を適用することができない。"
#. type: TP
-#: build/C/man2/clone.2:716
+#: build/C/man2/clone.2:753
#, no-wrap
-msgid "B<CLONE_VFORK>"
-msgstr "B<CLONE_VFORK>"
+msgid "B<CLONE_VFORK> (since Linux 2.2)"
+msgstr "B<CLONE_VFORK> (Linux 2.2 以降)"
#. type: Plain text
-#: build/C/man2/clone.2:728
+#: build/C/man2/clone.2:765
msgid ""
"If B<CLONE_VFORK> is set, the execution of the calling process is suspended "
-"until the child releases its virtual memory resources via a call to B<execve>"
-"(2) or B<_exit>(2) (as with B<vfork>(2))."
+"until the child releases its virtual memory resources via a call to "
+"B<execve>(2) or B<_exit>(2) (as with B<vfork>(2))."
msgstr ""
"B<CLONE_VFORK> が設定された場合、 (B<vfork>(2) と同様に) 子プロセスが "
"B<execve>(2) または B<_exit>(2) によって仮想メモリを解放するまで、呼び出し"
"元のプロセスの実行は停止される。"
#. type: Plain text
-#: build/C/man2/clone.2:734
+#: build/C/man2/clone.2:771
msgid ""
-"If B<CLONE_VFORK> is not set then both the calling process and the child are "
-"schedulable after the call, and an application should not rely on execution "
-"occurring in any particular order."
+"If B<CLONE_VFORK> is not set, then both the calling process and the child "
+"are schedulable after the call, and an application should not rely on "
+"execution occurring in any particular order."
msgstr ""
"B<CLONE_VFORK> が設定されていない場合、 B<clone>() 呼び出し後は、呼び出し元"
"のプロセスと子プロセスの 両方がスケジュール対象となり、アプリケーションはこれ"
"らのプロセスの 実行順序に依存しないようにすべきである。"
#. type: TP
-#: build/C/man2/clone.2:734
+#: build/C/man2/clone.2:771
#, no-wrap
-msgid "B<CLONE_VM>"
-msgstr "B<CLONE_VM>"
+msgid "B<CLONE_VM> (since Linux 2.0)"
+msgstr "B<CLONE_VM> (Linux 2.0 以降)"
#. type: Plain text
-#: build/C/man2/clone.2:747
+#: build/C/man2/clone.2:784
msgid ""
"If B<CLONE_VM> is set, the calling process and the child process run in the "
"same memory space. In particular, memory writes performed by the calling "
"プしたりアンマップした場合、 もう一方のプロセスにも影響が及ぶ。"
#. type: Plain text
-#: build/C/man2/clone.2:756
+#: build/C/man2/clone.2:793
msgid ""
"If B<CLONE_VM> is not set, the child process runs in a separate copy of the "
"memory space of the calling process at the time of B<clone>(). Memory "
msgstr ""
"B<CLONE_VM> が設定されていない場合、子プロセスは B<clone>() が実行された時点"
"での、親プロセスのメモリ空間をコピーした 別のメモリ空間で実行される。 一方の"
-"プロセスが行ったメモリへの書き込みや ファイルのマップ/アンマップは、 B<fork>"
-"(2) の場合と同様、もう一方のプロセスには影響しない。"
+"プロセスが行ったメモリへの書き込みや ファイルのマップ/アンマップは、 "
+"B<fork>(2) の場合と同様、もう一方のプロセスには影響しない。"
#. type: SS
-#: build/C/man2/clone.2:756
+#: build/C/man2/clone.2:793
#, no-wrap
-msgid "sys_clone"
-msgstr "sys_clone"
+msgid "The raw system call interface"
+msgstr "素のシステムコールのインターフェース"
#. type: Plain text
-#: build/C/man2/clone.2:773
+#: build/C/man2/clone.2:809
msgid ""
-"The B<sys_clone> system call corresponds more closely to B<fork>(2) in that "
-"execution in the child continues from the point of the call. Thus, "
-"B<sys_clone> only requires the I<flags> and I<child_stack> arguments, which "
-"have the same meaning as for B<clone>(). (Note that the order of these "
-"arguments differs from B<clone>().)"
+"The raw B<clone>() system call corresponds more closely to B<fork>(2) in "
+"that execution in the child continues from the point of the call. As such, "
+"the I<fn> and I<arg> arguments of the B<clone>() wrapper function are "
+"omitted. Furthermore, the argument order changes. The raw system call "
+"interface on x86 and many other architectures is roughly:"
msgstr ""
-"B<sys_clone> システムコールは、より B<fork>(2) に近いかたちになっており、子"
-"プロセスの実行が呼び出しが行われた場所から 続けられる。 そのため、 "
-"B<sys_clone> が必要とする引き数は I<flags> と I<child_stack> だけであり、それ"
-"ã\82\89ã\81¯ B<clone>() ã\81¨å\90\8cã\81\98æ\84\8få\91³ã\82\92æ\8c\81ã\81¤ (ã\81\93ã\82\8cã\82\89ã\81®å¼\95ã\81\8dæ\95°ã\81®é \86ç\95ªã\81¯ B<clone>() ã\81¨ã\81¯ç\95°"
-"ã\81ªã\82\8bã\81\93ã\81¨ã\81«æ³¨æ\84\8fã\81\9bã\82\88)。"
+"素の B<clone> システムコールは、より B<fork>(2) に近いかたちになっており、 子"
+"プロセスの実行が呼び出しが行われた場所から続けられる。 そのため、 B<clone>() "
+"ラッパー関数の引き数 I<fn> と I<arg> は省略される。 また、 引き数の順序も違っ"
+"ã\81¦ã\81\84ã\82\8bã\80\82 x86 ã\81¨ä»\96ã\81®å¤\9aã\81\8fã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\81«ã\81\8aã\81\91ã\82\8bã\80\81 ç´ ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81®ã\82¤ã\83³"
+"ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81¯ã\80\81 ã\81\8aã\81\8aã\81¾ã\81\8bã\81«ã\81¯æ¬¡ã\81®ã\82\88ã\81\86ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8b。"
#. type: Plain text
-#: build/C/man2/clone.2:784
+#: build/C/man2/clone.2:815
+#, no-wrap
+msgid ""
+"B<long clone(unsigned long >I<flags>B<, void *>I<child_stack>B<,>\n"
+"B< void *>I<ptid>B<, void *>I<ctid>B<,>\n"
+"B< struct pt_regs *>I<regs>B<);>\n"
+msgstr ""
+"B<long clone(unsigned long >I<flags>B<, void *>I<child_stack>B<,>\n"
+"B< void *>I<ptid>B<, void *>I<ctid>B<,>\n"
+"B< struct pt_regs *>I<regs>B<);>\n"
+
+#. type: Plain text
+#: build/C/man2/clone.2:826
msgid ""
-"Another difference for B<sys_clone> is that the I<child_stack> argument may "
-"be zero, in which case copy-on-write semantics ensure that the child gets "
-"separate copies of stack pages when either process modifies the stack. In "
-"this case, for correct operation, the B<CLONE_VM> option should not be "
-"specified."
+"Another difference for the raw system call is that the I<child_stack> "
+"argument may be zero, in which case copy-on-write semantics ensure that the "
+"child gets separate copies of stack pages when either process modifies the "
+"stack. In this case, for correct operation, the B<CLONE_VM> option should "
+"not be specified."
msgstr ""
-"B<sys_clone> のもう一つの違いは、 I<child_stack> 引き数がゼロでも良いことであ"
-"ã\82\8bã\80\82ã\81\93ã\81®å ´å\90\88ã\81«ã\81¯ã\80\81ã\81©ã\81¡ã\82\89ã\81\8bã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8c ã\82¹ã\82¿ã\83\83ã\82¯ã\82\92å¤\89æ\9b´ã\81\97ã\81\9fæ\99\82ã\81«ã\80\81æ\9b¸ã\81\8dè¾¼ã\81¿æ\99\82ã\82³"
-"ピー (copy-on-write) 方式により 子プロセスがスタック・ページの独立したコピー"
-"を得られることが保証される。 この場合、正常に動作させるためには、 "
+"生のシステムコールのもう一つの違いは、 I<child_stack> 引き数がゼロでも良いこ"
+"ã\81¨ã\81§ã\81\82ã\82\8bã\80\82ã\81\93ã\81®å ´å\90\88ã\81«ã\81¯ã\80\81ã\81©ã\81¡ã\82\89ã\81\8bã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8c ã\82¹ã\82¿ã\83\83ã\82¯ã\82\92å¤\89æ\9b´ã\81\97ã\81\9fæ\99\82ã\81«ã\80\81æ\9b¸ã\81\8dè¾¼ã\81¿"
+"時コピー (copy-on-write) 方式により 子プロセスがスタックページの独立したコ"
+"ã\83\94ã\83¼ã\82\92å¾\97ã\82\89ã\82\8cã\82\8bã\81\93ã\81¨ã\81\8cä¿\9d証ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\93ã\81®å ´å\90\88ã\80\81æ£å¸¸ã\81«å\8b\95ä½\9cã\81\95ã\81\9bã\82\8bã\81\9fã\82\81ã\81«ã\81¯ã\80\81 "
"B<CLONE_VM> オプションを指定してはならない。"
#. type: Plain text
-#: build/C/man2/clone.2:792
+#: build/C/man2/clone.2:834
+msgid ""
+"For some architectures, the order of the arguments for the system call "
+"differs from that shown above. On the score, microblaze, ARM, ARM 64, PA-"
+"RISC, arc, Power PC, xtensa, and MIPS architectures, the order of the fourth "
+"and fifth arguments is reversed. On the cris and s390 architectures, the "
+"order of the first and second arguments is reversed."
+msgstr ""
+"いくつかのアーキテクチャでは、システムコールの引き数の順序は上記とは異なって"
+"いる。 microblaze, ARM, ARM 64, PA-RISC, arc, Power PC, xtensa, MIPS アーキテ"
+"クチャでは、 4 番目と 5 番目の引き数の順番が逆である。 cris と s390 アーキテ"
+"クチャでは、最初と 2 番目の引き数の順番が逆である。"
+
+#. type: SS
+#: build/C/man2/clone.2:834
+#, no-wrap
+msgid "blackfin, m68k, and sparc"
+msgstr "blackfin, m68k, sparc"
+
+#. type: Plain text
+#: build/C/man2/clone.2:838
+msgid ""
+"The argument-passing conventions on blackfin, m68k, and sparc are different "
+"from the descriptions above. For details, see the kernel (and glibc) source."
+msgstr ""
+"blackfin, m68k, sparc では引き数渡しの規約が上記の説明とは異なる。 詳細は、"
+"カーネル (と glibc) のソースを参照のこと。"
+
+#. type: SS
+#: build/C/man2/clone.2:838
+#, no-wrap
+msgid "ia64"
+msgstr "ia64"
+
+#. type: Plain text
+#: build/C/man2/clone.2:840
+msgid "On ia64, a different interface is used:"
+msgstr "ia64 では、別のインターフェースが使用される:"
+
+#. type: Plain text
+#: build/C/man2/clone.2:847
+#, no-wrap
+msgid ""
+"B<int __clone2(int (*>I<fn>B<)(void *), >\n"
+"B< void *>I<child_stack_base>B<, size_t >I<stack_size>B<,>\n"
+"B< int >I<flags>B<, void *>I<arg>B<, ... >\n"
+"B< /* pid_t *>I<ptid>B<, struct user_desc *>I<tls>B<, pid_t *>I<ctid>B< */ );>\n"
+msgstr ""
+"B<int __clone2(int (*>I<fn>B<)(void *), >\n"
+"B< void *>I<child_stack_base>B<, size_t >I<stack_size>B<,>\n"
+"B< int >I<flags>B<, void *>I<arg>B<, ... >\n"
+"B< /* pid_t *>I<ptid>B<, struct user_desc *>I<tls>B<, pid_t *>I<ctid>B< */ );>\n"
+
+#. type: Plain text
+#: build/C/man2/clone.2:859
+msgid ""
+"The prototype shown above is for the glibc wrapper function; the raw system "
+"call interface has no I<fn> or I<arg> argument, and changes the order of the "
+"arguments so that I<flags> is the first argument, and I<tls> is the last "
+"argument."
+msgstr ""
+"上記のプロトタイプは glibc ラッパー関数用のものである。 素のシステムコールの"
+"インターフェースには引き数 I<fn> と I<arg> がない。 また、引き数の順序が変わ"
+"り、 I<flags> が最初の引き数で、 I<tls> が最後の引き数である。"
+
+#. type: Plain text
+#: build/C/man2/clone.2:870
+msgid ""
+"B<__clone2>() operates in the same way as B<clone>(), except that "
+"I<child_stack_base> points to the lowest address of the child's stack area, "
+"and I<stack_size> specifies the size of the stack pointed to by "
+"I<child_stack_base>."
+msgstr ""
+"B<__clone2>() は B<clone>() と同じように動作するが、以下の点が異なる: "
+"I<child_stack_base> は子プロセスのスタックエリアの最小のアドレスを指し、 "
+"I<stack_size> は I<child_stack_base> が指し示すスタックエリアの大きさを示す。"
+
+#. type: SS
+#: build/C/man2/clone.2:870
+#, no-wrap
+msgid "Linux 2.4 and earlier"
+msgstr "Linux 2.4 以前"
+
+#. type: Plain text
+#: build/C/man2/clone.2:878
msgid ""
"In Linux 2.4 and earlier, B<clone>() does not take arguments I<ptid>, "
"I<tls>, and I<ctid>."
#. gettid(2) returns current->pid;
#. getpid(2) returns current->tgid;
#. type: Plain text
-#: build/C/man2/clone.2:801
+#: build/C/man2/clone.2:887
msgid ""
"On success, the thread ID of the child process is returned in the caller's "
"thread of execution. On failure, -1 is returned in the caller's context, no "
"成されず、 I<errno> が適切に設定される。"
#. type: SH
-#: build/C/man2/clone.2:801 build/C/man2/sched_get_priority_max.2:97
-#: build/C/man3/sched_getcpu.3:45 build/C/man2/sched_rr_get_interval.2:81
-#: build/C/man2/sched_setaffinity.2:117 build/C/man2/sched_setparam.2:97
-#: build/C/man2/sched_setscheduler.2:433 build/C/man2/sched_yield.2:49
-#: build/C/man2/setns.2:73 build/C/man2/unshare.2:188
+#: build/C/man2/clone.2:887 build/C/man2/kcmp.2:170
+#: build/C/man2/sched_get_priority_max.2:107 build/C/man3/sched_getcpu.3:65
+#: build/C/man2/sched_rr_get_interval.2:80
+#: build/C/man2/sched_setaffinity.2:116 build/C/man2/sched_setparam.2:96
+#: build/C/man2/sched_setscheduler.2:145 build/C/man2/sched_yield.2:48
+#: build/C/man2/setns.2:77 build/C/man2/unshare.2:212
#, no-wrap
msgid "ERRORS"
msgstr "エラー"
#. type: TP
-#: build/C/man2/clone.2:802
+#: build/C/man2/clone.2:888
#, no-wrap
msgid "B<EAGAIN>"
msgstr "B<EAGAIN>"
#. type: Plain text
-#: build/C/man2/clone.2:805
+#: build/C/man2/clone.2:891
msgid "Too many processes are already running."
msgstr "すでに実行中のプロセスが多すぎる。"
#. type: TP
-#: build/C/man2/clone.2:805 build/C/man2/clone.2:812 build/C/man2/clone.2:827
-#: build/C/man2/clone.2:835 build/C/man2/clone.2:843 build/C/man2/clone.2:851
-#: build/C/man2/clone.2:857 build/C/man2/clone.2:867 build/C/man2/clone.2:875
-#: build/C/man2/clone.2:883 build/C/man2/sched_get_priority_max.2:98
-#: build/C/man2/sched_rr_get_interval.2:85
-#: build/C/man2/sched_setaffinity.2:121 build/C/man2/sched_setaffinity.2:129
-#: build/C/man2/sched_setparam.2:98 build/C/man2/sched_setscheduler.2:434
-#: build/C/man2/setns.2:78 build/C/man2/unshare.2:189
+#: build/C/man2/clone.2:891 build/C/man2/clone.2:898 build/C/man2/clone.2:913
+#: build/C/man2/clone.2:921 build/C/man2/clone.2:929 build/C/man2/clone.2:937
+#: build/C/man2/clone.2:943 build/C/man2/clone.2:953 build/C/man2/clone.2:961
+#: build/C/man2/clone.2:969 build/C/man2/kcmp.2:181
+#: build/C/man2/sched_get_priority_max.2:108
+#: build/C/man2/sched_rr_get_interval.2:84
+#: build/C/man2/sched_setaffinity.2:120 build/C/man2/sched_setaffinity.2:128
+#: build/C/man2/sched_setparam.2:97 build/C/man2/sched_setparam.2:104
+#: build/C/man2/sched_setscheduler.2:146 build/C/man2/sched_setscheduler.2:153
+#: build/C/man2/sched_setscheduler.2:158 build/C/man2/setns.2:82
+#: build/C/man2/unshare.2:213
#, no-wrap
msgid "B<EINVAL>"
msgstr "B<EINVAL>"
#. type: Plain text
-#: build/C/man2/clone.2:812
+#: build/C/man2/clone.2:898
msgid ""
"B<CLONE_SIGHAND> was specified, but B<CLONE_VM> was not. (Since Linux 2.6.0-"
"test6.)"
#. was specified.
#. (Since Linux 2.6.0-test6.)
#. type: Plain text
-#: build/C/man2/clone.2:827
+#: build/C/man2/clone.2:913
msgid ""
"B<CLONE_THREAD> was specified, but B<CLONE_SIGHAND> was not. (Since Linux "
"2.5.35.)"
"た。 (Linux 2.5.35 以降)"
#. type: Plain text
-#: build/C/man2/clone.2:835
+#: build/C/man2/clone.2:921
msgid "Both B<CLONE_FS> and B<CLONE_NEWNS> were specified in I<flags>."
msgstr "B<CLONE_FS> と B<CLONE_NEWNS> の両方が I<flags> に指定された。"
#. type: Plain text
-#: build/C/man2/clone.2:843
+#: build/C/man2/clone.2:929
msgid "Both B<CLONE_NEWIPC> and B<CLONE_SYSVSEM> were specified in I<flags>."
msgstr "B<CLONE_NEWIPC> と B<CLONE_SYSVSEM> の両方が I<flags> に指定された。"
#. type: Plain text
-#: build/C/man2/clone.2:851
+#: build/C/man2/clone.2:937
msgid "Both B<CLONE_NEWPID> and B<CLONE_THREAD> were specified in I<flags>."
msgstr "B<CLONE_NEWPID> と B<CLONE_THREAD> の両方が I<flags> に指定された。"
#. type: Plain text
-#: build/C/man2/clone.2:857
+#: build/C/man2/clone.2:943
msgid ""
"Returned by B<clone>() when a zero value is specified for I<child_stack>."
msgstr "I<child_stack> にゼロを指定した場合に B<clone>() が返す。"
#. type: Plain text
-#: build/C/man2/clone.2:867
+#: build/C/man2/clone.2:953
msgid ""
"B<CLONE_NEWIPC> was specified in I<flags>, but the kernel was not configured "
"with the B<CONFIG_SYSVIPC> and B<CONFIG_IPC_NS> options."
"B<CONFIG_SYSVIPC> と B<CONFIG_IPC_NS> が有効になっていなかった。"
#. type: Plain text
-#: build/C/man2/clone.2:875
+#: build/C/man2/clone.2:961
msgid ""
"B<CLONE_NEWNET> was specified in I<flags>, but the kernel was not configured "
"with the B<CONFIG_NET_NS> option."
"B<CONFIG_NET_NS> が有効になっていなかった。"
#. type: Plain text
-#: build/C/man2/clone.2:883
+#: build/C/man2/clone.2:969
msgid ""
"B<CLONE_NEWPID> was specified in I<flags>, but the kernel was not configured "
"with the B<CONFIG_PID_NS> option."
"B<CONFIG_PID_NS> が有効になっていなかった。"
#. type: Plain text
-#: build/C/man2/clone.2:891
+#: build/C/man2/clone.2:977
msgid ""
"B<CLONE_NEWUTS> was specified in I<flags>, but the kernel was not configured "
"with the B<CONFIG_UTS> option."
"B<CONFIG_UTS> が有効になっていなかった。"
#. type: TP
-#: build/C/man2/clone.2:891 build/C/man2/setns.2:85 build/C/man2/unshare.2:193
+#: build/C/man2/clone.2:977 build/C/man2/setns.2:89 build/C/man2/unshare.2:217
#, no-wrap
msgid "B<ENOMEM>"
msgstr "B<ENOMEM>"
#. type: Plain text
-#: build/C/man2/clone.2:896
+#: build/C/man2/clone.2:982
msgid ""
"Cannot allocate sufficient memory to allocate a task structure for the "
"child, or to copy those parts of the caller's context that need to be copied."
"コピーするのに必要なメモリを十分に割り当てることができない。"
#. type: TP
-#: build/C/man2/clone.2:896 build/C/man2/clone.2:905
-#: build/C/man2/sched_setaffinity.2:136 build/C/man2/sched_setparam.2:102
-#: build/C/man2/sched_setscheduler.2:439 build/C/man2/setns.2:88
-#: build/C/man2/unshare.2:197
+#: build/C/man2/clone.2:982 build/C/man2/clone.2:991 build/C/man2/kcmp.2:185
+#: build/C/man2/sched_setaffinity.2:135 build/C/man2/sched_setparam.2:109
+#: build/C/man2/sched_setscheduler.2:164 build/C/man2/setns.2:92
+#: build/C/man2/unshare.2:221
#, no-wrap
msgid "B<EPERM>"
msgstr "B<EPERM>"
#. type: Plain text
-#: build/C/man2/clone.2:905
+#: build/C/man2/clone.2:991
msgid ""
"B<CLONE_NEWIPC>, B<CLONE_NEWNET>, B<CLONE_NEWNS>, B<CLONE_NEWPID>, or "
"B<CLONE_NEWUTS> was specified by an unprivileged process (process without "
"た。"
#. type: Plain text
-#: build/C/man2/clone.2:909
+#: build/C/man2/clone.2:995
msgid "B<CLONE_PID> was specified by a process other than process 0."
msgstr "PID が 0 以外のプロセスによって B<CLONE_PID> が指定された。"
#. type: Plain text
-#: build/C/man2/clone.2:916
+#: build/C/man2/clone.2:1002
msgid ""
"There is no entry for B<clone>() in libc5. glibc2 provides B<clone>() as "
"described in this manual page."
"マニュアルページに記載の通りである。"
#. type: Plain text
-#: build/C/man2/clone.2:923
+#: build/C/man2/clone.2:1006
msgid ""
-"The B<clone>() and B<sys_clone> calls are Linux-specific and should not be "
-"used in programs intended to be portable."
+"B<clone>() is Linux-specific and should not be used in programs intended to "
+"be portable."
msgstr ""
-"B<clone>() と B<sys_clone> コールは Linux 特有であり、移植を考慮したプログラ"
-"ã\83 ã\81§ã\81¯ä½¿ç\94¨ã\81\99ã\81¹ã\81\8d ã\81§ã\81¯ã\81ªã\81\84ã\80\82"
+"B<clone>() は Linux 特有であり、移植を考慮したプログラムでは使用すべき ではな"
+"い。"
#. type: Plain text
-#: build/C/man2/clone.2:933
+#: build/C/man2/clone.2:1016
msgid ""
"In the kernel 2.4.x series, B<CLONE_THREAD> generally does not make the "
"parent of the new thread the same as the parent of the calling process. "
"グを指定すると、 暗黙のうちに CLONE_PARENT フラグを指定したことになる。"
#. type: Plain text
-#: build/C/man2/clone.2:943
+#: build/C/man2/clone.2:1026
msgid ""
"For a while there was B<CLONE_DETACHED> (introduced in 2.5.32): parent wants "
"no child-exit signal. In 2.6.2 the need to give this together with "
"要はなくなった。 このフラグはまだ定義されているが、何の効果もない。"
#. type: Plain text
-#: build/C/man2/clone.2:948
+#: build/C/man2/clone.2:1031
msgid ""
"On i386, B<clone>() should not be called through vsyscall, but directly "
"through I<int $0x80>."
"呼び出すべきである。"
#. type: Plain text
-#: build/C/man2/clone.2:950
-msgid "On ia64, a different system call is used:"
-msgstr "ia64 では、別のシステムコールが使用される:"
-
-#. type: Plain text
-#: build/C/man2/clone.2:957
-#, no-wrap
-msgid ""
-"B<int __clone2(int (*>I<fn>B<)(void *), >\n"
-"B< void *>I<child_stack_base>B<, size_t >I<stack_size>B<,>\n"
-"B< int >I<flags>B<, void *>I<arg>B<, ... >\n"
-"B< /* pid_t *>I<ptid>B<, struct user_desc *>I<tls>B<, pid_t *>I<ctid>B< */ );>\n"
-msgstr ""
-"B<int __clone2(int (*>I<fn>B<)(void *), >\n"
-"B< void *>I<child_stack_base>B<, size_t >I<stack_size>B<,>\n"
-"B< int >I<flags>B<, void *>I<arg>B<, ... >\n"
-"B< /* pid_t *>I<ptid>B<, struct user_desc *>I<tls>B<, pid_t *>I<ctid>B< */ );>\n"
-
-#. type: Plain text
-#: build/C/man2/clone.2:970
-msgid ""
-"The B<__clone2>() system call operates in the same way as B<clone>(), "
-"except that I<child_stack_base> points to the lowest address of the child's "
-"stack area, and I<stack_size> specifies the size of the stack pointed to by "
-"I<child_stack_base>."
-msgstr ""
-"B<__clone2>() システムコールは B<clone>() と同じように動作するが、以下の点"
-"が異なる: I<child_stack_base> は子プロセスのスタックエリアの最小のアドレスを"
-"指し、 I<stack_size> は I<child_stack_base> が指し示すスタックエリアの大きさ"
-"を示す。"
-
-#. type: Plain text
-#: build/C/man2/clone.2:1001
+#: build/C/man2/clone.2:1062
msgid ""
"Versions of the GNU C library that include the NPTL threading library "
"contain a wrapper function for B<getpid>(2) that performs caching of PIDs. "
"also does not occur if the I<flags> argument includes B<CLONE_VM>.) To get "
"the truth, it may be necessary to use code such as the following:"
msgstr ""
-"NPTL ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\82\92å\90«ã\82\93ã\81§ã\81\84ã\82\8b GNU C ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81®ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\83\90ã\83¼ã\82¸ã\83§ã\83³ "
+"NPTL スレッドライブラリを含んでいる GNU C ライブラリのいくつかのバージョン "
"には、 B<getpid>(2) のラッパー関数が含まれており、このラッパー関数は PID を"
-"キャッシュする。 このキャッシュ処理が正しく動作するためには glibc の B<clone>"
-"() のラッパー関数での助けが必要だが、現状の実装では、 ある状況下において"
-"ã\82ã\83£ã\83\83ã\82·ã\83¥ã\81\8cæ\9c\80æ\96°ã\81¨ã\81ªã\82\89ã\81ªã\81\84å\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8bã\80\82 ç\89¹ã\81«ã\80\81 B<clone>() ã\81®å\91¼ã\81³å\87ºã\81\97ç\9b´å¾\8cã\81«"
-"シグナルが子プロセスに配送された場合に、 そのシグナルに対するハンドラ内で "
-"B<getpid>(2) を呼び出すと、それまでに clone のラッパー関数が子プロセスの "
+"キャッシュする。 このキャッシュ処理が正しく動作するためには glibc の "
+"B<clone>() のラッパー関数での助けが必要だが、現状の実装では、 ある状況下にお"
+"ã\81\84ã\81¦ã\82ã\83£ã\83\83ã\82·ã\83¥ã\81\8cæ\9c\80æ\96°ã\81¨ã\81ªã\82\89ã\81ªã\81\84å\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8bã\80\82 ç\89¹ã\81«ã\80\81 B<clone>() ã\81®å\91¼ã\81³å\87ºã\81\97ç\9b´"
+"後にシグナルが子プロセスに配送された場合に、 そのシグナルに対するハンドラ内"
+"で B<getpid>(2) を呼び出すと、それまでに clone のラッパー関数が子プロセスの "
"PID キャッシュを 更新する機会が得られていなければ、呼び出し元プロセス (\"親プ"
"ロセス\") の PID が 返される可能性がある。 (この議論では、子プロセスが "
"B<CLONE_THREAD> を使って作成された場合のことは無視している。 子プロセスが "
"B<CLONE_THREAD> を作って作成された場合には、 呼び出し元と子プロセスは同じス"
-"ã\83¬ã\83\83ã\83\89ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\81«å±\9eã\81\99ã\81®ã\81§ã\80\81 B<getpid>(2) ã\81¯å\90ã\83\97ã\83ã\82»ã\82¹ã\81¨ B<clone>() ã\82\92å\91¼ã\81³"
+"レッドグループに属すので、 B<getpid>(2) は子プロセスと B<clone>() を呼び"
"出したプロセスで同じ値を返すのが「正しい」。 キャッシュが最新とならない問題 "
"(stale-cache problem) は、 I<flags> に B<CLONE_VM> が含まれている場合にも発生"
"しない。) 本当の値を得るためには、次のようなコードを使う必要があるかもしれな"
"い。"
#. type: Plain text
-#: build/C/man2/clone.2:1004
+#: build/C/man2/clone.2:1065
#, no-wrap
msgid " #include E<lt>syscall.hE<gt>\n"
msgstr " #include E<lt>syscall.hE<gt>\n"
#. type: Plain text
-#: build/C/man2/clone.2:1006
+#: build/C/man2/clone.2:1067
#, no-wrap
msgid " pid_t mypid;\n"
msgstr " pid_t mypid;\n"
#. type: Plain text
-#: build/C/man2/clone.2:1008
+#: build/C/man2/clone.2:1069
#, no-wrap
msgid " mypid = syscall(SYS_getpid);\n"
msgstr " mypid = syscall(SYS_getpid);\n"
#. type: Plain text
-#: build/C/man2/clone.2:1024
+#: build/C/man2/clone.2:1083
+msgid ""
+"The following program demonstrates the use of B<clone>() to create a child "
+"process that executes in a separate UTS namespace. The child changes the "
+"hostname in its UTS namespace. Both parent and child then display the "
+"system hostname, making it possible to see that the hostname differs in the "
+"UTS namespaces of the parent and child. For an example of the use of this "
+"program, see B<setns>(2)."
+msgstr ""
+"以下のプログラムは、 別の UTS 名前空間で動作する子プロセスを B<clone>() を"
+"使って作成する例である。 子プロセスは、自分の UTS 名前空間においてホスト名を"
+"変更する。 それから、親プロセスと子プロセスの両方でシステムのホスト名を表示"
+"し、 親プロセスと子プロセスの UTS 名前空間でホスト名が異なることを確認する。 "
+"このプログラムの使用方法については B<setns>(2) を参照。"
+
+#. type: SS
+#: build/C/man2/clone.2:1083 build/C/man2/setns.2:166
+#, no-wrap
+msgid "Program source"
+msgstr "プログラムのソース"
+
+#. type: Plain text
+#: build/C/man2/clone.2:1093
+#, no-wrap
+msgid ""
+"#define _GNU_SOURCE\n"
+"#include E<lt>sys/wait.hE<gt>\n"
+"#include E<lt>sys/utsname.hE<gt>\n"
+"#include E<lt>sched.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+msgstr ""
+"#define _GNU_SOURCE\n"
+"#include E<lt>sys/wait.hE<gt>\n"
+"#include E<lt>sys/utsname.hE<gt>\n"
+"#include E<lt>sched.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+
+#. type: Plain text
+#: build/C/man2/clone.2:1096 build/C/man2/setns.2:177
+#, no-wrap
+msgid ""
+"#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \\e\n"
+" } while (0)\n"
+msgstr ""
+"#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \\e\n"
+" } while (0)\n"
+
+#. type: Plain text
+#: build/C/man2/clone.2:1101
+#, no-wrap
+msgid ""
+"static int /* Start function for cloned child */\n"
+"childFunc(void *arg)\n"
+"{\n"
+" struct utsname uts;\n"
+msgstr ""
+"static int /* clone された子プロセスの開始関数 */\n"
+"childFunc(void *arg)\n"
+"{\n"
+" struct utsname uts;\n"
+
+#. type: Plain text
+#: build/C/man2/clone.2:1103
+#, no-wrap
+msgid " /* Change hostname in UTS namespace of child */\n"
+msgstr " /* 子プロセスの UTS 名前空間でホスト名を変更する */\n"
+
+#. type: Plain text
+#: build/C/man2/clone.2:1106
+#, no-wrap
+msgid ""
+" if (sethostname(arg, strlen(arg)) == -1)\n"
+" errExit(\"sethostname\");\n"
+msgstr ""
+" if (sethostname(arg, strlen(arg)) == -1)\n"
+" errExit(\"sethostname\");\n"
+
+#. type: Plain text
+#: build/C/man2/clone.2:1108
+#, no-wrap
+msgid " /* Retrieve and display hostname */\n"
+msgstr " /* ホスト名を取得し表示する */\n"
+
+#. type: Plain text
+#: build/C/man2/clone.2:1112
+#, no-wrap
msgid ""
-"B<fork>(2), B<futex>(2), B<getpid>(2), B<gettid>(2), B<set_thread_area>(2), "
-"B<set_tid_address>(2), B<tkill>(2), B<unshare>(2), B<wait>(2), "
-"B<capabilities>(7), B<pthreads>(7)"
+" if (uname(&uts) == -1)\n"
+" errExit(\"uname\");\n"
+" printf(\"uts.nodename in child: %s\\en\", uts.nodename);\n"
msgstr ""
-"B<fork>(2), B<futex>(2), B<getpid>(2), B<gettid>(2), B<set_thread_area>(2), "
-"B<set_tid_address>(2), B<tkill>(2), B<unshare>(2), B<wait>(2), "
-"B<capabilities>(7), B<pthreads>(7)"
+" if (uname(&uts) == -1)\n"
+" errExit(\"uname\");\n"
+" printf(\"uts.nodename in child: %s\\en\", uts.nodename);\n"
+
+#. type: Plain text
+#: build/C/man2/clone.2:1116
+#, no-wrap
+msgid ""
+" /* Keep the namespace open for a while, by sleeping.\n"
+" This allows some experimentation--for example, another\n"
+" process might join the namespace. */\n"
+msgstr ""
+" /* sleep を使ってしばらく名前空間をオープンされたままにする。\n"
+" これにより実験を行うことができる -- 例えば、\n"
+" 別のプロセスがこの名前空間に参加するなど。 */\n"
+
+#. type: Plain text
+#: build/C/man2/clone.2:1118
+#, no-wrap
+msgid " sleep(200);\n"
+msgstr " sleep(200);\n"
+
+#. type: Plain text
+#: build/C/man2/clone.2:1121
+#, no-wrap
+msgid ""
+" return 0; /* Child terminates now */\n"
+"}\n"
+msgstr ""
+" return 0; /* 子プロセスを終了する */\n"
+"}\n"
+
+#. type: Plain text
+#: build/C/man2/clone.2:1123
+#, no-wrap
+msgid "#define STACK_SIZE (1024 * 1024) /* Stack size for cloned child */\n"
+msgstr "#define STACK_SIZE (1024 * 1024) /* clone される子プロセスのスタックサイズ */\n"
+
+#. type: Plain text
+#: build/C/man2/clone.2:1131
+#, no-wrap
+msgid ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" char *stack; /* Start of stack buffer */\n"
+" char *stackTop; /* End of stack buffer */\n"
+" pid_t pid;\n"
+" struct utsname uts;\n"
+msgstr ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" char *stack; /* スタックバッファの先頭 */\n"
+" char *stackTop; /* スタックバッファの末尾 */\n"
+" pid_t pid;\n"
+" struct utsname uts;\n"
+
+#. type: Plain text
+#: build/C/man2/clone.2:1136
+#, no-wrap
+msgid ""
+" if (argc E<lt> 2) {\n"
+" fprintf(stderr, \"Usage: %s E<lt>child-hostnameE<gt>\\en\", argv[0]);\n"
+" exit(EXIT_SUCCESS);\n"
+" }\n"
+msgstr ""
+" if (argc E<lt> 2) {\n"
+" fprintf(stderr, \"Usage: %s E<lt>child-hostnameE<gt>\\en\", argv[0]);\n"
+" exit(EXIT_SUCCESS);\n"
+" }\n"
+
+#. type: Plain text
+#: build/C/man2/clone.2:1138
+#, no-wrap
+msgid " /* Allocate stack for child */\n"
+msgstr " /* 子プロセス用のスタックを割り当てる */\n"
+
+#. type: Plain text
+#: build/C/man2/clone.2:1143
+#, no-wrap
+msgid ""
+" stack = malloc(STACK_SIZE);\n"
+" if (stack == NULL)\n"
+" errExit(\"malloc\");\n"
+" stackTop = stack + STACK_SIZE; /* Assume stack grows downward */\n"
+msgstr ""
+" stack = malloc(STACK_SIZE);\n"
+" if (stack == NULL)\n"
+" errExit(\"malloc\");\n"
+" stackTop = stack + STACK_SIZE; /* スタックは下方向に伸びるものとする */\n"
+
+#. type: Plain text
+#: build/C/man2/clone.2:1146
+#, no-wrap
+msgid ""
+" /* Create child that has its own UTS namespace;\n"
+" child commences execution in childFunc() */\n"
+msgstr ""
+" /* 自分専用の UTS 名前空間を持つ子プロセスを作成する;\n"
+" 子プロセスは childFunc() の実行を開始する */\n"
+
+#. type: Plain text
+#: build/C/man2/clone.2:1151
+#, no-wrap
+msgid ""
+" pid = clone(childFunc, stackTop, CLONE_NEWUTS | SIGCHLD, argv[1]);\n"
+" if (pid == -1)\n"
+" errExit(\"clone\");\n"
+" printf(\"clone() returned %ld\\en\", (long) pid);\n"
+msgstr ""
+" pid = clone(childFunc, stackTop, CLONE_NEWUTS | SIGCHLD, argv[1]);\n"
+" if (pid == -1)\n"
+" errExit(\"clone\");\n"
+" printf(\"clone() returned %ld\\en\", (long) pid);\n"
+
+#. type: Plain text
+#: build/C/man2/clone.2:1153
+#, no-wrap
+msgid " /* Parent falls through to here */\n"
+msgstr " /* 親プロセスの実行はここに来る */\n"
+
+#. type: Plain text
+#: build/C/man2/clone.2:1155
+#, no-wrap
+msgid " sleep(1); /* Give child time to change its hostname */\n"
+msgstr " sleep(1); /* 子プロセスがホスト名を変更する時間を与える */\n"
+
+#. type: Plain text
+#: build/C/man2/clone.2:1158
+#, no-wrap
+msgid ""
+" /* Display hostname in parent\\(aqs UTS namespace. This will be\n"
+" different from hostname in child\\(aqs UTS namespace. */\n"
+msgstr ""
+" /* 親プロセスの UTS 名前空間でのホスト名を表示する;\n"
+" これは子プロセスの UTS 名前空間でのホスト名とは異なる */\n"
+
+#. type: Plain text
+#: build/C/man2/clone.2:1162
+#, no-wrap
+msgid ""
+" if (uname(&uts) == -1)\n"
+" errExit(\"uname\");\n"
+" printf(\"uts.nodename in parent: %s\\en\", uts.nodename);\n"
+msgstr ""
+" if (uname(&uts) == -1)\n"
+" errExit(\"uname\");\n"
+" printf(\"uts.nodename in parent: %s\\en\", uts.nodename);\n"
+
+#. type: Plain text
+#: build/C/man2/clone.2:1166
+#, no-wrap
+msgid ""
+" if (waitpid(pid, NULL, 0) == -1) /* Wait for child */\n"
+" errExit(\"waitpid\");\n"
+" printf(\"child has terminated\\en\");\n"
+msgstr ""
+" if (waitpid(pid, NULL, 0) == -1) /* 子プロセスを待つ */\n"
+" errExit(\"waitpid\");\n"
+" printf(\"child has terminated\\en\");\n"
+
+#. type: Plain text
+#: build/C/man2/clone.2:1169
+#, no-wrap
+msgid ""
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+msgstr ""
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+
+#. type: Plain text
+#: build/C/man2/clone.2:1184
+msgid ""
+"B<fork>(2), B<futex>(2), B<getpid>(2), B<gettid>(2), B<kcmp>(2), "
+"B<set_thread_area>(2), B<set_tid_address>(2), B<setns>(2), B<tkill>(2), "
+"B<unshare>(2), B<wait>(2), B<capabilities>(7), B<pthreads>(7)"
+msgstr ""
+"B<fork>(2), B<futex>(2), B<getpid>(2), B<gettid>(2), B<kcmp>(2), "
+"B<set_thread_area>(2), B<set_tid_address>(2), B<setns>(2), B<tkill>(2), "
+"B<unshare>(2), B<wait>(2), B<capabilities>(7), B<pthreads>(7)"
+
+#. type: TH
+#: build/C/man2/kcmp.2:28
+#, no-wrap
+msgid "KCMP"
+msgstr "KCMP"
+
+#. type: TH
+#: build/C/man2/kcmp.2:28
+#, no-wrap
+msgid "2013-12-08"
+msgstr "2013-12-08"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:31
+msgid ""
+"kcmp - compare two processes to determine if they share a kernel resource"
+msgstr "kcmp - 二つのプロセスが同じカーネルリソースを共有しているかを比較する"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:34
+#, no-wrap
+msgid "B<#include E<lt>linux/kcmp.hE<gt>>\n"
+msgstr "B<#include E<lt>linux/kcmp.hE<gt>>\n"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:37
+#, no-wrap
+msgid ""
+"B<int kcmp(pid_t >I<pid1>B<, pid_t >I<pid2>B<, int >I<type>B<,>\n"
+"B< unsigned long >I<idx1>B<, unsigned long >I<idx2>B<);>\n"
+msgstr ""
+"B<int kcmp(pid_t >I<pid1>B<, pid_t >I<pid2>B<, int >I<type>B<,>\n"
+"B< unsigned long >I<idx1>B<, unsigned long >I<idx2>B<);>\n"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:41
+msgid "I<Note>: There is no glibc wrapper for this system call; see NOTES."
+msgstr ""
+"I<注>: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節"
+"を参照。"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:50
+msgid ""
+"The B<kcmp>() system call can be used to check whether the two processes "
+"identified by I<pid1> and I<pid2> share a kernel resource such as virtual "
+"memory, file descriptors, and so on."
+msgstr ""
+"システムコール B<kcmp>() を使うと、 ID が I<pid1> と I<pid2> の二つのプロセス"
+"が、 仮想メモリやファイルディスクリプタなどの、 同じカーネルリソースを共有し"
+"ているかどうかを検査できる。"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:55
+msgid ""
+"The I<type> argument specifies which resource is to be compared in the two "
+"processes. It has one of the following values:"
+msgstr ""
+"I<type> 引き数は 2 つのプロセス間でどのリソースを比較するかを指定する。 以下"
+"のいずれかの値を指定する。"
+
+#. type: TP
+#: build/C/man2/kcmp.2:55
+#, no-wrap
+msgid "B<KCMP_FILE>"
+msgstr "B<KCMP_FILE>"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:67
+msgid ""
+"Check whether a file descriptor I<idx1> in the process I<pid1> refers to the "
+"same open file description (see B<open>(2)) as file descriptor I<idx2> in "
+"the process I<pid2>."
+msgstr ""
+"プロセス I<pid1> のファイルディスクリプタ I<idx1> が、 プロセス I<pid2> の"
+"ファイルディスクリプタ I<idx2> と同じオープンファイル記述 (open file "
+"description) を参照しているかを検査する。"
+
+#. type: TP
+#: build/C/man2/kcmp.2:67
+#, no-wrap
+msgid "B<KCMP_FILES>"
+msgstr "B<KCMP_FILES>"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:75
+msgid ""
+"Check whether the process share the same set of open file descriptors. The "
+"arguments I<idx1> and I<idx2> are ignored."
+msgstr ""
+"二つのプロセスが同じオープンファイル記述の集合を共有しているかを検査する。 引"
+"き数 I<idx1> と I<idx2> は無視される。"
+
+#. type: TP
+#: build/C/man2/kcmp.2:75
+#, no-wrap
+msgid "B<KCMP_FS>"
+msgstr "B<KCMP_FS>"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:84
+msgid ""
+"Check whether the processes share the same filesystem information (i.e., "
+"file mode creation mask, working directory, and filesystem root). The "
+"arguments I<idx1> and I<idx2> are ignored."
+msgstr ""
+"二つのプロセスが同じファイルシステム情報 (すなわち、ファイルのモード作成マス"
+"ク、作業ディレクトリ、ファイルシステムのルート) を共有しているかを検査する。 "
+"引き数 I<idx1> と I<idx2> は無視される。"
+
+#. type: TP
+#: build/C/man2/kcmp.2:84
+#, no-wrap
+msgid "B<KCMP_IO>"
+msgstr "B<KCMP_IO>"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:92
+msgid ""
+"Check whether the processes share I/O context. The arguments I<idx1> and "
+"I<idx2> are ignored."
+msgstr ""
+"二つのプロセスが I/O コンテキストを共有しているかを検査する。 引き数 I<idx1> "
+"と I<idx2> は無視される。"
+
+#. type: TP
+#: build/C/man2/kcmp.2:92
+#, no-wrap
+msgid "B<KCMP_SIGHAND>"
+msgstr "B<KCMP_SIGHAND>"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:100
+msgid ""
+"Check whether the processes share the same table of signal dispositions. "
+"The arguments I<idx1> and I<idx2> are ignored."
+msgstr ""
+"二つのプロセスがシグナル配送 (disposition) テーブルを共有しているかを検査す"
+"る。 引き数 I<idx1> と I<idx2> は無視される。"
+
+#. type: TP
+#: build/C/man2/kcmp.2:100
+#, no-wrap
+msgid "B<KCMP_SYSVSEM>"
+msgstr "B<KCMP_SYSVSEM>"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:109
+msgid ""
+"Check whether the processes share the same list of System\\ V semaphore undo "
+"operations. The arguments I<idx1> and I<idx2> are ignored."
+msgstr "二つのプロセスが同じ System\\ V セマフォ undo 操作のリストを共有しているかを検査する。 引き数 I<idx1> と I<idx2> は無視される。"
+
+#. type: TP
+#: build/C/man2/kcmp.2:109
+#, no-wrap
+msgid "B<KCMP_VM>"
+msgstr "B<KCMP_VM>"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:117
+msgid ""
+"Check whether the processes share the same address space. The arguments "
+"I<idx1> and I<idx2> are ignored."
+msgstr ""
+"二つのプロセスが同じアドレス空間を共有しているかを検査する。 引き数 I<idx1> "
+"と I<idx2> は無視される。"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:127
+msgid ""
+"Note the B<kcmp>() is not protected against false positives which may occur "
+"if tasks are running. One should stop tasks by sending B<SIGSTOP> (see "
+"B<signal>(7)) prior to inspection with this system call to obtain "
+"meaningful results."
+msgstr ""
+"B<kcmp>() には、タスクが実行されている場合に起こり得る誤判定 (false "
+"positive) に関する保護はない。 ということは、 意味のある結果を得るためには、 "
+"このシステムコールで検査を行う前に、 B<SIGSTOP> を送信してタスクを停止すべき"
+"だということだ (B<signal>(7) 参照)。"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:133
+msgid ""
+"The return value of a successful call to B<kcmp>() is simply the result of "
+"arithmetic comparison of kernel pointers (when the kernel compares "
+"resources, it uses their memory addresses)."
+msgstr ""
+"B<kcmp>() の呼び出しが成功した場合の返り値は、単にカーネルポインタを数値で比"
+"較した結果となる (カーネルはリソースを比較する際、リソースのメモリアドレスを"
+"使用する)。"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:141
+msgid ""
+"The easiest way to explain is to consider an example. Suppose that I<v1> "
+"and I<v2> are the addresses of appropriate resources, then the return value "
+"is one of the following:"
+msgstr ""
+"これを説明するには、例を見るのが一番簡単である。 I<v1> と I<v2> を適切なリ"
+"ソースのアドレスとすると、 返り値は以下のいずれか一つとなる。"
+
+#. type: IP
+#: build/C/man2/kcmp.2:142
+#, no-wrap
+msgid "0"
+msgstr "0"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:147
+msgid ""
+"I<v1> is equal to I<v2>; in other words, the two processes share the "
+"resource."
+msgstr ""
+"I<v1> は I<v2> と等しい。言い換えれば、二つのプロセスはそのリソースを共有して"
+"いる。"
+
+#. type: IP
+#: build/C/man2/kcmp.2:147
+#, no-wrap
+msgid "1"
+msgstr "1"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:151
+msgid "I<v1> is less than I<v2>."
+msgstr "I<v1> は I<v2> より小さい。"
+
+#. type: IP
+#: build/C/man2/kcmp.2:151
+#, no-wrap
+msgid "2"
+msgstr "2"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:155
+msgid "I<v1> is greater than I<v2>."
+msgstr "I<v1> は I<v2> より大きい。"
+
+#. type: IP
+#: build/C/man2/kcmp.2:155
+#, no-wrap
+msgid "3"
+msgstr "3"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:160
+msgid "I<v1> is not equal to I<v2>, but ordering information is unavailable."
+msgstr "I<v1> は I<v2> と等しくないが、順序情報がない。"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:165
+msgid "On error, -1 is returned, and I<errno> is set appropriately."
+msgstr "エラーの場合は -1 が返され、 I<errno> が適切に設定される。"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:170
+msgid ""
+"B<kcmp>() was designed to return values suitable for sorting. This is "
+"particularly handy if one needs to compare a large number of file "
+"descriptors."
+msgstr ""
+"B<kcmp>() は、ソートに適した値を返すように設計された。 大量のファイルディスク"
+"リプタを比較する必要がある場合に、特に役に立つ。"
+
+#. type: TP
+#: build/C/man2/kcmp.2:171 build/C/man2/setns.2:78
+#, no-wrap
+msgid "B<EBADF>"
+msgstr "B<EBADF>"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:181
+msgid ""
+"I<type> is B<KCMP_FILE> and I<fd1> or I<fd2> is not an open file descriptor."
+msgstr ""
+"I<type> が B<KCMP_FILE> で、かつ I<fd1> か I<fd2> がオープンファイル記述でな"
+"い。"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:185
+msgid "I<type> is invalid."
+msgstr "I<type> が無効である。"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:191
+msgid ""
+"Insufficient permission to inspect process resources. The B<CAP_SYS_PTRACE> "
+"capability is required to inspect processes that you do not own."
+msgstr ""
+"プロセスのリソースを検査するのに十分な許可がない。 自分が所有していないプロセ"
+"スを検査するためには B<CAP_SYS_PTRACE> ケーパビリティが必要である。"
+
+#. type: TP
+#: build/C/man2/kcmp.2:191 build/C/man2/sched_rr_get_interval.2:90
+#: build/C/man2/sched_setaffinity.2:145 build/C/man2/sched_setparam.2:116
+#: build/C/man2/sched_setscheduler.2:167
+#, no-wrap
+msgid "B<ESRCH>"
+msgstr "B<ESRCH>"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:198
+msgid "Process I<pid1> or I<pid2> does not exist."
+msgstr "プロセス I<pid1> か I<pid2> が存在しない。"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:202
+msgid "The B<kcmp>() system call first appeared in Linux 3.5."
+msgstr "B<kcmp>() システムコールは Linux 3.5 で初めて登場した。"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:205
+msgid ""
+"B<kcmp>() is Linux-specific and should not be used in programs intended to "
+"be portable."
+msgstr ""
+"B<kcmp>() は Linux 特有であり、 移植を考慮したプログラムでは使用すべきではな"
+"い。"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:208
+msgid ""
+"Glibc does not provide a wrapper for this system call; call it using "
+"B<syscall>(2)."
+msgstr ""
+"glibc はこのシステムコールに対するラッパー関数を提供していない。 "
+"B<syscall>(2) を使って呼び出すこと。"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:217
+msgid ""
+"This system call is available only if the kernel was configured with "
+"B<CONFIG_CHECKPOINT_RESTORE>. The main use of the system call is for the "
+"checkpoint/restore in user space (CRIU) feature. The alternative to this "
+"system call would have been to expose suitable process information via the "
+"B<proc>(5) filesystem; this was deemed to be unsuitable for security "
+"reasons."
+msgstr ""
+"このシステムコールが利用できるのは、 カーネルの B<CONFIG_CHECKPOINT_RESTORE> "
+"オプションが有効になっている場合だけである。 このシステムコールの主な用途"
+"は、 ユーザ空間でのチェックポイント/リストア (checkpoint/restore in user "
+"space; CRIU) 機能である。 このシステムコールを使わないとすると、 B<proc>(5) "
+"ファイルシステム経由で必要なプロセス情報を公開することになるが、 これはセキュ"
+"リティ上の理由から不適切とみなされた。"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:222
+msgid ""
+"See B<clone>(2) for some background information on the shared resources "
+"referred to on this page."
+msgstr ""
+"このページで参照されている共有リソースに関する背景についての情報は "
+"B<clone>(2) を参照のこと。"
+
+#. type: Plain text
+#: build/C/man2/kcmp.2:225
+msgid "B<clone>(2), B<unshare>(2)"
+msgstr "B<clone>(2), B<unshare>(2)"
#. type: TH
-#: build/C/man2/sched_get_priority_max.2:30
+#: build/C/man2/sched_get_priority_max.2:29
#, no-wrap
msgid "SCHED_GET_PRIORITY_MAX"
msgstr "SCHED_GET_PRIORITY_MAX"
#. type: TH
-#: build/C/man2/sched_get_priority_max.2:30 build/C/man2/sched_setparam.2:31
+#: build/C/man2/sched_get_priority_max.2:29
#, no-wrap
-msgid "2006-03-23"
-msgstr "2006-03-23"
+msgid "2014-05-12"
+msgstr "2014-05-12"
#. type: Plain text
-#: build/C/man2/sched_get_priority_max.2:33
+#: build/C/man2/sched_get_priority_max.2:32
msgid ""
"sched_get_priority_max, sched_get_priority_min - get static priority range"
msgstr ""
"得する"
#. type: Plain text
-#: build/C/man2/sched_get_priority_max.2:35
-#: build/C/man2/sched_rr_get_interval.2:35 build/C/man2/sched_yield.2:35
+#: build/C/man2/sched_get_priority_max.2:34
+#: build/C/man2/sched_rr_get_interval.2:34 build/C/man2/sched_yield.2:34
msgid "B<#include E<lt>sched.hE<gt>>"
msgstr "B<#include E<lt>sched.hE<gt>>"
#. type: Plain text
-#: build/C/man2/sched_get_priority_max.2:37
+#: build/C/man2/sched_get_priority_max.2:36
msgid "B<int sched_get_priority_max(int >I<policy>B<);>"
msgstr "B<int sched_get_priority_max(int >I<policy>B<);>"
#. type: Plain text
-#: build/C/man2/sched_get_priority_max.2:39
+#: build/C/man2/sched_get_priority_max.2:38
msgid "B<int sched_get_priority_min(int >I<policy>B<);>"
msgstr "B<int sched_get_priority_min(int >I<policy>B<);>"
#. type: Plain text
-#: build/C/man2/sched_get_priority_max.2:55
+#: build/C/man2/sched_get_priority_max.2:59
msgid ""
"B<sched_get_priority_max>() returns the maximum priority value that can be "
"used with the scheduling algorithm identified by I<policy>. "
"B<sched_get_priority_min>() returns the minimum priority value that can be "
"used with the scheduling algorithm identified by I<policy>. Supported "
-"I<policy> values are B<SCHED_FIFO>, B<SCHED_RR>, B<SCHED_OTHER>, and "
-"B<SCHED_BATCH>. Further details about these policies can be found in "
-"B<sched_setscheduler>(2)."
-msgstr ""
-"B<sched_get_priority_max>() はI<policy> によって指定されたスケジューリングの"
-"アルゴリズムで 使用されるプライオリティの最大値を返す。 "
-"B<sched_get_priority_min>() はI<policy> によって指定されたスケジューリングの"
-"アルゴリズムで 使用されるプライオリティの最小値を返す。 サポートされる "
-"I<policy> の値は B<SCHED_FIFO>、 B<SCHED_RR>、 B<SCHED_OTHER>、 "
-"B<SCHED_BATCH> である。これらのスケジューリング方針に関する詳細は "
-"B<sched_setscheduler>(2) に書かれている。"
+"I<policy> values are B<SCHED_FIFO>, B<SCHED_RR>, B<SCHED_OTHER>, "
+"B<SCHED_BATCH>, B<SCHED_IDLE>, and B<SCHED_DEADLINE>. Further details about "
+"these policies can be found in B<sched>(7)."
+msgstr "B<sched_get_priority_max>() はI<policy> によって指定されたスケジューリングのアルゴリズムで 使用されるプライオリティの最大値を返す。 B<sched_get_priority_min>() はI<policy> によって指定されたスケジューリングのアルゴリズムで 使用されるプライオリティの最小値を返す。 サポートされる I<policy> の値は B<SCHED_FIFO>、 B<SCHED_RR>、 B<SCHED_OTHER>、 B<SCHED_BATCH>, B<SCHED_IDLE>, B<SCHED_DEADLINE> である。これらのスケジューリング方針に関する詳細は B<sched>(7) に書かれている。"
#. type: Plain text
-#: build/C/man2/sched_get_priority_max.2:64
+#: build/C/man2/sched_get_priority_max.2:68
msgid ""
"Processes with numerically higher priority values are scheduled before "
"processes with numerically lower priority values. Thus, the value returned "
"す値は B<sched_get_priority_min>() が返す値よりも大きい。"
#. type: Plain text
-#: build/C/man2/sched_get_priority_max.2:70
+#: build/C/man2/sched_get_priority_max.2:76
msgid ""
-"Linux allows the static priority value range 1 to 99 for B<SCHED_FIFO> and "
-"B<SCHED_RR> and the priority 0 for B<SCHED_OTHER> and B<SCHED_BATCH>. "
+"Linux allows the static priority range 1 to 99 for the B<SCHED_FIFO> and "
+"B<SCHED_RR> policies, and the priority 0 for the remaining policies. "
"Scheduling priority ranges for the various policies are not alterable."
-msgstr ""
-"Linux では B<SCHED_FIFO> と B<SCHED_RR> では 1 から 99 の範囲の 静的プライオ"
-"リティーを持ち、B<SCHED_OTHER> と B<SCHED_BATCH> では プライオリティとして 0 "
-"を持つ。 それぞれの方針のスケジューリング・プライオリティの範囲は 変更するこ"
-"とができない。"
+msgstr "Linux では、 ポリシー B<SCHED_FIFO> と B<SCHED_RR> では 1 から 99 の範囲の静的プライオリティーを持ち、それ以外のポリシーでは プライオリティとして 0 を持つ。 それぞれの方針のスケジューリングプライオリティの範囲は 変更することができない。"
#. type: Plain text
-#: build/C/man2/sched_get_priority_max.2:79
+#: build/C/man2/sched_get_priority_max.2:88
msgid ""
"The range of scheduling priorities may vary on other POSIX systems, thus it "
"is a good idea for portable applications to use a virtual priority range and "
"B<sched_get_priority_min>(). POSIX.1-2001 requires a spread of at least 32 "
"between the maximum and the minimum values for B<SCHED_FIFO> and B<SCHED_RR>."
msgstr ""
-"ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83»ã\83\97ã\83©ã\82¤ã\82ªã\83ªã\83\86ã\82£ã\81®ç¯\84å\9b²ã\81¯ä»\96ã\81® POSIX ã\82·ã\82¹ã\83\86ã\83 ã\81¨ ç\95°ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\81\8b"
+"スケジューリングプライオリティの範囲は他の POSIX システムと 異なっているか"
"もしれない。それで、移植性(portable)のある アプリケーションでは仮想的な範囲を"
"用い B<sched_get_priority_max>() と B<sched_get_priority_min>() で与えられ"
"た間隔にマップして使用することはいい考えである。 POSIX.1-2001 では "
"することを要求している。"
#. type: Plain text
-#: build/C/man2/sched_get_priority_max.2:87
+#: build/C/man2/sched_get_priority_max.2:97
msgid ""
"POSIX systems on which B<sched_get_priority_max>() and "
"B<sched_get_priority_min>() are available define "
"B<_POSIX_PRIORITY_SCHEDULING> in I<E<lt>unistd.hE<gt>>."
msgstr ""
-"POSIX システムでは B<sched_get_priority_max>() と B<sched_get_priority_min>"
-"() は I<E<lt>unistd.hE<gt>> に B<_POSIX_PRIORITY_SCHEDULING> が定義されてい"
-"る場合にのみ使用可能である。"
+"POSIX システムでは B<sched_get_priority_max>() と "
+"B<sched_get_priority_min>() は I<E<lt>unistd.hE<gt>> に "
+"B<_POSIX_PRIORITY_SCHEDULING> が定義されている場合にのみ使用可能である。"
#. type: Plain text
-#: build/C/man2/sched_get_priority_max.2:97
+#: build/C/man2/sched_get_priority_max.2:107
msgid ""
"On success, B<sched_get_priority_max>() and B<sched_get_priority_min>() "
"return the maximum/minimum priority value for the named scheduling policy. "
"ラーの場合は -1 が返され、 I<errno> が適切に設定される。"
#. type: Plain text
-#: build/C/man2/sched_get_priority_max.2:101
+#: build/C/man2/sched_get_priority_max.2:113
msgid "The argument I<policy> does not identify a defined scheduling policy."
msgstr "引き数 I<policy> が定義されているスケジューリング方針と一致しない。"
#. type: Plain text
-#: build/C/man2/sched_get_priority_max.2:103
-#: build/C/man2/sched_rr_get_interval.2:97 build/C/man2/sched_setparam.2:113
-#: build/C/man2/sched_yield.2:55
+#: build/C/man2/sched_get_priority_max.2:115
+#: build/C/man2/sched_rr_get_interval.2:96 build/C/man2/sched_setparam.2:121
+#: build/C/man2/sched_yield.2:54
msgid "POSIX.1-2001."
msgstr "POSIX.1-2001."
#. type: Plain text
-#: build/C/man2/sched_get_priority_max.2:110
+#: build/C/man2/sched_get_priority_max.2:125
msgid ""
"B<sched_getaffinity>(2), B<sched_getparam>(2), B<sched_getscheduler>(2), "
-"B<sched_setaffinity>(2), B<sched_setparam>(2), B<sched_setscheduler>(2)"
-msgstr ""
-"B<sched_getaffinity>(2), B<sched_getparam>(2) B<sched_getscheduler>(2), "
-"B<sched_setaffinity>(2), B<sched_setparam>(2), B<sched_setscheduler>(2),"
-
-#. type: Plain text
-#: build/C/man2/sched_get_priority_max.2:113
-#: build/C/man2/sched_rr_get_interval.2:132 build/C/man2/sched_setparam.2:127
-#: build/C/man2/sched_setscheduler.2:538 build/C/man2/sched_yield.2:85
-msgid ""
-"I<Programming for the real world - POSIX.4> by Bill O. Gallmeister, O'Reilly "
-"& Associates, Inc., ISBN 1-56592-074-0"
-msgstr ""
-"I<Programming for the real world - POSIX.4> by Bill O. Gallmeister, O'Reilly "
-"& Associates, Inc., ISBN 1-56592-074-0"
+"B<sched_setaffinity>(2), B<sched_setparam>(2), B<sched_setscheduler>(2), "
+"B<sched>(7)"
+msgstr "B<sched_getaffinity>(2), B<sched_getparam>(2), B<sched_getscheduler>(2), B<sched_setaffinity>(2), B<sched_setparam>(2), B<sched_setscheduler>(2), B<sched>(7)"
#. type: TH
-#: build/C/man3/sched_getcpu.3:24
+#: build/C/man3/sched_getcpu.3:26
#, no-wrap
msgid "SCHED_GETCPU"
msgstr "SCHED_GETCPU"
#. type: TH
-#: build/C/man3/sched_getcpu.3:24
+#: build/C/man3/sched_getcpu.3:26 build/C/man2/sched_setaffinity.2:34
#, no-wrap
-msgid "2010-10-31"
-msgstr "2010-10-31"
+msgid "2014-05-10"
+msgstr "2014-05-10"
#. type: Plain text
-#: build/C/man3/sched_getcpu.3:27
+#: build/C/man3/sched_getcpu.3:29
msgid "sched_getcpu - determine CPU on which the calling thread is running"
msgstr "sched_getcpu - 呼び出したスレッドが実行されている CPU を知る"
-#. Really:_BSD_SOURCE || _SVID_SOURCE
-#. type: Plain text
-#: build/C/man3/sched_getcpu.3:32
-#, no-wrap
-msgid ""
-"B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
-"B<#include E<lt>sched.hE<gt>>\n"
-msgstr ""
-"B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */\n"
-"B<#include E<lt>sched.hE<gt>>\n"
-
#. type: Plain text
#: build/C/man3/sched_getcpu.3:34
#, no-wrap
msgstr "B<int sched_getcpu(void);>\n"
#. type: Plain text
-#: build/C/man3/sched_getcpu.3:38
+#: build/C/man3/sched_getcpu.3:39 build/C/man2/unshare.2:33
+msgid ""
+"Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
+msgstr "glibc 向けの機能検査マクロの要件 (B<feature_test_macros>(7) 参照):"
+
+#. type: Plain text
+#: build/C/man3/sched_getcpu.3:42
+msgid "B<sched_getcpu>():"
+msgstr "B<sched_getcpu>():"
+
+#. type: Plain text
+#: build/C/man3/sched_getcpu.3:58
msgid ""
"B<sched_getcpu>() returns the number of the CPU on which the calling thread "
"is currently executing."
"す。"
#. type: Plain text
-#: build/C/man3/sched_getcpu.3:45
+#: build/C/man3/sched_getcpu.3:65
msgid ""
"On success, B<sched_getcpu>() returns a nonnegative CPU number. On error, "
"-1 is returned and I<errno> is set to indicate the error."
"返し、 I<errno> にエラーを示す値を設定する。"
#. type: TP
-#: build/C/man3/sched_getcpu.3:46 build/C/man2/sched_rr_get_interval.2:88
+#: build/C/man3/sched_getcpu.3:66 build/C/man2/sched_rr_get_interval.2:87
#, no-wrap
msgid "B<ENOSYS>"
msgstr "B<ENOSYS>"
#. type: Plain text
-#: build/C/man3/sched_getcpu.3:50
+#: build/C/man3/sched_getcpu.3:70
msgid "This kernel does not implement B<getcpu>(2)."
msgstr "このカーネルでは B<getcpu>(2) が実装されていない。"
#. type: Plain text
-#: build/C/man3/sched_getcpu.3:52
+#: build/C/man3/sched_getcpu.3:72
msgid "This function is available since glibc 2.6."
msgstr "この関数は glibc 2.6 以降で利用可能である。"
+#. type: SH
+#: build/C/man3/sched_getcpu.3:72
+#, no-wrap
+msgid "ATTRIBUTES"
+msgstr "属性"
+
+#. type: SS
+#: build/C/man3/sched_getcpu.3:73
+#, no-wrap
+msgid "Multithreading (see pthreads(7))"
+msgstr "マルチスレッディング (pthreads(7) 参照)"
+
+#. type: Plain text
+#: build/C/man3/sched_getcpu.3:77
+msgid "The B<sched_getcpu>() function is thread-safe."
+msgstr "B<sched_getcpu>() 関数はスレッドセーフである。"
+
#. type: Plain text
-#: build/C/man3/sched_getcpu.3:55
-msgid "B<sched_getcpu>() is glibc specific."
+#: build/C/man3/sched_getcpu.3:80
+msgid "B<sched_getcpu>() is glibc-specific."
msgstr "B<sched_getcpu>() は glibc 固有である。"
#. type: Plain text
-#: build/C/man3/sched_getcpu.3:57
+#: build/C/man3/sched_getcpu.3:82
msgid "The call"
msgstr "呼び出し"
#. type: Plain text
-#: build/C/man3/sched_getcpu.3:61
+#: build/C/man3/sched_getcpu.3:86
#, no-wrap
msgid "cpu = sched_getcpu();\n"
msgstr "cpu = sched_getcpu();\n"
#. type: Plain text
-#: build/C/man3/sched_getcpu.3:67
+#: build/C/man3/sched_getcpu.3:92
msgid "is equivalent to the following B<getcpu>(2) call:"
msgstr "は、以下の B<getcpu>(2) 呼び出しと等価である。"
#. type: Plain text
-#: build/C/man3/sched_getcpu.3:73
+#: build/C/man3/sched_getcpu.3:98
#, no-wrap
msgid ""
"int c, s;\n"
"cpu = (s == -1) ? s : c;\n"
#. type: Plain text
-#: build/C/man3/sched_getcpu.3:77
-msgid "B<getcpu>(2)"
-msgstr "B<getcpu>(2)"
+#: build/C/man3/sched_getcpu.3:103
+msgid "B<getcpu>(2), B<sched>(7)"
+msgstr "B<getcpu>(2), B<sched>(7)"
#. type: TH
-#: build/C/man2/sched_rr_get_interval.2:30
+#: build/C/man2/sched_rr_get_interval.2:29
#, no-wrap
msgid "SCHED_RR_GET_INTERVAL"
msgstr "SCHED_RR_GET_INTERVAL"
#. type: TH
-#: build/C/man2/sched_rr_get_interval.2:30
-#, fuzzy, no-wrap
-#| msgid "2011-10-04"
-msgid "2011-10-16"
-msgstr "2011-10-04"
+#: build/C/man2/sched_rr_get_interval.2:29 build/C/man2/sched_yield.2:29
+#, no-wrap
+msgid "2014-04-28"
+msgstr "2014-04-28"
#. type: Plain text
-#: build/C/man2/sched_rr_get_interval.2:33
+#: build/C/man2/sched_rr_get_interval.2:32
msgid "sched_rr_get_interval - get the SCHED_RR interval for the named process"
msgstr "sched_rr_get_interval - 指定されたプロセスの SCHED_RR 間隔を取得する"
#. type: Plain text
-#: build/C/man2/sched_rr_get_interval.2:37
+#: build/C/man2/sched_rr_get_interval.2:36
msgid ""
"B<int sched_rr_get_interval(pid_t >I<pid>B<, struct timespec * >I<tp>B<);>"
msgstr ""
"B<int sched_rr_get_interval(pid_t >I<pid>B<, struct timespec *>I<tp>B<);>"
#. type: Plain text
-#: build/C/man2/sched_rr_get_interval.2:48
-#, fuzzy
-#| msgid ""
-#| "B<sched_rr_get_interval>() writes into the I<timespec> structure pointed "
-#| "to by I<tp> the round-robin time quantum for the process identified by "
-#| "I<pid>."
+#: build/C/man2/sched_rr_get_interval.2:47
msgid ""
"B<sched_rr_get_interval>() writes into the I<timespec> structure pointed to "
"by I<tp> the round-robin time quantum for the process identified by I<pid>. "
"The specified process should be running under the B<SCHED_RR> scheduling "
"policy."
msgstr ""
-"B<sched_rr_get_interval>() は I<tp> で指定された I<timespec> 構造体に "
-"I<pid> で指定されたプロセスのラウンド・ロビン時間量 (round robin time "
-"quantum) を書き込む。"
+"B<sched_rr_get_interval>() は I<tp> で指定された I<timespec> 構造体に\n"
+"I<pid> で指定されたプロセスのラウンドロビン時間量 (round robin time\n"
+"quantum) を書き込む。指定されたプロセスは B<SCHED_RR> スケジューリング\n"
+"ポリシーで動作しているはずである。"
#. type: Plain text
-#: build/C/man2/sched_rr_get_interval.2:52
+#: build/C/man2/sched_rr_get_interval.2:51
msgid "The I<timespec> structure has the following form:"
msgstr "I<timespec> 構造体は以下の通りである:"
#. type: Plain text
-#: build/C/man2/sched_rr_get_interval.2:59
+#: build/C/man2/sched_rr_get_interval.2:58
#, no-wrap
msgid ""
"struct timespec {\n"
#. The round-robin time quantum value is not alterable under Linux
#. 1.3.81.
#. type: Plain text
-#: build/C/man2/sched_rr_get_interval.2:74
+#: build/C/man2/sched_rr_get_interval.2:73
msgid ""
"If I<pid> is zero, the time quantum for the calling process is written into "
"I<*tp>."
msgstr ""
+"I<pid> が 0 の場合、呼び出したプロセスの時間量 (time quantum) が\n"
+"I<*tp> に書き込まれる。"
#. type: Plain text
-#: build/C/man2/sched_rr_get_interval.2:81
+#: build/C/man2/sched_rr_get_interval.2:80
msgid ""
"On success, B<sched_rr_get_interval>() returns 0. On error, -1 is "
"returned, and I<errno> is set appropriately."
"返され、 I<errno> が適切に設定される。"
#. type: TP
-#: build/C/man2/sched_rr_get_interval.2:82
-#: build/C/man2/sched_setaffinity.2:118
+#: build/C/man2/sched_rr_get_interval.2:81
+#: build/C/man2/sched_setaffinity.2:117
#, no-wrap
msgid "B<EFAULT>"
msgstr "B<EFAULT>"
#. type: Plain text
-#: build/C/man2/sched_rr_get_interval.2:85
-msgid "Problem with copying information to userspace."
+#: build/C/man2/sched_rr_get_interval.2:84
+msgid "Problem with copying information to user space."
msgstr "情報をユーザ空間にコピーする時に問題が起きた。"
#. type: Plain text
-#: build/C/man2/sched_rr_get_interval.2:88
+#: build/C/man2/sched_rr_get_interval.2:87
msgid "Invalid pid."
msgstr "PID が不正である。"
#. type: Plain text
-#: build/C/man2/sched_rr_get_interval.2:91
+#: build/C/man2/sched_rr_get_interval.2:90
msgid "The system call is not yet implemented (only on rather old kernels)."
msgstr ""
-"システム・コールがまだ実装されていない (かなり古いカーネルにおいてのみ)。"
-
-#. type: TP
-#: build/C/man2/sched_rr_get_interval.2:91
-#: build/C/man2/sched_setaffinity.2:146 build/C/man2/sched_setparam.2:108
-#: build/C/man2/sched_setscheduler.2:442
-#, no-wrap
-msgid "B<ESRCH>"
-msgstr "B<ESRCH>"
+"システムコールがまだ実装されていない (かなり古いカーネルにおいてのみ)。"
#. type: Plain text
-#: build/C/man2/sched_rr_get_interval.2:95
+#: build/C/man2/sched_rr_get_interval.2:94
msgid "Could not find a process with the ID I<pid>."
-msgstr ""
+msgstr "プロセス ID が I<pid> のプロセスが見つからなかった。"
#. type: Plain text
-#: build/C/man2/sched_rr_get_interval.2:104
-#, fuzzy
-#| msgid ""
-#| "POSIX systems on which B<sched_yield>() is available define "
-#| "B<_POSIX_PRIORITY_SCHEDULING> in I<E<lt>unistd.hE<gt>>."
+#: build/C/man2/sched_rr_get_interval.2:103
msgid ""
"POSIX systems on which B<sched_rr_get_interval>() is available define "
"B<_POSIX_PRIORITY_SCHEDULING> in I<E<lt>unistd.hE<gt>>."
msgstr ""
-"POSIX システムで B<sched_yield>() は I<E<lt>unistd.hE<gt>> に "
+"POSIX システムで B<sched_rr_get_interval>() は I<E<lt>unistd.hE<gt>> に\n"
"B<_POSIX_PRIORITY_SCHEDULING> が定義されている場合にのみ使用可能である。"
#. type: SS
-#: build/C/man2/sched_rr_get_interval.2:104
+#: build/C/man2/sched_rr_get_interval.2:103
#, no-wrap
-msgid "Linux Notes"
+msgid "Linux notes"
msgstr "Linux での注意"
#. commit a4ec24b48ddef1e93f7578be53270f0b95ad666c
-#. .SH BUGS
-#. As of Linux 1.3.81
-#. .BR sched_rr_get_interval ()
-#. returns with error
-#. ENOSYS, because SCHED_RR has not yet been fully implemented and tested
-#. properly.
#. type: Plain text
-#: build/C/man2/sched_rr_get_interval.2:126
-#, fuzzy
-#| msgid ""
-#| "POSIX does not specify any mechanism for controlling the size of the "
-#| "round-robin time quantum. However, Linux provides a (nonportable) method "
-#| "of doing this. The quantum can be controlled by adjusting the process's "
-#| "nice value (see B<setpriority>(2)). Assigning a negative (i.e., high) "
-#| "nice value results in a longer quantum; assigning a positive (i.e., low) "
-#| "nice value results in a shorter quantum. The default quantum is 0.1 "
-#| "seconds; the degree to which changing the nice value affects the quantum "
-#| "has varied somewhat across kernel versions."
+#: build/C/man2/sched_rr_get_interval.2:117
msgid ""
"POSIX does not specify any mechanism for controlling the size of the round-"
"robin time quantum. Older Linux kernels provide a (nonportable) method of "
"results in a longer quantum; assigning a positive (i.e., low) nice value "
"results in a shorter quantum. The default quantum is 0.1 seconds; the "
"degree to which changing the nice value affects the quantum has varied "
-"somewhat across kernel versions. Since Linux 2.6.24, the B<SCHED_RR> "
-"quantum cannot be modified."
-msgstr ""
-"POSIX ではラウンド・ロビン時間量の大きさを制御する仕組みが規定されていない。 "
-"しかし、Linux ではこれを変更する方法が提供されており (この方法に移植性はな"
-"い)、 プロセスの nice 値を調整することで時間量を制御できる (B<setpriority>"
-"(2) 参照)。 負の nice 値 (すなわち、高い nice 値) を割り当てると時間量は長く"
-"なり、 正の nice 値 (すなわち、低い nice 値) を割り当てると時間量は短くな"
-"る。 デフォルトの時間量は 0.1 秒である。 nice 値の変更が時間量にどの程度影響"
-"を与えるかは カーネルのバージョンにより多少異なる。"
-
+"somewhat across kernel versions. This method of adjusting the quantum was "
+"removed starting with Linux 2.6.24."
+msgstr ""
+"POSIX ではラウンドロビン時間量の大きさを制御する仕組みが規定されていない。 古"
+"い Linux カーネルではこれを変更する方法が提供されている (この方法に移植性はな"
+"い)。 プロセスの nice 値を調整することで時間量を制御できる "
+"(B<setpriority>(2) 参照)。 負の nice 値 (すなわち、高い nice 値) を割り当てる"
+"と時間量は長くなり、 正の nice 値 (すなわち、低い nice 値) を割り当てると時間"
+"量は短くなる。 デフォルトの時間量は 0.1 秒である。 nice 値の変更が時間量にど"
+"の程度影響を与えるかは カーネルのバージョンにより多少異なる。時間量を調整する"
+"このメソッドは Linux 2.6.24 以降で削除された。"
+
+#. commit ce0dbbbb30aee6a835511d5be446462388ba9eee
+#. .SH BUGS
+#. As of Linux 1.3.81
+#. .BR sched_rr_get_interval ()
+#. returns with error
+#. ENOSYS, because SCHED_RR has not yet been fully implemented and tested
+#. properly.
#. type: Plain text
-#: build/C/man2/sched_rr_get_interval.2:129
-#: build/C/man2/sched_setaffinity.2:178
+#: build/C/man2/sched_rr_get_interval.2:132
msgid ""
-"B<sched_setscheduler>(2) has a description of the Linux scheduling scheme."
+"Linux 3.9 added a new mechanism for adjusting (and viewing) the B<SCHED_RR> "
+"quantum: the I</proc/sys/kernel/sched_rr_timeslice_ms> file exposes the "
+"quantum as a millisecond value, whose default is 100. Writing 0 to this "
+"file resets the quantum to the default value."
msgstr ""
-"B<sched_setscheduler>(2) に Linux のスケジューリング方式についての説明があ"
-"る。"
+"Linux 3.9 で、 B<SCHED_RR> の時間量の調整 (と参照) を行う新しい機構が追加され"
+"た。 I</proc/sys/kernel/sched_rr_timeslice_ms> ファイルでミリ秒単位の時間量の"
+"値が参照でき、 デフォルト値は 100 である。 このファイルに 0 を書き込むと、 時"
+"間量をデフォルト値に戻すことができる。"
+
+#. type: Plain text
+#: build/C/man2/sched_rr_get_interval.2:134 build/C/man2/sched_yield.2:81
+msgid "B<sched>(7)"
+msgstr "B<sched>(7)"
#. type: TH
-#: build/C/man2/sched_setaffinity.2:35
+#: build/C/man2/sched_setaffinity.2:34
#, no-wrap
msgid "SCHED_SETAFFINITY"
msgstr "SCHED_SETAFFINITY"
-#. type: TH
-#: build/C/man2/sched_setaffinity.2:35
-#, no-wrap
-msgid "2010-11-06"
-msgstr "2010-11-06"
-
#. type: Plain text
-#: build/C/man2/sched_setaffinity.2:39
+#: build/C/man2/sched_setaffinity.2:38
msgid ""
-"sched_setaffinity, sched_getaffinity - set and get a process's CPU affinity "
+"sched_setaffinity, sched_getaffinity - set and get a thread's CPU affinity "
"mask"
msgstr ""
-"sched_setaffinity, sched_getaffinity - ã\83\97ã\83ã\82»ã\82¹の CPU affinity マスクを設定・"
+"sched_setaffinity, sched_getaffinity - ã\82¹ã\83¬ã\83\83ã\83\89の CPU affinity マスクを設定・"
"取得する"
#. type: Plain text
-#: build/C/man2/sched_setaffinity.2:46
+#: build/C/man2/sched_setaffinity.2:45
#, no-wrap
msgid ""
"B<int sched_setaffinity(pid_t >I<pid>B<, size_t >I<cpusetsize>B<,>\n"
-"B< cpu_set_t *>I<mask>B<);>\n"
+"B< const cpu_set_t *>I<mask>B<);>\n"
msgstr ""
"B<int sched_setaffinity(pid_t >I<pid>B<, size_t >I<cpusetsize>B<,>\n"
-"B< cpu_set_t *>I<mask>B<);>\n"
+"B< const cpu_set_t *>I<mask>B<);>\n"
#. type: Plain text
-#: build/C/man2/sched_setaffinity.2:49
+#: build/C/man2/sched_setaffinity.2:48
#, no-wrap
msgid ""
"B<int sched_getaffinity(pid_t >I<pid>B<, size_t >I<cpusetsize>B<,>\n"
"B< cpu_set_t *>I<mask>B<);>\n"
#. type: Plain text
-#: build/C/man2/sched_setaffinity.2:64
+#: build/C/man2/sched_setaffinity.2:63
msgid ""
-"A process's CPU affinity mask determines the set of CPUs on which it is "
+"A thread's CPU affinity mask determines the set of CPUs on which it is "
"eligible to run. On a multiprocessor system, setting the CPU affinity mask "
"can be used to obtain performance benefits. For example, by dedicating one "
-"CPU to a particular process (i.e., setting the affinity mask of that process "
-"to specify a single CPU, and setting the affinity mask of all other "
-"processes to exclude that CPU), it is possible to ensure maximum execution "
-"speed for that process. Restricting a process to run on a single CPU also "
-"avoids the performance cost caused by the cache invalidation that occurs "
-"when a process ceases to execute on one CPU and then recommences execution "
-"on a different CPU."
-msgstr ""
-"ã\83\97ã\83ã\82»ã\82¹ã\81® CPU affinity (親å\92\8c度) ã\83\9eã\82¹ã\82¯ã\81¯ã\80\81ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹が 実行を許可されてい"
-"ã\82\8b CPU ã\81®é\9b\86å\90\88ã\82\92決å®\9aã\81\99ã\82\8bã\80\82 ã\83\9eã\83«ã\83\81ã\83\97ã\83ã\82»ã\83\83ã\82µã\83»ã\82·ã\82¹ã\83\86ã\83 ã\81§ã\81¯ã\80\81CPU affinity ã\83\9eã\82¹ã\82¯"
-"ã\82\92è¨å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81§ æ\80§è\83½ä¸\8aã\81®ã\83¡ã\83ªã\83\83ã\83\88ã\82\92å¾\97ã\82\89ã\82\8cã\82\8bå\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8bã\80\82 ä¾\8bã\81\88ã\81°ã\80\81ç\89¹å®\9aã\81®ã\83\97ã\83"
-"ã\82»ã\82¹ã\82\92ä¸\80ã\81¤ã\81® CPU ã\81«æ\8b¬ã\82\8aä»\98ã\81\91 (ã\81\99ã\81ªã\82\8fã\81¡ã\80\81ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹の affinity マスクを一つ"
-"ã\81® CPU ã\81«è¨å®\9aã\81\97)ã\80\81 ä»\96ã\81®å\85¨ã\81¦ã\81®ã\83\97ã\83ã\82»ã\82¹の affinity マスクからその CPU を除外す"
-"ã\82\8bã\81\93ã\81¨ã\81§ã\80\81 確å®\9fã\81«ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹の実行速度を最大にすることができる。 また、ある"
-"ã\83\97ã\83ã\82»ã\82¹の実行を一つの CPU に限定することで、 一つの CPU での実行を停止してか"
+"CPU to a particular thread (i.e., setting the affinity mask of that thread "
+"to specify a single CPU, and setting the affinity mask of all other threads "
+"to exclude that CPU), it is possible to ensure maximum execution speed for "
+"that thread. Restricting a thread to run on a single CPU also avoids the "
+"performance cost caused by the cache invalidation that occurs when a thread "
+"ceases to execute on one CPU and then recommences execution on a different "
+"CPU."
+msgstr ""
+"ã\82¹ã\83¬ã\83\83ã\83\89ã\81® CPU affinity (親å\92\8c度) ã\83\9eã\82¹ã\82¯ã\81¯ã\80\81ã\81\9dã\81®ã\82¹ã\83¬ã\83\83ã\83\89が 実行を許可されてい"
+"る CPU の集合を決定する。 マルチプロセッサシステムでは、CPU affinity マスク"
+"ã\82\92è¨å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81§ æ\80§è\83½ä¸\8aã\81®ã\83¡ã\83ªã\83\83ã\83\88ã\82\92å¾\97ã\82\89ã\82\8cã\82\8bå\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8bã\80\82 ä¾\8bã\81\88ã\81°ã\80\81ç\89¹å®\9aã\81®ã\82¹"
+"ã\83¬ã\83\83ã\83\89ã\82\92ä¸\80ã\81¤ã\81® CPU ã\81«æ\8b¬ã\82\8aä»\98ã\81\91 (ã\81\99ã\81ªã\82\8fã\81¡ã\80\81ã\81\9dã\81®ã\82¹ã\83¬ã\83\83ã\83\89の affinity マスクを一つ"
+"ã\81® CPU ã\81«è¨å®\9aã\81\97)ã\80\81 ä»\96ã\81®å\85¨ã\81¦ã\81®ã\82¹ã\83¬ã\83\83ã\83\89の affinity マスクからその CPU を除外す"
+"ã\82\8bã\81\93ã\81¨ã\81§ã\80\81 確å®\9fã\81«ã\81\9dã\81®ã\82¹ã\83¬ã\83\83ã\83\89の実行速度を最大にすることができる。 また、ある"
+"ã\82¹ã\83¬ã\83\83ã\83\89の実行を一つの CPU に限定することで、 一つの CPU での実行を停止してか"
"ら別の CPU で実行を再開するときに発生する キャッシュ無効化 (cache "
"invalidation) による性能面の劣化を避けることもできる。"
#. type: Plain text
-#: build/C/man2/sched_setaffinity.2:71
+#: build/C/man2/sched_setaffinity.2:70
msgid ""
"A CPU affinity mask is represented by the I<cpu_set_t> structure, a \"CPU set"
"\", pointed to by I<mask>. A set of macros for manipulating CPU sets is "
"ロ群については B<CPU_SET>(3) で記載されている。"
#. type: Plain text
-#: build/C/man2/sched_setaffinity.2:86
+#: build/C/man2/sched_setaffinity.2:85
msgid ""
-"B<sched_setaffinity>() sets the CPU affinity mask of the process whose ID "
-"is I<pid> to the value specified by I<mask>. If I<pid> is zero, then the "
-"calling process is used. The argument I<cpusetsize> is the length (in "
-"bytes) of the data pointed to by I<mask>. Normally this argument would be "
+"B<sched_setaffinity>() sets the CPU affinity mask of the thread whose ID is "
+"I<pid> to the value specified by I<mask>. If I<pid> is zero, then the "
+"calling thread is used. The argument I<cpusetsize> is the length (in bytes) "
+"of the data pointed to by I<mask>. Normally this argument would be "
"specified as I<sizeof(cpu_set_t)>."
msgstr ""
-"B<sched_setaffinity>() は、プロセスID が I<pid> のプロセスの CPU affinity マ"
-"スクを I<mask> で指定された値に設定する。 I<pid> が 0 の場合、呼び出し元プロ"
-"セスが使われる。 I<cpusetsize> 引き数には I<mask> が指すデータの長さ (バイト"
-"単位) である。 通常は、この引き数には I<sizeof(cpu_set_t)> を指定すればよい。"
+"B<sched_setaffinity>() は、スレッド ID が I<pid> のスレッドの CPU affinity "
+"マスクを I<mask> で指定された値に設定する。 I<pid> が 0 の場合、呼び出し元ス"
+"レッドが使われる。 I<cpusetsize> 引き数には I<mask> が指すデータの長さ (バイ"
+"ト単位) である。 通常は、この引き数には I<sizeof(cpu_set_t)> を指定すればよ"
+"い。"
#. type: Plain text
-#: build/C/man2/sched_setaffinity.2:93
+#: build/C/man2/sched_setaffinity.2:92
msgid ""
-"If the process specified by I<pid> is not currently running on one of the "
-"CPUs specified in I<mask>, then that process is migrated to one of the CPUs "
+"If the thread specified by I<pid> is not currently running on one of the "
+"CPUs specified in I<mask>, then that thread is migrated to one of the CPUs "
"specified in I<mask>."
msgstr ""
-"I<pid> ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\97ã\83ã\82»ã\82¹が I<mask> で指定された CPU のいずれかで現在実行さ"
-"ã\82\8cã\81¦ã\81\84ã\81ªã\81\84å ´å\90\88ã\80\81 ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹は I<mask> で指定された CPU のいずれかに移動され"
+"I<pid> ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82¹ã\83¬ã\83\83ã\83\89が I<mask> で指定された CPU のいずれかで現在実行さ"
+"ã\82\8cã\81¦ã\81\84ã\81ªã\81\84å ´å\90\88ã\80\81 ã\81\9dã\81®ã\82¹ã\83¬ã\83\83ã\83\89は I<mask> で指定された CPU のいずれかに移動され"
"る。"
#. type: Plain text
-#: build/C/man2/sched_setaffinity.2:108
+#: build/C/man2/sched_setaffinity.2:107
msgid ""
-"B<sched_getaffinity>() writes the affinity mask of the process whose ID is "
+"B<sched_getaffinity>() writes the affinity mask of the thread whose ID is "
"I<pid> into the I<cpu_set_t> structure pointed to by I<mask>. The "
"I<cpusetsize> argument specifies the size (in bytes) of I<mask>. If I<pid> "
-"is zero, then the mask of the calling process is returned."
+"is zero, then the mask of the calling thread is returned."
msgstr ""
-"B<sched_getaffinity>() ã\81¯ã\80\81 ã\83\97ã\83ã\82»ã\82¹ID ã\81\8c I<pid> ã\81®ã\83\97ã\83ã\82»ã\82¹の affinity マス"
+"B<sched_getaffinity>() ã\81¯ã\80\81 ã\82¹ã\83¬ã\83\83ã\83\89 ID ã\81\8c I<pid> ã\81®ã\82¹ã\83¬ã\83\83ã\83\89の affinity マス"
"クを I<mask> が指す I<cpu_set_t> 構造体に書き込む。 I<cpusetsize> 引き数には "
"I<mask> の (バイト単位の) 大きさを指定する。"
#. type: Plain text
-#: build/C/man2/sched_setaffinity.2:117
+#: build/C/man2/sched_setaffinity.2:116
msgid ""
"On success, B<sched_setaffinity>() and B<sched_getaffinity>() return 0. "
"On error, -1 is returned, and I<errno> is set appropriately."
"す。 エラーの場合は -1 を返し、 I<errno> を適切に設定する。"
#. type: Plain text
-#: build/C/man2/sched_setaffinity.2:121
+#: build/C/man2/sched_setaffinity.2:120
msgid "A supplied memory address was invalid."
msgstr "指定されたメモリ番地が不正である。"
#. type: Plain text
-#: build/C/man2/sched_setaffinity.2:129
+#: build/C/man2/sched_setaffinity.2:128
msgid ""
"The affinity bit mask I<mask> contains no processors that are currently "
-"physically on the system and permitted to the process according to any "
+"physically on the system and permitted to the thread according to any "
"restrictions that may be imposed by the \"cpuset\" mechanism described in "
"B<cpuset>(7)."
msgstr ""
-"ã\82·ã\82¹ã\83\86ã\83 ä¸\8aã\81«ç\8f¾å\9c¨å®\9fé\9a\9bã\81«å\98å\9c¨ã\81\97ã\80\81ã\81\8bã\81¤ \"cpuset\" æ©\9fæ§\8bã\81\8c課ã\81\99å\88¶é\99\90ã\81«ã\81\8aã\81\84ã\81¦ã\81\9dã\81®ã\83\97ã\83"
-"ã\82»ã\82¹ã\81«å¯¾ã\81\97ã\81¦è¨±å\8f¯ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8b ã\83\97ã\83ã\82»ã\83\83ã\82µã\81\8cã\80\81 affinity ã\83\93ã\83\83ã\83\88ã\83\9eã\82¹ã\82¯ I<mask> ã\81«å\90«"
-"まれていない。 \"cpuset\" 機構については B<cpuset>(7) を参照。"
+"ã\82·ã\82¹ã\83\86ã\83 ä¸\8aã\81«ç\8f¾å\9c¨å®\9fé\9a\9bã\81«å\98å\9c¨ã\81\97ã\80\81ã\81\8bã\81¤ \"cpuset\" æ©\9fæ§\8bã\81\8c課ã\81\99å\88¶é\99\90ã\81«ã\81\8aã\81\84ã\81¦ã\81\9dã\81®ã\82¹"
+"ã\83¬ã\83\83ã\83\89ã\81«å¯¾ã\81\97ã\81¦è¨±å\8f¯ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8b ã\83\97ã\83ã\82»ã\83\83ã\82µã\81\8cã\80\81 affinity ã\83\93ã\83\83ã\83\88ã\83\9eã\82¹ã\82¯ I<mask> ã\81«"
+"含まれていない。 \"cpuset\" 機構については B<cpuset>(7) を参照。"
#. type: Plain text
-#: build/C/man2/sched_setaffinity.2:136
+#: build/C/man2/sched_setaffinity.2:135
msgid ""
-"(B<sched_getaffinity>() and, in kernels before 2.6.9, B<sched_setaffinity>"
-"()) I<cpusetsize> is smaller than the size of the affinity mask used by the "
-"kernel."
+"(B<sched_getaffinity>() and, in kernels before 2.6.9, "
+"B<sched_setaffinity>()) I<cpusetsize> is smaller than the size of the "
+"affinity mask used by the kernel."
msgstr ""
"(B<sched_getaffinity>() と、カーネル 2.6.9 以前の B<sched_setaffinity>()) "
"I<cpusetsize> がカーネルで使われている affinity マスクのサイズより小さい。"
#. type: Plain text
-#: build/C/man2/sched_setaffinity.2:146
+#: build/C/man2/sched_setaffinity.2:145
msgid ""
-"(B<sched_setaffinity>()) The calling process does not have appropriate "
+"(B<sched_setaffinity>()) The calling thread does not have appropriate "
"privileges. The caller needs an effective user ID equal to the real user ID "
-"or effective user ID of the process identified by I<pid>, or it must possess "
+"or effective user ID of the thread identified by I<pid>, or it must possess "
"the B<CAP_SYS_NICE> capability."
msgstr ""
-"(B<sched_setaffinity>()) å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹に適切な特権がなかった。 呼び出"
-"ã\81\97å\85\83ã\81¯ã\80\81å®\9få\8a¹ã\83¦ã\83¼ã\82¶ ID ã\81\8c I<pid> ã\81§è\98å\88¥ã\81\95ã\82\8cã\82\8bã\83\97ã\83ã\82»ã\82¹の実ユーザ ID または実効"
+"(B<sched_setaffinity>()) å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\82¹ã\83¬ã\83\83ã\83\89に適切な特権がなかった。 呼び出"
+"ã\81\97å\85\83ã\81¯ã\80\81å®\9få\8a¹ã\83¦ã\83¼ã\82¶ ID ã\81\8c I<pid> ã\81§è\98å\88¥ã\81\95ã\82\8cã\82\8bã\82¹ã\83¬ã\83\83ã\83\89の実ユーザ ID または実効"
"ユーザ ID と同じであるか、 B<CAP_SYS_NICE> ケーパビリティ (capability) を持た"
"なければならない。"
#. type: Plain text
-#: build/C/man2/sched_setaffinity.2:149 build/C/man2/sched_setparam.2:111
-#: build/C/man2/sched_setscheduler.2:445
-msgid "The process whose ID is I<pid> could not be found."
-msgstr "プロセス ID I<pid> のプロセスが見つからなかった。"
+#: build/C/man2/sched_setaffinity.2:148 build/C/man2/sched_setscheduler.2:170
+msgid "The thread whose ID is I<pid> could not be found."
+msgstr "ID が I<pid> のスレッドが見つからなかった。"
#. type: Plain text
-#: build/C/man2/sched_setaffinity.2:160
+#: build/C/man2/sched_setaffinity.2:159
msgid ""
"The CPU affinity system calls were introduced in Linux kernel 2.5.8. The "
"system call wrappers were introduced in glibc 2.3. Initially, the glibc "
"復活した。"
#. type: Plain text
-#: build/C/man2/sched_setaffinity.2:162
+#: build/C/man2/sched_setaffinity.2:161
msgid "These system calls are Linux-specific."
msgstr "これらのシステムコールは Linux 固有である。"
#. type: Plain text
-#: build/C/man2/sched_setaffinity.2:175
+#: build/C/man2/sched_setaffinity.2:174
msgid ""
-"After a call to B<sched_setaffinity>(), the set of CPUs on which the process "
+"After a call to B<sched_setaffinity>(), the set of CPUs on which the thread "
"will actually run is the intersection of the set specified in the I<mask> "
"argument and the set of CPUs actually present on the system. The system may "
-"further restrict the set of CPUs on which the process runs if the \"cpuset\" "
+"further restrict the set of CPUs on which the thread runs if the \"cpuset\" "
"mechanism described in B<cpuset>(7) is being used. These restrictions on "
-"the actual set of CPUs on which the process will run are silently imposed by "
+"the actual set of CPUs on which the thread will run are silently imposed by "
"the kernel."
msgstr ""
-"B<sched_setaffinity>() ã\82\92å\91¼ã\81³å\87ºã\81\97ã\81\9få¾\8cã\81¯ã\80\81ã\83\97ã\83ã\82»ã\82¹が実際に実行される CPU の集"
+"B<sched_setaffinity>() ã\82\92å\91¼ã\81³å\87ºã\81\97ã\81\9få¾\8cã\81¯ã\80\81ã\82¹ã\83¬ã\83\83ã\83\89が実際に実行される CPU の集"
"合は、 I<mask> 引き数で指定された集合と、システム上に実際に存在する CPU の集"
-"å\90\88ã\81® å\85±é\80\9aé\9b\86å\90\88 (AND) ã\81¨ã\81ªã\82\8bã\80\82 \"cpuset\" æ©\9fæ§\8bã\81\8c使ç\94¨ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81«ã\81¯ã\80\81ã\83\97ã\83ã\82»"
-"ã\82¹が動作する CPU 集合 に対してシステムはさらに制限を加えるかもしれない "
-"(\"cpuset\" æ©\9fæ§\8bã\81«ã\81¤ã\81\84ã\81¦ã\81¯ B<cpuset>(7) ã\82\92å\8f\82ç\85§)ã\80\82 ã\83\97ã\83ã\82»ã\82¹が動作する実際の "
+"å\90\88ã\81® å\85±é\80\9aé\9b\86å\90\88 (AND) ã\81¨ã\81ªã\82\8bã\80\82 \"cpuset\" æ©\9fæ§\8bã\81\8c使ç\94¨ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81«ã\81¯ã\80\81ã\82¹ã\83¬ã\83\83"
+"ã\83\89が動作する CPU 集合 に対してシステムはさらに制限を加えるかもしれない "
+"(\"cpuset\" æ©\9fæ§\8bã\81«ã\81¤ã\81\84ã\81¦ã\81¯ B<cpuset>(7) ã\82\92å\8f\82ç\85§)ã\80\82 ã\82¹ã\83¬ã\83\83ã\83\89が動作する実際の "
"CPU 集合に対する制限はカーネルにより 暗黙のうちに適用される。"
#. type: Plain text
-#: build/C/man2/sched_setaffinity.2:195
+#: build/C/man2/sched_setaffinity.2:177
+msgid "B<sched>(7) has a description of the Linux scheduling scheme."
+msgstr "B<sched>(7) に Linux のスケジューリング方式についての説明がある。"
+
+#. type: Plain text
+#: build/C/man2/sched_setaffinity.2:194
msgid ""
-"The affinity mask is actually a per-thread attribute that can be adjusted "
+"The affinity mask is a per-thread attribute that can be adjusted "
"independently for each of the threads in a thread group. The value returned "
"from a call to B<gettid>(2) can be passed in the argument I<pid>. "
"Specifying I<pid> as 0 will set the attribute for the calling thread, and "
"POSIX threads API, then use B<pthread_setaffinity_np>(3) instead of "
"B<sched_setaffinity>().)"
msgstr ""
-"実際には affinity マスクはスレッド単位の属性で、スレッドグループの 各スレッド"
-"単位に独立して調整することができる。 B<gettid>(2) コールからの返り値をこの"
-"コールの I<pid> 引き数として渡すことができる。 I<pid> に 0 を指定すると呼び出"
-"ã\81\97å\85\83ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81®å±\9eæ\80§ã\81\8cè¨å®\9aã\81\95ã\82\8cã\80\81 B<getpid>(2) ã\82³ã\83¼ã\83«ã\81\8bã\82\89ã\81®è¿\94ã\82\8aå\80¤ã\82\92 I<pid> ã\81«"
-"指定するとスレッドグループのメインスレッドの属性が設定される (POSIX スレッド "
-"API を使用している場合、 B<sched_setaffinity>() の代わりに "
+"affinity マスクはスレッド単位の属性で、スレッドグループの 各スレッド単位に独"
+"立して調整することができる。 B<gettid>(2) コールからの返り値をこのコールの "
+"I<pid> 引き数として渡すことができる。 I<pid> に 0 を指定すると呼び出し元のス"
+"ã\83¬ã\83\83ã\83\89ã\81®å±\9eæ\80§ã\81\8cè¨å®\9aã\81\95ã\82\8cã\80\81 B<getpid>(2) ã\82³ã\83¼ã\83«ã\81\8bã\82\89ã\81®è¿\94ã\82\8aå\80¤ã\82\92 I<pid> ã\81«æ\8c\87å®\9aã\81\99ã\82\8b"
+"とスレッドグループのメインスレッドの属性が設定される (POSIX スレッド API を使"
+"用している場合、 B<sched_setaffinity>() の代わりに "
"B<pthread_setaffinity_np>(3) を使用すること)。"
#. type: Plain text
-#: build/C/man2/sched_setaffinity.2:201
+#: build/C/man2/sched_setaffinity.2:200
msgid ""
"A child created via B<fork>(2) inherits its parent's CPU affinity mask. "
"The affinity mask is preserved across an B<execve>(2)."
"承する。 affinity マスクは B<execve>(2) の前後で保存される。"
#. type: Plain text
-#: build/C/man2/sched_setaffinity.2:215
+#: build/C/man2/sched_setaffinity.2:214
msgid ""
"This manual page describes the glibc interface for the CPU affinity calls. "
"The actual system call interface is slightly different, with the I<mask> "
-"being typed as I<unsigned long *>, reflecting the fact that the underlying "
+"being typed as I<unsigned long\\ *>, reflecting the fact that the underlying "
"implementation of CPU sets is a simple bit mask. On success, the raw "
"B<sched_getaffinity>() system call returns the size (in bytes) of the "
"I<cpumask_t> data type that is used internally by the kernel to represent "
"the CPU set bit mask."
msgstr ""
"このマニュアルページでは CPU affinity コールの glibc インタフェースを 説明し"
-"ã\81¦ã\81\84ã\82\8bã\80\82å®\9fé\9a\9bã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\83»ã\82¤ã\83³ã\82¿ã\83\95ã\82§ã\83¼ã\82¹ã\81¯å°\91ã\81\97é\81\95ã\81£ã\81¦ã\81\8aã\82\8aã\80\81 å®\9fé\9a\9bã\81®å®\9fè£\85ã\81§"
+"ている。実際のシステムコールインタフェースは少し違っており、 実際の実装で"
"は CPU 集合は簡単なビットマスクであるという実状を反映し、 I<mask> の型が "
-"I<unsigned long *> となっている。 成功時には、生の B<sched_getaffinity>() シ"
-"ステムコール自身は I<cpumask_t> データ型の (バイト単位の) 大きさを返す。 "
+"I<unsigned long\\ *> となっている。 成功時には、生の B<sched_getaffinity>() "
+"ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«è\87ªèº«ã\81¯ I<cpumask_t> ã\83\87ã\83¼ã\82¿å\9e\8bã\81® (ã\83\90ã\82¤ã\83\88å\8d\98ä½\8dã\81®) 大ã\81\8dã\81\95ã\82\92è¿\94ã\81\99ã\80\82 "
"I<cpumask_t> はカーネル内部で CPU 集合のビットマスクを表現するのに 使われてい"
"るデータ型である。"
#. type: Plain text
-#: build/C/man2/sched_setaffinity.2:231
+#: build/C/man2/sched_setaffinity.2:234
msgid ""
-"B<clone>(2), B<getcpu>(2), B<getpriority>(2), B<gettid>(2), B<nice>(2), "
-"B<sched_get_priority_max>(2), B<sched_get_priority_min>(2), "
+"B<taskset>(1), B<clone>(2), B<getcpu>(2), B<getpriority>(2), B<gettid>(2), "
+"B<nice>(2), B<sched_get_priority_max>(2), B<sched_get_priority_min>(2), "
"B<sched_getscheduler>(2), B<sched_setscheduler>(2), B<setpriority>(2), "
"B<CPU_SET>(3), B<pthread_setaffinity_np>(3), B<sched_getcpu>(3), "
-"B<capabilities>(7), B<cpuset>(7)"
-msgstr ""
-"B<clone>(2), B<getcpu>(2), B<getpriority>(2), B<gettid>(2), B<nice>(2), "
-"B<sched_get_priority_max>(2), B<sched_get_priority_min>(2), "
-"B<sched_getscheduler>(2), B<sched_setscheduler>(2), B<setpriority>(2), "
-"B<CPU_SET>(3), B<pthread_setaffinity_np>(3), B<sched_getcpu>(3), "
-"B<capabilities>(7), B<cpuset>(7)"
+"B<capabilities>(7), B<cpuset>(7), B<sched>(7)"
+msgstr "B<taskset>(1), B<clone>(2), B<getcpu>(2), B<getpriority>(2), B<gettid>(2), B<nice>(2), B<sched_get_priority_max>(2), B<sched_get_priority_min>(2), B<sched_getscheduler>(2), B<sched_setscheduler>(2), B<setpriority>(2), B<CPU_SET>(3), B<pthread_setaffinity_np>(3), B<sched_getcpu>(3), B<capabilities>(7), B<cpuset>(7), B<sched>(7)"
#. type: TH
-#: build/C/man2/sched_setparam.2:31
+#: build/C/man2/sched_setparam.2:30
#, no-wrap
msgid "SCHED_SETPARAM"
msgstr "SCHED_SETPARAM"
+#. type: TH
+#: build/C/man2/sched_setparam.2:30
+#, no-wrap
+msgid "2014-05-11"
+msgstr "2014-05-11"
+
#. type: Plain text
-#: build/C/man2/sched_setparam.2:34
+#: build/C/man2/sched_setparam.2:33
msgid "sched_setparam, sched_getparam - set and get scheduling parameters"
msgstr ""
-"sched_setparam, sched_getparam - ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83»ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\81®è¨å®\9aã\81¨å\8f\96å¾\97ã\82\92è¡\8c"
+"sched_setparam, sched_getparam - スケジューリングパラメータの設定と取得を行"
"なう"
#. type: Plain text
-#: build/C/man2/sched_setparam.2:37 build/C/man2/sched_setscheduler.2:54
-#, no-wrap
-msgid "B<#include E<lt>sched.hE<gt>>\n"
-msgstr "B<#include E<lt>sched.hE<gt>>\n"
-
-#. type: Plain text
-#: build/C/man2/sched_setparam.2:39
+#: build/C/man2/sched_setparam.2:38
#, no-wrap
msgid "B<int sched_setparam(pid_t >I<pid>B<, const struct sched_param *>I<param>B<);>\n"
msgstr "B<int sched_setparam(pid_t >I<pid>B<, const struct sched_param *>I<param>B<);>\n"
#. type: Plain text
-#: build/C/man2/sched_setparam.2:41
+#: build/C/man2/sched_setparam.2:40
#, no-wrap
msgid "B<int sched_getparam(pid_t >I<pid>B<, struct sched_param *>I<param>B<);>\n"
msgstr "B<int sched_getparam(pid_t >I<pid>B<, struct sched_param *>I<param>B<);>\n"
#. type: Plain text
-#: build/C/man2/sched_setparam.2:47 build/C/man2/sched_setscheduler.2:66
+#: build/C/man2/sched_setparam.2:46
#, no-wrap
msgid ""
"B<struct sched_param {\n"
"};>\n"
#. type: Plain text
-#: build/C/man2/sched_setparam.2:61
+#: build/C/man2/sched_setparam.2:60
msgid ""
"B<sched_setparam>() sets the scheduling parameters associated with the "
"scheduling policy for the process identified by I<pid>. If I<pid> is zero, "
"then the parameters of the calling process are set. The interpretation of "
"the argument I<param> depends on the scheduling policy of the process "
-"identified by I<pid>. See B<sched_setscheduler>(2) for a description of "
-"the scheduling policies supported under Linux."
-msgstr ""
-"B<sched_setparam>() は I<pid> で指定されたプロセスのスケジューリング方針 "
-"(scheduling policy) に 関連するスケジューリング・パラメータを設定する。 "
-"I<pid> が 0 ならば、呼び出し元のプロセスのパラメータが設定される。 引き数 "
-"I<param> の解釈は、 I<pid> で指定されたプロセスのスケジューリング方針によって"
-"異なる。 Linux でサポートされているスケジューリング方針の説明は "
-"B<sched_setscheduler>(2) を参照のこと。"
+"identified by I<pid>. See B<sched>(7) for a description of the scheduling "
+"policies supported under Linux."
+msgstr "B<sched_setparam>() は I<pid> で指定されたプロセスのスケジューリング方針 (scheduling policy) に 関連するスケジューリングパラメータを設定する。 I<pid> が 0 ならば、呼び出し元のプロセスのパラメータが設定される。 引き数 I<param> の解釈は、 I<pid> で指定されたプロセスのスケジューリング方針によって異なる。 Linux でサポートされているスケジューリング方針の説明は B<sched>(7) を参照のこと。"
#. type: Plain text
-#: build/C/man2/sched_setparam.2:67
+#: build/C/man2/sched_setparam.2:66
msgid ""
"B<sched_getparam>() retrieves the scheduling parameters for the process "
"identified by I<pid>. If I<pid> is zero, then the parameters of the calling "
"process are retrieved."
msgstr ""
-"B<sched_getparam>() ã\81¯ I<pid> ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\97ã\83ã\82»ã\82¹ã\81®ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83»ã\83\91ã\83©"
+"B<sched_getparam>() は I<pid> で指定されたプロセスのスケジューリングパラ"
"メータを取得する。 I<pid> が 0 ならば、呼び出し元のプロセスのパラメータを取得"
"する。"
#. type: Plain text
-#: build/C/man2/sched_setparam.2:76
+#: build/C/man2/sched_setparam.2:75
msgid ""
"B<sched_setparam>() checks the validity of I<param> for the scheduling "
-"policy of the process. The value I<param-E<gt>sched_priority> must lie "
+"policy of the thread. The value I<param-E<gt>sched_priority> must lie "
"within the range given by B<sched_get_priority_min>(2) and "
"B<sched_get_priority_max>(2)."
msgstr ""
-"B<sched_setparam>() ã\81¯ã\83\97ã\83ã\82»ã\82¹のスケジューリング方針における I<param> の妥当"
+"B<sched_setparam>() ã\81¯ã\82¹ã\83¬ã\83\83ã\83\89のスケジューリング方針における I<param> の妥当"
"性をチェックする。 I<param-E<gt>sched_priority> の値は "
"B<sched_get_priority_min>(2) と B<sched_get_priority_max>(2) の範囲に入って"
"いなければならない。"
#. type: Plain text
-#: build/C/man2/sched_setparam.2:80
+#: build/C/man2/sched_setparam.2:79
msgid ""
"For a discussion of the privileges and resource limits related to scheduling "
-"priority and policy, see B<sched_setscheduler>(2)."
-msgstr ""
-"スケジューリングの優先度と方針に関連する特権とリソース制限の 議論に関しては "
-"B<sched_setscheduler>(2) を参照のこと。"
+"priority and policy, see B<sched>(7)."
+msgstr "スケジューリングの優先度と方針に関連する特権とリソース制限の 議論に関しては B<sched>(7) を参照のこと。"
#. type: Plain text
-#: build/C/man2/sched_setparam.2:88
+#: build/C/man2/sched_setparam.2:87
msgid ""
"POSIX systems on which B<sched_setparam>() and B<sched_getparam>() are "
"available define B<_POSIX_PRIORITY_SCHEDULING> in I<E<lt>unistd.hE<gt>>."
"る。"
#. type: Plain text
-#: build/C/man2/sched_setparam.2:97
+#: build/C/man2/sched_setparam.2:96
msgid ""
"On success, B<sched_setparam>() and B<sched_getparam>() return 0. On "
"error, -1 is returned, and I<errno> is set appropriately."
"成功した場合は B<sched_setparam>() と B<sched_getparam>() は 0 を返す。 エ"
"ラーの場合は -1 が返され、 I<errno> が適切に設定される。"
-#. type: Plain text
-#: build/C/man2/sched_setparam.2:102
-msgid ""
-"The argument I<param> does not make sense for the current scheduling policy."
-msgstr "引き数 I<param> が現在のスケジューリング方針においては 無意味である。"
-
-#. type: Plain text
-#: build/C/man2/sched_setparam.2:108
-msgid ""
-"The calling process does not have appropriate privileges (Linux: does not "
-"have the B<CAP_SYS_NICE> capability)."
-msgstr ""
-"呼び出し元のプロセスが適切な特権を持っていない (Linux では、 B<CAP_SYS_NICE> "
-"ケーパビリティを持っていない)。"
-
-#. type: Plain text
-#: build/C/man2/sched_setparam.2:124
-msgid ""
-"B<getpriority>(2), B<nice>(2), B<sched_get_priority_max>(2), "
-"B<sched_get_priority_min>(2), B<sched_getaffinity>(2), B<sched_getscheduler>"
-"(2), B<sched_setaffinity>(2), B<sched_setscheduler>(2), B<setpriority>(2), "
-"B<capabilities>(7)"
-msgstr ""
-"B<getpriority>(2), B<nice>(2), B<sched_get_priority_max>(2), "
-"B<sched_get_priority_min>(2), B<sched_getaffinity>(2), B<sched_getscheduler>"
-"(2), B<sched_setaffinity>(2), B<sched_setscheduler>(2), B<setpriority>(2), "
-"B<capabilities>(7)"
-
-#. type: TH
-#: build/C/man2/sched_setscheduler.2:47
-#, no-wrap
-msgid "SCHED_SETSCHEDULER"
-msgstr "SCHED_SETSCHEDULER"
-
-#. type: TH
-#: build/C/man2/sched_setscheduler.2:47
-#, fuzzy, no-wrap
-#| msgid "2010-09-10"
-msgid "2011-09-19"
-msgstr "2010-09-10"
-
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:51
-msgid ""
-"sched_setscheduler, sched_getscheduler - set and get scheduling policy/"
-"parameters"
-msgstr ""
-"sched_setscheduler, sched_getscheduler - スケジューリング・ポリシーとパラメー"
-"タを設定/取得する"
-
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:56
-#, no-wrap
-msgid "B<int sched_setscheduler(pid_t >I<pid>B<, int >I<policy>B<,>\n"
-msgstr "B<int sched_setscheduler(pid_t >I<pid>B<, int >I<policy>B<,>\n"
-
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:58
-#, no-wrap
-msgid "B< const struct sched_param *>I<param>B<);>\n"
-msgstr "B< const struct sched_param *>I<param>B<);>\n"
-
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:60
-#, no-wrap
-msgid "B<int sched_getscheduler(pid_t >I<pid>B<);>\n"
-msgstr "B<int sched_getscheduler(pid_t >I<pid>B<);>\n"
-
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:77
-msgid ""
-"B<sched_setscheduler>() sets both the scheduling policy and the associated "
-"parameters for the process whose ID is specified in I<pid>. If I<pid> "
-"equals zero, the scheduling policy and parameters of the calling process "
-"will be set. The interpretation of the argument I<param> depends on the "
-"selected policy. Currently, Linux supports the following \"normal\" (i.e., "
-"non-real-time) scheduling policies:"
-msgstr ""
-"B<sched_setscheduler>() は I<pid> で指定された ID を持つプロセスのスケジュー"
-"リング・ポリシーや それに関連するパラメータを設定する。I<pid> が 0 の場合は "
-"呼び出したプロセスのスケジューリング・ポリシーとパラメータが設定される。 引き"
-"数 I<param> の解釈は選択されたポリシーによる。 現在のところ、Linux では 以下"
-"に示す「通常」(リアルタイムでない) スケジューリング・ポリシーが サポートされ"
-"ている。"
-
-#. type: TP
-#: build/C/man2/sched_setscheduler.2:77
-#, no-wrap
-msgid "B<SCHED_OTHER>"
-msgstr "B<SCHED_OTHER>"
-
-#. In the 2.6 kernel sources, SCHED_OTHER is actually called
-#. SCHED_NORMAL.
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:82
-msgid "the standard round-robin time-sharing policy;"
-msgstr "標準の、ラウンドロビンによる時分割型のスケジューリング・ポリシー。"
-
-#. type: TP
-#: build/C/man2/sched_setscheduler.2:82
-#, no-wrap
-msgid "B<SCHED_BATCH>"
-msgstr "B<SCHED_BATCH>"
-
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:85
-msgid "for \"batch\" style execution of processes; and"
-msgstr "「バッチ」形式でのプロセスの実行用。"
-
-#. type: TP
-#: build/C/man2/sched_setscheduler.2:85
-#, no-wrap
-msgid "B<SCHED_IDLE>"
-msgstr "B<SCHED_IDLE>"
-
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:90
-msgid "for running I<very> low priority background jobs."
-msgstr "「非常に」低い優先度で動作するバックグラウンド・ジョブ用。"
-
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:94
-msgid ""
-"The following \"real-time\" policies are also supported, for special time-"
-"critical applications that need precise control over the way in which "
-"runnable processes are selected for execution:"
-msgstr ""
-"どの実行可能プロセスを選択するかについて、より正確な制御を必要とする 時間の制"
-"約が厳しい特別なアプリケーション用として、 以下の「リアルタイム」ポリシーもサ"
-"ポートされている。"
-
-#. type: TP
-#: build/C/man2/sched_setscheduler.2:94
-#, no-wrap
-msgid "B<SCHED_FIFO>"
-msgstr "B<SCHED_FIFO>"
-
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:97
-msgid "a first-in, first-out policy; and"
-msgstr "ファーストイン、ファーストアウト型のポリシー。"
-
-#. type: TP
-#: build/C/man2/sched_setscheduler.2:97
-#, no-wrap
-msgid "B<SCHED_RR>"
-msgstr "B<SCHED_RR>"
-
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:100
-msgid "a round-robin policy."
-msgstr "ラウンドロビン型のポリシー。"
-
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:102
-msgid "The semantics of each of these policies are detailed below."
-msgstr "これらのポリシーのそれぞれの動作については以下で説明する。"
-
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:109
-msgid ""
-"B<sched_getscheduler>() queries the scheduling policy currently applied to "
-"the process identified by I<pid>. If I<pid> equals zero, the policy of the "
-"calling process will be retrieved."
-msgstr ""
-"B<sched_getscheduler>() は I<pid> で識別されるプロセスに現在適用されている "
-"スケジューリング・ポリシーを尋ねる。I<pid> が 0 ならば、呼び出した プロセス自"
-"身のスケジューリング・ポリシーが返される。"
-
-#. type: SS
-#: build/C/man2/sched_setscheduler.2:109
-#, no-wrap
-msgid "Scheduling Policies"
-msgstr "スケジューリング・ポリシー (scheduling policy)"
-
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:118
-msgid ""
-"The scheduler is the kernel component that decides which runnable process "
-"will be executed by the CPU next. Each process has an associated scheduling "
-"policy and a I<static> scheduling priority, I<sched_priority>; these are the "
-"settings that are modified by B<sched_setscheduler>(). The scheduler makes "
-"it decisions based on knowledge of the scheduling policy and static priority "
-"of all processes on the system."
-msgstr ""
-"スケジューラ (scheduler) とはカーネルの構成要素で、 次に CPU で実行される実行"
-"可能なプロセスを決定するものである。 各々のプロセスには、スケジューリング・ポ"
-"リシーと 「静的」なスケジューリング優先度 I<sched_priority> が対応付けられ、 "
-"これらの設定は B<sched_setscheduler>() で変更できる。 スケジューラは、システ"
-"ム上の全プロセスのスケジューリング・ポリシーと 静的優先度に関する知識に基づい"
-"て決定を行う。"
-
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:123
-msgid ""
-"For processes scheduled under one of the normal scheduling policies "
-"(B<SCHED_OTHER>, B<SCHED_IDLE>, B<SCHED_BATCH>), I<sched_priority> is not "
-"used in scheduling decisions (it must be specified as 0)."
-msgstr ""
-"通常のスケジューリング・ポリシー (B<SCHED_OTHER>, B<SCHED_IDLE>, "
-"B<SCHED_BATCH>) の下でスケジューリングされるプロセスでは、 "
-"I<sched_priority> はスケジューリングの決定に使用されない (I<sched_priority> "
-"には 0 を指定しなければならない)。"
-
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:137
-msgid ""
-"Processes scheduled under one of the real-time policies (B<SCHED_FIFO>, "
-"B<SCHED_RR>) have a I<sched_priority> value in the range 1 (low) to 99 "
-"(high). (As the numbers imply, real-time processes always have higher "
-"priority than normal processes.) Note well: POSIX.1-2001 only requires an "
-"implementation to support a minimum 32 distinct priority levels for the real-"
-"time policies, and some systems supply just this minimum. Portable programs "
-"should use B<sched_get_priority_min>(2) and B<sched_get_priority_max>(2) "
-"to find the range of priorities supported for a particular policy."
-msgstr ""
-"リアルタイム・スケジューリング・ポリシー (B<SCHED_FIFO>, B<SCHED_RR>) の下で"
-"スケジューリングされるプロセスは、 I<sched_priority> の値は 1 (最低) から 99 "
-"(最高) の範囲となる (数字から分かるように、リアルタイム・プロセスは常に通常の"
-"プロセスよりも 高い優先度を持つ)。 ここで注意すべきなのは、POSIX.1-2001 が要"
-"求しているのは、 リアルタイム・ポリシーの実装において最低 32 種類の異なる優先"
-"度レベルが サポートされることだけであり、いくつかのシステムではこの最低限の数"
-"の 優先度しか提供されていない、ということである。 移植性が必要なプログラムで"
-"は、 B<sched_get_priority_min>(2) と B<sched_get_priority_max>(2) を使っ"
-"て、あるポリシーがサポートする優先度の範囲を調べるべきである。"
-
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:143
-msgid ""
-"Conceptually, the scheduler maintains a list of runnable processes for each "
-"possible I<sched_priority> value. In order to determine which process runs "
-"next, the scheduler looks for the nonempty list with the highest static "
-"priority and selects the process at the head of this list."
-msgstr ""
-"概念としては、 スケジューラはその I<sched_priority> の値それぞれに対して 実行"
-"可能なプロセスのリストを管理している。 どのプロセスを次に実行するかを決定する"
-"ために、 スケジューラは静的優先度の最も高い空でないリストを探して、 そのリス"
-"トの先頭のプロセスを選択する。"
-
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:147
-msgid ""
-"A process's scheduling policy determines where it will be inserted into the "
-"list of processes with equal static priority and how it will move inside "
-"this list."
-msgstr ""
-"各プロセスのスケジューリング・ポリシーは、 そのプロセスが同じ静的優先度を持つ"
-"プロセスのリストの中のどこに挿入され、 このリストの中をどのように移動するかを"
-"決定する。"
-
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:155
-msgid ""
-"All scheduling is preemptive: if a process with a higher static priority "
-"becomes ready to run, the currently running process will be preempted and "
-"returned to the wait list for its static priority level. The scheduling "
-"policy only determines the ordering within the list of runnable processes "
-"with equal static priority."
-msgstr ""
-"全てのスケジューリングはプリエンプティブ (preemptive) である: より高い優先度"
-"のプロセスが実行可能になると、現在実行中のプロセスは実行権を 取り上げられ "
-"(preempted)、そのプロセスの静的優先度レベルの待ちリストに 戻される。スケ"
-"ジューリング・ポリシーは同じ静的優先度を持つ実行可能な プロセスのリストの中で"
-"順番のみを決定する。"
-
-#. type: SS
-#: build/C/man2/sched_setscheduler.2:155
-#, no-wrap
-msgid "SCHED_FIFO: First In-First Out scheduling"
-msgstr "SCHED_FIFO: ファーストイン・ファーストアウト・スケジューリング"
-
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:164
-msgid ""
-"B<SCHED_FIFO> can only be used with static priorities higher than 0, which "
-"means that when a B<SCHED_FIFO> processes becomes runnable, it will always "
-"immediately preempt any currently running B<SCHED_OTHER>, B<SCHED_BATCH>, or "
-"B<SCHED_IDLE> process. B<SCHED_FIFO> is a simple scheduling algorithm "
-"without time slicing. For processes scheduled under the B<SCHED_FIFO> "
-"policy, the following rules apply:"
-msgstr ""
-"B<SCHED_FIFO> は 0 より大きな静的優先度でのみ使用できる。このポリシーでは、 "
-"B<SCHED_FIFO> プロセスが実行可能になった場合、 そのポリシーが "
-"B<SCHED_OTHER>、 B<SCHED_BATCH>、 B<SCHED_IDLE> の 現在実行中のプロセスは直ち"
-"に実行権を取り上げられる。 B<SCHED_FIFO> は時分割のない単純なスケジューリン"
-"グ・アルゴリズムである。 B<SCHED_FIFO> ポリシーでスケジューリングされているプ"
-"ロセスには以下の ルールが適用される:"
-
-#. type: IP
-#: build/C/man2/sched_setscheduler.2:164 build/C/man2/sched_setscheduler.2:169
-#: build/C/man2/sched_setscheduler.2:172 build/C/man2/sched_setscheduler.2:186
-#: build/C/man2/sched_setscheduler.2:288 build/C/man2/sched_setscheduler.2:296
-#: build/C/man2/sched_setscheduler.2:337 build/C/man2/sched_setscheduler.2:345
-#: build/C/man2/sched_setscheduler.2:350 build/C/man2/sched_setscheduler.2:355
-#, no-wrap
-msgid "*"
-msgstr "*"
-
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:169
-msgid ""
-"A B<SCHED_FIFO> process that has been preempted by another process of higher "
-"priority will stay at the head of the list for its priority and will resume "
-"execution as soon as all processes of higher priority are blocked again."
-msgstr ""
-"より高い優先度の他のプロセスによって取って代わられた B<SCHED_FIFO> プロセスは"
-"その優先度のリストの先頭に留まり続け、 より高い優先度のプロセス全てが停止 "
-"(block) した場合に実行を再開する。"
-
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:172
-msgid ""
-"When a B<SCHED_FIFO> process becomes runnable, it will be inserted at the "
-"end of the list for its priority."
-msgstr ""
-"B<SCHED_FIFO> プロセスが実行可能になった時、その優先度のリストの最後 に挿入さ"
-"れる。"
-
-#. In 2.2.x and 2.4.x, the process is placed at the front of the queue
-#. In 2.0.x, the Right Thing happened: the process went to the back -- MTK
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:186
-msgid ""
-"A call to B<sched_setscheduler>() or B<sched_setparam>(2) will put the "
-"B<SCHED_FIFO> (or B<SCHED_RR>) process identified by I<pid> at the start of "
-"the list if it was runnable. As a consequence, it may preempt the currently "
-"running process if it has the same priority. (POSIX.1-2001 specifies that "
-"the process should go to the end of the list.)"
-msgstr ""
-"B<sched_setscheduler>() や B<sched_setparam>(2) は I<pid> で指定された "
-"B<SCHED_FIFO> (または B<SCHED_RR>) プロセスが 実行可能な場合、リストの最初に"
-"置く。 結果として、もし優先度が同じだった場合、 現在実行中のプロセスに先んじ"
-"るかもしれない。 (POSIX.1-2001 ではプロセスはリストの最後に行くべきと規定され"
-"ている。)"
-
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:190
-msgid ""
-"A process calling B<sched_yield>(2) will be put at the end of the list."
-msgstr "B<sched_yield>(2) を呼び出したプロセスはリストの最後に置かれる。"
-
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:194
-msgid ""
-"No other events will move a process scheduled under the B<SCHED_FIFO> policy "
-"in the wait list of runnable processes with equal static priority."
-msgstr ""
-"その他のイベントによって B<SCHED_FIFO> ポリシーで スケジューリングされるプロ"
-"セスが同じ優先度の実行可能な プロセスの待ちリストの中を移動することはない。"
-
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:199
-msgid ""
-"A B<SCHED_FIFO> process runs until either it is blocked by an I/O request, "
-"it is preempted by a higher priority process, or it calls B<sched_yield>(2)."
-msgstr ""
-"B<SCHED_FIFO> プロセスは I/O 要求によって停止するか、 より高い優先度のプロセ"
-"スによって置きかえられるか、 B<sched_yield>(2) を呼び出すまで実行を続ける。"
-
-#. type: SS
-#: build/C/man2/sched_setscheduler.2:199
-#, no-wrap
-msgid "SCHED_RR: Round Robin scheduling"
-msgstr "SCHED_RR: ラウンド・ロビン (round robin) ・スケジューリング"
-
-#. On Linux 2.4, the length of the RR interval is influenced
-#. by the process nice value -- MTK
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:218
-msgid ""
-"B<SCHED_RR> is a simple enhancement of B<SCHED_FIFO>. Everything described "
-"above for B<SCHED_FIFO> also applies to B<SCHED_RR>, except that each "
-"process is only allowed to run for a maximum time quantum. If a B<SCHED_RR> "
-"process has been running for a time period equal to or longer than the time "
-"quantum, it will be put at the end of the list for its priority. A "
-"B<SCHED_RR> process that has been preempted by a higher priority process and "
-"subsequently resumes execution as a running process will complete the "
-"unexpired portion of its round robin time quantum. The length of the time "
-"quantum can be retrieved using B<sched_rr_get_interval>(2)."
-msgstr ""
-"B<SCHED_RR> は B<SCHED_FIFO> の単純な拡張である。 上述された B<SCHED_FIFO> に"
-"関する記述は全て B<SCHED_RR> に 適用できる。異なるのはそれぞれのプロセスは最"
-"大時間単位までしか実行できない ということである。B<SCHED_RR> プロセスが時間単"
-"位と同じかそれより 長い時間実行されると、その優先度のリストの最後に置かれ"
-"る。 より高い優先度のプロセスによって置きかえられ、その後実行を再開した "
-"B<SCHED_RR> プロセスは、そのラウンド・ロビン時間単位を完全に使い切る まで実行"
-"される。その時間単位の長さは B<sched_rr_get_interval>(2) を使って取得でき"
-"る。"
-
-#. type: SS
-#: build/C/man2/sched_setscheduler.2:218
-#, no-wrap
-msgid "SCHED_OTHER: Default Linux time-sharing scheduling"
-msgstr "SCHED_OTHER: Linux のデフォルトの時分割スケジューリング"
+#. type: Plain text
+#: build/C/man2/sched_setparam.2:104
+msgid "Invalid arguments: I<param> is NULL or I<pid> is negative"
+msgstr "無効な引き数: I<param> が NULL である、または I<pid> が負である。"
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:234
+#: build/C/man2/sched_setparam.2:109
msgid ""
-"B<SCHED_OTHER> can only be used at static priority 0. B<SCHED_OTHER> is the "
-"standard Linux time-sharing scheduler that is intended for all processes "
-"that do not require the special real-time mechanisms. The process to run is "
-"chosen from the static priority 0 list based on a I<dynamic> priority that "
-"is determined only inside this list. The dynamic priority is based on the "
-"nice value (set by B<nice>(2) or B<setpriority>(2)) and increased for each "
-"time quantum the process is ready to run, but denied to run by the "
-"scheduler. This ensures fair progress among all B<SCHED_OTHER> processes."
-msgstr ""
-"B<SCHED_OTHER> は静的優先度 0 でのみ使用できる。 B<SCHED_OTHER> は Linux 標準"
-"の時分割スケジューラで、 特別なリアルタイム機構を必要としていない全てのプロセ"
-"スで使用される。 実行するプロセスは、静的優先度 0 のリストから、このリストの"
-"中だけで 決定される「動的な」優先度 (dynamic priority) に基いて決定される。 "
-"動的な優先度は (B<nice>(2) や B<setpriority>(2) により設定される) nice 値に"
-"基づいて決定されるもので、 単位時間毎に、プロセスが実行可能だが、スケジューラ"
-"により実行が拒否された 場合にインクリメントされる。 これにより、全ての "
-"B<SCHED_OTHER> プロセスでの公平性が保証される。"
+"(B<sched_setparam>()) The argument I<param> does not make sense for the "
+"current scheduling policy."
+msgstr "(B<sched_setparam>()) 引き数 I<param> が現在のスケジューリング方針においては 無意味である。"
-#. type: SS
-#: build/C/man2/sched_setscheduler.2:234
-#, no-wrap
-msgid "SCHED_BATCH: Scheduling batch processes"
-msgstr "SCHED_BATCH: バッチプロセスのスケジューリング"
+#. type: Plain text
+#: build/C/man2/sched_setparam.2:116
+msgid ""
+"(B<sched_setparam>()) The calling process does not have appropriate "
+"privileges (Linux: does not have the B<CAP_SYS_NICE> capability)."
+msgstr "(B<sched_setparam>()) 呼び出し元のプロセスが適切な特権を持っていない (Linux では、 B<CAP_SYS_NICE> ケーパビリティを持っていない)。"
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:246
+#: build/C/man2/sched_setparam.2:119
+msgid "The process whose ID is I<pid> could not be found."
+msgstr "プロセス ID I<pid> のプロセスが見つからなかった。"
+
+#. type: Plain text
+#: build/C/man2/sched_setparam.2:127
msgid ""
-"(Since Linux 2.6.16.) B<SCHED_BATCH> can only be used at static priority "
-"0. This policy is similar to B<SCHED_OTHER> in that it schedules the "
-"process according to its dynamic priority (based on the nice value). The "
-"difference is that this policy will cause the scheduler to always assume "
-"that the process is CPU-intensive. Consequently, the scheduler will apply a "
-"small scheduling penalty with respect to wakeup behaviour, so that this "
-"process is mildly disfavored in scheduling decisions."
-msgstr ""
-"(Linux 2.6.16 以降) B<SCHED_BATCH> は静的優先度 0 でのみ使用できる。 このポ"
-"リシーは (nice 値に基づく) 動的な優先度にしたがってプロセスの スケジューリン"
-"グが行われるという点で、B<SCHED_OTHER> に似ている。 異なるのは、このポリシー"
-"では、プロセスが常に CPU に負荷のかかる (CPU-intensive) 処理を行うと、スケ"
-"ジューラが仮定する点である。 スケジューラはプロセスを呼び起こす毎にそのプロセ"
-"スにスケジューリング上の ペナルティを少し課し、その結果、このプロセスはスケ"
-"ジューリングの決定で 若干冷遇されるようになる。"
+"Scheduling parameters are in fact per-thread attributes on Linux; see "
+"B<sched>(7)."
+msgstr "Linux では、スケジューリングパラメータは実際にはスレッド単位の属性である。 B<sched>(7) 参照。"
-#. The following paragraph is drawn largely from the text that
-#. accompanied Ingo Molnar's patch for the implementation of
-#. SCHED_BATCH.
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:255
+#: build/C/man2/sched_setparam.2:142
msgid ""
-"This policy is useful for workloads that are noninteractive, but do not want "
-"to lower their nice value, and for workloads that want a deterministic "
-"scheduling policy without interactivity causing extra preemptions (between "
-"the workload's tasks)."
-msgstr ""
-"このポリシーは、非対話的な処理だがその nice 値を下げたくない処理や、 (処理の"
-"タスク間で) 余計なタスクの置き換えの原因とある対話的な処理なしで 確定的な "
-"(deterministic) スケジューリング・ポリシーを適用したい処理に 対して有効であ"
-"る。"
+"B<getpriority>(2), B<nice>(2), B<sched_get_priority_max>(2), "
+"B<sched_get_priority_min>(2), B<sched_getaffinity>(2), "
+"B<sched_getscheduler>(2), B<sched_setaffinity>(2), B<sched_setscheduler>(2), "
+"B<sched_setattr>(2), B<setpriority>(2), B<capabilities>(7), B<sched>(7)"
+msgstr "B<getpriority>(2), B<nice>(2), B<sched_get_priority_max>(2), B<sched_get_priority_min>(2), B<sched_getaffinity>(2), B<sched_getscheduler>(2), B<sched_setaffinity>(2), B<sched_setscheduler>(2), B<sched_setattr>(2), B<setpriority>(2), B<capabilities>(7), B<sched>(7)"
-#. type: SS
-#: build/C/man2/sched_setscheduler.2:255
+#. type: TH
+#: build/C/man2/sched_setscheduler.2:26
+#, no-wrap
+msgid "SCHED_SETSCHEDULER"
+msgstr "SCHED_SETSCHEDULER"
+
+#. type: TH
+#: build/C/man2/sched_setscheduler.2:26
#, no-wrap
-msgid "SCHED_IDLE: Scheduling very low priority jobs"
-msgstr "SCHED_IDLE: 非常に優先度の低いジョブのスケジューリング"
+msgid "2014-05-21"
+msgstr "2014-05-21"
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:259
+#: build/C/man2/sched_setscheduler.2:30
msgid ""
-"(Since Linux 2.6.23.) B<SCHED_IDLE> can only be used at static priority 0; "
-"the process nice value has no influence for this policy."
+"sched_setscheduler, sched_getscheduler - set and get scheduling policy/"
+"parameters"
msgstr ""
-"(Linux 2.6.23 以降) B<SCHED_IDLE> は静的優先度 0 でのみ使用できる。 このポリ"
-"ã\82·ã\83¼ã\81§ã\81¯ã\83\97ã\83ã\82»ã\82¹ã\81® nice å\80¤ã\81¯ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\81«å½±é\9f¿ã\82\92ä¸\8eã\81\88ã\81ªã\81\84ã\80\82"
+"sched_setscheduler, sched_getscheduler - スケジューリングポリシーとパラメー"
+"ã\82¿ã\82\92è¨å®\9a/å\8f\96å¾\97ã\81\99ã\82\8b"
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:267
-msgid ""
-"This policy is intended for running jobs at extremely low priority (lower "
-"even than a +19 nice value with the B<SCHED_OTHER> or B<SCHED_BATCH> "
-"policies)."
-msgstr ""
-"非常に低い優先度でのジョブの実行を目的としたものである (非常に低い優先度と"
-"は、ポリシー B<SCHED_OTHER> か B<SCHED_BATCH> での nice 値 +19 よりさらに低い"
-"優先度である)。"
+#: build/C/man2/sched_setscheduler.2:35
+#, no-wrap
+msgid "B<int sched_setscheduler(pid_t >I<pid>B<, int >I<policy>B<,>\n"
+msgstr "B<int sched_setscheduler(pid_t >I<pid>B<, int >I<policy>B<,>\n"
-#. type: SS
-#: build/C/man2/sched_setscheduler.2:267
+#. type: Plain text
+#: build/C/man2/sched_setscheduler.2:37
#, no-wrap
-msgid "Resetting scheduling policy for child processes"
-msgstr ""
+msgid "B< const struct sched_param *>I<param>B<);>\n"
+msgstr "B< const struct sched_param *>I<param>B<);>\n"
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:283
-msgid ""
-"Since Linux 2.6.32, the B<SCHED_RESET_ON_FORK> flag can be ORed in I<policy> "
-"when calling B<sched_setscheduler>(). As a result of including this flag, "
-"children created by B<fork>(2) do not inherit privileged scheduling "
-"policies. This feature is intended for media-playback applications, and can "
-"be used to prevent applications evading the B<RLIMIT_RTTIME> resource limit "
-"(see B<getrlimit>(2)) by creating multiple child processes."
-msgstr ""
+#: build/C/man2/sched_setscheduler.2:39
+#, no-wrap
+msgid "B<int sched_getscheduler(pid_t >I<pid>B<);>\n"
+msgstr "B<int sched_getscheduler(pid_t >I<pid>B<);>\n"
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:288
+#: build/C/man2/sched_setscheduler.2:49
msgid ""
-"More precisely, if the B<SCHED_RESET_ON_FORK> flag is specified, the "
-"following rules apply for subsequently created children:"
-msgstr ""
+"The B<sched_setscheduler>() system call sets both the scheduling policy and "
+"parameters for the thread whose ID is specified in I<pid>. If I<pid> equals "
+"zero, the scheduling policy and parameters of the calling thread will be set."
+msgstr "B<sched_setscheduler>() システムコールは、 I<pid> で指定された ID を持つスレッドのスケジューリングポリシーとスケジューリングパラメーターの両方を設定する。 I<pid> が 0 の場合、呼び出したスレッド自身のスケジューリングポリシーとスケジューリングパラメーターが設定される。"
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:296
+#: build/C/man2/sched_setscheduler.2:53
msgid ""
-"If the calling process has a scheduling policy of B<SCHED_FIFO> or "
-"B<SCHED_RR>, the policy is reset to B<SCHED_OTHER> in child processes."
+"The scheduling parameters are specified in the I<param> argument, which is a "
+"pointer to a structure of the following form:"
msgstr ""
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:299
+#: build/C/man2/sched_setscheduler.2:61
+#, no-wrap
msgid ""
-"If the calling process has a negative nice value, the nice value is reset to "
-"zero in child processes."
+"struct sched_param {\n"
+" ...\n"
+" int sched_priority;\n"
+" ...\n"
+"};\n"
msgstr ""
+"struct sched_param {\n"
+" ...\n"
+" int sched_priority;\n"
+" ...\n"
+"};\n"
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:308
+#: build/C/man2/sched_setscheduler.2:69
msgid ""
-"After the B<SCHED_RESET_ON_FORK> flag has been enabled, it can only be reset "
-"if the process has the B<CAP_SYS_NICE> capability. This flag is disabled in "
-"child processes created by B<fork>(2)."
+"In the current implementation, the structure contains only one field, "
+"I<sched_priority>. The interpretation of I<param> depends on the selected "
+"policy."
msgstr ""
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:314
+#: build/C/man2/sched_setscheduler.2:73
msgid ""
-"The B<SCHED_RESET_ON_FORK> flag is visible in the policy value returned by "
-"B<sched_getscheduler>()"
+"Currently, Linux supports the following \"normal\" (i.e., non-real-time) "
+"scheduling policies as values that may be specified in I<policy>:"
msgstr ""
-#. type: SS
-#: build/C/man2/sched_setscheduler.2:314
+#. type: TP
+#: build/C/man2/sched_setscheduler.2:73
#, no-wrap
-msgid "Privileges and resource limits"
-msgstr "特権とリソース制限"
+msgid "B<SCHED_OTHER>"
+msgstr "B<SCHED_OTHER>"
+#. In the 2.6 kernel sources, SCHED_OTHER is actually called
+#. SCHED_NORMAL.
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:327
-msgid ""
-"In Linux kernels before 2.6.12, only privileged (B<CAP_SYS_NICE>) processes "
-"can set a nonzero static priority (i.e., set a real-time scheduling "
-"policy). The only change that an unprivileged process can make is to set "
-"the B<SCHED_OTHER> policy, and this can only be done if the effective user "
-"ID of the caller of B<sched_setscheduler>() matches the real or effective "
-"user ID of the target process (i.e., the process specified by I<pid>) whose "
-"policy is being changed."
-msgstr ""
-"2.6.12 より前のバージョンの Linux カーネルでは、 特権プロセス "
-"(B<CAP_SYS_NICE> ケーパビリティを持つプロセス) だけが 0 以外の静的優先度を設"
-"定する (すなわち、リアルタイム・スケジューリング・ポリシーを設定する) ことが"
-"できる。 非特権プロセスができる変更は B<SCHED_OTHER> ポリシーを設定することだ"
-"けであり、さらにこの変更を行えるのは B<sched_setscheduler>() の呼び出し元の"
-"実効ユーザ ID がポリシーの変更対象プロセス (I<pid> で指定されたプロセス) の実"
-"ユーザ ID か実効ユーザ ID と 一致する場合だけである。"
+#: build/C/man2/sched_setscheduler.2:78
+msgid "the standard round-robin time-sharing policy;"
+msgstr "標準の、ラウンドロビンによる時分割型のスケジューリングポリシー。"
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:337
-msgid ""
-"Since Linux 2.6.12, the B<RLIMIT_RTPRIO> resource limit defines a ceiling on "
-"an unprivileged process's static priority for the B<SCHED_RR> and "
-"B<SCHED_FIFO> policies. The rules for changing scheduling policy and "
-"priority are as follows:"
-msgstr ""
-"Linux 2.6.12 以降では、リソース制限 B<RLIMIT_RTPRIO> が定義されており、 スケ"
-"ジューリング・ポリシーが B<SCHED_RR> と B<SCHED_FIFO> の場合の、非特権プロセ"
-"スの静的優先度の上限を定めている。 スケジューリング・ポリシーと優先度を変更す"
-"る際のルールは以下の通りである。"
+#. type: TP
+#: build/C/man2/sched_setscheduler.2:78
+#, no-wrap
+msgid "B<SCHED_BATCH>"
+msgstr "B<SCHED_BATCH>"
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:345
-msgid ""
-"If an unprivileged process has a nonzero B<RLIMIT_RTPRIO> soft limit, then "
-"it can change its scheduling policy and priority, subject to the restriction "
-"that the priority cannot be set to a value higher than the maximum of its "
-"current priority and its B<RLIMIT_RTPRIO> soft limit."
-msgstr ""
-"非特権プロセスに 0 以外の B<RLIMIT_RTPRIO> ソフト・リミットが設定されている場"
-"合、 非特権プロセスはそのプロセスのスケジューリング・ポリシーと優先度を 変更"
-"できるが、優先度を現在の自身の優先度と B<RLIMIT_RTPRIO> ソフト・リミットの大"
-"きい方よりも高い値に設定できないという制限が課される。"
+#: build/C/man2/sched_setscheduler.2:81
+msgid "for \"batch\" style execution of processes; and"
+msgstr "「バッチ」形式でのプロセスの実行用。"
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:350
-msgid ""
-"If the B<RLIMIT_RTPRIO> soft limit is 0, then the only permitted changes are "
-"to lower the priority, or to switch to a non-real-time policy."
-msgstr ""
-"B<RLIMIT_RTPRIO> ソフト・リミットが 0 の場合、優先度を下げるか、 リアルタイム"
-"でないポリシーへ切り替えるかの変更だけが許可される。"
+#. type: TP
+#: build/C/man2/sched_setscheduler.2:81
+#, no-wrap
+msgid "B<SCHED_IDLE>"
+msgstr "B<SCHED_IDLE>"
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:355
-msgid ""
-"Subject to the same rules, another unprivileged process can also make these "
-"changes, as long as the effective user ID of the process making the change "
-"matches the real or effective user ID of the target process."
-msgstr ""
-"ある非特権プロセスが別のプロセスに対してこれらの変更を行う際にも、 同じルール"
-"が適用される。変更を行えるのは、変更を行おうとするプロセス の実効ユーザ ID が"
-"変更対象のプロセスの実ユーザ ID か実効ユーザ ID と 一致している場合に限られ"
-"る。"
+#: build/C/man2/sched_setscheduler.2:86
+msgid "for running I<very> low priority background jobs."
+msgstr "「非常に」低い優先度で動作するバックグラウンドジョブ用。"
-#. commit c02aa73b1d18e43cfd79c2f193b225e84ca497c8
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:373
-msgid ""
-"Special rules apply for the B<SCHED_IDLE>. In Linux kernels before 2.6.39, "
-"an unprivileged process operating under this policy cannot change its "
-"policy, regardless of the value of its B<RLIMIT_RTPRIO> resource limit. In "
-"Linux kernels since 2.6.39, an unprivileged process can switch to either the "
-"B<SCHED_BATCH> or the B<SCHED_NORMAL> policy so long as its nice value falls "
-"within the range permitted by its B<RLIMIT_NICE> resource limit (see "
-"B<getrlimit>(2))."
+#: build/C/man2/sched_setscheduler.2:90
+msgid "For each of the above policies, I<param-E<gt>sched_priority> must be 0."
msgstr ""
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:384
+#: build/C/man2/sched_setscheduler.2:99
msgid ""
-"Privileged (B<CAP_SYS_NICE>) processes ignore the B<RLIMIT_RTPRIO> limit; "
-"as with older kernels, they can make arbitrary changes to scheduling policy "
-"and priority. See B<getrlimit>(2) for further information on "
-"B<RLIMIT_RTPRIO>."
-msgstr ""
-"特権プロセス (B<CAP_SYS_NICE> ケーパビリティを持つプロセス) の場合、 "
-"B<RLIMIT_RTPRIO> の制限は無視される; 古いカーネルと同じように、スケジューリン"
-"グ・ポリシーと優先度に対し 任意の変更を行うことができる。 B<RLIMIT_RTPRIO> に"
-"関するもっと詳しい情報は B<getrlimit>(2) を参照のこと。"
+"Various \"real-time\" policies are also supported, for special time-critical "
+"applications that need precise control over the way in which runnable "
+"threads are selected for execution. For the rules governing when a process "
+"may use these policies, see B<sched>(7). The real-time policies that may be "
+"specified in I<policy> are:"
+msgstr "どの実行可能スレッドを選択するかについて、より正確な制御を必要とする 時間の制約が厳しい特別なアプリケーション用として、 いろいろな「リアルタイム」ポリシーもサポートされている。 プロセスがこれらのポリシーをいつ使用できるかを決めるルールについては、B<sched>(7) を参照。 I<policy> には以下のリアルタイムポリシーを指定できる。"
-#. type: SS
-#: build/C/man2/sched_setscheduler.2:384
+#. type: TP
+#: build/C/man2/sched_setscheduler.2:99
#, no-wrap
-msgid "Response time"
-msgstr "応答時間 (response time)"
+msgid "B<SCHED_FIFO>"
+msgstr "B<SCHED_FIFO>"
-#. as described in
-#. .BR request_irq (9).
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:392
-msgid ""
-"A blocked high priority process waiting for the I/O has a certain response "
-"time before it is scheduled again. The device driver writer can greatly "
-"reduce this response time by using a \"slow interrupt\" interrupt handler."
-msgstr ""
-"I/O 待ちで停止したより高い優先度のプロセスは再びスケジューリングされる 前にい"
-"くらかの応答時間がかかる。デバイス・ドライバーを書く場合には \"slow interrupt"
-"\" 割り込みハンドラーを使用することで この応答時間を劇的に減少させることがで"
-"きる。"
+#: build/C/man2/sched_setscheduler.2:102
+msgid "a first-in, first-out policy; and"
+msgstr "ファーストイン、ファーストアウト型のポリシー。"
-#. type: SS
-#: build/C/man2/sched_setscheduler.2:392
+#. type: TP
+#: build/C/man2/sched_setscheduler.2:102
#, no-wrap
-msgid "Miscellaneous"
-msgstr "その他"
+msgid "B<SCHED_RR>"
+msgstr "B<SCHED_RR>"
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:397
-msgid ""
-"Child processes inherit the scheduling policy and parameters across a B<fork>"
-"(2). The scheduling policy and parameters are preserved across B<execve>(2)."
-msgstr ""
-"子プロセスは B<fork>(2) の際に親プロセスのスケジューリング・ポリシーとパラ"
-"メータを継承する。 B<execve>(2) の前後で、スケジューリング・ポリシーとパラ"
-"メータは保持される。"
+#: build/C/man2/sched_setscheduler.2:105
+msgid "a round-robin policy."
+msgstr "ラウンドロビン型のポリシー。"
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:403
+#: build/C/man2/sched_setscheduler.2:116
msgid ""
-"Memory locking is usually needed for real-time processes to avoid paging "
-"delays; this can be done with B<mlock>(2) or B<mlockall>(2)."
+"For each of the above policies, I<param-E<gt>sched_priority> specifies a "
+"scheduling priority for the thread. This is a number in the range returned "
+"by calling B<sched_get_priority_min>(2) and B<sched_get_priority_min>(2) "
+"with the specified I<policy>. On Linux, these system calls return, "
+"respectively, 1 and 99."
msgstr ""
-"リアルタイム・プロセスは大抵、ページングの待ち時間を避けるために B<mlock>"
-"(2) や B<mlockall>(2) を使ってメモリ・ロックをしなければならない。"
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:415
+#: build/C/man2/sched_setscheduler.2:129
msgid ""
-"Since a nonblocking infinite loop in a process scheduled under B<SCHED_FIFO> "
-"or B<SCHED_RR> will block all processes with lower priority forever, a "
-"software developer should always keep available on the console a shell "
-"scheduled under a higher static priority than the tested application. This "
-"will allow an emergency kill of tested real-time applications that do not "
-"block or terminate as expected. See also the description of the "
-"B<RLIMIT_RTTIME> resource limit in B<getrlimit>(2)."
-msgstr ""
-"B<SCHED_FIFO> や B<SCHED_RR> でスケジューリングされる プロセスが停止せずに無"
-"限ループに陥ると、 他の全てのより低い優先度のプロセスを永久に停止 (block) さ"
-"せてしまうので、 ソフトウェア開発者はコンソールのシェルの静的優先度をテストす"
-"る アプリケーションよりも常に高く保つべきである。 これによって期待通りに停止"
-"したり終了したりしないリアルタイム・ アプリケーションを緊急終了させることが可"
-"能になる。 B<getrlimit>(2) のリソース制限 B<RLIMIT_RTTIME> の説明も参照のこ"
-"と。"
+"Since Linux 2.6.32, the B<SCHED_RESET_ON_FORK> flag can be ORed in I<policy> "
+"when calling B<sched_setscheduler>(). As a result of including this flag, "
+"children created by B<fork>(2) do not inherit privileged scheduling "
+"policies. See B<sched>(7) for details."
+msgstr "Linux 2.6.32 以降では、 B<sched_setscheduler>() を呼び出す際に I<policy> に B<SCHED_RESET_ON_FORK> フラグを OR で指定できる。このフラグが指定されると、 B<fork>(2) で作成された子プロセスは特権が必要なスケジューリングポリシーを継承しない。 詳細は B<sched>(7) を参照。"
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:423
+#: build/C/man2/sched_setscheduler.2:135
msgid ""
-"POSIX systems on which B<sched_setscheduler>() and B<sched_getscheduler>() "
-"are available define B<_POSIX_PRIORITY_SCHEDULING> in I<E<lt>unistd.hE<gt>>."
-msgstr ""
-"POSIX システムでは I<E<lt>unistd.hE<gt>> に B<_POSIX_PRIORITY_SCHEDULING> が"
-"定義されている場合にのみ B<sched_setscheduler>() と B<sched_getscheduler>"
-"() が使用できる。"
+"B<sched_getscheduler>() returns the current scheduling policy of the thread "
+"identified by I<pid>. If I<pid> equals zero, the policy of the calling "
+"thread will be retrieved."
+msgstr "B<sched_getscheduler>() は I<pid> で識別されるスレッドの現在のスケジューリングポリシーを返す。I<pid> が 0 ならば、呼び出した スレッド自身のスケジューリングポリシーが返される。"
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:433
+#: build/C/man2/sched_setscheduler.2:145
msgid ""
"On success, B<sched_setscheduler>() returns zero. On success, "
-"B<sched_getscheduler>() returns the policy for the process (a nonnegative "
-"integer). On error, -1 is returned, and I<errno> is set appropriately."
-msgstr ""
-"成功した場合、 B<sched_setscheduler>() は 0 を返す。 成功した場合、 "
-"B<sched_getscheduler>() は現在のそのプロセスのポリシー (非負の整数) を返"
-"す。 エラーの場合、-1 が返され、 I<errno> が適切に設定される。"
+"B<sched_getscheduler>() returns the policy for the thread (a nonnegative "
+"integer). On error, both calls return -1, and I<errno> is set appropriately."
+msgstr "成功した場合、 B<sched_setscheduler>() は 0 を返す。 成功した場合、 B<sched_getscheduler>() は現在のそのスレッドのポリシー (非負の整数) を返す。 エラーの場合、 どちらのコールも -1 を返し、 I<errno> が適切に設定される。"
+
+#. type: Plain text
+#: build/C/man2/sched_setscheduler.2:153
+msgid "Invalid arguments: I<pid> is negative or I<param> is NULL."
+msgstr "無効な引き数: I<pid> が負である、または I<param> が NULL である。"
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:439
-#, fuzzy
-#| msgid ""
-#| "The scheduling I<policy> is not one of the recognized policies, or "
-#| "I<param> does not make sense for the I<policy>."
+#: build/C/man2/sched_setscheduler.2:158
msgid ""
-"The scheduling I<policy> is not one of the recognized policies, I<param> is "
-"NULL, or I<param> does not make sense for the I<policy>."
-msgstr ""
-"スケジューリング・ポリシー I<policy> が間違っているか、 I<param> がそのポリ"
-"シーでは意味をなさない。"
+"(B<sched_setscheduler>()) I<policy> is not one of the recognized policies."
+msgstr "(B<sched_setscheduler>()) I<policy> が認識できるポリシーではない。"
+
+#. type: Plain text
+#: build/C/man2/sched_setscheduler.2:164
+msgid ""
+"(B<sched_setscheduler>()) I<param> does not make sense for the specified "
+"I<policy>."
+msgstr "(B<sched_setscheduler>()) 引き数 I<param> が指定された I<policy> では意味を持たない。"
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:442
-msgid "The calling process does not have appropriate privileges."
-msgstr "å\91¼ã\81³å\87ºã\81\97ã\81\9fã\83\97ã\83ã\82»ã\82¹が適切な特権を持っていない。"
+#: build/C/man2/sched_setscheduler.2:167
+msgid "The calling thread does not have appropriate privileges."
+msgstr "å\91¼ã\81³å\87ºã\81\97ã\81\9fã\82¹ã\83¬ã\83\83ã\83\89が適切な特権を持っていない。"
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:448
+#: build/C/man2/sched_setscheduler.2:173
msgid ""
"POSIX.1-2001 (but see BUGS below). The B<SCHED_BATCH> and B<SCHED_IDLE> "
"policies are Linux-specific."
"ポリシーは Linux 固有である。"
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:456
-msgid ""
-"POSIX.1 does not detail the permissions that an unprivileged process "
-"requires in order to call B<sched_setscheduler>(), and details vary across "
-"systems. For example, the Solaris 7 manual page says that the real or "
-"effective user ID of the calling process must match the real user ID or the "
-"save set-user-ID of the target process."
-msgstr ""
-"POSIX.1 は、非特権プロセスが B<sched_setscheduler>() を呼び出すために必要な"
-"権限の詳細を規定しておらず、 詳細はシステムにより異なる。 例えば、Solaris 7 "
-"のマニュアルページでは、 呼び出し元プロセスの実ユーザ ID または実効ユーザ ID "
-"が 設定対象のプロセスの実ユーザ ID か保存 (save) set-user-ID と 一致していな"
-"ければならない、となっている。"
-
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:466
-msgid ""
-"Originally, Standard Linux was intended as a general-purpose operating "
-"system being able to handle background processes, interactive applications, "
-"and less demanding real-time applications (applications that need to usually "
-"meet timing deadlines). Although the Linux kernel 2.6 allowed for kernel "
-"preemption and the newly introduced O(1) scheduler ensures that the time "
-"needed to schedule is fixed and deterministic irrespective of the number of "
-"active tasks, true real-time computing was not possible up to kernel version "
-"2.6.17."
-msgstr ""
-"もともとは、標準の Linux は一般目的のオペレーティングシステムとして 設計され"
-"ており、バックグラウンド・プロセスや対話的アプリケーション、 リアルタイム性の"
-"要求が厳しくないリアルタイム・アプリケーション (普通はタイミングの応答期限 "
-"(deadline) を満たす必要があるアプリケーション) を扱うことができた。 Linux "
-"カーネル 2.6 では、 カーネルのプリエンプション (タスクの置き換え) が可能であ"
-"り、 新たに導入された O(1) スケジューラにより、 アクティブなタスクの数に関わ"
-"らずスケジューリングに必要な時間は 固定で確定的 (deterministic) であることが"
-"保証されている。 それにも関わらず、カーネル 2.6.17 までは 真のリアルタイム・"
-"コンピューティングは実現できなかった。"
-
-#. type: SS
-#: build/C/man2/sched_setscheduler.2:466
-#, no-wrap
-msgid "Real-time features in the mainline Linux kernel"
-msgstr "本流の Linux カーネルでのリアルタイム機能"
-
-#. FIXME . Probably this text will need some minor tweaking
-#. by about the time of 2.6.30; ask Carsten Emde about this then.
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:480
-#, fuzzy
-#| msgid ""
-#| "From kernel version 2.6.18 onwards, however, Linux is gradually becoming "
-#| "equipped with real-time capabilities, most of which are derived from the "
-#| "former I<realtime-preempt> patches developed by Ingo Molnar, Thomas "
-#| "Gleixner, Steven Rostedt, and others. Until the patches have been "
-#| "completely merged into the mainline kernel (this is expected to be around "
-#| "kernel version 2.6.30), they must be installed to achieve the best real-"
-#| "time performance. These patches are named:"
+#: build/C/man2/sched_setscheduler.2:177
msgid ""
-"From kernel version 2.6.18 onward, however, Linux is gradually becoming "
-"equipped with real-time capabilities, most of which are derived from the "
-"former I<realtime-preempt> patches developed by Ingo Molnar, Thomas "
-"Gleixner, Steven Rostedt, and others. Until the patches have been "
-"completely merged into the mainline kernel (this is expected to be around "
-"kernel version 2.6.30), they must be installed to achieve the best real-time "
-"performance. These patches are named:"
+"Further details of the semantics of all of the above \"normal\" and \"real-"
+"time\" scheduling policies can be found in B<sched>(7)."
msgstr ""
-"カーネル 2.6.18 から現在まで、 Linux は徐々にリアルタイム機能を備えつつある"
-"が、 これらの機能のほとんどは、 Ingo Molnar, Thomas Gleixner, Steven Rostedt "
-"らによって開発された、 以前の I<realtime-preempt> パッチからのものである。 こ"
-"れらのパッチが本流のカーネルに完全にマージされるまでは (マージの完了はカーネ"
-"ル 2.6.30 あたりの予定)、 最高のリアルタイム性能を達成するには realtime-"
-"preempt パッチを 組み込まなければならない。 これらのパッチは"
-
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:484
-#, no-wrap
-msgid "patch-I<kernelversion>-rtI<patchversion>\n"
-msgstr "patch-I<kernelversion>-rtI<patchversion>\n"
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:489
+#: build/C/man2/sched_setscheduler.2:185
msgid ""
-"and can be downloaded from I<http://www.kernel.org/pub/linux/kernel/projects/"
-"rt/>."
+"POSIX systems on which B<sched_setscheduler>() and B<sched_getscheduler>() "
+"are available define B<_POSIX_PRIORITY_SCHEDULING> in I<E<lt>unistd.hE<gt>>."
msgstr ""
-"という名前で、 I<http://www.kernel.org/pub/linux/kernel/projects/rt/> からダ"
-"ウンロードできる。"
+"POSIX システムでは I<E<lt>unistd.hE<gt>> に B<_POSIX_PRIORITY_SCHEDULING> が"
+"定義されている場合にのみ B<sched_setscheduler>() と "
+"B<sched_getscheduler>() が使用できる。"
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:498
+#: build/C/man2/sched_setscheduler.2:193
msgid ""
-"Without the patches and prior to their full inclusion into the mainline "
-"kernel, the kernel configuration offers only the three preemption classes "
-"B<CONFIG_PREEMPT_NONE>, B<CONFIG_PREEMPT_VOLUNTARY>, and "
-"B<CONFIG_PREEMPT_DESKTOP> which respectively provide no, some, and "
-"considerable reduction of the worst-case scheduling latency."
+"POSIX.1 does not detail the permissions that an unprivileged thread requires "
+"in order to call B<sched_setscheduler>(), and details vary across systems. "
+"For example, the Solaris 7 manual page says that the real or effective user "
+"ID of the caller must match the real user ID or the save set-user-ID of the "
+"target."
msgstr ""
-"このパッチが適用されず、かつパッチの内容の本流のカーネルへのマージが 完了する"
-"までは、カーネルの設定では B<CONFIG_PREEMPT_NONE>, "
-"B<CONFIG_PREEMPT_VOLUNTARY>, B<CONFIG_PREEMPT_DESKTOP> の 3つのプリエンプショ"
-"ン・クラス (preemption class) だけが提供される。 これらのクラスでは、最悪の場"
-"合のスケジューリング遅延がそれぞれ 全く減らない、いくらか減る、かなり減る。"
+"POSIX.1 は、非特権スレッドが B<sched_setscheduler>() を呼び出すために必要な"
+"権限の詳細を規定しておらず、 詳細はシステムにより異なる。 例えば、Solaris 7 "
+"のマニュアルページでは、 呼び出し元の実ユーザ ID または実効ユーザ ID が 設定"
+"対象の実ユーザ ID か保存 (save) set-user-ID と 一致していなければならない、と"
+"なっている。"
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:509
+#: build/C/man2/sched_setscheduler.2:214
msgid ""
-"With the patches applied or after their full inclusion into the mainline "
-"kernel, the additional configuration item B<CONFIG_PREEMPT_RT> becomes "
-"available. If this is selected, Linux is transformed into a regular real-"
-"time operating system. The FIFO and RR scheduling policies that can be "
-"selected using B<sched_setscheduler>() are then used to run a process with "
-"true real-time priority and a minimum worst-case scheduling latency."
+"The scheduling policy and parameters are in fact per-thread attributes on "
+"Linux. The value returned from a call to B<gettid>(2) can be passed in the "
+"argument I<pid>. Specifying I<pid> as 0 will operate on the attributes of "
+"the calling thread, and passing the value returned from a call to "
+"B<getpid>(2) will operate on the attributes of the main thread of the "
+"thread group. (If you are using the POSIX threads API, then use "
+"B<pthread_setschedparam>(3), B<pthread_getschedparam>(3), and "
+"B<pthread_setschedprio>(3), instead of the B<sched_*>(2) system calls.)"
msgstr ""
-"パッチが適用された場合、またはパッチの内容の本流のカーネルへのマージが 完了し"
-"た後では、上記に加えて設定項目として B<CONFIG_PREEMPT_RT> が利用可能になる。"
-"この項目を選択すると、 Linux は通常のリアルタイム・オペレーティングシステムに"
-"変身する。 この場合には、 B<sched_setscheduler>() で選択できる FIFO と RR の"
-"スケジューリング・ポリシーは、 真のリアルタイム優先度を持つプロセスを最悪の場"
-"合のスケジューリング遅延が 最小となる環境で動作させるために使われることにな"
-"る。"
+"Linux では、 スケジューリングポリシーとスケジューリングパラメータは、 実際に"
+"はスレッド単位の属性である。 B<gettid>(2) の呼び出しの返り値をこのシステム"
+"コールの I<pid> 引き数として渡すことができる。 I<pid> に 0 を指定すると、 呼"
+"び出し元のスレッドの属性が設定される。 B<getpid>(2) コールからの返り値を "
+"I<pid> に指定すると、 スレッドグループのメインスレッドの属性が設定される "
+"(POSIX スレッド API を使用している場合は、 B<sched_*>(2) システムコールの代わ"
+"りに B<pthread_setschedparam>(3), B<pthread_getschedparam>(3), and "
+"B<pthread_setschedprio>(3) を使用すること)。"
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:517
+#: build/C/man2/sched_setscheduler.2:222
msgid ""
"POSIX says that on success, B<sched_setscheduler>() should return the "
"previous scheduling policy. Linux B<sched_setscheduler>() does not conform "
"to this requirement, since it always returns 0 on success."
msgstr ""
-"POSIX ã\81§ã\81¯ã\80\81æ\88\90å\8a\9fæ\99\82ã\81« B<sched_setscheduler>() ã\81¯ç\9b´å\89\8dã\81®ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83»ã\83\9dã\83ª"
+"POSIX では、成功時に B<sched_setscheduler>() は直前のスケジューリングポリ"
"シーを返すべきとされている。 Linux の B<sched_setscheduler>() はこの要求仕様"
"に準拠しておらず、 成功時には常に 0 を返す。"
#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:535
-msgid ""
-"B<getpriority>(2), B<mlock>(2), B<mlockall>(2), B<munlock>(2), B<munlockall>"
-"(2), B<nice>(2), B<sched_get_priority_max>(2), B<sched_get_priority_min>(2), "
-"B<sched_getaffinity>(2), B<sched_getparam>(2), B<sched_rr_get_interval>(2), "
-"B<sched_setaffinity>(2), B<sched_setparam>(2), B<sched_yield>(2), "
-"B<setpriority>(2), B<capabilities>(7), B<cpuset>(7)"
-msgstr ""
-"B<getpriority>(2), B<mlock>(2), B<mlockall>(2), B<munlock>(2), B<munlockall>"
-"(2), B<nice>(2), B<sched_get_priority_max>(2), B<sched_get_priority_min>(2), "
-"B<sched_getaffinity>(2), B<sched_getparam>(2), B<sched_rr_get_interval>(2), "
-"B<sched_setaffinity>(2), B<sched_setparam>(2), B<sched_yield>(2), "
-"B<setpriority>(2), B<capabilities>(7), B<cpuset>(7)"
-
-#. type: Plain text
-#: build/C/man2/sched_setscheduler.2:542
+#: build/C/man2/sched_setscheduler.2:240
msgid ""
-"The kernel source file I<Documentation/scheduler/sched-rt-group.txt> (since "
-"kernel 2.6.25)."
-msgstr ""
-"カーネル・ソース内のファイル I<Documentation/scheduler/sched-rt-group.txt> "
-"(カーネル 2.6.25 以降)"
+"B<nice>(2), B<sched_get_priority_max>(2), B<sched_get_priority_min>(2), "
+"B<sched_getaffinity>(2), B<sched_getattr>(2), B<sched_getparam>(2), "
+"B<sched_rr_get_interval>(2), B<sched_setaffinity>(2), B<sched_setattr>(2), "
+"B<sched_setparam>(2), B<sched_yield>(2), B<setpriority>(2), "
+"B<capabilities>(7), B<cpuset>(7), B<sched>(7)"
+msgstr "B<nice>(2), B<sched_get_priority_max>(2), B<sched_get_priority_min>(2), B<sched_getaffinity>(2), B<sched_getattr>(2), B<sched_getparam>(2), B<sched_rr_get_interval>(2), B<sched_setaffinity>(2), B<sched_setattr>(2), B<sched_setparam>(2), B<sched_yield>(2), B<setpriority>(2), B<capabilities>(7), B<cpuset>(7), B<sched>(7)"
#. type: TH
-#: build/C/man2/sched_yield.2:30
+#: build/C/man2/sched_yield.2:29
#, no-wrap
msgid "SCHED_YIELD"
msgstr "SCHED_YIELD"
-#. type: TH
-#: build/C/man2/sched_yield.2:30
-#, no-wrap
-msgid "2008-10-18"
-msgstr "2008-10-18"
-
#. type: Plain text
-#: build/C/man2/sched_yield.2:33
+#: build/C/man2/sched_yield.2:32
msgid "sched_yield - yield the processor"
msgstr "sched_yield - プロセッサーを空け渡す(yield)"
#. type: Plain text
-#: build/C/man2/sched_yield.2:37
+#: build/C/man2/sched_yield.2:36
msgid "B<int sched_yield(void);>"
msgstr "B<int sched_yield(void);>"
#. type: Plain text
-#: build/C/man2/sched_yield.2:42
+#: build/C/man2/sched_yield.2:41
msgid ""
"B<sched_yield>() causes the calling thread to relinquish the CPU. The "
"thread is moved to the end of the queue for its static priority and a new "
"に 移動し、新しいスレッドが走り始める。"
#. type: Plain text
-#: build/C/man2/sched_yield.2:49
+#: build/C/man2/sched_yield.2:48
msgid ""
"On success, B<sched_yield>() returns 0. On error, -1 is returned, and "
"I<errno> is set appropriately."
"I<errno> が適切に設定される。"
#. type: Plain text
-#: build/C/man2/sched_yield.2:53
+#: build/C/man2/sched_yield.2:52
msgid "In the Linux implementation, B<sched_yield>() always succeeds."
msgstr "Linux の実装では、 B<sched_yield>() は常に成功する。"
#. type: Plain text
-#: build/C/man2/sched_yield.2:60
+#: build/C/man2/sched_yield.2:59
msgid ""
"If the calling thread is the only thread in the highest priority list at "
"that time, it will continue to run after a call to B<sched_yield>()."
msgid ""
"Strategic calls to B<sched_yield>() can improve performance by giving other "
"threads or processes a chance to run when (heavily) contended resources (e."
-"g., mutexes) have been released by the caller. Avoid calling B<sched_yield>"
-"() unnecessarily or inappropriately (e.g., when resources needed by other "
-"schedulable threads are still held by the caller), since doing so will "
-"result in unnecessary context switches, which will degrade system "
-"performance."
+"g., mutexes) have been released by the caller. Avoid calling "
+"B<sched_yield>() unnecessarily or inappropriately (e.g., when resources "
+"needed by other schedulable threads are still held by the caller), since "
+"doing so will result in unnecessary context switches, which will degrade "
+"system performance."
msgstr ""
"B<sched_yield>() を戦略的に呼び出すことで、(極度に) 競合するリソース (mutex "
"など) を呼び出し元が解放した際に他のスレッドやプロセスに実行機会を与えること"
"なぜなら、 B<sched_yield>() の呼び出しより不必要なコンテキストスイッチが起こ"
"り、システム性能が 劣化する結果になるからである。"
-#. type: Plain text
-#: build/C/man2/sched_yield.2:82
-msgid "B<sched_setscheduler>(2) for a description of Linux scheduling."
-msgstr ""
-"Linux のスケージュリング(scheduling)については B<sched_setscheduler>(2) を参"
-"照せよ。"
-
#. type: TH
-#: build/C/man2/setns.2:4
+#: build/C/man2/setns.2:8
#, no-wrap
msgid "SETNS"
msgstr "SETNS"
#. type: TH
-#: build/C/man2/setns.2:4
+#: build/C/man2/setns.2:8
#, no-wrap
-msgid "2011-10-04"
-msgstr "2011-10-04"
+msgid "2013-01-01"
+msgstr "2013-01-01"
#. type: Plain text
-#: build/C/man2/setns.2:7
+#: build/C/man2/setns.2:11
msgid "setns - reassociate thread with a namespace"
-msgstr "setns - reassociate thread with a namespace"
+msgstr "setns - スレッドに名前空間を関連付けしなおす"
#. type: Plain text
-#: build/C/man2/setns.2:13
+#: build/C/man2/setns.2:17
#, no-wrap
msgid "B<int setns(int >I<fd>B<, int >I<nstype>B<);>\n"
msgstr "B<int setns(int >I<fd>B<, int >I<nstype>B<);>\n"
#. type: Plain text
-#: build/C/man2/setns.2:17
+#: build/C/man2/setns.2:21
msgid ""
"Given a file descriptor referring to a namespace, reassociate the calling "
"thread with that namespace."
msgstr ""
-"Given a file descriptor referring to a namespace, reassociate the calling "
-"thread with that namespace."
+"名前空間を参照するファイルディスクリプタを指定すると、\n"
+"呼び出したスレッドにその名前空間を関連付けしなおす。"
#. type: Plain text
-#: build/C/man2/setns.2:30
+#: build/C/man2/setns.2:34
msgid ""
"The I<fd> argument is a file descriptor referring to one of the namespace "
"entries in a I</proc/[pid]/ns/> directory; see B<proc>(5) for further "
"with the corresponding namespace, subject to any constraints imposed by the "
"I<nstype> argument."
msgstr ""
-"The I<fd> argument is a file descriptor referring to one of the namespace "
-"entries in a I</proc/[pid]/ns/> directory; see B<proc>(5) for further "
-"information on I</proc/[pid]/ns/>. The calling thread will be reassociated "
-"with the corresponding namespace, subject to any constraints imposed by the "
-"I<nstype> argument."
+"I<fd> 引き数は、 I</proc/[pid]/ns/> ディレクトリ内の名前空間エントリ\n"
+"のいずれかを参照するファイルディスクリプタである。\n"
+"I</proc/[pid]/ns/> の詳細は B<proc>(5) を参照。\n"
+"I<nstype> 引き数で指定された制限の範囲内で、\n"
+"呼び出したスレッドに I<fd> に対応する名前空間を関連付けしなおす。"
#. type: Plain text
-#: build/C/man2/setns.2:36
+#: build/C/man2/setns.2:40
msgid ""
"The I<nstype> argument specifies which type of namespace the calling thread "
"may be reassociated with. This argument can have one of the following "
"values:"
msgstr ""
-"The I<nstype> argument specifies which type of namespace the calling thread "
-"may be reassociated with. This argument can have one of the following "
-"values:"
+"I<nstype> 引き数は、呼び出したスレッドがどのタイプの名前空間を\n"
+"関連付けしなおすことができるかを指定する。\n"
+"この引き数には以下のいずれかの値を指定できる。"
#. type: TP
-#: build/C/man2/setns.2:36
+#: build/C/man2/setns.2:40
#, no-wrap
msgid "B<0>"
msgstr "B<0>"
#. type: Plain text
-#: build/C/man2/setns.2:39
+#: build/C/man2/setns.2:43
msgid "Allow any type of namespace to be joined."
-msgstr "Allow any type of namespace to be joined."
+msgstr "どのタイプの名前空間も関連付けることができる。"
#. type: TP
-#: build/C/man2/setns.2:39
+#: build/C/man2/setns.2:43
#, no-wrap
msgid "B<CLONE_NEWIPC>"
msgstr "B<CLONE_NEWIPC>"
#. type: Plain text
-#: build/C/man2/setns.2:43
+#: build/C/man2/setns.2:47
msgid "I<fd> must refer to an IPC namespace."
-msgstr "I<fd> must refer to an IPC namespace."
+msgstr "I<fd> は IPC 名前空間を参照していなければならない。"
#. type: TP
-#: build/C/man2/setns.2:43
+#: build/C/man2/setns.2:47
#, no-wrap
msgid "B<CLONE_NEWNET>"
msgstr "B<CLONE_NEWNET>"
#. type: Plain text
-#: build/C/man2/setns.2:47
+#: build/C/man2/setns.2:51
msgid "I<fd> must refer to a network namespace."
-msgstr "I<fd> must refer to a network namespace."
+msgstr "I<fd> はネットワーク名前空間を参照していなければならない。"
#. type: TP
-#: build/C/man2/setns.2:47
+#: build/C/man2/setns.2:51
#, no-wrap
msgid "B<CLONE_NEWUTS>"
msgstr "B<CLONE_NEWUTS>"
#. type: Plain text
-#: build/C/man2/setns.2:51
+#: build/C/man2/setns.2:55
msgid "I<fd> must refer to a UTS namespace."
-msgstr "I<fd> must refer to a UTS namespace."
+msgstr "I<fd> は UTS 名前空間を参照していなければならない。"
#. type: Plain text
-#: build/C/man2/setns.2:66
+#: build/C/man2/setns.2:70
msgid ""
"Specifying I<nstype> as 0 suffices if the caller knows (or does not care) "
"what type of namespace is referred to by I<fd>. Specifying a nonzero value "
"referred to by I<fd> if the file descriptor was opened by another process "
"and, for example, passed to the caller via a UNIX domain socket.)"
msgstr ""
-"Specifying I<nstype> as 0 suffices if the caller knows (or does not care) "
-"what type of namespace is referred to by I<fd>. Specifying a nonzero value "
-"for I<nstype> is useful if the caller does not know what type of namespace "
-"is referred to by I<fd> and wants to ensure that the namespace is of a "
-"particular type. (The caller might not know the type of the namespace "
-"referred to by I<fd> if the file descriptor was opened by another process "
-"and, for example, passed to the caller via a UNIX domain socket.)"
+"呼び出し側が I<fd> がどのタイプの名前空間を参照しているかを知っている\n"
+"(もしくは気にする必要がない) 場合には、 I<nstype> に 0 を指定すれば十分\n"
+"である。呼び出し側が I<fd> がどのタイプの名前空間を参照しているかを\n"
+"知っておらず、かつ、特定のタイプの名前空間であることを保証したい場合、\n"
+"I<nstype> に 0 以外の値を指定するとよい。 (ファイルディスクリプタが別の\n"
+"プロセスによりオープンされ、例えば、UNIX ドメインソケット経由で呼び出し\n"
+"側に渡された場合などでは、呼び出し側が I<fd> がどのタイプの名前空間を\n"
+"参照しているかを知らない可能性がある。)"
#. type: Plain text
-#: build/C/man2/setns.2:73
+#: build/C/man2/setns.2:77
msgid ""
"On success, I<setns>() returns 0. On failure, -1 is returned and I<errno> "
"is set to indicate the error."
msgstr ""
-"On success, I<setns>() returns 0. On failure, -1 is returned and I<errno> "
-"is set to indicate the error."
+"成功すると I<setns>() は 0 を返す。\n"
+"失敗すると、 -1 が返され、 I<errno> にエラーを示す値が設定される。"
-#. type: TP
-#: build/C/man2/setns.2:74
+#. type: Plain text
+#: build/C/man2/setns.2:82
+msgid "I<fd> is not a valid file descriptor."
+msgstr "I<fd> が有効なファイルディスクリプタではない。"
+
+#. type: Plain text
+#: build/C/man2/setns.2:89
+msgid ""
+"I<fd> refers to a namespace whose type does not match that specified in "
+"I<nstype>, or there is problem with reassociating the the thread with the "
+"specified namespace."
+msgstr ""
+"I<fd> が I<nstype> で指定されたタイプと一致しない名前空間を参照している。\n"
+"または、指定された名前空間をそのスレッドに関連付けし直す際に問題\n"
+"があった。"
+
+#. type: Plain text
+#: build/C/man2/setns.2:92
+msgid "Cannot allocate sufficient memory to change the specified namespace."
+msgstr "指定された名前空間に変更するのに必要なメモリが割り当てられない。"
+
+#. type: Plain text
+#: build/C/man2/setns.2:97
+msgid ""
+"The calling thread did not have the required privilege (B<CAP_SYS_ADMIN>) "
+"for this operation."
+msgstr ""
+"呼び出したスレッドがこの操作を行うのに必要な特権 (B<CAP_SYS_ADMIN>) を\n"
+"持っていなかった。"
+
+#. type: Plain text
+#: build/C/man2/setns.2:102
+msgid ""
+"The B<setns>() system call first appeared in Linux in kernel 3.0; library "
+"support was added to glibc in version 2.14."
+msgstr ""
+"B<setns>() システムコールはカーネル 3.0 で Linux に初めて登場した。\n"
+"ライブラリによるサポートは glibc バージョン 2.14 を追加された。"
+
+#. type: Plain text
+#: build/C/man2/setns.2:106
+msgid "The B<setns>() system call is Linux-specific."
+msgstr "B<setns>() システムコールは Linux 固有である。"
+
+#. type: Plain text
+#: build/C/man2/setns.2:112
+msgid ""
+"Not all of the attributes that can be shared when a new thread is created "
+"using B<clone>(2) can be changed using B<setns>()."
+msgstr ""
+"新しいスレッドが B<clone>(2) を使って作成された際に共有できる全ての属性を、\n"
+"B<setns>() を使って変更できるわけではない。"
+
+#. type: Plain text
+#: build/C/man2/setns.2:121
+msgid ""
+"The program below takes two or more arguments. The first argument specifies "
+"the pathname of a namespace file in an existing I</proc/[pid]/ns/> "
+"directory. The remaining arguments specify a command and its arguments. "
+"The program opens the namespace file, joins that namespace using B<setns>(), "
+"and executes the specified command inside that namespace."
+msgstr ""
+"以下のプログラムは 2 つ以上の引き数を取る。 最初の引き数には、 既存の I</"
+"proc/[pid]/ns/> ディレクトリの名前空間ファイルのパス名を指定する。 残りの引き"
+"数は、コマンドとその引き数を指定する。 このプログラムは名前空間ファイルをオー"
+"プンし、 B<setns>() を使って名前空間に参加し、 指定されたコマンドをその名前空"
+"間内で実行する。"
+
+#. type: Plain text
+#: build/C/man2/setns.2:131
+msgid ""
+"The following shell session demonstrates the use of this program (compiled "
+"as a binary named I<ns_exec>) in conjunction with the B<CLONE_NEWUTS> "
+"example program in the B<clone>(2) man page (complied as a binary named "
+"I<newuts>)."
+msgstr ""
+"以下のシェルセッションでは、 このプログラム (I<ns_exec> という名前のバイナリ"
+"としてコンパイルされている)を、 B<clone>(2) のマニュアルページの "
+"B<CLONE_NEWUTS> のサンプルプログラムと組み合わせて使っている。"
+
+#. type: Plain text
+#: build/C/man2/setns.2:139
+msgid ""
+"We begin by executing the example program in B<clone>(2) in the "
+"background. That program creates a child in a separate UTS namespace. The "
+"child changes the hostname in its namespace, and then both processes display "
+"the hostnames in their UTS namespaces, so that we can see that they are "
+"different."
+msgstr ""
+"まず、 B<clone>(2) のサンプルプログラムをバックグラウンドで実行する。 このプ"
+"ログラムは、 別の UTS 名前空間で子プロセスを作成する。 子プロセスは自分の名前"
+"空間内でホスト名を変更する。 それから、 親プロセスと子プロセスの両方でそれぞ"
+"れの UTS 名前空間のホスト名を表示し、 2 つのホスト名が違うことが確認できる。"
+
+#. type: Plain text
+#: build/C/man2/setns.2:151
#, no-wrap
-msgid "B<EBADF>"
-msgstr "B<EBADF>"
+msgid ""
+"$ B<su> # Need privilege for namespace operations\n"
+"Password:\n"
+"# B<./newuts bizarro &>\n"
+"[1] 3549\n"
+"clone() returned 3550\n"
+"uts.nodename in child: bizarro\n"
+"uts.nodename in parent: antero\n"
+"# B<uname -n> # Verify hostname in the shell\n"
+"antero\n"
+msgstr ""
+"$ B<su> # 名前空間の操作には特権が必要\n"
+"Password:\n"
+"# B<./newuts bizarro &>\n"
+"[1] 3549\n"
+"clone() returned 3550\n"
+"uts.nodename in child: bizarro\n"
+"uts.nodename in parent: antero\n"
+"# B<uname -n> # シェルでホスト名を確認\n"
+"antero\n"
#. type: Plain text
-#: build/C/man2/setns.2:78
-msgid "I<fd> is not a valid file descriptor."
-msgstr "I<fd> is not a valid file descriptor."
+#: build/C/man2/setns.2:158
+msgid ""
+"We then run the program shown below, using it to execute a shell. Inside "
+"that shell, we verify that the hostname is the one set by the child created "
+"by the first program:"
+msgstr ""
+"次に、以下のプログラムを使ってシェルを実行する。 このシェルの中では、ホスト名"
+"が最初のプログラムで作成された子プロセスが設定したホスト名になっていることを"
+"確認できる。"
+
+#. type: Plain text
+#: build/C/man2/setns.2:164
+#, no-wrap
+msgid ""
+"# B<./ns_exec /proc/3550/ns/uts /bin/bash>\n"
+"# B<uname -n> # Executed in shell started by ns_exec\n"
+"bizarro\n"
+msgstr ""
+"# B<./ns_exec /proc/3550/ns/uts /bin/bash>\n"
+"# B<uname -n> # ns_exec で起動されたシェル内で実行\n"
+"bizarro\n"
+
+#. type: Plain text
+#: build/C/man2/setns.2:174
+#, no-wrap
+msgid ""
+"#define _GNU_SOURCE\n"
+"#include E<lt>fcntl.hE<gt>\n"
+"#include E<lt>sched.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+msgstr ""
+"#define _GNU_SOURCE\n"
+"#include E<lt>fcntl.hE<gt>\n"
+"#include E<lt>sched.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
#. type: Plain text
-#: build/C/man2/setns.2:85
+#: build/C/man2/setns.2:182
+#, no-wrap
msgid ""
-"I<fd> refers to a namespace whose type does not match that specified in "
-"I<nstype>, or there is problem with reassociating the the thread with the "
-"specified namespace."
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" int fd;\n"
msgstr ""
-"I<fd> refers to a namespace whose type does not match that specified in "
-"I<nstype>, or there is problem with reassociating the the thread with the "
-"specified namespace."
-
-#. type: Plain text
-#: build/C/man2/setns.2:88
-msgid "Cannot allocate sufficient memory to change the specified namespace."
-msgstr "Cannot allocate sufficient memory to change the specified namespace."
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" int fd;\n"
#. type: Plain text
-#: build/C/man2/setns.2:93
+#: build/C/man2/setns.2:187
+#, no-wrap
msgid ""
-"The calling thread did not have the required privilege (B<CAP_SYS_ADMIN>) "
-"for this operation."
+" if (argc E<lt> 3) {\n"
+" fprintf(stderr, \"%s /proc/PID/ns/FILE cmd args...\\en\", argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
msgstr ""
-"The calling thread did not have the required privilege (B<CAP_SYS_ADMIN>) "
-"for this operation."
-
-#. type: Plain text
-#: build/C/man2/setns.2:97
-msgid "The B<setns>() system call first appeared in Linux in kernel 3.0"
-msgstr "The B<setns>() system call first appeared in Linux in kernel 3.0"
+" if (argc E<lt> 3) {\n"
+" fprintf(stderr, \"%s /proc/PID/ns/FILE cmd args...\\en\", argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
#. type: Plain text
-#: build/C/man2/setns.2:101
-msgid "The B<setns>() system call is Linux-specific."
-msgstr "The B<setns>() system call is Linux-specific."
+#: build/C/man2/setns.2:191
+#, no-wrap
+msgid ""
+" fd = open(argv[1], O_RDONLY); /* Get descriptor for namespace */\n"
+" if (fd == -1)\n"
+" errExit(\"open\");\n"
+msgstr ""
+" fd = open(argv[1], O_RDONLY); /* 名前空間のディスクリプタを取得 */\n"
+" if (fd == -1)\n"
+" errExit(\"open\");\n"
#. type: Plain text
-#: build/C/man2/setns.2:107
+#: build/C/man2/setns.2:194
+#, no-wrap
msgid ""
-"Not all of the attributes that can be shared when a new thread is created "
-"using B<clone>(2) can be changed using B<setns>()."
+" if (setns(fd, 0) == -1) /* Join that namespace */\n"
+" errExit(\"setns\");\n"
msgstr ""
-"Not all of the attributes that can be shared when a new thread is created "
-"using B<clone>(2) can be changed using B<setns>()."
+" if (setns(fd, 0) == -1) /* 名前空間に参加 */\n"
+" errExit(\"setns\");\n"
#. type: Plain text
-#: build/C/man2/setns.2:115
+#: build/C/man2/setns.2:198
+#, no-wrap
msgid ""
-"The PID namespace and the mount namespace are not currently supported. (See "
-"the descriptions of B<CLONE_NEWPID> and B<CLONE_NEWNS> in B<clone>(2).)"
+" execvp(argv[2], &argv[2]); /* Execute a command in namespace */\n"
+" errExit(\"execvp\");\n"
+"}\n"
msgstr ""
-"The PID namespace and the mount namespace are not currently supported. (See "
-"the descriptions of B<CLONE_NEWPID> and B<CLONE_NEWNS> in B<clone>(2).)"
+" execvp(argv[2], &argv[2]); /* 名前空間内でコマンドを実行 */\n"
+" errExit(\"execvp\");\n"
+"}\n"
#. type: Plain text
-#: build/C/man2/setns.2:121
+#: build/C/man2/setns.2:205
msgid "B<clone>(2), B<fork>(2), B<vfork>(2), B<proc>(5), B<unix>(7)"
msgstr "B<clone>(2), B<fork>(2), B<vfork>(2), B<proc>(5), B<unix>(7)"
#. type: TH
-#: build/C/man2/unshare.2:17
+#: build/C/man2/unshare.2:20
#, no-wrap
msgid "UNSHARE"
msgstr "UNSHARE"
#. type: TH
-#: build/C/man2/unshare.2:17
-#, fuzzy, no-wrap
-#| msgid "2010-10-31"
-msgid "2010-10-30"
-msgstr "2010-10-31"
+#: build/C/man2/unshare.2:20
+#, no-wrap
+msgid "2013-04-17"
+msgstr "2013-04-17"
#. type: Plain text
-#: build/C/man2/unshare.2:20
+#: build/C/man2/unshare.2:23
msgid "unshare - disassociate parts of the process execution context"
msgstr "unshare - プロセス実行コンテキストの一部を分離する"
msgstr "B<int unshare(int >I<flags>B<);>\n"
#. type: Plain text
-#: build/C/man2/unshare.2:41
+#: build/C/man2/unshare.2:36
+msgid "B<unshare>():"
+msgstr "B<unshare>():"
+
+#. type: Plain text
+#: build/C/man2/unshare.2:62
msgid ""
"B<unshare>() allows a process to disassociate parts of its execution "
"context that are currently being shared with other processes. Part of the "
"とを要求できる。"
#. type: Plain text
-#: build/C/man2/unshare.2:46
+#: build/C/man2/unshare.2:67
msgid ""
"The main use of B<unshare>() is to allow a process to control its shared "
"execution context without creating a new process."
"有実行コンテキストを制御することである。"
#. type: Plain text
-#: build/C/man2/unshare.2:53
+#: build/C/man2/unshare.2:74
msgid ""
"The I<flags> argument is a bit mask that specifies which parts of the "
"execution context should be unshared. This argument is specified by ORing "
"I<flags> 引き数はビットマスクであり、 実行コンテキストのどの部分の共有を解除"
"するかを表す。 この引き数は、以下の定数の 0 個以上の OR で指定する:"
+#. type: TP
+#: build/C/man2/unshare.2:74
+#, no-wrap
+msgid "B<CLONE_FILES>"
+msgstr "B<CLONE_FILES>"
+
#. type: Plain text
-#: build/C/man2/unshare.2:61
+#: build/C/man2/unshare.2:82
msgid ""
"Reverse the effect of the B<clone>(2) B<CLONE_FILES> flag. Unshare the "
"file descriptor table, so that the calling process no longer shares its file "
"テーブルを共有させず、 呼び出し元プロセスは他のプロセスとファイルディスクリプ"
"タを共有しなくなる。"
+#. type: TP
+#: build/C/man2/unshare.2:82
+#, no-wrap
+msgid "B<CLONE_FS>"
+msgstr "B<CLONE_FS>"
+
#. type: Plain text
-#: build/C/man2/unshare.2:74
+#: build/C/man2/unshare.2:96
msgid ""
-"Reverse the effect of the B<clone>(2) B<CLONE_FS> flag. Unshare file "
-"system attributes, so that the calling process no longer shares its root "
-"directory, current directory, or umask attributes with any other process. "
-"B<chroot>(2), B<chdir>(2), or B<umask>(2)"
+"Reverse the effect of the B<clone>(2) B<CLONE_FS> flag. Unshare filesystem "
+"attributes, so that the calling process no longer shares its root directory "
+"(B<chroot>(2)), current directory (B<chdir>(2)), or umask (B<umask>(2)) "
+"attributes with any other process."
msgstr ""
-"B<clone>(2) B<CLONE_FS> フラグの効果を取り消す。 ファイルシステム属性を共有"
-"させず、 呼び出し元プロセスは他のプロセスとルートディレクトリ・ カレントディ"
-"レクトリ・umask 属性を共有しなくなる。 B<chroot>(2), B<chdir>(2), B<umask>"
-"(2) に影響する。"
+"B<clone>(2) B<CLONE_FS> フラグの効果を取り消す。ファイルシステム属性を共有さ"
+"せず、呼び出し元プロセスは、ルートディレクトリ (B<chroot>(2))、カレントディレ"
+"クトリ (B<chdir>(2))、 umask (B<umask>(2)) を他のプロセスと共有しなくなる。"
#. type: Plain text
-#: build/C/man2/unshare.2:91
-#, fuzzy
-#| msgid ""
-#| "This flag has the I<same> effect as the B<clone>(2) B<CLONE_NEWNS> "
-#| "flag. Unshare the mount namespace, so that the calling process has a "
-#| "private copy of its namespace which is not shared with any other "
-#| "process. Specifying this flag automatically implies B<CLONE_FS> as well."
+#: build/C/man2/unshare.2:113
msgid ""
"This flag has the same effect as the B<clone>(2) B<CLONE_NEWIPC> flag. "
-"Unshare the System V IPC namespace, so that the calling process has a "
-"private copy of the System V IPC namespace which is not shared with any "
+"Unshare the System\\ V IPC namespace, so that the calling process has a "
+"private copy of the System\\ V IPC namespace which is not shared with any "
"other process. Specifying this flag automatically implies B<CLONE_SYSVSEM> "
"as well. Use of B<CLONE_NEWIPC> requires the B<CAP_SYS_ADMIN> capability."
msgstr ""
-"このフラグは B<clone>(2) B<CLONE_NEWNS> フラグとI<同じ>効果を持つ。 マウント"
-"名前空間を共有せず、呼び出し元プロセスは 他のプロセスとは共有しない固有の名前"
-"空間のコピーを持つ。 このフラグを指定すると、 B<CLONE_FS> も暗黙のうちに指定"
-"される。"
+"このフラグは B<clone>(2) B<CLONE_NEWIPC> フラグと同じ効果を持つ。\n"
+"System\\ V IPC 名前空間を共有せず、呼び出し元プロセスは 他のプロセスとは\n"
+"共有しない固有の System\\ V IPC 名前空間のコピーを持つ。 このフラグを指定\n"
+"すると、 B<CLONE_SYSVSEM> も暗黙のうちに指定される。 B<CLONE_NEWIPC> を\n"
+"使用するには B<CAP_SYS_ADMIN> ケーパビリティが必要である。"
#. type: Plain text
-#: build/C/man2/unshare.2:105
-#, fuzzy
-#| msgid ""
-#| "This flag has the I<same> effect as the B<clone>(2) B<CLONE_NEWNS> "
-#| "flag. Unshare the mount namespace, so that the calling process has a "
-#| "private copy of its namespace which is not shared with any other "
-#| "process. Specifying this flag automatically implies B<CLONE_FS> as well."
+#: build/C/man2/unshare.2:128
msgid ""
"This flag has the same effect as the B<clone>(2) B<CLONE_NEWNET> flag. "
"Unshare the network namespace, so that the calling process is moved into a "
"new network namespace which is not shared with any previously existing "
-"process. B<CLONE_NEWNET> requires the B<CAP_SYS_ADMIN> capability."
+"process. Use of B<CLONE_NEWNET> requires the B<CAP_SYS_ADMIN> capability."
msgstr ""
-"このフラグは B<clone>(2) B<CLONE_NEWNS> フラグとI<同じ>効果を持つ。 マウント"
-"名前空間を共有せず、呼び出し元プロセスは 他のプロセスとは共有しない固有の名前"
-"空間のコピーを持つ。 このフラグを指定すると、 B<CLONE_FS> も暗黙のうちに指定"
-"ã\81\95ã\82\8cる。"
+"このフラグは B<clone>(2) B<CLONE_NEWNET> フラグと同じ効果を持つ。ネット\n"
+"ワーク名前空間を共有せず、呼び出し元プロセスは他のプロセスとは共有しな\n"
+"い固有のネットワーク名前空間のコピーを持つ。B<CLONE_NEWNET> を使用する\n"
+"ã\81«ã\81¯ B<CAP_SYS_ADMIN> ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\81\8cå¿\85è¦\81ã\81§ã\81\82る。"
#. type: TP
-#: build/C/man2/unshare.2:105
+#: build/C/man2/unshare.2:128
#, no-wrap
msgid "B<CLONE_NEWNS>"
msgstr "B<CLONE_NEWNS>"
#. CLONE_FS, and CLONE_FILES reverse the action of the clone()
#. flags of the same name.
#. type: Plain text
-#: build/C/man2/unshare.2:126
-#, fuzzy
-#| msgid ""
-#| "This flag has the I<same> effect as the B<clone>(2) B<CLONE_NEWNS> "
-#| "flag. Unshare the mount namespace, so that the calling process has a "
-#| "private copy of its namespace which is not shared with any other "
-#| "process. Specifying this flag automatically implies B<CLONE_FS> as well."
+#: build/C/man2/unshare.2:149
msgid ""
"This flag has the same effect as the B<clone>(2) B<CLONE_NEWNS> flag. "
"Unshare the mount namespace, so that the calling process has a private copy "
"this flag automatically implies B<CLONE_FS> as well. Use of B<CLONE_NEWNS> "
"requires the B<CAP_SYS_ADMIN> capability."
msgstr ""
-"このフラグは B<clone>(2) B<CLONE_NEWNS> フラグとI<同じ>効果を持つ。 マウント"
-"名前空間を共有せず、呼び出し元プロセスは 他のプロセスとは共有しない固有の名前"
-"空間のコピーを持つ。 このフラグを指定すると、 B<CLONE_FS> も暗黙のうちに指定"
-"される。"
-
-#. type: TP
-#: build/C/man2/unshare.2:126
-#, fuzzy, no-wrap
-#| msgid "B<CLONE_SYSVSEM> (since Linux 2.5.10)"
-msgid "B<CLONE_SYSVSEM> (since Linux 2.6.26)"
-msgstr "B<CLONE_SYSVSEM> (Linux 2.5.10 以降)"
+"このフラグは B<clone>(2) B<CLONE_NEWNS> フラグと同じ効果を持つ。 マウン\n"
+"ト名前空間を共有せず、呼び出し元プロセスは 他のプロセスとは共有しない固\n"
+"有の名前空間のコピーを持つ。 このフラグを指定すると、 B<CLONE_FS> も暗\n"
+"黙のうちに指定される。 B<CLONE_NEWNS> を使用するには B<CAP_SYS_ADMIN>\n"
+"ケーパビリティが必要である。"
#. type: Plain text
-#: build/C/man2/unshare.2:140
-#, fuzzy
-#| msgid ""
-#| "This flag has the I<same> effect as the B<clone>(2) B<CLONE_NEWNS> "
-#| "flag. Unshare the mount namespace, so that the calling process has a "
-#| "private copy of its namespace which is not shared with any other "
-#| "process. Specifying this flag automatically implies B<CLONE_FS> as well."
+#: build/C/man2/unshare.2:163
msgid ""
-"This flag reverses the effect of the B<clone>(2) B<CLONE_SYSVSEM> flag. "
-"Unshare System V semaphore undo values, so that the calling process has a "
-"private copy which is not shared with any other process. Use of "
-"B<CLONE_SYSVSEM> requires the B<CAP_SYS_ADMIN> capability."
+"This flag has the same effect as the B<clone>(2) B<CLONE_NEWUTS> flag. "
+"Unshare the UTS IPC namespace, so that the calling process has a private "
+"copy of the UTS namespace which is not shared with any other process. Use "
+"of B<CLONE_NEWUTS> requires the B<CAP_SYS_ADMIN> capability."
msgstr ""
-"このフラグは B<clone>(2) B<CLONE_NEWNS> フラグとI<同じ>効果を持つ。 マウント"
-"名前空間を共有せず、呼び出し元プロセスは 他のプロセスとは共有しない固有の名前"
-"空間のコピーを持つ。 このフラグを指定すると、 B<CLONE_FS> も暗黙のうちに指定"
-"される。"
+"このフラグは B<clone>(2) B<CLONE_NEWUTS> フラグと同じ効果を持つ。 UTS\n"
+"IPC 名前空間を共有せず、呼び出し元プロセスは他のプロセスとは共有しない\n"
+"固有の UTS IPC 名前空間のコピーを持つ。 このフラグを指定すると、\n"
+"B<CLONE_FS> も暗黙のうちに指定される。B<CLONE_NEWUTS> を使用するには\n"
+"B<CAP_SYS_ADMIN> ケーパビリティが必要である。"
+
+#. type: TP
+#: build/C/man2/unshare.2:163
+#, no-wrap
+msgid "B<CLONE_SYSVSEM> (since Linux 2.6.26)"
+msgstr "B<CLONE_SYSVSEM> (Linux 2.6.26 以降)"
+#. commit 9edff4ab1f8d82675277a04e359d0ed8bf14a7b7
#. As at 2.6.16, the following forced implications also apply,
#. although the relevant flags are not yet implemented.
#. If CLONE_THREAD is set force CLONE_VM.
#. Unshare virtual memory, so that the calling process no
#. longer shares its virtual address space with any other process.
#. type: Plain text
-#: build/C/man2/unshare.2:176
-#, fuzzy
-#| msgid ""
-#| "This flag has the I<same> effect as the B<clone>(2) B<CLONE_NEWNS> "
-#| "flag. Unshare the mount namespace, so that the calling process has a "
-#| "private copy of its namespace which is not shared with any other "
-#| "process. Specifying this flag automatically implies B<CLONE_FS> as well."
+#: build/C/man2/unshare.2:200
msgid ""
-"This flag has the same effect as the B<clone>(2) B<CLONE_NEWUTS> flag. "
-"Unshare the UTS IPC namespace, so that the calling process has a private "
-"copy of the UTS namespace which is not shared with any other process. Use "
-"of B<CLONE_NEWUTS> requires the B<CAP_SYS_ADMIN> capability."
+"This flag reverses the effect of the B<clone>(2) B<CLONE_SYSVSEM> flag. "
+"Unshare System\\ V semaphore undo values, so that the calling process has a "
+"private copy which is not shared with any other process. Use of "
+"B<CLONE_SYSVSEM> requires the B<CAP_SYS_ADMIN> capability."
msgstr ""
-"このフラグは B<clone>(2) B<CLONE_NEWNS> フラグとI<同じ>効果を持つ。 マウント"
-"名前空間を共有せず、呼び出し元プロセスは 他のプロセスとは共有しない固有の名前"
-"空間のコピーを持つ。 このフラグを指定すると、 B<CLONE_FS> も暗黙のうちに指定"
-"される。"
+"このフラグは B<clone>(2) B<CLONE_SYSVSEM> フラグの効果を逆転させる。\n"
+"System\\ V セマフォのアンドゥ値を共有せず、呼び出し元プロセスは 他のプロ\n"
+"セスとは共有しない固有のコピーを持つ。B<CLONE_SYSVSEM> を使用するには\n"
+"B<CAP_SYS_ADMIN> ケーパビリティが必要である。"
#. type: Plain text
-#: build/C/man2/unshare.2:183
+#: build/C/man2/unshare.2:207
msgid ""
"If I<flags> is specified as zero, then B<unshare>() is a no-op; no changes "
"are made to the calling process's execution context."
"元プロセスの実行コンテキストは、何も変更されない。"
#. type: Plain text
-#: build/C/man2/unshare.2:188
+#: build/C/man2/unshare.2:212
msgid ""
"On success, zero returned. On failure, -1 is returned and I<errno> is set "
"to indicate the error."
"ラーを示す値が設定される。"
#. type: Plain text
-#: build/C/man2/unshare.2:193
+#: build/C/man2/unshare.2:217
msgid "An invalid bit was specified in I<flags>."
msgstr "I<flags> に不正なビットが指定された。"
#. type: Plain text
-#: build/C/man2/unshare.2:197
+#: build/C/man2/unshare.2:221
msgid ""
"Cannot allocate sufficient memory to copy parts of caller's context that "
"need to be unshared."
"に、 十分なメモリが確保できなかった。"
#. type: Plain text
-#: build/C/man2/unshare.2:200
-#, fuzzy
-#| msgid ""
-#| "The calling thread did not have the required privilege "
-#| "(B<CAP_SYS_ADMIN>) for this operation."
+#: build/C/man2/unshare.2:224
msgid ""
"The calling process did not have the required privileges for this operation."
-msgstr ""
-"The calling thread did not have the required privilege (B<CAP_SYS_ADMIN>) "
-"for this operation."
+msgstr "呼び出し元プロセスはこの操作を行うのに必要な特権を持っていなかった。"
#. type: Plain text
-#: build/C/man2/unshare.2:204
+#: build/C/man2/unshare.2:228
msgid "The B<unshare>() system call was added to Linux in kernel 2.6.16."
msgstr "B<unshare>() システムコールは Linux カーネル 2.6.16 で追加された。"
#. type: Plain text
-#: build/C/man2/unshare.2:208
+#: build/C/man2/unshare.2:232
msgid "The B<unshare>() system call is Linux-specific."
msgstr "B<unshare>() システムコールは Linux 固有である。"
+#. FIXME all of the following needs to be reviewed for the current kernel
#. However, we can do unshare(CLONE_SIGHAND) if CLONE_SIGHAND
#. was not specified when doing clone(); i.e., unsharing
#. signal handlers is permitted if we are not actually
#. sharing signal handlers. mtk
-#. FIXME . check future kernel versions (e.g., 2.6.17)
-#. to see if CLONE_VM gets implemented.
-#. However, as at 2.6.16, we can do unshare(CLONE_VM) if CLONE_VM
+#. However, we can do unshare(CLONE_VM) if CLONE_VM
#. was not specified when doing clone(); i.e., unsharing
#. virtual memory is permitted if we are not actually
#. sharing virtual memory. mtk
#. be incrementally added to unshare without affecting legacy
#. applications using unshare.
#. type: Plain text
-#: build/C/man2/unshare.2:244
+#: build/C/man2/unshare.2:266
msgid ""
"Not all of the process attributes that can be shared when a new process is "
"created using B<clone>(2) can be unshared using B<unshare>(). In "
-"particular, as at kernel 2.6.16, B<unshare>() does not implement flags that "
-"reverse the effects of B<CLONE_SIGHAND>, B<CLONE_SYSVSEM>, B<CLONE_THREAD>, "
-"or B<CLONE_VM>. Such functionality may be added in the future, if required."
+"particular, as at kernel 3.8, B<unshare>() does not implement flags that "
+"reverse the effects of B<CLONE_SIGHAND>, B<CLONE_THREAD>, or B<CLONE_VM>. "
+"Such functionality may be added in the future, if required."
msgstr ""
"B<clone>(2) で新しいプロセスを生成したときに共有される全てのプロセス属性"
"を、 B<unshare>() によって共有の解除ができるわけではない。 特に、カーネル "
-"2.6.16 においては、 B<unshare>() に B<CLONE_SIGHAND>, B<CLONE_SYSVSEM>, "
-"B<CLONE_THREAD>, B<CLONE_VM> の効果を取り消すためのフラグが実装されていな"
-"い。 これらの機能は、必要であれば将来追加されるかもしれない。"
+"3.8 時点では、 B<unshare>() に B<CLONE_SIGHAND>, B<CLONE_THREAD>, "
+"B<CLONE_VM> の効果を取り消すためのフラグが実装されていない。 これらの機能は、"
+"必要であれば将来追加されるかもしれない。"
+
+#. type: Plain text
+#: build/C/man2/unshare.2:272
+msgid "B<clone>(2), B<fork>(2), B<kcmp>(2), B<setns>(2), B<vfork>(2)"
+msgstr "B<clone>(2), B<fork>(2), B<kcmp>(2), B<setns>(2), B<vfork>(2)"
#. type: Plain text
-#: build/C/man2/unshare.2:249
-msgid "B<clone>(2), B<fork>(2), B<vfork>(2), Documentation/unshare.txt"
-msgstr "B<clone>(2), B<fork>(2), B<vfork>(2), Documentation/unshare.txt"
+#: build/C/man2/unshare.2:275
+msgid "I<Documentation/unshare.txt> in the Linux kernel source tree"
+msgstr "Linux カーネルソース内の I<Documentation/unshare.txt>"
+
+#~ msgid "2013-09-23"
+#~ msgstr "2013-09-23"
+
+#~ msgid ""
+#~ "I<Programming for the real world - POSIX.4> by Bill O. Gallmeister, "
+#~ "O'Reilly & Associates, Inc., ISBN 1-56592-074-0."
+#~ msgstr ""
+#~ "I<Programming for the real world - POSIX.4> by Bill O. Gallmeister, "
+#~ "O'Reilly & Associates, Inc., ISBN 1-56592-074-0."
+
+#~ msgid "B<getcpu>(2)"
+#~ msgstr "B<getcpu>(2)"
+
+#~ msgid "2013-03-18"
+#~ msgstr "2013-03-18"
+
+#~ msgid "2013-09-17"
+#~ msgstr "2013-09-17"
+
+#~ msgid ""
+#~ "B<sched_setscheduler>() sets both the scheduling policy and the "
+#~ "associated parameters for the thread whose ID is specified in I<pid>. If "
+#~ "I<pid> equals zero, the scheduling policy and parameters of the calling "
+#~ "thread will be set. The interpretation of the argument I<param> depends "
+#~ "on the selected policy. Currently, Linux supports the following \"normal"
+#~ "\" (i.e., non-real-time) scheduling policies:"
+#~ msgstr ""
+#~ "B<sched_setscheduler>() は I<pid> で指定された ID を持つスレッドのスケ"
+#~ "ジューリングポリシーや それに関連するパラメータを設定する。I<pid> が 0 "
+#~ "の場合は 呼び出したスレッドのスケジューリングポリシーとパラメータが設定"
+#~ "される。 引き数 I<param> の解釈は選択されたポリシーによる。 現在のところ、"
+#~ "Linux では 以下に示す「通常」(リアルタイムでない) スケジューリングポリ"
+#~ "シーが サポートされている。"
+
+#~ msgid "The semantics of each of these policies are detailed below."
+#~ msgstr "これらのポリシーのそれぞれの動作については以下で説明する。"
+
+#~ msgid "Scheduling policies"
+#~ msgstr "スケジューリングポリシー (scheduling policy)"
+
+#~ msgid ""
+#~ "The scheduler is the kernel component that decides which runnable thread "
+#~ "will be executed by the CPU next. Each thread has an associated "
+#~ "scheduling policy and a I<static> scheduling priority, I<sched_priority>; "
+#~ "these are the settings that are modified by B<sched_setscheduler>(). The "
+#~ "scheduler makes it decisions based on knowledge of the scheduling policy "
+#~ "and static priority of all threads on the system."
+#~ msgstr ""
+#~ "スケジューラ (scheduler) とはカーネルの構成要素で、 次に CPU で実行される"
+#~ "実行可能なスレッドを決定するものである。 各々のスレッドには、スケジューリ"
+#~ "ングポリシーと 「静的」なスケジューリング優先度 I<sched_priority> が対応"
+#~ "付けられ、 これらの設定は B<sched_setscheduler>() で変更できる。 スケ"
+#~ "ジューラは、システム上の全スレッドのスケジューリングポリシーと 静的優先"
+#~ "度に関する知識に基づいて決定を行う。"
+
+#~ msgid ""
+#~ "For threads scheduled under one of the normal scheduling policies "
+#~ "(B<SCHED_OTHER>, B<SCHED_IDLE>, B<SCHED_BATCH>), I<sched_priority> is not "
+#~ "used in scheduling decisions (it must be specified as 0)."
+#~ msgstr ""
+#~ "通常のスケジューリングポリシー (B<SCHED_OTHER>, B<SCHED_IDLE>, "
+#~ "B<SCHED_BATCH>) の下でスケジューリングされるスレッドでは、 "
+#~ "I<sched_priority> はスケジューリングの決定に使用されない "
+#~ "(I<sched_priority> には 0 を指定しなければならない)。"
+
+#~ msgid ""
+#~ "Processes scheduled under one of the real-time policies (B<SCHED_FIFO>, "
+#~ "B<SCHED_RR>) have a I<sched_priority> value in the range 1 (low) to 99 "
+#~ "(high). (As the numbers imply, real-time threads always have higher "
+#~ "priority than normal threads.) Note well: POSIX.1-2001 requires an "
+#~ "implementation to support only a minimum 32 distinct priority levels for "
+#~ "the real-time policies, and some systems supply just this minimum. "
+#~ "Portable programs should use B<sched_get_priority_min>(2) and "
+#~ "B<sched_get_priority_max>(2) to find the range of priorities supported "
+#~ "for a particular policy."
+#~ msgstr ""
+#~ "リアルタイムスケジューリングポリシー (B<SCHED_FIFO>, B<SCHED_RR>) の"
+#~ "下でスケジューリングされるスレッドは、 I<sched_priority> の値は 1 (最低) "
+#~ "から 99 (最高) の範囲となる (数字から分かるように、リアルタイムスレッド"
+#~ "は常に通常のスレッドよりも 高い優先度を持つ)。 ここで注意すべきなのは、"
+#~ "POSIX.1-2001 が要求しているのは、 リアルタイムポリシーの実装において最"
+#~ "低 32 種類の異なる優先度レベルが サポートされることだけであり、いくつかの"
+#~ "システムではこの最低限の数の 優先度しか提供されていない、ということであ"
+#~ "る。 移植性が必要なプログラムでは、 B<sched_get_priority_min>(2) と "
+#~ "B<sched_get_priority_max>(2) を使って、あるポリシーがサポートする優先度の"
+#~ "範囲を調べるべきである。"
+
+#~ msgid ""
+#~ "Conceptually, the scheduler maintains a list of runnable threads for each "
+#~ "possible I<sched_priority> value. In order to determine which thread "
+#~ "runs next, the scheduler looks for the nonempty list with the highest "
+#~ "static priority and selects the thread at the head of this list."
+#~ msgstr ""
+#~ "概念としては、 スケジューラはその I<sched_priority> の値それぞれに対して "
+#~ "実行可能なスレッドのリストを管理している。 どのスレッドを次に実行するかを"
+#~ "決定するために、 スケジューラは静的優先度の最も高い空でないリストを探し"
+#~ "て、 そのリストの先頭のスレッドを選択する。"
+
+#~ msgid ""
+#~ "A thread's scheduling policy determines where it will be inserted into "
+#~ "the list of threads with equal static priority and how it will move "
+#~ "inside this list."
+#~ msgstr ""
+#~ "各スレッドのスケジューリングポリシーは、 そのスレッドが同じ静的優先度を"
+#~ "持つスレッドのリストの中のどこに挿入され、 このリストの中をどのように移動"
+#~ "するかを決定する。"
+
+#~ msgid ""
+#~ "All scheduling is preemptive: if a thread with a higher static priority "
+#~ "becomes ready to run, the currently running thread will be preempted and "
+#~ "returned to the wait list for its static priority level. The scheduling "
+#~ "policy determines the ordering only within the list of runnable threads "
+#~ "with equal static priority."
+#~ msgstr ""
+#~ "全てのスケジューリングはプリエンプティブ (preemptive) である: より高い優先"
+#~ "度のスレッドが実行可能になると、現在実行中のスレッドは実行権を 取り上げら"
+#~ "れ (preempted)、そのスレッドの静的優先度レベルの待ちリストに 戻される。ス"
+#~ "ケジューリングポリシーは同じ静的優先度を持つ実行可能な スレッドのリスト"
+#~ "の中で順番のみを決定する。"
+
+#~ msgid "SCHED_FIFO: First in-first out scheduling"
+#~ msgstr "SCHED_FIFO: ファーストインファーストアウトスケジューリング"
+
+#~ msgid ""
+#~ "B<SCHED_FIFO> can be used only with static priorities higher than 0, "
+#~ "which means that when a B<SCHED_FIFO> threads becomes runnable, it will "
+#~ "always immediately preempt any currently running B<SCHED_OTHER>, "
+#~ "B<SCHED_BATCH>, or B<SCHED_IDLE> thread. B<SCHED_FIFO> is a simple "
+#~ "scheduling algorithm without time slicing. For threads scheduled under "
+#~ "the B<SCHED_FIFO> policy, the following rules apply:"
+#~ msgstr ""
+#~ "B<SCHED_FIFO> は 0 より大きな静的優先度でのみ使用できる。このポリシーで"
+#~ "は、 B<SCHED_FIFO> スレッドが実行可能になった場合、 そのポリシーが "
+#~ "B<SCHED_OTHER>、 B<SCHED_BATCH>、 B<SCHED_IDLE> の 現在実行中のスレッドは"
+#~ "直ちに実行権を取り上げられる。 B<SCHED_FIFO> は時分割のない単純なスケ"
+#~ "ジューリングアルゴリズムである。 B<SCHED_FIFO> ポリシーでスケジューリン"
+#~ "グされているスレッドには以下の ルールが適用される:"
+
+#~ msgid "*"
+#~ msgstr "*"
+
+#~ msgid ""
+#~ "A B<SCHED_FIFO> thread that has been preempted by another thread of "
+#~ "higher priority will stay at the head of the list for its priority and "
+#~ "will resume execution as soon as all threads of higher priority are "
+#~ "blocked again."
+#~ msgstr ""
+#~ "より高い優先度の他のスレッドによって取って代わられた B<SCHED_FIFO> スレッ"
+#~ "ドはその優先度のリストの先頭に留まり続け、 より高い優先度のスレッド全てが"
+#~ "停止 (block) した場合に実行を再開する。"
+
+#~ msgid ""
+#~ "When a B<SCHED_FIFO> thread becomes runnable, it will be inserted at the "
+#~ "end of the list for its priority."
+#~ msgstr ""
+#~ "B<SCHED_FIFO> スレッドが実行可能になった時、その優先度のリストの最後 に挿"
+#~ "入される。"
+
+#~ msgid ""
+#~ "A call to B<sched_setscheduler>() or B<sched_setparam>(2) will put the "
+#~ "B<SCHED_FIFO> (or B<SCHED_RR>) thread identified by I<pid> at the start "
+#~ "of the list if it was runnable. As a consequence, it may preempt the "
+#~ "currently running thread if it has the same priority. (POSIX.1-2001 "
+#~ "specifies that the thread should go to the end of the list.)"
+#~ msgstr ""
+#~ "B<sched_setscheduler>() や B<sched_setparam>(2) は I<pid> で指定された "
+#~ "B<SCHED_FIFO> (または B<SCHED_RR>) スレッドが 実行可能な場合、リストの最初"
+#~ "に置く。 結果として、もし優先度が同じだった場合、 現在実行中のスレッドに先"
+#~ "んじるかもしれない。 (POSIX.1-2001 ではスレッドはリストの最後に行くべきと"
+#~ "規定されている。)"
+
+#~ msgid ""
+#~ "A thread calling B<sched_yield>(2) will be put at the end of the list."
+#~ msgstr "B<sched_yield>(2) を呼び出したスレッドはリストの最後に置かれる。"
+
+#~ msgid ""
+#~ "No other events will move a thread scheduled under the B<SCHED_FIFO> "
+#~ "policy in the wait list of runnable threads with equal static priority."
+#~ msgstr ""
+#~ "その他のイベントによって B<SCHED_FIFO> ポリシーでスケジューリングされるス"
+#~ "レッドが同じ優先度の実行可能なスレッドの待ちリストの中を移動することはな"
+#~ "い。"
+
+#~ msgid ""
+#~ "A B<SCHED_FIFO> thread runs until either it is blocked by an I/O request, "
+#~ "it is preempted by a higher priority thread, or it calls "
+#~ "B<sched_yield>(2)."
+#~ msgstr ""
+#~ "B<SCHED_FIFO> スレッドは I/O 要求によって停止するか、 より高い優先度のス"
+#~ "レッドによって置きかえられるか、 B<sched_yield>(2) を呼び出すまで実行を続"
+#~ "ける。"
+
+#~ msgid "SCHED_RR: Round-robin scheduling"
+#~ msgstr "SCHED_RR: ラウンドロビン (round-robin)スケジューリング"
+
+#~ msgid ""
+#~ "B<SCHED_RR> is a simple enhancement of B<SCHED_FIFO>. Everything "
+#~ "described above for B<SCHED_FIFO> also applies to B<SCHED_RR>, except "
+#~ "that each thread is allowed to run only for a maximum time quantum. If a "
+#~ "B<SCHED_RR> thread has been running for a time period equal to or longer "
+#~ "than the time quantum, it will be put at the end of the list for its "
+#~ "priority. A B<SCHED_RR> thread that has been preempted by a higher "
+#~ "priority thread and subsequently resumes execution as a running thread "
+#~ "will complete the unexpired portion of its round-robin time quantum. The "
+#~ "length of the time quantum can be retrieved using "
+#~ "B<sched_rr_get_interval>(2)."
+#~ msgstr ""
+#~ "B<SCHED_RR> は B<SCHED_FIFO> の単純な拡張である。 上述された\n"
+#~ "B<SCHED_FIFO> に関する記述は全て B<SCHED_RR> に 適用できる。異なるのは\n"
+#~ "それぞれのスレッドは最大時間単位までしか実行できない ということである。\n"
+#~ "B<SCHED_RR> スレッドが時間単位と同じかそれより 長い時間実行されると、\n"
+#~ "その優先度のリストの最後に置かれる。 より高い優先度のスレッドによって\n"
+#~ "置きかえられ、その後実行を再開した B<SCHED_RR> スレッドは、そのラウンド\n"
+#~ "ロビン時間単位を完全に使い切る まで実行される。その時間単位の長さは\n"
+#~ "B<sched_rr_get_interval>(2) を使って取得できる。"
+
+#~ msgid "SCHED_OTHER: Default Linux time-sharing scheduling"
+#~ msgstr "SCHED_OTHER: Linux のデフォルトの時分割スケジューリング"
+
+#~ msgid ""
+#~ "B<SCHED_OTHER> can be used at only static priority 0. B<SCHED_OTHER> is "
+#~ "the standard Linux time-sharing scheduler that is intended for all "
+#~ "threads that do not require the special real-time mechanisms. The thread "
+#~ "to run is chosen from the static priority 0 list based on a I<dynamic> "
+#~ "priority that is determined only inside this list. The dynamic priority "
+#~ "is based on the nice value (set by B<nice>(2) or B<setpriority>(2)) and "
+#~ "increased for each time quantum the thread is ready to run, but denied to "
+#~ "run by the scheduler. This ensures fair progress among all "
+#~ "B<SCHED_OTHER> threads."
+#~ msgstr ""
+#~ "B<SCHED_OTHER> は静的優先度 0 でのみ使用できる。 B<SCHED_OTHER> は Linux "
+#~ "標準の時分割スケジューラで、 特別なリアルタイム機構を必要としていない全て"
+#~ "のスレッドで使用される。 実行するスレッドは、静的優先度 0 のリストから、こ"
+#~ "のリストの中だけで 決定される「動的な」優先度 (dynamic priority) に基いて"
+#~ "決定される。 動的な優先度は (B<nice>(2) や B<setpriority>(2) により設定"
+#~ "される) nice 値に基づいて決定されるもので、 単位時間毎に、スレッドが実行可"
+#~ "能だが、スケジューラにより実行が拒否された 場合にインクリメントされる。 こ"
+#~ "れにより、全ての B<SCHED_OTHER> スレッドでの公平性が保証される。"
+
+#~ msgid "SCHED_BATCH: Scheduling batch processes"
+#~ msgstr "SCHED_BATCH: バッチプロセスのスケジューリング"
+
+#~ msgid ""
+#~ "(Since Linux 2.6.16.) B<SCHED_BATCH> can be used only at static priority "
+#~ "0. This policy is similar to B<SCHED_OTHER> in that it schedules the "
+#~ "thread according to its dynamic priority (based on the nice value). The "
+#~ "difference is that this policy will cause the scheduler to always assume "
+#~ "that the thread is CPU-intensive. Consequently, the scheduler will apply "
+#~ "a small scheduling penalty with respect to wakeup behaviour, so that this "
+#~ "thread is mildly disfavored in scheduling decisions."
+#~ msgstr ""
+#~ "(Linux 2.6.16 以降) B<SCHED_BATCH> は静的優先度 0 でのみ使用できる。 この"
+#~ "ポリシーは (nice 値に基づく) 動的な優先度にしたがってスレッドの スケジュー"
+#~ "リングが行われるという点で、B<SCHED_OTHER> に似ている。 異なるのは、このポ"
+#~ "リシーでは、スレッドが常に CPU に負荷のかかる (CPU-intensive) 処理を行う"
+#~ "と、スケジューラが仮定する点である。 スケジューラはスレッドを呼び起こす毎"
+#~ "にそのスレッドにスケジューリング上の ペナルティを少し課し、その結果、この"
+#~ "スレッドはスケジューリングの決定で 若干冷遇されるようになる。"
+
+#~ msgid ""
+#~ "This policy is useful for workloads that are noninteractive, but do not "
+#~ "want to lower their nice value, and for workloads that want a "
+#~ "deterministic scheduling policy without interactivity causing extra "
+#~ "preemptions (between the workload's tasks)."
+#~ msgstr ""
+#~ "このポリシーは、非対話的な処理だがその nice 値を下げたくない処理や、 (処理"
+#~ "のタスク間で) 余計なタスクの置き換えの原因とある対話的な処理なしで 確定的"
+#~ "な (deterministic) スケジューリングポリシーを適用したい処理に 対して有効"
+#~ "である。"
+
+#~ msgid "SCHED_IDLE: Scheduling very low priority jobs"
+#~ msgstr "SCHED_IDLE: 非常に優先度の低いジョブのスケジューリング"
+
+#~ msgid ""
+#~ "(Since Linux 2.6.23.) B<SCHED_IDLE> can be used only at static priority "
+#~ "0; the process nice value has no influence for this policy."
+#~ msgstr ""
+#~ "(Linux 2.6.23 以降) B<SCHED_IDLE> は静的優先度 0 でのみ使用できる。 この"
+#~ "ポリシーではプロセスの nice 値はスケジューリングに影響を与えない。"
+
+#~ msgid ""
+#~ "This policy is intended for running jobs at extremely low priority (lower "
+#~ "even than a +19 nice value with the B<SCHED_OTHER> or B<SCHED_BATCH> "
+#~ "policies)."
+#~ msgstr ""
+#~ "非常に低い優先度でのジョブの実行を目的としたものである (非常に低い優先度と"
+#~ "は、ポリシー B<SCHED_OTHER> か B<SCHED_BATCH> での nice 値 +19 よりさらに"
+#~ "低い優先度である)。"
+
+#~ msgid "Resetting scheduling policy for child processes"
+#~ msgstr "子プロセスでのスケジューリングポリシーのリセット"
+
+#~ msgid ""
+#~ "More precisely, if the B<SCHED_RESET_ON_FORK> flag is specified, the "
+#~ "following rules apply for subsequently created children:"
+#~ msgstr ""
+#~ "より正確には、 B<SCHED_RESET_ON_FORK> フラグが指定された場合、それ以降に作"
+#~ "成される子プロセスに以下のルールが適用される。"
+
+#~ msgid ""
+#~ "If the calling thread has a scheduling policy of B<SCHED_FIFO> or "
+#~ "B<SCHED_RR>, the policy is reset to B<SCHED_OTHER> in child processes."
+#~ msgstr ""
+#~ "呼び出したスレッドのスケジューリングポリシーが B<SCHED_FIFO> か "
+#~ "B<SCHED_RR> の場合、子プロセスのポリシーは B<SCHED_OTHER> にリセットされ"
+#~ "る。"
+
+#~ msgid ""
+#~ "If the calling process has a negative nice value, the nice value is reset "
+#~ "to zero in child processes."
+#~ msgstr ""
+#~ "子プロセスが負の nice 値を持っている場合、子プロセスの nice 値は 0 にリ"
+#~ "セットされる。"
+
+#~ msgid ""
+#~ "After the B<SCHED_RESET_ON_FORK> flag has been enabled, it can be reset "
+#~ "only if the thread has the B<CAP_SYS_NICE> capability. This flag is "
+#~ "disabled in child processes created by B<fork>(2)."
+#~ msgstr ""
+#~ "一度 B<SCHED_RESET_ON_FORK> フラグが有効にされた後は、このフラグをリセット"
+#~ "できるのは、スレッドが B<CAP_SYS_NICE> ケーパビリティを持つ場合だけであ"
+#~ "る。このフラグは B<fork>(2) で作成された子プロセスでは無効になる。"
+
+#~ msgid ""
+#~ "The B<SCHED_RESET_ON_FORK> flag is visible in the policy value returned "
+#~ "by B<sched_getscheduler>()"
+#~ msgstr ""
+#~ "B<SCHED_RESET_ON_FORK> フラグは、 B<sched_getscheduler>() が返すポリシー値"
+#~ "で参照できる。"
+
+#~ msgid "Privileges and resource limits"
+#~ msgstr "特権とリソース制限"
+
+#~ msgid ""
+#~ "In Linux kernels before 2.6.12, only privileged (B<CAP_SYS_NICE>) "
+#~ "threads can set a nonzero static priority (i.e., set a real-time "
+#~ "scheduling policy). The only change that an unprivileged thread can make "
+#~ "is to set the B<SCHED_OTHER> policy, and this can be done only if the "
+#~ "effective user ID of the caller of B<sched_setscheduler>() matches the "
+#~ "real or effective user ID of the target thread (i.e., the thread "
+#~ "specified by I<pid>) whose policy is being changed."
+#~ msgstr ""
+#~ "2.6.12 より前のバージョンの Linux カーネルでは、 特権スレッド "
+#~ "(B<CAP_SYS_NICE> ケーパビリティを持つスレッド) だけが 0 以外の静的優先度を"
+#~ "設定する (すなわち、リアルタイムスケジューリングポリシーを設定する) こ"
+#~ "とができる。 非特権スレッドができる変更は B<SCHED_OTHER> ポリシーを設定す"
+#~ "ることだけであり、さらにこの変更を行えるのは B<sched_setscheduler>() の呼"
+#~ "び出し元の実効ユーザ ID がポリシーの変更対象スレッド (I<pid> で指定された"
+#~ "スレッド) の実ユーザ ID か実効ユーザ ID と 一致する場合だけである。"
+
+#~ msgid ""
+#~ "Since Linux 2.6.12, the B<RLIMIT_RTPRIO> resource limit defines a ceiling "
+#~ "on an unprivileged thread's static priority for the B<SCHED_RR> and "
+#~ "B<SCHED_FIFO> policies. The rules for changing scheduling policy and "
+#~ "priority are as follows:"
+#~ msgstr ""
+#~ "Linux 2.6.12 以降では、リソース制限 B<RLIMIT_RTPRIO> が定義されており、 ス"
+#~ "ケジューリングポリシーが B<SCHED_RR> と B<SCHED_FIFO> の場合の、非特権ス"
+#~ "レッドの静的優先度の上限を定めている。 スケジューリングポリシーと優先度"
+#~ "を変更する際のルールは以下の通りである。"
+
+#~ msgid ""
+#~ "If an unprivileged thread has a nonzero B<RLIMIT_RTPRIO> soft limit, then "
+#~ "it can change its scheduling policy and priority, subject to the "
+#~ "restriction that the priority cannot be set to a value higher than the "
+#~ "maximum of its current priority and its B<RLIMIT_RTPRIO> soft limit."
+#~ msgstr ""
+#~ "非特権スレッドに 0 以外の B<RLIMIT_RTPRIO> ソフトリミットが設定されてい"
+#~ "る場合、 非特権スレッドはそのスレッドのスケジューリングポリシーと優先度"
+#~ "を 変更できるが、優先度を現在の自身の優先度と B<RLIMIT_RTPRIO> ソフトリ"
+#~ "ミットの大きい方よりも高い値に設定できないという制限が課される。"
+
+#~ msgid ""
+#~ "If the B<RLIMIT_RTPRIO> soft limit is 0, then the only permitted changes "
+#~ "are to lower the priority, or to switch to a non-real-time policy."
+#~ msgstr ""
+#~ "B<RLIMIT_RTPRIO> ソフトリミットが 0 の場合、優先度を下げるか、 リアルタ"
+#~ "イムでないポリシーへ切り替えるかの変更だけが許可される。"
+
+#~ msgid ""
+#~ "Subject to the same rules, another unprivileged thread can also make "
+#~ "these changes, as long as the effective user ID of the thread making the "
+#~ "change matches the real or effective user ID of the target thread."
+#~ msgstr ""
+#~ "ある非特権スレッドが別のスレッドに対してこれらの変更を行う際にも、 同じ"
+#~ "ルールが適用される。変更を行えるのは、変更を行おうとするスレッド の実効"
+#~ "ユーザ ID が変更対象のスレッドの実ユーザ ID か実効ユーザ ID と 一致してい"
+#~ "る場合に限られる。"
+
+#~ msgid ""
+#~ "Special rules apply for the B<SCHED_IDLE>. In Linux kernels before "
+#~ "2.6.39, an unprivileged thread operating under this policy cannot change "
+#~ "its policy, regardless of the value of its B<RLIMIT_RTPRIO> resource "
+#~ "limit. In Linux kernels since 2.6.39, an unprivileged thread can switch "
+#~ "to either the B<SCHED_BATCH> or the B<SCHED_NORMAL> policy so long as its "
+#~ "nice value falls within the range permitted by its B<RLIMIT_NICE> "
+#~ "resource limit (see B<getrlimit>(2))."
+#~ msgstr ""
+#~ "B<SCHED_IDLE> の場合には特別なルールが適用される。 2.6.39 より前の Linux "
+#~ "カーネルでは、このポリシーで動作する非特権スレッドは、 B<RLIMIT_RTPRIO> リ"
+#~ "ソース上限の値に関わらず、自分のポリシーを変更することができない。 2.6.39 "
+#~ "以降の Linux カーネルでは、非特権スレッドは、自分の nice 値が "
+#~ "B<RLIMIT_NICE> リソース上限 (B<getrlimit>(2) 参照) で許可された範囲である"
+#~ "限りは、自分のスケジューリングポリシーを B<SCHED_BATCH> か "
+#~ "B<SCHED_NORMAL> ポリシーに切り替えることができる。"
+
+#~ msgid ""
+#~ "Privileged (B<CAP_SYS_NICE>) threads ignore the B<RLIMIT_RTPRIO> limit; "
+#~ "as with older kernels, they can make arbitrary changes to scheduling "
+#~ "policy and priority. See B<getrlimit>(2) for further information on "
+#~ "B<RLIMIT_RTPRIO>."
+#~ msgstr ""
+#~ "特権スレッド (B<CAP_SYS_NICE> ケーパビリティを持つスレッド) の場合、 "
+#~ "B<RLIMIT_RTPRIO> の制限は無視される; 古いカーネルと同じように、スケジュー"
+#~ "リングポリシーと優先度に対し 任意の変更を行うことができる。 "
+#~ "B<RLIMIT_RTPRIO> に関するもっと詳しい情報は B<getrlimit>(2) を参照のこ"
+#~ "と。"
+
+#~ msgid "Response time"
+#~ msgstr "応答時間 (response time)"
+
+#~ msgid ""
+#~ "A blocked high priority thread waiting for the I/O has a certain response "
+#~ "time before it is scheduled again. The device driver writer can greatly "
+#~ "reduce this response time by using a \"slow interrupt\" interrupt handler."
+#~ msgstr ""
+#~ "I/O 待ちで停止したより高い優先度のスレッドは再びスケジューリングされる 前"
+#~ "にいくらかの応答時間がかかる。デバイスドライバーを書く場合には \"slow "
+#~ "interrupt\" 割り込みハンドラーを使用することで この応答時間を劇的に減少さ"
+#~ "せることができる。"
+
+#~ msgid "Miscellaneous"
+#~ msgstr "その他"
+
+#~ msgid ""
+#~ "Child processes inherit the scheduling policy and parameters across a "
+#~ "B<fork>(2). The scheduling policy and parameters are preserved across "
+#~ "B<execve>(2)."
+#~ msgstr ""
+#~ "子プロセスは B<fork>(2) の際に親プロセスのスケジューリングポリシーとパ"
+#~ "ラメータを継承する。 B<execve>(2) の前後で、スケジューリングポリシーと"
+#~ "パラメータは保持される。"
+
+#~ msgid ""
+#~ "Memory locking is usually needed for real-time processes to avoid paging "
+#~ "delays; this can be done with B<mlock>(2) or B<mlockall>(2)."
+#~ msgstr ""
+#~ "リアルタイムプロセスは大抵、ページングの待ち時間を避けるために "
+#~ "B<mlock>(2) や B<mlockall>(2) を使ってメモリロックをしなければならな"
+#~ "い。"
+
+#~ msgid ""
+#~ "Since a nonblocking infinite loop in a thread scheduled under "
+#~ "B<SCHED_FIFO> or B<SCHED_RR> will block all threads with lower priority "
+#~ "forever, a software developer should always keep available on the console "
+#~ "a shell scheduled under a higher static priority than the tested "
+#~ "application. This will allow an emergency kill of tested real-time "
+#~ "applications that do not block or terminate as expected. See also the "
+#~ "description of the B<RLIMIT_RTTIME> resource limit in B<getrlimit>(2)."
+#~ msgstr ""
+#~ "B<SCHED_FIFO> や B<SCHED_RR> でスケジューリングされる スレッドが停止せずに"
+#~ "無限ループに陥ると、 他の全てのより低い優先度のスレッドを永久に停止 "
+#~ "(block) させてしまうので、 ソフトウェア開発者はコンソールのシェルの静的優"
+#~ "先度をテストする アプリケーションよりも常に高く保つべきである。 これによっ"
+#~ "て期待通りに停止したり終了したりしないリアルタイム アプリケーションを緊"
+#~ "急終了させることが可能になる。 B<getrlimit>(2) のリソース制限 "
+#~ "B<RLIMIT_RTTIME> の説明も参照のこと。"
+
+#~ msgid ""
+#~ "The scheduling I<policy> is not one of the recognized policies, I<param> "
+#~ "is NULL, or I<param> does not make sense for the I<policy>."
+#~ msgstr ""
+#~ "スケジューリングポリシー I<policy> が間違っている。\n"
+#~ "または I<param> が NULL である。\n"
+#~ "または I<param> がそのポリシーでは意味をなさない。"
+
+#~ msgid ""
+#~ "Originally, Standard Linux was intended as a general-purpose operating "
+#~ "system being able to handle background processes, interactive "
+#~ "applications, and less demanding real-time applications (applications "
+#~ "that need to usually meet timing deadlines). Although the Linux kernel "
+#~ "2.6 allowed for kernel preemption and the newly introduced O(1) scheduler "
+#~ "ensures that the time needed to schedule is fixed and deterministic "
+#~ "irrespective of the number of active tasks, true real-time computing was "
+#~ "not possible up to kernel version 2.6.17."
+#~ msgstr ""
+#~ "もともとは、標準の Linux は一般目的のオペレーティングシステムとして 設計さ"
+#~ "れており、バックグラウンドプロセスや対話的アプリケーション、 リアルタイ"
+#~ "ム性の要求が厳しくないリアルタイムアプリケーション (普通はタイミングの応"
+#~ "答期限 (deadline) を満たす必要があるアプリケーション) を扱うことができ"
+#~ "た。 Linux カーネル 2.6 では、 カーネルのプリエンプション (タスクの置き換"
+#~ "え) が可能であり、 新たに導入された O(1) スケジューラにより、 アクティブな"
+#~ "タスクの数に関わらずスケジューリングに必要な時間は 固定で確定的 "
+#~ "(deterministic) であることが保証されている。 それにも関わらず、カーネル "
+#~ "2.6.17 までは 真のリアルタイムコンピューティングは実現できなかった。"
+
+#~ msgid "Real-time features in the mainline Linux kernel"
+#~ msgstr "本流の Linux カーネルでのリアルタイム機能"
+
+#~ msgid ""
+#~ "From kernel version 2.6.18 onward, however, Linux is gradually becoming "
+#~ "equipped with real-time capabilities, most of which are derived from the "
+#~ "former I<realtime-preempt> patches developed by Ingo Molnar, Thomas "
+#~ "Gleixner, Steven Rostedt, and others. Until the patches have been "
+#~ "completely merged into the mainline kernel (this is expected to be around "
+#~ "kernel version 2.6.30), they must be installed to achieve the best real-"
+#~ "time performance. These patches are named:"
+#~ msgstr ""
+#~ "カーネル 2.6.18 から現在まで、 Linux は徐々にリアルタイム機能を備えつつ\n"
+#~ "あるが、 これらの機能のほとんどは、 Ingo Molnar, Thomas Gleixner,\n"
+#~ "Steven Rostedt らによって開発された、 以前の I<realtime-preempt> パッチ\n"
+#~ "からのものである。 これらのパッチが本流のカーネルに完全にマージされるま\n"
+#~ "では (マージの完了はカーネル 2.6.30 あたりの予定)、 最高のリアルタイム\n"
+#~ "性能を達成するには realtime-preempt パッチを 組み込まなければならない。\n"
+#~ "これらのパッチは"
+
+#~ msgid "patch-I<kernelversion>-rtI<patchversion>\n"
+#~ msgstr "patch-I<kernelversion>-rtI<patchversion>\n"
+
+#~ msgid ""
+#~ "and can be downloaded from E<.UR http://www.kernel.org\\:/pub\\:/linux\\:/"
+#~ "kernel\\:/projects\\:/rt/> E<.UE .>"
+#~ msgstr ""
+#~ "という名前で、 E<.UR http://www.kernel.org\\:/pub\\:/linux\\:/kernel\\:/"
+#~ "projects\\:/rt/> E<.UE> からダウンロードできる。"
+
+#~ msgid ""
+#~ "Without the patches and prior to their full inclusion into the mainline "
+#~ "kernel, the kernel configuration offers only the three preemption classes "
+#~ "B<CONFIG_PREEMPT_NONE>, B<CONFIG_PREEMPT_VOLUNTARY>, and "
+#~ "B<CONFIG_PREEMPT_DESKTOP> which respectively provide no, some, and "
+#~ "considerable reduction of the worst-case scheduling latency."
+#~ msgstr ""
+#~ "このパッチが適用されず、かつパッチの内容の本流のカーネルへのマージが 完了"
+#~ "するまでは、カーネルの設定では B<CONFIG_PREEMPT_NONE>, "
+#~ "B<CONFIG_PREEMPT_VOLUNTARY>, B<CONFIG_PREEMPT_DESKTOP> の 3つのプリエンプ"
+#~ "ションクラス (preemption class) だけが提供される。 これらのクラスでは、"
+#~ "最悪の場合のスケジューリング遅延がそれぞれ 全く減らない、いくらか減る、か"
+#~ "なり減る。"
+
+#~ msgid ""
+#~ "With the patches applied or after their full inclusion into the mainline "
+#~ "kernel, the additional configuration item B<CONFIG_PREEMPT_RT> becomes "
+#~ "available. If this is selected, Linux is transformed into a regular real-"
+#~ "time operating system. The FIFO and RR scheduling policies that can be "
+#~ "selected using B<sched_setscheduler>() are then used to run a thread "
+#~ "with true real-time priority and a minimum worst-case scheduling latency."
+#~ msgstr ""
+#~ "パッチが適用された場合、またはパッチの内容の本流のカーネルへのマージが 完"
+#~ "了した後では、上記に加えて設定項目として B<CONFIG_PREEMPT_RT> が利用可能に"
+#~ "なる。この項目を選択すると、 Linux は通常のリアルタイムオペレーティング"
+#~ "システムに変身する。 この場合には、 B<sched_setscheduler>() で選択できる "
+#~ "FIFO と RR のスケジューリングポリシーは、 真のリアルタイム優先度を持つス"
+#~ "レッドを最悪の場合のスケジューリング遅延が 最小となる環境で動作させるため"
+#~ "に使われることになる。"
+
+#~ msgid ""
+#~ "The Linux kernel source file I<Documentation/scheduler/sched-rt-group.txt>"
+#~ msgstr ""
+#~ "Linux カーネルソースファイル I<Documentation/scheduler/sched-rt-group.txt>"
+
+#~ msgid "2008-10-18"
+#~ msgstr "2008-10-18"
+
+#~ msgid "B<sched_setscheduler>(2) for a description of Linux scheduling"
+#~ msgstr ""
+#~ "Linux のスケージュリング (scheduling) については B<sched_setscheduler>(2) "
+#~ "を参照。"
+
+#~ msgid "2013-04-16"
+#~ msgstr "2013-04-16"
+
+#~ msgid "Create a child that executes in a separate UTS namespace"
+#~ msgstr "別の UTS 名前空間で動作する子プロセスを作成する"
-#~ msgid "2007-04-06"
-#~ msgstr "2007-04-06"
+#~ msgid "2013-01-27"
+#~ msgstr "2013-01-27"
+
+#~ msgid "2006-03-23"
+#~ msgstr "2006-03-23"
+
+#~ msgid "2013-02-11"
+#~ msgstr "2013-02-11"
+
+#~ msgid ""
+#~ "B<clone>() creates a new process, in a manner similar to B<fork>(2). It "
+#~ "is actually a library function layered on top of the underlying "
+#~ "B<clone>() system call, hereinafter referred to as B<sys_clone>. A "
+#~ "description of B<sys_clone> is given toward the end of this page."
+#~ msgstr ""
+#~ "B<clone>() は B<fork>(2) と同じような方法で新しいプロセスを作成する。 "
+#~ "B<clone>() には、ライブラリ関数とその下層にあたる B<clone>() システム"
+#~ "コールが存在する。以下の説明では、システムコールの方を B<sys_clone> と表す"
+#~ "こととする。 B<sys_clone> に関する説明はこのマニュアルの最後の方にある。"
+
+#~ msgid ""
+#~ "The B<clone>() and B<sys_clone> calls are Linux-specific and should not "
+#~ "be used in programs intended to be portable."
+#~ msgstr ""
+#~ "B<clone>() と B<sys_clone> コールは Linux 特有であり、移植を考慮したプロ"
+#~ "グラムでは使用すべき ではない。"
+
+#~ msgid ""
+#~ "I<Documentation/scheduler/sched-rt-group.txt> in the Linux kernel source "
+#~ "tree (since kernel 2.6.25)."
+#~ msgstr ""
+#~ "Linux カーネルソース内の I<Documentation/scheduler/sched-rt-group.txt> "
+#~ "(カーネル 2.6.25 以降)"
+
+#~ msgid ""
+#~ "The PID namespace and the mount namespace are not currently supported. "
+#~ "(See the descriptions of B<CLONE_NEWPID> and B<CLONE_NEWNS> in "
+#~ "B<clone>(2).)"
+#~ msgstr ""
+#~ "現在のところ、 PID 名前空間とマウント名前空間はサポートされていない\n"
+#~ "(B<clone>(2) の B<CLONE_NEWPID> と B<CLONE_NEWNS> の説明を参照)。"
#~ msgid ""
#~ "If I<pid> is zero, the time quantum for the calling process is written "
#~ "る。 B<sched_rr_get_interval>() の使用可能な POSIX システムでは "
#~ "I<E<lt>unistd.hE<gt>> で B<_POSIX_PRIORITY_SCHEDULING> が定義されている。"
-#~ msgid "2010-11-01"
-#~ msgstr "2010-11-01"
-
#~ msgid ""
#~ "I<From Linux 2.6.25 this flag is deprecated.> You probably never wanted "
#~ "to use it, you certainly shouldn't be using it, and soon it will go away."
#~ "うことは決してないだろうし、 確実に使わないようにすべきである。 このフラグ"
#~ "は近いうちになくなることだろう。"
-#~ msgid "2008-11-06"
-#~ msgstr "2008-11-06"
-
#~ msgid ""
#~ "Special rules apply for the B<SCHED_IDLE>: an unprivileged process "
#~ "operating under this policy cannot change its policy, regardless of the "