OSDN Git Service

LDP: Update POT and ja.po to LDP v3.78-git-80a7408
[linuxjm/LDP_man-pages.git] / po4a / sched / po / ja.po
1 # SOME DESCRIPTIVE TITLE
2 # Copyright (C) YEAR Free Software Foundation, Inc.
3 # This file is distributed under the same license as the PACKAGE package.
4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5 #
6 msgid ""
7 msgstr ""
8 "Project-Id-Version: PACKAGE VERSION\n"
9 "POT-Creation-Date: 2015-01-21 20:35+0900\n"
10 "PO-Revision-Date: 2015-01-11 05:19+0900\n"
11 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12 "Language-Team: LANGUAGE <LL@li.org>\n"
13 "Language: \n"
14 "MIME-Version: 1.0\n"
15 "Content-Type: text/plain; charset=UTF-8\n"
16 "Content-Transfer-Encoding: 8bit\n"
17
18 #. type: TH
19 #: build/C/man3/CPU_SET.3:27
20 #, no-wrap
21 msgid "CPU_SET"
22 msgstr "CPU_SET"
23
24 #. type: TH
25 #: build/C/man3/CPU_SET.3:27
26 #, no-wrap
27 msgid "2012-03-15"
28 msgstr "2012-03-15"
29
30 #. type: TH
31 #: build/C/man3/CPU_SET.3:27 build/C/man2/clone.2:42 build/C/man2/kcmp.2:28
32 #: build/C/man2/sched_get_priority_max.2:29 build/C/man3/sched_getcpu.3:26
33 #: build/C/man2/sched_rr_get_interval.2:29 build/C/man2/sched_setaffinity.2:34
34 #: build/C/man2/sched_setattr.2:26 build/C/man2/sched_setparam.2:30
35 #: build/C/man2/sched_setscheduler.2:26 build/C/man2/sched_yield.2:29
36 #: build/C/man7/sched.7:32 build/C/man2/setns.2:8 build/C/man2/unshare.2:20
37 #, no-wrap
38 msgid "Linux"
39 msgstr "Linux"
40
41 #. type: TH
42 #: build/C/man3/CPU_SET.3:27 build/C/man2/clone.2:42 build/C/man2/kcmp.2:28
43 #: build/C/man2/sched_get_priority_max.2:29 build/C/man3/sched_getcpu.3:26
44 #: build/C/man2/sched_rr_get_interval.2:29 build/C/man2/sched_setaffinity.2:34
45 #: build/C/man2/sched_setattr.2:26 build/C/man2/sched_setparam.2:30
46 #: build/C/man2/sched_setscheduler.2:26 build/C/man2/sched_yield.2:29
47 #: build/C/man7/sched.7:32 build/C/man2/setns.2:8 build/C/man2/unshare.2:20
48 #, no-wrap
49 msgid "Linux Programmer's Manual"
50 msgstr "Linux Programmer's Manual"
51
52 #. type: SH
53 #: build/C/man3/CPU_SET.3:28 build/C/man2/clone.2:43 build/C/man2/kcmp.2:29
54 #: build/C/man2/sched_get_priority_max.2:30 build/C/man3/sched_getcpu.3:27
55 #: build/C/man2/sched_rr_get_interval.2:30 build/C/man2/sched_setaffinity.2:35
56 #: build/C/man2/sched_setattr.2:27 build/C/man2/sched_setparam.2:31
57 #: build/C/man2/sched_setscheduler.2:27 build/C/man2/sched_yield.2:30
58 #: build/C/man7/sched.7:33 build/C/man2/setns.2:9 build/C/man2/unshare.2:21
59 #, no-wrap
60 msgid "NAME"
61 msgstr "名前"
62
63 #. type: Plain text
64 #: build/C/man3/CPU_SET.3:35
65 msgid ""
66 "CPU_SET, CPU_CLR, CPU_ISSET, CPU_ZERO, CPU_COUNT, CPU_AND, CPU_OR, CPU_XOR, "
67 "CPU_EQUAL, CPU_ALLOC, CPU_ALLOC_SIZE, CPU_FREE, CPU_SET_S, CPU_CLR_S, "
68 "CPU_ISSET_S, CPU_ZERO_S, CPU_COUNT_S, CPU_AND_S, CPU_OR_S, CPU_XOR_S, "
69 "CPU_EQUAL_S - macros for manipulating CPU sets"
70 msgstr ""
71 "CPU_SET, CPU_CLR, CPU_ISSET, CPU_ZERO, CPU_COUNT, CPU_AND, CPU_OR, CPU_XOR, "
72 "CPU_EQUAL, CPU_ALLOC, CPU_ALLOC_SIZE, CPU_FREE, CPU_SET_S, CPU_CLR_S, "
73 "CPU_ISSET_S, CPU_ZERO_S, CPU_COUNT_S, CPU_AND_S, CPU_OR_S, CPU_XOR_S, "
74 "CPU_EQUAL_S - CPU 集合を操作するためのマクロ"
75
76 #. type: SH
77 #: build/C/man3/CPU_SET.3:35 build/C/man2/clone.2:45 build/C/man2/kcmp.2:31
78 #: build/C/man2/sched_get_priority_max.2:32 build/C/man3/sched_getcpu.3:29
79 #: build/C/man2/sched_rr_get_interval.2:32 build/C/man2/sched_setaffinity.2:38
80 #: build/C/man2/sched_setattr.2:30 build/C/man2/sched_setparam.2:33
81 #: build/C/man2/sched_setscheduler.2:30 build/C/man2/sched_yield.2:32
82 #: build/C/man2/setns.2:11 build/C/man2/unshare.2:23
83 #, no-wrap
84 msgid "SYNOPSIS"
85 msgstr "書式"
86
87 #. type: Plain text
88 #: build/C/man3/CPU_SET.3:39 build/C/man2/sched_setaffinity.2:42
89 #: build/C/man2/setns.2:15
90 #, no-wrap
91 msgid ""
92 "B<#define _GNU_SOURCE>             /* See feature_test_macros(7) */\n"
93 "B<#include E<lt>sched.hE<gt>>\n"
94 msgstr ""
95 "B<#define _GNU_SOURCE>             /* feature_test_macros(7) 参照 */\n"
96 "B<#include E<lt>sched.hE<gt>>\n"
97
98 #. type: Plain text
99 #: build/C/man3/CPU_SET.3:41
100 #, no-wrap
101 msgid "B<void CPU_ZERO(cpu_set_t *>I<set>B<);>\n"
102 msgstr "B<void CPU_ZERO(cpu_set_t *>I<set>B<);>\n"
103
104 #. type: Plain text
105 #: build/C/man3/CPU_SET.3:45
106 #, no-wrap
107 msgid ""
108 "B<void CPU_SET(int >I<cpu>B<, cpu_set_t *>I<set>B<);>\n"
109 "B<void CPU_CLR(int >I<cpu>B<, cpu_set_t *>I<set>B<);>\n"
110 "B<int  CPU_ISSET(int >I<cpu>B<, cpu_set_t *>I<set>B<);>\n"
111 msgstr ""
112 "B<void CPU_SET(int >I<cpu>B<, cpu_set_t *>I<set>B<);>\n"
113 "B<void CPU_CLR(int >I<cpu>B<, cpu_set_t *>I<set>B<);>\n"
114 "B<int  CPU_ISSET(int >I<cpu>B<, cpu_set_t *>I<set>B<);>\n"
115
116 #. type: Plain text
117 #: build/C/man3/CPU_SET.3:47
118 #, no-wrap
119 msgid "B<int  CPU_COUNT(cpu_set_t *>I<set>B<);>\n"
120 msgstr "B<int  CPU_COUNT(cpu_set_t *>I<set>B<);>\n"
121
122 #. type: Plain text
123 #: build/C/man3/CPU_SET.3:54
124 #, no-wrap
125 msgid ""
126 "B<void CPU_AND(cpu_set_t *>I<destset>B<,>\n"
127 "B<             cpu_set_t *>I<srcset1>B<, cpu_set_t *>I<srcset2>B<);>\n"
128 "B<void CPU_OR(cpu_set_t *>I<destset>B<,>\n"
129 "B<             cpu_set_t *>I<srcset1>B<, cpu_set_t *>I<srcset2>B<);>\n"
130 "B<void CPU_XOR(cpu_set_t *>I<destset>B<,>\n"
131 "B<             cpu_set_t *>I<srcset1>B<, cpu_set_t *>I<srcset2>B<);>\n"
132 msgstr ""
133 "B<void CPU_AND(cpu_set_t *>I<destset>B<,>\n"
134 "B<             cpu_set_t *>I<srcset1>B<, cpu_set_t *>I<srcset2>B<);>\n"
135 "B<void CPU_OR(cpu_set_t *>I<destset>B<,>\n"
136 "B<             cpu_set_t *>I<srcset1>B<, cpu_set_t *>I<srcset2>B<);>\n"
137 "B<void CPU_XOR(cpu_set_t *>I<destset>B<,>\n"
138 "B<             cpu_set_t *>I<srcset1>B<, cpu_set_t *>I<srcset2>B<);>\n"
139
140 #. type: Plain text
141 #: build/C/man3/CPU_SET.3:56
142 #, no-wrap
143 msgid "B<int  CPU_EQUAL(cpu_set_t *>I<set1>B<, cpu_set_t *>I<set2>B<);>\n"
144 msgstr "B<int  CPU_EQUAL(cpu_set_t *>I<set1>B<, cpu_set_t *>I<set2>B<);>\n"
145
146 #. type: Plain text
147 #: build/C/man3/CPU_SET.3:60
148 #, no-wrap
149 msgid ""
150 "B<cpu_set_t *CPU_ALLOC(int >I<num_cpus>B<);>\n"
151 "B<void CPU_FREE(cpu_set_t *>I<set>B<);>\n"
152 "B<size_t CPU_ALLOC_SIZE(int >I<num_cpus>B<);>\n"
153 msgstr ""
154 "B<cpu_set_t *CPU_ALLOC(int >I<num_cpus>B<);>\n"
155 "B<void CPU_FREE(cpu_set_t *>I<set>B<);>\n"
156 "B<size_t CPU_ALLOC_SIZE(int >I<num_cpus>B<);>\n"
157
158 #. type: Plain text
159 #: build/C/man3/CPU_SET.3:62
160 #, no-wrap
161 msgid "B<void CPU_ZERO_S(size_t >I<setsize>B<, cpu_set_t *>I<set>B<);>\n"
162 msgstr "B<void CPU_ZERO_S(size_t >I<setsize>B<, cpu_set_t *>I<set>B<);>\n"
163
164 #. type: Plain text
165 #: build/C/man3/CPU_SET.3:66
166 #, no-wrap
167 msgid ""
168 "B<void CPU_SET_S(int >I<cpu>B<, size_t >I<setsize>B<, cpu_set_t *>I<set>B<);>\n"
169 "B<void CPU_CLR_S(int >I<cpu>B<, size_t >I<setsize>B<, cpu_set_t *>I<set>B<);>\n"
170 "B<int  CPU_ISSET_S(int >I<cpu>B<, size_t >I<setsize>B<, cpu_set_t *>I<set>B<);>\n"
171 msgstr ""
172 "B<void CPU_SET_S(int >I<cpu>B<, size_t >I<setsize>B<, cpu_set_t *>I<set>B<);>\n"
173 "B<void CPU_CLR_S(int >I<cpu>B<, size_t >I<setsize>B<, cpu_set_t *>I<set>B<);>\n"
174 "B<int  CPU_ISSET_S(int >I<cpu>B<, size_t >I<setsize>B<, cpu_set_t *>I<set>B<);>\n"
175
176 #. type: Plain text
177 #: build/C/man3/CPU_SET.3:68
178 #, no-wrap
179 msgid "B<int  CPU_COUNT_S(size_t >I<setsize>B<, cpu_set_t *>I<set>B<);>\n"
180 msgstr "B<int  CPU_COUNT_S(size_t >I<setsize>B<, cpu_set_t *>I<set>B<);>\n"
181
182 #. type: Plain text
183 #: build/C/man3/CPU_SET.3:75
184 #, no-wrap
185 msgid ""
186 "B<void CPU_AND_S(size_t >I<setsize>B<, cpu_set_t *>I<destset>B<,>\n"
187 "B<             cpu_set_t *>I<srcset1>B<, cpu_set_t *>I<srcset2>B<);>\n"
188 "B<void CPU_OR_S(size_t >I<setsize>B<, cpu_set_t *>I<destset>B<,>\n"
189 "B<             cpu_set_t *>I<srcset1>B<, cpu_set_t *>I<srcset2>B<);>\n"
190 "B<void CPU_XOR_S(size_t >I<setsize>B<, cpu_set_t *>I<destset>B<,>\n"
191 "B<             cpu_set_t *>I<srcset1>B<, cpu_set_t *>I<srcset2>B<);>\n"
192 msgstr ""
193 "B<void CPU_AND_S(size_t >I<setsize>B<, cpu_set_t *>I<destset>B<,>\n"
194 "B<             cpu_set_t *>I<srcset1>B<, cpu_set_t *>I<srcset2>B<);>\n"
195 "B<void CPU_OR_S(size_t >I<setsize>B<, cpu_set_t *>I<destset>B<,>\n"
196 "B<             cpu_set_t *>I<srcset1>B<, cpu_set_t *>I<srcset2>B<);>\n"
197 "B<void CPU_XOR_S(size_t >I<setsize>B<, cpu_set_t *>I<destset>B<,>\n"
198 "B<             cpu_set_t *>I<srcset1>B<, cpu_set_t *>I<srcset2>B<);>\n"
199
200 #. type: Plain text
201 #: build/C/man3/CPU_SET.3:78
202 #, no-wrap
203 msgid "B<int  CPU_EQUAL_S(size_t >I<setsize>B<, cpu_set_t *>I<set1>B<, cpu_set_t *>I<set2>B<);>\n"
204 msgstr "B<int  CPU_EQUAL_S(size_t >I<setsize>B<, cpu_set_t *>I<set1>B<, cpu_set_t *>I<set2>B<);>\n"
205
206 #. type: SH
207 #: build/C/man3/CPU_SET.3:79 build/C/man2/clone.2:83 build/C/man2/kcmp.2:41
208 #: build/C/man2/sched_get_priority_max.2:38 build/C/man3/sched_getcpu.3:55
209 #: build/C/man2/sched_rr_get_interval.2:36 build/C/man2/sched_setaffinity.2:49
210 #: build/C/man2/sched_setattr.2:41 build/C/man2/sched_setparam.2:47
211 #: build/C/man2/sched_setscheduler.2:41 build/C/man2/sched_yield.2:36
212 #: build/C/man7/sched.7:35 build/C/man2/setns.2:18 build/C/man2/unshare.2:50
213 #, no-wrap
214 msgid "DESCRIPTION"
215 msgstr "説明"
216
217 #. type: Plain text
218 #: build/C/man3/CPU_SET.3:86
219 msgid ""
220 "The I<cpu_set_t> data structure represents a set of CPUs.  CPU sets are used "
221 "by B<sched_setaffinity>(2)  and similar interfaces."
222 msgstr ""
223 "I<cpu_set_t> データ構造体は CPU 集合を表現している。 CPU 集合は "
224 "B<sched_setaffinity>(2) や同様のインタフェースで使用されている。"
225
226 #. type: Plain text
227 #: build/C/man3/CPU_SET.3:93
228 msgid ""
229 "The I<cpu_set_t> data type is implemented as a bit set.  However, the data "
230 "structure treated as considered opaque: all manipulation of CPU sets should "
231 "be done via the macros described in this page."
232 msgstr ""
233 "I<cpu_set_t> データ型はビット集合として実装されている。 しかし、 データ構造体"
234 "はその実装を意識せずに扱うものとされており、 CPU 集合のすべての操作は、 この"
235 "ページで説明されているマクロを通して行うべきである。"
236
237 #. type: Plain text
238 #: build/C/man3/CPU_SET.3:96
239 msgid "The following macros are provided to operate on the CPU set I<set>:"
240 msgstr "以下のマクロが CPU 集合 I<set> を操作するために提供されている。"
241
242 #. type: TP
243 #: build/C/man3/CPU_SET.3:96
244 #, no-wrap
245 msgid "B<CPU_ZERO>()"
246 msgstr "B<CPU_ZERO>()"
247
248 #. type: Plain text
249 #: build/C/man3/CPU_SET.3:101
250 msgid "Clears I<set>, so that it contains no CPUs."
251 msgstr "I<set> をクリアする。 集合には何も CPU が含まれない状態となる。"
252
253 #. type: TP
254 #: build/C/man3/CPU_SET.3:101
255 #, no-wrap
256 msgid "B<CPU_SET>()"
257 msgstr "B<CPU_SET>()"
258
259 #. type: Plain text
260 #: build/C/man3/CPU_SET.3:107
261 msgid "Add CPU I<cpu> to I<set>."
262 msgstr "I<set> に I<cpu> を追加する。"
263
264 #. type: TP
265 #: build/C/man3/CPU_SET.3:107
266 #, no-wrap
267 msgid "B<CPU_CLR>()"
268 msgstr "B<CPU_CLR>()"
269
270 #. type: Plain text
271 #: build/C/man3/CPU_SET.3:113
272 msgid "Remove CPU I<cpu> from I<set>."
273 msgstr "I<set> から I<cpu> を削除する。"
274
275 #. type: TP
276 #: build/C/man3/CPU_SET.3:113
277 #, no-wrap
278 msgid "B<CPU_ISSET>()"
279 msgstr "B<CPU_ISSET>()"
280
281 #. type: Plain text
282 #: build/C/man3/CPU_SET.3:119
283 msgid "Test to see if CPU I<cpu> is a member of I<set>."
284 msgstr "CPU I<cpu> が I<set> のメンバーであるかを検査する。"
285
286 #. type: TP
287 #: build/C/man3/CPU_SET.3:119
288 #, no-wrap
289 msgid "B<CPU_COUNT>()"
290 msgstr "B<CPU_COUNT>()"
291
292 #. type: Plain text
293 #: build/C/man3/CPU_SET.3:123
294 msgid "Return the number of CPUs in I<set>."
295 msgstr "I<set> に含まれる CPU 数を返す。"
296
297 #. type: Plain text
298 #: build/C/man3/CPU_SET.3:128
299 msgid ""
300 "Where a I<cpu> argument is specified, it should not produce side effects, "
301 "since the above macros may evaluate the argument more than once."
302 msgstr ""
303 "I<cpu> 引き数が指定する場合、 その引き数は副作用を伴うべきではない。 上記のマ"
304 "クロは引き数を複数回評価する可能性があるからである。"
305
306 #. type: Plain text
307 #: build/C/man3/CPU_SET.3:139
308 msgid ""
309 "The first available CPU on the system corresponds to a I<cpu> value of 0, "
310 "the next CPU corresponds to a I<cpu> value of 1, and so on.  The constant "
311 "B<CPU_SETSIZE> (currently 1024) specifies a value one greater than the "
312 "maximum CPU number that can be stored in I<cpu_set_t>."
313 msgstr ""
314 "そのシステムで利用可能な最初の CPU が I<cpu> 値 0 に対応し、 次の CPU が "
315 "I<cpu> 値 1 に対応し、 以降も同様である。 定数 B<CPU_SETSIZE> (現在のところ "
316 "1024) は I<cpu_set_t> に格納できる最大 CPU 数よりも大きな値である。"
317
318 #. type: Plain text
319 #: build/C/man3/CPU_SET.3:141
320 msgid "The following macros perform logical operations on CPU sets:"
321 msgstr "以下のマクロは CPU 集合どうしの論理操作を行う。"
322
323 #. type: TP
324 #: build/C/man3/CPU_SET.3:141
325 #, no-wrap
326 msgid "B<CPU_AND>()"
327 msgstr "B<CPU_AND>()"
328
329 #. type: Plain text
330 #: build/C/man3/CPU_SET.3:150
331 msgid ""
332 "Store the intersection of the sets I<srcset1> and I<srcset2> in I<destset> "
333 "(which may be one of the source sets)."
334 msgstr ""
335 "集合 I<srcset1> と I<srcset2> の積集合を I<destset> に格納する (元の集合のい"
336 "ずれかが I<destset> として使用される場合もある)。"
337
338 #. type: TP
339 #: build/C/man3/CPU_SET.3:150
340 #, no-wrap
341 msgid "B<CPU_OR>()"
342 msgstr "B<CPU_OR>()"
343
344 #. type: Plain text
345 #: build/C/man3/CPU_SET.3:159
346 msgid ""
347 "Store the union of the sets I<srcset1> and I<srcset2> in I<destset> (which "
348 "may be one of the source sets)."
349 msgstr ""
350 "集合 I<srcset1> と I<srcset2> の和集合を I<destset> に格納する (元の集合のい"
351 "ずれかが I<destset> として使用される場合もある)。"
352
353 #. type: TP
354 #: build/C/man3/CPU_SET.3:159
355 #, no-wrap
356 msgid "B<CPU_XOR>()"
357 msgstr "B<CPU_XOR>()"
358
359 #. type: Plain text
360 #: build/C/man3/CPU_SET.3:173
361 msgid ""
362 "Store the XOR of the sets I<srcset1> and I<srcset2> in I<destset> (which may "
363 "be one of the source sets).  The XOR means the set of CPUs that are in "
364 "either I<srcset1> or I<srcset2>, but not both."
365 msgstr ""
366 "集合 I<srcset1> と I<srcset2> の XOR を I<destset> に格納する (元の集合のいず"
367 "れかが I<destset> として使用される場合もある)。 XOR とは、 I<srcset1> か "
368 "I<srcset2> のいずれかに含まれるが、両方には含まれない集合のことである。"
369
370 #. type: TP
371 #: build/C/man3/CPU_SET.3:173
372 #, no-wrap
373 msgid "B<CPU_EQUAL>()"
374 msgstr "B<CPU_EQUAL>()"
375
376 #. type: Plain text
377 #: build/C/man3/CPU_SET.3:176
378 msgid "Test whether two CPU set contain exactly the same CPUs."
379 msgstr "二つの CPU 集合が全く同じ CPU を含んでいるかを検査する。"
380
381 #. type: SS
382 #: build/C/man3/CPU_SET.3:176
383 #, no-wrap
384 msgid "Dynamically sized CPU sets"
385 msgstr "動的に大きさが決まる CPU 集合"
386
387 #. type: Plain text
388 #: build/C/man3/CPU_SET.3:182
389 msgid ""
390 "Because some applications may require the ability to dynamically size CPU "
391 "sets (e.g., to allocate sets larger than that defined by the standard "
392 "I<cpu_set_t> data type), glibc nowadays provides a set of macros to support "
393 "this."
394 msgstr ""
395 "いくつかのアプリケーションでは CPU 集合の大きさを動的に決める能力 (例えば、 "
396 "標準の I<cpu_set_t> データ型で定義されたよりも大きい集合を割り当てるなど) が"
397 "必要となることがあるため、 現在 glibc はこれに対応するためにいくつかのマクロ"
398 "を提供している。"
399
400 #. type: Plain text
401 #: build/C/man3/CPU_SET.3:184
402 msgid "The following macros are used to allocate and deallocate CPU sets:"
403 msgstr "以下のマクロを使うと CPU 集合の割り当てと解放ができる。"
404
405 #. type: TP
406 #: build/C/man3/CPU_SET.3:184
407 #, no-wrap
408 msgid "B<CPU_ALLOC>()"
409 msgstr "B<CPU_ALLOC>()"
410
411 #. type: Plain text
412 #: build/C/man3/CPU_SET.3:189
413 msgid ""
414 "Allocate a CPU set large enough to hold CPUs in the range 0 to I<num_cpus-1>."
415 msgstr ""
416 "0 から I<num_cpus-1> までの範囲の CPU を保持するのに十分な大きさの CPU 集合を"
417 "割り当てる。"
418
419 #. type: TP
420 #: build/C/man3/CPU_SET.3:189
421 #, no-wrap
422 msgid "B<CPU_ALLOC_SIZE>()"
423 msgstr "B<CPU_ALLOC_SIZE>()"
424
425 #. type: Plain text
426 #: build/C/man3/CPU_SET.3:199
427 msgid ""
428 "Return the size in bytes of the CPU set that would be needed to hold CPUs in "
429 "the range 0 to I<num_cpus-1>.  This macro provides the value that can be "
430 "used for the I<setsize> argument in the B<CPU_*_S>()  macros described below."
431 msgstr ""
432 "0 から I<num_cpus-1> までの範囲の CPU を保持するのに必要な CPU 集合の大きさを"
433 "バイト数で返す。 このマクロが返す値は、 後述の B<CPU_*_S>() マクロの "
434 "I<setsize> 引き数として使用できる。"
435
436 #. type: TP
437 #: build/C/man3/CPU_SET.3:199
438 #, no-wrap
439 msgid "B<CPU_FREE>()"
440 msgstr "B<CPU_FREE>()"
441
442 #. type: Plain text
443 #: build/C/man3/CPU_SET.3:203
444 msgid "Free a CPU set previously allocated by B<CPU_ALLOC>()."
445 msgstr "以前に B<CPU_ALLOC>() で割り当てられた CPU 集合を解放する。"
446
447 #. type: Plain text
448 #: build/C/man3/CPU_SET.3:210
449 msgid ""
450 "The macros whose names end with \"_S\" are the analogs of the similarly "
451 "named macros without the suffix.  These macros perform the same tasks as "
452 "their analogs, but operate on the dynamically allocated CPU set(s) whose "
453 "size is I<setsize> bytes."
454 msgstr ""
455 "名前が \"_S\" で終わるマクロは \"_S\" なしの同じ名前のマクロと同等である。 こ"
456 "れらのマクロは \"_S\" なしのものと同じ動作をするが、 動的に割り当てられた、 "
457 "大きさが I<setsize> バイトの CPU 集合に対して操作を行う点が異なる。"
458
459 #. type: SH
460 #: build/C/man3/CPU_SET.3:210 build/C/man2/clone.2:873 build/C/man2/kcmp.2:127
461 #: build/C/man2/sched_get_priority_max.2:97 build/C/man3/sched_getcpu.3:58
462 #: build/C/man2/sched_rr_get_interval.2:73
463 #: build/C/man2/sched_setaffinity.2:107 build/C/man2/sched_setattr.2:262
464 #: build/C/man2/sched_setparam.2:87 build/C/man2/sched_setscheduler.2:135
465 #: build/C/man2/sched_yield.2:41 build/C/man2/setns.2:138
466 #: build/C/man2/unshare.2:277
467 #, no-wrap
468 msgid "RETURN VALUE"
469 msgstr "返り値"
470
471 #. type: Plain text
472 #: build/C/man3/CPU_SET.3:219
473 msgid ""
474 "B<CPU_ISSET>()  and B<CPU_ISSET_S>()  return nonzero if I<cpu> is in I<set>; "
475 "otherwise, it returns 0."
476 msgstr ""
477 "B<CPU_ISSET>() と B<CPU_ISSET_S>() は、 I<cpu> が I<set> に含まれていれば 0 "
478 "以外を返し、含まれない場合 0 を返す。"
479
480 #. type: Plain text
481 #: build/C/man3/CPU_SET.3:225
482 msgid ""
483 "B<CPU_COUNT>()  and B<CPU_COUNT_S>()  return the number of CPUs in I<set>."
484 msgstr "B<CPU_COUNT>() と B<CPU_COUNT_S>() は I<set> に含まれる CPU 数を返す。"
485
486 #. type: Plain text
487 #: build/C/man3/CPU_SET.3:230
488 msgid ""
489 "B<CPU_EQUAL>()  and B<CPU_EQUAL_S>()  return nonzero if the two CPU sets are "
490 "equal; otherwise it returns 0."
491 msgstr ""
492 "B<CPU_EQUAL>() と B<CPU_EQUAL_S>() は、 二つの CPU 集合が等しければ 0 以外を"
493 "返し、 等しくない場合 0 を返す。"
494
495 #. type: Plain text
496 #: build/C/man3/CPU_SET.3:235
497 msgid ""
498 "B<CPU_ALLOC>()  returns a pointer on success, or NULL on failure.  (Errors "
499 "are as for B<malloc>(3).)"
500 msgstr ""
501 "B<CPU_ALLOC>() は成功するとポインタを返し、 失敗すると NULL を返す (エラーは "
502 "B<malloc>(3) と同じである)。"
503
504 #. type: Plain text
505 #: build/C/man3/CPU_SET.3:239
506 msgid ""
507 "B<CPU_ALLOC_SIZE>()  returns the number of bytes required to store a CPU set "
508 "of the specified cardinality."
509 msgstr ""
510 "B<CPU_ALLOC_SIZE>() は指定された大きさの CPU 集合を格納するのに必要なバイト数"
511 "を返す。"
512
513 #. type: Plain text
514 #: build/C/man3/CPU_SET.3:241
515 msgid "The other functions do not return a value."
516 msgstr "他の関数は値を返さない。"
517
518 #. type: SH
519 #: build/C/man3/CPU_SET.3:241 build/C/man2/clone.2:1031
520 #: build/C/man2/kcmp.2:198 build/C/man3/sched_getcpu.3:70
521 #: build/C/man2/sched_setaffinity.2:148 build/C/man2/sched_setattr.2:348
522 #: build/C/man2/setns.2:186 build/C/man2/unshare.2:330
523 #, no-wrap
524 msgid "VERSIONS"
525 msgstr "バージョン"
526
527 #. type: Plain text
528 #: build/C/man3/CPU_SET.3:249
529 msgid ""
530 "The B<CPU_ZERO>(), B<CPU_SET>(), B<CPU_CLR>(), and B<CPU_ISSET>()  macros "
531 "were added in glibc 2.3.3."
532 msgstr ""
533 "マクロ B<CPU_ZERO>(), B<CPU_SET>(), B<CPU_CLR>(), B<CPU_ISSET>() は glibc "
534 "2.3.3 で追加された。"
535
536 #. type: Plain text
537 #: build/C/man3/CPU_SET.3:252
538 msgid "B<CPU_COUNT>()  first appeared in glibc 2.6."
539 msgstr "B<CPU_COUNT>() は glibc 2.6 で初めて登場した。"
540
541 #. type: Plain text
542 #: build/C/man3/CPU_SET.3:270
543 msgid ""
544 "B<CPU_AND>(), B<CPU_OR>(), B<CPU_XOR>(), B<CPU_EQUAL>(), B<CPU_ALLOC>(), "
545 "B<CPU_ALLOC_SIZE>(), B<CPU_FREE>(), B<CPU_ZERO_S>(), B<CPU_SET_S>(), "
546 "B<CPU_CLR_S>(), B<CPU_ISSET_S>(), B<CPU_AND_S>(), B<CPU_OR_S>(), "
547 "B<CPU_XOR_S>(), and B<CPU_EQUAL_S>()  first appeared in glibc 2.7."
548 msgstr ""
549 "B<CPU_AND>(), B<CPU_OR>(), B<CPU_XOR>(), B<CPU_EQUAL>(), B<CPU_ALLOC>(), "
550 "B<CPU_ALLOC_SIZE>(), B<CPU_FREE>(), B<CPU_ZERO_S>(), B<CPU_SET_S>(), "
551 "B<CPU_CLR_S>(), B<CPU_ISSET_S>(), B<CPU_AND_S>(), B<CPU_OR_S>(), "
552 "B<CPU_XOR_S>(), B<CPU_EQUAL_S>() は glibc 2.7 で初めて登場した。"
553
554 #. type: SH
555 #: build/C/man3/CPU_SET.3:270 build/C/man2/clone.2:1038
556 #: build/C/man2/kcmp.2:202 build/C/man2/sched_get_priority_max.2:113
557 #: build/C/man3/sched_getcpu.3:77 build/C/man2/sched_rr_get_interval.2:94
558 #: build/C/man2/sched_setaffinity.2:159 build/C/man2/sched_setattr.2:351
559 #: build/C/man2/sched_setparam.2:119 build/C/man2/sched_setscheduler.2:170
560 #: build/C/man2/sched_yield.2:52 build/C/man2/setns.2:191
561 #: build/C/man2/unshare.2:334
562 #, no-wrap
563 msgid "CONFORMING TO"
564 msgstr "準拠"
565
566 #. type: Plain text
567 #: build/C/man3/CPU_SET.3:272
568 msgid "These interfaces are Linux-specific."
569 msgstr "これらのインタフェースは Linux 固有である。"
570
571 #. type: SH
572 #: build/C/man3/CPU_SET.3:272 build/C/man2/clone.2:1042
573 #: build/C/man2/kcmp.2:205 build/C/man3/sched_getcpu.3:80
574 #: build/C/man2/sched_rr_get_interval.2:96
575 #: build/C/man2/sched_setaffinity.2:161 build/C/man2/sched_setattr.2:353
576 #: build/C/man2/sched_setparam.2:121 build/C/man2/sched_setscheduler.2:173
577 #: build/C/man2/sched_yield.2:54 build/C/man7/sched.7:611
578 #: build/C/man2/setns.2:195 build/C/man2/unshare.2:338
579 #, no-wrap
580 msgid "NOTES"
581 msgstr "注意"
582
583 #. type: Plain text
584 #: build/C/man3/CPU_SET.3:275
585 msgid "To duplicate a CPU set, use B<memcpy>(3)."
586 msgstr "CPU 集合を複製するには、 B<memcpy>(3) を使用する。"
587
588 #. type: Plain text
589 #: build/C/man3/CPU_SET.3:282
590 msgid ""
591 "Since CPU sets are bit sets allocated in units of long words, the actual "
592 "number of CPUs in a dynamically allocated CPU set will be rounded up to the "
593 "next multiple of I<sizeof(unsigned long)>.  An application should consider "
594 "the contents of these extra bits to be undefined."
595 msgstr ""
596 "CPU 集合はロングワード単位に割り当てられるビット集合なので、 動的に割り当てら"
597 "れた CPU 集合の実際の CPU 数は I<sizeof(unsigned long)> の次の倍数に切り上げ"
598 "られることになる。 アプリケーションは、 これらの余分なビットの内容は不定と考"
599 "えるべきである。"
600
601 #. type: Plain text
602 #: build/C/man3/CPU_SET.3:294
603 msgid ""
604 "Notwithstanding the similarity in the names, note that the constant "
605 "B<CPU_SETSIZE> indicates the number of CPUs in the I<cpu_set_t> data type "
606 "(thus, it is effectively a count of bits in the bit set), while the "
607 "I<setsize> argument of the B<CPU_*_S>()  macros is a size in bytes."
608 msgstr ""
609 "名前は似ているが、 定数 B<CPU_SETSIZE> は I<cpu_set_t> データ型に含まれる "
610 "CPU 数 (つまり、事実上ビット集合内のビットカウント) を示すのに対して、 マク"
611 "ロ B<CPU_*_S>() の I<setsize> 引き数はバイト単位のサイズである点に注意するこ"
612 "と。"
613
614 #. type: Plain text
615 #: build/C/man3/CPU_SET.3:300
616 msgid ""
617 "The data types for arguments and return values shown in the SYNOPSIS are "
618 "hints what about is expected in each case.  However, since these interfaces "
619 "are implemented as macros, the compiler won't necessarily catch all type "
620 "errors if you violate the suggestions."
621 msgstr ""
622 "「書式」に書かれている引き数と返り値のデータ型は、それぞれの場合でどんな型が"
623 "期待されるかのヒントである。 しかしながら、 これらのインタフェースはマクロと"
624 "して実装されているため、 このヒントを守らなかった場合に、 コンパイラが必ずし"
625 "も全ての型エラーを捕捉できるとは限らない。"
626
627 #. type: SH
628 #: build/C/man3/CPU_SET.3:300 build/C/man2/clone.2:1067
629 #: build/C/man2/sched_setattr.2:369 build/C/man2/sched_setscheduler.2:214
630 #, no-wrap
631 msgid "BUGS"
632 msgstr "バグ"
633
634 #.  http://sourceware.org/bugzilla/show_bug.cgi?id=7029
635 #. type: Plain text
636 #: build/C/man3/CPU_SET.3:312
637 msgid ""
638 "On 32-bit platforms with glibc 2.8 and earlier, B<CPU_ALLOC>()  allocates "
639 "twice as much space as is required, and B<CPU_ALLOC_SIZE>()  returns a value "
640 "twice as large as it should.  This bug should not affect the semantics of a "
641 "program, but does result in wasted memory and less efficient operation of "
642 "the macros that operate on dynamically allocated CPU sets.  These bugs are "
643 "fixed in glibc 2.9."
644 msgstr ""
645 "glibc 2.8 以前の 32 ビットプラットフォームでは、 B<CPU_ALLOC>() は必要な空間"
646 "の割り当てを二度行い、 B<CPU_ALLOC_SIZE>() は本来あるべき値の二倍の値を返"
647 "す。 このバグはプログラムの動作には影響を与えないはずだが、 無駄にメモリを消"
648 "費し、 動的に割り当てられた CPU 集合に対して操作を行うマクロの動作の効率が下"
649 "がる結果となる。 これらのバグは glibc 2.9 で修正された。"
650
651 #. type: SH
652 #: build/C/man3/CPU_SET.3:312 build/C/man2/clone.2:1109
653 #: build/C/man2/setns.2:201 build/C/man2/unshare.2:372
654 #, no-wrap
655 msgid "EXAMPLE"
656 msgstr "例"
657
658 #. type: Plain text
659 #: build/C/man3/CPU_SET.3:315
660 msgid ""
661 "The following program demonstrates the use of some of the macros used for "
662 "dynamically allocated CPU sets."
663 msgstr ""
664 "以下のプログラムは、動的に割り当てた CPU 集合に対していくつかのマクロを使用す"
665 "る例を示している。"
666
667 #. type: Plain text
668 #: build/C/man3/CPU_SET.3:323
669 #, no-wrap
670 msgid ""
671 "#define _GNU_SOURCE\n"
672 "#include E<lt>sched.hE<gt>\n"
673 "#include E<lt>stdlib.hE<gt>\n"
674 "#include E<lt>unistd.hE<gt>\n"
675 "#include E<lt>stdio.hE<gt>\n"
676 "#include E<lt>assert.hE<gt>\n"
677 msgstr ""
678 "#define _GNU_SOURCE\n"
679 "#include E<lt>sched.hE<gt>\n"
680 "#include E<lt>stdlib.hE<gt>\n"
681 "#include E<lt>unistd.hE<gt>\n"
682 "#include E<lt>stdio.hE<gt>\n"
683 "#include E<lt>assert.hE<gt>\n"
684
685 #. type: Plain text
686 #: build/C/man3/CPU_SET.3:330
687 #, no-wrap
688 msgid ""
689 "int\n"
690 "main(int argc, char *argv[])\n"
691 "{\n"
692 "    cpu_set_t *cpusetp;\n"
693 "    size_t size;\n"
694 "    int num_cpus, cpu;\n"
695 msgstr ""
696 "int\n"
697 "main(int argc, char *argv[])\n"
698 "{\n"
699 "    cpu_set_t *cpusetp;\n"
700 "    size_t size;\n"
701 "    int num_cpus, cpu;\n"
702
703 #. type: Plain text
704 #: build/C/man3/CPU_SET.3:335
705 #, no-wrap
706 msgid ""
707 "    if (argc E<lt> 2) {\n"
708 "        fprintf(stderr, \"Usage: %s E<lt>num-cpusE<gt>\\en\", argv[0]);\n"
709 "        exit(EXIT_FAILURE);\n"
710 "    }\n"
711 msgstr ""
712 "    if (argc E<lt> 2) {\n"
713 "        fprintf(stderr, \"Usage: %s E<lt>num-cpusE<gt>\\en\", argv[0]);\n"
714 "        exit(EXIT_FAILURE);\n"
715 "    }\n"
716
717 #. type: Plain text
718 #: build/C/man3/CPU_SET.3:337
719 #, no-wrap
720 msgid "    num_cpus = atoi(argv[1]);\n"
721 msgstr "    num_cpus = atoi(argv[1]);\n"
722
723 #. type: Plain text
724 #: build/C/man3/CPU_SET.3:343
725 #, no-wrap
726 msgid ""
727 "    cpusetp = CPU_ALLOC(num_cpus);\n"
728 "    if (cpusetp == NULL) {\n"
729 "        perror(\"CPU_ALLOC\");\n"
730 "        exit(EXIT_FAILURE);\n"
731 "    }\n"
732 msgstr ""
733 "    cpusetp = CPU_ALLOC(num_cpus);\n"
734 "    if (cpusetp == NULL) {\n"
735 "        perror(\"CPU_ALLOC\");\n"
736 "        exit(EXIT_FAILURE);\n"
737 "    }\n"
738
739 #. type: Plain text
740 #: build/C/man3/CPU_SET.3:345
741 #, no-wrap
742 msgid "    size = CPU_ALLOC_SIZE(num_cpus);\n"
743 msgstr "    size = CPU_ALLOC_SIZE(num_cpus);\n"
744
745 #. type: Plain text
746 #: build/C/man3/CPU_SET.3:349
747 #, no-wrap
748 msgid ""
749 "    CPU_ZERO_S(size, cpusetp);\n"
750 "    for (cpu = 0; cpu E<lt> num_cpus; cpu += 2)\n"
751 "        CPU_SET_S(cpu, size, cpusetp);\n"
752 msgstr ""
753 "    CPU_ZERO_S(size, cpusetp);\n"
754 "    for (cpu = 0; cpu E<lt> num_cpus; cpu += 2)\n"
755 "        CPU_SET_S(cpu, size, cpusetp);\n"
756
757 #. type: Plain text
758 #: build/C/man3/CPU_SET.3:351
759 #, no-wrap
760 msgid "    printf(\"CPU_COUNT() of set:    %d\\en\", CPU_COUNT_S(size, cpusetp));\n"
761 msgstr "    printf(\"CPU_COUNT() of set:    %d\\en\", CPU_COUNT_S(size, cpusetp));\n"
762
763 #. type: Plain text
764 #: build/C/man3/CPU_SET.3:355
765 #, no-wrap
766 msgid ""
767 "    CPU_FREE(cpusetp);\n"
768 "    exit(EXIT_SUCCESS);\n"
769 "}\n"
770 msgstr ""
771 "    CPU_FREE(cpusetp);\n"
772 "    exit(EXIT_SUCCESS);\n"
773 "}\n"
774
775 #. type: SH
776 #: build/C/man3/CPU_SET.3:356 build/C/man2/clone.2:1206
777 #: build/C/man2/kcmp.2:222 build/C/man2/sched_get_priority_max.2:115
778 #: build/C/man3/sched_getcpu.3:100 build/C/man2/sched_rr_get_interval.2:132
779 #: build/C/man2/sched_setaffinity.2:226 build/C/man2/sched_setattr.2:385
780 #: build/C/man2/sched_setparam.2:127 build/C/man2/sched_setscheduler.2:222
781 #: build/C/man2/sched_yield.2:79 build/C/man7/sched.7:664
782 #: build/C/man2/setns.2:288 build/C/man2/unshare.2:459
783 #, no-wrap
784 msgid "SEE ALSO"
785 msgstr "関連項目"
786
787 #. type: Plain text
788 #: build/C/man3/CPU_SET.3:360
789 msgid ""
790 "B<sched_setaffinity>(2), B<pthread_attr_setaffinity_np>(3), "
791 "B<pthread_setaffinity_np>(3), B<cpuset>(7)"
792 msgstr ""
793 "B<sched_setaffinity>(2), B<pthread_attr_setaffinity_np>(3), "
794 "B<pthread_setaffinity_np>(3), B<cpuset>(7)"
795
796 #. type: TH
797 #: build/C/man2/clone.2:42
798 #, no-wrap
799 msgid "CLONE"
800 msgstr "CLONE"
801
802 #. type: TH
803 #: build/C/man2/clone.2:42 build/C/man2/unshare.2:20
804 #, no-wrap
805 msgid "2014-09-21"
806 msgstr "2014-09-21"
807
808 #. type: Plain text
809 #: build/C/man2/clone.2:45
810 msgid "clone, __clone2 - create a child process"
811 msgstr "clone, __clone2 - 子プロセスを作成する"
812
813 #. type: Plain text
814 #: build/C/man2/clone.2:48
815 #, no-wrap
816 msgid "/* Prototype for the glibc wrapper function */\n"
817 msgstr "/* glibc ラッパー関数のプロトタイプ */\n"
818
819 #. type: Plain text
820 #: build/C/man2/clone.2:50 build/C/man3/sched_getcpu.3:32
821 #: build/C/man2/sched_setattr.2:33 build/C/man2/sched_setparam.2:36
822 #: build/C/man2/sched_setscheduler.2:33 build/C/man2/unshare.2:26
823 #, no-wrap
824 msgid "B<#include E<lt>sched.hE<gt>>\n"
825 msgstr "B<#include E<lt>sched.hE<gt>>\n"
826
827 #. type: Plain text
828 #: build/C/man2/clone.2:55
829 #, no-wrap
830 msgid ""
831 "B<int clone(int (*>I<fn>B<)(void *), void *>I<child_stack>B<,>\n"
832 "B<          int >I<flags>B<, void *>I<arg>B<, ... >\n"
833 "B<          /* pid_t *>I<ptid>B<, struct user_desc *>I<tls>B<, pid_t *>I<ctid>B< */ );>\n"
834 msgstr ""
835 "B<int clone(int (*>I<fn>B<)(void *), void *>I<child_stack>B<,>\n"
836 "B<          int >I<flags>B<, void *>I<arg>B<, ... >\n"
837 "B<          /* pid_t *>I<ptid>B<, struct user_desc *>I<tls>B<, pid_t *>I<ctid>B< */ );>\n"
838
839 #. type: Plain text
840 #: build/C/man2/clone.2:57
841 #, no-wrap
842 msgid "/* Prototype for the raw system call */\n"
843 msgstr "/* 素のシステムコールのプロトタイプ */\n"
844
845 #. type: Plain text
846 #: build/C/man2/clone.2:61
847 #, no-wrap
848 msgid ""
849 "B<long clone(unsigned long >I<flags>B<, void *>I<child_stack>B<,>\n"
850 "B<          void *>I<ptid>B<, void *>I<ctid>B<,>\n"
851 "B<          struct pt_regs *>I<regs>B<);>\n"
852 msgstr ""
853 "B<long clone(unsigned long >I<flags>B<, void *>I<child_stack>B<,>\n"
854 "B<          void *>I<ptid>B<, void *>I<ctid>B<,>\n"
855 "B<          struct pt_regs *>I<regs>B<);>\n"
856
857 #. type: Plain text
858 #: build/C/man2/clone.2:66
859 msgid ""
860 "Feature Test Macro Requirements for glibc wrapper function (see "
861 "B<feature_test_macros>(7)):"
862 msgstr ""
863 "glibc ラッパー関数の機能検査マクロの要件 (B<feature_test_macros>(7) 参照):"
864
865 #. type: Plain text
866 #: build/C/man2/clone.2:69
867 msgid "B<clone>():"
868 msgstr "B<clone>():"
869
870 #. type: TP
871 #: build/C/man2/clone.2:72 build/C/man3/sched_getcpu.3:45
872 #: build/C/man2/unshare.2:39
873 #, no-wrap
874 msgid "Since glibc 2.14:"
875 msgstr "glibc 2.14 以降:"
876
877 #. type: Plain text
878 #: build/C/man2/clone.2:75 build/C/man3/sched_getcpu.3:48
879 #: build/C/man2/unshare.2:42
880 msgid "_GNU_SOURCE"
881 msgstr "_GNU_SOURCE"
882
883 #.  See http://sources.redhat.com/bugzilla/show_bug.cgi?id=4749
884 #. type: TP
885 #: build/C/man2/clone.2:75 build/C/man3/sched_getcpu.3:48
886 #: build/C/man2/unshare.2:42
887 #, no-wrap
888 msgid "Before glibc 2.14:"
889 msgstr "glibc 2.14 より前:"
890
891 #. type: Plain text
892 #: build/C/man2/clone.2:80 build/C/man3/sched_getcpu.3:52
893 #: build/C/man2/unshare.2:47
894 #, no-wrap
895 msgid ""
896 "_BSD_SOURCE || _SVID_SOURCE\n"
897 "    /* _GNU_SOURCE also suffices */\n"
898 msgstr ""
899 "_BSD_SOURCE || _SVID_SOURCE\n"
900 "    /* _GNU_SOURCE も定義される */\n"
901
902 #. type: Plain text
903 #: build/C/man2/clone.2:87
904 msgid "B<clone>()  creates a new process, in a manner similar to B<fork>(2)."
905 msgstr "B<clone>() は、 B<fork>(2) と似た方法で新しいプロセスを作成する。"
906
907 #. type: Plain text
908 #: build/C/man2/clone.2:94
909 msgid ""
910 "This page describes both the glibc B<clone>()  wrapper function and the "
911 "underlying system call on which it is based.  The main text describes the "
912 "wrapper function; the differences for the raw system call are described "
913 "toward the end of this page."
914 msgstr ""
915 "このページでは、 glibc の B<clone>() ラッパー関数とその裏で呼ばれるシステム"
916 "コールの両方について説明している。 メインの説明はラッパー関数に関するものであ"
917 "る。 素のシステムコールにおける差分はこのページの最後の方で説明する。"
918
919 #. type: Plain text
920 #: build/C/man2/clone.2:106
921 msgid ""
922 "Unlike B<fork>(2), B<clone>()  allows the child process to share parts of "
923 "its execution context with the calling process, such as the memory space, "
924 "the table of file descriptors, and the table of signal handlers.  (Note that "
925 "on this manual page, \"calling process\" normally corresponds to \"parent "
926 "process\".  But see the description of B<CLONE_PARENT> below.)"
927 msgstr ""
928 "B<fork>(2) とは異なり、B<clone>() では、子プロセス (child process)  と呼び出"
929 "し元のプロセスとが、メモリ空間、ファイルディスクリプタのテーブル、シグナルハ"
930 "ンドラのテーブルなどの 実行コンテキストの一部を共有できる。 (このマニュアルに"
931 "おける「呼び出し元のプロセス」は、通常は 「親プロセス」と一致する。但し、後述"
932 "の B<CLONE_PARENT> の項も参照のこと)"
933
934 #. type: Plain text
935 #: build/C/man2/clone.2:111
936 msgid ""
937 "The main use of B<clone>()  is to implement threads: multiple threads of "
938 "control in a program that run concurrently in a shared memory space."
939 msgstr ""
940 "B<clone>()  の主要な使用法はスレッド (threads) を実装することである: 一つのプ"
941 "ログラムの中の複数のスレッドは共有されたメモリ空間で 同時に実行される。"
942
943 #. type: Plain text
944 #: build/C/man2/clone.2:131
945 msgid ""
946 "When the child process is created with B<clone>(), it executes the function "
947 "I<fn>(I<arg>).  (This differs from B<fork>(2), where execution continues in "
948 "the child from the point of the B<fork>(2)  call.)  The I<fn> argument is a "
949 "pointer to a function that is called by the child process at the beginning "
950 "of its execution.  The I<arg> argument is passed to the I<fn> function."
951 msgstr ""
952 "B<clone>()  で子プロセスが作成された時に、作成された子プロセスは関数 "
953 "I<fn>(I<arg>)  を実行する。 (この点が B<fork>(2)  とは異なる。 B<fork>(2)  の"
954 "場合、子プロセスは B<fork>(2)  が呼び出された場所から実行を続ける。)  I<fn> "
955 "引き数は、子プロセスが実行を始める時に子プロセスが呼び出す 関数へのポインタで"
956 "ある。 I<arg> 引き数はそのまま I<fn> 関数へと渡される。"
957
958 #. type: Plain text
959 #: build/C/man2/clone.2:141
960 msgid ""
961 "When the I<fn>(I<arg>)  function application returns, the child process "
962 "terminates.  The integer returned by I<fn> is the exit code for the child "
963 "process.  The child process may also terminate explicitly by calling "
964 "B<exit>(2)  or after receiving a fatal signal."
965 msgstr ""
966 "I<fn>(I<arg>)  関数が終了すると、子プロセスは終了する。 I<fn> によって返され"
967 "た整数が子プロセスの終了コードとなる。 子プロセスは、 B<exit>(2)  を呼んで明"
968 "示的に終了することもあるし、致命的なシグナルを受信した 場合に終了することもあ"
969 "る。"
970
971 #. type: Plain text
972 #: build/C/man2/clone.2:157
973 msgid ""
974 "The I<child_stack> argument specifies the location of the stack used by the "
975 "child process.  Since the child and calling process may share memory, it is "
976 "not possible for the child process to execute in the same stack as the "
977 "calling process.  The calling process must therefore set up memory space for "
978 "the child stack and pass a pointer to this space to B<clone>().  Stacks grow "
979 "downward on all processors that run Linux (except the HP PA processors), so "
980 "I<child_stack> usually points to the topmost address of the memory space set "
981 "up for the child stack."
982 msgstr ""
983 "I<child_stack> 引き数は、子プロセスによって使用されるスタックの位置を指定す"
984 "る。 子プロセスと呼び出し元のプロセスはメモリを共有することがあるため、 子プ"
985 "ロセスは呼び出し元のプロセスと同じスタックで実行することができない。 このた"
986 "め、呼び出し元のプロセスは子プロセスのスタックのためのメモリ空間を 用意して、"
987 "この空間へのポインタを B<clone>()  へ渡さなければならない。 (HP PA プロセッサ"
988 "以外の) Linux が動作する全てのプロセッサでは、 スタックは下方 (アドレスが小さ"
989 "い方向) へと伸びる。このため、普通は I<child_stack> は子プロセスのスタックの"
990 "ために用意したメモリ空間の一番大きい アドレスを指すようにする。"
991
992 #. type: Plain text
993 #: build/C/man2/clone.2:173
994 msgid ""
995 "The low byte of I<flags> contains the number of the I<termination signal> "
996 "sent to the parent when the child dies.  If this signal is specified as "
997 "anything other than B<SIGCHLD>, then the parent process must specify the "
998 "B<__WALL> or B<__WCLONE> options when waiting for the child with "
999 "B<wait>(2).  If no signal is specified, then the parent process is not "
1000 "signaled when the child terminates."
1001 msgstr ""
1002 "I<flags> の下位 1 バイトは子プロセスが死んだ場合に親プロセスへと送られる I<終"
1003 "了シグナル (termination signal)> の番号を指定する。このシグナルとして "
1004 "B<SIGCHLD> 以外が指定された場合、親プロセスは、 B<wait>(2)  で子プロセスを待"
1005 "つ際に、オプションとして B<__WALL> または B<__WCLONE> を指定しなければならな"
1006 "い。 どのシグナルも指定されなかった場合、子プロセスが終了した時に親プロセス "
1007 "にシグナルは送られない。"
1008
1009 #. type: Plain text
1010 #: build/C/man2/clone.2:178
1011 msgid ""
1012 "I<flags> may also be bitwise-or'ed with zero or more of the following "
1013 "constants, in order to specify what is shared between the calling process "
1014 "and the child process:"
1015 msgstr ""
1016 "I<flags> には、以下の定数のうち 0個以上をビット毎の論理和 (bitwise-or)  を"
1017 "とったものを指定できる。これらの定数は呼び出し元のプロセスと 子プロセスの間で"
1018 "何を共有するかを指定する:"
1019
1020 #. type: TP
1021 #: build/C/man2/clone.2:178
1022 #, no-wrap
1023 msgid "B<CLONE_CHILD_CLEARTID> (since Linux 2.5.49)"
1024 msgstr "B<CLONE_CHILD_CLEARTID> (Linux 2.5.49 以降)"
1025
1026 #. type: Plain text
1027 #: build/C/man2/clone.2:188
1028 msgid ""
1029 "Erase child thread ID at location I<ctid> in child memory when the child "
1030 "exits, and do a wakeup on the futex at that address.  The address involved "
1031 "may be changed by the B<set_tid_address>(2)  system call.  This is used by "
1032 "threading libraries."
1033 msgstr ""
1034 "子プロセスが終了したときに子プロセスのメモリ内の I<ctid> が指す場所にある子プ"
1035 "ロセスのスレッド ID を消去し、 そのアドレスで futex を wake (起床) させる。 "
1036 "このアドレスは B<set_tid_address>(2)  システムコールで変更することができる。 "
1037 "この機能はスレッドライブラリで使用される。"
1038
1039 #. type: TP
1040 #: build/C/man2/clone.2:188
1041 #, no-wrap
1042 msgid "B<CLONE_CHILD_SETTID> (since Linux 2.5.49)"
1043 msgstr "B<CLONE_CHILD_SETTID> (Linux 2.5.49 以降)"
1044
1045 #. type: Plain text
1046 #: build/C/man2/clone.2:193
1047 msgid "Store child thread ID at location I<ctid> in child memory."
1048 msgstr ""
1049 "子プロセスのメモリ内の I<ctid> が指す場所に子プロセスのスレッド ID を格納す"
1050 "る。"
1051
1052 #. type: TP
1053 #: build/C/man2/clone.2:193
1054 #, no-wrap
1055 msgid "B<CLONE_FILES> (since Linux 2.0)"
1056 msgstr "B<CLONE_FILES> (Linux 2.0 以降)"
1057
1058 #. type: Plain text
1059 #: build/C/man2/clone.2:206
1060 msgid ""
1061 "If B<CLONE_FILES> is set, the calling process and the child process share "
1062 "the same file descriptor table.  Any file descriptor created by the calling "
1063 "process or by the child process is also valid in the other process.  "
1064 "Similarly, if one of the processes closes a file descriptor, or changes its "
1065 "associated flags (using the B<fcntl>(2)  B<F_SETFD> operation), the other "
1066 "process is also affected."
1067 msgstr ""
1068 "B<CLONE_FILES> が設定された場合、呼び出し元のプロセスと子プロセスはファイル"
1069 "ディスクリプタの テーブルを共有する。 呼び出し元プロセスとその子プロセスの一"
1070 "方が作成した ファイルディスクリプタは、もう一方においても有効である。 同じよ"
1071 "うに、一方のプロセスがファイルディスクリプタを閉じたり、 (B<fcntl>(2)  "
1072 "B<F_SETFD> 操作を使って) ディスクリプタに関連するフラグを変更したりすると、 "
1073 "もう一方のプロセスにも影響する。"
1074
1075 #. type: Plain text
1076 #: build/C/man2/clone.2:220
1077 msgid ""
1078 "If B<CLONE_FILES> is not set, the child process inherits a copy of all file "
1079 "descriptors opened in the calling process at the time of B<clone>().  (The "
1080 "duplicated file descriptors in the child refer to the same open file "
1081 "descriptions (see B<open>(2))  as the corresponding file descriptors in the "
1082 "calling process.)  Subsequent operations that open or close file "
1083 "descriptors, or change file descriptor flags, performed by either the "
1084 "calling process or the child process do not affect the other process."
1085 msgstr ""
1086 "B<CLONE_FILES> が設定されていない場合、子プロセスは、 B<clone>()  が実行され"
1087 "た時点で、呼び出し元のプロセスがオープンしている全ての ファイルディスクリプタ"
1088 "のコピーを継承する (子プロセスの複製されたファイルディスクリプタは、 対応する"
1089 "呼び出し元のプロセスのファイルディスクリプタと 同じファイル記述 (B<open>(2)  "
1090 "参照) を参照する)。 これ以降に、呼び出し元のプロセスと子プロセスの一方が ファ"
1091 "イルディスクリプタの操作 (ファイルディスクリプタの オープン・クローズや、ファ"
1092 "イルディスクリプタ・フラグの変更)  を行っても、もう一方のプロセスには影響を与"
1093 "えない。"
1094
1095 #. type: TP
1096 #: build/C/man2/clone.2:220
1097 #, no-wrap
1098 msgid "B<CLONE_FS> (since Linux 2.0)"
1099 msgstr "B<CLONE_FS> (Linux 2.0 以降)"
1100
1101 #. type: Plain text
1102 #: build/C/man2/clone.2:235
1103 msgid ""
1104 "If B<CLONE_FS> is set, the caller and the child process share the same "
1105 "filesystem information.  This includes the root of the filesystem, the "
1106 "current working directory, and the umask.  Any call to B<chroot>(2), "
1107 "B<chdir>(2), or B<umask>(2)  performed by the calling process or the child "
1108 "process also affects the other process."
1109 msgstr ""
1110 "B<CLONE_FS> が設定された場合、呼び出し元のプロセスと子プロセスが同じファイル"
1111 "システム 情報を共有する。ファイルシステム情報は、ファイルシステムのルート "
1112 "(root)、 カレントワーキングディレクトリ (current working directory)  や "
1113 "umask などである。 呼び出し元のプロセスや子プロセスのどちらか一方によって "
1114 "B<chroot>(2), B<chdir>(2), B<umask>(2)  が呼び出されると、もう一方のプロセス"
1115 "にも影響が及ぶ。"
1116
1117 #. type: Plain text
1118 #: build/C/man2/clone.2:247
1119 msgid ""
1120 "If B<CLONE_FS> is not set, the child process works on a copy of the "
1121 "filesystem information of the calling process at the time of the B<clone>()  "
1122 "call.  Calls to B<chroot>(2), B<chdir>(2), B<umask>(2)  performed later by "
1123 "one of the processes do not affect the other process."
1124 msgstr ""
1125 "B<CLONE_FS> が設定されていない場合、子プロセスは、 B<clone>()  が実行された時"
1126 "点での、呼び出し元のプロセスのファイルシステム情報のコピーを 使用する。 これ"
1127 "以降は、呼び出し元のプロセスと子プロセスの一方が B<chroot>(2), B<chdir>(2), "
1128 "B<umask>(2)  を呼び出しても、もう一方のプロセスには影響を与えない。"
1129
1130 #. type: TP
1131 #: build/C/man2/clone.2:247
1132 #, no-wrap
1133 msgid "B<CLONE_IO> (since Linux 2.6.25)"
1134 msgstr "B<CLONE_IO> (Linux 2.6.25 以降)"
1135
1136 #. type: Plain text
1137 #: build/C/man2/clone.2:256
1138 msgid ""
1139 "If B<CLONE_IO> is set, then the new process shares an I/O context with the "
1140 "calling process.  If this flag is not set, then (as with B<fork>(2))  the "
1141 "new process has its own I/O context."
1142 msgstr ""
1143 "B<CLONE_IO> が設定された場合、新しいプロセスは呼び出し元のプロセスと I/O コン"
1144 "テキストを共有する。 このフラグが設定されていない場合には、 (B<fork>(2)  の場"
1145 "合と同様) 新しいプロセスは自分専用の I/O コンテキストを持つ。"
1146
1147 #.  The following based on text from Jens Axboe
1148 #.  the anticipatory and CFQ scheduler
1149 #.  with CFQ and AS.
1150 #. type: Plain text
1151 #: build/C/man2/clone.2:273
1152 msgid ""
1153 "The I/O context is the I/O scope of the disk scheduler (i.e, what the I/O "
1154 "scheduler uses to model scheduling of a process's I/O).  If processes share "
1155 "the same I/O context, they are treated as one by the I/O scheduler.  As a "
1156 "consequence, they get to share disk time.  For some I/O schedulers, if two "
1157 "processes share an I/O context, they will be allowed to interleave their "
1158 "disk access.  If several threads are doing I/O on behalf of the same process "
1159 "(B<aio_read>(3), for instance), they should employ B<CLONE_IO> to get better "
1160 "I/O performance."
1161 msgstr ""
1162 "I/O コンテキストは、ディスクスケジュールの I/O スコープである (言い換えると、"
1163 "I/O コンテキストは I/O スケジューラがプロセス I/O の スケジューリングをモデル"
1164 "化するのに使用される)。 複数のプロセスが同じ I/O コンテキストを共有する場"
1165 "合、 これらのプロセスは I/O スケジューラからは一つとして扱われる。 結果とし"
1166 "て、これらのプロセスはディスクアクセスの時間を共有するようになる。 いくつか"
1167 "の I/O スケジューラでは、 二つのプロセスが I/O コンテキストを共有している場"
1168 "合、 これらのプロセスはディスクアクセスを交互に行うことができる。 同じプロセ"
1169 "スの複数のスレッドが I/O を実行している場合 (例えば B<aio_read>(3))、 "
1170 "B<CLONE_IO> を利用することで I/O 性能を良くすることができる。"
1171
1172 #. type: Plain text
1173 #: build/C/man2/clone.2:277
1174 msgid ""
1175 "If the kernel is not configured with the B<CONFIG_BLOCK> option, this flag "
1176 "is a no-op."
1177 msgstr ""
1178 "カーネルの設定が B<CONFIG_BLOCK> オプション付きでない場合、 このフラグは何の"
1179 "意味も持たない。"
1180
1181 #. type: TP
1182 #: build/C/man2/clone.2:277 build/C/man2/unshare.2:96
1183 #, no-wrap
1184 msgid "B<CLONE_NEWIPC> (since Linux 2.6.19)"
1185 msgstr "B<CLONE_NEWIPC> (Linux 2.6.19 以降)"
1186
1187 #. type: Plain text
1188 #: build/C/man2/clone.2:287
1189 msgid ""
1190 "If B<CLONE_NEWIPC> is set, then create the process in a new IPC namespace.  "
1191 "If this flag is not set, then (as with B<fork>(2)), the process is created "
1192 "in the same IPC namespace as the calling process.  This flag is intended for "
1193 "the implementation of containers."
1194 msgstr ""
1195 "B<CLONE_NEWIPC> が設定された場合、新しい IPC 名前空間 (namespace) でプロセス"
1196 "を作成する。 このフラグが設定されていない場合、 (B<fork>(2)  の場合と同様) 呼"
1197 "び出し元のプロセスと同じ IPC 名前空間でプロセスが 作成される。 このフラグは、"
1198 "コンテナの実装での使用を意図して用意されたものである。"
1199
1200 #.  commit 7eafd7c74c3f2e67c27621b987b28397110d643f
1201 #.  https://lwn.net/Articles/312232/
1202 #. type: Plain text
1203 #: build/C/man2/clone.2:299
1204 msgid ""
1205 "An IPC namespace provides an isolated view of System\\ V IPC objects (see "
1206 "B<svipc>(7))  and (since Linux 2.6.30)  POSIX message queues (see "
1207 "B<mq_overview>(7)).  The common characteristic of these IPC mechanisms is "
1208 "that IPC objects are identified by mechanisms other than filesystem "
1209 "pathnames."
1210 msgstr ""
1211 "IPC 名前空間は、独立の System\\ V IPC オブジェクト空間 (B<svipc>(7) 参照) を"
1212 "提供する 。 (Linux 2.6.30 以降では) 独立した POSIX メッセージキュー空間 "
1213 "(B<mq_overview>(7) 参照) も提供される。 これらの IPC 機構に共通の特徴とし"
1214 "て、 IPC オブジェクトはファイルシステムのパス名とは違った仕組みで識別されると"
1215 "いう点がある。"
1216
1217 #. type: Plain text
1218 #: build/C/man2/clone.2:303
1219 msgid ""
1220 "Objects created in an IPC namespace are visible to all other processes that "
1221 "are members of that namespace, but are not visible to processes in other IPC "
1222 "namespaces."
1223 msgstr ""
1224 "ある IPC 名前空間に作成されたオブジェクトは、 その名前空間のメンバーである他"
1225 "のすべてのプロセスからも見えるが、 違う IPC 名前空間のプロセスからは見えな"
1226 "い。"
1227
1228 #. type: Plain text
1229 #: build/C/man2/clone.2:307
1230 msgid ""
1231 "When an IPC namespace is destroyed (i.e., when the last process that is a "
1232 "member of the namespace terminates), all IPC objects in the namespace are "
1233 "automatically destroyed."
1234 msgstr ""
1235 "IPC 名前空間が破棄される時 (すなわち、その名前空間のメンバーの最後のプロセス"
1236 "が終了する時)、 その名前空間の全ての IPC オブジェクトは自動的に破棄される。"
1237
1238 #. type: Plain text
1239 #: build/C/man2/clone.2:314
1240 msgid ""
1241 "Only a privileged process (B<CAP_SYS_ADMIN>)  can employ B<CLONE_NEWIPC>.  "
1242 "This flag can't be specified in conjunction with B<CLONE_SYSVSEM>."
1243 msgstr ""
1244 "特権プロセス (B<CAP_SYS_ADMIN>) だけが B<CLONE_NEWIPC> を使用できる。 このフ"
1245 "ラグは B<CLONE_SYSVSEM> と組み合わせて指定することはできない。"
1246
1247 #. type: Plain text
1248 #: build/C/man2/clone.2:317
1249 msgid "For further information on IPC namespaces, see B<namespaces>(7)."
1250 msgstr "IPC 名前空間の詳細は B<namespaces>(7) を参照。"
1251
1252 #. type: TP
1253 #: build/C/man2/clone.2:317 build/C/man2/unshare.2:113
1254 #, no-wrap
1255 msgid "B<CLONE_NEWNET> (since Linux 2.6.24)"
1256 msgstr "B<CLONE_NEWNET> (Linux 2.6.24 以降)"
1257
1258 #. type: Plain text
1259 #: build/C/man2/clone.2:321
1260 msgid ""
1261 "(The implementation of this flag was completed only by about kernel version "
1262 "2.6.29.)"
1263 msgstr "(このフラグの実装は、Linux 2.6.29 あたりまでには完成した。)"
1264
1265 #. type: Plain text
1266 #: build/C/man2/clone.2:330
1267 msgid ""
1268 "If B<CLONE_NEWNET> is set, then create the process in a new network "
1269 "namespace.  If this flag is not set, then (as with B<fork>(2))  the process "
1270 "is created in the same network namespace as the calling process.  This flag "
1271 "is intended for the implementation of containers."
1272 msgstr ""
1273 "B<CLONE_NEWNET> が設定された場合、新しいネットワーク名前空間 (network "
1274 "namaspace)  でプロセスを作成する。 このフラグが設定されていない場合、 "
1275 "(B<fork>(2)  の場合と同様) 呼び出し元のプロセスと同じネットワーク名前空間でプ"
1276 "ロセスが 作成される。 このフラグは、コンテナの実装での使用を意図して用意され"
1277 "たものである。"
1278
1279 #.  FIXME . Add pointer to veth(4) page when it is eventually completed
1280 #. type: Plain text
1281 #: build/C/man2/clone.2:345
1282 msgid ""
1283 "A network namespace provides an isolated view of the networking stack "
1284 "(network device interfaces, IPv4 and IPv6 protocol stacks, IP routing "
1285 "tables, firewall rules, the I</proc/net> and I</sys/class/net> directory "
1286 "trees, sockets, etc.).  A physical network device can live in exactly one "
1287 "network namespace.  A virtual network device (\"veth\") pair provides a pipe-"
1288 "like abstraction that can be used to create tunnels between network "
1289 "namespaces, and can be used to create a bridge to a physical network device "
1290 "in another namespace."
1291 msgstr ""
1292 "ネットワーク名前空間は、分離されたネットワークスタックを提供するものである "
1293 "(ネットワークスタックとは、 ネットワークデバイスインタフェース、IPv4 や IPv6 "
1294 "プロトコルスタック、 I</proc/net>、 I</sys/class/net> ディレクトリツリー、ソ"
1295 "ケットなどである)。 物理ネットワークデバイスが所属できるネットワーク名前空間"
1296 "は一つだけである。 仮想ネットワークデバイス (\"veth\") のペアにより パイプ風"
1297 "の抽象化 (abstraction) が実現されており、 これを使うことで、ネットワーク名前"
1298 "空間間のトンネルを作成したり、 別の名前空間の物理ネットワークデバイスへのブ"
1299 "リッジを作成したり することができる。"
1300
1301 #. type: Plain text
1302 #: build/C/man2/clone.2:352
1303 msgid ""
1304 "When a network namespace is freed (i.e., when the last process in the "
1305 "namespace terminates), its physical network devices are moved back to the "
1306 "initial network namespace (not to the parent of the process).  For further "
1307 "information on network namespaces, see B<namespaces>(7)."
1308 msgstr ""
1309 "ネットワーク名前空間が解放される時 (すなわち、その名前空間の最後のプロセスが"
1310 "終了する時)、 物理ネットワークデバイスは初期ネットワーク名前空間 (initial "
1311 "network namespace) に戻される (親プロセスのネットワーク名前空間に戻される訳で"
1312 "はない)。 ネットワーク名前空間のさらなる情報は B<namespaces>(7) を参照。"
1313
1314 #. type: Plain text
1315 #: build/C/man2/clone.2:357
1316 msgid ""
1317 "Only a privileged process (B<CAP_SYS_ADMIN>)  can employ B<CLONE_NEWNET>."
1318 msgstr "特権プロセス (B<CAP_SYS_ADMIN>) だけが B<CLONE_NEWNET> を使用できる。"
1319
1320 #. type: TP
1321 #: build/C/man2/clone.2:357
1322 #, no-wrap
1323 msgid "B<CLONE_NEWNS> (since Linux 2.4.19)"
1324 msgstr "B<CLONE_NEWNS> (Linux 2.4.19 以降)"
1325
1326 #. type: Plain text
1327 #: build/C/man2/clone.2:367
1328 msgid ""
1329 "If B<CLONE_NEWNS> is set, the cloned child is started in a new mount "
1330 "namespace, initialized with a copy of the namespace of the parent.  If "
1331 "B<CLONE_NEWNS> is not set, the child lives in the same mount namespace as "
1332 "the parent."
1333 msgstr ""
1334 "B<CLONE_NEWNS> がセットされている場合、 clone で作成された子プロセスは新しい"
1335 "マウント名前空間で開始され、 新しい名前空間は親プロセスの名前空間のコピーで初"
1336 "期化される。 B<CLONE_NEWNS> がセットされていない場合、 子プロセスは親プロセス"
1337 "と同じマウント名前空間となる。"
1338
1339 #. type: Plain text
1340 #: build/C/man2/clone.2:370
1341 msgid "For further information on mount namespaces, see B<namespaces>(7)."
1342 msgstr "マウント名前空間の詳細は B<namespaces>(7) を参照。"
1343
1344 #.  See https://lwn.net/Articles/543273/
1345 #. type: Plain text
1346 #: build/C/man2/clone.2:383
1347 msgid ""
1348 "Only a privileged process (B<CAP_SYS_ADMIN>)  can employ B<CLONE_NEWNS>.  It "
1349 "is not permitted to specify both B<CLONE_NEWNS> and B<CLONE_FS> in the same "
1350 "B<clone>()  call."
1351 msgstr ""
1352 "特権プロセス (B<CAP_SYS_ADMIN>) のみが B<CLONE_NEWNS> を指定することができ"
1353 "る。 一つの B<clone>()  呼び出しで、 B<CLONE_NEWNS> と B<CLONE_FS> の両方を指"
1354 "定することはできない。"
1355
1356 #. type: TP
1357 #: build/C/man2/clone.2:383
1358 #, no-wrap
1359 msgid "B<CLONE_NEWPID> (since Linux 2.6.24)"
1360 msgstr "B<CLONE_NEWPID> (Linux 2.6.24 以降)"
1361
1362 #.  This explanation draws a lot of details from
1363 #.  http://lwn.net/Articles/259217/
1364 #.  Authors: Pavel Emelyanov <xemul@openvz.org>
1365 #.  and Kir Kolyshkin <kir@openvz.org>
1366 #.  The primary kernel commit is 30e49c263e36341b60b735cbef5ca37912549264
1367 #.  Author: Pavel Emelyanov <xemul@openvz.org>
1368 #. type: Plain text
1369 #: build/C/man2/clone.2:400
1370 msgid ""
1371 "If B<CLONE_NEWPID> is set, then create the process in a new PID namespace.  "
1372 "If this flag is not set, then (as with B<fork>(2))  the process is created "
1373 "in the same PID namespace as the calling process.  This flag is intended for "
1374 "the implementation of containers."
1375 msgstr ""
1376 "B<CLONE_NEWPID> が設定された場合、新しい PID 名前空間でプロセスを作成する。 "
1377 "このフラグが設定されていない場合、 (B<fork>(2)  の場合と同様) 呼び出し元のプ"
1378 "ロセスと同じ PID 名前空間で プロセスが作成される。 このフラグは、コンテナの実"
1379 "装での使用を意図して用意されたものである。"
1380
1381 #. type: Plain text
1382 #: build/C/man2/clone.2:405
1383 msgid ""
1384 "For further information on PID namespaces, see B<namespaces>(7)  and "
1385 "B<pid_namespaces>(7)"
1386 msgstr "PID 名前空間の詳細は B<namespaces>(7) と B<pid_namespaces>(7) を参照。"
1387
1388 #. type: Plain text
1389 #: build/C/man2/clone.2:414
1390 msgid ""
1391 "Only a privileged process (B<CAP_SYS_ADMIN>)  can employ B<CLONE_NEWPID>.  "
1392 "This flag can't be specified in conjunction with B<CLONE_THREAD> or "
1393 "B<CLONE_PARENT>."
1394 msgstr ""
1395 "特権プロセス (B<CAP_SYS_ADMIN>) だけが B<CLONE_NEWPID> を使用できる。 このフ"
1396 "ラグは B<CLONE_THREAD> や B<CLONE_PARENT> と組み合わせて指定することはできな"
1397 "い。"
1398
1399 #. type: TP
1400 #: build/C/man2/clone.2:414
1401 #, no-wrap
1402 msgid "B<CLONE_NEWUSER>"
1403 msgstr "B<CLONE_NEWUSER>"
1404
1405 #. type: Plain text
1406 #: build/C/man2/clone.2:424
1407 msgid ""
1408 "(This flag first became meaningful for B<clone>()  in Linux 2.6.23, the "
1409 "current B<clone>()  semantics were merged in Linux 3.5, and the final pieces "
1410 "to make the user namespaces completely usable were merged in Linux 3.8.)"
1411 msgstr ""
1412 "(このフラグが B<clone>() で意味を持つようになったのは Linux 2.6.23 である。 "
1413 "現在の B<clone>() の動作が取り込まれたのは Linux 3.5 であり、 ユーザー名前空"
1414 "間が完全に機能するようにする最後の機能が取り込まれたのは Linux 3.8 である。)"
1415
1416 #. type: Plain text
1417 #: build/C/man2/clone.2:431
1418 msgid ""
1419 "If B<CLONE_NEWUSER> is set, then create the process in a new user "
1420 "namespace.  If this flag is not set, then (as with B<fork>(2))  the process "
1421 "is created in the same user namespace as the calling process."
1422 msgstr ""
1423 "B<CLONE_NEWUSER> がセットされている場合、新しいユーザー名前空間でプロセスを作"
1424 "成する。 このフラグがセットされていない場合、 (B<fork>(2)  の場合と同様に) 呼"
1425 "び出し元のプロセスと同じユーザー名前空間でプロセスが作成される。"
1426
1427 #. type: Plain text
1428 #: build/C/man2/clone.2:436
1429 msgid ""
1430 "For further information on user namespaces, see B<namespaces>(7)  and "
1431 "B<user_namespaces>(7)"
1432 msgstr ""
1433 "ユーザー名前空間の詳細は B<namespaces>(7) と B<user_namespaces>(7) を参照。"
1434
1435 #.  Before Linux 2.6.29, it appears that only CAP_SYS_ADMIN was needed
1436 #. type: Plain text
1437 #: build/C/man2/clone.2:447
1438 msgid ""
1439 "Before Linux 3.8, use of B<CLONE_NEWUSER> required that the caller have "
1440 "three capabilities: B<CAP_SYS_ADMIN>, B<CAP_SETUID>, and B<CAP_SETGID>.  "
1441 "Starting with Linux 3.8, no privileges are needed to create a user namespace."
1442 msgstr ""
1443 "Linux 3.8 より前では、 B<CLONE_NEWUSER> を使用するには、 呼び出し元は "
1444 "B<CAP_SYS_ADMIN>, B<CAP_SETUID>, B<CAP_SETGID> の 3 つのケーパリビティを持っ"
1445 "ている必要があった。 Linux 3.8 以降では、 ユーザー名前空間を作成するのに特権"
1446 "は必要なくなった。"
1447
1448 #.  commit e66eded8309ebf679d3d3c1f5820d1f2ca332c71
1449 #.  https://lwn.net/Articles/543273/
1450 #.  The fix actually went into 3.9 and into 3.8.3. However, user namespaces
1451 #.  were, for practical purposes, unusable in earlier 3.8.x because of the
1452 #.  various filesystems that didn't support userns.
1453 #. type: Plain text
1454 #: build/C/man2/clone.2:461
1455 msgid ""
1456 "This flag can't be specified in conjunction with B<CLONE_THREAD> or "
1457 "B<CLONE_PARENT>.  For security reasons, B<CLONE_NEWUSER> cannot be specified "
1458 "in conjunction with B<CLONE_FS>."
1459 msgstr ""
1460 "このフラグは B<CLONE_THREAD> や B<CLONE_PARENT> と組み合わせて指定することは"
1461 "できない。 セキュリティ上の理由から、 B<CLONE_NEWUSER> は B<CLONE_FS> と組み"
1462 "合わせて指定することはできない。"
1463
1464 #. type: Plain text
1465 #: build/C/man2/clone.2:464 build/C/man2/unshare.2:209
1466 msgid "For further information on user namespaces, see B<user_namespaces>(7)."
1467 msgstr "ユーザー名前空間の詳細は B<user_namespaces>(7) を参照。"
1468
1469 #. type: TP
1470 #: build/C/man2/clone.2:464 build/C/man2/unshare.2:209
1471 #, no-wrap
1472 msgid "B<CLONE_NEWUTS> (since Linux 2.6.19)"
1473 msgstr "B<CLONE_NEWUTS> (Linux 2.6.19 以降)"
1474
1475 #. type: Plain text
1476 #: build/C/man2/clone.2:476
1477 msgid ""
1478 "If B<CLONE_NEWUTS> is set, then create the process in a new UTS namespace, "
1479 "whose identifiers are initialized by duplicating the identifiers from the "
1480 "UTS namespace of the calling process.  If this flag is not set, then (as "
1481 "with B<fork>(2))  the process is created in the same UTS namespace as the "
1482 "calling process.  This flag is intended for the implementation of containers."
1483 msgstr ""
1484 "B<CLONE_NEWUTS> が設定された場合、新しい UTS 名前空間でプロセスを作成する。 "
1485 "新しい UTS 名前空間の識別子の初期値は、呼び出し元のプロセスの UTS 名前空間の"
1486 "識別子を複製したものとなる。 このフラグが設定されていない場合、 (B<fork>(2)  "
1487 "の場合と同様) 呼び出し元のプロセスと同じ UTS 名前空間で プロセスが作成され"
1488 "る。 このフラグは、コンテナの実装での使用を意図して用意されたものである。"
1489
1490 #. type: Plain text
1491 #: build/C/man2/clone.2:487
1492 msgid ""
1493 "A UTS namespace is the set of identifiers returned by B<uname>(2); among "
1494 "these, the domain name and the hostname can be modified by "
1495 "B<setdomainname>(2)  and B<sethostname>(2), respectively.  Changes made to "
1496 "the identifiers in a UTS namespace are visible to all other processes in the "
1497 "same namespace, but are not visible to processes in other UTS namespaces."
1498 msgstr ""
1499 "UTS 名前空間は、 B<uname>(2)  が返す識別子の集合である。 識別子としてはドメイ"
1500 "ン名とホスト名があり、 それぞれ B<setdomainname>(2), B<sethostname>(2)  で修"
1501 "正することができる。 ある UTS 名前空間における識別子の変更は同じ名前空間の他"
1502 "のすべての プロセスに見えるが、別の UTS 名前空間のプロセスには見えない。"
1503
1504 #. type: Plain text
1505 #: build/C/man2/clone.2:492
1506 msgid ""
1507 "Only a privileged process (B<CAP_SYS_ADMIN>)  can employ B<CLONE_NEWUTS>."
1508 msgstr "特権プロセス (B<CAP_SYS_ADMIN>) だけが B<CLONE_NEWUTS> を使用できる。"
1509
1510 #. type: Plain text
1511 #: build/C/man2/clone.2:495
1512 msgid "For further information on UTS namespaces, see B<namespaces>(7)."
1513 msgstr "UTS 名前空間の詳細は B<namespaces>(7) を参照。"
1514
1515 #. type: TP
1516 #: build/C/man2/clone.2:495
1517 #, no-wrap
1518 msgid "B<CLONE_PARENT> (since Linux 2.3.12)"
1519 msgstr "B<CLONE_PARENT> (Linux 2.3.12 以降)"
1520
1521 #. type: Plain text
1522 #: build/C/man2/clone.2:502
1523 msgid ""
1524 "If B<CLONE_PARENT> is set, then the parent of the new child (as returned by "
1525 "B<getppid>(2))  will be the same as that of the calling process."
1526 msgstr ""
1527 "B<CLONE_PARENT> が設定された場合、新しい子供の (B<getppid>(2)  で返される) 親"
1528 "プロセスは呼び出し元のプロセスの親プロセスと同じになる。"
1529
1530 #. type: Plain text
1531 #: build/C/man2/clone.2:508
1532 msgid ""
1533 "If B<CLONE_PARENT> is not set, then (as with B<fork>(2))  the child's parent "
1534 "is the calling process."
1535 msgstr ""
1536 "B<CLONE_PARENT> が設定されていない場合、 (B<fork>(2)  と同様に) 呼び出し元の"
1537 "プロセスがその子供の親になる。"
1538
1539 #. type: Plain text
1540 #: build/C/man2/clone.2:516
1541 msgid ""
1542 "Note that it is the parent process, as returned by B<getppid>(2), which is "
1543 "signaled when the child terminates, so that if B<CLONE_PARENT> is set, then "
1544 "the parent of the calling process, rather than the calling process itself, "
1545 "will be signaled."
1546 msgstr ""
1547 "子供が終了した時にシグナルが送られるのは B<getppid>(2)  が返す親プロセスであ"
1548 "る点に注意すること。このため B<CLONE_PARENT> が設定された場合、呼び出し元のプ"
1549 "ロセスではなく呼び出し元のプロセスの 親プロセスにシグナルが送られる。"
1550
1551 #. type: TP
1552 #: build/C/man2/clone.2:516
1553 #, no-wrap
1554 msgid "B<CLONE_PARENT_SETTID> (since Linux 2.5.49)"
1555 msgstr "B<CLONE_PARENT_SETTID> (Linux 2.5.49 以降)"
1556
1557 #. type: Plain text
1558 #: build/C/man2/clone.2:524
1559 msgid ""
1560 "Store child thread ID at location I<ptid> in parent and child memory.  (In "
1561 "Linux 2.5.32-2.5.48 there was a flag B<CLONE_SETTID> that did this.)"
1562 msgstr ""
1563 "親プロセスと子プロセスのメモリ内の I<ptid> が指す領域に子プロセスのスレッド "
1564 "ID を格納する。 (Linux 2.5.32-2.5.48 では、 同じことをする B<CLONE_SETTID> と"
1565 "いうフラグが存在した。)"
1566
1567 #. type: TP
1568 #: build/C/man2/clone.2:524
1569 #, no-wrap
1570 msgid "B<CLONE_PID> (obsolete)"
1571 msgstr "B<CLONE_PID> (廃止予定)"
1572
1573 #. type: Plain text
1574 #: build/C/man2/clone.2:535
1575 msgid ""
1576 "If B<CLONE_PID> is set, the child process is created with the same process "
1577 "ID as the calling process.  This is good for hacking the system, but "
1578 "otherwise of not much use.  Since 2.3.21 this flag can be specified only by "
1579 "the system boot process (PID 0).  It disappeared in Linux 2.5.16."
1580 msgstr ""
1581 "B<CLONE_PID> が設定された場合、子プロセスは呼び出し元のプロセスと同じプロセ"
1582 "ス ID で作成される。これはシステムをハッキングするのには便利だが、 それ以外に"
1583 "はあまり使われない。 Linux 2.3.21 以降では、 システムのブートプロセス (PID "
1584 "0) だけがこのフラグを指定できる。 Linux 2.5.16 で削除された。"
1585
1586 #. type: TP
1587 #: build/C/man2/clone.2:535
1588 #, no-wrap
1589 msgid "B<CLONE_PTRACE> (since Linux 2.2)"
1590 msgstr "B<CLONE_PTRACE> (Linux 2.2 以降)"
1591
1592 #. type: Plain text
1593 #: build/C/man2/clone.2:542
1594 msgid ""
1595 "If B<CLONE_PTRACE> is specified, and the calling process is being traced, "
1596 "then trace the child also (see B<ptrace>(2))."
1597 msgstr ""
1598 "B<CLONE_PTRACE> が指定され、かつ呼び出し元のプロセスが追跡 (trace) されていた"
1599 "場合、子プロセスも 同様に追跡される。 (B<ptrace>(2)  を参照のこと)"
1600
1601 #. type: TP
1602 #: build/C/man2/clone.2:542
1603 #, no-wrap
1604 msgid "B<CLONE_SETTLS> (since Linux 2.5.32)"
1605 msgstr "B<CLONE_SETTLS> (Linux 2.5.32 以降)"
1606
1607 #. type: Plain text
1608 #: build/C/man2/clone.2:549
1609 msgid ""
1610 "The I<newtls> argument is the new TLS (Thread Local Storage) descriptor.  "
1611 "(See B<set_thread_area>(2).)"
1612 msgstr ""
1613 "I<newtls> 引き数は、新しい TLS (Thread Local Storage) ディスクリプタである。 "
1614 "(B<set_thread_area>(2)  を参照のこと)"
1615
1616 #. type: TP
1617 #: build/C/man2/clone.2:549
1618 #, no-wrap
1619 msgid "B<CLONE_SIGHAND> (since Linux 2.0)"
1620 msgstr "B<CLONE_SIGHAND> (Linux 2.0 以降)"
1621
1622 #. type: Plain text
1623 #: build/C/man2/clone.2:565
1624 msgid ""
1625 "If B<CLONE_SIGHAND> is set, the calling process and the child process share "
1626 "the same table of signal handlers.  If the calling process or child process "
1627 "calls B<sigaction>(2)  to change the behavior associated with a signal, the "
1628 "behavior is changed in the other process as well.  However, the calling "
1629 "process and child processes still have distinct signal masks and sets of "
1630 "pending signals.  So, one of them may block or unblock some signals using "
1631 "B<sigprocmask>(2)  without affecting the other process."
1632 msgstr ""
1633 "B<CLONE_SIGHAND> が設定された場合、呼び出し元のプロセスと子プロセスは同じシグ"
1634 "ナルハン ドラのテーブルを共有する。呼び出し元のプロセスまたは子プロセスのどち"
1635 "らかが B<sigaction>(2)  を呼び出してシグナルに対応する動作を変更した場合、 も"
1636 "う一方のプロセスのシグナル動作も変更される。 但し、呼び出し元のプロセスと子プ"
1637 "ロセスは、 プロセス毎に、シグナルマスク (signal mask) と処理待ちシグナルの集"
1638 "合 を持っている。このため、あるプロセスは、 B<sigprocmask>(2)  を使用して、も"
1639 "う一方のプロセスに影響を与えずに シグナルを禁止 (block) したり許可 (unblock) "
1640 "したりできる。"
1641
1642 #. type: Plain text
1643 #: build/C/man2/clone.2:576
1644 msgid ""
1645 "If B<CLONE_SIGHAND> is not set, the child process inherits a copy of the "
1646 "signal handlers of the calling process at the time B<clone>()  is called.  "
1647 "Calls to B<sigaction>(2)  performed later by one of the processes have no "
1648 "effect on the other process."
1649 msgstr ""
1650 "B<CLONE_SIGHAND> が設定されていない場合、子プロセスは B<clone>()  が実行され"
1651 "た時点での、呼び出し元のプロセスのシグナルハンドラの コピーを継承する。これ以"
1652 "降は、一方のプロセスが B<sigaction>(2)  を呼び出しても、もう一方のプロセスに"
1653 "は影響を与えない。"
1654
1655 #. type: Plain text
1656 #: build/C/man2/clone.2:584
1657 msgid ""
1658 "Since Linux 2.6.0-test6, I<flags> must also include B<CLONE_VM> if "
1659 "B<CLONE_SIGHAND> is specified"
1660 msgstr ""
1661 "Linux 2.6.0-test6 以降では、 B<CLONE_SIGHAND> を指定する場合、 B<CLONE_VM> "
1662 "も I<flags> に含めなければならない。"
1663
1664 #. type: TP
1665 #: build/C/man2/clone.2:584
1666 #, no-wrap
1667 msgid "B<CLONE_STOPPED> (since Linux 2.6.0-test2)"
1668 msgstr "B<CLONE_STOPPED> (Linux 2.6.0-test2 以降)"
1669
1670 #. type: Plain text
1671 #: build/C/man2/clone.2:593
1672 msgid ""
1673 "If B<CLONE_STOPPED> is set, then the child is initially stopped (as though "
1674 "it was sent a B<SIGSTOP> signal), and must be resumed by sending it a "
1675 "B<SIGCONT> signal."
1676 msgstr ""
1677 "B<CLONE_STOPPED> が設定されると、子プロセスは最初 (B<SIGSTOP> シグナルを送ら"
1678 "れたかのように) 停止した状態となる。 子プロセスを再開させるには B<SIGCONT> シ"
1679 "グナルを送信しなければならない。"
1680
1681 #.  glibc 2.8 removed this defn from bits/sched.h
1682 #. type: Plain text
1683 #: build/C/man2/clone.2:601
1684 msgid ""
1685 "This flag was I<deprecated> from Linux 2.6.25 onward, and was I<removed> "
1686 "altogether in Linux 2.6.38."
1687 msgstr ""
1688 "このフラグは Linux 2.6.25 以降ではI<非推奨>であり、\n"
1689 "Linux 2.6.38 で完全にI<削除>された。"
1690
1691 #. type: TP
1692 #: build/C/man2/clone.2:601
1693 #, no-wrap
1694 msgid "B<CLONE_SYSVSEM> (since Linux 2.5.10)"
1695 msgstr "B<CLONE_SYSVSEM> (Linux 2.5.10 以降)"
1696
1697 #. type: Plain text
1698 #: build/C/man2/clone.2:619
1699 msgid ""
1700 "If B<CLONE_SYSVSEM> is set, then the child and the calling process share a "
1701 "single list of System V semaphore adjustment (I<semadj>)  values (see "
1702 "B<semop>(2)).  In this case, the shared list accumulates I<semadj> values "
1703 "across all processes sharing the list, and semaphore adjustments are "
1704 "performed only when the last process that is sharing the list terminates (or "
1705 "ceases sharing the list using B<unshare>(2)).  If this flag is not set, then "
1706 "the child has a separate I<semadj> list that is initially empty."
1707 msgstr ""
1708 "B<CLONE_SYSVSEM> がセットされると、子プロセスと呼び出し元プロセスは一つの "
1709 "System\\ V セマフォの調整値 (I<semadj>) (B<semop>(2)  参照) を共有する。 この"
1710 "場合、共有されたリストはこのリストを共有する全プロセスの I<semadj> 値を積算"
1711 "し、 セマフォ調整はこのリストを共有している最後のプロセスが終了した際 (また"
1712 "は B<unshare>(2) を使ってリストの共有が中止された際) に実行される。 このフラ"
1713 "グがセットされていなければ、 子プロセスは独自のセマフォ I<semadj> リストを持"
1714 "つ (リストの初期値は空である)。"
1715
1716 #. type: TP
1717 #: build/C/man2/clone.2:619
1718 #, no-wrap
1719 msgid "B<CLONE_THREAD> (since Linux 2.4.0-test8)"
1720 msgstr "B<CLONE_THREAD> (Linux 2.4.0-test8以降)"
1721
1722 #. type: Plain text
1723 #: build/C/man2/clone.2:628
1724 msgid ""
1725 "If B<CLONE_THREAD> is set, the child is placed in the same thread group as "
1726 "the calling process.  To make the remainder of the discussion of "
1727 "B<CLONE_THREAD> more readable, the term \"thread\" is used to refer to the "
1728 "processes within a thread group."
1729 msgstr ""
1730 "B<CLONE_THREAD> が設定された場合、子プロセスは呼び出し元のプロセスと同じス"
1731 "レッドグループに 置かれる。 B<CLONE_THREAD> についての以降の議論を読みやすく"
1732 "するため、 「スレッド」という用語はスレッドグループの中のプロセスを 参照する"
1733 "のに使うこととする。"
1734
1735 #. type: Plain text
1736 #: build/C/man2/clone.2:636
1737 msgid ""
1738 "Thread groups were a feature added in Linux 2.4 to support the POSIX threads "
1739 "notion of a set of threads that share a single PID.  Internally, this shared "
1740 "PID is the so-called thread group identifier (TGID) for the thread group.  "
1741 "Since Linux 2.4, calls to B<getpid>(2)  return the TGID of the caller."
1742 msgstr ""
1743 "スレッドグループは、 スレッド集合で一つの PID を共有するという POSIX スレッド"
1744 "の概念をサポートするために Linux 2.4 に加えられた機能であった。 内部的には、"
1745 "この共有 PID はいわゆるそのスレッドグループの スレッドグループ識別子 (TGID) "
1746 "である。 Linux 2.4 以降では、 B<getpid>(2)  の呼び出しではそのプロセスのス"
1747 "レッドグループ ID を返す。"
1748
1749 #. type: Plain text
1750 #: build/C/man2/clone.2:645
1751 msgid ""
1752 "The threads within a group can be distinguished by their (system-wide)  "
1753 "unique thread IDs (TID).  A new thread's TID is available as the function "
1754 "result returned to the caller of B<clone>(), and a thread can obtain its own "
1755 "TID using B<gettid>(2)."
1756 msgstr ""
1757 "あるグループに属するスレッドは (システム全体で) 一意なスレッド ID (TID)  で区"
1758 "別できる。新しいスレッドの TID は B<clone>()  の呼び出し元へ関数の結果として"
1759 "返され、 スレッドは自分自身の TID を B<gettid>(2)  で取得できる。"
1760
1761 #. type: Plain text
1762 #: build/C/man2/clone.2:655
1763 msgid ""
1764 "When a call is made to B<clone>()  without specifying B<CLONE_THREAD>, then "
1765 "the resulting thread is placed in a new thread group whose TGID is the same "
1766 "as the thread's TID.  This thread is the I<leader> of the new thread group."
1767 msgstr ""
1768 "B<CLONE_THREAD> を指定せずに B<clone>()  の呼び出しが行われると、 生成された"
1769 "スレッドはそのスレッドの TID と同じ値の TGID を持つ 新しいスレッドグループに"
1770 "置かれる。このスレッドは 新しいスレッドグループの「リーダー」である。"
1771
1772 #. type: Plain text
1773 #: build/C/man2/clone.2:677
1774 msgid ""
1775 "A new thread created with B<CLONE_THREAD> has the same parent process as the "
1776 "caller of B<clone>()  (i.e., like B<CLONE_PARENT>), so that calls to "
1777 "B<getppid>(2)  return the same value for all of the threads in a thread "
1778 "group.  When a B<CLONE_THREAD> thread terminates, the thread that created it "
1779 "using B<clone>()  is not sent a B<SIGCHLD> (or other termination) signal; "
1780 "nor can the status of such a thread be obtained using B<wait>(2).  (The "
1781 "thread is said to be I<detached>.)"
1782 msgstr ""
1783 "B<CLONE_THREAD> を指定して作成された新しいスレッドは、 (B<CLONE_PARENT> の場"
1784 "合と同様に)  B<clone>()  を呼び出し元と同じ親プロセスを持つ。 そのため、 "
1785 "B<getppid>(2)  を呼ぶと、一つのスレッドグループに属すスレッドは全て同じ値を返"
1786 "す。 B<CLONE_THREAD> で作られたスレッドが終了した際に、 そのスレッドを "
1787 "B<clone>()  を使って生成したスレッドには B<SIGCHLD> (もしくは他の終了シグナ"
1788 "ル) は送信されない。 また、 B<wait>(2)  を使って終了したスレッドの状態を取得"
1789 "することもできない (そのようなスレッドは I<detached> (分離された) といわれ"
1790 "る)。"
1791
1792 #. type: Plain text
1793 #: build/C/man2/clone.2:682
1794 msgid ""
1795 "After all of the threads in a thread group terminate the parent process of "
1796 "the thread group is sent a B<SIGCHLD> (or other termination) signal."
1797 msgstr ""
1798 "スレッドグループに属す全てのスレッドが終了した後、 そのスレッドグループの親プ"
1799 "ロセスに B<SIGCHLD> (もしくは他の終了シグナル) が送られる。"
1800
1801 #. type: Plain text
1802 #: build/C/man2/clone.2:687
1803 msgid ""
1804 "If any of the threads in a thread group performs an B<execve>(2), then all "
1805 "threads other than the thread group leader are terminated, and the new "
1806 "program is executed in the thread group leader."
1807 msgstr ""
1808 "スレッドグループに属すいずれかのスレッドが B<execve>(2)  を実行すると、スレッ"
1809 "ドグループリーダー以外の全てのスレッドは 終了され、新しいプロセスがそのスレッ"
1810 "ドグループリーダーの下で 実行される。"
1811
1812 #. type: Plain text
1813 #: build/C/man2/clone.2:693
1814 msgid ""
1815 "If one of the threads in a thread group creates a child using B<fork>(2), "
1816 "then any thread in the group can B<wait>(2)  for that child."
1817 msgstr ""
1818 "スレッドグループに属すスレッドの一つが B<fork>(2)  を使って子プロセスを作成し"
1819 "た場合、 スレッドグループのどのスレッドであっても その子供を B<wait>(2)  でき"
1820 "る。"
1821
1822 #. type: Plain text
1823 #: build/C/man2/clone.2:706
1824 msgid ""
1825 "Since Linux 2.5.35, I<flags> must also include B<CLONE_SIGHAND> if "
1826 "B<CLONE_THREAD> is specified (and note that, since Linux 2.6.0-test6, "
1827 "B<CLONE_SIGHAND> also requires B<CLONE_VM> to be included)."
1828 msgstr ""
1829 "Linux 2.5.35 以降では、 B<CLONE_THREAD> を指定する場合、 I<flags> に "
1830 "B<CLONE_SIGHAND> も含まれていなければならない (Linux 2.6.0-test6 以降では、 "
1831 "B<CLONE_SIGHAND> を指定する場合 B<CLONE_VM> も指定する必要がある点に注意する"
1832 "こと)。"
1833
1834 #. type: Plain text
1835 #: build/C/man2/clone.2:711
1836 msgid ""
1837 "Signals may be sent to a thread group as a whole (i.e., a TGID) using "
1838 "B<kill>(2), or to a specific thread (i.e., TID) using B<tgkill>(2)."
1839 msgstr ""
1840 "B<kill>(2)  を使ってスレッドグループ全体 (つまり TGID) にシグナルを送ることも"
1841 "できれば、 B<tgkill>(2)  を使って特定のスレッド (つまり TID) にシグナルを送る"
1842 "こともできる。"
1843
1844 #. type: Plain text
1845 #: build/C/man2/clone.2:716
1846 msgid ""
1847 "Signal dispositions and actions are process-wide: if an unhandled signal is "
1848 "delivered to a thread, then it will affect (terminate, stop, continue, be "
1849 "ignored in)  all members of the thread group."
1850 msgstr ""
1851 "シグナルの配送と処理はプロセス全体に影響する: ハンドラを設定していないシグナ"
1852 "ルがあるスレッドに配送されると、 そのシグナルはスレッドグループの全メンバーに"
1853 "影響を及ぼす (終了したり、停止したり、動作を継続したり、無視されたりする)。"
1854
1855 #. type: Plain text
1856 #: build/C/man2/clone.2:729
1857 msgid ""
1858 "Each thread has its own signal mask, as set by B<sigprocmask>(2), but "
1859 "signals can be pending either: for the whole process (i.e., deliverable to "
1860 "any member of the thread group), when sent with B<kill>(2); or for an "
1861 "individual thread, when sent with B<tgkill>(2).  A call to B<sigpending>(2)  "
1862 "returns a signal set that is the union of the signals pending for the whole "
1863 "process and the signals that are pending for the calling thread."
1864 msgstr ""
1865 "各々のスレッドは独自のシグナルマスクを持っており、 B<sigprocmask>(2)  で設定"
1866 "できる。 だが、処理待ちのシグナルには、 B<kill>(2)  で送信されるプロセス全体"
1867 "に対するもの (つまり、スレッドグループの どのメンバーにも配送できるもの) "
1868 "と、 B<tgkill>(2)  で送信される個々のスレッドに対するものがありえる。 "
1869 "B<sigpending>(2)  を呼び出すと、プロセス全体に対する処理待ちシグナルと呼び出"
1870 "し元の スレッドに対する処理待ちシグナルを結合したシグナル集合が返される。"
1871
1872 #. type: Plain text
1873 #: build/C/man2/clone.2:741
1874 msgid ""
1875 "If B<kill>(2)  is used to send a signal to a thread group, and the thread "
1876 "group has installed a handler for the signal, then the handler will be "
1877 "invoked in exactly one, arbitrarily selected member of the thread group that "
1878 "has not blocked the signal.  If multiple threads in a group are waiting to "
1879 "accept the same signal using B<sigwaitinfo>(2), the kernel will arbitrarily "
1880 "select one of these threads to receive a signal sent using B<kill>(2)."
1881 msgstr ""
1882 "B<kill>(2)  を使ってスレッドグループにシグナルが送られた場合で、 そのスレッド"
1883 "グループがそのシグナルに対するシグナルハンドラが 登録されていたときには、シグ"
1884 "ナルハンドラはスレッドグループの メンバーのうち、ただ一つのスレッドでだけ起動"
1885 "される。ハンドラが 起動されるスレッドは、そのシグナルを禁止 (block) していな"
1886 "い メンバーの中から一つだけが勝手に (arbitrarily) 選ばれる。 スレッドグループ"
1887 "に属す複数のスレッドが B<sigwaitinfo>(2)  を使って同じシグナルを待っている場"
1888 "合、 これらのスレッドの中から一つをカーネルが勝手に選択し、 そのスレッドが "
1889 "B<kill (2)> を使って送信されたシグナルを受信する。"
1890
1891 #. type: TP
1892 #: build/C/man2/clone.2:741
1893 #, no-wrap
1894 msgid "B<CLONE_UNTRACED> (since Linux 2.5.46)"
1895 msgstr "B<CLONE_UNTRACED> (Linux 2.5.46 以降)"
1896
1897 #. type: Plain text
1898 #: build/C/man2/clone.2:748
1899 msgid ""
1900 "If B<CLONE_UNTRACED> is specified, then a tracing process cannot force "
1901 "B<CLONE_PTRACE> on this child process."
1902 msgstr ""
1903 "B<CLONE_UNTRACED> が指定されると、 trace を行っているプロセスは この子プロセ"
1904 "スに B<CLONE_PTRACE> を適用することができない。"
1905
1906 #. type: TP
1907 #: build/C/man2/clone.2:748
1908 #, no-wrap
1909 msgid "B<CLONE_VFORK> (since Linux 2.2)"
1910 msgstr "B<CLONE_VFORK> (Linux 2.2 以降)"
1911
1912 #. type: Plain text
1913 #: build/C/man2/clone.2:760
1914 msgid ""
1915 "If B<CLONE_VFORK> is set, the execution of the calling process is suspended "
1916 "until the child releases its virtual memory resources via a call to "
1917 "B<execve>(2)  or B<_exit>(2)  (as with B<vfork>(2))."
1918 msgstr ""
1919 "B<CLONE_VFORK> が設定された場合、 (B<vfork>(2)  と同様に) 子プロセスが "
1920 "B<execve>(2)  または B<_exit>(2)  によって仮想メモリを解放するまで、呼び出し"
1921 "元のプロセスの実行は停止される。"
1922
1923 #. type: Plain text
1924 #: build/C/man2/clone.2:766
1925 msgid ""
1926 "If B<CLONE_VFORK> is not set, then both the calling process and the child "
1927 "are schedulable after the call, and an application should not rely on "
1928 "execution occurring in any particular order."
1929 msgstr ""
1930 "B<CLONE_VFORK> が設定されていない場合、 B<clone>()  呼び出し後は、呼び出し元"
1931 "のプロセスと子プロセスの 両方がスケジュール対象となり、アプリケーションはこれ"
1932 "らのプロセスの 実行順序に依存しないようにすべきである。"
1933
1934 #. type: TP
1935 #: build/C/man2/clone.2:766
1936 #, no-wrap
1937 msgid "B<CLONE_VM> (since Linux 2.0)"
1938 msgstr "B<CLONE_VM> (Linux 2.0 以降)"
1939
1940 #. type: Plain text
1941 #: build/C/man2/clone.2:779
1942 msgid ""
1943 "If B<CLONE_VM> is set, the calling process and the child process run in the "
1944 "same memory space.  In particular, memory writes performed by the calling "
1945 "process or by the child process are also visible in the other process.  "
1946 "Moreover, any memory mapping or unmapping performed with B<mmap>(2)  or "
1947 "B<munmap>(2)  by the child or calling process also affects the other process."
1948 msgstr ""
1949 "B<CLONE_VM> が設定された場合、呼び出し元のプロセスと子プロセスは同じメモリ空"
1950 "間で 実行される。特に、呼び出し元のプロセスや子プロセスの一方がメモリに 書き"
1951 "込んだ内容はもう一方のプロセスからも見ることができる。さらに、 子プロセスや呼"
1952 "び出し元のプロセスの一方が B<mmap>(2)  や B<munmap>(2)  を使ってメモリをマッ"
1953 "プしたりアンマップした場合、 もう一方のプロセスにも影響が及ぶ。"
1954
1955 #. type: Plain text
1956 #: build/C/man2/clone.2:788
1957 msgid ""
1958 "If B<CLONE_VM> is not set, the child process runs in a separate copy of the "
1959 "memory space of the calling process at the time of B<clone>().  Memory "
1960 "writes or file mappings/unmappings performed by one of the processes do not "
1961 "affect the other, as with B<fork>(2)."
1962 msgstr ""
1963 "B<CLONE_VM> が設定されていない場合、子プロセスは B<clone>()  が実行された時点"
1964 "での、親プロセスのメモリ空間をコピーした 別のメモリ空間で実行される。 一方の"
1965 "プロセスが行ったメモリへの書き込みや ファイルのマップ/アンマップは、 "
1966 "B<fork>(2)  の場合と同様、もう一方のプロセスには影響しない。"
1967
1968 #. type: SS
1969 #: build/C/man2/clone.2:788 build/C/man2/sched_setaffinity.2:212
1970 #, no-wrap
1971 msgid "C library/kernel ABI differences"
1972 msgstr "C ライブラリとカーネル ABI の違い"
1973
1974 #. type: Plain text
1975 #: build/C/man2/clone.2:804
1976 msgid ""
1977 "The raw B<clone>()  system call corresponds more closely to B<fork>(2)  in "
1978 "that execution in the child continues from the point of the call.  As such, "
1979 "the I<fn> and I<arg> arguments of the B<clone>()  wrapper function are "
1980 "omitted.  Furthermore, the argument order changes.  The raw system call "
1981 "interface on x86 and many other architectures is roughly:"
1982 msgstr ""
1983 "素の B<clone> システムコールは、より B<fork>(2) に近いかたちになっており、 子"
1984 "プロセスの実行が呼び出しが行われた場所から続けられる。 そのため、 B<clone>() "
1985 "ラッパー関数の引き数 I<fn> と I<arg> は省略される。 また、 引き数の順序も違っ"
1986 "ている。 x86 と他の多くのアーキテクチャにおける、 素のシステムコールのイン"
1987 "ターフェースは、 おおまかには次のようになっている。"
1988
1989 #. type: Plain text
1990 #: build/C/man2/clone.2:810
1991 #, no-wrap
1992 msgid ""
1993 "B<long clone(unsigned long >I<flags>B<, void *>I<child_stack>B<,>\n"
1994 "B<           void *>I<ptid>B<, void *>I<ctid>B<,>\n"
1995 "B<           struct pt_regs *>I<regs>B<);>\n"
1996 msgstr ""
1997 "B<long clone(unsigned long >I<flags>B<, void *>I<child_stack>B<,>\n"
1998 "B<           void *>I<ptid>B<, void *>I<ctid>B<,>\n"
1999 "B<           struct pt_regs *>I<regs>B<);>\n"
2000
2001 #. type: Plain text
2002 #: build/C/man2/clone.2:821
2003 msgid ""
2004 "Another difference for the raw system call is that the I<child_stack> "
2005 "argument may be zero, in which case copy-on-write semantics ensure that the "
2006 "child gets separate copies of stack pages when either process modifies the "
2007 "stack.  In this case, for correct operation, the B<CLONE_VM> option should "
2008 "not be specified."
2009 msgstr ""
2010 "生のシステムコールのもう一つの違いは、 I<child_stack> 引き数がゼロでも良いこ"
2011 "とである。この場合には、どちらかのプロセスが スタックを変更した時に、書き込み"
2012 "時コピー (copy-on-write) 方式により 子プロセスがスタックページの独立したコ"
2013 "ピーを得られることが保証される。 この場合、正常に動作させるためには、 "
2014 "B<CLONE_VM> オプションを指定してはならない。"
2015
2016 #. type: Plain text
2017 #: build/C/man2/clone.2:829
2018 msgid ""
2019 "For some architectures, the order of the arguments for the system call "
2020 "differs from that shown above.  On the score, microblaze, ARM, ARM 64, PA-"
2021 "RISC, arc, Power PC, xtensa, and MIPS architectures, the order of the fourth "
2022 "and fifth arguments is reversed.  On the cris and s390 architectures, the "
2023 "order of the first and second arguments is reversed."
2024 msgstr ""
2025 "いくつかのアーキテクチャでは、システムコールの引き数の順序は上記とは異なって"
2026 "いる。 microblaze, ARM, ARM 64, PA-RISC, arc, Power PC, xtensa, MIPS アーキテ"
2027 "クチャでは、 4 番目と 5 番目の引き数の順番が逆である。 cris と s390 アーキテ"
2028 "クチャでは、最初と 2 番目の引き数の順番が逆である。"
2029
2030 #. type: SS
2031 #: build/C/man2/clone.2:829
2032 #, no-wrap
2033 msgid "blackfin, m68k, and sparc"
2034 msgstr "blackfin, m68k, sparc"
2035
2036 #. type: Plain text
2037 #: build/C/man2/clone.2:833
2038 msgid ""
2039 "The argument-passing conventions on blackfin, m68k, and sparc are different "
2040 "from the descriptions above.  For details, see the kernel (and glibc) source."
2041 msgstr ""
2042 "blackfin, m68k, sparc では引き数渡しの規約が上記の説明とは異なる。 詳細は、"
2043 "カーネル (と glibc) のソースを参照のこと。"
2044
2045 #. type: SS
2046 #: build/C/man2/clone.2:833
2047 #, no-wrap
2048 msgid "ia64"
2049 msgstr "ia64"
2050
2051 #. type: Plain text
2052 #: build/C/man2/clone.2:835
2053 msgid "On ia64, a different interface is used:"
2054 msgstr "ia64 では、別のインターフェースが使用される:"
2055
2056 #. type: Plain text
2057 #: build/C/man2/clone.2:842
2058 #, no-wrap
2059 msgid ""
2060 "B<int __clone2(int (*>I<fn>B<)(void *), >\n"
2061 "B<             void *>I<child_stack_base>B<, size_t >I<stack_size>B<,>\n"
2062 "B<             int >I<flags>B<, void *>I<arg>B<, ... >\n"
2063 "B<          /* pid_t *>I<ptid>B<, struct user_desc *>I<tls>B<, pid_t *>I<ctid>B< */ );>\n"
2064 msgstr ""
2065 "B<int __clone2(int (*>I<fn>B<)(void *), >\n"
2066 "B<             void *>I<child_stack_base>B<, size_t >I<stack_size>B<,>\n"
2067 "B<             int >I<flags>B<, void *>I<arg>B<, ... >\n"
2068 "B<          /* pid_t *>I<ptid>B<, struct user_desc *>I<tls>B<, pid_t *>I<ctid>B< */ );>\n"
2069
2070 #. type: Plain text
2071 #: build/C/man2/clone.2:854
2072 msgid ""
2073 "The prototype shown above is for the glibc wrapper function; the raw system "
2074 "call interface has no I<fn> or I<arg> argument, and changes the order of the "
2075 "arguments so that I<flags> is the first argument, and I<tls> is the last "
2076 "argument."
2077 msgstr ""
2078 "上記のプロトタイプは glibc ラッパー関数用のものである。 素のシステムコールの"
2079 "インターフェースには引き数 I<fn> と I<arg> がない。 また、引き数の順序が変わ"
2080 "り、 I<flags> が最初の引き数で、 I<tls> が最後の引き数である。"
2081
2082 #. type: Plain text
2083 #: build/C/man2/clone.2:865
2084 msgid ""
2085 "B<__clone2>()  operates in the same way as B<clone>(), except that "
2086 "I<child_stack_base> points to the lowest address of the child's stack area, "
2087 "and I<stack_size> specifies the size of the stack pointed to by "
2088 "I<child_stack_base>."
2089 msgstr ""
2090 "B<__clone2>() は B<clone>() と同じように動作するが、以下の点が異なる: "
2091 "I<child_stack_base> は子プロセスのスタックエリアの最小のアドレスを指し、 "
2092 "I<stack_size> は I<child_stack_base> が指し示すスタックエリアの大きさを示す。"
2093
2094 #. type: SS
2095 #: build/C/man2/clone.2:865
2096 #, no-wrap
2097 msgid "Linux 2.4 and earlier"
2098 msgstr "Linux 2.4 以前"
2099
2100 #. type: Plain text
2101 #: build/C/man2/clone.2:873
2102 msgid ""
2103 "In Linux 2.4 and earlier, B<clone>()  does not take arguments I<ptid>, "
2104 "I<tls>, and I<ctid>."
2105 msgstr ""
2106 "Linux 2.4 以前では、 B<clone>()  は引き数 I<ptid>, I<tls>, I<ctid> を取らな"
2107 "い。"
2108
2109 #.  gettid(2) returns current->pid;
2110 #.  getpid(2) returns current->tgid;
2111 #. type: Plain text
2112 #: build/C/man2/clone.2:882
2113 msgid ""
2114 "On success, the thread ID of the child process is returned in the caller's "
2115 "thread of execution.  On failure, -1 is returned in the caller's context, no "
2116 "child process will be created, and I<errno> will be set appropriately."
2117 msgstr ""
2118 "成功した場合、呼び出し元の実行スレッドには子プロセスのスレッドID が返され"
2119 "る。 失敗した場合、 呼び出し元のコンテキストには -1 が返され、子プロセスは 作"
2120 "成されず、 I<errno> が適切に設定される。"
2121
2122 #. type: SH
2123 #: build/C/man2/clone.2:882 build/C/man2/kcmp.2:170
2124 #: build/C/man2/sched_get_priority_max.2:107 build/C/man3/sched_getcpu.3:65
2125 #: build/C/man2/sched_rr_get_interval.2:80
2126 #: build/C/man2/sched_setaffinity.2:116 build/C/man2/sched_setattr.2:271
2127 #: build/C/man2/sched_setparam.2:96 build/C/man2/sched_setscheduler.2:145
2128 #: build/C/man2/sched_yield.2:48 build/C/man2/setns.2:145
2129 #: build/C/man2/unshare.2:282
2130 #, no-wrap
2131 msgid "ERRORS"
2132 msgstr "エラー"
2133
2134 #. type: TP
2135 #: build/C/man2/clone.2:883
2136 #, no-wrap
2137 msgid "B<EAGAIN>"
2138 msgstr "B<EAGAIN>"
2139
2140 #. type: Plain text
2141 #: build/C/man2/clone.2:887
2142 msgid "Too many processes are already running; see B<fork>(2)."
2143 msgstr "すでに実行中のプロセスが多すぎる。 B<fork>(2) 参照。"
2144
2145 #. type: TP
2146 #: build/C/man2/clone.2:887 build/C/man2/clone.2:894 build/C/man2/clone.2:909
2147 #: build/C/man2/clone.2:926 build/C/man2/clone.2:934 build/C/man2/clone.2:946
2148 #: build/C/man2/clone.2:952 build/C/man2/clone.2:962 build/C/man2/clone.2:970
2149 #: build/C/man2/clone.2:978 build/C/man2/kcmp.2:181
2150 #: build/C/man2/sched_get_priority_max.2:108
2151 #: build/C/man2/sched_rr_get_interval.2:84
2152 #: build/C/man2/sched_setaffinity.2:120 build/C/man2/sched_setaffinity.2:128
2153 #: build/C/man2/sched_setattr.2:276 build/C/man2/sched_setattr.2:300
2154 #: build/C/man2/sched_setattr.2:323 build/C/man2/sched_setparam.2:97
2155 #: build/C/man2/sched_setparam.2:104 build/C/man2/sched_setscheduler.2:146
2156 #: build/C/man2/sched_setscheduler.2:153 build/C/man2/sched_setscheduler.2:158
2157 #: build/C/man2/setns.2:150 build/C/man2/setns.2:155 build/C/man2/setns.2:159
2158 #: build/C/man2/setns.2:164 build/C/man2/setns.2:168 build/C/man2/setns.2:175
2159 #: build/C/man2/unshare.2:283 build/C/man2/unshare.2:287
2160 #, no-wrap
2161 msgid "B<EINVAL>"
2162 msgstr "B<EINVAL>"
2163
2164 #. type: Plain text
2165 #: build/C/man2/clone.2:894
2166 msgid ""
2167 "B<CLONE_SIGHAND> was specified, but B<CLONE_VM> was not.  (Since Linux 2.6.0-"
2168 "test6.)"
2169 msgstr ""
2170 "B<CLONE_SIGHAND> が指定されていたが、 B<CLONE_VM> が指定されていなかった。 "
2171 "(Linux 2.6.0-test6 以降)"
2172
2173 #.  .TP
2174 #.  .B EINVAL
2175 #.  Precisely one of
2176 #.  .B CLONE_DETACHED
2177 #.  and
2178 #.  .B CLONE_THREAD
2179 #.  was specified.
2180 #.  (Since Linux 2.6.0-test6.)
2181 #. type: Plain text
2182 #: build/C/man2/clone.2:909
2183 msgid ""
2184 "B<CLONE_THREAD> was specified, but B<CLONE_SIGHAND> was not.  (Since Linux "
2185 "2.5.35.)"
2186 msgstr ""
2187 "B<CLONE_THREAD> が指定されていたが、 B<CLONE_SIGHAND> が指定されていなかっ"
2188 "た。 (Linux 2.5.35 以降)"
2189
2190 #.  commit e66eded8309ebf679d3d3c1f5820d1f2ca332c71
2191 #. type: Plain text
2192 #: build/C/man2/clone.2:918
2193 msgid "Both B<CLONE_FS> and B<CLONE_NEWNS> were specified in I<flags>."
2194 msgstr "B<CLONE_FS> と B<CLONE_NEWNS> の両方が I<flags> に指定された。"
2195
2196 #. type: TP
2197 #: build/C/man2/clone.2:918
2198 #, no-wrap
2199 msgid "B<EINVAL> (since Linux 3.9)"
2200 msgstr "B<EINVAL> (Linux 3.9 以降)"
2201
2202 #. type: Plain text
2203 #: build/C/man2/clone.2:926
2204 msgid "Both B<CLONE_NEWUSER> and B<CLONE_FS> were specified in I<flags>."
2205 msgstr "B<CLONE_NEWUSER> と B<CLONE_FS> の両方が I<flags> に指定された。"
2206
2207 #. type: Plain text
2208 #: build/C/man2/clone.2:934
2209 msgid "Both B<CLONE_NEWIPC> and B<CLONE_SYSVSEM> were specified in I<flags>."
2210 msgstr "B<CLONE_NEWIPC> と B<CLONE_SYSVSEM> の両方が I<flags> に指定された。"
2211
2212 #. type: Plain text
2213 #: build/C/man2/clone.2:946
2214 msgid ""
2215 "One (or both) of B<CLONE_NEWPID> or B<CLONE_NEWUSER> and one (or both) of "
2216 "B<CLONE_THREAD> or B<CLONE_PARENT> were specified in I<flags>."
2217 msgstr ""
2218 "B<CLONE_NEWPID> と B<CLONE_NEWUSER> の一方 (もしくは両方) と、 "
2219 "B<CLONE_THREAD> と B<CLONE_PARENT>  の一方 (もしくは両方) が、 I<flags> に指"
2220 "定された。"
2221
2222 #. type: Plain text
2223 #: build/C/man2/clone.2:952
2224 msgid ""
2225 "Returned by B<clone>()  when a zero value is specified for I<child_stack>."
2226 msgstr "I<child_stack> にゼロを指定した場合に B<clone>()  が返す。"
2227
2228 #. type: Plain text
2229 #: build/C/man2/clone.2:962
2230 msgid ""
2231 "B<CLONE_NEWIPC> was specified in I<flags>, but the kernel was not configured "
2232 "with the B<CONFIG_SYSVIPC> and B<CONFIG_IPC_NS> options."
2233 msgstr ""
2234 "I<flags> に B<CLONE_NEWIPC> が指定されたが、カーネルでオプション "
2235 "B<CONFIG_SYSVIPC> と B<CONFIG_IPC_NS> が有効になっていなかった。"
2236
2237 #. type: Plain text
2238 #: build/C/man2/clone.2:970
2239 msgid ""
2240 "B<CLONE_NEWNET> was specified in I<flags>, but the kernel was not configured "
2241 "with the B<CONFIG_NET_NS> option."
2242 msgstr ""
2243 "I<flags> に B<CLONE_NEWNET> が指定されたが、カーネルでオプション "
2244 "B<CONFIG_NET_NS> が有効になっていなかった。"
2245
2246 #. type: Plain text
2247 #: build/C/man2/clone.2:978
2248 msgid ""
2249 "B<CLONE_NEWPID> was specified in I<flags>, but the kernel was not configured "
2250 "with the B<CONFIG_PID_NS> option."
2251 msgstr ""
2252 "I<flags> に B<CLONE_NEWPID> が指定されたが、カーネルでオプション "
2253 "B<CONFIG_PID_NS> が有効になっていなかった。"
2254
2255 #. type: Plain text
2256 #: build/C/man2/clone.2:986
2257 msgid ""
2258 "B<CLONE_NEWUTS> was specified in I<flags>, but the kernel was not configured "
2259 "with the B<CONFIG_UTS> option."
2260 msgstr ""
2261 "I<flags> に B<CLONE_NEWUTS> が指定されたが、カーネルでオプション "
2262 "B<CONFIG_UTS> が有効になっていなかった。"
2263
2264 #. type: TP
2265 #: build/C/man2/clone.2:986 build/C/man2/setns.2:179
2266 #: build/C/man2/unshare.2:296
2267 #, no-wrap
2268 msgid "B<ENOMEM>"
2269 msgstr "B<ENOMEM>"
2270
2271 #. type: Plain text
2272 #: build/C/man2/clone.2:991
2273 msgid ""
2274 "Cannot allocate sufficient memory to allocate a task structure for the "
2275 "child, or to copy those parts of the caller's context that need to be copied."
2276 msgstr ""
2277 "子プロセスのために確保すべきタスク構造体や、呼び出し元のコンテキストの 一部を"
2278 "コピーするのに必要なメモリを十分に割り当てることができない。"
2279
2280 #. type: TP
2281 #: build/C/man2/clone.2:991 build/C/man2/clone.2:1000
2282 #: build/C/man2/clone.2:1004 build/C/man2/kcmp.2:185
2283 #: build/C/man2/sched_setaffinity.2:135 build/C/man2/sched_setattr.2:339
2284 #: build/C/man2/sched_setattr.2:342 build/C/man2/sched_setparam.2:109
2285 #: build/C/man2/sched_setscheduler.2:164 build/C/man2/setns.2:182
2286 #: build/C/man2/unshare.2:300 build/C/man2/unshare.2:303
2287 #, no-wrap
2288 msgid "B<EPERM>"
2289 msgstr "B<EPERM>"
2290
2291 #. type: Plain text
2292 #: build/C/man2/clone.2:1000
2293 msgid ""
2294 "B<CLONE_NEWIPC>, B<CLONE_NEWNET>, B<CLONE_NEWNS>, B<CLONE_NEWPID>, or "
2295 "B<CLONE_NEWUTS> was specified by an unprivileged process (process without "
2296 "B<CAP_SYS_ADMIN>)."
2297 msgstr ""
2298 "非特権プロセス (B<CAP_SYS_ADMIN> を持たないプロセス) が B<CLONE_NEWIPC>, "
2299 "B<CLONE_NEWNET>, B<CLONE_NEWNS>, B<CLONE_NEWPID>, B<CLONE_NEWUTS> を指定し"
2300 "た。"
2301
2302 #. type: Plain text
2303 #: build/C/man2/clone.2:1004
2304 msgid "B<CLONE_PID> was specified by a process other than process 0."
2305 msgstr "PID が 0 以外のプロセスによって B<CLONE_PID> が指定された。"
2306
2307 #. type: Plain text
2308 #: build/C/man2/clone.2:1012 build/C/man2/unshare.2:311
2309 msgid ""
2310 "B<CLONE_NEWUSER> was specified in I<flags>, but either the effective user ID "
2311 "or the effective group ID of the caller does not have a mapping in the "
2312 "parent namespace (see B<user_namespaces>(7))."
2313 msgstr ""
2314 "B<CLONE_NEWUSER> が I<flags> に指定されたが、 呼び出し元の実効ユーザー ID も"
2315 "しくは実効グループ ID が親名前空間にマッピングがない (B<user_namespaces>(7) "
2316 "参照)。"
2317
2318 #. type: TP
2319 #: build/C/man2/clone.2:1012 build/C/man2/unshare.2:311
2320 #, no-wrap
2321 msgid "B<EPERM> (since Linux 3.9)"
2322 msgstr "B<EPERM> (Linux 3.9 以降)"
2323
2324 #.  commit 3151527ee007b73a0ebd296010f1c0454a919c7d
2325 #.  FIXME What is the rationale for this restriction?
2326 #. type: Plain text
2327 #: build/C/man2/clone.2:1022 build/C/man2/unshare.2:321
2328 msgid ""
2329 "B<CLONE_NEWUSER> was specified in I<flags> and the caller is in a chroot "
2330 "environment (i.e., the caller's root directory does not match the root "
2331 "directory of the mount namespace in which it resides)."
2332 msgstr ""
2333 "B<CLONE_NEWUSER> が I<flags> に指定され、 呼び出し元が chroot された環境にい"
2334 "る (すなわち、呼び出し元の root ディレクトリが呼び出し元が属するマウント名前"
2335 "空間の root ディレクトリに一致しない)。"
2336
2337 #. type: TP
2338 #: build/C/man2/clone.2:1022 build/C/man2/unshare.2:321
2339 #, no-wrap
2340 msgid "B<EUSERS> (since Linux 3.11)"
2341 msgstr "B<EUSERS> (Linux 3.11 以降)"
2342
2343 #. type: Plain text
2344 #: build/C/man2/clone.2:1031 build/C/man2/unshare.2:330
2345 msgid ""
2346 "B<CLONE_NEWUSER> was specified in I<flags>, and the call would cause the "
2347 "limit on the number of nested user namespaces to be exceeded.  See "
2348 "B<user_namespaces>(7)."
2349 msgstr ""
2350 "B<CLONE_NEWUSER> が I<flags> に指定されており、 この呼び出しによりネストされ"
2351 "たユーザー名前空間数の上限を超えてしまう。 B<user_namespaces>(7) を参照。"
2352
2353 #. type: Plain text
2354 #: build/C/man2/clone.2:1038
2355 msgid ""
2356 "There is no entry for B<clone>()  in libc5.  glibc2 provides B<clone>()  as "
2357 "described in this manual page."
2358 msgstr ""
2359 "libc5 には B<clone>()  はない。glibc2 では B<clone>()  が提供されており、この"
2360 "マニュアルページに記載の通りである。"
2361
2362 #. type: Plain text
2363 #: build/C/man2/clone.2:1042
2364 msgid ""
2365 "B<clone>()  is Linux-specific and should not be used in programs intended to "
2366 "be portable."
2367 msgstr ""
2368 "B<clone>() は Linux 特有であり、移植を考慮したプログラムでは使用すべき ではな"
2369 "い。"
2370
2371 #. type: Plain text
2372 #: build/C/man2/clone.2:1052
2373 msgid ""
2374 "In the kernel 2.4.x series, B<CLONE_THREAD> generally does not make the "
2375 "parent of the new thread the same as the parent of the calling process.  "
2376 "However, for kernel versions 2.4.7 to 2.4.18 the B<CLONE_THREAD> flag "
2377 "implied the B<CLONE_PARENT> flag (as in kernel 2.6)."
2378 msgstr ""
2379 "カーネル 2.4.x 系列では、一般的には B<CLONE_THREAD> フラグを指定しても新しい"
2380 "スレッドの親を 呼び出し元プロセスの親と同じにはしない。 しかし、バージョン "
2381 "2.4.7〜2.4.18 のカーネルでは、 (カーネル 2.6 と同じように) CLONE_THREAD フラ"
2382 "グを指定すると、 暗黙のうちに CLONE_PARENT フラグを指定したことになる。"
2383
2384 #. type: Plain text
2385 #: build/C/man2/clone.2:1062
2386 msgid ""
2387 "For a while there was B<CLONE_DETACHED> (introduced in 2.5.32): parent wants "
2388 "no child-exit signal.  In 2.6.2 the need to give this together with "
2389 "B<CLONE_THREAD> disappeared.  This flag is still defined, but has no effect."
2390 msgstr ""
2391 "B<CLONE_DETACHED> というフラグが、2.5.32 で導入されて以来しばらくの間存在し"
2392 "た。 このフラグは親プロセスが子プロセス終了のシグナルを必要としないことを 表"
2393 "すものである。 2.6.2 で、 CLONE_DETATCHED を CLONE_THREAD と一緒に指定する必"
2394 "要はなくなった。 このフラグはまだ定義されているが、何の効果もない。"
2395
2396 #. type: Plain text
2397 #: build/C/man2/clone.2:1067
2398 msgid ""
2399 "On i386, B<clone>()  should not be called through vsyscall, but directly "
2400 "through I<int $0x80>."
2401 msgstr ""
2402 "i386 上では、 B<clone>()  は vsyscall 経由ではなく、直接 I<int $0x80> 経由で"
2403 "呼び出すべきである。"
2404
2405 #. type: Plain text
2406 #: build/C/man2/clone.2:1098
2407 msgid ""
2408 "Versions of the GNU C library that include the NPTL threading library "
2409 "contain a wrapper function for B<getpid>(2)  that performs caching of PIDs.  "
2410 "This caching relies on support in the glibc wrapper for B<clone>(), but as "
2411 "currently implemented, the cache may not be up to date in some "
2412 "circumstances.  In particular, if a signal is delivered to the child "
2413 "immediately after the B<clone>()  call, then a call to B<getpid>(2)  in a "
2414 "handler for the signal may return the PID of the calling process (\"the "
2415 "parent\"), if the clone wrapper has not yet had a chance to update the PID "
2416 "cache in the child.  (This discussion ignores the case where the child was "
2417 "created using B<CLONE_THREAD>, when B<getpid>(2)  I<should> return the same "
2418 "value in the child and in the process that called B<clone>(), since the "
2419 "caller and the child are in the same thread group.  The stale-cache problem "
2420 "also does not occur if the I<flags> argument includes B<CLONE_VM>.)  To get "
2421 "the truth, it may be necessary to use code such as the following:"
2422 msgstr ""
2423 "NPTL スレッドライブラリを含んでいる GNU C ライブラリのいくつかのバージョン に"
2424 "は、 B<getpid>(2)  のラッパー関数が含まれており、このラッパー関数は PID を"
2425 "キャッシュする。 このキャッシュ処理が正しく動作するためには glibc の "
2426 "B<clone>()  のラッパー関数での助けが必要だが、現状の実装では、 ある状況下にお"
2427 "いてキャッシュが最新とならない可能性がある。 特に、 B<clone>()  の呼び出し直"
2428 "後にシグナルが子プロセスに配送された場合に、 そのシグナルに対するハンドラ内"
2429 "で B<getpid>(2)  を呼び出すと、それまでに clone のラッパー関数が子プロセスの "
2430 "PID キャッシュを 更新する機会が得られていなければ、呼び出し元プロセス (\"親プ"
2431 "ロセス\") の PID が 返される可能性がある。 (この議論では、子プロセスが "
2432 "B<CLONE_THREAD> を使って作成された場合のことは無視している。 子プロセスが "
2433 "B<CLONE_THREAD> を作って作成された場合には、 呼び出し元と子プロセスは同じス"
2434 "レッドグループに属すので、 B<getpid>(2)  は子プロセスと B<clone>()  を呼び出"
2435 "したプロセスで同じ値を返すのが「正しい」。 キャッシュが最新とならない問題 "
2436 "(stale-cache problem) は、 I<flags> に B<CLONE_VM> が含まれている場合にも発生"
2437 "しない。)  本当の値を得るためには、次のようなコードを使う必要があるかもしれな"
2438 "い。"
2439
2440 #. type: Plain text
2441 #: build/C/man2/clone.2:1101
2442 #, no-wrap
2443 msgid "    #include E<lt>syscall.hE<gt>\n"
2444 msgstr "    #include E<lt>syscall.hE<gt>\n"
2445
2446 #. type: Plain text
2447 #: build/C/man2/clone.2:1103
2448 #, no-wrap
2449 msgid "    pid_t mypid;\n"
2450 msgstr "    pid_t mypid;\n"
2451
2452 #. type: Plain text
2453 #: build/C/man2/clone.2:1105
2454 #, no-wrap
2455 msgid "    mypid = syscall(SYS_getpid);\n"
2456 msgstr "    mypid = syscall(SYS_getpid);\n"
2457
2458 #. type: Plain text
2459 #: build/C/man2/clone.2:1119
2460 msgid ""
2461 "The following program demonstrates the use of B<clone>()  to create a child "
2462 "process that executes in a separate UTS namespace.  The child changes the "
2463 "hostname in its UTS namespace.  Both parent and child then display the "
2464 "system hostname, making it possible to see that the hostname differs in the "
2465 "UTS namespaces of the parent and child.  For an example of the use of this "
2466 "program, see B<setns>(2)."
2467 msgstr ""
2468 "以下のプログラムは、 別の UTS 名前空間で動作する子プロセスを B<clone>() を"
2469 "使って作成する例である。 子プロセスは、自分の UTS 名前空間においてホスト名を"
2470 "変更する。 それから、親プロセスと子プロセスの両方でシステムのホスト名を表示"
2471 "し、 親プロセスと子プロセスの UTS 名前空間でホスト名が異なることを確認する。 "
2472 "このプログラムの使用方法については B<setns>(2) を参照。"
2473
2474 #. type: SS
2475 #: build/C/man2/clone.2:1119 build/C/man2/setns.2:255
2476 #: build/C/man2/unshare.2:396
2477 #, no-wrap
2478 msgid "Program source"
2479 msgstr "プログラムのソース"
2480
2481 #. type: Plain text
2482 #: build/C/man2/clone.2:1129
2483 #, no-wrap
2484 msgid ""
2485 "#define _GNU_SOURCE\n"
2486 "#include E<lt>sys/wait.hE<gt>\n"
2487 "#include E<lt>sys/utsname.hE<gt>\n"
2488 "#include E<lt>sched.hE<gt>\n"
2489 "#include E<lt>string.hE<gt>\n"
2490 "#include E<lt>stdio.hE<gt>\n"
2491 "#include E<lt>stdlib.hE<gt>\n"
2492 "#include E<lt>unistd.hE<gt>\n"
2493 msgstr ""
2494 "#define _GNU_SOURCE\n"
2495 "#include E<lt>sys/wait.hE<gt>\n"
2496 "#include E<lt>sys/utsname.hE<gt>\n"
2497 "#include E<lt>sched.hE<gt>\n"
2498 "#include E<lt>string.hE<gt>\n"
2499 "#include E<lt>stdio.hE<gt>\n"
2500 "#include E<lt>stdlib.hE<gt>\n"
2501 "#include E<lt>unistd.hE<gt>\n"
2502
2503 #. type: Plain text
2504 #: build/C/man2/clone.2:1132 build/C/man2/setns.2:266
2505 #: build/C/man2/unshare.2:415
2506 #, no-wrap
2507 msgid ""
2508 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
2509 "                        } while (0)\n"
2510 msgstr ""
2511 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
2512 "                        } while (0)\n"
2513
2514 #. type: Plain text
2515 #: build/C/man2/clone.2:1137
2516 #, no-wrap
2517 msgid ""
2518 "static int              /* Start function for cloned child */\n"
2519 "childFunc(void *arg)\n"
2520 "{\n"
2521 "    struct utsname uts;\n"
2522 msgstr ""
2523 "static int              /* clone された子プロセスの開始関数 */\n"
2524 "childFunc(void *arg)\n"
2525 "{\n"
2526 "    struct utsname uts;\n"
2527
2528 #. type: Plain text
2529 #: build/C/man2/clone.2:1139
2530 #, no-wrap
2531 msgid "    /* Change hostname in UTS namespace of child */\n"
2532 msgstr "    /* 子プロセスの UTS 名前空間でホスト名を変更する */\n"
2533
2534 #. type: Plain text
2535 #: build/C/man2/clone.2:1142
2536 #, no-wrap
2537 msgid ""
2538 "    if (sethostname(arg, strlen(arg)) == -1)\n"
2539 "        errExit(\"sethostname\");\n"
2540 msgstr ""
2541 "    if (sethostname(arg, strlen(arg)) == -1)\n"
2542 "        errExit(\"sethostname\");\n"
2543
2544 #. type: Plain text
2545 #: build/C/man2/clone.2:1144
2546 #, no-wrap
2547 msgid "    /* Retrieve and display hostname */\n"
2548 msgstr "    /* ホスト名を取得し表示する */\n"
2549
2550 #. type: Plain text
2551 #: build/C/man2/clone.2:1148
2552 #, no-wrap
2553 msgid ""
2554 "    if (uname(&uts) == -1)\n"
2555 "        errExit(\"uname\");\n"
2556 "    printf(\"uts.nodename in child:  %s\\en\", uts.nodename);\n"
2557 msgstr ""
2558 "    if (uname(&uts) == -1)\n"
2559 "        errExit(\"uname\");\n"
2560 "    printf(\"uts.nodename in child:  %s\\en\", uts.nodename);\n"
2561
2562 #. type: Plain text
2563 #: build/C/man2/clone.2:1152
2564 #, no-wrap
2565 msgid ""
2566 "    /* Keep the namespace open for a while, by sleeping.\n"
2567 "       This allows some experimentation--for example, another\n"
2568 "       process might join the namespace. */\n"
2569 msgstr ""
2570 "    /* sleep を使ってしばらく名前空間をオープンされたままにする。\n"
2571 "       これにより実験を行うことができる -- 例えば、\n"
2572 "       別のプロセスがこの名前空間に参加するなど。 */\n"
2573
2574 #. type: Plain text
2575 #: build/C/man2/clone.2:1154
2576 #, no-wrap
2577 msgid "    sleep(200);\n"
2578 msgstr "    sleep(200);\n"
2579
2580 #. type: Plain text
2581 #: build/C/man2/clone.2:1157
2582 #, no-wrap
2583 msgid ""
2584 "    return 0;           /* Child terminates now */\n"
2585 "}\n"
2586 msgstr ""
2587 "    return 0;           /* 子プロセスを終了する */\n"
2588 "}\n"
2589
2590 #. type: Plain text
2591 #: build/C/man2/clone.2:1159
2592 #, no-wrap
2593 msgid "#define STACK_SIZE (1024 * 1024)    /* Stack size for cloned child */\n"
2594 msgstr "#define STACK_SIZE (1024 * 1024)    /* clone される子プロセスのスタックサイズ */\n"
2595
2596 #. type: Plain text
2597 #: build/C/man2/clone.2:1167
2598 #, no-wrap
2599 msgid ""
2600 "int\n"
2601 "main(int argc, char *argv[])\n"
2602 "{\n"
2603 "    char *stack;                    /* Start of stack buffer */\n"
2604 "    char *stackTop;                 /* End of stack buffer */\n"
2605 "    pid_t pid;\n"
2606 "    struct utsname uts;\n"
2607 msgstr ""
2608 "int\n"
2609 "main(int argc, char *argv[])\n"
2610 "{\n"
2611 "    char *stack;                    /* スタックバッファの先頭 */\n"
2612 "    char *stackTop;                 /* スタックバッファの末尾 */\n"
2613 "    pid_t pid;\n"
2614 "    struct utsname uts;\n"
2615
2616 #. type: Plain text
2617 #: build/C/man2/clone.2:1172
2618 #, no-wrap
2619 msgid ""
2620 "    if (argc E<lt> 2) {\n"
2621 "        fprintf(stderr, \"Usage: %s E<lt>child-hostnameE<gt>\\en\", argv[0]);\n"
2622 "        exit(EXIT_SUCCESS);\n"
2623 "    }\n"
2624 msgstr ""
2625 "    if (argc E<lt> 2) {\n"
2626 "        fprintf(stderr, \"Usage: %s E<lt>child-hostnameE<gt>\\en\", argv[0]);\n"
2627 "        exit(EXIT_SUCCESS);\n"
2628 "    }\n"
2629
2630 #. type: Plain text
2631 #: build/C/man2/clone.2:1174
2632 #, no-wrap
2633 msgid "    /* Allocate stack for child */\n"
2634 msgstr "    /* 子プロセス用のスタックを割り当てる */\n"
2635
2636 #. type: Plain text
2637 #: build/C/man2/clone.2:1179
2638 #, no-wrap
2639 msgid ""
2640 "    stack = malloc(STACK_SIZE);\n"
2641 "    if (stack == NULL)\n"
2642 "        errExit(\"malloc\");\n"
2643 "    stackTop = stack + STACK_SIZE;  /* Assume stack grows downward */\n"
2644 msgstr ""
2645 "    stack = malloc(STACK_SIZE);\n"
2646 "    if (stack == NULL)\n"
2647 "        errExit(\"malloc\");\n"
2648 "    stackTop = stack + STACK_SIZE;  /* スタックは下方向に伸びるものとする */\n"
2649
2650 #. type: Plain text
2651 #: build/C/man2/clone.2:1182
2652 #, no-wrap
2653 msgid ""
2654 "    /* Create child that has its own UTS namespace;\n"
2655 "       child commences execution in childFunc() */\n"
2656 msgstr ""
2657 "    /* 自分専用の UTS 名前空間を持つ子プロセスを作成する;\n"
2658 "       子プロセスは childFunc() の実行を開始する */\n"
2659
2660 #. type: Plain text
2661 #: build/C/man2/clone.2:1187
2662 #, no-wrap
2663 msgid ""
2664 "    pid = clone(childFunc, stackTop, CLONE_NEWUTS | SIGCHLD, argv[1]);\n"
2665 "    if (pid == -1)\n"
2666 "        errExit(\"clone\");\n"
2667 "    printf(\"clone() returned %ld\\en\", (long) pid);\n"
2668 msgstr ""
2669 "    pid = clone(childFunc, stackTop, CLONE_NEWUTS | SIGCHLD, argv[1]);\n"
2670 "    if (pid == -1)\n"
2671 "        errExit(\"clone\");\n"
2672 "    printf(\"clone() returned %ld\\en\", (long) pid);\n"
2673
2674 #. type: Plain text
2675 #: build/C/man2/clone.2:1189
2676 #, no-wrap
2677 msgid "    /* Parent falls through to here */\n"
2678 msgstr "    /* 親プロセスの実行はここに来る */\n"
2679
2680 #. type: Plain text
2681 #: build/C/man2/clone.2:1191
2682 #, no-wrap
2683 msgid "    sleep(1);           /* Give child time to change its hostname */\n"
2684 msgstr "    sleep(1);           /* 子プロセスがホスト名を変更する時間を与える */\n"
2685
2686 #. type: Plain text
2687 #: build/C/man2/clone.2:1194
2688 #, no-wrap
2689 msgid ""
2690 "    /* Display hostname in parent\\(aqs UTS namespace. This will be\n"
2691 "       different from hostname in child\\(aqs UTS namespace. */\n"
2692 msgstr ""
2693 "    /* 親プロセスの UTS 名前空間でのホスト名を表示する;\n"
2694 "       これは子プロセスの UTS 名前空間でのホスト名とは異なる */\n"
2695
2696 #. type: Plain text
2697 #: build/C/man2/clone.2:1198
2698 #, no-wrap
2699 msgid ""
2700 "    if (uname(&uts) == -1)\n"
2701 "        errExit(\"uname\");\n"
2702 "    printf(\"uts.nodename in parent: %s\\en\", uts.nodename);\n"
2703 msgstr ""
2704 "    if (uname(&uts) == -1)\n"
2705 "        errExit(\"uname\");\n"
2706 "    printf(\"uts.nodename in parent: %s\\en\", uts.nodename);\n"
2707
2708 #. type: Plain text
2709 #: build/C/man2/clone.2:1202
2710 #, no-wrap
2711 msgid ""
2712 "    if (waitpid(pid, NULL, 0) == -1)    /* Wait for child */\n"
2713 "        errExit(\"waitpid\");\n"
2714 "    printf(\"child has terminated\\en\");\n"
2715 msgstr ""
2716 "    if (waitpid(pid, NULL, 0) == -1)    /* 子プロセスを待つ */\n"
2717 "        errExit(\"waitpid\");\n"
2718 "    printf(\"child has terminated\\en\");\n"
2719
2720 #. type: Plain text
2721 #: build/C/man2/clone.2:1205
2722 #, no-wrap
2723 msgid ""
2724 "    exit(EXIT_SUCCESS);\n"
2725 "}\n"
2726 msgstr ""
2727 "    exit(EXIT_SUCCESS);\n"
2728 "}\n"
2729
2730 #. type: Plain text
2731 #: build/C/man2/clone.2:1220
2732 msgid ""
2733 "B<fork>(2), B<futex>(2), B<getpid>(2), B<gettid>(2), B<kcmp>(2), "
2734 "B<set_thread_area>(2), B<set_tid_address>(2), B<setns>(2), B<tkill>(2), "
2735 "B<unshare>(2), B<wait>(2), B<capabilities>(7), B<namespaces>(7), "
2736 "B<pthreads>(7)"
2737 msgstr ""
2738 "B<fork>(2), B<futex>(2), B<getpid>(2), B<gettid>(2), B<kcmp>(2), "
2739 "B<set_thread_area>(2), B<set_tid_address>(2), B<setns>(2), B<tkill>(2), "
2740 "B<unshare>(2), B<wait>(2), B<capabilities>(7), B<namespaces>(7), "
2741 "B<pthreads>(7)"
2742
2743 #. type: TH
2744 #: build/C/man2/kcmp.2:28
2745 #, no-wrap
2746 msgid "KCMP"
2747 msgstr "KCMP"
2748
2749 #. type: TH
2750 #: build/C/man2/kcmp.2:28
2751 #, no-wrap
2752 msgid "2013-12-08"
2753 msgstr "2013-12-08"
2754
2755 #. type: Plain text
2756 #: build/C/man2/kcmp.2:31
2757 msgid ""
2758 "kcmp - compare two processes to determine if they share a kernel resource"
2759 msgstr "kcmp - 二つのプロセスが同じカーネルリソースを共有しているかを比較する"
2760
2761 #. type: Plain text
2762 #: build/C/man2/kcmp.2:34
2763 #, no-wrap
2764 msgid "B<#include E<lt>linux/kcmp.hE<gt>>\n"
2765 msgstr "B<#include E<lt>linux/kcmp.hE<gt>>\n"
2766
2767 #. type: Plain text
2768 #: build/C/man2/kcmp.2:37
2769 #, no-wrap
2770 msgid ""
2771 "B<int kcmp(pid_t >I<pid1>B<, pid_t >I<pid2>B<, int >I<type>B<,>\n"
2772 "B<         unsigned long >I<idx1>B<, unsigned long >I<idx2>B<);>\n"
2773 msgstr ""
2774 "B<int kcmp(pid_t >I<pid1>B<, pid_t >I<pid2>B<, int >I<type>B<,>\n"
2775 "B<         unsigned long >I<idx1>B<, unsigned long >I<idx2>B<);>\n"
2776
2777 #. type: Plain text
2778 #: build/C/man2/kcmp.2:41
2779 msgid "I<Note>: There is no glibc wrapper for this system call; see NOTES."
2780 msgstr ""
2781 "I<注>: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節"
2782 "を参照。"
2783
2784 #. type: Plain text
2785 #: build/C/man2/kcmp.2:50
2786 msgid ""
2787 "The B<kcmp>()  system call can be used to check whether the two processes "
2788 "identified by I<pid1> and I<pid2> share a kernel resource such as virtual "
2789 "memory, file descriptors, and so on."
2790 msgstr ""
2791 "システムコール B<kcmp>() を使うと、 ID が I<pid1> と I<pid2> の二つのプロセス"
2792 "が、 仮想メモリやファイルディスクリプタなどの、 同じカーネルリソースを共有し"
2793 "ているかどうかを検査できる。"
2794
2795 #. type: Plain text
2796 #: build/C/man2/kcmp.2:55
2797 msgid ""
2798 "The I<type> argument specifies which resource is to be compared in the two "
2799 "processes.  It has one of the following values:"
2800 msgstr ""
2801 "I<type> 引き数は 2 つのプロセス間でどのリソースを比較するかを指定する。 以下"
2802 "のいずれかの値を指定する。"
2803
2804 #. type: TP
2805 #: build/C/man2/kcmp.2:55
2806 #, no-wrap
2807 msgid "B<KCMP_FILE>"
2808 msgstr "B<KCMP_FILE>"
2809
2810 #. type: Plain text
2811 #: build/C/man2/kcmp.2:67
2812 msgid ""
2813 "Check whether a file descriptor I<idx1> in the process I<pid1> refers to the "
2814 "same open file description (see B<open>(2))  as file descriptor I<idx2> in "
2815 "the process I<pid2>."
2816 msgstr ""
2817 "プロセス I<pid1> のファイルディスクリプタ I<idx1> が、 プロセス I<pid2> の"
2818 "ファイルディスクリプタ I<idx2> と同じオープンファイル記述 (open file "
2819 "description) を参照しているかを検査する。"
2820
2821 #. type: TP
2822 #: build/C/man2/kcmp.2:67
2823 #, no-wrap
2824 msgid "B<KCMP_FILES>"
2825 msgstr "B<KCMP_FILES>"
2826
2827 #. type: Plain text
2828 #: build/C/man2/kcmp.2:75
2829 msgid ""
2830 "Check whether the process share the same set of open file descriptors.  The "
2831 "arguments I<idx1> and I<idx2> are ignored."
2832 msgstr ""
2833 "二つのプロセスが同じオープンファイル記述の集合を共有しているかを検査する。 引"
2834 "き数 I<idx1> と I<idx2> は無視される。"
2835
2836 #. type: TP
2837 #: build/C/man2/kcmp.2:75
2838 #, no-wrap
2839 msgid "B<KCMP_FS>"
2840 msgstr "B<KCMP_FS>"
2841
2842 #. type: Plain text
2843 #: build/C/man2/kcmp.2:84
2844 msgid ""
2845 "Check whether the processes share the same filesystem information (i.e., "
2846 "file mode creation mask, working directory, and filesystem root).  The "
2847 "arguments I<idx1> and I<idx2> are ignored."
2848 msgstr ""
2849 "二つのプロセスが同じファイルシステム情報 (すなわち、ファイルのモード作成マス"
2850 "ク、作業ディレクトリ、ファイルシステムのルート) を共有しているかを検査する。 "
2851 "引き数 I<idx1> と I<idx2> は無視される。"
2852
2853 #. type: TP
2854 #: build/C/man2/kcmp.2:84
2855 #, no-wrap
2856 msgid "B<KCMP_IO>"
2857 msgstr "B<KCMP_IO>"
2858
2859 #. type: Plain text
2860 #: build/C/man2/kcmp.2:92
2861 msgid ""
2862 "Check whether the processes share I/O context.  The arguments I<idx1> and "
2863 "I<idx2> are ignored."
2864 msgstr ""
2865 "二つのプロセスが I/O コンテキストを共有しているかを検査する。 引き数 I<idx1> "
2866 "と I<idx2> は無視される。"
2867
2868 #. type: TP
2869 #: build/C/man2/kcmp.2:92
2870 #, no-wrap
2871 msgid "B<KCMP_SIGHAND>"
2872 msgstr "B<KCMP_SIGHAND>"
2873
2874 #. type: Plain text
2875 #: build/C/man2/kcmp.2:100
2876 msgid ""
2877 "Check whether the processes share the same table of signal dispositions.  "
2878 "The arguments I<idx1> and I<idx2> are ignored."
2879 msgstr ""
2880 "二つのプロセスがシグナル配送 (disposition) テーブルを共有しているかを検査す"
2881 "る。 引き数 I<idx1> と I<idx2> は無視される。"
2882
2883 #. type: TP
2884 #: build/C/man2/kcmp.2:100
2885 #, no-wrap
2886 msgid "B<KCMP_SYSVSEM>"
2887 msgstr "B<KCMP_SYSVSEM>"
2888
2889 #. type: Plain text
2890 #: build/C/man2/kcmp.2:109
2891 msgid ""
2892 "Check whether the processes share the same list of System\\ V semaphore undo "
2893 "operations.  The arguments I<idx1> and I<idx2> are ignored."
2894 msgstr ""
2895 "二つのプロセスが同じ System\\ V セマフォ undo 操作のリストを共有しているかを"
2896 "検査する。 引き数 I<idx1> と I<idx2> は無視される。"
2897
2898 #. type: TP
2899 #: build/C/man2/kcmp.2:109
2900 #, no-wrap
2901 msgid "B<KCMP_VM>"
2902 msgstr "B<KCMP_VM>"
2903
2904 #. type: Plain text
2905 #: build/C/man2/kcmp.2:117
2906 msgid ""
2907 "Check whether the processes share the same address space.  The arguments "
2908 "I<idx1> and I<idx2> are ignored."
2909 msgstr ""
2910 "二つのプロセスが同じアドレス空間を共有しているかを検査する。 引き数 I<idx1> "
2911 "と I<idx2> は無視される。"
2912
2913 #. type: Plain text
2914 #: build/C/man2/kcmp.2:127
2915 msgid ""
2916 "Note the B<kcmp>()  is not protected against false positives which may occur "
2917 "if tasks are running.  One should stop tasks by sending B<SIGSTOP> (see "
2918 "B<signal>(7))  prior to inspection with this system call to obtain "
2919 "meaningful results."
2920 msgstr ""
2921 "B<kcmp>() には、タスクが実行されている場合に起こり得る誤判定 (false "
2922 "positive) に関する保護はない。 ということは、 意味のある結果を得るためには、 "
2923 "このシステムコールで検査を行う前に、 B<SIGSTOP> を送信してタスクを停止すべき"
2924 "だということだ (B<signal>(7) 参照)。"
2925
2926 #. type: Plain text
2927 #: build/C/man2/kcmp.2:133
2928 msgid ""
2929 "The return value of a successful call to B<kcmp>()  is simply the result of "
2930 "arithmetic comparison of kernel pointers (when the kernel compares "
2931 "resources, it uses their memory addresses)."
2932 msgstr ""
2933 "B<kcmp>() の呼び出しが成功した場合の返り値は、単にカーネルポインタを数値で比"
2934 "較した結果となる (カーネルはリソースを比較する際、リソースのメモリアドレスを"
2935 "使用する)。"
2936
2937 #. type: Plain text
2938 #: build/C/man2/kcmp.2:141
2939 msgid ""
2940 "The easiest way to explain is to consider an example.  Suppose that I<v1> "
2941 "and I<v2> are the addresses of appropriate resources, then the return value "
2942 "is one of the following:"
2943 msgstr ""
2944 "これを説明するには、例を見るのが一番簡単である。 I<v1> と I<v2> を適切なリ"
2945 "ソースのアドレスとすると、 返り値は以下のいずれか一つとなる。"
2946
2947 #. type: IP
2948 #: build/C/man2/kcmp.2:142
2949 #, no-wrap
2950 msgid "0"
2951 msgstr "0"
2952
2953 #. type: Plain text
2954 #: build/C/man2/kcmp.2:147
2955 msgid ""
2956 "I<v1> is equal to I<v2>; in other words, the two processes share the "
2957 "resource."
2958 msgstr ""
2959 "I<v1> は I<v2> と等しい。言い換えれば、二つのプロセスはそのリソースを共有して"
2960 "いる。"
2961
2962 #. type: IP
2963 #: build/C/man2/kcmp.2:147
2964 #, no-wrap
2965 msgid "1"
2966 msgstr "1"
2967
2968 #. type: Plain text
2969 #: build/C/man2/kcmp.2:151
2970 msgid "I<v1> is less than I<v2>."
2971 msgstr "I<v1> は I<v2> より小さい。"
2972
2973 #. type: IP
2974 #: build/C/man2/kcmp.2:151
2975 #, no-wrap
2976 msgid "2"
2977 msgstr "2"
2978
2979 #. type: Plain text
2980 #: build/C/man2/kcmp.2:155
2981 msgid "I<v1> is greater than I<v2>."
2982 msgstr "I<v1> は I<v2> より大きい。"
2983
2984 #. type: IP
2985 #: build/C/man2/kcmp.2:155
2986 #, no-wrap
2987 msgid "3"
2988 msgstr "3"
2989
2990 #. type: Plain text
2991 #: build/C/man2/kcmp.2:160
2992 msgid "I<v1> is not equal to I<v2>, but ordering information is unavailable."
2993 msgstr "I<v1> は I<v2> と等しくないが、順序情報がない。"
2994
2995 #. type: Plain text
2996 #: build/C/man2/kcmp.2:165
2997 msgid "On error, -1 is returned, and I<errno> is set appropriately."
2998 msgstr "エラーの場合は -1 が返され、 I<errno> が適切に設定される。"
2999
3000 #. type: Plain text
3001 #: build/C/man2/kcmp.2:170
3002 msgid ""
3003 "B<kcmp>()  was designed to return values suitable for sorting.  This is "
3004 "particularly handy if one needs to compare a large number of file "
3005 "descriptors."
3006 msgstr ""
3007 "B<kcmp>() は、ソートに適した値を返すように設計された。 大量のファイルディスク"
3008 "リプタを比較する必要がある場合に、特に役に立つ。"
3009
3010 #. type: TP
3011 #: build/C/man2/kcmp.2:171 build/C/man2/setns.2:146
3012 #, no-wrap
3013 msgid "B<EBADF>"
3014 msgstr "B<EBADF>"
3015
3016 #. type: Plain text
3017 #: build/C/man2/kcmp.2:181
3018 msgid ""
3019 "I<type> is B<KCMP_FILE> and I<fd1> or I<fd2> is not an open file descriptor."
3020 msgstr ""
3021 "I<type> が B<KCMP_FILE> で、かつ I<fd1> か I<fd2> がオープンファイル記述でな"
3022 "い。"
3023
3024 #. type: Plain text
3025 #: build/C/man2/kcmp.2:185
3026 msgid "I<type> is invalid."
3027 msgstr "I<type> が無効である。"
3028
3029 #. type: Plain text
3030 #: build/C/man2/kcmp.2:191
3031 msgid ""
3032 "Insufficient permission to inspect process resources.  The B<CAP_SYS_PTRACE> "
3033 "capability is required to inspect processes that you do not own."
3034 msgstr ""
3035 "プロセスのリソースを検査するのに十分な許可がない。 自分が所有していないプロセ"
3036 "スを検査するためには B<CAP_SYS_PTRACE> ケーパビリティが必要である。"
3037
3038 #. type: TP
3039 #: build/C/man2/kcmp.2:191 build/C/man2/sched_rr_get_interval.2:90
3040 #: build/C/man2/sched_setaffinity.2:145 build/C/man2/sched_setattr.2:284
3041 #: build/C/man2/sched_setparam.2:116 build/C/man2/sched_setscheduler.2:167
3042 #, no-wrap
3043 msgid "B<ESRCH>"
3044 msgstr "B<ESRCH>"
3045
3046 #. type: Plain text
3047 #: build/C/man2/kcmp.2:198
3048 msgid "Process I<pid1> or I<pid2> does not exist."
3049 msgstr "プロセス I<pid1> か I<pid2> が存在しない。"
3050
3051 #. type: Plain text
3052 #: build/C/man2/kcmp.2:202
3053 msgid "The B<kcmp>()  system call first appeared in Linux 3.5."
3054 msgstr "B<kcmp>() システムコールは Linux 3.5 で初めて登場した。"
3055
3056 #. type: Plain text
3057 #: build/C/man2/kcmp.2:205
3058 msgid ""
3059 "B<kcmp>()  is Linux-specific and should not be used in programs intended to "
3060 "be portable."
3061 msgstr ""
3062 "B<kcmp>() は Linux 特有であり、 移植を考慮したプログラムでは使用すべきではな"
3063 "い。"
3064
3065 #. type: Plain text
3066 #: build/C/man2/kcmp.2:208
3067 msgid ""
3068 "Glibc does not provide a wrapper for this system call; call it using "
3069 "B<syscall>(2)."
3070 msgstr ""
3071 "glibc はこのシステムコールに対するラッパー関数を提供していない。 "
3072 "B<syscall>(2) を使って呼び出すこと。"
3073
3074 #. type: Plain text
3075 #: build/C/man2/kcmp.2:217
3076 msgid ""
3077 "This system call is available only if the kernel was configured with "
3078 "B<CONFIG_CHECKPOINT_RESTORE>.  The main use of the system call is for the "
3079 "checkpoint/restore in user space (CRIU) feature.  The alternative to this "
3080 "system call would have been to expose suitable process information via the "
3081 "B<proc>(5)  filesystem; this was deemed to be unsuitable for security "
3082 "reasons."
3083 msgstr ""
3084 "このシステムコールが利用できるのは、 カーネルの B<CONFIG_CHECKPOINT_RESTORE> "
3085 "オプションが有効になっている場合だけである。 このシステムコールの主な用途"
3086 "は、 ユーザ空間でのチェックポイント/リストア (checkpoint/restore in user "
3087 "space; CRIU) 機能である。 このシステムコールを使わないとすると、 B<proc>(5) "
3088 "ファイルシステム経由で必要なプロセス情報を公開することになるが、 これはセキュ"
3089 "リティ上の理由から不適切とみなされた。"
3090
3091 #. type: Plain text
3092 #: build/C/man2/kcmp.2:222
3093 msgid ""
3094 "See B<clone>(2)  for some background information on the shared resources "
3095 "referred to on this page."
3096 msgstr ""
3097 "このページで参照されている共有リソースに関する背景についての情報は "
3098 "B<clone>(2) を参照のこと。"
3099
3100 #. type: Plain text
3101 #: build/C/man2/kcmp.2:224
3102 msgid "B<clone>(2), B<unshare>(2)"
3103 msgstr "B<clone>(2), B<unshare>(2)"
3104
3105 #. type: TH
3106 #: build/C/man2/sched_get_priority_max.2:29
3107 #, no-wrap
3108 msgid "SCHED_GET_PRIORITY_MAX"
3109 msgstr "SCHED_GET_PRIORITY_MAX"
3110
3111 #. type: TH
3112 #: build/C/man2/sched_get_priority_max.2:29
3113 #, no-wrap
3114 msgid "2014-05-12"
3115 msgstr "2014-05-12"
3116
3117 #. type: Plain text
3118 #: build/C/man2/sched_get_priority_max.2:32
3119 msgid ""
3120 "sched_get_priority_max, sched_get_priority_min - get static priority range"
3121 msgstr ""
3122 "sched_get_priority_max, sched_get_priority_min - 静的プライオリティの範囲を取"
3123 "得する"
3124
3125 #. type: Plain text
3126 #: build/C/man2/sched_get_priority_max.2:34
3127 #: build/C/man2/sched_rr_get_interval.2:34 build/C/man2/sched_yield.2:34
3128 msgid "B<#include E<lt>sched.hE<gt>>"
3129 msgstr "B<#include E<lt>sched.hE<gt>>"
3130
3131 #. type: Plain text
3132 #: build/C/man2/sched_get_priority_max.2:36
3133 msgid "B<int sched_get_priority_max(int >I<policy>B<);>"
3134 msgstr "B<int sched_get_priority_max(int >I<policy>B<);>"
3135
3136 #. type: Plain text
3137 #: build/C/man2/sched_get_priority_max.2:38
3138 msgid "B<int sched_get_priority_min(int >I<policy>B<);>"
3139 msgstr "B<int sched_get_priority_min(int >I<policy>B<);>"
3140
3141 #. type: Plain text
3142 #: build/C/man2/sched_get_priority_max.2:59
3143 msgid ""
3144 "B<sched_get_priority_max>()  returns the maximum priority value that can be "
3145 "used with the scheduling algorithm identified by I<policy>.  "
3146 "B<sched_get_priority_min>()  returns the minimum priority value that can be "
3147 "used with the scheduling algorithm identified by I<policy>.  Supported "
3148 "I<policy> values are B<SCHED_FIFO>, B<SCHED_RR>, B<SCHED_OTHER>, "
3149 "B<SCHED_BATCH>, B<SCHED_IDLE>, and B<SCHED_DEADLINE>.  Further details about "
3150 "these policies can be found in B<sched>(7)."
3151 msgstr ""
3152 "B<sched_get_priority_max>()  はI<policy> によって指定されたスケジューリングの"
3153 "アルゴリズムで 使用されるプライオリティの最大値を返す。 "
3154 "B<sched_get_priority_min>()  はI<policy> によって指定されたスケジューリングの"
3155 "アルゴリズムで 使用されるプライオリティの最小値を返す。 サポートされる "
3156 "I<policy> の値は B<SCHED_FIFO>、 B<SCHED_RR>、 B<SCHED_OTHER>、 "
3157 "B<SCHED_BATCH>, B<SCHED_IDLE>, B<SCHED_DEADLINE> である。これらのスケジューリ"
3158 "ング方針に関する詳細は B<sched>(7)  に書かれている。"
3159
3160 #. type: Plain text
3161 #: build/C/man2/sched_get_priority_max.2:68
3162 msgid ""
3163 "Processes with numerically higher priority values are scheduled before "
3164 "processes with numerically lower priority values.  Thus, the value returned "
3165 "by B<sched_get_priority_max>()  will be greater than the value returned by "
3166 "B<sched_get_priority_min>()."
3167 msgstr ""
3168 "数値的に大きなプライオリティ値を持つプロセスは小さな プライオリティ値を持つプ"
3169 "ロセスより前にスケジュールされる。 このため B<sched_get_priority_max>()  が返"
3170 "す値は B<sched_get_priority_min>()  が返す値よりも大きい。"
3171
3172 #. type: Plain text
3173 #: build/C/man2/sched_get_priority_max.2:76
3174 msgid ""
3175 "Linux allows the static priority range 1 to 99 for the B<SCHED_FIFO> and "
3176 "B<SCHED_RR> policies, and the priority 0 for the remaining policies.  "
3177 "Scheduling priority ranges for the various policies are not alterable."
3178 msgstr ""
3179 "Linux では、 ポリシー B<SCHED_FIFO> と B<SCHED_RR> では 1 から 99 の範囲の静"
3180 "的プライオリティーを持ち、それ以外のポリシーでは プライオリティとして 0 を持"
3181 "つ。 それぞれの方針のスケジューリングプライオリティの範囲は 変更することがで"
3182 "きない。"
3183
3184 #. type: Plain text
3185 #: build/C/man2/sched_get_priority_max.2:88
3186 msgid ""
3187 "The range of scheduling priorities may vary on other POSIX systems, thus it "
3188 "is a good idea for portable applications to use a virtual priority range and "
3189 "map it to the interval given by B<sched_get_priority_max>()  and "
3190 "B<sched_get_priority_min>().  POSIX.1-2001 requires a spread of at least 32 "
3191 "between the maximum and the minimum values for B<SCHED_FIFO> and B<SCHED_RR>."
3192 msgstr ""
3193 "スケジューリングプライオリティの範囲は他の POSIX システムと 異なっているかも"
3194 "しれない。それで、移植性(portable)のある アプリケーションでは仮想的な範囲を用"
3195 "い B<sched_get_priority_max>()  と B<sched_get_priority_min>()  で与えられた"
3196 "間隔にマップして使用することはいい考えである。 POSIX.1-2001 では "
3197 "B<SCHED_FIFO> と B<SCHED_RR> における 最大値と最小値の間隔を少なくとも 32 に"
3198 "することを要求している。"
3199
3200 #. type: Plain text
3201 #: build/C/man2/sched_get_priority_max.2:97
3202 msgid ""
3203 "POSIX systems on which B<sched_get_priority_max>()  and "
3204 "B<sched_get_priority_min>()  are available define "
3205 "B<_POSIX_PRIORITY_SCHEDULING> in I<E<lt>unistd.hE<gt>>."
3206 msgstr ""
3207 "POSIX システムでは B<sched_get_priority_max>()  と "
3208 "B<sched_get_priority_min>()  は I<E<lt>unistd.hE<gt>> に "
3209 "B<_POSIX_PRIORITY_SCHEDULING> が定義されている場合にのみ使用可能である。"
3210
3211 #. type: Plain text
3212 #: build/C/man2/sched_get_priority_max.2:107
3213 msgid ""
3214 "On success, B<sched_get_priority_max>()  and B<sched_get_priority_min>()  "
3215 "return the maximum/minimum priority value for the named scheduling policy.  "
3216 "On error, -1 is returned, and I<errno> is set appropriately."
3217 msgstr ""
3218 "成功した場合は B<sched_get_priority_max>()  と B<sched_get_priority_min>()  "
3219 "は指定されたスケジューリング方針のプライオリティの最大値/最小値を返す。 エ"
3220 "ラーの場合は -1 が返され、 I<errno> が適切に設定される。"
3221
3222 #. type: Plain text
3223 #: build/C/man2/sched_get_priority_max.2:113
3224 msgid "The argument I<policy> does not identify a defined scheduling policy."
3225 msgstr "引き数 I<policy> が定義されているスケジューリング方針と一致しない。"
3226
3227 #. type: Plain text
3228 #: build/C/man2/sched_get_priority_max.2:115
3229 #: build/C/man2/sched_rr_get_interval.2:96 build/C/man2/sched_setparam.2:121
3230 #: build/C/man2/sched_yield.2:54
3231 msgid "POSIX.1-2001."
3232 msgstr "POSIX.1-2001."
3233
3234 #. type: Plain text
3235 #: build/C/man2/sched_get_priority_max.2:124
3236 msgid ""
3237 "B<sched_getaffinity>(2), B<sched_getparam>(2), B<sched_getscheduler>(2), "
3238 "B<sched_setaffinity>(2), B<sched_setparam>(2), B<sched_setscheduler>(2), "
3239 "B<sched>(7)"
3240 msgstr ""
3241 "B<sched_getaffinity>(2), B<sched_getparam>(2), B<sched_getscheduler>(2), "
3242 "B<sched_setaffinity>(2), B<sched_setparam>(2), B<sched_setscheduler>(2), "
3243 "B<sched>(7)"
3244
3245 #. type: TH
3246 #: build/C/man3/sched_getcpu.3:26
3247 #, no-wrap
3248 msgid "SCHED_GETCPU"
3249 msgstr "SCHED_GETCPU"
3250
3251 #. type: TH
3252 #: build/C/man3/sched_getcpu.3:26
3253 #, no-wrap
3254 msgid "2014-05-10"
3255 msgstr "2014-05-10"
3256
3257 #. type: Plain text
3258 #: build/C/man3/sched_getcpu.3:29
3259 msgid "sched_getcpu - determine CPU on which the calling thread is running"
3260 msgstr "sched_getcpu - 呼び出したスレッドが実行されている CPU を知る"
3261
3262 #. type: Plain text
3263 #: build/C/man3/sched_getcpu.3:34
3264 #, no-wrap
3265 msgid "B<int sched_getcpu(void);>\n"
3266 msgstr "B<int sched_getcpu(void);>\n"
3267
3268 #. type: Plain text
3269 #: build/C/man3/sched_getcpu.3:39 build/C/man2/unshare.2:33
3270 msgid ""
3271 "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
3272 msgstr "glibc 向けの機能検査マクロの要件 (B<feature_test_macros>(7)  参照):"
3273
3274 #. type: Plain text
3275 #: build/C/man3/sched_getcpu.3:42
3276 msgid "B<sched_getcpu>():"
3277 msgstr "B<sched_getcpu>():"
3278
3279 #. type: Plain text
3280 #: build/C/man3/sched_getcpu.3:58
3281 msgid ""
3282 "B<sched_getcpu>()  returns the number of the CPU on which the calling thread "
3283 "is currently executing."
3284 msgstr ""
3285 "B<sched_getcpu>()  は、呼び出したスレッドが現在実行されている CPU の番号を返"
3286 "す。"
3287
3288 #. type: Plain text
3289 #: build/C/man3/sched_getcpu.3:65
3290 msgid ""
3291 "On success, B<sched_getcpu>()  returns a nonnegative CPU number.  On error, "
3292 "-1 is returned and I<errno> is set to indicate the error."
3293 msgstr ""
3294 "成功すると、 B<sched_getcpu>()  は非負の CPU 番号を返す。 エラーの場合、-1 を"
3295 "返し、 I<errno> にエラーを示す値を設定する。"
3296
3297 #. type: TP
3298 #: build/C/man3/sched_getcpu.3:66 build/C/man2/sched_rr_get_interval.2:87
3299 #, no-wrap
3300 msgid "B<ENOSYS>"
3301 msgstr "B<ENOSYS>"
3302
3303 #. type: Plain text
3304 #: build/C/man3/sched_getcpu.3:70
3305 msgid "This kernel does not implement B<getcpu>(2)."
3306 msgstr "このカーネルでは B<getcpu>(2)  が実装されていない。"
3307
3308 #. type: Plain text
3309 #: build/C/man3/sched_getcpu.3:72
3310 msgid "This function is available since glibc 2.6."
3311 msgstr "この関数は glibc 2.6 以降で利用可能である。"
3312
3313 #. type: SH
3314 #: build/C/man3/sched_getcpu.3:72
3315 #, no-wrap
3316 msgid "ATTRIBUTES"
3317 msgstr "属性"
3318
3319 #. type: SS
3320 #: build/C/man3/sched_getcpu.3:73
3321 #, no-wrap
3322 msgid "Multithreading (see pthreads(7))"
3323 msgstr "マルチスレッディング (pthreads(7) 参照)"
3324
3325 #. type: Plain text
3326 #: build/C/man3/sched_getcpu.3:77
3327 msgid "The B<sched_getcpu>()  function is thread-safe."
3328 msgstr "B<sched_getcpu>() 関数はスレッドセーフである。"
3329
3330 #. type: Plain text
3331 #: build/C/man3/sched_getcpu.3:80
3332 msgid "B<sched_getcpu>()  is glibc-specific."
3333 msgstr "B<sched_getcpu>()  は glibc 固有である。"
3334
3335 #. type: Plain text
3336 #: build/C/man3/sched_getcpu.3:82
3337 msgid "The call"
3338 msgstr "呼び出し"
3339
3340 #. type: Plain text
3341 #: build/C/man3/sched_getcpu.3:86
3342 #, no-wrap
3343 msgid "cpu = sched_getcpu();\n"
3344 msgstr "cpu = sched_getcpu();\n"
3345
3346 #. type: Plain text
3347 #: build/C/man3/sched_getcpu.3:92
3348 msgid "is equivalent to the following B<getcpu>(2)  call:"
3349 msgstr "は、以下の B<getcpu>(2)  呼び出しと等価である。"
3350
3351 #. type: Plain text
3352 #: build/C/man3/sched_getcpu.3:98
3353 #, no-wrap
3354 msgid ""
3355 "int c, s;\n"
3356 "s = getcpu(&c, NULL, NULL);\n"
3357 "cpu = (s == -1) ? s : c;\n"
3358 msgstr ""
3359 "int c, s;\n"
3360 "s = getcpu(&c, NULL, NULL);\n"
3361 "cpu = (s == -1) ? s : c;\n"
3362
3363 #. type: Plain text
3364 #: build/C/man3/sched_getcpu.3:102
3365 msgid "B<getcpu>(2), B<sched>(7)"
3366 msgstr "B<getcpu>(2), B<sched>(7)"
3367
3368 #. type: TH
3369 #: build/C/man2/sched_rr_get_interval.2:29
3370 #, no-wrap
3371 msgid "SCHED_RR_GET_INTERVAL"
3372 msgstr "SCHED_RR_GET_INTERVAL"
3373
3374 #. type: TH
3375 #: build/C/man2/sched_rr_get_interval.2:29 build/C/man2/sched_yield.2:29
3376 #, no-wrap
3377 msgid "2014-04-28"
3378 msgstr "2014-04-28"
3379
3380 #. type: Plain text
3381 #: build/C/man2/sched_rr_get_interval.2:32
3382 msgid "sched_rr_get_interval - get the SCHED_RR interval for the named process"
3383 msgstr "sched_rr_get_interval - 指定されたプロセスの SCHED_RR 間隔を取得する"
3384
3385 #. type: Plain text
3386 #: build/C/man2/sched_rr_get_interval.2:36
3387 msgid ""
3388 "B<int sched_rr_get_interval(pid_t >I<pid>B<, struct timespec * >I<tp>B<);>"
3389 msgstr ""
3390 "B<int sched_rr_get_interval(pid_t >I<pid>B<, struct timespec *>I<tp>B<);>"
3391
3392 #. type: Plain text
3393 #: build/C/man2/sched_rr_get_interval.2:47
3394 msgid ""
3395 "B<sched_rr_get_interval>()  writes into the I<timespec> structure pointed to "
3396 "by I<tp> the round-robin time quantum for the process identified by I<pid>.  "
3397 "The specified process should be running under the B<SCHED_RR> scheduling "
3398 "policy."
3399 msgstr ""
3400 "B<sched_rr_get_interval>() は I<tp> で指定された I<timespec> 構造体に\n"
3401 "I<pid> で指定されたプロセスのラウンドロビン時間量 (round robin time\n"
3402 "quantum) を書き込む。指定されたプロセスは B<SCHED_RR> スケジューリング\n"
3403 "ポリシーで動作しているはずである。"
3404
3405 #. type: Plain text
3406 #: build/C/man2/sched_rr_get_interval.2:51
3407 msgid "The I<timespec> structure has the following form:"
3408 msgstr "I<timespec> 構造体は以下の通りである:"
3409
3410 #. type: Plain text
3411 #: build/C/man2/sched_rr_get_interval.2:58
3412 #, no-wrap
3413 msgid ""
3414 "struct timespec {\n"
3415 "    time_t tv_sec;    /* seconds */\n"
3416 "    long   tv_nsec;   /* nanoseconds */\n"
3417 "};\n"
3418 msgstr ""
3419 "struct timespec {\n"
3420 "    time_t tv_sec;    /* seconds */\n"
3421 "    long   tv_nsec;   /* nanoseconds */\n"
3422 "};\n"
3423
3424 #
3425 #.  FIXME . On Linux, sched_rr_get_interval()
3426 #.  returns the timeslice for SCHED_OTHER processes -- this timeslice
3427 #.  is influenced by the nice value.
3428 #.  For SCHED_FIFO processes, this always returns 0.
3429 #.  The round-robin time quantum value is not alterable under Linux
3430 #.  1.3.81.
3431 #. type: Plain text
3432 #: build/C/man2/sched_rr_get_interval.2:73
3433 msgid ""
3434 "If I<pid> is zero, the time quantum for the calling process is written into "
3435 "I<*tp>."
3436 msgstr ""
3437 "I<pid> が 0 の場合、呼び出したプロセスの時間量 (time quantum) が\n"
3438 "I<*tp> に書き込まれる。"
3439
3440 #. type: Plain text
3441 #: build/C/man2/sched_rr_get_interval.2:80
3442 msgid ""
3443 "On success, B<sched_rr_get_interval>()  returns 0.  On error, -1 is "
3444 "returned, and I<errno> is set appropriately."
3445 msgstr ""
3446 "成功した場合は B<sched_rr_get_interval>()  は 0 を返す。 エラーの場合は -1 が"
3447 "返され、 I<errno> が適切に設定される。"
3448
3449 #. type: TP
3450 #: build/C/man2/sched_rr_get_interval.2:81
3451 #: build/C/man2/sched_setaffinity.2:117
3452 #, no-wrap
3453 msgid "B<EFAULT>"
3454 msgstr "B<EFAULT>"
3455
3456 #. type: Plain text
3457 #: build/C/man2/sched_rr_get_interval.2:84
3458 msgid "Problem with copying information to user space."
3459 msgstr "情報をユーザ空間にコピーする時に問題が起きた。"
3460
3461 #. type: Plain text
3462 #: build/C/man2/sched_rr_get_interval.2:87
3463 msgid "Invalid pid."
3464 msgstr "PID が不正である。"
3465
3466 #. type: Plain text
3467 #: build/C/man2/sched_rr_get_interval.2:90
3468 msgid "The system call is not yet implemented (only on rather old kernels)."
3469 msgstr ""
3470 "システムコールがまだ実装されていない (かなり古いカーネルにおいてのみ)。"
3471
3472 #. type: Plain text
3473 #: build/C/man2/sched_rr_get_interval.2:94
3474 msgid "Could not find a process with the ID I<pid>."
3475 msgstr "プロセス ID が I<pid> のプロセスが見つからなかった。"
3476
3477 #. type: Plain text
3478 #: build/C/man2/sched_rr_get_interval.2:103
3479 msgid ""
3480 "POSIX systems on which B<sched_rr_get_interval>()  is available define "
3481 "B<_POSIX_PRIORITY_SCHEDULING> in I<E<lt>unistd.hE<gt>>."
3482 msgstr ""
3483 "POSIX システムで B<sched_rr_get_interval>() は I<E<lt>unistd.hE<gt>> に\n"
3484 "B<_POSIX_PRIORITY_SCHEDULING> が定義されている場合にのみ使用可能である。"
3485
3486 #. type: SS
3487 #: build/C/man2/sched_rr_get_interval.2:103
3488 #, no-wrap
3489 msgid "Linux notes"
3490 msgstr "Linux での注意"
3491
3492 #.  commit a4ec24b48ddef1e93f7578be53270f0b95ad666c
3493 #. type: Plain text
3494 #: build/C/man2/sched_rr_get_interval.2:117
3495 msgid ""
3496 "POSIX does not specify any mechanism for controlling the size of the round-"
3497 "robin time quantum.  Older Linux kernels provide a (nonportable) method of "
3498 "doing this.  The quantum can be controlled by adjusting the process's nice "
3499 "value (see B<setpriority>(2)).  Assigning a negative (i.e., high) nice value "
3500 "results in a longer quantum; assigning a positive (i.e., low) nice value "
3501 "results in a shorter quantum.  The default quantum is 0.1 seconds; the "
3502 "degree to which changing the nice value affects the quantum has varied "
3503 "somewhat across kernel versions.  This method of adjusting the quantum was "
3504 "removed starting with Linux 2.6.24."
3505 msgstr ""
3506 "POSIX ではラウンドロビン時間量の大きさを制御する仕組みが規定されていない。 古"
3507 "い Linux カーネルではこれを変更する方法が提供されている (この方法に移植性はな"
3508 "い)。 プロセスの nice 値を調整することで時間量を制御できる "
3509 "(B<setpriority>(2) 参照)。 負の nice 値 (すなわち、高い nice 値) を割り当てる"
3510 "と時間量は長くなり、 正の nice 値 (すなわち、低い nice 値) を割り当てると時間"
3511 "量は短くなる。 デフォルトの時間量は 0.1 秒である。 nice 値の変更が時間量にど"
3512 "の程度影響を与えるかは カーネルのバージョンにより多少異なる。時間量を調整する"
3513 "このメソッドは Linux 2.6.24 以降で削除された。"
3514
3515 #.  commit ce0dbbbb30aee6a835511d5be446462388ba9eee
3516 #.  .SH BUGS
3517 #.  As of Linux 1.3.81
3518 #.  .BR sched_rr_get_interval ()
3519 #.  returns with error
3520 #.  ENOSYS, because SCHED_RR has not yet been fully implemented and tested
3521 #.  properly.
3522 #. type: Plain text
3523 #: build/C/man2/sched_rr_get_interval.2:132
3524 msgid ""
3525 "Linux 3.9 added a new mechanism for adjusting (and viewing) the B<SCHED_RR> "
3526 "quantum: the I</proc/sys/kernel/sched_rr_timeslice_ms> file exposes the "
3527 "quantum as a millisecond value, whose default is 100.  Writing 0 to this "
3528 "file resets the quantum to the default value."
3529 msgstr ""
3530 "Linux 3.9 で、 B<SCHED_RR> の時間量の調整 (と参照) を行う新しい機構が追加され"
3531 "た。 I</proc/sys/kernel/sched_rr_timeslice_ms> ファイルでミリ秒単位の時間量の"
3532 "値が参照でき、 デフォルト値は 100 である。 このファイルに 0 を書き込むと、 時"
3533 "間量をデフォルト値に戻すことができる。"
3534
3535 #. type: Plain text
3536 #: build/C/man2/sched_rr_get_interval.2:133 build/C/man2/sched_yield.2:80
3537 msgid "B<sched>(7)"
3538 msgstr "B<sched>(7)"
3539
3540 #. type: TH
3541 #: build/C/man2/sched_setaffinity.2:34
3542 #, no-wrap
3543 msgid "SCHED_SETAFFINITY"
3544 msgstr "SCHED_SETAFFINITY"
3545
3546 #. type: TH
3547 #: build/C/man2/sched_setaffinity.2:34
3548 #, no-wrap
3549 msgid "2014-12-31"
3550 msgstr "2014-12-31"
3551
3552 #. type: Plain text
3553 #: build/C/man2/sched_setaffinity.2:38
3554 msgid ""
3555 "sched_setaffinity, sched_getaffinity - set and get a thread's CPU affinity "
3556 "mask"
3557 msgstr ""
3558 "sched_setaffinity, sched_getaffinity - スレッドの CPU affinity マスクを設定・"
3559 "取得する"
3560
3561 #. type: Plain text
3562 #: build/C/man2/sched_setaffinity.2:45
3563 #, no-wrap
3564 msgid ""
3565 "B<int sched_setaffinity(pid_t >I<pid>B<, size_t >I<cpusetsize>B<,>\n"
3566 "B<                      const cpu_set_t *>I<mask>B<);>\n"
3567 msgstr ""
3568 "B<int sched_setaffinity(pid_t >I<pid>B<, size_t >I<cpusetsize>B<,>\n"
3569 "B<                      const cpu_set_t *>I<mask>B<);>\n"
3570
3571 #. type: Plain text
3572 #: build/C/man2/sched_setaffinity.2:48
3573 #, no-wrap
3574 msgid ""
3575 "B<int sched_getaffinity(pid_t >I<pid>B<, size_t >I<cpusetsize>B<,>\n"
3576 "B<                      cpu_set_t *>I<mask>B<);>\n"
3577 msgstr ""
3578 "B<int sched_getaffinity(pid_t >I<pid>B<, size_t >I<cpusetsize>B<,>\n"
3579 "B<                      cpu_set_t *>I<mask>B<);>\n"
3580
3581 #. type: Plain text
3582 #: build/C/man2/sched_setaffinity.2:63
3583 msgid ""
3584 "A thread's CPU affinity mask determines the set of CPUs on which it is "
3585 "eligible to run.  On a multiprocessor system, setting the CPU affinity mask "
3586 "can be used to obtain performance benefits.  For example, by dedicating one "
3587 "CPU to a particular thread (i.e., setting the affinity mask of that thread "
3588 "to specify a single CPU, and setting the affinity mask of all other threads "
3589 "to exclude that CPU), it is possible to ensure maximum execution speed for "
3590 "that thread.  Restricting a thread to run on a single CPU also avoids the "
3591 "performance cost caused by the cache invalidation that occurs when a thread "
3592 "ceases to execute on one CPU and then recommences execution on a different "
3593 "CPU."
3594 msgstr ""
3595 "スレッドの CPU affinity (親和度) マスクは、そのスレッドが 実行を許可されてい"
3596 "る CPU の集合を決定する。 マルチプロセッサシステムでは、CPU affinity マスクを"
3597 "設定することで 性能上のメリットを得られる可能性がある。 例えば、特定のスレッ"
3598 "ドを一つの CPU に括り付け (すなわち、そのスレッドの affinity マスクを一つの "
3599 "CPU に設定し)、 他の全てのスレッドの affinity マスクからその CPU を除外するこ"
3600 "とで、 確実にそのスレッドの実行速度を最大にすることができる。 また、あるス"
3601 "レッドの実行を一つの CPU に限定することで、 一つの CPU での実行を停止してから"
3602 "別の CPU で実行を再開するときに発生する キャッシュ無効化 (cache "
3603 "invalidation) による性能面の劣化を避けることもできる。"
3604
3605 #. type: Plain text
3606 #: build/C/man2/sched_setaffinity.2:70
3607 msgid ""
3608 "A CPU affinity mask is represented by the I<cpu_set_t> structure, a \"CPU set"
3609 "\", pointed to by I<mask>.  A set of macros for manipulating CPU sets is "
3610 "described in B<CPU_SET>(3)."
3611 msgstr ""
3612 "CPU affinity マスクは「CPU の集合」を表す I<cpu_set_t> 構造体で表現され、 "
3613 "I<cpu_set_t> へのポインタ I<mask> で指定される。 CPU 集合を操作するためのマク"
3614 "ロ群については B<CPU_SET>(3)  で記載されている。"
3615
3616 #. type: Plain text
3617 #: build/C/man2/sched_setaffinity.2:85
3618 msgid ""
3619 "B<sched_setaffinity>()  sets the CPU affinity mask of the thread whose ID is "
3620 "I<pid> to the value specified by I<mask>.  If I<pid> is zero, then the "
3621 "calling thread is used.  The argument I<cpusetsize> is the length (in bytes) "
3622 "of the data pointed to by I<mask>.  Normally this argument would be "
3623 "specified as I<sizeof(cpu_set_t)>."
3624 msgstr ""
3625 "B<sched_setaffinity>()  は、スレッド ID が I<pid> のスレッドの CPU affinity "
3626 "マスクを I<mask> で指定された値に設定する。 I<pid> が 0 の場合、呼び出し元ス"
3627 "レッドが使われる。 I<cpusetsize> 引き数には I<mask> が指すデータの長さ (バイ"
3628 "ト単位) である。 通常は、この引き数には I<sizeof(cpu_set_t)> を指定すればよ"
3629 "い。"
3630
3631 #. type: Plain text
3632 #: build/C/man2/sched_setaffinity.2:92
3633 msgid ""
3634 "If the thread specified by I<pid> is not currently running on one of the "
3635 "CPUs specified in I<mask>, then that thread is migrated to one of the CPUs "
3636 "specified in I<mask>."
3637 msgstr ""
3638 "I<pid> で指定されたスレッドが I<mask> で指定された CPU のいずれかで現在実行さ"
3639 "れていない場合、 そのスレッドは I<mask> で指定された CPU のいずれかに移動され"
3640 "る。"
3641
3642 #. type: Plain text
3643 #: build/C/man2/sched_setaffinity.2:107
3644 msgid ""
3645 "B<sched_getaffinity>()  writes the affinity mask of the thread whose ID is "
3646 "I<pid> into the I<cpu_set_t> structure pointed to by I<mask>.  The "
3647 "I<cpusetsize> argument specifies the size (in bytes) of I<mask>.  If I<pid> "
3648 "is zero, then the mask of the calling thread is returned."
3649 msgstr ""
3650 "B<sched_getaffinity>()  は、 スレッド ID が I<pid> のスレッドの affinity マス"
3651 "クを I<mask> が指す I<cpu_set_t> 構造体に書き込む。 I<cpusetsize> 引き数には "
3652 "I<mask> の (バイト単位の) 大きさを指定する。"
3653
3654 #. type: Plain text
3655 #: build/C/man2/sched_setaffinity.2:116
3656 msgid ""
3657 "On success, B<sched_setaffinity>()  and B<sched_getaffinity>()  return 0.  "
3658 "On error, -1 is returned, and I<errno> is set appropriately."
3659 msgstr ""
3660 "成功した場合、 B<sched_setaffinity>()  と B<sched_getaffinity>()  は 0 を返"
3661 "す。 エラーの場合は -1 を返し、 I<errno> を適切に設定する。"
3662
3663 #. type: Plain text
3664 #: build/C/man2/sched_setaffinity.2:120
3665 msgid "A supplied memory address was invalid."
3666 msgstr "指定されたメモリ番地が不正である。"
3667
3668 #. type: Plain text
3669 #: build/C/man2/sched_setaffinity.2:128
3670 msgid ""
3671 "The affinity bit mask I<mask> contains no processors that are currently "
3672 "physically on the system and permitted to the thread according to any "
3673 "restrictions that may be imposed by the \"cpuset\" mechanism described in "
3674 "B<cpuset>(7)."
3675 msgstr ""
3676 "システム上に現在実際に存在し、かつ \"cpuset\" 機構が課す制限においてそのス"
3677 "レッドに対して許可されている プロセッサが、 affinity ビットマスク I<mask> に"
3678 "含まれていない。 \"cpuset\" 機構については B<cpuset>(7)  を参照。"
3679
3680 #. type: Plain text
3681 #: build/C/man2/sched_setaffinity.2:135
3682 msgid ""
3683 "(B<sched_getaffinity>()  and, in kernels before 2.6.9, "
3684 "B<sched_setaffinity>())  I<cpusetsize> is smaller than the size of the "
3685 "affinity mask used by the kernel."
3686 msgstr ""
3687 "(B<sched_getaffinity>()  と、カーネル 2.6.9 以前の B<sched_setaffinity>())  "
3688 "I<cpusetsize> がカーネルで使われている affinity マスクのサイズより小さい。"
3689
3690 #. type: Plain text
3691 #: build/C/man2/sched_setaffinity.2:145
3692 msgid ""
3693 "(B<sched_setaffinity>())  The calling thread does not have appropriate "
3694 "privileges.  The caller needs an effective user ID equal to the real user ID "
3695 "or effective user ID of the thread identified by I<pid>, or it must possess "
3696 "the B<CAP_SYS_NICE> capability."
3697 msgstr ""
3698 "(B<sched_setaffinity>())  呼び出し元のスレッドに適切な特権がなかった。 呼び出"
3699 "し元は、実効ユーザ ID が I<pid> で識別されるスレッドの実ユーザ ID または実効"
3700 "ユーザ ID と同じであるか、 B<CAP_SYS_NICE> ケーパビリティ (capability) を持た"
3701 "なければならない。"
3702
3703 #. type: Plain text
3704 #: build/C/man2/sched_setaffinity.2:148 build/C/man2/sched_setattr.2:289
3705 #: build/C/man2/sched_setscheduler.2:170
3706 msgid "The thread whose ID is I<pid> could not be found."
3707 msgstr "ID が I<pid> のスレッドが見つからなかった。"
3708
3709 #. type: Plain text
3710 #: build/C/man2/sched_setaffinity.2:159
3711 msgid ""
3712 "The CPU affinity system calls were introduced in Linux kernel 2.5.8.  The "
3713 "system call wrappers were introduced in glibc 2.3.  Initially, the glibc "
3714 "interfaces included a I<cpusetsize> argument, typed as I<unsigned int>.  In "
3715 "glibc 2.3.3, the I<cpusetsize> argument was removed, but was then restored "
3716 "in glibc 2.3.4, with type I<size_t>."
3717 msgstr ""
3718 "CPU affinity システムコールは Linux kernel 2.5.8 で導入された。 これらのシス"
3719 "テムコールのラッパー関数は glibc 2.3 で導入された。 最初は、glibc のインタ"
3720 "フェースには I<unsigned int> 型の I<cpusetsize> 引き数が入っていた。 glibc "
3721 "2.3.3 では I<cpusetsize> 引き数が削除されたが、glibc 2.3.4 で I<size_t> 型で"
3722 "復活した。"
3723
3724 #. type: Plain text
3725 #: build/C/man2/sched_setaffinity.2:161
3726 msgid "These system calls are Linux-specific."
3727 msgstr "これらのシステムコールは Linux 固有である。"
3728
3729 #. type: Plain text
3730 #: build/C/man2/sched_setaffinity.2:174
3731 msgid ""
3732 "After a call to B<sched_setaffinity>(), the set of CPUs on which the thread "
3733 "will actually run is the intersection of the set specified in the I<mask> "
3734 "argument and the set of CPUs actually present on the system.  The system may "
3735 "further restrict the set of CPUs on which the thread runs if the \"cpuset\" "
3736 "mechanism described in B<cpuset>(7)  is being used.  These restrictions on "
3737 "the actual set of CPUs on which the thread will run are silently imposed by "
3738 "the kernel."
3739 msgstr ""
3740 "B<sched_setaffinity>()  を呼び出した後は、スレッドが実際に実行される CPU の集"
3741 "合は、 I<mask> 引き数で指定された集合と、システム上に実際に存在する CPU の集"
3742 "合の 共通集合 (AND) となる。 \"cpuset\" 機構が使用されている場合には、スレッ"
3743 "ドが動作する CPU 集合 に対してシステムはさらに制限を加えるかもしれない "
3744 "(\"cpuset\" 機構については B<cpuset>(7)  を参照)。 スレッドが動作する実際の "
3745 "CPU 集合に対する制限はカーネルにより 暗黙のうちに適用される。"
3746
3747 #. type: Plain text
3748 #: build/C/man2/sched_setaffinity.2:186
3749 msgid ""
3750 "There are various ways of determining the number of CPUs available on the "
3751 "system, including: inspecting the contents of I</proc/cpuinfo>; using "
3752 "B<syconf>(3)  to obtain the values of the B<_SC_NPROCESSORS_CONF> and "
3753 "B<_SC_NPROCESSORS_ONLN> parameters; and inspecting the list CPU directories "
3754 "under I</sys/devices/system/cpu/>."
3755 msgstr ""
3756 "システムで利用可能な CPU 数を判定する方法はいくつかある。 I</proc/cpuinfo> の"
3757 "内容を調べる、 B<sysconf>(3) を使って B<_SC_NPROCESSORS_CONF> と "
3758 "B<_SC_NPROCESSORS_ONLN> の値を取得する、 I</sys/devices/system/cpu/> の CPU "
3759 "ディレクトリの一覧を調べる、などがある。"
3760
3761 #. type: Plain text
3762 #: build/C/man2/sched_setaffinity.2:189
3763 msgid "B<sched>(7)  has a description of the Linux scheduling scheme."
3764 msgstr "B<sched>(7) に Linux のスケジューリング方式についての説明がある。"
3765
3766 #. type: Plain text
3767 #: build/C/man2/sched_setaffinity.2:206
3768 msgid ""
3769 "The affinity mask is a per-thread attribute that can be adjusted "
3770 "independently for each of the threads in a thread group.  The value returned "
3771 "from a call to B<gettid>(2)  can be passed in the argument I<pid>.  "
3772 "Specifying I<pid> as 0 will set the attribute for the calling thread, and "
3773 "passing the value returned from a call to B<getpid>(2)  will set the "
3774 "attribute for the main thread of the thread group.  (If you are using the "
3775 "POSIX threads API, then use B<pthread_setaffinity_np>(3)  instead of "
3776 "B<sched_setaffinity>().)"
3777 msgstr ""
3778 "affinity マスクはスレッド単位の属性で、スレッドグループの 各スレッド単位に独"
3779 "立して調整することができる。 B<gettid>(2)  コールからの返り値をこのコールの "
3780 "I<pid> 引き数として渡すことができる。 I<pid> に 0 を指定すると呼び出し元のス"
3781 "レッドの属性が設定され、 B<getpid>(2)  コールからの返り値を I<pid> に指定する"
3782 "とスレッドグループのメインスレッドの属性が設定される (POSIX スレッド API を使"
3783 "用している場合、 B<sched_setaffinity>()  の代わりに "
3784 "B<pthread_setaffinity_np>(3)  を使用すること)。"
3785
3786 #. type: Plain text
3787 #: build/C/man2/sched_setaffinity.2:212
3788 msgid ""
3789 "A child created via B<fork>(2)  inherits its parent's CPU affinity mask.  "
3790 "The affinity mask is preserved across an B<execve>(2)."
3791 msgstr ""
3792 "B<fork>(2)  経由で生成された子プロセスは親プロセスの CPU affinity マスクを継"
3793 "承する。 affinity マスクは B<execve>(2)  の前後で保存される。"
3794
3795 #. type: Plain text
3796 #: build/C/man2/sched_setaffinity.2:226
3797 msgid ""
3798 "This manual page describes the glibc interface for the CPU affinity calls.  "
3799 "The actual system call interface is slightly different, with the I<mask> "
3800 "being typed as I<unsigned long\\ *>, reflecting the fact that the underlying "
3801 "implementation of CPU sets is a simple bit mask.  On success, the raw "
3802 "B<sched_getaffinity>()  system call returns the size (in bytes) of the "
3803 "I<cpumask_t> data type that is used internally by the kernel to represent "
3804 "the CPU set bit mask."
3805 msgstr ""
3806 "このマニュアルページでは CPU affinity コールの glibc インタフェースを 説明し"
3807 "ている。実際のシステムコールインタフェースは少し違っており、 実際の実装では "
3808 "CPU 集合は簡単なビットマスクであるという実状を反映し、 I<mask> の型が "
3809 "I<unsigned long\\ *> となっている。 成功時には、生の B<sched_getaffinity>()  "
3810 "システムコール自身は I<cpumask_t> データ型の (バイト単位の) 大きさを返す。 "
3811 "I<cpumask_t> はカーネル内部で CPU 集合のビットマスクを表現するのに 使われてい"
3812 "るデータ型である。"
3813
3814 #. type: Plain text
3815 #: build/C/man2/sched_setaffinity.2:247
3816 msgid ""
3817 "B<lscpu>(1), B<nproc>(1), B<taskset>(1), B<clone>(2), B<getcpu>(2), "
3818 "B<getpriority>(2), B<gettid>(2), B<nice>(2), B<sched_get_priority_max>(2), "
3819 "B<sched_get_priority_min>(2), B<sched_getscheduler>(2), "
3820 "B<sched_setscheduler>(2), B<setpriority>(2), B<CPU_SET>(3), "
3821 "B<pthread_setaffinity_np>(3), B<sched_getcpu>(3), B<capabilities>(7), "
3822 "B<cpuset>(7), B<sched>(7)"
3823 msgstr ""
3824 "B<lscpu>(1), B<nproc>(1), B<taskset>(1), B<clone>(2), B<getcpu>(2), "
3825 "B<getpriority>(2), B<gettid>(2), B<nice>(2), B<sched_get_priority_max>(2), "
3826 "B<sched_get_priority_min>(2), B<sched_getscheduler>(2), "
3827 "B<sched_setscheduler>(2), B<setpriority>(2), B<CPU_SET>(3), "
3828 "B<pthread_setaffinity_np>(3), B<sched_getcpu>(3), B<capabilities>(7), "
3829 "B<cpuset>(7), B<sched>(7)"
3830
3831 #. type: TH
3832 #: build/C/man2/sched_setattr.2:26
3833 #, no-wrap
3834 msgid "SCHED_SETATTR"
3835 msgstr "SCHED_SETATTR"
3836
3837 #. type: TH
3838 #: build/C/man2/sched_setattr.2:26 build/C/man2/sched_setscheduler.2:26
3839 #: build/C/man7/sched.7:32
3840 #, no-wrap
3841 msgid "2014-10-02"
3842 msgstr "2014-10-02"
3843
3844 #. type: Plain text
3845 #: build/C/man2/sched_setattr.2:30
3846 msgid ""
3847 "sched_setattr, sched_getattr - set and get scheduling policy and attributes"
3848 msgstr ""
3849 "sched_setattr, sched_getattr - スケジューリングポリシーと属性の設定と取得を行"
3850 "なう"
3851
3852 #. type: Plain text
3853 #: build/C/man2/sched_setattr.2:36
3854 #, no-wrap
3855 msgid ""
3856 "B<int sched_setattr(pid_t >I<pid>B<, const struct sched_attr *>I<attr>B<,>\n"
3857 "B<                  unsigned int >I<flags>B<);>\n"
3858 msgstr ""
3859 "B<int sched_setattr(pid_t >I<pid>B<, const struct sched_attr *>I<attr>B<,>\n"
3860 "B<                  unsigned int >I<flags>B<);>\n"
3861
3862 #. type: Plain text
3863 #: build/C/man2/sched_setattr.2:39
3864 #, no-wrap
3865 msgid ""
3866 "B<int sched_getattr(pid_t >I<pid>B<, const struct sched_attr *>I<attr>B<,>\n"
3867 "B<                  unsigned int >I<size>B<, unsigned int >I<flags>B<);>\n"
3868 msgstr ""
3869 "B<int sched_getattr(pid_t >I<pid>B<, const struct sched_attr *>I<attr>B<,>\n"
3870 "B<                  unsigned int >I<size>B<, unsigned int >I<flags>B<);>\n"
3871
3872 #. type: SS
3873 #: build/C/man2/sched_setattr.2:42
3874 #, no-wrap
3875 msgid "sched_setattr()"
3876 msgstr "sched_setattr()"
3877
3878 #. type: Plain text
3879 #: build/C/man2/sched_setattr.2:52
3880 msgid ""
3881 "The B<sched_setattr>()  system call sets the scheduling policy and "
3882 "associated attributes for the thread whose ID is specified in I<pid>.  If "
3883 "I<pid> equals zero, the scheduling policy and attributes of the calling "
3884 "thread will be set."
3885 msgstr ""
3886 "B<sched_setattr>() システムコールは、 I<pid> で指定された ID を持つスレッドの"
3887 "スケジューリングポリシーと関連する属性を設定する。 I<pid> が 0 の場合、呼び出"
3888 "したスレッド自身のスケジューリングポリシーと属性が設定される。"
3889
3890 #. type: Plain text
3891 #: build/C/man2/sched_setattr.2:56 build/C/man2/sched_setscheduler.2:73
3892 msgid ""
3893 "Currently, Linux supports the following \"normal\" (i.e., non-real-time) "
3894 "scheduling policies as values that may be specified in I<policy>:"
3895 msgstr ""
3896 "現在のところ、 Linux では、 以下の「通常」の (つまり、リアルタイムではない) "
3897 "スケジューリングポリシーが、 I<policy> に指定できる値としてサポートされてい"
3898 "る。"
3899
3900 #. type: TP
3901 #: build/C/man2/sched_setattr.2:56 build/C/man2/sched_setscheduler.2:73
3902 #, no-wrap
3903 msgid "B<SCHED_OTHER>"
3904 msgstr "B<SCHED_OTHER>"
3905
3906 #.  In the 2.6 kernel sources, SCHED_OTHER is actually called
3907 #.  SCHED_NORMAL.
3908 #. type: Plain text
3909 #: build/C/man2/sched_setattr.2:61 build/C/man2/sched_setscheduler.2:78
3910 msgid "the standard round-robin time-sharing policy;"
3911 msgstr "標準の、ラウンドロビンによる時分割型のスケジューリングポリシー。"
3912
3913 #. type: TP
3914 #: build/C/man2/sched_setattr.2:61 build/C/man2/sched_setscheduler.2:78
3915 #, no-wrap
3916 msgid "B<SCHED_BATCH>"
3917 msgstr "B<SCHED_BATCH>"
3918
3919 #. type: Plain text
3920 #: build/C/man2/sched_setattr.2:64 build/C/man2/sched_setscheduler.2:81
3921 msgid "for \"batch\" style execution of processes; and"
3922 msgstr "「バッチ」形式でのプロセスの実行用。"
3923
3924 #. type: TP
3925 #: build/C/man2/sched_setattr.2:64 build/C/man2/sched_setscheduler.2:81
3926 #, no-wrap
3927 msgid "B<SCHED_IDLE>"
3928 msgstr "B<SCHED_IDLE>"
3929
3930 #. type: Plain text
3931 #: build/C/man2/sched_setattr.2:69 build/C/man2/sched_setscheduler.2:86
3932 msgid "for running I<very> low priority background jobs."
3933 msgstr "「非常に」低い優先度で動作するバックグラウンドジョブ用。"
3934
3935 #. type: Plain text
3936 #: build/C/man2/sched_setattr.2:78 build/C/man2/sched_setscheduler.2:99
3937 msgid ""
3938 "Various \"real-time\" policies are also supported, for special time-critical "
3939 "applications that need precise control over the way in which runnable "
3940 "threads are selected for execution.  For the rules governing when a process "
3941 "may use these policies, see B<sched>(7).  The real-time policies that may be "
3942 "specified in I<policy> are:"
3943 msgstr ""
3944 "どの実行可能スレッドを選択するかについて、より正確な制御を必要とする 時間の制"
3945 "約が厳しい特別なアプリケーション用として、 いろいろな「リアルタイム」ポリシー"
3946 "もサポートされている。 プロセスがこれらのポリシーをいつ使用できるかを決める"
3947 "ルールについては、B<sched>(7) を参照。 I<policy> には以下のリアルタイムポリ"
3948 "シーを指定できる。"
3949
3950 #. type: TP
3951 #: build/C/man2/sched_setattr.2:78 build/C/man2/sched_setscheduler.2:99
3952 #, no-wrap
3953 msgid "B<SCHED_FIFO>"
3954 msgstr "B<SCHED_FIFO>"
3955
3956 #. type: Plain text
3957 #: build/C/man2/sched_setattr.2:81 build/C/man2/sched_setscheduler.2:102
3958 msgid "a first-in, first-out policy; and"
3959 msgstr "ファーストイン、ファーストアウト型のポリシー。"
3960
3961 #. type: TP
3962 #: build/C/man2/sched_setattr.2:81 build/C/man2/sched_setscheduler.2:102
3963 #, no-wrap
3964 msgid "B<SCHED_RR>"
3965 msgstr "B<SCHED_RR>"
3966
3967 #. type: Plain text
3968 #: build/C/man2/sched_setattr.2:84 build/C/man2/sched_setscheduler.2:105
3969 msgid "a round-robin policy."
3970 msgstr "ラウンドロビン型のポリシー。"
3971
3972 #. type: Plain text
3973 #: build/C/man2/sched_setattr.2:86
3974 msgid "Linux also provides the following policy:"
3975 msgstr "Linux では以下のポリシーも提供されている。"
3976
3977 #. type: TP
3978 #: build/C/man2/sched_setattr.2:86
3979 #, no-wrap
3980 msgid "B<SCHED_DEADLINE>"
3981 msgstr "B<SCHED_DEADLINE>"
3982
3983 #. type: Plain text
3984 #: build/C/man2/sched_setattr.2:91
3985 msgid "a deadline scheduling policy; see B<sched>(7)  for details."
3986 msgstr ""
3987 "デッドライン (応答期限) ベースのスケジューリングポリシー。詳細は B<sched>(7) "
3988 "を参照。"
3989
3990 #. type: Plain text
3991 #: build/C/man2/sched_setattr.2:97
3992 msgid ""
3993 "The I<attr> argument is a pointer to a structure that defines the new "
3994 "scheduling policy and attributes for the specified thread.  This structure "
3995 "has the following form:"
3996 msgstr ""
3997 "I<attr> 引き数は、 指定したスレッドの新しいスケジューリングポリシーと属性を定"
3998 "義した構造体へのポインターである。 この構造体は以下の形式である。"
3999
4000 #. type: Plain text
4001 #: build/C/man2/sched_setattr.2:113
4002 #, no-wrap
4003 msgid ""
4004 "struct sched_attr {\n"
4005 "    u32 size;              /* Size of this structure */\n"
4006 "    u32 sched_policy;      /* Policy (SCHED_*) */\n"
4007 "    u64 sched_flags;       /* Flags */\n"
4008 "    s32 sched_nice;        /* Nice value (SCHED_OTHER,\n"
4009 "                              SCHED_BATCH) */\n"
4010 "    u32 sched_priority;    /* Static priority (SCHED_FIFO,\n"
4011 "                              SCHED_RR) */\n"
4012 "    /* Remaining fields are for SCHED_DEADLINE */\n"
4013 "    u64 sched_runtime;\n"
4014 "    u64 sched_deadline;\n"
4015 "    u64 sched_period;\n"
4016 "};\n"
4017 msgstr ""
4018 "struct sched_attr {\n"
4019 "    u32 size;              /* この構造体のサイズ */\n"
4020 "    u32 sched_policy;      /* ポリシー (SCHED_*) */\n"
4021 "    u64 sched_flags;       /* フラグ */\n"
4022 "    s32 sched_nice;        /* nice 値 (SCHED_OTHER,\n"
4023 "                              SCHED_BATCH) */\n"
4024 "    u32 sched_priority;    /* 静的優先度 (SCHED_FIFO,\n"
4025 "                              SCHED_RR) */\n"
4026 "    /* 残りのフィールドは SCHED_DEADLINE 用である */\n"
4027 "    u64 sched_runtime;\n"
4028 "    u64 sched_deadline;\n"
4029 "    u64 sched_period;\n"
4030 "};\n"
4031
4032 #. type: Plain text
4033 #: build/C/man2/sched_setattr.2:117
4034 msgid "The fields of this structure are as follows:"
4035 msgstr "この構造体のフィールドは以下の通りである。"
4036
4037 #. type: TP
4038 #: build/C/man2/sched_setattr.2:117
4039 #, no-wrap
4040 msgid "B<size>"
4041 msgstr "B<size>"
4042
4043 #. type: Plain text
4044 #: build/C/man2/sched_setattr.2:132
4045 msgid ""
4046 "This field should be set to the size of the structure in bytes, as in "
4047 "I<sizeof(struct sched_attr)>.  If the provided structure is smaller than the "
4048 "kernel structure, any additional fields are assumed to be '0'.  If the "
4049 "provided structure is larger than the kernel structure, the kernel verifies "
4050 "that all additional fields are 0; if they are not, B<sched_setattr>()  fails "
4051 "with the error B<E2BIG> and updates I<size> to contain the size of the "
4052 "kernel structure."
4053 msgstr ""
4054 "このフィールドには、 構造体のバイト単位のサイズを設定する。 I<sizeof(struct "
4055 "sched_attr)> を指定すればよい。 指定された構造体がカーネル構造体よりも小さい"
4056 "場合、 追加となるフィールドは 0 とみなされる。 指定された構造体がカーネル構造"
4057 "体よりも大きい場合、 カーネルは追加のフィールドが 0 であるかを検査する。 0 で"
4058 "ない場合は B<sched_setattr>() はエラー B<E2BIG> で失敗するので、 I<size> を"
4059 "カーネル構造体のサイズに更新する必要がある。"
4060
4061 #. type: Plain text
4062 #: build/C/man2/sched_setattr.2:146
4063 msgid ""
4064 "The above behavior when the size of the user-space I<sched_attr> structure "
4065 "does not match the size of the kernel structure allows for future "
4066 "extensibility of the interface.  Malformed applications that pass oversize "
4067 "structures won't break in the future if the size of the kernel I<sched_attr> "
4068 "structure is increased.  In the future, it could also allow applications "
4069 "that know about a larger user-space I<sched_attr> structure to determine "
4070 "whether they are running on an older kernel that does not support the larger "
4071 "structure."
4072 msgstr ""
4073 "ユーザー空間の I<sched_attr> 構造体のサイズがカーネル構造体のサイズと一致しな"
4074 "かった場合の上記の動作は、 このインタフェースを将来拡張できるようにするためで"
4075 "ある。 サイズが大きい構造体を渡す行儀の良くないアプリケーションも、 将来カー"
4076 "ネルの I<sched_attr> 構造体のサイズが大きくなったとしてもおかしくならない。 "
4077 "この仕組みにより、 将来的には、 大きなユーザー空間 I<sched_attr> 構造体がある"
4078 "ことを知っているアプリケーションで、 大きいサイズの構造体に対応していない古い"
4079 "カーネル上で動作しているかを判定することができる。"
4080
4081 #. type: TP
4082 #: build/C/man2/sched_setattr.2:146
4083 #, no-wrap
4084 msgid "I<sched_policy>"
4085 msgstr "I<sched_policy>"
4086
4087 #. type: Plain text
4088 #: build/C/man2/sched_setattr.2:151
4089 msgid ""
4090 "This field specifies the scheduling policy, as one of the B<SCHED_*> values "
4091 "listed above."
4092 msgstr ""
4093 "このフィールドはスケジューリングポリシーを指定する。 上記のリストにある "
4094 "B<SCHED_*> 値のいずれかを指定する。"
4095
4096 #. type: TP
4097 #: build/C/man2/sched_setattr.2:151
4098 #, no-wrap
4099 msgid "I<sched_flags>"
4100 msgstr "I<sched_flags>"
4101
4102 #. type: Plain text
4103 #: build/C/man2/sched_setattr.2:162
4104 msgid ""
4105 "This field contains flags controlling scheduling behavior.  Only one such "
4106 "flag is currently defined: B<SCHED_FLAG_RESET_ON_FORK>.  As a result of "
4107 "including this flag, children created by B<fork>(2)  do not inherit "
4108 "privileged scheduling policies.  See B<sched>(7)  for details."
4109 msgstr ""
4110 "このフィールドはスケジューリング動作の制御を行う。 現在のところ、サポートされ"
4111 "ているフラグは B<SCHED_FLAG_RESET_ON_FORK> の一つだけである。 このフラグが指"
4112 "定されると、 B<fork>(2) で作成された子プロセスは特権が必要なスケジューリング"
4113 "ポリシーを継承しない。 詳細は B<sched>(7) を参照。"
4114
4115 #. type: TP
4116 #: build/C/man2/sched_setattr.2:162
4117 #, no-wrap
4118 msgid "I<sched_nice>"
4119 msgstr "I<sched_nice>"
4120
4121 #. type: Plain text
4122 #: build/C/man2/sched_setattr.2:173
4123 msgid ""
4124 "This field specifies the nice value to be set when specifying "
4125 "I<sched_policy> as B<SCHED_OTHER> or B<SCHED_BATCH>.  The nice value is a "
4126 "number in the range -20 (high priority)  to +19 (low priority); see "
4127 "B<setpriority>(2)."
4128 msgstr ""
4129 "このフィールドは、 I<sched_policy> に B<SCHED_OTHER> か B<SCHED_BATCH> が指定"
4130 "された場合に設定される nice 値を指定する。 nice 値は -20 (高優先度) から +19 "
4131 "(低優先度) の範囲の数値である。 B<setpriority>(2) を参照。"
4132
4133 #. type: TP
4134 #: build/C/man2/sched_setattr.2:173
4135 #, no-wrap
4136 msgid "I<sched_priority>"
4137 msgstr "I<sched_priority>"
4138
4139 #. type: Plain text
4140 #: build/C/man2/sched_setattr.2:186
4141 msgid ""
4142 "This field specifies the static priority to be set when specifying "
4143 "I<sched_policy> as B<SCHED_FIFO> or B<SCHED_RR>.  The allowed range of "
4144 "priorities for these policies can be determined using "
4145 "B<sched_get_priority_min>(2)  and B<sched_get_priority_max>(2).  For other "
4146 "policies, this field must be specified as 0."
4147 msgstr ""
4148 "このフィールドは、 I<sched_policy> に B<SCHED_FIFO> か B<SCHED_RR> が指定され"
4149 "た場合に設定される静的優先度を指定する。 これらのポリシーで指定できる優先度の"
4150 "範囲は、 B<sched_get_priority_min>(2) と B<sched_get_priority_max>(2) を使っ"
4151 "て判定できる。 他のポリシーでは、 このフィールドには 0 を指定しなければならな"
4152 "い。"
4153
4154 #. type: TP
4155 #: build/C/man2/sched_setattr.2:186
4156 #, no-wrap
4157 msgid "I<sched_runtime>"
4158 msgstr "I<sched_runtime>"
4159
4160 #. type: Plain text
4161 #: build/C/man2/sched_setattr.2:195
4162 msgid ""
4163 "This field specifies the \"Runtime\" parameter for deadline scheduling.  The "
4164 "value is expressed in nanoseconds.  This field, and the next two fields, are "
4165 "used only for B<SCHED_DEADLINE> scheduling; for further details, see "
4166 "B<sched>(7)."
4167 msgstr ""
4168 "このフィールドは、 デッドラインスケジューリングの \"Runtime\" パラメーターを"
4169 "指定する。 この値はナノ秒単位で表現される。 このフィールドと次の 2 つのフィー"
4170 "ルドは B<SCHED_DEADLINE> スケジューリングにおいてのみ使用される。 詳細は "
4171 "B<sched>(7) を参照。"
4172
4173 #. type: TP
4174 #: build/C/man2/sched_setattr.2:195
4175 #, no-wrap
4176 msgid "I<sched_deadline>"
4177 msgstr "I<sched_deadline>"
4178
4179 #. type: Plain text
4180 #: build/C/man2/sched_setattr.2:199
4181 msgid ""
4182 "This field specifies the \"Deadline\" parameter for deadline scheduling.  "
4183 "The value is expressed in nanoseconds."
4184 msgstr ""
4185 "このフィールドは、 デッドラインスケジューリングの \"Deadline\" パラメーターを"
4186 "指定する。 この値はナノ秒単位で表現される。"
4187
4188 #. type: TP
4189 #: build/C/man2/sched_setattr.2:199
4190 #, no-wrap
4191 msgid "I<sched_period>"
4192 msgstr "I<sched_period>"
4193
4194 #. type: Plain text
4195 #: build/C/man2/sched_setattr.2:203
4196 msgid ""
4197 "This field specifies the \"Period\" parameter for deadline scheduling.  The "
4198 "value is expressed in nanoseconds."
4199 msgstr ""
4200 "このフィールドは、 デッドラインスケジューリングの \"Period\" パラメーターを指"
4201 "定する。 この値はナノ秒単位で表現される。"
4202
4203 #. type: Plain text
4204 #: build/C/man2/sched_setattr.2:210 build/C/man2/sched_setattr.2:262
4205 msgid ""
4206 "The I<flags> argument is provided to allow for future extensions to the "
4207 "interface; in the current implementation it must be specified as 0."
4208 msgstr ""
4209 "I<flags> 引き数は、このインタフェースの将来の拡張のために用意されている。 現"
4210 "在の実装では 0 を指定しなければならない。"
4211
4212 #. type: SS
4213 #: build/C/man2/sched_setattr.2:210
4214 #, no-wrap
4215 msgid "sched_getattr()"
4216 msgstr "sched_getattr()"
4217
4218 #. type: Plain text
4219 #: build/C/man2/sched_setattr.2:221
4220 msgid ""
4221 "The B<sched_getattr>()  system call fetches the scheduling policy and the "
4222 "associated attributes for the thread whose ID is specified in I<pid>.  If "
4223 "I<pid> equals zero, the scheduling policy and attributes of the calling "
4224 "thread will be retrieved."
4225 msgstr ""
4226 "B<sched_getattr>() システムコールは、 I<pid> で指定された ID を持つスレッドの"
4227 "スケジューリングポリシーと関連する属性を取得する。 I<pid> が 0 の場合、呼び出"
4228 "したスレッド自身のスケジューリングポリシーと関連する属性を取得する。"
4229
4230 #. type: Plain text
4231 #: build/C/man2/sched_setattr.2:231
4232 msgid ""
4233 "The I<size> argument should be set to the size of the I<sched_attr> "
4234 "structure as known to user space.  The value must be at least as large as "
4235 "the size of the initially published I<sched_attr> structure, or the call "
4236 "fails with the error B<EINVAL>."
4237 msgstr ""
4238 "I<size> 引き数には、 ユーザー空間での I<sched_attr> 構造体の大きさを設定す"
4239 "る。 この値は、 少なくとも初期バージョンの I<sched_attr> 構造体のサイズでなけ"
4240 "ればならない。 そうでなかった場合、 エラー B<EINVAL> で呼び出しが失敗する。"
4241
4242 #. type: Plain text
4243 #: build/C/man2/sched_setattr.2:241
4244 msgid ""
4245 "The retrieved scheduling attributes are placed in the fields of the "
4246 "I<sched_attr> structure pointed to by I<attr>.  The kernel sets I<attr.size> "
4247 "to the size of its I<sched_attr> structure."
4248 msgstr ""
4249 "取得したスケジューリング属性は、 I<attr> が指す I<sched_attr> 構造体の各"
4250 "フィールドに格納される。 カーネルは I<attr.size> に I<sched_attr> 構造体のサ"
4251 "イズを設定する。"
4252
4253 #. type: Plain text
4254 #: build/C/man2/sched_setattr.2:257
4255 msgid ""
4256 "If the caller-provided I<attr> buffer is larger than the kernel's "
4257 "I<sched_attr> structure, the additional bytes in the user-space structure "
4258 "are not touched.  If the caller-provided structure is smaller than the "
4259 "kernel I<sched_attr> structure and the kernel needs to return values outside "
4260 "the provided space, B<sched_getattr>()  fails with the error B<E2BIG>.  As "
4261 "with B<sched_setattr>(), these semantics allow for future extensibility of "
4262 "the interface."
4263 msgstr ""
4264 "呼び出し側が提供した I<attr> バッファがカーネルの I<sched_attr> 構造体よりも"
4265 "大きい場合、 ユーザー空間構造体の残りのバイトは変更されない。 呼び出し側が提"
4266 "供した構造体がカーネルの I<sched_attr> 構造体よりも小さく、 カーネルが値を返"
4267 "すのにもっと大きな空間が必要な場合、 B<sched_getattr>() はエラー B<E2BIG> で"
4268 "失敗する。 B<sched_setattr>() と同様、 この動作はこのインタフェースの将来の拡"
4269 "張性を考慮してのものである。"
4270
4271 #. type: Plain text
4272 #: build/C/man2/sched_setattr.2:271
4273 msgid ""
4274 "On success, B<sched_setattr>()  and B<sched_getattr>()  return 0.  On error, "
4275 "-1 is returned, and I<errno> is set to indicate the cause of the error."
4276 msgstr ""
4277 "成功した場合は B<sched_setattr>()  と B<sched_getattr>()  は 0 を返す。 エ"
4278 "ラーの場合は -1 が返され、 エラーの原因を示す値が I<errno> に設定される。"
4279
4280 #. type: Plain text
4281 #: build/C/man2/sched_setattr.2:276
4282 msgid ""
4283 "B<sched_getattr>()  and B<sched_setattr>()  can both fail for the following "
4284 "reasons:"
4285 msgstr ""
4286 "B<sched_getattr>() と B<sched_setattr>() の両方が以下の理由で失敗する。"
4287
4288 #. type: Plain text
4289 #: build/C/man2/sched_setattr.2:284
4290 msgid "I<attr> is NULL; or I<pid> is negative; or I<flags> is not zero."
4291 msgstr ""
4292 "I<attr> が NULL である。 I<pid> が負である。 I<flags> が 0 以外である。"
4293
4294 #. type: Plain text
4295 #: build/C/man2/sched_setattr.2:293
4296 msgid "In addition, B<sched_getattr>()  can fail for the following reasons:"
4297 msgstr "さらに、 B<sched_getattr>() は以下の理由でも失敗する。"
4298
4299 #. type: TP
4300 #: build/C/man2/sched_setattr.2:293 build/C/man2/sched_setattr.2:310
4301 #, no-wrap
4302 msgid "B<E2BIG>"
4303 msgstr "B<E2BIG>"
4304
4305 #. type: Plain text
4306 #: build/C/man2/sched_setattr.2:300
4307 msgid "The buffer specified by I<size> and I<attr> is too small."
4308 msgstr "I<size> と I<attr> で指定されたバッファーが小さすぎる。"
4309
4310 #. type: Plain text
4311 #: build/C/man2/sched_setattr.2:306
4312 msgid ""
4313 "I<size> is invalid; that is, it is smaller than the initial version of the "
4314 "I<sched_attr> structure (48 bytes) or larger than the system page size."
4315 msgstr ""
4316 "I<size> が無効である。つまり、 最初のバージョンの I<sched_attr> 構造体 (48 バ"
4317 "イト) よりも小さいか、 システムのページサイズよりも大きい。"
4318
4319 #. type: Plain text
4320 #: build/C/man2/sched_setattr.2:310
4321 msgid "In addition, B<sched_setattr>()  can fail for the following reasons:"
4322 msgstr "さらに、 B<sched_setattr>() は以下の理由でも失敗する。"
4323
4324 #. type: Plain text
4325 #: build/C/man2/sched_setattr.2:318
4326 msgid ""
4327 "The buffer specified by I<size> and I<attr> is larger than the kernel "
4328 "structure, and one or more of the excess bytes is nonzero."
4329 msgstr ""
4330 "I<size> と I<attr> で指定されたバッファがカーネル構造体よりも大きく、 一つ以"
4331 "上の超過バイトが 0 でなかった。"
4332
4333 #. type: TP
4334 #: build/C/man2/sched_setattr.2:318
4335 #, no-wrap
4336 msgid "B<EBUSY>"
4337 msgstr "B<EBUSY>"
4338
4339 #. type: Plain text
4340 #: build/C/man2/sched_setattr.2:323
4341 msgid "B<SCHED_DEADLINE> admission control failure, see B<sched>(7)."
4342 msgstr "B<SCHED_DEADLINE> の流入制御の失敗については B<sched>(7) を参照。"
4343
4344 #. type: Plain text
4345 #: build/C/man2/sched_setattr.2:339
4346 msgid ""
4347 "I<attr.sched_policy> is not one of the recognized policies; I<attr."
4348 "sched_flags> contains a flag other than B<SCHED_FLAG_RESET_ON_FORK>; or "
4349 "I<attr.sched_priority> is invalid; or I<attr.sched_policy> is "
4350 "B<SCHED_DEADLINE> and the deadline scheduling parameters in I<attr> are "
4351 "invalid."
4352 msgstr ""
4353 "I<attr.sched_policy> が認識できるポリシーではない。 I<attr.sched_flags> に "
4354 "B<SCHED_FLAG_RESET_ON_FORK> 以外のフラグが含まれている。 I<attr."
4355 "sched_priority> が無効である。 I<attr.sched_policy> が B<SCHED_DEADLINE> "
4356 "で、 I<attr> に指定されたデッドラインスケジューリングパラメーターが無効であ"
4357 "る。"
4358
4359 #. type: Plain text
4360 #: build/C/man2/sched_setattr.2:342
4361 msgid "The caller does not have appropriate privileges."
4362 msgstr "呼び出した元が適切な特権を持っていない。"
4363
4364 #. type: Plain text
4365 #: build/C/man2/sched_setattr.2:348
4366 msgid ""
4367 "The caller's CPU affinity mask does not include all CPUs in the system (see "
4368 "B<sched_setaffinity>(2))."
4369 msgstr ""
4370 "呼び出し元の CPU affinity マスクにシステムの全ての CPU のうち含まれていないも"
4371 "のがある (B<sched_setaffinity>(2) を参照)。"
4372
4373 #.  FIXME . Add glibc version
4374 #. type: Plain text
4375 #: build/C/man2/sched_setattr.2:351
4376 msgid "These system calls first appeared in Linux 3.14."
4377 msgstr "これらのシステムコールは Linux 3.14 で初めて登場した。"
4378
4379 #. type: Plain text
4380 #: build/C/man2/sched_setattr.2:353
4381 msgid "These system calls are nonstandard Linux extensions."
4382 msgstr "これらのシステムコールは非標準の Linux による拡張である。"
4383
4384 #. type: Plain text
4385 #: build/C/man2/sched_setattr.2:369
4386 #, fuzzy
4387 #| msgid ""
4388 #| "B<sched_setattr>()  provides a superset of the functionality of "
4389 #| "B<sched_setscheduler>(2), B<sched_setparam>(2), B<nice>(2), and (other "
4390 #| "than the ability to set the priority of all processes belonging to a "
4391 #| "specified user or all processes in a specified group)  "
4392 #| "B<setpriority>(2).  Analogously, B<sched_getattr()> provides a superset "
4393 #| "of the functionality of B<sched_getscheduler>(2), B<sched_getparam>(2), "
4394 #| "and (partially)  B<getpriority>(2)."
4395 msgid ""
4396 "B<sched_setattr>()  provides a superset of the functionality of "
4397 "B<sched_setscheduler>(2), B<sched_setparam>(2), B<nice>(2), and (other than "
4398 "the ability to set the priority of all processes belonging to a specified "
4399 "user or all processes in a specified group)  B<setpriority>(2).  "
4400 "Analogously, B<sched_getattr>()  provides a superset of the functionality of "
4401 "B<sched_getscheduler>(2), B<sched_getparam>(2), and (partially)  "
4402 "B<getpriority>(2)."
4403 msgstr ""
4404 "B<sched_setattr>() は、B<sched_setscheduler>(2), B<sched_setparam>(2), "
4405 "B<nice>(2) の機能および B<setpriority> の一部機能を持つ (ただし、"
4406 "B<setpriority>(2) の、指定されたユーザーに所属するすべてのプロセスまたは指定"
4407 "されたグループのすべてのプロセスの優先度を設定する機能は除く)。 同様に、 "
4408 "B<sched_getattr()> は B<sched_getscheduler>(2), B<sched_getparam>(2) の機能お"
4409 "よび B<getpriority>(2) の一部機能を持つ。"
4410
4411 #.  FIXME . patch sent to Peter Zijlstra
4412 #.  In Linux versions up to up 3.15,
4413 #.  FIXME . patch from Peter Zijlstra pending
4414 #.  .BR sched_setattr ()
4415 #.  allowed a negative
4416 #.  .I attr.sched_policy
4417 #.  value.
4418 #. type: Plain text
4419 #: build/C/man2/sched_setattr.2:385
4420 msgid ""
4421 "In Linux versions up to 3.15, B<sched_settattr>()  failed with the error "
4422 "B<EFAULT> instead of B<E2BIG> for the case described in ERRORS."
4423 msgstr ""
4424 "バージョン 3.15 までの Linux では、 B<sched_settattr>() は、 エラーの節に書か"
4425 "れている B<E2BIG> の場合にエラーB<EFAULT> で失敗していた。"
4426
4427 #. type: Plain text
4428 #: build/C/man2/sched_setattr.2:407
4429 msgid ""
4430 "B<chrt>(1), B<nice>(2), B<sched_get_priority_max>(2), "
4431 "B<sched_get_priority_min>(2), B<sched_getaffinity>(2), "
4432 "B<sched_getscheduler>(2), B<sched_getparam>(2), B<sched_rr_get_interval>(2), "
4433 "B<sched_setaffinity>(2), B<sched_setscheduler>(2), B<sched_setparam>(2), "
4434 "B<sched_yield>(2), B<setpriority>(2), B<pthread_getschedparam>(3), "
4435 "B<pthread_setschedparam>(3), B<pthread_setschedprio>(3), B<capabilities>(7), "
4436 "B<cpuset>(7), B<sched>(7)"
4437 msgstr ""
4438 "B<chrt>(1), B<nice>(2), B<sched_get_priority_max>(2), "
4439 "B<sched_get_priority_min>(2), B<sched_getaffinity>(2), "
4440 "B<sched_getscheduler>(2), B<sched_getparam>(2), B<sched_rr_get_interval>(2), "
4441 "B<sched_setaffinity>(2), B<sched_setscheduler>(2), B<sched_setparam>(2), "
4442 "B<sched_yield>(2), B<setpriority>(2), B<pthread_getschedparam>(3), "
4443 "B<pthread_setschedparam>(3), B<pthread_setschedprio>(3), B<capabilities>(7), "
4444 "B<cpuset>(7), B<sched>(7)"
4445
4446 #. type: TH
4447 #: build/C/man2/sched_setparam.2:30
4448 #, no-wrap
4449 msgid "SCHED_SETPARAM"
4450 msgstr "SCHED_SETPARAM"
4451
4452 #. type: TH
4453 #: build/C/man2/sched_setparam.2:30
4454 #, no-wrap
4455 msgid "2014-05-11"
4456 msgstr "2014-05-11"
4457
4458 #. type: Plain text
4459 #: build/C/man2/sched_setparam.2:33
4460 msgid "sched_setparam, sched_getparam - set and get scheduling parameters"
4461 msgstr ""
4462 "sched_setparam, sched_getparam - スケジューリングパラメータの設定と取得を行な"
4463 "う"
4464
4465 #. type: Plain text
4466 #: build/C/man2/sched_setparam.2:38
4467 #, no-wrap
4468 msgid "B<int sched_setparam(pid_t >I<pid>B<, const struct sched_param *>I<param>B<);>\n"
4469 msgstr "B<int sched_setparam(pid_t >I<pid>B<, const struct sched_param *>I<param>B<);>\n"
4470
4471 #. type: Plain text
4472 #: build/C/man2/sched_setparam.2:40
4473 #, no-wrap
4474 msgid "B<int sched_getparam(pid_t >I<pid>B<, struct sched_param *>I<param>B<);>\n"
4475 msgstr "B<int sched_getparam(pid_t >I<pid>B<, struct sched_param *>I<param>B<);>\n"
4476
4477 #. type: Plain text
4478 #: build/C/man2/sched_setparam.2:46
4479 #, no-wrap
4480 msgid ""
4481 "B<struct sched_param {\n"
4482 "    ...\n"
4483 "    int >I<sched_priority>B<;\n"
4484 "    ...\n"
4485 "};>\n"
4486 msgstr ""
4487 "B<struct sched_param {\n"
4488 "    ...\n"
4489 "    int >I<sched_priority>B<;\n"
4490 "    ...\n"
4491 "};>\n"
4492
4493 #. type: Plain text
4494 #: build/C/man2/sched_setparam.2:60
4495 msgid ""
4496 "B<sched_setparam>()  sets the scheduling parameters associated with the "
4497 "scheduling policy for the process identified by I<pid>.  If I<pid> is zero, "
4498 "then the parameters of the calling process are set.  The interpretation of "
4499 "the argument I<param> depends on the scheduling policy of the process "
4500 "identified by I<pid>.  See B<sched>(7)  for a description of the scheduling "
4501 "policies supported under Linux."
4502 msgstr ""
4503 "B<sched_setparam>()  は I<pid> で指定されたプロセスのスケジューリング方針 "
4504 "(scheduling policy) に 関連するスケジューリングパラメータを設定する。 I<pid> "
4505 "が 0 ならば、呼び出し元のプロセスのパラメータが設定される。 引き数 I<param> "
4506 "の解釈は、 I<pid> で指定されたプロセスのスケジューリング方針によって異なる。 "
4507 "Linux でサポートされているスケジューリング方針の説明は B<sched>(7)  を参照の"
4508 "こと。"
4509
4510 #. type: Plain text
4511 #: build/C/man2/sched_setparam.2:66
4512 msgid ""
4513 "B<sched_getparam>()  retrieves the scheduling parameters for the process "
4514 "identified by I<pid>.  If I<pid> is zero, then the parameters of the calling "
4515 "process are retrieved."
4516 msgstr ""
4517 "B<sched_getparam>()  は I<pid> で指定されたプロセスのスケジューリングパラメー"
4518 "タを取得する。 I<pid> が 0 ならば、呼び出し元のプロセスのパラメータを取得す"
4519 "る。"
4520
4521 #. type: Plain text
4522 #: build/C/man2/sched_setparam.2:75
4523 msgid ""
4524 "B<sched_setparam>()  checks the validity of I<param> for the scheduling "
4525 "policy of the thread.  The value I<param-E<gt>sched_priority> must lie "
4526 "within the range given by B<sched_get_priority_min>(2)  and "
4527 "B<sched_get_priority_max>(2)."
4528 msgstr ""
4529 "B<sched_setparam>()  はスレッドのスケジューリング方針における I<param> の妥当"
4530 "性をチェックする。 I<param-E<gt>sched_priority> の値は "
4531 "B<sched_get_priority_min>(2)  と B<sched_get_priority_max>(2)  の範囲に入って"
4532 "いなければならない。"
4533
4534 #. type: Plain text
4535 #: build/C/man2/sched_setparam.2:79
4536 msgid ""
4537 "For a discussion of the privileges and resource limits related to scheduling "
4538 "priority and policy, see B<sched>(7)."
4539 msgstr ""
4540 "スケジューリングの優先度と方針に関連する特権とリソース制限の 議論に関しては "
4541 "B<sched>(7)  を参照のこと。"
4542
4543 #. type: Plain text
4544 #: build/C/man2/sched_setparam.2:87
4545 msgid ""
4546 "POSIX systems on which B<sched_setparam>()  and B<sched_getparam>()  are "
4547 "available define B<_POSIX_PRIORITY_SCHEDULING> in I<E<lt>unistd.hE<gt>>."
4548 msgstr ""
4549 "B<sched_setparam>()  と B<sched_getparam>()  が使用できる POSIX システムで"
4550 "は、 I<E<lt>unistd.hE<gt>> に B<_POSIX_PRIORITY_SCHEDULING> が定義されてい"
4551 "る。"
4552
4553 #. type: Plain text
4554 #: build/C/man2/sched_setparam.2:96
4555 msgid ""
4556 "On success, B<sched_setparam>()  and B<sched_getparam>()  return 0.  On "
4557 "error, -1 is returned, and I<errno> is set appropriately."
4558 msgstr ""
4559 "成功した場合は B<sched_setparam>()  と B<sched_getparam>()  は 0 を返す。 エ"
4560 "ラーの場合は -1 が返され、 I<errno> が適切に設定される。"
4561
4562 #. type: Plain text
4563 #: build/C/man2/sched_setparam.2:104
4564 msgid "Invalid arguments: I<param> is NULL or I<pid> is negative"
4565 msgstr "無効な引き数: I<param> が NULL である、または I<pid> が負である。"
4566
4567 #. type: Plain text
4568 #: build/C/man2/sched_setparam.2:109
4569 msgid ""
4570 "(B<sched_setparam>())  The argument I<param> does not make sense for the "
4571 "current scheduling policy."
4572 msgstr ""
4573 "(B<sched_setparam>()) 引き数 I<param> が現在のスケジューリング方針においては "
4574 "無意味である。"
4575
4576 #. type: Plain text
4577 #: build/C/man2/sched_setparam.2:116
4578 msgid ""
4579 "(B<sched_setparam>())  The calling process does not have appropriate "
4580 "privileges (Linux: does not have the B<CAP_SYS_NICE> capability)."
4581 msgstr ""
4582 "(B<sched_setparam>()) 呼び出し元のプロセスが適切な特権を持っていない (Linux "
4583 "では、 B<CAP_SYS_NICE> ケーパビリティを持っていない)。"
4584
4585 #. type: Plain text
4586 #: build/C/man2/sched_setparam.2:119
4587 msgid "The process whose ID is I<pid> could not be found."
4588 msgstr "プロセス ID I<pid> のプロセスが見つからなかった。"
4589
4590 #. type: Plain text
4591 #: build/C/man2/sched_setparam.2:127
4592 msgid ""
4593 "Scheduling parameters are in fact per-thread attributes on Linux; see "
4594 "B<sched>(7)."
4595 msgstr ""
4596 "Linux では、スケジューリングパラメータは実際にはスレッド単位の属性である。 "
4597 "B<sched>(7) 参照。"
4598
4599 #. type: Plain text
4600 #: build/C/man2/sched_setparam.2:141
4601 msgid ""
4602 "B<getpriority>(2), B<nice>(2), B<sched_get_priority_max>(2), "
4603 "B<sched_get_priority_min>(2), B<sched_getaffinity>(2), "
4604 "B<sched_getscheduler>(2), B<sched_setaffinity>(2), B<sched_setscheduler>(2), "
4605 "B<sched_setattr>(2), B<setpriority>(2), B<capabilities>(7), B<sched>(7)"
4606 msgstr ""
4607 "B<getpriority>(2), B<nice>(2), B<sched_get_priority_max>(2), "
4608 "B<sched_get_priority_min>(2), B<sched_getaffinity>(2), "
4609 "B<sched_getscheduler>(2), B<sched_setaffinity>(2), B<sched_setscheduler>(2), "
4610 "B<sched_setattr>(2), B<setpriority>(2), B<capabilities>(7), B<sched>(7)"
4611
4612 #. type: TH
4613 #: build/C/man2/sched_setscheduler.2:26
4614 #, no-wrap
4615 msgid "SCHED_SETSCHEDULER"
4616 msgstr "SCHED_SETSCHEDULER"
4617
4618 #. type: Plain text
4619 #: build/C/man2/sched_setscheduler.2:30
4620 msgid ""
4621 "sched_setscheduler, sched_getscheduler - set and get scheduling policy/"
4622 "parameters"
4623 msgstr ""
4624 "sched_setscheduler, sched_getscheduler - スケジューリングポリシーとパラメータ"
4625 "を設定/取得する"
4626
4627 #. type: Plain text
4628 #: build/C/man2/sched_setscheduler.2:35
4629 #, no-wrap
4630 msgid "B<int sched_setscheduler(pid_t >I<pid>B<, int >I<policy>B<,>\n"
4631 msgstr "B<int sched_setscheduler(pid_t >I<pid>B<, int >I<policy>B<,>\n"
4632
4633 #. type: Plain text
4634 #: build/C/man2/sched_setscheduler.2:37
4635 #, no-wrap
4636 msgid "B<                       const struct sched_param *>I<param>B<);>\n"
4637 msgstr "B<                       const struct sched_param *>I<param>B<);>\n"
4638
4639 #. type: Plain text
4640 #: build/C/man2/sched_setscheduler.2:39
4641 #, no-wrap
4642 msgid "B<int sched_getscheduler(pid_t >I<pid>B<);>\n"
4643 msgstr "B<int sched_getscheduler(pid_t >I<pid>B<);>\n"
4644
4645 #. type: Plain text
4646 #: build/C/man2/sched_setscheduler.2:49
4647 msgid ""
4648 "The B<sched_setscheduler>()  system call sets both the scheduling policy and "
4649 "parameters for the thread whose ID is specified in I<pid>.  If I<pid> equals "
4650 "zero, the scheduling policy and parameters of the calling thread will be set."
4651 msgstr ""
4652 "B<sched_setscheduler>() システムコールは、 I<pid> で指定された ID を持つス"
4653 "レッドのスケジューリングポリシーとスケジューリングパラメーターの両方を設定す"
4654 "る。 I<pid> が 0 の場合、呼び出したスレッド自身のスケジューリングポリシーとス"
4655 "ケジューリングパラメーターが設定される。"
4656
4657 #. type: Plain text
4658 #: build/C/man2/sched_setscheduler.2:53
4659 msgid ""
4660 "The scheduling parameters are specified in the I<param> argument, which is a "
4661 "pointer to a structure of the following form:"
4662 msgstr ""
4663 "スケジューリングパラメーターは I<param> 引き数で、以下の形式の構造体へのポイ"
4664 "ンターを指定する。"
4665
4666 #. type: Plain text
4667 #: build/C/man2/sched_setscheduler.2:61
4668 #, no-wrap
4669 msgid ""
4670 "struct sched_param {\n"
4671 "    ...\n"
4672 "    int sched_priority;\n"
4673 "    ...\n"
4674 "};\n"
4675 msgstr ""
4676 "struct sched_param {\n"
4677 "    ...\n"
4678 "    int sched_priority;\n"
4679 "    ...\n"
4680 "};\n"
4681
4682 #. type: Plain text
4683 #: build/C/man2/sched_setscheduler.2:69
4684 msgid ""
4685 "In the current implementation, the structure contains only one field, "
4686 "I<sched_priority>.  The interpretation of I<param> depends on the selected "
4687 "policy."
4688 msgstr ""
4689 "現在の実装では、この構造体のフィールドは I<sched_priority> だけである。 "
4690 "I<param> がどのように解釈されるかは選択されたポリシーによって変わる。"
4691
4692 #. type: Plain text
4693 #: build/C/man2/sched_setscheduler.2:90
4694 msgid "For each of the above policies, I<param-E<gt>sched_priority> must be 0."
4695 msgstr ""
4696 "上記のどのポリシーの場合でも、 I<param-E<gt>sched_priority> は 0 でなければな"
4697 "らない。"
4698
4699 #. type: Plain text
4700 #: build/C/man2/sched_setscheduler.2:116
4701 msgid ""
4702 "For each of the above policies, I<param-E<gt>sched_priority> specifies a "
4703 "scheduling priority for the thread.  This is a number in the range returned "
4704 "by calling B<sched_get_priority_min>(2)  and B<sched_get_priority_max>(2)  "
4705 "with the specified I<policy>.  On Linux, these system calls return, "
4706 "respectively, 1 and 99."
4707 msgstr ""
4708 "上記のどのポリシーの場合でも、 I<param-E<gt>sched_priority> はそのスレッドの"
4709 "スケジューリングポリシーを指定する。 指定された I<policy> で "
4710 "I<sched_get_priority_min>(2) と I<sched_get_priority_max>(2) を呼び出した返り"
4711 "値の範囲の数字を指定する。 Linux では、これらのシステムコールはそれぞれ 1 と "
4712 "99 を返す。"
4713
4714 #. type: Plain text
4715 #: build/C/man2/sched_setscheduler.2:129
4716 msgid ""
4717 "Since Linux 2.6.32, the B<SCHED_RESET_ON_FORK> flag can be ORed in I<policy> "
4718 "when calling B<sched_setscheduler>().  As a result of including this flag, "
4719 "children created by B<fork>(2)  do not inherit privileged scheduling "
4720 "policies.  See B<sched>(7)  for details."
4721 msgstr ""
4722 "Linux 2.6.32 以降では、 B<sched_setscheduler>() を呼び出す際に I<policy> に "
4723 "B<SCHED_RESET_ON_FORK> フラグを OR で指定できる。このフラグが指定されると、 "
4724 "B<fork>(2) で作成された子プロセスは特権が必要なスケジューリングポリシーを継承"
4725 "しない。 詳細は B<sched>(7) を参照。"
4726
4727 #. type: Plain text
4728 #: build/C/man2/sched_setscheduler.2:135
4729 msgid ""
4730 "B<sched_getscheduler>()  returns the current scheduling policy of the thread "
4731 "identified by I<pid>.  If I<pid> equals zero, the policy of the calling "
4732 "thread will be retrieved."
4733 msgstr ""
4734 "B<sched_getscheduler>()  は I<pid> で識別されるスレッドの現在のスケジューリン"
4735 "グポリシーを返す。I<pid> が 0 ならば、呼び出した スレッド自身のスケジューリン"
4736 "グポリシーが返される。"
4737
4738 #. type: Plain text
4739 #: build/C/man2/sched_setscheduler.2:145
4740 msgid ""
4741 "On success, B<sched_setscheduler>()  returns zero.  On success, "
4742 "B<sched_getscheduler>()  returns the policy for the thread (a nonnegative "
4743 "integer).  On error, both calls return -1, and I<errno> is set appropriately."
4744 msgstr ""
4745 "成功した場合、 B<sched_setscheduler>()  は 0 を返す。 成功した場合、 "
4746 "B<sched_getscheduler>()  は現在のそのスレッドのポリシー (非負の整数) を返"
4747 "す。 エラーの場合、 どちらのコールも -1 を返し、 I<errno> が適切に設定され"
4748 "る。"
4749
4750 #. type: Plain text
4751 #: build/C/man2/sched_setscheduler.2:153
4752 msgid "Invalid arguments: I<pid> is negative or I<param> is NULL."
4753 msgstr "無効な引き数: I<pid> が負である、または I<param> が NULL である。"
4754
4755 #. type: Plain text
4756 #: build/C/man2/sched_setscheduler.2:158
4757 msgid ""
4758 "(B<sched_setscheduler>())  I<policy> is not one of the recognized policies."
4759 msgstr "(B<sched_setscheduler>()) I<policy> が認識できるポリシーではない。"
4760
4761 #. type: Plain text
4762 #: build/C/man2/sched_setscheduler.2:164
4763 msgid ""
4764 "(B<sched_setscheduler>())  I<param> does not make sense for the specified "
4765 "I<policy>."
4766 msgstr ""
4767 "(B<sched_setscheduler>()) 引き数 I<param> が指定された I<policy> では意味を持"
4768 "たない。"
4769
4770 #. type: Plain text
4771 #: build/C/man2/sched_setscheduler.2:167
4772 msgid "The calling thread does not have appropriate privileges."
4773 msgstr "呼び出したスレッドが適切な特権を持っていない。"
4774
4775 #. type: Plain text
4776 #: build/C/man2/sched_setscheduler.2:173
4777 msgid ""
4778 "POSIX.1-2001 (but see BUGS below).  The B<SCHED_BATCH> and B<SCHED_IDLE> "
4779 "policies are Linux-specific."
4780 msgstr ""
4781 "POSIX.1-2001 (但し、下記のバグの節も参照)。 B<SCHED_BATCH> と B<SCHED_IDLE> "
4782 "ポリシーは Linux 固有である。"
4783
4784 #. type: Plain text
4785 #: build/C/man2/sched_setscheduler.2:177
4786 msgid ""
4787 "Further details of the semantics of all of the above \"normal\" and \"real-"
4788 "time\" scheduling policies can be found in B<sched>(7)."
4789 msgstr ""
4790 "上記の「通常」および「リアルタイム」スケジューリングポリシーの動作の詳細な説"
4791 "明は B<sched>(7) にある。"
4792
4793 #. type: Plain text
4794 #: build/C/man2/sched_setscheduler.2:185
4795 msgid ""
4796 "POSIX systems on which B<sched_setscheduler>()  and B<sched_getscheduler>()  "
4797 "are available define B<_POSIX_PRIORITY_SCHEDULING> in I<E<lt>unistd.hE<gt>>."
4798 msgstr ""
4799 "POSIX システムでは I<E<lt>unistd.hE<gt>> に B<_POSIX_PRIORITY_SCHEDULING> が"
4800 "定義されている場合にのみ B<sched_setscheduler>()  と "
4801 "B<sched_getscheduler>()  が使用できる。"
4802
4803 #. type: Plain text
4804 #: build/C/man2/sched_setscheduler.2:193
4805 msgid ""
4806 "POSIX.1 does not detail the permissions that an unprivileged thread requires "
4807 "in order to call B<sched_setscheduler>(), and details vary across systems.  "
4808 "For example, the Solaris 7 manual page says that the real or effective user "
4809 "ID of the caller must match the real user ID or the save set-user-ID of the "
4810 "target."
4811 msgstr ""
4812 "POSIX.1 は、非特権スレッドが B<sched_setscheduler>()  を呼び出すために必要な"
4813 "権限の詳細を規定しておらず、 詳細はシステムにより異なる。 例えば、Solaris 7 "
4814 "のマニュアルページでは、 呼び出し元の実ユーザ ID または実効ユーザ ID が 設定"
4815 "対象の実ユーザ ID か保存 (save) set-user-ID と 一致していなければならない、と"
4816 "なっている。"
4817
4818 #. type: Plain text
4819 #: build/C/man2/sched_setscheduler.2:214
4820 msgid ""
4821 "The scheduling policy and parameters are in fact per-thread attributes on "
4822 "Linux.  The value returned from a call to B<gettid>(2)  can be passed in the "
4823 "argument I<pid>.  Specifying I<pid> as 0 will operate on the attributes of "
4824 "the calling thread, and passing the value returned from a call to "
4825 "B<getpid>(2)  will operate on the attributes of the main thread of the "
4826 "thread group.  (If you are using the POSIX threads API, then use "
4827 "B<pthread_setschedparam>(3), B<pthread_getschedparam>(3), and "
4828 "B<pthread_setschedprio>(3), instead of the B<sched_*>(2)  system calls.)"
4829 msgstr ""
4830 "Linux では、 スケジューリングポリシーとスケジューリングパラメータは、 実際に"
4831 "はスレッド単位の属性である。 B<gettid>(2) の呼び出しの返り値をこのシステム"
4832 "コールの I<pid> 引き数として渡すことができる。 I<pid> に 0 を指定すると、 呼"
4833 "び出し元のスレッドの属性が設定される。 B<getpid>(2) コールからの返り値を "
4834 "I<pid> に指定すると、 スレッドグループのメインスレッドの属性が設定される "
4835 "(POSIX スレッド API を使用している場合は、 B<sched_*>(2) システムコールの代わ"
4836 "りに B<pthread_setschedparam>(3), B<pthread_getschedparam>(3), and "
4837 "B<pthread_setschedprio>(3) を使用すること)。"
4838
4839 #. type: Plain text
4840 #: build/C/man2/sched_setscheduler.2:222
4841 msgid ""
4842 "POSIX says that on success, B<sched_setscheduler>()  should return the "
4843 "previous scheduling policy.  Linux B<sched_setscheduler>()  does not conform "
4844 "to this requirement, since it always returns 0 on success."
4845 msgstr ""
4846 "POSIX では、成功時に B<sched_setscheduler>()  は直前のスケジューリングポリ"
4847 "シーを返すべきとされている。 Linux の B<sched_setscheduler>()  はこの要求仕様"
4848 "に準拠しておらず、 成功時には常に 0 を返す。"
4849
4850 #. type: Plain text
4851 #: build/C/man2/sched_setscheduler.2:241
4852 msgid ""
4853 "B<chrt>(1), B<nice>(2), B<sched_get_priority_max>(2), "
4854 "B<sched_get_priority_min>(2), B<sched_getaffinity>(2), B<sched_getattr>(2), "
4855 "B<sched_getparam>(2), B<sched_rr_get_interval>(2), B<sched_setaffinity>(2), "
4856 "B<sched_setattr>(2), B<sched_setparam>(2), B<sched_yield>(2), "
4857 "B<setpriority>(2), B<capabilities>(7), B<cpuset>(7), B<sched>(7)"
4858 msgstr ""
4859 "B<chrt>(1), B<nice>(2), B<sched_get_priority_max>(2), "
4860 "B<sched_get_priority_min>(2), B<sched_getaffinity>(2), B<sched_getattr>(2), "
4861 "B<sched_getparam>(2), B<sched_rr_get_interval>(2), B<sched_setaffinity>(2), "
4862 "B<sched_setattr>(2), B<sched_setparam>(2), B<sched_yield>(2), "
4863 "B<setpriority>(2), B<capabilities>(7), B<cpuset>(7), B<sched>(7)"
4864
4865 #. type: TH
4866 #: build/C/man2/sched_yield.2:29
4867 #, no-wrap
4868 msgid "SCHED_YIELD"
4869 msgstr "SCHED_YIELD"
4870
4871 #. type: Plain text
4872 #: build/C/man2/sched_yield.2:32
4873 msgid "sched_yield - yield the processor"
4874 msgstr "sched_yield - プロセッサーを空け渡す(yield)"
4875
4876 #. type: Plain text
4877 #: build/C/man2/sched_yield.2:36
4878 msgid "B<int sched_yield(void);>"
4879 msgstr "B<int sched_yield(void);>"
4880
4881 #. type: Plain text
4882 #: build/C/man2/sched_yield.2:41
4883 msgid ""
4884 "B<sched_yield>()  causes the calling thread to relinquish the CPU.  The "
4885 "thread is moved to the end of the queue for its static priority and a new "
4886 "thread gets to run."
4887 msgstr ""
4888 "B<sched_yield>()  を呼び出すことで、呼び出したスレッドが CPU の使用権を手放す"
4889 "ことができる。 そのスレッドは、そのスレッドの静的プライオリティのキューの末尾"
4890 "に 移動し、新しいスレッドが走り始める。"
4891
4892 #. type: Plain text
4893 #: build/C/man2/sched_yield.2:48
4894 msgid ""
4895 "On success, B<sched_yield>()  returns 0.  On error, -1 is returned, and "
4896 "I<errno> is set appropriately."
4897 msgstr ""
4898 "成功した場合は B<sched_yield>()  は 0 を返す。 エラーの場合は -1 が返され、 "
4899 "I<errno> が適切に設定される。"
4900
4901 #. type: Plain text
4902 #: build/C/man2/sched_yield.2:52
4903 msgid "In the Linux implementation, B<sched_yield>()  always succeeds."
4904 msgstr "Linux の実装では、 B<sched_yield>()  は常に成功する。"
4905
4906 #. type: Plain text
4907 #: build/C/man2/sched_yield.2:59
4908 msgid ""
4909 "If the calling thread is the only thread in the highest priority list at "
4910 "that time, it will continue to run after a call to B<sched_yield>()."
4911 msgstr ""
4912 "B<sched_yield>()  を呼び出した時点で最大優先度のリストの中に呼び出し元のス"
4913 "レッドしか 存在しなければ、そのスレッドは呼び出し後も走り続けることになる。"
4914
4915 #. type: Plain text
4916 #: build/C/man2/sched_yield.2:66
4917 msgid ""
4918 "POSIX systems on which B<sched_yield>()  is available define "
4919 "B<_POSIX_PRIORITY_SCHEDULING> in I<E<lt>unistd.hE<gt>>."
4920 msgstr ""
4921 "POSIX システムで B<sched_yield>()  は I<E<lt>unistd.hE<gt>> に "
4922 "B<_POSIX_PRIORITY_SCHEDULING> が定義されている場合にのみ使用可能である。"
4923
4924 #. type: Plain text
4925 #: build/C/man2/sched_yield.2:79
4926 msgid ""
4927 "Strategic calls to B<sched_yield>()  can improve performance by giving other "
4928 "threads or processes a chance to run when (heavily) contended resources (e."
4929 "g., mutexes)  have been released by the caller.  Avoid calling "
4930 "B<sched_yield>()  unnecessarily or inappropriately (e.g., when resources "
4931 "needed by other schedulable threads are still held by the caller), since "
4932 "doing so will result in unnecessary context switches, which will degrade "
4933 "system performance."
4934 msgstr ""
4935 "B<sched_yield>()  を戦略的に呼び出すことで、(極度に) 競合するリソース (mutex "
4936 "など)  を呼び出し元が解放した際に他のスレッドやプロセスに実行機会を与えること"
4937 "で、 性能を上げることができる。 B<sched_yield>()  を必要もないのに呼び出した"
4938 "り、不適切な場面 (例えば、他のスケジューリング 対象となるスレッドが必要とする"
4939 "リソースを呼び出し元が保持したままの状態)  で呼び出したりするのは避けること。"
4940 "なぜなら、 B<sched_yield>()  の呼び出しより不必要なコンテキストスイッチが起こ"
4941 "り、システム性能が 劣化する結果になるからである。"
4942
4943 #. type: TH
4944 #: build/C/man7/sched.7:32
4945 #, no-wrap
4946 msgid "SCHED"
4947 msgstr "SCHED"
4948
4949 #. type: Plain text
4950 #: build/C/man7/sched.7:35
4951 msgid "sched - overview of scheduling APIs"
4952 msgstr "sched - スケジューリング API の概要"
4953
4954 #. type: SS
4955 #: build/C/man7/sched.7:36
4956 #, no-wrap
4957 msgid "API summary"
4958 msgstr "API の概要"
4959
4960 #. type: Plain text
4961 #: build/C/man7/sched.7:38
4962 msgid "The Linux scheduling APIs are as follows:"
4963 msgstr "Linux のスケジューリング API は以下のとおりである。"
4964
4965 #. type: TP
4966 #: build/C/man7/sched.7:38
4967 #, no-wrap
4968 msgid "B<sched_setscheduler>(2)"
4969 msgstr "B<sched_setscheduler>(2)"
4970
4971 #. type: Plain text
4972 #: build/C/man7/sched.7:41
4973 msgid "Set the scheduling policy and parameters of a specified thread."
4974 msgstr "指定されたスレッドのスケジューリングポリシーとパラメーターを設定する。"
4975
4976 #. type: TP
4977 #: build/C/man7/sched.7:41
4978 #, no-wrap
4979 msgid "B<sched_getscheduler>(2)"
4980 msgstr "B<sched_getscheduler>(2)"
4981
4982 #. type: Plain text
4983 #: build/C/man7/sched.7:44
4984 msgid "Return the scheduling policy of a specified thread."
4985 msgstr "指定されたスレッドのスケジューリングポリシーを返す。"
4986
4987 #. type: TP
4988 #: build/C/man7/sched.7:44
4989 #, no-wrap
4990 msgid "B<sched_setparam>(2)"
4991 msgstr "B<sched_setparam>(2)"
4992
4993 #. type: Plain text
4994 #: build/C/man7/sched.7:47
4995 msgid "Set the scheduling parameters of a specified thread."
4996 msgstr "指定されたスレッドのスケジューリングパラメーターを設定する。"
4997
4998 #. type: TP
4999 #: build/C/man7/sched.7:47
5000 #, no-wrap
5001 msgid "B<sched_getparam>(2)"
5002 msgstr "B<sched_getparam>(2)"
5003
5004 #. type: Plain text
5005 #: build/C/man7/sched.7:50
5006 msgid "Fetch the scheduling parameters of a specified thread."
5007 msgstr "指定されたスレッドのスケジューリングパラメーターを取得する。"
5008
5009 #. type: TP
5010 #: build/C/man7/sched.7:50
5011 #, no-wrap
5012 msgid "B<sched_get_priority_max>(2)"
5013 msgstr "B<sched_get_priority_max>(2)"
5014
5015 #. type: Plain text
5016 #: build/C/man7/sched.7:53
5017 msgid "Return the minimum priority available in a specified scheduling policy."
5018 msgstr "指定されたスケジューリングポリシーで利用可能な最小の優先度を返す。"
5019
5020 #. type: TP
5021 #: build/C/man7/sched.7:53
5022 #, no-wrap
5023 msgid "B<sched_get_priority_min>(2)"
5024 msgstr "B<sched_get_priority_min>(2)"
5025
5026 #. type: Plain text
5027 #: build/C/man7/sched.7:56
5028 msgid "Return the maximum priority available in a specified scheduling policy."
5029 msgstr "指定されたスケジューリングポリシーで利用可能な最大の優先度を返す。"
5030
5031 #. type: TP
5032 #: build/C/man7/sched.7:56
5033 #, no-wrap
5034 msgid "B<sched_rr_get_interval>(2)"
5035 msgstr "B<sched_rr_get_interval>(2)"
5036
5037 #. type: Plain text
5038 #: build/C/man7/sched.7:60
5039 msgid ""
5040 "Fetch the quantum used for threads that are scheduled under the \"round-robin"
5041 "\" scheduling policy."
5042 msgstr ""
5043 "「ラウンドロビン」スケジューリングポリシーでスケジューリグされるスレッドで使"
5044 "用される単位時間 (quantum) を取得する。"
5045
5046 #. type: TP
5047 #: build/C/man7/sched.7:60
5048 #, no-wrap
5049 msgid "B<sched_yield>(2)"
5050 msgstr "B<sched_yield>(2)"
5051
5052 #. type: Plain text
5053 #: build/C/man7/sched.7:64
5054 msgid ""
5055 "Cause the caller to relinquish the CPU, so that some other thread be "
5056 "executed."
5057 msgstr ""
5058 "呼び出し元が CPU の使用権を明け渡して、 他のスレッドが実行できるようにする。"
5059
5060 #. type: TP
5061 #: build/C/man7/sched.7:64
5062 #, no-wrap
5063 msgid "B<sched_setaffinity>(2)"
5064 msgstr "B<sched_setaffinity>(2)"
5065
5066 #. type: Plain text
5067 #: build/C/man7/sched.7:68
5068 msgid "(Linux-specific)  Set the CPU affinity of a specified thread."
5069 msgstr "(Linux 固有) 指定されたスレッドの CPU affinity を設定する。"
5070
5071 #. type: TP
5072 #: build/C/man7/sched.7:68
5073 #, no-wrap
5074 msgid "B<sched_getaffinity>(2)"
5075 msgstr "B<sched_getaffinity>(2)"
5076
5077 #. type: Plain text
5078 #: build/C/man7/sched.7:72
5079 msgid "(Linux-specific)  Get the CPU affinity of a specified thread."
5080 msgstr "(Linux 固有) 指定されたスレッドの CPU affinity を取得する。"
5081
5082 #. type: TP
5083 #: build/C/man7/sched.7:72
5084 #, no-wrap
5085 msgid "B<sched_setattr>(2)"
5086 msgstr "B<sched_setattr>(2)"
5087
5088 #. type: Plain text
5089 #: build/C/man7/sched.7:79
5090 msgid ""
5091 "Set the scheduling policy and parameters of a specified thread.  This (Linux-"
5092 "specific) system call provides a superset of the functionality of "
5093 "B<sched_setscheduler>(2)  and B<sched_setparam>(2)."
5094 msgstr ""
5095 "指定されたスレッドのスケジューリングポリシーとパラメーターを設定する。 この "
5096 "(Linux 固有の) システムコールは B<sched_setscheduler>(2) と "
5097 "B<sched_setparam>(2) の両方の機能を持つ。"
5098
5099 #. type: TP
5100 #: build/C/man7/sched.7:79
5101 #, no-wrap
5102 msgid "B<sched_getattr>(2)"
5103 msgstr "B<sched_getattr>(2)"
5104
5105 #. type: Plain text
5106 #: build/C/man7/sched.7:87
5107 msgid ""
5108 "Fetch the scheduling policy and parameters of a specified thread.  This "
5109 "(Linux-specific) system call provides a superset of the functionality of "
5110 "B<sched_getscheduler>(2)  and B<sched_getparam>(2)."
5111 msgstr ""
5112 "指定されたスレッドのスケジューリングポリシーとパラメーターを取得する。 この "
5113 "(Linux 固有の) システムコールは B<sched_getscheduler>(2) と "
5114 "B<sched_getparam>(2) の両方の機能を持つ。"
5115
5116 #. type: SS
5117 #: build/C/man7/sched.7:87
5118 #, no-wrap
5119 msgid "Scheduling policies"
5120 msgstr "スケジューリングポリシー (scheduling policy)"
5121
5122 #. type: Plain text
5123 #: build/C/man7/sched.7:95
5124 msgid ""
5125 "The scheduler is the kernel component that decides which runnable thread "
5126 "will be executed by the CPU next.  Each thread has an associated scheduling "
5127 "policy and a I<static> scheduling priority, I<sched_priority>.  The "
5128 "scheduler makes its decisions based on knowledge of the scheduling policy "
5129 "and static priority of all threads on the system."
5130 msgstr ""
5131 "スケジューラ (scheduler) とはカーネルの構成要素で、 次に CPU で実行される実行"
5132 "可能なスレッドを決定するものである。 各々のスレッドには、スケジューリングポリ"
5133 "シーと 「静的」なスケジューリング優先度 I<sched_priority> が対応付けられる。 "
5134 "スケジューラは、システム上の全スレッドのスケジューリングポリシーと 静的優先度"
5135 "に関する知識に基づいて決定を行う。"
5136
5137 #. type: Plain text
5138 #: build/C/man7/sched.7:100
5139 msgid ""
5140 "For threads scheduled under one of the normal scheduling policies "
5141 "(B<SCHED_OTHER>, B<SCHED_IDLE>, B<SCHED_BATCH>), I<sched_priority> is not "
5142 "used in scheduling decisions (it must be specified as 0)."
5143 msgstr ""
5144 "通常のスケジューリングポリシー (B<SCHED_OTHER>, B<SCHED_IDLE>, "
5145 "B<SCHED_BATCH>)  の下でスケジューリングされるスレッドでは、 "
5146 "I<sched_priority> はスケジューリングの決定に使用されない (I<sched_priority> "
5147 "には 0 を指定しなければならない)。"
5148
5149 #. type: Plain text
5150 #: build/C/man7/sched.7:114
5151 msgid ""
5152 "Processes scheduled under one of the real-time policies (B<SCHED_FIFO>, "
5153 "B<SCHED_RR>) have a I<sched_priority> value in the range 1 (low) to 99 "
5154 "(high).  (As the numbers imply, real-time threads always have higher "
5155 "priority than normal threads.)  Note well: POSIX.1-2001 requires an "
5156 "implementation to support only a minimum 32 distinct priority levels for the "
5157 "real-time policies, and some systems supply just this minimum.  Portable "
5158 "programs should use B<sched_get_priority_min>(2)  and "
5159 "B<sched_get_priority_max>(2)  to find the range of priorities supported for "
5160 "a particular policy."
5161 msgstr ""
5162 "リアルタイムスケジューリングポリシー (B<SCHED_FIFO>, B<SCHED_RR>)  の下でスケ"
5163 "ジューリングされるスレッドは、 I<sched_priority> の値は 1 (最低) から 99 (最"
5164 "高) の範囲となる (数字から分かるように、リアルタイムスレッドは常に通常のス"
5165 "レッドよりも 高い優先度を持つ)。 ここで注意すべきなのは、POSIX.1-2001 が要求"
5166 "しているのは、 リアルタイムポリシーの実装において最低 32 種類の異なる優先度レ"
5167 "ベルが サポートされることだけであり、いくつかのシステムではこの最低限の数の "
5168 "優先度しか提供されていない、ということである。 移植性が必要なプログラムで"
5169 "は、 B<sched_get_priority_min>(2)  と B<sched_get_priority_max>(2)  を使っ"
5170 "て、あるポリシーがサポートする優先度の範囲を調べるべきである。"
5171
5172 #. type: Plain text
5173 #: build/C/man7/sched.7:120
5174 msgid ""
5175 "Conceptually, the scheduler maintains a list of runnable threads for each "
5176 "possible I<sched_priority> value.  In order to determine which thread runs "
5177 "next, the scheduler looks for the nonempty list with the highest static "
5178 "priority and selects the thread at the head of this list."
5179 msgstr ""
5180 "概念としては、 スケジューラはその I<sched_priority> の値それぞれに対して 実行"
5181 "可能なスレッドのリストを管理している。 どのスレッドを次に実行するかを決定する"
5182 "ために、 スケジューラは静的優先度の最も高い空でないリストを探して、 そのリス"
5183 "トの先頭のスレッドを選択する。"
5184
5185 #. type: Plain text
5186 #: build/C/man7/sched.7:124
5187 msgid ""
5188 "A thread's scheduling policy determines where it will be inserted into the "
5189 "list of threads with equal static priority and how it will move inside this "
5190 "list."
5191 msgstr ""
5192 "各スレッドのスケジューリングポリシーは、 そのスレッドが同じ静的優先度を持つス"
5193 "レッドのリストの中のどこに挿入され、 このリストの中をどのように移動するかを決"
5194 "定する。"
5195
5196 #. type: Plain text
5197 #: build/C/man7/sched.7:132
5198 msgid ""
5199 "All scheduling is preemptive: if a thread with a higher static priority "
5200 "becomes ready to run, the currently running thread will be preempted and "
5201 "returned to the wait list for its static priority level.  The scheduling "
5202 "policy determines the ordering only within the list of runnable threads with "
5203 "equal static priority."
5204 msgstr ""
5205 "全てのスケジューリングはプリエンプティブ (preemptive) である: より高い優先度"
5206 "のスレッドが実行可能になると、現在実行中のスレッドは実行権を 取り上げられ "
5207 "(preempted)、そのスレッドの静的優先度レベルの待ちリストに 戻される。スケ"
5208 "ジューリングポリシーは同じ静的優先度を持つ実行可能な スレッドのリストの中で順"
5209 "番のみを決定する。"
5210
5211 #. type: SS
5212 #: build/C/man7/sched.7:132
5213 #, no-wrap
5214 msgid "SCHED_FIFO: First in-first out scheduling"
5215 msgstr "SCHED_FIFO: ファーストインファーストアウトスケジューリング"
5216
5217 #. type: Plain text
5218 #: build/C/man7/sched.7:141
5219 msgid ""
5220 "B<SCHED_FIFO> can be used only with static priorities higher than 0, which "
5221 "means that when a B<SCHED_FIFO> threads becomes runnable, it will always "
5222 "immediately preempt any currently running B<SCHED_OTHER>, B<SCHED_BATCH>, or "
5223 "B<SCHED_IDLE> thread.  B<SCHED_FIFO> is a simple scheduling algorithm "
5224 "without time slicing.  For threads scheduled under the B<SCHED_FIFO> policy, "
5225 "the following rules apply:"
5226 msgstr ""
5227 "B<SCHED_FIFO> は 0 より大きな静的優先度でのみ使用できる。このポリシーでは、 "
5228 "B<SCHED_FIFO> スレッドが実行可能になった場合、 そのポリシーが "
5229 "B<SCHED_OTHER>、 B<SCHED_BATCH>、 B<SCHED_IDLE> の 現在実行中のスレッドは直ち"
5230 "に実行権を取り上げられる。 B<SCHED_FIFO> は時分割のない単純なスケジューリング"
5231 "アルゴリズムである。 B<SCHED_FIFO> ポリシーでスケジューリングされているスレッ"
5232 "ドには以下の ルールが適用される:"
5233
5234 #. type: IP
5235 #: build/C/man7/sched.7:141 build/C/man7/sched.7:146 build/C/man7/sched.7:149
5236 #: build/C/man7/sched.7:164 build/C/man7/sched.7:412 build/C/man7/sched.7:421
5237 #: build/C/man7/sched.7:444 build/C/man7/sched.7:452 build/C/man7/sched.7:491
5238 #: build/C/man7/sched.7:499 build/C/man7/sched.7:504 build/C/man7/sched.7:509
5239 #, no-wrap
5240 msgid "*"
5241 msgstr "*"
5242
5243 #. type: Plain text
5244 #: build/C/man7/sched.7:146
5245 msgid ""
5246 "A B<SCHED_FIFO> thread that has been preempted by another thread of higher "
5247 "priority will stay at the head of the list for its priority and will resume "
5248 "execution as soon as all threads of higher priority are blocked again."
5249 msgstr ""
5250 "より高い優先度の他のスレッドによって取って代わられた B<SCHED_FIFO> スレッドは"
5251 "その優先度のリストの先頭に留まり続け、 より高い優先度のスレッド全てが停止 "
5252 "(block) した場合に実行を再開する。"
5253
5254 #. type: Plain text
5255 #: build/C/man7/sched.7:149
5256 msgid ""
5257 "When a B<SCHED_FIFO> thread becomes runnable, it will be inserted at the end "
5258 "of the list for its priority."
5259 msgstr ""
5260 "B<SCHED_FIFO> スレッドが実行可能になった時、その優先度のリストの最後 に挿入さ"
5261 "れる。"
5262
5263 #.  In 2.2.x and 2.4.x, the thread is placed at the front of the queue
5264 #.  In 2.0.x, the Right Thing happened: the thread went to the back -- MTK
5265 #. type: Plain text
5266 #: build/C/man7/sched.7:164
5267 msgid ""
5268 "A call to B<sched_setscheduler>(2), B<sched_setparam>(2), or "
5269 "B<sched_setattr>(2)  will put the B<SCHED_FIFO> (or B<SCHED_RR>) thread "
5270 "identified by I<pid> at the start of the list if it was runnable.  As a "
5271 "consequence, it may preempt the currently running thread if it has the same "
5272 "priority.  (POSIX.1-2001 specifies that the thread should go to the end of "
5273 "the list.)"
5274 msgstr ""
5275 "B<sched_setscheduler>(2), B<sched_setparam>(2), B<sched_setattr>(2) は "
5276 "I<pid> で指定された B<SCHED_FIFO> (または B<SCHED_RR>) スレッドが 実行可能な"
5277 "場合、リストの最初に置く。 結果として、もし優先度が同じだった場合、 現在実行"
5278 "中のスレッドに先んじるかもしれない。 (POSIX.1-2001 ではスレッドはリストの最後"
5279 "に行くべきと規定されている。)"
5280
5281 #. type: Plain text
5282 #: build/C/man7/sched.7:168
5283 msgid "A thread calling B<sched_yield>(2)  will be put at the end of the list."
5284 msgstr "B<sched_yield>(2)  を呼び出したスレッドはリストの最後に置かれる。"
5285
5286 #. type: Plain text
5287 #: build/C/man7/sched.7:172
5288 msgid ""
5289 "No other events will move a thread scheduled under the B<SCHED_FIFO> policy "
5290 "in the wait list of runnable threads with equal static priority."
5291 msgstr ""
5292 "その他のイベントによって B<SCHED_FIFO> ポリシーでスケジューリングされるスレッ"
5293 "ドが同じ優先度の実行可能なスレッドの待ちリストの中を移動することはない。"
5294
5295 #. type: Plain text
5296 #: build/C/man7/sched.7:177
5297 msgid ""
5298 "A B<SCHED_FIFO> thread runs until either it is blocked by an I/O request, it "
5299 "is preempted by a higher priority thread, or it calls B<sched_yield>(2)."
5300 msgstr ""
5301 "B<SCHED_FIFO> スレッドは I/O 要求によって停止するか、 より高い優先度のスレッ"
5302 "ドによって置きかえられるか、 B<sched_yield>(2)  を呼び出すまで実行を続ける。"
5303
5304 #. type: SS
5305 #: build/C/man7/sched.7:177
5306 #, no-wrap
5307 msgid "SCHED_RR: Round-robin scheduling"
5308 msgstr "SCHED_RR: ラウンドロビン (round-robin) スケジューリング"
5309
5310 #.  On Linux 2.4, the length of the RR interval is influenced
5311 #.  by the process nice value -- MTK
5312 #. type: Plain text
5313 #: build/C/man7/sched.7:196
5314 msgid ""
5315 "B<SCHED_RR> is a simple enhancement of B<SCHED_FIFO>.  Everything described "
5316 "above for B<SCHED_FIFO> also applies to B<SCHED_RR>, except that each thread "
5317 "is allowed to run only for a maximum time quantum.  If a B<SCHED_RR> thread "
5318 "has been running for a time period equal to or longer than the time quantum, "
5319 "it will be put at the end of the list for its priority.  A B<SCHED_RR> "
5320 "thread that has been preempted by a higher priority thread and subsequently "
5321 "resumes execution as a running thread will complete the unexpired portion of "
5322 "its round-robin time quantum.  The length of the time quantum can be "
5323 "retrieved using B<sched_rr_get_interval>(2)."
5324 msgstr ""
5325 "B<SCHED_RR> は B<SCHED_FIFO> の単純な拡張である。 上述された\n"
5326 "B<SCHED_FIFO> に関する記述は全て B<SCHED_RR> に 適用できる。異なるのは\n"
5327 "それぞれのスレッドは最大時間単位までしか実行できない ということである。\n"
5328 "B<SCHED_RR> スレッドが時間単位と同じかそれより 長い時間実行されると、\n"
5329 "その優先度のリストの最後に置かれる。 より高い優先度のスレッドによって\n"
5330 "置きかえられ、その後実行を再開した B<SCHED_RR> スレッドは、そのラウンド\n"
5331 "ロビン時間単位を完全に使い切る まで実行される。その時間単位の長さは\n"
5332 "B<sched_rr_get_interval>(2) を使って取得できる。"
5333
5334 #. type: SS
5335 #: build/C/man7/sched.7:196
5336 #, no-wrap
5337 msgid "SCHED_DEADLINE: Sporadic task model deadline scheduling"
5338 msgstr "SCHED_DEADLINE: 散発タスクモデルのデッドラインスケジューリング"
5339
5340 #. type: Plain text
5341 #: build/C/man7/sched.7:208
5342 msgid ""
5343 "Since version 3.14, Linux provides a deadline scheduling policy "
5344 "(B<SCHED_DEADLINE>).  This policy is currently implemented using GEDF "
5345 "(Global Earliest Deadline First)  in conjunction with CBS (Constant "
5346 "Bandwidth Server).  To set and fetch this policy and associated attributes, "
5347 "one must use the Linux-specific B<sched_setattr>(2)  and "
5348 "B<sched_getattr>(2)  system calls."
5349 msgstr ""
5350 "バージョン 3.14 以降では、 Linux はデッドラインスケジューリングポリシー "
5351 "(B<SCHED_DEADLINE>) が提供される。 現在のところ、 このポリシーは GEDF "
5352 "(Global Earliest Deadline First) を使って CBS (Constant Bandwidth Server) と"
5353 "の組み合わせで実装されている。 このポリシーと関連する属性の設定、取得を行うに"
5354 "は、 Linux 固有のシステムコール B<sched_setattr>(2) と B<sched_getattr>(2) を"
5355 "使用する必要がある。"
5356
5357 #. type: Plain text
5358 #: build/C/man7/sched.7:226
5359 msgid ""
5360 "A sporadic task is one that has a sequence of jobs, where each job is "
5361 "activated at most once per period.  Each job also has a I<relative "
5362 "deadline>, before which it should finish execution, and a I<computation "
5363 "time>, which is the CPU time necessary for executing the job.  The moment "
5364 "when a task wakes up because a new job has to be executed is called the "
5365 "I<arrival time> (also referred to as the request time or release time).  The "
5366 "I<start time> is the time at which a task starts its execution.  The "
5367 "I<absolute deadline> is thus obtained by adding the relative deadline to the "
5368 "arrival time."
5369 msgstr ""
5370 "散発タスク (sporadic task) はジョブ列を持つタスクで、 各ジョブは期間 "
5371 "(period) あたり多くとも 1 回だけ有効化される。 各ジョブには I<relative "
5372 "deadline> (相対デッドライン) と I<computation time> (計算時間) がある。 相対"
5373 "デッドラインは、そのジョブがそのデッドラインより前に実行が終了すべきであるこ"
5374 "とを示す。 計算時間は、このジョブを実行するのに必要な CPU 時間である。 新しい"
5375 "ジョブを実行する必要が出てタスクが起こされる時点は I<arrival time> (到着時"
5376 "刻) と呼ばれる (要求時刻 (request time) や解放時刻 (release time) と呼ばれる"
5377 "こともある)。 I<start time> はタスクが実行を開始する時刻である。 したがっ"
5378 "て、 I<absolute deadline> (絶対デッドライン) は到着時刻に相対デッドラインを加"
5379 "算することで求められる。"
5380
5381 #. type: Plain text
5382 #: build/C/man7/sched.7:228
5383 msgid "The following diagram clarifies these terms:"
5384 msgstr "以下の図はこれらの用語をまとめたものである。"
5385
5386 #. type: Plain text
5387 #: build/C/man7/sched.7:239
5388 #, no-wrap
5389 msgid ""
5390 "arrival/wakeup                    absolute deadline\n"
5391 "     |    start time                    |\n"
5392 "     |        |                         |\n"
5393 "     v        v                         v\n"
5394 "-----x--------xooooooooooooooooo--------x--------x---\n"
5395 "              |E<lt>- comp. time -E<gt>|\n"
5396 "     |E<lt>------- relative deadline ------E<gt>|\n"
5397 "     |E<lt>-------------- period -------------------E<gt>|\n"
5398 msgstr ""
5399 "arrival/wakeup                    absolute deadline\n"
5400 "     |    start time                    |\n"
5401 "     |        |                         |\n"
5402 "     v        v                         v\n"
5403 "-----x--------xooooooooooooooooo--------x--------x---\n"
5404 "              |E<lt>- comp. time -E<gt>|\n"
5405 "     |E<lt>------- relative deadline ------E<gt>|\n"
5406 "     |E<lt>-------------- period -------------------E<gt>|\n"
5407
5408 #. type: Plain text
5409 #: build/C/man7/sched.7:258
5410 msgid ""
5411 "When setting a B<SCHED_DEADLINE> policy for a thread using "
5412 "B<sched_setattr>(2), one can specify three parameters: I<Runtime>, "
5413 "I<Deadline>, and I<Period>.  These parameters do not necessarily correspond "
5414 "to the aforementioned terms: usual practice is to set Runtime to something "
5415 "bigger than the average computation time (or worst-case execution time for "
5416 "hard real-time tasks), Deadline to the relative deadline, and Period to the "
5417 "period of the task.  Thus, for B<SCHED_DEADLINE> scheduling, we have:"
5418 msgstr ""
5419 "B<sched_setattr>(2) を使ってスレッドに B<SCHED_DEADLINE> ポリシーを設定する"
5420 "際、 I<Runtime>, I<Deadline>, I<Period> の 3 つのパラメーターを指定することが"
5421 "できる。 これらのパラメーターは必ずしも上で述べた用語に対応しているわけではな"
5422 "い。 よくある方法としては、 Runtime に平均計算時間 (もしくはハードリアルタイ"
5423 "ムタスクの場合は最悪ケースの実行時間) よりも大きな値を、 Deadline に相対デッ"
5424 "ドラインを、 Period にタスクの期間 (period) を設定する。 したがって、 "
5425 "B<SCHED_DEADLINE> スケジューリングでは、 以下のようになる。"
5426
5427 #. type: Plain text
5428 #: build/C/man7/sched.7:269
5429 #, no-wrap
5430 msgid ""
5431 "arrival/wakeup                    absolute deadline\n"
5432 "     |    start time                    |\n"
5433 "     |        |                         |\n"
5434 "     v        v                         v\n"
5435 "-----x--------xooooooooooooooooo--------x--------x---\n"
5436 "              |E<lt>-- Runtime -------E<gt>|\n"
5437 "     |E<lt>----------- Deadline -----------E<gt>|\n"
5438 "     |E<lt>-------------- Period -------------------E<gt>|\n"
5439 msgstr ""
5440 "arrival/wakeup                    absolute deadline\n"
5441 "     |    start time                    |\n"
5442 "     |        |                         |\n"
5443 "     v        v                         v\n"
5444 "-----x--------xooooooooooooooooo--------x--------x---\n"
5445 "              |E<lt>-- Runtime -------E<gt>|\n"
5446 "     |E<lt>----------- Deadline -----------E<gt>|\n"
5447 "     |E<lt>-------------- Period -------------------E<gt>|\n"
5448
5449 #.  FIXME It looks as though specifying sched_period as 0 means
5450 #.        "make sched_period the same as sched_deadline".
5451 #.        This needs to be documented.
5452 #. type: Plain text
5453 #: build/C/man7/sched.7:289
5454 msgid ""
5455 "The three deadline-scheduling parameters correspond to the I<sched_runtime>, "
5456 "I<sched_deadline>, and I<sched_period> fields of the I<sched_attr> "
5457 "structure; see B<sched_setattr>(2).  These fields express value in "
5458 "nanoseconds.  If I<sched_period> is specified as 0, then it is made the same "
5459 "as I<sched_deadline>."
5460 msgstr ""
5461 "3 つのデッドラインスケジューリングパラメーターは I<sched_attr> 構造体の "
5462 "I<sched_runtime>, I<sched_deadline>, I<sched_period> フィールドに対応する。 "
5463 "これらのフィールドはナノ秒単位の値である。 I<sched_period> に 0 が指定された"
5464 "場合 I<sched_deadline> と同じ値になる。"
5465
5466 #. type: Plain text
5467 #: build/C/man7/sched.7:291
5468 msgid "The kernel requires that:"
5469 msgstr "カーネルでは以下の関係が成り立つことが求められる。"
5470
5471 #. type: Plain text
5472 #: build/C/man7/sched.7:293
5473 #, no-wrap
5474 msgid "    sched_runtime E<lt>= sched_deadline E<lt>= sched_period\n"
5475 msgstr "    sched_runtime E<lt>= sched_deadline E<lt>= sched_period\n"
5476
5477 #.  See __checkparam_dl in kernel/sched/core.c
5478 #. type: Plain text
5479 #: build/C/man7/sched.7:303
5480 msgid ""
5481 "In addition, under the current implementation, all of the parameter values "
5482 "must be at least 1024 (i.e., just over one microsecond, which is the "
5483 "resolution of the implementation), and less than 2^63.  If any of these "
5484 "checks fails, B<sched_setattr>(2)  fails with the error B<EINVAL>."
5485 msgstr ""
5486 "これに加えて、 現在の実装では、 すべてのパラメーター値は少なくとも 1024 (実装"
5487 "の粒度である 1 マイクロ秒よりも少しだけ大きな値) で 2^63 よりも小さくなければ"
5488 "ならない。 これらのチェックのいずれかが失敗すると、 B<sched_setattr>(2) はエ"
5489 "ラー B<EINVAL> で失敗する。"
5490
5491 #. type: Plain text
5492 #: build/C/man7/sched.7:306
5493 msgid ""
5494 "The CBS guarantees non-interference between tasks, by throttling threads "
5495 "that attempt to over-run their specified Runtime."
5496 msgstr ""
5497 "CBS によりタスク間の干渉がないことが保証される。 指定された Runtime を超えて"
5498 "実行しようとしたスレッドは絞り込まれることになる。"
5499
5500 #. type: Plain text
5501 #: build/C/man7/sched.7:319
5502 msgid ""
5503 "To ensure deadline scheduling guarantees, the kernel must prevent situations "
5504 "where the set of B<SCHED_DEADLINE> threads is not feasible (schedulable) "
5505 "within the given constraints.  The kernel thus performs an admittance test "
5506 "when setting or changing B<SCHED_DEADLINE> policy and attributes.  This "
5507 "admission test calculates whether the change is feasible; if it is not "
5508 "B<sched_setattr>(2)  fails with the error B<EBUSY>."
5509 msgstr ""
5510 "デッドラインスケジューリングの保証がきちんと機能するためには、 カーネルは "
5511 "B<SCHEDULING> スレッドの集合が指定された制約条件におさまらない (スケジューリ"
5512 "ングできない) 状況を防止しなければならない。 そのため、カーネルは "
5513 "B<SCHED_DEADLINE> ポリシーと属性を設定、変更する際に、受け入れチェック "
5514 "(admittance test) を実行する。 この受け入れチェックは、変更が実行可能かを計算"
5515 "し、もし実行できないようであれば B<sched_setattr>(2) はエラー B<EBUSY> で失敗"
5516 "する。"
5517
5518 #. type: Plain text
5519 #: build/C/man7/sched.7:325
5520 msgid ""
5521 "For example, it is required (but not necessarily sufficient) for the total "
5522 "utilization to be less than or equal to the total number of CPUs available, "
5523 "where, since each thread can maximally run for Runtime per Period, that "
5524 "thread's utilization is its Runtime divided by its Period."
5525 msgstr ""
5526 "例えば、 使用率の合計が利用可能な合計 CPU 数以下である必要がある (ただし、必"
5527 "ずしも十分というわけではない)。 なお、 各スレッドは最大で Period あたり "
5528 "Runtime だけ実行されることがあるので、 そのスレッドの使用率は Runtime を "
5529 "Period で割ったものとなる。"
5530
5531 #. type: Plain text
5532 #: build/C/man7/sched.7:336
5533 msgid ""
5534 "In order to fulfil the guarantees that are made when a thread is admitted to "
5535 "the B<SCHED_DEADLINE> policy, B<SCHED_DEADLINE> threads are the highest "
5536 "priority (user controllable) threads in the system; if any B<SCHED_DEADLINE> "
5537 "thread is runnable, it will preempt any thread scheduled under one of the "
5538 "other policies."
5539 msgstr ""
5540 "スレッドが B<SCHED_DEADLINE> ポリシーに受け入れられた場合に保証を実現するた"
5541 "め、 B<SCHED_DEADLINE> スレッドはシステムで (ユーザーが制御可能な) 最高優先度"
5542 "のスレッドとなる。 いずれかの B<SCHED_DEADLINE> スレッドが実行可能であれば、 "
5543 "他のポリシーでスケジューリングされているスレッドはすべて横取りされる。"
5544
5545 #. type: Plain text
5546 #: build/C/man7/sched.7:344
5547 msgid ""
5548 "A call to B<fork>(2)  by a thread scheduled under the B<SCHED_DEADLINE> "
5549 "policy will fail with the error B<EAGAIN>, unless the thread has its reset-"
5550 "on-fork flag set (see below)."
5551 msgstr ""
5552 "B<SCHED_DEADLINE> ポリシーでスケジューリングされているスレッドが B<fork>(2) "
5553 "を呼び出すと、 そのスレッドで reset-on-fork フラグがセットされている場合 (下"
5554 "記参照) を除き、 エラー B<EAGAIN> で失敗する。"
5555
5556 #
5557 #.  FIXME Calling sched_getparam() on a SCHED_DEADLINE thread
5558 #.        fails with EINVAL, but sched_getscheduler() succeeds.
5559 #.        Is that intended? (Why?)
5560 #. type: Plain text
5561 #: build/C/man7/sched.7:355
5562 msgid ""
5563 "A B<SCHED_DEADLINE> thread that calls B<sched_yield>(2)  will yield the "
5564 "current job and wait for a new period to begin."
5565 msgstr ""
5566 "B<SCHED_DEADLINE> スレッドが B<sched_yield>(2) を呼び出すと、 現在のジョブが "
5567 "CPU を明け渡し、新しい期間が開始するのを待つ。"
5568
5569 #. type: SS
5570 #: build/C/man7/sched.7:355
5571 #, no-wrap
5572 msgid "SCHED_OTHER: Default Linux time-sharing scheduling"
5573 msgstr "SCHED_OTHER: Linux のデフォルトの時分割スケジューリング"
5574
5575 #. type: Plain text
5576 #: build/C/man7/sched.7:372
5577 msgid ""
5578 "B<SCHED_OTHER> can be used at only static priority 0.  B<SCHED_OTHER> is the "
5579 "standard Linux time-sharing scheduler that is intended for all threads that "
5580 "do not require the special real-time mechanisms.  The thread to run is "
5581 "chosen from the static priority 0 list based on a I<dynamic> priority that "
5582 "is determined only inside this list.  The dynamic priority is based on the "
5583 "nice value (set by B<nice>(2), B<setpriority>(2), or B<sched_setattr>(2))  "
5584 "and increased for each time quantum the thread is ready to run, but denied "
5585 "to run by the scheduler.  This ensures fair progress among all "
5586 "B<SCHED_OTHER> threads."
5587 msgstr ""
5588 "B<SCHED_OTHER> は静的優先度 0 でのみ使用できる。 B<SCHED_OTHER> は Linux 標準"
5589 "の時分割スケジューラで、 特別なリアルタイム機構を必要としていない全てのスレッ"
5590 "ドで使用される。 実行するスレッドは、静的優先度 0 のリストから、このリストの"
5591 "中だけで 決定される「動的な」優先度 (dynamic priority) に基いて決定される。 "
5592 "動的な優先度は (B<nice>(2), B<setpriority>(2), B<sched_setattr>(2) により設定"
5593 "される) nice 値に基づいて決定されるもので、 単位時間毎に、スレッドが実行可能"
5594 "だが、スケジューラにより実行が拒否された 場合にインクリメントされる。 これに"
5595 "より、全ての B<SCHED_OTHER> スレッドでの公平性が保証される。"
5596
5597 #. type: SS
5598 #: build/C/man7/sched.7:372
5599 #, no-wrap
5600 msgid "SCHED_BATCH: Scheduling batch processes"
5601 msgstr "SCHED_BATCH: バッチプロセスのスケジューリング"
5602
5603 #. type: Plain text
5604 #: build/C/man7/sched.7:384
5605 msgid ""
5606 "(Since Linux 2.6.16.)  B<SCHED_BATCH> can be used only at static priority "
5607 "0.  This policy is similar to B<SCHED_OTHER> in that it schedules the thread "
5608 "according to its dynamic priority (based on the nice value).  The difference "
5609 "is that this policy will cause the scheduler to always assume that the "
5610 "thread is CPU-intensive.  Consequently, the scheduler will apply a small "
5611 "scheduling penalty with respect to wakeup behavior, so that this thread is "
5612 "mildly disfavored in scheduling decisions."
5613 msgstr ""
5614 "(Linux 2.6.16 以降)  B<SCHED_BATCH> は静的優先度 0 でのみ使用できる。 このポ"
5615 "リシーは (nice 値に基づく) 動的な優先度にしたがってスレッドの スケジューリン"
5616 "グが行われるという点で、B<SCHED_OTHER> に似ている。 異なるのは、このポリシー"
5617 "では、スレッドが常に CPU に負荷のかかる (CPU-intensive)  処理を行うと、スケ"
5618 "ジューラが仮定する点である。 スケジューラはスレッドを呼び起こす毎にそのスレッ"
5619 "ドにスケジューリング上の ペナルティを少し課し、その結果、このスレッドはスケ"
5620 "ジューリングの決定で 若干冷遇されるようになる。"
5621
5622 #.  The following paragraph is drawn largely from the text that
5623 #.  accompanied Ingo Molnar's patch for the implementation of
5624 #.  SCHED_BATCH.
5625 #.  commit b0a9499c3dd50d333e2aedb7e894873c58da3785
5626 #. type: Plain text
5627 #: build/C/man7/sched.7:394
5628 msgid ""
5629 "This policy is useful for workloads that are noninteractive, but do not want "
5630 "to lower their nice value, and for workloads that want a deterministic "
5631 "scheduling policy without interactivity causing extra preemptions (between "
5632 "the workload's tasks)."
5633 msgstr ""
5634 "このポリシーは、非対話的な処理だがその nice 値を下げたくない処理や、 (処理の"
5635 "タスク間で) 余計なタスクの置き換えの原因とある対話的な処理なしで 確定的な "
5636 "(deterministic) スケジューリングポリシーを適用したい処理に 対して有効である。"
5637
5638 #. type: SS
5639 #: build/C/man7/sched.7:394
5640 #, no-wrap
5641 msgid "SCHED_IDLE: Scheduling very low priority jobs"
5642 msgstr "SCHED_IDLE: 非常に優先度の低いジョブのスケジューリング"
5643
5644 #. type: Plain text
5645 #: build/C/man7/sched.7:398
5646 msgid ""
5647 "(Since Linux 2.6.23.)  B<SCHED_IDLE> can be used only at static priority 0; "
5648 "the process nice value has no influence for this policy."
5649 msgstr ""
5650 "(Linux 2.6.23 以降)  B<SCHED_IDLE> は静的優先度 0 でのみ使用できる。 このポリ"
5651 "シーではプロセスの nice 値はスケジューリングに影響を与えない。"
5652
5653 #. type: Plain text
5654 #: build/C/man7/sched.7:406
5655 msgid ""
5656 "This policy is intended for running jobs at extremely low priority (lower "
5657 "even than a +19 nice value with the B<SCHED_OTHER> or B<SCHED_BATCH> "
5658 "policies)."
5659 msgstr ""
5660 "非常に低い優先度でのジョブの実行を目的としたものである (非常に低い優先度と"
5661 "は、ポリシー B<SCHED_OTHER> か B<SCHED_BATCH> での nice 値 +19 よりさらに低い"
5662 "優先度である)。"
5663
5664 #. type: SS
5665 #: build/C/man7/sched.7:406
5666 #, no-wrap
5667 msgid "Resetting scheduling policy for child processes"
5668 msgstr "子プロセスでのスケジューリングポリシーのリセット"
5669
5670 #. type: Plain text
5671 #: build/C/man7/sched.7:412
5672 msgid ""
5673 "Each thread has a reset-on-fork scheduling flag.  When this flag is set, "
5674 "children created by B<fork>(2)  do not inherit privileged scheduling "
5675 "policies.  The reset-on-fork flag can be set by either:"
5676 msgstr ""
5677 "各スレッドには reset-on-fork スケジューリングフラグがある。 このフラグがセッ"
5678 "トされると、 B<fork>(2) で作成される子プロセスは特権スケジューリングポリシー"
5679 "を継承しない。 reset-on-fork フラグは以下のいずれかの方法でセットできる。"
5680
5681 #. type: Plain text
5682 #: build/C/man7/sched.7:421
5683 msgid ""
5684 "ORing the B<SCHED_RESET_ON_FORK> flag into the I<policy> argument when "
5685 "calling B<sched_setscheduler>(2)  (since Linux 2.6.32); or"
5686 msgstr ""
5687 "B<sched_setscheduler>(2) を呼び出す際に B<SCHED_RESET_ON_FORK> フラグを "
5688 "I<policy> 引き数に論理和で指定する (Linux 2.6.32 以降)。"
5689
5690 #. type: Plain text
5691 #: build/C/man7/sched.7:428
5692 msgid ""
5693 "specifying the B<SCHED_FLAG_RESET_ON_FORK> flag in I<attr.sched_flags> when "
5694 "calling B<sched_setattr>(2)."
5695 msgstr ""
5696 "B<sched_setattr>(2) を呼び出し際に I<attr.sched_flags> に "
5697 "B<SCHED_FLAG_RESET_ON_FORK> フラグを指定する。"
5698
5699 #. type: Plain text
5700 #: build/C/man7/sched.7:434
5701 msgid ""
5702 "Note that the constants used with these two APIs have different names.  The "
5703 "state of the reset-on-fork flag can analogously be retrieved using "
5704 "B<sched_getscheduler>(2)  and B<sched_getattr>(2)."
5705 msgstr ""
5706 "これらの 2 つの API で使用される定数は名前が違っている点に注意すること。 同様"
5707 "に reset-on-fork フラグの状態は B<sched_getscheduler>(2) と "
5708 "B<sched_getattr>(2) を使って取得できる。"
5709
5710 #. type: Plain text
5711 #: build/C/man7/sched.7:441
5712 msgid ""
5713 "The reset-on-fork feature is intended for media-playback applications, and "
5714 "can be used to prevent applications evading the B<RLIMIT_RTTIME> resource "
5715 "limit (see B<getrlimit>(2))  by creating multiple child processes."
5716 msgstr ""
5717 "reset-on-fork 機能はメディア再生アプリケーションでの利用を意図したものであ"
5718 "る。 複数の子プロセスを作成することで、 アプリケーションは B<RLIMIT_RTTIME> "
5719 "リソース上限 (B<getrlimit>(2) を参照) を避けることができる。"
5720
5721 #. type: Plain text
5722 #: build/C/man7/sched.7:444
5723 msgid ""
5724 "More precisely, if the reset-on-fork flag is set, the following rules apply "
5725 "for subsequently created children:"
5726 msgstr ""
5727 "より正確には、 reset-on-fork フラグがセットされた場合、それ以降に作成される子"
5728 "プロセスに以下のルールが適用される。"
5729
5730 #. type: Plain text
5731 #: build/C/man7/sched.7:452
5732 msgid ""
5733 "If the calling thread has a scheduling policy of B<SCHED_FIFO> or "
5734 "B<SCHED_RR>, the policy is reset to B<SCHED_OTHER> in child processes."
5735 msgstr ""
5736 "呼び出したスレッドのスケジューリングポリシーが B<SCHED_FIFO> か B<SCHED_RR> "
5737 "の場合、子プロセスのポリシーは B<SCHED_OTHER> にリセットされる。"
5738
5739 #. type: Plain text
5740 #: build/C/man7/sched.7:455
5741 msgid ""
5742 "If the calling process has a negative nice value, the nice value is reset to "
5743 "zero in child processes."
5744 msgstr ""
5745 "子プロセスが負の nice 値を持っている場合、子プロセスの nice 値は 0 にリセット"
5746 "される。"
5747
5748 #. type: Plain text
5749 #: build/C/man7/sched.7:463
5750 msgid ""
5751 "After the reset-on-fork flag has been enabled, it can be reset only if the "
5752 "thread has the B<CAP_SYS_NICE> capability.  This flag is disabled in child "
5753 "processes created by B<fork>(2)."
5754 msgstr ""
5755 "一度 reset-on-fork フラグが有効にされた後は、このフラグをリセットできるのは、"
5756 "スレッドが B<CAP_SYS_NICE> ケーパビリティを持つ場合だけである。このフラグは "
5757 "B<fork>(2) で作成された子プロセスでは無効になる。"
5758
5759 #. type: SS
5760 #: build/C/man7/sched.7:463
5761 #, no-wrap
5762 msgid "Privileges and resource limits"
5763 msgstr "特権とリソース制限"
5764
5765 #. type: Plain text
5766 #: build/C/man7/sched.7:475
5767 msgid ""
5768 "In Linux kernels before 2.6.12, only privileged (B<CAP_SYS_NICE>)  threads "
5769 "can set a nonzero static priority (i.e., set a real-time scheduling "
5770 "policy).  The only change that an unprivileged thread can make is to set the "
5771 "B<SCHED_OTHER> policy, and this can be done only if the effective user ID of "
5772 "the caller matches the real or effective user ID of the target thread (i.e., "
5773 "the thread specified by I<pid>)  whose policy is being changed."
5774 msgstr ""
5775 "2.6.12 より前のバージョンの Linux カーネルでは、 特権スレッド "
5776 "(B<CAP_SYS_NICE> ケーパビリティを持つスレッド) だけが 0 以外の静的優先度を設"
5777 "定する (すなわち、リアルタイムスケジューリングポリシーを設定する) ことができ"
5778 "る。 非特権スレッドができる変更は B<SCHED_OTHER> ポリシーを設定することだけで"
5779 "あり、さらに、 この変更を行えるのは、 呼び出し元の実効ユーザ ID がポリシーの"
5780 "変更対象スレッド (I<pid> で指定されたスレッド) の実ユーザ ID か実効ユーザ ID "
5781 "と 一致する場合だけである。"
5782
5783 #. type: Plain text
5784 #: build/C/man7/sched.7:481
5785 msgid ""
5786 "A thread must be privileged (B<CAP_SYS_NICE>)  in order to set or modify a "
5787 "B<SCHED_DEADLINE> policy."
5788 msgstr ""
5789 "B<SCHED_DEADLINE> ポリシーを設定、変更するには、スレッドが特権 "
5790 "(B<CAP_SYS_NICE>) を持っていなければならない。"
5791
5792 #. type: Plain text
5793 #: build/C/man7/sched.7:491
5794 msgid ""
5795 "Since Linux 2.6.12, the B<RLIMIT_RTPRIO> resource limit defines a ceiling on "
5796 "an unprivileged thread's static priority for the B<SCHED_RR> and "
5797 "B<SCHED_FIFO> policies.  The rules for changing scheduling policy and "
5798 "priority are as follows:"
5799 msgstr ""
5800 "Linux 2.6.12 以降では、リソース制限 B<RLIMIT_RTPRIO> が定義されており、 スケ"
5801 "ジューリングポリシーが B<SCHED_RR> と B<SCHED_FIFO> の場合の、非特権スレッド"
5802 "の静的優先度の上限を定めている。 スケジューリングポリシーと優先度を変更する際"
5803 "のルールは以下の通りである。"
5804
5805 #. type: Plain text
5806 #: build/C/man7/sched.7:499
5807 msgid ""
5808 "If an unprivileged thread has a nonzero B<RLIMIT_RTPRIO> soft limit, then it "
5809 "can change its scheduling policy and priority, subject to the restriction "
5810 "that the priority cannot be set to a value higher than the maximum of its "
5811 "current priority and its B<RLIMIT_RTPRIO> soft limit."
5812 msgstr ""
5813 "非特権スレッドに 0 以外の B<RLIMIT_RTPRIO> ソフトリミットが設定されている場"
5814 "合、 非特権スレッドはそのスレッドのスケジューリングポリシーと優先度を 変更で"
5815 "きるが、優先度を現在の自身の優先度と B<RLIMIT_RTPRIO> ソフトリミットの大きい"
5816 "方よりも高い値に設定できないという制限が課される。"
5817
5818 #. type: Plain text
5819 #: build/C/man7/sched.7:504
5820 msgid ""
5821 "If the B<RLIMIT_RTPRIO> soft limit is 0, then the only permitted changes are "
5822 "to lower the priority, or to switch to a non-real-time policy."
5823 msgstr ""
5824 "B<RLIMIT_RTPRIO> ソフトリミットが 0 の場合、優先度を下げるか、 リアルタイムで"
5825 "ないポリシーへ切り替えるかの変更だけが許可される。"
5826
5827 #. type: Plain text
5828 #: build/C/man7/sched.7:509
5829 msgid ""
5830 "Subject to the same rules, another unprivileged thread can also make these "
5831 "changes, as long as the effective user ID of the thread making the change "
5832 "matches the real or effective user ID of the target thread."
5833 msgstr ""
5834 "ある非特権スレッドが別のスレッドに対してこれらの変更を行う際にも、 同じルール"
5835 "が適用される。変更を行えるのは、変更を行おうとするスレッド の実効ユーザ ID が"
5836 "変更対象のスレッドの実ユーザ ID か実効ユーザ ID と 一致している場合に限られ"
5837 "る。"
5838
5839 #.  commit c02aa73b1d18e43cfd79c2f193b225e84ca497c8
5840 #. type: Plain text
5841 #: build/C/man7/sched.7:528
5842 msgid ""
5843 "Special rules apply for the B<SCHED_IDLE> policy.  In Linux kernels before "
5844 "2.6.39, an unprivileged thread operating under this policy cannot change its "
5845 "policy, regardless of the value of its B<RLIMIT_RTPRIO> resource limit.  In "
5846 "Linux kernels since 2.6.39, an unprivileged thread can switch to either the "
5847 "B<SCHED_BATCH> or the B<SCHED_NORMAL> policy so long as its nice value falls "
5848 "within the range permitted by its B<RLIMIT_NICE> resource limit (see "
5849 "B<getrlimit>(2))."
5850 msgstr ""
5851 "B<SCHED_IDLE> ポリシーの場合には特別なルールが適用される。 2.6.39 より前の "
5852 "Linux カーネルでは、このポリシーで動作する非特権スレッドは、 "
5853 "B<RLIMIT_RTPRIO> リソース上限の値に関わらず、自分のポリシーを変更することがで"
5854 "きない。 2.6.39 以降の Linux カーネルでは、非特権スレッドは、自分の nice 値"
5855 "が B<RLIMIT_NICE> リソース上限 (B<getrlimit>(2) 参照) で許可された範囲である"
5856 "限りは、自分のスケジューリングポリシーを B<SCHED_BATCH> か B<SCHED_NORMAL> ポ"
5857 "リシーに切り替えることができる。"
5858
5859 #. type: Plain text
5860 #: build/C/man7/sched.7:539
5861 msgid ""
5862 "Privileged (B<CAP_SYS_NICE>)  threads ignore the B<RLIMIT_RTPRIO> limit; as "
5863 "with older kernels, they can make arbitrary changes to scheduling policy and "
5864 "priority.  See B<getrlimit>(2)  for further information on B<RLIMIT_RTPRIO>."
5865 msgstr ""
5866 "特権スレッド (B<CAP_SYS_NICE> ケーパビリティを持つスレッド) の場合、 "
5867 "B<RLIMIT_RTPRIO> の制限は無視される; 古いカーネルと同じように、スケジューリン"
5868 "グポリシーと優先度に対し 任意の変更を行うことができる。 B<RLIMIT_RTPRIO> に関"
5869 "するもっと詳しい情報は B<getrlimit>(2)  を参照のこと。"
5870
5871 #. type: SS
5872 #: build/C/man7/sched.7:539
5873 #, no-wrap
5874 msgid "Limiting the CPU usage of real-time and deadline processes"
5875 msgstr "リアルタイムプロセスとデッドラインプロセスの CPU 使用量を制限する"
5876
5877 #. type: Plain text
5878 #: build/C/man7/sched.7:552
5879 msgid ""
5880 "A nonblocking infinite loop in a thread scheduled under the B<SCHED_FIFO>, "
5881 "B<SCHED_RR>, or B<SCHED_DEADLINE> policy will block all threads with lower "
5882 "priority forever.  Prior to Linux 2.6.25, the only way of preventing a "
5883 "runaway real-time process from freezing the system was to run (at the "
5884 "console)  a shell scheduled under a higher static priority than the tested "
5885 "application.  This allows an emergency kill of tested real-time applications "
5886 "that do not block or terminate as expected."
5887 msgstr ""
5888 "B<SCHED_FIFO>, B<SCHED_RR>, B<SCHED_DEADLINE> でスケジューリングされる スレッ"
5889 "ドが停止せずに無限ループに陥ると、 他の全てのより低い優先度のスレッドを永久に"
5890 "停止 (block) させてしまう。 Linux 2.6.25 より前では、 リアルタイムプロセスが"
5891 "暴走してしまい、システムが止まってしまうのを防止する唯一の方法は、 (コンソー"
5892 "ルで) シェルをテスト対象のアプリケーションよりも高い静的優先度で実行すること"
5893 "だけであった。 これによって期待通りに停止したり終了したりしないリアルタイム "
5894 "アプリケーションを緊急終了させることが可能になる。"
5895
5896 #. type: Plain text
5897 #: build/C/man7/sched.7:562
5898 msgid ""
5899 "Since Linux 2.6.25, there are other techniques for dealing with runaway real-"
5900 "time and deadline processes.  One of these is to use the B<RLIMIT_RTTIME> "
5901 "resource limit to set a ceiling on the CPU time that a real-time process may "
5902 "consume.  See B<getrlimit>(2)  for details."
5903 msgstr ""
5904 "Linux 2.6.25 以降では、 暴走したリアルタイムプロセスやデッドラインプロセスを"
5905 "扱う別の方法が提供されている。 一つは B<RLIMIT_RTTIME> リソース上限を使ってリ"
5906 "アルタイムプロセスが消費できる CPU 時間の上限を設定する方法である。 詳細は "
5907 "B<getrlimit>(2) を参照。"
5908
5909 #. type: Plain text
5910 #: build/C/man7/sched.7:570
5911 msgid ""
5912 "Since version 2.6.25, Linux also provides two I</proc> files that can be "
5913 "used to reserve a certain amount of CPU time to be used by non-real-time "
5914 "processes.  Reserving some CPU time in this fashion allows some CPU time to "
5915 "be allocated to (say) a root shell that can be used to kill a runaway "
5916 "process.  Both of these files specify time values in microseconds:"
5917 msgstr ""
5918 "Linux 2.6.25 以降では、 2 つの I</proc> ファイルを使って、リアルタイムでない"
5919 "プロセスが使用できる CPU 時間を一定量予約することができる。 この方法で CPU 時"
5920 "間をいくらか予約しておくことで、 CPU 時間が (例えば) root シェルに割り当てら"
5921 "れ、このシェルから暴走したプロセスを殺すことができる。 これらのファイルでは両"
5922 "方ともマイクロ秒で時間を指定する。"
5923
5924 #. type: TP
5925 #: build/C/man7/sched.7:570
5926 #, no-wrap
5927 msgid "I</proc/sys/kernel/sched_rt_period_us>"
5928 msgstr "I</proc/sys/kernel/sched_rt_period_us>"
5929
5930 #. type: Plain text
5931 #: build/C/man7/sched.7:578
5932 msgid ""
5933 "This file specifies a scheduling period that is equivalent to 100% CPU "
5934 "bandwidth.  The value in this file can range from 1 to B<INT_MAX>, giving an "
5935 "operating range of 1 microsecond to around 35 minutes.  The default value in "
5936 "this file is 1,000,000 (1 second)."
5937 msgstr ""
5938 "このファイルは、 CPU 時間 100% にあたるスケジューリング間隔を指定する。 この"
5939 "ファイルの値として 1 から B<INT_MAX> を指定できる。 この値は実際の時間として"
5940 "は 1 マイクロ秒から約 35 分に相当する。 このファイルのデフォルト値は "
5941 "1,000,000 (1 秒) である。"
5942
5943 #. type: TP
5944 #: build/C/man7/sched.7:578
5945 #, no-wrap
5946 msgid "I</proc/sys/kernel/sched_rt_runtime_us>"
5947 msgstr "I</proc/sys/kernel/sched_rt_runtime_us>"
5948
5949 #. type: Plain text
5950 #: build/C/man7/sched.7:591
5951 msgid ""
5952 "The value in this file specifies how much of the \"period\" time can be used "
5953 "by all real-time and deadline scheduled processes on the system.  The value "
5954 "in this file can range from -1 to B<INT_MAX>-1.  Specifying -1 makes the "
5955 "runtime the same as the period; that is, no CPU time is set aside for non-"
5956 "real-time processes (which was the Linux behavior before kernel 2.6.25).  "
5957 "The default value in this file is 950,000 (0.95 seconds), meaning that 5% of "
5958 "the CPU time is reserved for processes that don't run under a real-time or "
5959 "deadline scheduling policy."
5960 msgstr ""
5961 "このファイルの値は、 システム上のリアルタイムスケジューリングやデッドラインス"
5962 "ケジューリングの全プロセスが使用できる「期間」を指定する。 このファイルの値と"
5963 "して -1 から B<INT_MAX>-1 を指定できる。 -1 を指定すると、実行時間 (runtime) "
5964 "はスケジューリング間隔 (period) と同じになる。 つまり、 CPU 時間はリアルタイ"
5965 "ムでないプロセスには確保されない (カーネル 2.6.25 より前の Linux の動作であ"
5966 "る)。 このファイルのデフォルト値は 950,000 (0.95 秒) である。 これは CPU 時間"
5967 "の 5% がリアルタイムやデッドラインスケジューリングポリシー以外で動作するプロ"
5968 "セスに確保されるという意味する。"
5969
5970 #. type: SS
5971 #: build/C/man7/sched.7:592
5972 #, no-wrap
5973 msgid "Response time"
5974 msgstr "応答時間 (response time)"
5975
5976 #.  as described in
5977 #.  .BR request_irq (9).
5978 #. type: Plain text
5979 #: build/C/man7/sched.7:600
5980 msgid ""
5981 "A blocked high priority thread waiting for I/O has a certain response time "
5982 "before it is scheduled again.  The device driver writer can greatly reduce "
5983 "this response time by using a \"slow interrupt\" interrupt handler."
5984 msgstr ""
5985 "I/O 待ちで停止したより高い優先度のスレッドは再びスケジューリングされる 前にい"
5986 "くらかの応答時間がかかる。デバイスドライバーを書く場合には \"slow interrupt"
5987 "\" 割り込みハンドラーを使用することで この応答時間を劇的に減少させることがで"
5988 "きる。"
5989
5990 #. type: SS
5991 #: build/C/man7/sched.7:600
5992 #, no-wrap
5993 msgid "Miscellaneous"
5994 msgstr "その他"
5995
5996 #. type: Plain text
5997 #: build/C/man7/sched.7:605
5998 msgid ""
5999 "Child processes inherit the scheduling policy and parameters across a "
6000 "B<fork>(2).  The scheduling policy and parameters are preserved across "
6001 "B<execve>(2)."
6002 msgstr ""
6003 "子プロセスは B<fork>(2)  の際に親プロセスのスケジューリングポリシーとパラメー"
6004 "タを継承する。 B<execve>(2)  の前後で、スケジューリングポリシーとパラメータは"
6005 "保持される。"
6006
6007 #. type: Plain text
6008 #: build/C/man7/sched.7:611
6009 msgid ""
6010 "Memory locking is usually needed for real-time processes to avoid paging "
6011 "delays; this can be done with B<mlock>(2)  or B<mlockall>(2)."
6012 msgstr ""
6013 "リアルタイムプロセスは大抵、ページングの待ち時間を避けるために B<mlock>(2)  "
6014 "や B<mlockall>(2)  を使ってメモリロックをしなければならない。"
6015
6016 #. type: Plain text
6017 #: build/C/man7/sched.7:622
6018 msgid ""
6019 "Originally, Standard Linux was intended as a general-purpose operating "
6020 "system being able to handle background processes, interactive applications, "
6021 "and less demanding real-time applications (applications that need to usually "
6022 "meet timing deadlines).  Although the Linux kernel 2.6 allowed for kernel "
6023 "preemption and the newly introduced O(1) scheduler ensures that the time "
6024 "needed to schedule is fixed and deterministic irrespective of the number of "
6025 "active tasks, true real-time computing was not possible up to kernel version "
6026 "2.6.17."
6027 msgstr ""
6028 "もともとは、標準の Linux は一般目的のオペレーティングシステムとして 設計され"
6029 "ており、バックグラウンドプロセスや対話的アプリケーション、 リアルタイム性の要"
6030 "求が厳しくないリアルタイムアプリケーション (普通はタイミングの応答期限 "
6031 "(deadline) を満たす必要があるアプリケーション)  を扱うことができた。 Linux "
6032 "カーネル 2.6 では、 カーネルのプリエンプション (タスクの置き換え) が可能であ"
6033 "り、 新たに導入された O(1) スケジューラにより、 アクティブなタスクの数に関わ"
6034 "らずスケジューリングに必要な時間は 固定で確定的 (deterministic) であることが"
6035 "保証されている。 それにも関わらず、カーネル 2.6.17 までは 真のリアルタイムコ"
6036 "ンピューティングは実現できなかった。"
6037
6038 #. type: SS
6039 #: build/C/man7/sched.7:622
6040 #, no-wrap
6041 msgid "Real-time features in the mainline Linux kernel"
6042 msgstr "本流の Linux カーネルでのリアルタイム機能"
6043
6044 #.  FIXME . Probably this text will need some minor tweaking
6045 #.  by about the time of 2.6.30; ask Carsten Emde about this then.
6046 #. type: Plain text
6047 #: build/C/man7/sched.7:636
6048 msgid ""
6049 "From kernel version 2.6.18 onward, however, Linux is gradually becoming "
6050 "equipped with real-time capabilities, most of which are derived from the "
6051 "former I<realtime-preempt> patches developed by Ingo Molnar, Thomas "
6052 "Gleixner, Steven Rostedt, and others.  Until the patches have been "
6053 "completely merged into the mainline kernel (this is expected to be around "
6054 "kernel version 2.6.30), they must be installed to achieve the best real-time "
6055 "performance.  These patches are named:"
6056 msgstr ""
6057 "カーネル 2.6.18 から現在まで、 Linux は徐々にリアルタイム機能を備えつつ\n"
6058 "あるが、 これらの機能のほとんどは、 Ingo Molnar, Thomas Gleixner,\n"
6059 "Steven Rostedt らによって開発された、 以前の I<realtime-preempt> パッチ\n"
6060 "からのものである。 これらのパッチが本流のカーネルに完全にマージされるま\n"
6061 "では (マージの完了はカーネル 2.6.30 あたりの予定)、 最高のリアルタイム\n"
6062 "性能を達成するには realtime-preempt パッチを 組み込まなければならない。\n"
6063 "これらのパッチは"
6064
6065 #. type: Plain text
6066 #: build/C/man7/sched.7:640
6067 #, no-wrap
6068 msgid "patch-I<kernelversion>-rtI<patchversion>\n"
6069 msgstr "patch-I<kernelversion>-rtI<patchversion>\n"
6070
6071 #. type: Plain text
6072 #: build/C/man7/sched.7:646
6073 msgid ""
6074 "and can be downloaded from E<.UR http://www.kernel.org\\:/pub\\:/linux\\:/"
6075 "kernel\\:/projects\\:/rt/> E<.UE .>"
6076 msgstr ""
6077 "という名前で、 E<.UR http://www.kernel.org\\:/pub\\:/linux\\:/kernel\\:/"
6078 "projects\\:/rt/> E<.UE> からダウンロードできる。"
6079
6080 #. type: Plain text
6081 #: build/C/man7/sched.7:655
6082 msgid ""
6083 "Without the patches and prior to their full inclusion into the mainline "
6084 "kernel, the kernel configuration offers only the three preemption classes "
6085 "B<CONFIG_PREEMPT_NONE>, B<CONFIG_PREEMPT_VOLUNTARY>, and "
6086 "B<CONFIG_PREEMPT_DESKTOP> which respectively provide no, some, and "
6087 "considerable reduction of the worst-case scheduling latency."
6088 msgstr ""
6089 "このパッチが適用されず、かつパッチの内容の本流のカーネルへのマージが 完了する"
6090 "までは、カーネルの設定では B<CONFIG_PREEMPT_NONE>, "
6091 "B<CONFIG_PREEMPT_VOLUNTARY>, B<CONFIG_PREEMPT_DESKTOP> の 3つのプリエンプショ"
6092 "ンクラス (preemption class) だけが提供される。 これらのクラスでは、最悪の場合"
6093 "のスケジューリング遅延がそれぞれ 全く減らない、いくらか減る、かなり減る。"
6094
6095 #. type: Plain text
6096 #: build/C/man7/sched.7:664
6097 msgid ""
6098 "With the patches applied or after their full inclusion into the mainline "
6099 "kernel, the additional configuration item B<CONFIG_PREEMPT_RT> becomes "
6100 "available.  If this is selected, Linux is transformed into a regular real-"
6101 "time operating system.  The FIFO and RR scheduling policies are then used to "
6102 "run a thread with true real-time priority and a minimum worst-case "
6103 "scheduling latency."
6104 msgstr ""
6105 "パッチが適用された場合、またはパッチの内容の本流のカーネルへのマージが 完了し"
6106 "た後では、上記に加えて設定項目として B<CONFIG_PREEMPT_RT> が利用可能になる。"
6107 "この項目を選択すると、 Linux は通常のリアルタイムオペレーティングシステムに変"
6108 "身する。 この場合には、 FIFO と RR のスケジューリングポリシーは、 真のリアル"
6109 "タイム優先度を持つスレッドを最悪の場合のスケジューリング遅延が 最小となる環境"
6110 "で動作させるために使われることになる。"
6111
6112 #. type: Plain text
6113 #: build/C/man7/sched.7:691
6114 msgid ""
6115 "B<chrt>(1), B<taskset>(1), B<getpriority>(2), B<mlock>(2), B<mlockall>(2), "
6116 "B<munlock>(2), B<munlockall>(2), B<nice>(2), B<sched_get_priority_max>(2), "
6117 "B<sched_get_priority_min>(2), B<sched_getscheduler>(2), "
6118 "B<sched_getaffinity>(2), B<sched_getparam>(2), B<sched_rr_get_interval>(2), "
6119 "B<sched_setaffinity>(2), B<sched_setscheduler>(2), B<sched_setparam>(2), "
6120 "B<sched_yield>(2), B<setpriority>(2), B<pthread_getaffinity_np>(3), "
6121 "B<pthread_setaffinity_np>(3), B<sched_getcpu>(3), B<capabilities>(7), "
6122 "B<cpuset>(7)"
6123 msgstr ""
6124 "B<chrt>(1), B<taskset>(1), B<getpriority>(2), B<mlock>(2), B<mlockall>(2), "
6125 "B<munlock>(2), B<munlockall>(2), B<nice>(2), B<sched_get_priority_max>(2), "
6126 "B<sched_get_priority_min>(2), B<sched_getscheduler>(2), "
6127 "B<sched_getaffinity>(2), B<sched_getparam>(2), B<sched_rr_get_interval>(2), "
6128 "B<sched_setaffinity>(2), B<sched_setscheduler>(2), B<sched_setparam>(2), "
6129 "B<sched_yield>(2), B<setpriority>(2), B<pthread_getaffinity_np>(3), "
6130 "B<pthread_setaffinity_np>(3), B<sched_getcpu>(3), B<capabilities>(7), "
6131 "B<cpuset>(7)"
6132
6133 #. type: Plain text
6134 #: build/C/man7/sched.7:695
6135 msgid ""
6136 "I<Programming for the real world - POSIX.4> by Bill O. Gallmeister, O'Reilly "
6137 "& Associates, Inc., ISBN 1-56592-074-0."
6138 msgstr ""
6139 "I<Programming for the real world - POSIX.4> by Bill O. Gallmeister, O'Reilly "
6140 "& Associates, Inc., ISBN 1-56592-074-0."
6141
6142 #. type: Plain text
6143 #: build/C/man7/sched.7:701
6144 msgid ""
6145 "The Linux kernel source files I<Documentation/scheduler/sched-deadline.txt>, "
6146 "I<Documentation/scheduler/sched-rt-group.txt>, I<Documentation/scheduler/"
6147 "sched-design-CFS.txt>, and I<Documentation/scheduler/sched-nice-design.txt>"
6148 msgstr ""
6149 "Linux カーネルソースのファイル I<Documentation/scheduler/sched-deadline."
6150 "txt>, I<Documentation/scheduler/sched-rt-group.txt>, I<Documentation/"
6151 "scheduler/sched-design-CFS.txt>, I<Documentation/scheduler/sched-nice-design."
6152 "txt>"
6153
6154 #. type: TH
6155 #: build/C/man2/setns.2:8
6156 #, no-wrap
6157 msgid "SETNS"
6158 msgstr "SETNS"
6159
6160 #. type: TH
6161 #: build/C/man2/setns.2:8
6162 #, no-wrap
6163 msgid "2015-01-10"
6164 msgstr "2015-01-10"
6165
6166 #. type: Plain text
6167 #: build/C/man2/setns.2:11
6168 msgid "setns - reassociate thread with a namespace"
6169 msgstr "setns - スレッドに名前空間を関連付けしなおす"
6170
6171 #. type: Plain text
6172 #: build/C/man2/setns.2:17
6173 #, no-wrap
6174 msgid "B<int setns(int >I<fd>B<, int >I<nstype>B<);>\n"
6175 msgstr "B<int setns(int >I<fd>B<, int >I<nstype>B<);>\n"
6176
6177 #. type: Plain text
6178 #: build/C/man2/setns.2:21
6179 msgid ""
6180 "Given a file descriptor referring to a namespace, reassociate the calling "
6181 "thread with that namespace."
6182 msgstr ""
6183 "名前空間を参照するファイルディスクリプタを指定すると、\n"
6184 "呼び出したスレッドにその名前空間を関連付けしなおす。"
6185
6186 #. type: Plain text
6187 #: build/C/man2/setns.2:34
6188 msgid ""
6189 "The I<fd> argument is a file descriptor referring to one of the namespace "
6190 "entries in a I</proc/[pid]/ns/> directory; see B<namespaces>(7)  for further "
6191 "information on I</proc/[pid]/ns/>.  The calling thread will be reassociated "
6192 "with the corresponding namespace, subject to any constraints imposed by the "
6193 "I<nstype> argument."
6194 msgstr ""
6195 "I<fd> 引き数は、 I</proc/[pid]/ns/> ディレクトリ内の名前空間エントリ\n"
6196 "のいずれかを参照するファイルディスクリプタである。\n"
6197 "I</proc/[pid]/ns/> の詳細は B<namespaces>(7) を参照。\n"
6198 "I<nstype> 引き数で指定された制限の範囲内で、\n"
6199 "呼び出したスレッドに I<fd> に対応する名前空間を関連付けしなおす。"
6200
6201 #. type: Plain text
6202 #: build/C/man2/setns.2:40
6203 msgid ""
6204 "The I<nstype> argument specifies which type of namespace the calling thread "
6205 "may be reassociated with.  This argument can have one of the following "
6206 "values:"
6207 msgstr ""
6208 "I<nstype> 引き数は、呼び出したスレッドがどのタイプの名前空間を\n"
6209 "関連付けしなおすことができるかを指定する。\n"
6210 "この引き数には以下のいずれかの値を指定できる。"
6211
6212 #. type: TP
6213 #: build/C/man2/setns.2:40
6214 #, no-wrap
6215 msgid "B<0>"
6216 msgstr "B<0>"
6217
6218 #. type: Plain text
6219 #: build/C/man2/setns.2:43
6220 msgid "Allow any type of namespace to be joined."
6221 msgstr "どのタイプの名前空間も関連付けることができる。"
6222
6223 #. type: TP
6224 #: build/C/man2/setns.2:43
6225 #, no-wrap
6226 msgid "B<CLONE_NEWIPC> (since Linux 3.0)"
6227 msgstr "B<CLONE_NEWIPC> (Linux 3.0 以降)"
6228
6229 #. type: Plain text
6230 #: build/C/man2/setns.2:47
6231 msgid "I<fd> must refer to an IPC namespace."
6232 msgstr "I<fd> は IPC 名前空間を参照していなければならない。"
6233
6234 #. type: TP
6235 #: build/C/man2/setns.2:47
6236 #, no-wrap
6237 msgid "B<CLONE_NEWNET> (since Linux 3.0)"
6238 msgstr "B<CLONE_NEWNET> (Linux 3.0 以降)"
6239
6240 #. type: Plain text
6241 #: build/C/man2/setns.2:51
6242 msgid "I<fd> must refer to a network namespace."
6243 msgstr "I<fd> はネットワーク名前空間を参照していなければならない。"
6244
6245 #. type: TP
6246 #: build/C/man2/setns.2:51
6247 #, no-wrap
6248 msgid "B<CLONE_NEWNS> (since Linux 3.8)"
6249 msgstr "B<CLONE_NEWNS> (Linux 3.8 以降)"
6250
6251 #. type: Plain text
6252 #: build/C/man2/setns.2:55
6253 msgid "I<fd> must refer to a mount namespace."
6254 msgstr "I<fd> はマウント名前空間を参照していなければならない。"
6255
6256 #. type: TP
6257 #: build/C/man2/setns.2:55 build/C/man2/unshare.2:149
6258 #, no-wrap
6259 msgid "B<CLONE_NEWPID> (since Linux 3.8)"
6260 msgstr "B<CLONE_NEWPID> (Linux 3.8 以降)"
6261
6262 #. type: Plain text
6263 #: build/C/man2/setns.2:59
6264 msgid "I<fd> must refer to a descendant PID namespace."
6265 msgstr "I<fd> は子孫の PID 名前空間を参照していなければならない。"
6266
6267 #. type: TP
6268 #: build/C/man2/setns.2:59 build/C/man2/unshare.2:176
6269 #, no-wrap
6270 msgid "B<CLONE_NEWUSER> (since Linux 3.8)"
6271 msgstr "B<CLONE_NEWUSER> (Linux 3.8 以降)"
6272
6273 #. type: Plain text
6274 #: build/C/man2/setns.2:63
6275 msgid "I<fd> must refer to a user namespace."
6276 msgstr "I<fd> はユーザー名前空間を参照していなければならない。"
6277
6278 #. type: TP
6279 #: build/C/man2/setns.2:63
6280 #, no-wrap
6281 msgid "B<CLONE_NEWUTS> (since Linux 3.0)"
6282 msgstr "B<CLONE_NEWUTS> (Linux 3.0 以降)"
6283
6284 #. type: Plain text
6285 #: build/C/man2/setns.2:67
6286 msgid "I<fd> must refer to a UTS namespace."
6287 msgstr "I<fd> は UTS 名前空間を参照していなければならない。"
6288
6289 #. type: Plain text
6290 #: build/C/man2/setns.2:82
6291 msgid ""
6292 "Specifying I<nstype> as 0 suffices if the caller knows (or does not care)  "
6293 "what type of namespace is referred to by I<fd>.  Specifying a nonzero value "
6294 "for I<nstype> is useful if the caller does not know what type of namespace "
6295 "is referred to by I<fd> and wants to ensure that the namespace is of a "
6296 "particular type.  (The caller might not know the type of the namespace "
6297 "referred to by I<fd> if the file descriptor was opened by another process "
6298 "and, for example, passed to the caller via a UNIX domain socket.)"
6299 msgstr ""
6300 "呼び出し側が I<fd> がどのタイプの名前空間を参照しているかを知っている\n"
6301 "(もしくは気にする必要がない) 場合には、 I<nstype> に 0 を指定すれば十分\n"
6302 "である。呼び出し側が I<fd> がどのタイプの名前空間を参照しているかを\n"
6303 "知っておらず、かつ、特定のタイプの名前空間であることを保証したい場合、\n"
6304 "I<nstype> に 0 以外の値を指定するとよい。 (ファイルディスクリプタが別の\n"
6305 "プロセスによりオープンされ、例えば、UNIX ドメインソケット経由で呼び出し\n"
6306 "側に渡された場合などでは、呼び出し側が I<fd> がどのタイプの名前空間を\n"
6307 "参照しているかを知らない可能性がある。)"
6308
6309 #. type: Plain text
6310 #: build/C/man2/setns.2:97
6311 msgid ""
6312 "B<CLONE_NEWPID> behaves somewhat differently from the other I<nstype> "
6313 "values: reassociating the calling thread with a PID namespace only changes "
6314 "the PID namespace that child processes of the caller will be created in; it "
6315 "does not change the PID namespace of the caller itself.  Reassociating with "
6316 "a PID namespace is only allowed if the PID namespace specified by I<fd> is a "
6317 "descendant (child, grandchild, etc.)  of the PID namespace of the caller.  "
6318 "For further details on PID namespaces, see B<pid_namespaces>(7)."
6319 msgstr ""
6320 "B<CLONE_NEWPID> は他の I<nstype> 値の場合と少し違った動作をする。 呼び出し元"
6321 "スレッドを PID 名前空間に関連付けし直すと、 呼び出し元の子プロセスが作成され"
6322 "る PID 名前空間が変更されるだけである。 呼び出し元自身の PID 名前空間は変更さ"
6323 "れない。 PID 名前空間を関連付けし直すことができるのは、 I<fd> で指定された "
6324 "PID 名前空間が呼び出し元の PID 名前空間の子孫 (子プロセス、孫プロセスなど) の"
6325 "場合だけである。 PID 名前空間の詳細は B<pid_namespaces>(7) を参照。"
6326
6327 #.  See kernel/user_namespace.c:userns_install() [3.8 source]
6328 #.  commit e66eded8309ebf679d3d3c1f5820d1f2ca332c71
6329 #.  https://lwn.net/Articles/543273/
6330 #. type: Plain text
6331 #: build/C/man2/setns.2:124
6332 msgid ""
6333 "A process reassociating itself with a user namespace must have the "
6334 "B<CAP_SYS_ADMIN> capability in the target user namespace.  Upon successfully "
6335 "joining a user namespace, a process is granted all capabilities in that "
6336 "namespace, regardless of its user and group IDs.  A multithreaded process "
6337 "may not change user namespace with B<setns>().  It is not permitted to use "
6338 "B<setns>()  to reenter the caller's current user namespace.  This prevents a "
6339 "caller that has dropped capabilities from regaining those capabilities via a "
6340 "call to B<setns>().  For security reasons, a process can't join a new user "
6341 "namespace if it is sharing filesystem-related attributes (the attributes "
6342 "whose sharing is controlled by the B<clone>(2)  B<CLONE_FS> flag) with "
6343 "another process.  For further details on user namespaces, see "
6344 "B<user_namespaces>(7)."
6345 msgstr ""
6346 "プロセスが自分自身をユーザー名前空間に再関連付けするには、 そのプロセスは変更"
6347 "後のユーザー名前空間において B<CAP_SYS_ADMIN> ケーパビリティを持っていなけれ"
6348 "ばならない。 ユーザー名前空間への参加に成功すると、 そのユーザー ID やグルー"
6349 "プ ID に関わらず、 プロセスにはその名前空間におけるすべてのケーパビリティが認"
6350 "められる。 マルチスレッドのプロセスは B<setns>() でユーザー名前空間を変更でき"
6351 "ない。 B<setns>() を使って、呼び出し元が現在のユーザー名前空間に再度入ること"
6352 "は認められていない。 これにより、 いくつかのケーパビリティを外した呼び出し元"
6353 "が B<setns>() を呼び出すことでそれらのケーパビリティを再度得ることを防ぐこと"
6354 "ができる。 セキュリティ上の理由から、 ファイルシステム関連の属性 (共有が "
6355 "B<clone>(2) B<CLONE_FS> フラグで制御される属性) を別のプロセスと共有している"
6356 "場合、 プロセスは新しいユーザー名前空間に参加できない。 ユーザー名前空間の詳"
6357 "細は B<user_namespaces>(7) を参照。"
6358
6359 #.  Above check is in fs/namespace.c:mntns_install() [3.8 source]
6360 #. type: Plain text
6361 #: build/C/man2/setns.2:138
6362 msgid ""
6363 "A process may not be reassociated with a new mount namespace if it is "
6364 "multithreaded.  Changing the mount namespace requires that the caller "
6365 "possess both B<CAP_SYS_CHROOT> and B<CAP_SYS_ADMIN> capabilities in its own "
6366 "user namespace and B<CAP_SYS_ADMIN> in the target mount namespace.  See "
6367 "B<user_namespaces>(7)  for details on the interaction of user namespaces and "
6368 "mount namespaces."
6369 msgstr ""
6370 "プロセスがマルチスレッドの場合、そのプロセスを新しいマウント名前空間に関連付"
6371 "けし直すことは許可されていない。 マウント名前空間を変更するには、呼び出し元の"
6372 "プロセスが、 自分自身のユーザー名前空間において B<CAP_SYS_CHROOT> と "
6373 "B<CAP_SYS_ADMIN> の両方のケーパビリティを持っており、 変更後のマウント名前空"
6374 "間で B<CAP_SYS_ADMIN> ケーパビリティを持っていなければならない。 ユーザー名前"
6375 "空間とマウント名前空間の関係の詳細は B<user_namespaces>(7) を参照。"
6376
6377 #. type: Plain text
6378 #: build/C/man2/setns.2:145
6379 #, fuzzy
6380 #| msgid ""
6381 #| "On success, I<setns>()  returns 0.  On failure, -1 is returned and "
6382 #| "I<errno> is set to indicate the error."
6383 msgid ""
6384 "On success, B<setns>()  returns 0.  On failure, -1 is returned and I<errno> "
6385 "is set to indicate the error."
6386 msgstr ""
6387 "成功すると I<setns>() は 0 を返す。\n"
6388 "失敗すると、 -1 が返され、 I<errno> にエラーを示す値が設定される。"
6389
6390 #. type: Plain text
6391 #: build/C/man2/setns.2:150
6392 msgid "I<fd> is not a valid file descriptor."
6393 msgstr "I<fd> が有効なファイルディスクリプタではない。"
6394
6395 #. type: Plain text
6396 #: build/C/man2/setns.2:155
6397 msgid ""
6398 "I<fd> refers to a namespace whose type does not match that specified in "
6399 "I<nstype>."
6400 msgstr ""
6401 "I<fd> が I<nstype> で指定されたタイプと一致しない名前空間を参照している。"
6402
6403 #. type: Plain text
6404 #: build/C/man2/setns.2:159
6405 msgid ""
6406 "There is problem with reassociating the thread with the specified namespace."
6407 msgstr "スレッドを指定された名前空間に関連付けし直す際に問題が発生した。"
6408
6409 #. type: Plain text
6410 #: build/C/man2/setns.2:164
6411 msgid ""
6412 "The caller tried to join an ancestor (parent, grandparent, etc...)  pid "
6413 "namespace."
6414 msgstr "呼び出し元が先祖 (親や親の親など) の PID 名前空間に参加しようとした。"
6415
6416 #. type: Plain text
6417 #: build/C/man2/setns.2:168
6418 msgid ""
6419 "The caller attempted to join the user namespace in which it is already a "
6420 "member."
6421 msgstr "自分がすでにメンバーとなっているユーザー名前空間に参加しようとした。"
6422
6423 #.  commit e66eded8309ebf679d3d3c1f5820d1f2ca332c71
6424 #. type: Plain text
6425 #: build/C/man2/setns.2:175
6426 msgid ""
6427 "The caller shares filesystem (B<CLONE_FS>)  state (in particular, the root "
6428 "directory)  with other processes and tried to join a new user namespace."
6429 msgstr ""
6430 "呼び出し元が他のプロセスとファイルシステム状態 (特に root ディレクトリ) を共"
6431 "有していて (B<CLONE_FS>)、 新しいユーザー名前空間に参加しようとした。"
6432
6433 #.  See kernel/user_namespace.c::userns_install() [kernel 3.15 sources]
6434 #. type: Plain text
6435 #: build/C/man2/setns.2:179
6436 msgid "The caller is multithreaded and tried to join a new user namespace."
6437 msgstr ""
6438 "呼び出し元プロセスがマルチスレッドで、新しいユーザー名前空間に参加しようとし"
6439 "た。"
6440
6441 #. type: Plain text
6442 #: build/C/man2/setns.2:182
6443 msgid "Cannot allocate sufficient memory to change the specified namespace."
6444 msgstr "指定された名前空間に変更するのに必要なメモリが割り当てられない。"
6445
6446 #. type: Plain text
6447 #: build/C/man2/setns.2:186
6448 msgid ""
6449 "The calling thread did not have the required capability for this operation."
6450 msgstr ""
6451 "呼び出し元スレッドはこの操作を行うのに必要なケーパビリティを持っていなかっ"
6452 "た。"
6453
6454 #. type: Plain text
6455 #: build/C/man2/setns.2:191
6456 msgid ""
6457 "The B<setns>()  system call first appeared in Linux in kernel 3.0; library "
6458 "support was added to glibc in version 2.14."
6459 msgstr ""
6460 "B<setns>() システムコールはカーネル 3.0 で Linux に初めて登場した。\n"
6461 "ライブラリによるサポートは glibc バージョン 2.14 を追加された。"
6462
6463 #. type: Plain text
6464 #: build/C/man2/setns.2:195
6465 msgid "The B<setns>()  system call is Linux-specific."
6466 msgstr "B<setns>() システムコールは Linux 固有である。"
6467
6468 #. type: Plain text
6469 #: build/C/man2/setns.2:201
6470 msgid ""
6471 "Not all of the attributes that can be shared when a new thread is created "
6472 "using B<clone>(2)  can be changed using B<setns>()."
6473 msgstr ""
6474 "新しいスレッドが B<clone>(2) を使って作成された際に共有できる全ての属性を、\n"
6475 "B<setns>() を使って変更できるわけではない。"
6476
6477 #. type: Plain text
6478 #: build/C/man2/setns.2:210
6479 msgid ""
6480 "The program below takes two or more arguments.  The first argument specifies "
6481 "the pathname of a namespace file in an existing I</proc/[pid]/ns/> "
6482 "directory.  The remaining arguments specify a command and its arguments.  "
6483 "The program opens the namespace file, joins that namespace using B<setns>(), "
6484 "and executes the specified command inside that namespace."
6485 msgstr ""
6486 "以下のプログラムは 2 つ以上の引き数を取る。 最初の引き数には、 既存の I</"
6487 "proc/[pid]/ns/> ディレクトリの名前空間ファイルのパス名を指定する。 残りの引き"
6488 "数は、コマンドとその引き数を指定する。 このプログラムは名前空間ファイルをオー"
6489 "プンし、 B<setns>() を使って名前空間に参加し、 指定されたコマンドをその名前空"
6490 "間内で実行する。"
6491
6492 #. type: Plain text
6493 #: build/C/man2/setns.2:220
6494 msgid ""
6495 "The following shell session demonstrates the use of this program (compiled "
6496 "as a binary named I<ns_exec>)  in conjunction with the B<CLONE_NEWUTS> "
6497 "example program in the B<clone>(2)  man page (complied as a binary named "
6498 "I<newuts>)."
6499 msgstr ""
6500 "以下のシェルセッションでは、 このプログラム (I<ns_exec> という名前のバイナリ"
6501 "としてコンパイルされている)を、 B<clone>(2) のマニュアルページの "
6502 "B<CLONE_NEWUTS> のサンプルプログラムと組み合わせて使っている。"
6503
6504 #. type: Plain text
6505 #: build/C/man2/setns.2:228
6506 msgid ""
6507 "We begin by executing the example program in B<clone>(2)  in the "
6508 "background.  That program creates a child in a separate UTS namespace.  The "
6509 "child changes the hostname in its namespace, and then both processes display "
6510 "the hostnames in their UTS namespaces, so that we can see that they are "
6511 "different."
6512 msgstr ""
6513 "まず、 B<clone>(2) のサンプルプログラムをバックグラウンドで実行する。 このプ"
6514 "ログラムは、 別の UTS 名前空間で子プロセスを作成する。 子プロセスは自分の名前"
6515 "空間内でホスト名を変更する。 それから、 親プロセスと子プロセスの両方でそれぞ"
6516 "れの UTS 名前空間のホスト名を表示し、 2 つのホスト名が違うことが確認できる。"
6517
6518 #. type: Plain text
6519 #: build/C/man2/setns.2:240
6520 #, no-wrap
6521 msgid ""
6522 "$ B<su>                   # Need privilege for namespace operations\n"
6523 "Password:\n"
6524 "# B<./newuts bizarro &>\n"
6525 "[1] 3549\n"
6526 "clone() returned 3550\n"
6527 "uts.nodename in child:  bizarro\n"
6528 "uts.nodename in parent: antero\n"
6529 "# B<uname -n>             # Verify hostname in the shell\n"
6530 "antero\n"
6531 msgstr ""
6532 "$ B<su>                   # 名前空間の操作には特権が必要\n"
6533 "Password:\n"
6534 "# B<./newuts bizarro &>\n"
6535 "[1] 3549\n"
6536 "clone() returned 3550\n"
6537 "uts.nodename in child:  bizarro\n"
6538 "uts.nodename in parent: antero\n"
6539 "# B<uname -n>             # シェルでホスト名を確認\n"
6540 "antero\n"
6541
6542 #. type: Plain text
6543 #: build/C/man2/setns.2:247
6544 msgid ""
6545 "We then run the program shown below, using it to execute a shell.  Inside "
6546 "that shell, we verify that the hostname is the one set by the child created "
6547 "by the first program:"
6548 msgstr ""
6549 "次に、以下のプログラムを使ってシェルを実行する。 このシェルの中では、ホスト名"
6550 "が最初のプログラムで作成された子プロセスが設定したホスト名になっていることを"
6551 "確認できる。"
6552
6553 #. type: Plain text
6554 #: build/C/man2/setns.2:253
6555 #, no-wrap
6556 msgid ""
6557 "# B<./ns_exec /proc/3550/ns/uts /bin/bash>\n"
6558 "# B<uname -n>             # Executed in shell started by ns_exec\n"
6559 "bizarro\n"
6560 msgstr ""
6561 "# B<./ns_exec /proc/3550/ns/uts /bin/bash>\n"
6562 "# B<uname -n>             #  ns_exec で起動されたシェル内で実行\n"
6563 "bizarro\n"
6564
6565 #. type: Plain text
6566 #: build/C/man2/setns.2:263
6567 #, no-wrap
6568 msgid ""
6569 "#define _GNU_SOURCE\n"
6570 "#include E<lt>fcntl.hE<gt>\n"
6571 "#include E<lt>sched.hE<gt>\n"
6572 "#include E<lt>unistd.hE<gt>\n"
6573 "#include E<lt>stdlib.hE<gt>\n"
6574 "#include E<lt>stdio.hE<gt>\n"
6575 msgstr ""
6576 "#define _GNU_SOURCE\n"
6577 "#include E<lt>fcntl.hE<gt>\n"
6578 "#include E<lt>sched.hE<gt>\n"
6579 "#include E<lt>unistd.hE<gt>\n"
6580 "#include E<lt>stdlib.hE<gt>\n"
6581 "#include E<lt>stdio.hE<gt>\n"
6582
6583 #. type: Plain text
6584 #: build/C/man2/setns.2:271
6585 #, no-wrap
6586 msgid ""
6587 "int\n"
6588 "main(int argc, char *argv[])\n"
6589 "{\n"
6590 "    int fd;\n"
6591 msgstr ""
6592 "int\n"
6593 "main(int argc, char *argv[])\n"
6594 "{\n"
6595 "    int fd;\n"
6596
6597 #. type: Plain text
6598 #: build/C/man2/setns.2:276
6599 #, no-wrap
6600 msgid ""
6601 "    if (argc E<lt> 3) {\n"
6602 "        fprintf(stderr, \"%s /proc/PID/ns/FILE cmd args...\\en\", argv[0]);\n"
6603 "        exit(EXIT_FAILURE);\n"
6604 "    }\n"
6605 msgstr ""
6606 "    if (argc E<lt> 3) {\n"
6607 "        fprintf(stderr, \"%s /proc/PID/ns/FILE cmd args...\\en\", argv[0]);\n"
6608 "        exit(EXIT_FAILURE);\n"
6609 "    }\n"
6610
6611 #. type: Plain text
6612 #: build/C/man2/setns.2:280
6613 #, no-wrap
6614 msgid ""
6615 "    fd = open(argv[1], O_RDONLY);  /* Get descriptor for namespace */\n"
6616 "    if (fd == -1)\n"
6617 "        errExit(\"open\");\n"
6618 msgstr ""
6619 "    fd = open(argv[1], O_RDONLY);  /* 名前空間のディスクリプタを取得 */\n"
6620 "    if (fd == -1)\n"
6621 "        errExit(\"open\");\n"
6622
6623 #. type: Plain text
6624 #: build/C/man2/setns.2:283
6625 #, no-wrap
6626 msgid ""
6627 "    if (setns(fd, 0) == -1)        /* Join that namespace */\n"
6628 "        errExit(\"setns\");\n"
6629 msgstr ""
6630 "    if (setns(fd, 0) == -1)        /* 名前空間に参加 */\n"
6631 "        errExit(\"setns\");\n"
6632
6633 #. type: Plain text
6634 #: build/C/man2/setns.2:287
6635 #, no-wrap
6636 msgid ""
6637 "    execvp(argv[2], &argv[2]);     /* Execute a command in namespace */\n"
6638 "    errExit(\"execvp\");\n"
6639 "}\n"
6640 msgstr ""
6641 "    execvp(argv[2], &argv[2]);     /* 名前空間内でコマンドを実行 */\n"
6642 "    errExit(\"execvp\");\n"
6643 "}\n"
6644
6645 #. type: Plain text
6646 #: build/C/man2/setns.2:294
6647 msgid ""
6648 "B<clone>(2), B<fork>(2), B<unshare>(2), B<vfork>(2), B<namespaces>(7), "
6649 "B<unix>(7)"
6650 msgstr ""
6651 "B<clone>(2), B<fork>(2), B<unshare>(2), B<vfork>(2), B<namespaces>(7), "
6652 "B<unix>(7)"
6653
6654 #. type: TH
6655 #: build/C/man2/unshare.2:20
6656 #, no-wrap
6657 msgid "UNSHARE"
6658 msgstr "UNSHARE"
6659
6660 #. type: Plain text
6661 #: build/C/man2/unshare.2:23
6662 msgid "unshare - disassociate parts of the process execution context"
6663 msgstr "unshare - プロセス実行コンテキストの一部を分離する"
6664
6665 #. type: Plain text
6666 #: build/C/man2/unshare.2:28
6667 #, no-wrap
6668 msgid "B<int unshare(int >I<flags>B<);>\n"
6669 msgstr "B<int unshare(int >I<flags>B<);>\n"
6670
6671 #. type: Plain text
6672 #: build/C/man2/unshare.2:36
6673 msgid "B<unshare>():"
6674 msgstr "B<unshare>():"
6675
6676 #. type: Plain text
6677 #: build/C/man2/unshare.2:62
6678 msgid ""
6679 "B<unshare>()  allows a process to disassociate parts of its execution "
6680 "context that are currently being shared with other processes.  Part of the "
6681 "execution context, such as the mount namespace, is shared implicitly when a "
6682 "new process is created using B<fork>(2)  or B<vfork>(2), while other parts, "
6683 "such as virtual memory, may be shared by explicit request when creating a "
6684 "process using B<clone>(2)."
6685 msgstr ""
6686 "B<unshare>()  を使うと、プロセスは他のプロセスと現在共有している 実行コンテキ"
6687 "ストの一部を分離することができる。 実行コンテキストの一部、たとえばマウント名"
6688 "前空間 (mount namespace)  などは、新しいプロセスを B<fork>(2)  または "
6689 "B<vfork>(2)  を使って生成したときに、暗黙のうちに共有される。 一方、仮想メモ"
6690 "リなどは、 B<clone>(2)  を使ってプロセスを生成するときに、明示的に共有するこ"
6691 "とを要求できる。"
6692
6693 #. type: Plain text
6694 #: build/C/man2/unshare.2:67
6695 msgid ""
6696 "The main use of B<unshare>()  is to allow a process to control its shared "
6697 "execution context without creating a new process."
6698 msgstr ""
6699 "B<unshare>()  の主な利用法は、プロセスが新しいプロセスを生成することなく、 共"
6700 "有実行コンテキストを制御することである。"
6701
6702 #. type: Plain text
6703 #: build/C/man2/unshare.2:74
6704 msgid ""
6705 "The I<flags> argument is a bit mask that specifies which parts of the "
6706 "execution context should be unshared.  This argument is specified by ORing "
6707 "together zero or more of the following constants:"
6708 msgstr ""
6709 "I<flags> 引き数はビットマスクであり、 実行コンテキストのどの部分の共有を解除"
6710 "するかを表す。 この引き数は、以下の定数の 0 個以上の OR で指定する:"
6711
6712 #. type: TP
6713 #: build/C/man2/unshare.2:74
6714 #, no-wrap
6715 msgid "B<CLONE_FILES>"
6716 msgstr "B<CLONE_FILES>"
6717
6718 #. type: Plain text
6719 #: build/C/man2/unshare.2:82
6720 msgid ""
6721 "Reverse the effect of the B<clone>(2)  B<CLONE_FILES> flag.  Unshare the "
6722 "file descriptor table, so that the calling process no longer shares its file "
6723 "descriptors with any other process."
6724 msgstr ""
6725 "B<clone>(2)  B<CLONE_FILES> フラグの効果を取り消す。 ファイルディスクリプタ"
6726 "テーブルを共有させず、 呼び出し元プロセスは他のプロセスとファイルディスクリプ"
6727 "タを共有しなくなる。"
6728
6729 #. type: TP
6730 #: build/C/man2/unshare.2:82
6731 #, no-wrap
6732 msgid "B<CLONE_FS>"
6733 msgstr "B<CLONE_FS>"
6734
6735 #. type: Plain text
6736 #: build/C/man2/unshare.2:96
6737 msgid ""
6738 "Reverse the effect of the B<clone>(2)  B<CLONE_FS> flag.  Unshare filesystem "
6739 "attributes, so that the calling process no longer shares its root directory "
6740 "(B<chroot>(2)), current directory (B<chdir>(2)), or umask (B<umask>(2))  "
6741 "attributes with any other process."
6742 msgstr ""
6743 "B<clone>(2)  B<CLONE_FS> フラグの効果を取り消す。ファイルシステム属性を共有さ"
6744 "せず、呼び出し元プロセスは、ルートディレクトリ (B<chroot>(2))、カレントディレ"
6745 "クトリ (B<chdir>(2))、 umask (B<umask>(2)) を他のプロセスと共有しなくなる。"
6746
6747 #. type: Plain text
6748 #: build/C/man2/unshare.2:113
6749 msgid ""
6750 "This flag has the same effect as the B<clone>(2)  B<CLONE_NEWIPC> flag.  "
6751 "Unshare the System\\ V IPC namespace, so that the calling process has a "
6752 "private copy of the System\\ V IPC namespace which is not shared with any "
6753 "other process.  Specifying this flag automatically implies B<CLONE_SYSVSEM> "
6754 "as well.  Use of B<CLONE_NEWIPC> requires the B<CAP_SYS_ADMIN> capability."
6755 msgstr ""
6756 "このフラグは B<clone>(2) B<CLONE_NEWIPC> フラグと同じ効果を持つ。\n"
6757 "System\\ V IPC 名前空間を共有せず、呼び出し元プロセスは 他のプロセスとは\n"
6758 "共有しない固有の System\\ V IPC 名前空間のコピーを持つ。 このフラグを指定\n"
6759 "すると、 B<CLONE_SYSVSEM> も暗黙のうちに指定される。 B<CLONE_NEWIPC> を\n"
6760 "使用するには B<CAP_SYS_ADMIN> ケーパビリティが必要である。"
6761
6762 #. type: Plain text
6763 #: build/C/man2/unshare.2:128
6764 msgid ""
6765 "This flag has the same effect as the B<clone>(2)  B<CLONE_NEWNET> flag.  "
6766 "Unshare the network namespace, so that the calling process is moved into a "
6767 "new network namespace which is not shared with any previously existing "
6768 "process.  Use of B<CLONE_NEWNET> requires the B<CAP_SYS_ADMIN> capability."
6769 msgstr ""
6770 "このフラグは B<clone>(2) B<CLONE_NEWNET> フラグと同じ効果を持つ。ネット\n"
6771 "ワーク名前空間を共有せず、呼び出し元プロセスは他のプロセスとは共有しな\n"
6772 "い固有のネットワーク名前空間のコピーを持つ。B<CLONE_NEWNET> を使用する\n"
6773 "には B<CAP_SYS_ADMIN> ケーパビリティが必要である。"
6774
6775 #. type: TP
6776 #: build/C/man2/unshare.2:128
6777 #, no-wrap
6778 msgid "B<CLONE_NEWNS>"
6779 msgstr "B<CLONE_NEWNS>"
6780
6781 #.  These flag name are inconsistent:
6782 #.  CLONE_NEWNS does the same thing in clone(), but CLONE_VM,
6783 #.  CLONE_FS, and CLONE_FILES reverse the action of the clone()
6784 #.  flags of the same name.
6785 #. type: Plain text
6786 #: build/C/man2/unshare.2:149
6787 msgid ""
6788 "This flag has the same effect as the B<clone>(2)  B<CLONE_NEWNS> flag.  "
6789 "Unshare the mount namespace, so that the calling process has a private copy "
6790 "of its namespace which is not shared with any other process.  Specifying "
6791 "this flag automatically implies B<CLONE_FS> as well.  Use of B<CLONE_NEWNS> "
6792 "requires the B<CAP_SYS_ADMIN> capability."
6793 msgstr ""
6794 "このフラグは B<clone>(2) B<CLONE_NEWNS> フラグと同じ効果を持つ。 マウン\n"
6795 "ト名前空間を共有せず、呼び出し元プロセスは 他のプロセスとは共有しない固\n"
6796 "有の名前空間のコピーを持つ。 このフラグを指定すると、 B<CLONE_FS> も暗\n"
6797 "黙のうちに指定される。 B<CLONE_NEWNS> を使用するには B<CAP_SYS_ADMIN>\n"
6798 "ケーパビリティが必要である。"
6799
6800 #. type: Plain text
6801 #: build/C/man2/unshare.2:176
6802 msgid ""
6803 "This flag has the same effect as the B<clone>(2)  B<CLONE_NEWPID> flag.  "
6804 "Unshare the PID namespace, so that the calling process has a new PID "
6805 "namespace for its children which is not shared with any previously existing "
6806 "process.  The calling process is I<not> moved into the new namespace.  The "
6807 "first child created by the calling process will have the process ID 1 and "
6808 "will assume the role of B<init>(1)  in the new namespace.  B<CLONE_NEWPID> "
6809 "automatically implies B<CLONE_THREAD> as well.  Use of B<CLONE_NEWPID> "
6810 "requires the B<CAP_SYS_ADMIN> capability.  For further information, see "
6811 "B<pid_namespaces>(7)."
6812 msgstr ""
6813 "このフラグは B<clone>(2) B<CLONE_NEWPID> フラグと同じ効果を持つ。 PID 名前空"
6814 "間を共有しない。 呼び出し元プロセスは、 すでに存在するどのプロセスとも共有さ"
6815 "れない新しい PID 名前空間を、 自身の子プロセス用に持つことになる。 このプロセ"
6816 "スにより作成される最初の子プロセスはプロセス ID 1 を持ち、 この新しい名前空間"
6817 "において B<init>(1) の役割を持つとみなされる。 B<CLONE_NEWPID> を指定すると、"
6818 "自動的に B<CLONE_THREAD> も指定されたものとみなされる。 B<CLONE_NEWPID> を使"
6819 "用するには B<CAP_SYS_ADMIN> ケーパビリティが必要である。 詳細な情報は "
6820 "B<pid_namespaces>(7) を参照。"
6821
6822 #. type: Plain text
6823 #: build/C/man2/unshare.2:190
6824 msgid ""
6825 "This flag has the same effect as the B<clone>(2)  B<CLONE_NEWUSER> flag.  "
6826 "Unshare the user namespace, so that the calling process is moved into a new "
6827 "user namespace which is not shared with any previously existing process.  As "
6828 "with the child process created by B<clone>(2)  with the B<CLONE_NEWUSER> "
6829 "flag, the caller obtains a full set of capabilities in the new namespace."
6830 msgstr ""
6831 "このフラグは B<clone>(2) B<CLONE_NEWUSER> フラグと同じ効果を持つ。 ユーザー名"
6832 "前空間を共有せず、 呼び出し元プロセスはすでに存在するどのプロセスとも共有され"
6833 "ない新しいユーザー名前空間に移動される。 B<CLONE_NEWUSER> フラグを指定して "
6834 "B<clone>(2) で作成された子プロセスと同様に、 呼び出し元は新しい名前空間ですべ"
6835 "てのケーパビリティを獲得する。"
6836
6837 #.  commit e66eded8309ebf679d3d3c1f5820d1f2ca332c71
6838 #.  https://lwn.net/Articles/543273/
6839 #. type: Plain text
6840 #: build/C/man2/unshare.2:206
6841 msgid ""
6842 "B<CLONE_NEWUSER> requires that the calling process is not threaded; "
6843 "specifying B<CLONE_NEWUSER> automatically implies B<CLONE_THREAD>.  Since "
6844 "Linux 3.9, B<CLONE_NEWUSER> also automatically implies B<CLONE_FS>.  "
6845 "B<CLONE_NEWUSER> requires that the user ID and group ID of the calling "
6846 "process are mapped to user IDs and group IDs in the user namespace of the "
6847 "calling process at the time of the call."
6848 msgstr ""
6849 "B<CLONE_NEWUSER> を使うには、呼び出し元プロセスがスレッド化されていないことが"
6850 "必要である。 B<CLONE_NEWUSER> を指定すると、自動的に B<CLONE_THREAD> が指定さ"
6851 "れたものとみなされる。 Linux 3.9 以降では、 B<CLONE_NEWUSER> が指定された場"
6852 "合 B<CLONE_FS> も指定されたとみなされる。 B<CLONE_NEWUSER> を使うには、呼び出"
6853 "し元プロセスのユーザー ID とグループ ID が、 呼び出した時点で、 呼び出し元プ"
6854 "ロセスのユーザー名前空間のユーザー ID とグループ ID にマッピングされている必"
6855 "要がある。"
6856
6857 #. type: Plain text
6858 #: build/C/man2/unshare.2:223
6859 msgid ""
6860 "This flag has the same effect as the B<clone>(2)  B<CLONE_NEWUTS> flag.  "
6861 "Unshare the UTS IPC namespace, so that the calling process has a private "
6862 "copy of the UTS namespace which is not shared with any other process.  Use "
6863 "of B<CLONE_NEWUTS> requires the B<CAP_SYS_ADMIN> capability."
6864 msgstr ""
6865 "このフラグは B<clone>(2) B<CLONE_NEWUTS> フラグと同じ効果を持つ。 UTS\n"
6866 "IPC 名前空間を共有せず、呼び出し元プロセスは他のプロセスとは共有しない\n"
6867 "固有の UTS IPC 名前空間のコピーを持つ。 このフラグを指定すると、\n"
6868 "B<CLONE_FS> も暗黙のうちに指定される。B<CLONE_NEWUTS> を使用するには\n"
6869 "B<CAP_SYS_ADMIN> ケーパビリティが必要である。"
6870
6871 #. type: TP
6872 #: build/C/man2/unshare.2:223
6873 #, no-wrap
6874 msgid "B<CLONE_SYSVSEM> (since Linux 2.6.26)"
6875 msgstr "B<CLONE_SYSVSEM> (Linux 2.6.26 以降)"
6876
6877 #.  commit 9edff4ab1f8d82675277a04e359d0ed8bf14a7b7
6878 #.  CLONE_NEWNS If CLONE_SIGHAND is set and signals are also being shared
6879 #.  (i.e., current->signal->count > 1), force CLONE_THREAD.
6880 #. type: Plain text
6881 #: build/C/man2/unshare.2:243
6882 msgid ""
6883 "This flag reverses the effect of the B<clone>(2)  B<CLONE_SYSVSEM> flag.  "
6884 "Unshare System\\ V semaphore adjustment (I<semadj>)  values, so that the "
6885 "calling process has a new empty I<semadj> list that is not shared with any "
6886 "other process.  If this is the last process that has a reference to the "
6887 "process's current I<semadj> list, then the adjustments in that list are "
6888 "applied to the corresponding semaphores, as described in B<semop>(2)."
6889 msgstr ""
6890 "このフラグは B<clone>(2) B<CLONE_SYSVSEM> フラグの効果を逆転させる。 System"
6891 "\\ V セマフォの調整値 (I<semadj>) を共有せず、 呼び出し元プロセスは他のプロセ"
6892 "スとは共有されない新しい空の I<semadj> リストを持つ。 そのプロセスが、自分の"
6893 "現在の I<semadj> リストへの参照を持つ最後のプロセスであれば、 このリストの調"
6894 "整値は対応するセマフォに適用される (B<semop>(2) に説明がある通り)。"
6895
6896 #
6897 #.  As at 3.9, the following forced implications also apply,
6898 #.  although the relevant flags are not yet implemented.
6899 #.  If CLONE_THREAD is set force CLONE_VM.
6900 #.  If CLONE_VM is set, force CLONE_SIGHAND.
6901 #.  See kernel/fork.c::check_unshare_flags()
6902 #. type: Plain text
6903 #: build/C/man2/unshare.2:270
6904 msgid ""
6905 "In addition, B<CLONE_THREAD>, B<CLONE_SIGHAND>, and B<CLONE_VM> can be "
6906 "specified in I<flags> if the caller is single threaded (i.e., it is not "
6907 "sharing its address space with another process or thread).  In this case, "
6908 "these flags have no effect.  (Note also that specifying B<CLONE_THREAD> "
6909 "automatically implies B<CLONE_VM>, and specifying B<CLONE_VM> automatically "
6910 "implies B<CLONE_SIGHAND>.)  If the process is multithreaded, then the use of "
6911 "these flags results in an error."
6912 msgstr ""
6913 "上記に加えて、 呼び出し元がシングルスレッドの場合 (すなわち別のプロセスやス"
6914 "レッドとアドレス空間を共有していない場合)、 B<CLONE_THREAD>, "
6915 "B<CLONE_SIGHAND>, B<CLONE_VM> を指定することができる。 この場合、 これらのフ"
6916 "ラグは効果を持たない。 (B<CLONE_THREAD> を指定すると自動的に B<CLONE_VM> が指"
6917 "定されたとみなされ、 B<CLONE_VM> を指定すると自動的に B<CLONE_SIGHAND> が指定"
6918 "されたとみなされる点に注意してほしい。) プロセスがマルチスレッドの場合、 これ"
6919 "らのフラグを使用するとエラーとなる。"
6920
6921 #. type: Plain text
6922 #: build/C/man2/unshare.2:277
6923 msgid ""
6924 "If I<flags> is specified as zero, then B<unshare>()  is a no-op; no changes "
6925 "are made to the calling process's execution context."
6926 msgstr ""
6927 "I<flags> に 0 が指定された場合、 B<unshare>()  は何も行わないので、 呼び出し"
6928 "元プロセスの実行コンテキストは、何も変更されない。"
6929
6930 #. type: Plain text
6931 #: build/C/man2/unshare.2:282
6932 msgid ""
6933 "On success, zero returned.  On failure, -1 is returned and I<errno> is set "
6934 "to indicate the error."
6935 msgstr ""
6936 "成功した場合は 0 が返される。 失敗した場合は -1 が返されて、 I<errno> にはエ"
6937 "ラーを示す値が設定される。"
6938
6939 #. type: Plain text
6940 #: build/C/man2/unshare.2:287
6941 msgid "An invalid bit was specified in I<flags>."
6942 msgstr "I<flags> に不正なビットが指定された。"
6943
6944 #. type: Plain text
6945 #: build/C/man2/unshare.2:296
6946 msgid ""
6947 "B<CLONE_THREAD>, B<CLONE_SIGHAND>, or B<CLONE_VM> was specified in I<flags>, "
6948 "and the caller is multithreaded."
6949 msgstr ""
6950 "B<CLONE_THREAD>, B<CLONE_SIGHAND>, B<CLONE_VM> が I<flags> に指定されたが、 "
6951 "呼び出したプロセスはマルチスレッドである。"
6952
6953 #. type: Plain text
6954 #: build/C/man2/unshare.2:300
6955 msgid ""
6956 "Cannot allocate sufficient memory to copy parts of caller's context that "
6957 "need to be unshared."
6958 msgstr ""
6959 "呼び出し元のコンテキストのうち共有を解除する必要がある部分をコピーするため"
6960 "に、 十分なメモリが確保できなかった。"
6961
6962 #. type: Plain text
6963 #: build/C/man2/unshare.2:303
6964 msgid ""
6965 "The calling process did not have the required privileges for this operation."
6966 msgstr "呼び出し元プロセスはこの操作を行うのに必要な特権を持っていなかった。"
6967
6968 #. type: Plain text
6969 #: build/C/man2/unshare.2:334
6970 msgid "The B<unshare>()  system call was added to Linux in kernel 2.6.16."
6971 msgstr "B<unshare>()  システムコールは Linux カーネル 2.6.16 で追加された。"
6972
6973 #. type: Plain text
6974 #: build/C/man2/unshare.2:338
6975 msgid "The B<unshare>()  system call is Linux-specific."
6976 msgstr "B<unshare>()  システムコールは Linux 固有である。"
6977
6978 #.  FIXME all of the following needs to be reviewed for the current kernel
6979 #.  However, we can do unshare(CLONE_SIGHAND) if CLONE_SIGHAND
6980 #.  was not specified when doing clone(); i.e., unsharing
6981 #.  signal handlers is permitted if we are not actually
6982 #.  sharing signal handlers.   mtk
6983 #.  However, we can do unshare(CLONE_VM) if CLONE_VM
6984 #.  was not specified when doing clone(); i.e., unsharing
6985 #.  virtual memory is permitted if we are not actually
6986 #.  sharing virtual memory.   mtk
6987 #. 9) Future Work
6988 #. --------------
6989 #. The current implementation of unshare does not allow unsharing of
6990 #. signals and signal handlers. Signals are complex to begin with and
6991 #. to unshare signals and/or signal handlers of a currently running
6992 #. process is even more complex. If in the future there is a specific
6993 #. need to allow unsharing of signals and/or signal handlers, it can
6994 #. be incrementally added to unshare without affecting legacy
6995 #. applications using unshare.
6996 #. type: Plain text
6997 #: build/C/man2/unshare.2:372
6998 msgid ""
6999 "Not all of the process attributes that can be shared when a new process is "
7000 "created using B<clone>(2)  can be unshared using B<unshare>().  In "
7001 "particular, as at kernel 3.8, B<unshare>()  does not implement flags that "
7002 "reverse the effects of B<CLONE_SIGHAND>, B<CLONE_THREAD>, or B<CLONE_VM>.  "
7003 "Such functionality may be added in the future, if required."
7004 msgstr ""
7005 "B<clone>(2)  で新しいプロセスを生成したときに共有される全てのプロセス属性"
7006 "を、 B<unshare>()  によって共有の解除ができるわけではない。 特に、カーネル "
7007 "3.8 時点では、 B<unshare>()  に B<CLONE_SIGHAND>, B<CLONE_THREAD>, "
7008 "B<CLONE_VM> の効果を取り消すためのフラグが実装されていない。 これらの機能は、"
7009 "必要であれば将来追加されるかもしれない。"
7010
7011 #. type: Plain text
7012 #: build/C/man2/unshare.2:381
7013 msgid ""
7014 "The program below provides a simple implementation of the B<unshare>(1)  "
7015 "command, which unshares one or more namespaces and executes the command "
7016 "supplied in its command-line arguments.  Here's an example of the use of "
7017 "this program, running a shell in a new mount namespace, and verifying that "
7018 "the original shell and the new shell are in separate mount namespaces:"
7019 msgstr ""
7020 "以下のプログラムは B<unshare>(1) コマンドの簡単な実装である。 このコマンド"
7021 "は、1 つ以上の名前空間の unshare を行ってから、 コマンドライン引き数で指定さ"
7022 "れたコマンドを実行する。 以下はこのプログラムの使用例である。 新しいマウント"
7023 "名前空間でシェルを実行し、 元のシェルと新しいシェルが別のマウント名前空間にい"
7024 "ることを確認している。"
7025
7026 #. type: Plain text
7027 #: build/C/man2/unshare.2:390
7028 #, no-wrap
7029 msgid ""
7030 "$ B<readlink /proc/$$/ns/mnt>\n"
7031 "mnt:[4026531840]\n"
7032 "$ B<sudo ./unshare -m /bin/bash>\n"
7033 "[sudo] password for cecilia:\n"
7034 "# B<readlink /proc/$$/ns/mnt>\n"
7035 "mnt:[4026532325]\n"
7036 msgstr ""
7037 "$ B<readlink /proc/$$/ns/mnt>\n"
7038 "mnt:[4026531840]\n"
7039 "$ B<sudo ./unshare -m /bin/bash>\n"
7040 "[sudo] password for cecilia:\n"
7041 "# B<readlink /proc/$$/ns/mnt>\n"
7042 "mnt:[4026532325]\n"
7043
7044 #. type: Plain text
7045 #: build/C/man2/unshare.2:396
7046 msgid ""
7047 "The differing output of the two B<readlink>(1)  commands shows that the two "
7048 "shells are in different mount namespaces."
7049 msgstr ""
7050 "2 つの B<readlink>(1) コマンドの出力が違うことから、 2 つのシェルは異なるマウ"
7051 "ント名前空間にいることが分かる。"
7052
7053 #. type: Plain text
7054 #: build/C/man2/unshare.2:400
7055 #, no-wrap
7056 msgid "/* unshare.c\n"
7057 msgstr "/* unshare.c\n"
7058
7059 #. type: Plain text
7060 #: build/C/man2/unshare.2:409
7061 #, no-wrap
7062 msgid ""
7063 "   A simple implementation of the unshare(1) command: unshare\n"
7064 "   namespaces and execute a command.\n"
7065 "*/\n"
7066 "#define _GNU_SOURCE\n"
7067 "#include E<lt>sched.hE<gt>\n"
7068 "#include E<lt>unistd.hE<gt>\n"
7069 "#include E<lt>stdlib.hE<gt>\n"
7070 "#include E<lt>stdio.hE<gt>\n"
7071 msgstr ""
7072 "   A simple implementation of the unshare(1) command: unshare\n"
7073 "   namespaces and execute a command.\n"
7074 "*/\n"
7075 "#define _GNU_SOURCE\n"
7076 "#include E<lt>sched.hE<gt>\n"
7077 "#include E<lt>unistd.hE<gt>\n"
7078 "#include E<lt>stdlib.hE<gt>\n"
7079 "#include E<lt>stdio.hE<gt>\n"
7080
7081 #. type: Plain text
7082 #: build/C/man2/unshare.2:412
7083 #, no-wrap
7084 msgid ""
7085 "/* A simple error-handling function: print an error message based\n"
7086 "   on the value in \\(aqerrno\\(aq and terminate the calling process */\n"
7087 msgstr ""
7088 "/* A simple error-handling function: print an error message based\n"
7089 "   on the value in \\(aqerrno\\(aq and terminate the calling process */\n"
7090
7091 #. type: Plain text
7092 #: build/C/man2/unshare.2:429
7093 #, no-wrap
7094 msgid ""
7095 "static void\n"
7096 "usage(char *pname)\n"
7097 "{\n"
7098 "    fprintf(stderr, \"Usage: %s [options] program [arg...]\\en\", pname);\n"
7099 "    fprintf(stderr, \"Options can be:\\en\");\n"
7100 "    fprintf(stderr, \"    -i   unshare IPC namespace\\en\");\n"
7101 "    fprintf(stderr, \"    -m   unshare mount namespace\\en\");\n"
7102 "    fprintf(stderr, \"    -n   unshare network namespace\\en\");\n"
7103 "    fprintf(stderr, \"    -p   unshare PID namespace\\en\");\n"
7104 "    fprintf(stderr, \"    -u   unshare UTS namespace\\en\");\n"
7105 "    fprintf(stderr, \"    -U   unshare user namespace\\en\");\n"
7106 "    exit(EXIT_FAILURE);\n"
7107 "}\n"
7108 msgstr ""
7109 "static void\n"
7110 "usage(char *pname)\n"
7111 "{\n"
7112 "    fprintf(stderr, \"Usage: %s [options] program [arg...]\\en\", pname);\n"
7113 "    fprintf(stderr, \"Options can be:\\en\");\n"
7114 "    fprintf(stderr, \"    -i   unshare IPC namespace\\en\");\n"
7115 "    fprintf(stderr, \"    -m   unshare mount namespace\\en\");\n"
7116 "    fprintf(stderr, \"    -n   unshare network namespace\\en\");\n"
7117 "    fprintf(stderr, \"    -p   unshare PID namespace\\en\");\n"
7118 "    fprintf(stderr, \"    -u   unshare UTS namespace\\en\");\n"
7119 "    fprintf(stderr, \"    -U   unshare user namespace\\en\");\n"
7120 "    exit(EXIT_FAILURE);\n"
7121 "}\n"
7122
7123 #. type: Plain text
7124 #: build/C/man2/unshare.2:434
7125 #, no-wrap
7126 msgid ""
7127 "int\n"
7128 "main(int argc, char *argv[])\n"
7129 "{\n"
7130 "    int flags, opt;\n"
7131 msgstr ""
7132 "int\n"
7133 "main(int argc, char *argv[])\n"
7134 "{\n"
7135 "    int flags, opt;\n"
7136
7137 #. type: Plain text
7138 #: build/C/man2/unshare.2:436
7139 #, no-wrap
7140 msgid "    flags = 0;\n"
7141 msgstr "    flags = 0;\n"
7142
7143 #. type: Plain text
7144 #: build/C/man2/unshare.2:448
7145 #, no-wrap
7146 msgid ""
7147 "    while ((opt = getopt(argc, argv, \"imnpuU\")) != -1) {\n"
7148 "        switch (opt) {\n"
7149 "        case \\(aqi\\(aq: flags |= CLONE_NEWIPC;        break;\n"
7150 "        case \\(aqm\\(aq: flags |= CLONE_NEWNS;         break;\n"
7151 "        case \\(aqn\\(aq: flags |= CLONE_NEWNET;        break;\n"
7152 "        case \\(aqp\\(aq: flags |= CLONE_NEWPID;        break;\n"
7153 "        case \\(aqu\\(aq: flags |= CLONE_NEWUTS;        break;\n"
7154 "        case \\(aqU\\(aq: flags |= CLONE_NEWUSER;       break;\n"
7155 "        default:  usage(argv[0]);\n"
7156 "        }\n"
7157 "    }\n"
7158 msgstr ""
7159 "    while ((opt = getopt(argc, argv, \"imnpuU\")) != -1) {\n"
7160 "        switch (opt) {\n"
7161 "        case \\(aqi\\(aq: flags |= CLONE_NEWIPC;        break;\n"
7162 "        case \\(aqm\\(aq: flags |= CLONE_NEWNS;         break;\n"
7163 "        case \\(aqn\\(aq: flags |= CLONE_NEWNET;        break;\n"
7164 "        case \\(aqp\\(aq: flags |= CLONE_NEWPID;        break;\n"
7165 "        case \\(aqu\\(aq: flags |= CLONE_NEWUTS;        break;\n"
7166 "        case \\(aqU\\(aq: flags |= CLONE_NEWUSER;       break;\n"
7167 "        default:  usage(argv[0]);\n"
7168 "        }\n"
7169 "    }\n"
7170
7171 #. type: Plain text
7172 #: build/C/man2/unshare.2:451
7173 #, no-wrap
7174 msgid ""
7175 "    if (optind E<gt>= argc)\n"
7176 "        usage(argv[0]);\n"
7177 msgstr ""
7178 "    if (optind E<gt>= argc)\n"
7179 "        usage(argv[0]);\n"
7180
7181 #. type: Plain text
7182 #: build/C/man2/unshare.2:454
7183 #, no-wrap
7184 msgid ""
7185 "    if (unshare(flags) == -1)\n"
7186 "        errExit(\"unshare\");\n"
7187 msgstr ""
7188 "    if (unshare(flags) == -1)\n"
7189 "        errExit(\"unshare\");\n"
7190
7191 #. type: Plain text
7192 #: build/C/man2/unshare.2:458
7193 #, no-wrap
7194 msgid ""
7195 "    execvp(argv[optind], &argv[optind]);\n"
7196 "    errExit(\"execvp\");\n"
7197 "}\n"
7198 msgstr ""
7199 "    execvp(argv[optind], &argv[optind]);\n"
7200 "    errExit(\"execvp\");\n"
7201 "}\n"
7202
7203 #. type: Plain text
7204 #: build/C/man2/unshare.2:467
7205 msgid ""
7206 "B<unshare>(1), B<clone>(2), B<fork>(2), B<kcmp>(2), B<setns>(2), "
7207 "B<vfork>(2), B<namespaces>(7)"
7208 msgstr ""
7209 "B<unshare>(1), B<clone>(2), B<fork>(2), B<kcmp>(2), B<setns>(2), "
7210 "B<vfork>(2), B<namespaces>(7)"
7211
7212 #. type: Plain text
7213 #: build/C/man2/unshare.2:469
7214 msgid "I<Documentation/unshare.txt> in the Linux kernel source tree"
7215 msgstr "Linux カーネルソース内の I<Documentation/unshare.txt>"
7216
7217 #~ msgid "COLOPHON"
7218 #~ msgstr "この文書について"
7219
7220 #~ msgid ""
7221 #~ "This page is part of release 3.77 of the Linux I<man-pages> project.  A "
7222 #~ "description of the project, information about reporting bugs, and the "
7223 #~ "latest version of this page, can be found at \\%http://www.kernel.org/doc/"
7224 #~ "man-pages/."
7225 #~ msgstr ""
7226 #~ "この man ページは Linux I<man-pages> プロジェクトのリリース 3.77 の一部\n"
7227 #~ "である。プロジェクトの説明とバグ報告に関する情報は\n"
7228 #~ "http://www.kernel.org/doc/man-pages/ に書かれている。"
7229
7230 #~ msgid ""
7231 #~ "Use of this flag requires: a kernel configured with the B<CONFIG_SYSVIPC> "
7232 #~ "and B<CONFIG_IPC_NS> options and that the process be privileged "
7233 #~ "(B<CAP_SYS_ADMIN>).  This flag can't be specified in conjunction with "
7234 #~ "B<CLONE_SYSVSEM>."
7235 #~ msgstr ""
7236 #~ "このフラグを使用するためには、 カーネルでオプション B<CONFIG_SYSVIPC> と "
7237 #~ "B<CONFIG_IPC_NS> を有効になっていること、 プロセスが特権 "
7238 #~ "(B<CAP_SYS_ADMIN>)  を持っていることが必要である。 このフラグは "
7239 #~ "B<CLONE_SYSVSEM> と組み合わせて使うことはできない。"
7240
7241 #~ msgid ""
7242 #~ "Use of this flag requires: a kernel configured with the B<CONFIG_NET_NS> "
7243 #~ "option and that the process be privileged (B<CAP_SYS_ADMIN>)."
7244 #~ msgstr ""
7245 #~ "このフラグを使用するためには、 カーネルでオプション B<CONFIG_NET_NS> を有"
7246 #~ "効になっていること、 プロセスが特権 (B<CAP_SYS_ADMIN>)  を持っていることが"
7247 #~ "必要である。"
7248
7249 #~ msgid "Start the child in a new mount namespace."
7250 #~ msgstr "子プロセスを新しいマウント名前空間 (mount namespace) で開始する。"
7251
7252 #~ msgid ""
7253 #~ "Every process lives in a mount namespace.  The I<namespace> of a process "
7254 #~ "is the data (the set of mounts) describing the file hierarchy as seen by "
7255 #~ "that process.  After a B<fork>(2)  or B<clone>()  where the "
7256 #~ "B<CLONE_NEWNS> flag is not set, the child lives in the same mount "
7257 #~ "namespace as the parent.  The system calls B<mount>(2)  and B<umount>(2)  "
7258 #~ "change the mount namespace of the calling process, and hence affect all "
7259 #~ "processes that live in the same namespace, but do not affect processes in "
7260 #~ "a different mount namespace."
7261 #~ msgstr ""
7262 #~ "各プロセスはある一つのマウント名前空間中に存在する。プロセスの I<名前空間 "
7263 #~ "(namespace)> は、そのプロセスから見えるファイル階層を表すデータ (mount の"
7264 #~ "集合) である。 B<CLONE_NEWNS> フラグがセットされずに B<fork>(2)  か "
7265 #~ "B<clone>()  が呼ばれると、子プロセスは親プロセスと同じマウント名前空間に作"
7266 #~ "成される。 システムコール B<mount>(2)、 B<umount>(2)  が呼ばれると呼び出し"
7267 #~ "元のプロセスのマウント名前空間が変更され、この結果 呼び出し元のプロセスと"
7268 #~ "同じ名前空間にいるプロセスはすべて影響を受けるが、 異なるマウント名前空間"
7269 #~ "にいるプロセスは影響を受けない。"
7270
7271 #~ msgid ""
7272 #~ "A PID namespace provides an isolated environment for PIDs: PIDs in a new "
7273 #~ "namespace start at 1, somewhat like a standalone system, and calls to "
7274 #~ "B<fork>(2), B<vfork>(2), or B<clone>()  will produce processes with PIDs "
7275 #~ "that are unique within the namespace."
7276 #~ msgstr ""
7277 #~ "PID 名前空間は、PID に関して分離された環境を提供するものである。 新しい名"
7278 #~ "前空間における PID は 1 から始まり (これはスタンドアロンのシステムと似たよ"
7279 #~ "うな感じ)、 B<fork>(2), B<vfork>(2), B<clone>()  を呼び出すと、その名前空"
7280 #~ "間で一意な PID を持ったプロセスが作成される。"
7281
7282 #~ msgid ""
7283 #~ "The first process created in a new namespace (i.e., the process created "
7284 #~ "using the B<CLONE_NEWPID> flag) has the PID 1, and is the \"init\" "
7285 #~ "process for the namespace.  Children that are orphaned within the "
7286 #~ "namespace will be reparented to this process rather than B<init>(8).  "
7287 #~ "Unlike the traditional B<init> process, the \"init\" process of a PID "
7288 #~ "namespace can terminate, and if it does, all of the processes in the "
7289 #~ "namespace are terminated."
7290 #~ msgstr ""
7291 #~ "新しい名前空間で作成される最初のプロセス (つまり、 B<CLONE_NEWPID> フラグ"
7292 #~ "を使って作成されたプロセス) の PID は 1 であり、 このプロセスはその名前空"
7293 #~ "間における \"init\" プロセスとなる。 この名前空間において孤児 (orphaned) "
7294 #~ "となった子プロセスについては、 B<init>(8)  ではなくこのプロセスが親プロセ"
7295 #~ "スとなる。 昔ながらの B<init> プロセスとは違い、PID 名前空間の \"init\" プ"
7296 #~ "ロセスは終了 (terminated) する ことができ、その場合には、この名前空間の全"
7297 #~ "てのプロセスが終了される。"
7298
7299 #~ msgid ""
7300 #~ "PID namespaces form a hierarchy.  When a new PID namespace is created, "
7301 #~ "the processes in that namespace are visible in the PID namespace of the "
7302 #~ "process that created the new namespace; analogously, if the parent PID "
7303 #~ "namespace is itself the child of another PID namespace, then processes in "
7304 #~ "the child and parent PID namespaces will both be visible in the "
7305 #~ "grandparent PID namespace.  Conversely, the processes in the \"child\" "
7306 #~ "PID namespace do not see the processes in the parent namespace.  The "
7307 #~ "existence of a namespace hierarchy means that each process may now have "
7308 #~ "multiple PIDs: one for each namespace in which it is visible; each of "
7309 #~ "these PIDs is unique within the corresponding namespace.  (A call to "
7310 #~ "B<getpid>(2)  always returns the PID associated with the namespace in "
7311 #~ "which the process lives.)"
7312 #~ msgstr ""
7313 #~ "PID 名前空間間には階層構造が形成される。 新しい PID 名前空間が作成される"
7314 #~ "と、その名前空間のプロセスは、 新しい名前空間を作成したプロセスの PID 名前"
7315 #~ "空間で見える。 同様に、親の PID 名前空間自体が別の PID 名前空間の子供の場"
7316 #~ "合には、 子供の PID 名前空間と親の PID 名前空間のプロセスはどれも 親の親"
7317 #~ "の PID 名前空間でも見えることになる。 反対に、「子供」の PID 名前空間のプ"
7318 #~ "ロセスには、 親の名前空間のプロセスは見えない。 名前空間に階層構造が存在す"
7319 #~ "るということは、個々のプロセスは 複数の PID を持つということを意味してい"
7320 #~ "る。 そのプロセスが見える名前空間一つにつき PID が一つあり、 それぞれの "
7321 #~ "PID は対応する名前空間において一意である。 (B<getpid>(2)  を呼び出すと、常"
7322 #~ "にそのプロセスが存在している名前空間における PID が返される。)"
7323
7324 #~ msgid ""
7325 #~ "After creating the new namespace, it is useful for the child to change "
7326 #~ "its root directory and mount a new procfs instance at I</proc> so that "
7327 #~ "tools such as B<ps>(1)  work correctly.  (If B<CLONE_NEWNS> is also "
7328 #~ "included in I<flags>, then it isn't necessary to change the root "
7329 #~ "directory: a new procfs instance can be mounted directly over I</proc>.)"
7330 #~ msgstr ""
7331 #~ "新しい名前空間の作成後には、 子プロセスにおいて、 B<ps>(1)  といったツール"
7332 #~ "が正しく動作するように、 自身の root ディレクトリを変更し、 I</proc> に新"
7333 #~ "しい procfs インスタンスをマウントするのがよいだろう。 (B<flags> に "
7334 #~ "B<CLONE_NEWNS> も指定されていた場合には、root ディレクトリを変更する必要は"
7335 #~ "なく、 いきなり新しい procfs インスタンスを I</proc> にマウントすることが"
7336 #~ "できる。)"
7337
7338 #~ msgid ""
7339 #~ "Use of this flag requires: a kernel configured with the B<CONFIG_PID_NS> "
7340 #~ "option and that the process be privileged (B<CAP_SYS_ADMIN>).  This flag "
7341 #~ "can't be specified in conjunction with B<CLONE_THREAD>."
7342 #~ msgstr ""
7343 #~ "このフラグを使用するためには、 カーネルでオプション B<CONFIG_PID_NS> を有"
7344 #~ "効になっていること、 プロセスが特権 (B<CAP_SYS_ADMIN>)  を持っていることが"
7345 #~ "必要である。 このフラグは B<CLONE_THREAD> と組み合わせて使うことはできな"
7346 #~ "い。"
7347
7348 #~ msgid ""
7349 #~ "Use of this flag requires: a kernel configured with the B<CONFIG_UTS_NS> "
7350 #~ "option and that the process be privileged (B<CAP_SYS_ADMIN>)."
7351 #~ msgstr ""
7352 #~ "このフラグを使用するためには、 カーネルでオプション B<CONFIG_UTS_NS> を有"
7353 #~ "効になっていること、 プロセスが特権 (B<CAP_SYS_ADMIN>)  を持っていることが"
7354 #~ "必要である。"
7355
7356 #~ msgid "The raw system call interface"
7357 #~ msgstr "素のシステムコールのインターフェース"
7358
7359 #~ msgid ""
7360 #~ "The calling thread did not have the required privilege "
7361 #~ "(B<CAP_SYS_ADMIN>)  for this operation."
7362 #~ msgstr ""
7363 #~ "呼び出したスレッドがこの操作を行うのに必要な特権 (B<CAP_SYS_ADMIN>) を\n"
7364 #~ "持っていなかった。"
7365
7366 #~ msgid ""
7367 #~ "B<sched_setscheduler>()  sets both the scheduling policy and the "
7368 #~ "associated parameters for the thread whose ID is specified in I<pid>.  If "
7369 #~ "I<pid> equals zero, the scheduling policy and parameters of the calling "
7370 #~ "thread will be set.  The interpretation of the argument I<param> depends "
7371 #~ "on the selected policy.  Currently, Linux supports the following \"normal"
7372 #~ "\" (i.e., non-real-time) scheduling policies:"
7373 #~ msgstr ""
7374 #~ "B<sched_setscheduler>()  は I<pid> で指定された ID を持つスレッドのスケ"
7375 #~ "ジューリングポリシーや それに関連するパラメータを設定する。I<pid> が 0 の"
7376 #~ "場合は 呼び出したスレッドのスケジューリングポリシーとパラメータが設定され"
7377 #~ "る。 引き数 I<param> の解釈は選択されたポリシーによる。 現在のところ、"
7378 #~ "Linux では 以下に示す「通常」(リアルタイムでない) スケジューリングポリシー"
7379 #~ "が サポートされている。"
7380
7381 #~ msgid "The semantics of each of these policies are detailed below."
7382 #~ msgstr "これらのポリシーのそれぞれの動作については以下で説明する。"
7383
7384 #~ msgid ""
7385 #~ "The scheduling I<policy> is not one of the recognized policies, I<param> "
7386 #~ "is NULL, or I<param> does not make sense for the I<policy>."
7387 #~ msgstr ""
7388 #~ "スケジューリングポリシー I<policy> が間違っている。\n"
7389 #~ "または I<param> が NULL である。\n"
7390 #~ "または I<param> がそのポリシーでは意味をなさない。"
7391
7392 #~ msgid ""
7393 #~ "The Linux kernel source file I<Documentation/scheduler/sched-rt-group.txt>"
7394 #~ msgstr ""
7395 #~ "Linux カーネルソースファイル I<Documentation/scheduler/sched-rt-group.txt>"
7396
7397 #~ msgid "B<sched_setscheduler>(2)  for a description of Linux scheduling"
7398 #~ msgstr ""
7399 #~ "Linux のスケージュリング (scheduling) については B<sched_setscheduler>(2) "
7400 #~ "を参照。"
7401
7402 #~ msgid "Create a child that executes in a separate UTS namespace"
7403 #~ msgstr "別の UTS 名前空間で動作する子プロセスを作成する"
7404
7405 #~ msgid ""
7406 #~ "B<clone>()  creates a new process, in a manner similar to B<fork>(2).  It "
7407 #~ "is actually a library function layered on top of the underlying "
7408 #~ "B<clone>()  system call, hereinafter referred to as B<sys_clone>.  A "
7409 #~ "description of B<sys_clone> is given toward the end of this page."
7410 #~ msgstr ""
7411 #~ "B<clone>()  は B<fork>(2)  と同じような方法で新しいプロセスを作成する。 "
7412 #~ "B<clone>()  には、ライブラリ関数とその下層にあたる B<clone>()  システム"
7413 #~ "コールが存在する。以下の説明では、システムコールの方を B<sys_clone> と表す"
7414 #~ "こととする。 B<sys_clone> に関する説明はこのマニュアルの最後の方にある。"
7415
7416 #~ msgid ""
7417 #~ "The B<clone>()  and B<sys_clone> calls are Linux-specific and should not "
7418 #~ "be used in programs intended to be portable."
7419 #~ msgstr ""
7420 #~ "B<clone>()  と B<sys_clone> コールは Linux 特有であり、移植を考慮したプロ"
7421 #~ "グラムでは使用すべき ではない。"
7422
7423 #~ msgid ""
7424 #~ "I<Documentation/scheduler/sched-rt-group.txt> in the Linux kernel source "
7425 #~ "tree (since kernel 2.6.25)."
7426 #~ msgstr ""
7427 #~ "Linux カーネルソース内の I<Documentation/scheduler/sched-rt-group.txt> "
7428 #~ "(カーネル 2.6.25 以降)"
7429
7430 #~ msgid ""
7431 #~ "The PID namespace and the mount namespace are not currently supported.  "
7432 #~ "(See the descriptions of B<CLONE_NEWPID> and B<CLONE_NEWNS> in "
7433 #~ "B<clone>(2).)"
7434 #~ msgstr ""
7435 #~ "現在のところ、 PID 名前空間とマウント名前空間はサポートされていない\n"
7436 #~ "(B<clone>(2) の B<CLONE_NEWPID> と B<CLONE_NEWNS> の説明を参照)。"
7437
7438 #~ msgid ""
7439 #~ "If I<pid> is zero, the time quantum for the calling process is written "
7440 #~ "into I<*tp>.  The identified process should be running under the "
7441 #~ "B<SCHED_RR> scheduling policy.  POSIX systems on which "
7442 #~ "B<sched_rr_get_interval>()  is available define "
7443 #~ "B<_POSIX_PRIORITY_SCHEDULING> in I<E<lt>unistd.hE<gt>>."
7444 #~ msgstr ""
7445 #~ "I<pid> がゼロの場合、呼び出したプロセスの時間量が I<*tp> に書き込まれる。"
7446 #~ "指定したプロセスは B<SCHED_RR> スケジューリング方針で稼動している必要があ"
7447 #~ "る。 B<sched_rr_get_interval>()  の使用可能な POSIX システムでは "
7448 #~ "I<E<lt>unistd.hE<gt>> で B<_POSIX_PRIORITY_SCHEDULING> が定義されている。"
7449
7450 #~ msgid ""
7451 #~ "I<From Linux 2.6.25 this flag is deprecated.> You probably never wanted "
7452 #~ "to use it, you certainly shouldn't be using it, and soon it will go away."
7453 #~ msgstr ""
7454 #~ "I<Linux 2.6.25 以降、このフラグは非推奨である。> このフラグを使いたいと思"
7455 #~ "うことは決してないだろうし、 確実に使わないようにすべきである。 このフラグ"
7456 #~ "は近いうちになくなることだろう。"
7457
7458 #~ msgid ""
7459 #~ "Special rules apply for the B<SCHED_IDLE>: an unprivileged process "
7460 #~ "operating under this policy cannot change its policy, regardless of the "
7461 #~ "value of its B<RLIMIT_RTPRIO> resource limit."
7462 #~ msgstr ""
7463 #~ "B<SCHED_IDLE> には特別なルールが適用され、 このポリシーの下で動作する非特"
7464 #~ "権プロセスは、リソース制限 B<RLIMIT_RTPRIO> の値にかかわらず自身のポリシー"
7465 #~ "を変更することができない。"
7466
7467 #~ msgid ""
7468 #~ "I<flags> specified B<CLONE_NEWNS> but the calling process was not "
7469 #~ "privileged (did not have the B<CAP_SYS_ADMIN> capability)."
7470 #~ msgstr ""
7471 #~ "I<flags> に B<CLONE_NEWNS> が指定されたが、呼び出し元プロセスに特権 "
7472 #~ "(B<CAP_SYS_ADMIN> ケーパビリティ) がなかった。"