OSDN Git Service

(split) LDP: Update the version to 3.53 in PO files
[linuxjm/LDP_man-pages.git] / po4a / process / 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: 2013-08-15 19:32+0900\n"
10 "PO-Revision-Date: 2013-08-15 20:29+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/man2/acct.2:31 build/C/man5/acct.5:25
20 #, no-wrap
21 msgid "ACCT"
22 msgstr "ACCT"
23
24 #. type: TH
25 #: build/C/man2/acct.2:31
26 #, no-wrap
27 msgid "2008-06-16"
28 msgstr "2008-06-16"
29
30 #. type: TH
31 #: build/C/man2/acct.2:31 build/C/man5/acct.5:25
32 #: build/C/man7/capabilities.7:48 build/C/man2/capget.2:15
33 #: build/C/man7/cpuset.7:25 build/C/man7/credentials.7:27
34 #: build/C/man2/getgid.2:25 build/C/man2/getgroups.2:31
35 #: build/C/man2/getpid.2:25 build/C/man2/getpriority.2:48
36 #: build/C/man2/getresuid.2:28 build/C/man2/getrlimit.2:64
37 #: build/C/man2/getrusage.2:39 build/C/man2/getsid.2:26
38 #: build/C/man2/getuid.2:26 build/C/man2/iopl.2:33
39 #: build/C/man2/ioprio_set.2:24 build/C/man2/ipc.2:25
40 #: build/C/man2/seteuid.2:29 build/C/man2/setfsgid.2:31
41 #: build/C/man2/setfsuid.2:31 build/C/man2/setgid.2:29
42 #: build/C/man2/setpgid.2:48 build/C/man2/setresuid.2:26
43 #: build/C/man2/setreuid.2:45 build/C/man2/setsid.2:30
44 #: build/C/man2/setuid.2:30 build/C/man7/svipc.7:40 build/C/man3/ulimit.3:27
45 #, no-wrap
46 msgid "Linux"
47 msgstr "Linux"
48
49 #. type: TH
50 #: build/C/man2/acct.2:31 build/C/man5/acct.5:25
51 #: build/C/man7/capabilities.7:48 build/C/man2/capget.2:15
52 #: build/C/man7/cpuset.7:25 build/C/man7/credentials.7:27
53 #: build/C/man2/getgid.2:25 build/C/man2/getgroups.2:31
54 #: build/C/man2/getpid.2:25 build/C/man2/getpriority.2:48
55 #: build/C/man2/getresuid.2:28 build/C/man2/getrlimit.2:64
56 #: build/C/man2/getrusage.2:39 build/C/man2/getsid.2:26
57 #: build/C/man2/getuid.2:26 build/C/man2/iopl.2:33
58 #: build/C/man2/ioprio_set.2:24 build/C/man2/ipc.2:25
59 #: build/C/man2/seteuid.2:29 build/C/man2/setfsgid.2:31
60 #: build/C/man2/setfsuid.2:31 build/C/man2/setgid.2:29
61 #: build/C/man2/setpgid.2:48 build/C/man2/setresuid.2:26
62 #: build/C/man2/setreuid.2:45 build/C/man2/setsid.2:30
63 #: build/C/man2/setuid.2:30 build/C/man7/svipc.7:40 build/C/man3/ulimit.3:27
64 #, no-wrap
65 msgid "Linux Programmer's Manual"
66 msgstr "Linux Programmer's Manual"
67
68 #. type: SH
69 #: build/C/man2/acct.2:32 build/C/man5/acct.5:26
70 #: build/C/man7/capabilities.7:49 build/C/man2/capget.2:16
71 #: build/C/man7/cpuset.7:26 build/C/man7/credentials.7:28
72 #: build/C/man2/getgid.2:26 build/C/man2/getgroups.2:32
73 #: build/C/man2/getpid.2:26 build/C/man2/getpriority.2:49
74 #: build/C/man2/getresuid.2:29 build/C/man2/getrlimit.2:65
75 #: build/C/man2/getrusage.2:40 build/C/man2/getsid.2:27
76 #: build/C/man2/getuid.2:27 build/C/man2/iopl.2:34
77 #: build/C/man2/ioprio_set.2:25 build/C/man2/ipc.2:26
78 #: build/C/man2/seteuid.2:30 build/C/man2/setfsgid.2:32
79 #: build/C/man2/setfsuid.2:32 build/C/man2/setgid.2:30
80 #: build/C/man2/setpgid.2:49 build/C/man2/setresuid.2:27
81 #: build/C/man2/setreuid.2:46 build/C/man2/setsid.2:31
82 #: build/C/man2/setuid.2:31 build/C/man7/svipc.7:41 build/C/man3/ulimit.3:28
83 #, no-wrap
84 msgid "NAME"
85 msgstr "名前"
86
87 #. type: Plain text
88 #: build/C/man2/acct.2:34
89 msgid "acct - switch process accounting on or off"
90 msgstr "acct - プロセス・アカウントのオンとオフを切り換える"
91
92 #. type: SH
93 #: build/C/man2/acct.2:34 build/C/man5/acct.5:28 build/C/man2/capget.2:18
94 #: build/C/man2/getgid.2:28 build/C/man2/getgroups.2:34
95 #: build/C/man2/getpid.2:28 build/C/man2/getpriority.2:51
96 #: build/C/man2/getresuid.2:31 build/C/man2/getrlimit.2:67
97 #: build/C/man2/getrusage.2:42 build/C/man2/getsid.2:29
98 #: build/C/man2/getuid.2:29 build/C/man2/iopl.2:36
99 #: build/C/man2/ioprio_set.2:27 build/C/man2/ipc.2:28
100 #: build/C/man2/seteuid.2:32 build/C/man2/setfsgid.2:34
101 #: build/C/man2/setfsuid.2:34 build/C/man2/setgid.2:32
102 #: build/C/man2/setpgid.2:51 build/C/man2/setresuid.2:29
103 #: build/C/man2/setreuid.2:48 build/C/man2/setsid.2:33
104 #: build/C/man2/setuid.2:33 build/C/man7/svipc.7:43 build/C/man3/ulimit.3:30
105 #, no-wrap
106 msgid "SYNOPSIS"
107 msgstr "書式"
108
109 #. type: Plain text
110 #: build/C/man2/acct.2:38
111 #, no-wrap
112 msgid "B<#include E<lt>unistd.hE<gt>>\n"
113 msgstr "B<#include E<lt>unistd.hE<gt>>\n"
114
115 #. type: Plain text
116 #: build/C/man2/acct.2:40
117 #, no-wrap
118 msgid "B<int acct(const char *>I<filename>B<);>\n"
119 msgstr "B<int acct(const char *>I<filename>B<);>\n"
120
121 #. type: Plain text
122 #: build/C/man2/acct.2:46 build/C/man2/getgroups.2:48
123 #: build/C/man2/getrlimit.2:84 build/C/man2/getsid.2:37
124 #: build/C/man2/seteuid.2:44 build/C/man2/setpgid.2:71
125 #: build/C/man2/setreuid.2:60
126 msgid ""
127 "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
128 msgstr "glibc 向けの機能検査マクロの要件 (B<feature_test_macros>(7)  参照):"
129
130 #. type: Plain text
131 #: build/C/man2/acct.2:50
132 msgid ""
133 "B<acct>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
134 msgstr ""
135 "B<acct>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
136
137 #. type: SH
138 #: build/C/man2/acct.2:50 build/C/man5/acct.5:30
139 #: build/C/man7/capabilities.7:51 build/C/man2/capget.2:24
140 #: build/C/man7/cpuset.7:28 build/C/man7/credentials.7:30
141 #: build/C/man2/getgid.2:36 build/C/man2/getgroups.2:52
142 #: build/C/man2/getpid.2:36 build/C/man2/getpriority.2:59
143 #: build/C/man2/getresuid.2:39 build/C/man2/getrlimit.2:88
144 #: build/C/man2/getrusage.2:48 build/C/man2/getsid.2:50
145 #: build/C/man2/getuid.2:37 build/C/man2/iopl.2:40
146 #: build/C/man2/ioprio_set.2:35 build/C/man2/ipc.2:34
147 #: build/C/man2/seteuid.2:53 build/C/man2/setfsgid.2:39
148 #: build/C/man2/setfsuid.2:39 build/C/man2/setgid.2:38
149 #: build/C/man2/setpgid.2:98 build/C/man2/setresuid.2:37
150 #: build/C/man2/setreuid.2:70 build/C/man2/setsid.2:40
151 #: build/C/man2/setuid.2:39 build/C/man7/svipc.7:49 build/C/man3/ulimit.3:34
152 #, no-wrap
153 msgid "DESCRIPTION"
154 msgstr "説明"
155
156 #. type: Plain text
157 #: build/C/man2/acct.2:60
158 msgid ""
159 "The B<acct>()  system call enables or disables process accounting.  If "
160 "called with the name of an existing file as its argument, accounting is "
161 "turned on, and records for each terminating process are appended to "
162 "I<filename> as it terminates.  An argument of NULL causes accounting to be "
163 "turned off."
164 msgstr ""
165 "B<acct>()  システムコールは、プロセス・アカウントの有効・無効を切り替える。 "
166 "既存のファイルの名前を引き数に指定して呼び出されたら、 アカウント (account) "
167 "が有効になり、 終了したプロセスの記録が I<filename> に追記される。 NULL を引"
168 "き数として呼び出されたらアカウントをオフにする。"
169
170 #. type: SH
171 #: build/C/man2/acct.2:60 build/C/man2/capget.2:160
172 #: build/C/man2/getgroups.2:92 build/C/man2/getpriority.2:107
173 #: build/C/man2/getresuid.2:50 build/C/man2/getrlimit.2:430
174 #: build/C/man2/getrusage.2:181 build/C/man2/getsid.2:58
175 #: build/C/man2/iopl.2:66 build/C/man2/ioprio_set.2:149
176 #: build/C/man2/seteuid.2:67 build/C/man2/setfsgid.2:69
177 #: build/C/man2/setfsuid.2:69 build/C/man2/setgid.2:53
178 #: build/C/man2/setpgid.2:172 build/C/man2/setresuid.2:64
179 #: build/C/man2/setreuid.2:91 build/C/man2/setsid.2:51
180 #: build/C/man2/setuid.2:70 build/C/man3/ulimit.3:67
181 #, no-wrap
182 msgid "RETURN VALUE"
183 msgstr "返り値"
184
185 #. type: Plain text
186 #: build/C/man2/acct.2:65 build/C/man2/capget.2:165
187 #: build/C/man2/getresuid.2:55 build/C/man2/getrusage.2:186
188 #: build/C/man2/iopl.2:71 build/C/man2/seteuid.2:72 build/C/man2/setgid.2:58
189 #: build/C/man2/setresuid.2:69 build/C/man2/setreuid.2:96
190 #: build/C/man2/setuid.2:75
191 msgid ""
192 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
193 "appropriately."
194 msgstr ""
195 "成功した場合は 0 が返される。エラーの場合は -1 が返され、 I<errno> が適切に設"
196 "定される。"
197
198 #. type: SH
199 #: build/C/man2/acct.2:65 build/C/man2/capget.2:179 build/C/man7/cpuset.7:1100
200 #: build/C/man2/getgid.2:42 build/C/man2/getgroups.2:106
201 #: build/C/man2/getpid.2:44 build/C/man2/getpriority.2:120
202 #: build/C/man2/getresuid.2:55 build/C/man2/getrlimit.2:435
203 #: build/C/man2/getrusage.2:186 build/C/man2/getsid.2:63
204 #: build/C/man2/getuid.2:43 build/C/man2/iopl.2:71
205 #: build/C/man2/ioprio_set.2:169 build/C/man2/seteuid.2:72
206 #: build/C/man2/setgid.2:58 build/C/man2/setpgid.2:193
207 #: build/C/man2/setresuid.2:69 build/C/man2/setreuid.2:96
208 #: build/C/man2/setsid.2:58 build/C/man2/setuid.2:75 build/C/man3/ulimit.3:74
209 #, no-wrap
210 msgid "ERRORS"
211 msgstr "エラー"
212
213 #. type: TP
214 #: build/C/man2/acct.2:66 build/C/man7/cpuset.7:1116
215 #: build/C/man7/cpuset.7:1123 build/C/man7/cpuset.7:1129
216 #: build/C/man7/cpuset.7:1137 build/C/man7/cpuset.7:1144
217 #: build/C/man2/getpriority.2:140 build/C/man2/setpgid.2:194
218 #, no-wrap
219 msgid "B<EACCES>"
220 msgstr "B<EACCES>"
221
222 #. type: Plain text
223 #: build/C/man2/acct.2:77
224 msgid ""
225 "Write permission is denied for the specified file, or search permission is "
226 "denied for one of the directories in the path prefix of I<filename> (see "
227 "also B<path_resolution>(7)), or I<filename> is not a regular file."
228 msgstr ""
229 "指定したファイルへの書き込み許可がなく、書き込みが拒否された。 または "
230 "I<filename> のディレクトリ部分の何れかのディレクトリに検索許可がなく拒否され"
231 "た (B<path_resolution>(7)  も参照すること)。 または I<filename> が通常 "
232 "(regular) のファイルでない。"
233
234 #. type: TP
235 #: build/C/man2/acct.2:77 build/C/man2/capget.2:180 build/C/man7/cpuset.7:1172
236 #: build/C/man2/getgroups.2:107 build/C/man2/getresuid.2:56
237 #: build/C/man2/getrlimit.2:436 build/C/man2/getrusage.2:187
238 #, no-wrap
239 msgid "B<EFAULT>"
240 msgstr "B<EFAULT>"
241
242 #. type: Plain text
243 #: build/C/man2/acct.2:81
244 msgid "I<filename> points outside your accessible address space."
245 msgstr "アクセスできるアドレス空間の外を I<filename> が指している。"
246
247 #. type: TP
248 #: build/C/man2/acct.2:81 build/C/man7/cpuset.7:1238
249 #: build/C/man7/cpuset.7:1246
250 #, no-wrap
251 msgid "B<EIO>"
252 msgstr "B<EIO>"
253
254 #. type: Plain text
255 #: build/C/man2/acct.2:85
256 msgid "Error writing to the file I<filename>."
257 msgstr "I<filename> への書き込みにエラーが発生した。"
258
259 #. type: TP
260 #: build/C/man2/acct.2:85
261 #, no-wrap
262 msgid "B<EISDIR>"
263 msgstr "B<EISDIR>"
264
265 #. type: Plain text
266 #: build/C/man2/acct.2:89
267 msgid "I<filename> is a directory."
268 msgstr "I<filename> がディレクトリである。"
269
270 #. type: TP
271 #: build/C/man2/acct.2:89
272 #, no-wrap
273 msgid "B<ELOOP>"
274 msgstr "B<ELOOP>"
275
276 #. type: Plain text
277 #: build/C/man2/acct.2:93
278 msgid "Too many symbolic links were encountered in resolving I<filename>."
279 msgstr "I<filename> の実体にたどり着くまでのシンボリックリンクの数が多すぎる。"
280
281 #. type: TP
282 #: build/C/man2/acct.2:93 build/C/man7/cpuset.7:1251
283 #: build/C/man7/cpuset.7:1258 build/C/man7/cpuset.7:1263
284 #, no-wrap
285 msgid "B<ENAMETOOLONG>"
286 msgstr "B<ENAMETOOLONG>"
287
288 #. type: Plain text
289 #: build/C/man2/acct.2:97
290 msgid "I<filename> was too long."
291 msgstr "I<filename> が長すぎる。"
292
293 #. type: TP
294 #: build/C/man2/acct.2:97
295 #, no-wrap
296 msgid "B<ENFILE>"
297 msgstr "B<ENFILE>"
298
299 #. type: Plain text
300 #: build/C/man2/acct.2:100
301 msgid "The system limit on the total number of open files has been reached."
302 msgstr "オープンされたファイルの総数がシステム制限に達した。"
303
304 #. type: TP
305 #: build/C/man2/acct.2:100 build/C/man7/cpuset.7:1275
306 #: build/C/man7/cpuset.7:1280
307 #, no-wrap
308 msgid "B<ENOENT>"
309 msgstr "B<ENOENT>"
310
311 #. type: Plain text
312 #: build/C/man2/acct.2:103
313 msgid "The specified filename does not exist."
314 msgstr "指定されたファイルが存在しない。"
315
316 #. type: TP
317 #: build/C/man2/acct.2:103 build/C/man7/cpuset.7:1287
318 #: build/C/man2/getgroups.2:127
319 #, no-wrap
320 msgid "B<ENOMEM>"
321 msgstr "B<ENOMEM>"
322
323 #. type: Plain text
324 #: build/C/man2/acct.2:106 build/C/man2/getgroups.2:130
325 msgid "Out of memory."
326 msgstr "メモリ不足。"
327
328 #. type: TP
329 #: build/C/man2/acct.2:106 build/C/man2/iopl.2:76
330 #, no-wrap
331 msgid "B<ENOSYS>"
332 msgstr "B<ENOSYS>"
333
334 #. type: Plain text
335 #: build/C/man2/acct.2:112
336 msgid ""
337 "BSD process accounting has not been enabled when the operating system kernel "
338 "was compiled.  The kernel configuration parameter controlling this feature "
339 "is B<CONFIG_BSD_PROCESS_ACCT>."
340 msgstr ""
341 "カーネルをコンパイルした時に BSD プロセス・アカウントが有効になっていない。 "
342 "この機能はカーネルのコンフィグの B<CONFIG_BSD_PROCESS_ACCT> パラメータによっ"
343 "て制御される。"
344
345 #. type: TP
346 #: build/C/man2/acct.2:112 build/C/man7/cpuset.7:1314
347 #, no-wrap
348 msgid "B<ENOTDIR>"
349 msgstr "B<ENOTDIR>"
350
351 #. type: Plain text
352 #: build/C/man2/acct.2:117
353 msgid ""
354 "A component used as a directory in I<filename> is not in fact a directory."
355 msgstr ""
356 "I<filename> の中でディレクトリして扱われている要素が、 実際はディレクトリでな"
357 "い。"
358
359 #. type: TP
360 #: build/C/man2/acct.2:117 build/C/man2/capget.2:191 build/C/man2/capget.2:196
361 #: build/C/man7/cpuset.7:1319 build/C/man2/getgroups.2:130
362 #: build/C/man2/getpriority.2:152 build/C/man2/getrlimit.2:452
363 #: build/C/man2/getsid.2:64 build/C/man2/iopl.2:79
364 #: build/C/man2/ioprio_set.2:179 build/C/man2/seteuid.2:75
365 #: build/C/man2/setgid.2:59 build/C/man2/setpgid.2:208
366 #: build/C/man2/setresuid.2:77 build/C/man2/setreuid.2:97
367 #: build/C/man2/setsid.2:59 build/C/man2/setuid.2:85 build/C/man3/ulimit.3:75
368 #, no-wrap
369 msgid "B<EPERM>"
370 msgstr "B<EPERM>"
371
372 #. type: Plain text
373 #: build/C/man2/acct.2:123
374 msgid ""
375 "The calling process has insufficient privilege to enable process "
376 "accounting.  On Linux the B<CAP_SYS_PACCT> capability is required."
377 msgstr ""
378 "呼び出したプロセスにはプロセス・アカウントを有効にするのに十分な特権がない。 "
379 "Linux では B<CAP_SYS_PACCT> ケーパビリティ (capability) が必要である。"
380
381 #. type: TP
382 #: build/C/man2/acct.2:123
383 #, no-wrap
384 msgid "B<EROFS>"
385 msgstr "B<EROFS>"
386
387 #. type: Plain text
388 #: build/C/man2/acct.2:127
389 msgid "I<filename> refers to a file on a read-only file system."
390 msgstr ""
391 "読み込みだけのファイルシステム上のファイルを I<filename> が参照している。"
392
393 #. type: TP
394 #: build/C/man2/acct.2:127
395 #, no-wrap
396 msgid "B<EUSERS>"
397 msgstr "B<EUSERS>"
398
399 #. type: Plain text
400 #: build/C/man2/acct.2:130
401 msgid "There are no more free file structures or we ran out of memory."
402 msgstr "使用可能なファイル構造体がないか、メモリが足りない。"
403
404 #. type: SH
405 #: build/C/man2/acct.2:130 build/C/man5/acct.5:153
406 #: build/C/man7/capabilities.7:1079 build/C/man2/capget.2:218
407 #: build/C/man7/credentials.7:234 build/C/man2/getgid.2:44
408 #: build/C/man2/getgroups.2:133 build/C/man2/getpid.2:46
409 #: build/C/man2/getpriority.2:160 build/C/man2/getresuid.2:67
410 #: build/C/man2/getrlimit.2:473 build/C/man2/getrusage.2:195
411 #: build/C/man2/getsid.2:79 build/C/man2/getuid.2:45 build/C/man2/iopl.2:87
412 #: build/C/man2/ioprio_set.2:196 build/C/man2/ipc.2:45
413 #: build/C/man2/seteuid.2:91 build/C/man2/setfsgid.2:80
414 #: build/C/man2/setfsuid.2:80 build/C/man2/setgid.2:66
415 #: build/C/man2/setpgid.2:227 build/C/man2/setresuid.2:83
416 #: build/C/man2/setreuid.2:113 build/C/man2/setsid.2:65
417 #: build/C/man2/setuid.2:92 build/C/man3/ulimit.3:78
418 #, no-wrap
419 msgid "CONFORMING TO"
420 msgstr "準拠"
421
422 #.  SVr4 documents an EBUSY error condition, but no EISDIR or ENOSYS.
423 #.  Also AIX and HP-UX document EBUSY (attempt is made
424 #.  to enable accounting when it is already enabled), as does Solaris
425 #.  (attempt is made to enable accounting using the same file that is
426 #.  currently being used).
427 #. type: Plain text
428 #: build/C/man2/acct.2:137
429 msgid "SVr4, 4.3BSD (but not POSIX)."
430 msgstr "SVr4, 4.3BSD (POSIX ではない)。"
431
432 #. type: SH
433 #: build/C/man2/acct.2:137 build/C/man5/acct.5:157
434 #: build/C/man7/capabilities.7:1085 build/C/man2/capget.2:220
435 #: build/C/man7/cpuset.7:1341 build/C/man7/credentials.7:240
436 #: build/C/man2/getgid.2:46 build/C/man2/getgroups.2:141
437 #: build/C/man2/getpid.2:48 build/C/man2/getpriority.2:163
438 #: build/C/man2/getresuid.2:70 build/C/man2/getrlimit.2:496
439 #: build/C/man2/getrusage.2:206 build/C/man2/getsid.2:81
440 #: build/C/man2/getuid.2:47 build/C/man2/iopl.2:91
441 #: build/C/man2/ioprio_set.2:198 build/C/man2/ipc.2:49
442 #: build/C/man2/seteuid.2:93 build/C/man2/setfsgid.2:84
443 #: build/C/man2/setfsuid.2:84 build/C/man2/setgid.2:68
444 #: build/C/man2/setpgid.2:249 build/C/man2/setresuid.2:86
445 #: build/C/man2/setreuid.2:119 build/C/man2/setsid.2:67
446 #: build/C/man2/setuid.2:97
447 #, no-wrap
448 msgid "NOTES"
449 msgstr "注意"
450
451 #. type: Plain text
452 #: build/C/man2/acct.2:140
453 msgid ""
454 "No accounting is produced for programs running when a system crash occurs.  "
455 "In particular, nonterminating processes are never accounted for."
456 msgstr ""
457 "システムがクラッシュした時に実行中だったプログラムのアカウントは生成されな"
458 "い。 特に、終了しないプログラムがアカウントされることはない。"
459
460 #. type: Plain text
461 #: build/C/man2/acct.2:143
462 msgid ""
463 "The structure of the records written to the accounting file is described in "
464 "B<acct>(5)."
465 msgstr ""
466 "アカウント用ファイルに書き込まれるレコードの構造体については B<acct>(5)  に説"
467 "明がある。"
468
469 #. type: SH
470 #: build/C/man2/acct.2:143 build/C/man5/acct.5:174
471 #: build/C/man7/capabilities.7:1141 build/C/man2/capget.2:228
472 #: build/C/man7/cpuset.7:1488 build/C/man7/credentials.7:251
473 #: build/C/man2/getgid.2:62 build/C/man2/getgroups.2:171
474 #: build/C/man2/getpid.2:100 build/C/man2/getpriority.2:232
475 #: build/C/man2/getresuid.2:86 build/C/man2/getrlimit.2:656
476 #: build/C/man2/getrusage.2:246 build/C/man2/getsid.2:84
477 #: build/C/man2/getuid.2:73 build/C/man2/iopl.2:100
478 #: build/C/man2/ioprio_set.2:346 build/C/man2/ipc.2:57
479 #: build/C/man2/seteuid.2:124 build/C/man2/setfsgid.2:112
480 #: build/C/man2/setfsuid.2:112 build/C/man2/setgid.2:78
481 #: build/C/man2/setpgid.2:317 build/C/man2/setresuid.2:106
482 #: build/C/man2/setreuid.2:159 build/C/man2/setsid.2:84
483 #: build/C/man2/setuid.2:120 build/C/man7/svipc.7:331 build/C/man3/ulimit.3:83
484 #, no-wrap
485 msgid "SEE ALSO"
486 msgstr "関連項目"
487
488 #. type: Plain text
489 #: build/C/man2/acct.2:145
490 msgid "B<acct>(5)"
491 msgstr "B<acct>(5)"
492
493 #. type: SH
494 #: build/C/man2/acct.2:145 build/C/man5/acct.5:179
495 #: build/C/man7/capabilities.7:1161 build/C/man2/capget.2:232
496 #: build/C/man7/cpuset.7:1505 build/C/man7/credentials.7:282
497 #: build/C/man2/getgid.2:67 build/C/man2/getgroups.2:178
498 #: build/C/man2/getpid.2:110 build/C/man2/getpriority.2:240
499 #: build/C/man2/getresuid.2:92 build/C/man2/getrlimit.2:674
500 #: build/C/man2/getrusage.2:253 build/C/man2/getsid.2:88
501 #: build/C/man2/getuid.2:78 build/C/man2/iopl.2:104
502 #: build/C/man2/ioprio_set.2:354 build/C/man2/ipc.2:70
503 #: build/C/man2/seteuid.2:131 build/C/man2/setfsgid.2:117
504 #: build/C/man2/setfsuid.2:117 build/C/man2/setgid.2:84
505 #: build/C/man2/setpgid.2:324 build/C/man2/setresuid.2:115
506 #: build/C/man2/setreuid.2:167 build/C/man2/setsid.2:91
507 #: build/C/man2/setuid.2:127 build/C/man7/svipc.7:348 build/C/man3/ulimit.3:88
508 #, no-wrap
509 msgid "COLOPHON"
510 msgstr "この文書について"
511
512 #. type: Plain text
513 #: build/C/man2/acct.2:152 build/C/man5/acct.5:186
514 #: build/C/man7/capabilities.7:1168 build/C/man2/capget.2:239
515 #: build/C/man7/cpuset.7:1512 build/C/man7/credentials.7:289
516 #: build/C/man2/getgid.2:74 build/C/man2/getgroups.2:185
517 #: build/C/man2/getpid.2:117 build/C/man2/getpriority.2:247
518 #: build/C/man2/getresuid.2:99 build/C/man2/getrlimit.2:681
519 #: build/C/man2/getrusage.2:260 build/C/man2/getsid.2:95
520 #: build/C/man2/getuid.2:85 build/C/man2/iopl.2:111
521 #: build/C/man2/ioprio_set.2:361 build/C/man2/ipc.2:77
522 #: build/C/man2/seteuid.2:138 build/C/man2/setfsgid.2:124
523 #: build/C/man2/setfsuid.2:124 build/C/man2/setgid.2:91
524 #: build/C/man2/setpgid.2:331 build/C/man2/setresuid.2:122
525 #: build/C/man2/setreuid.2:174 build/C/man2/setsid.2:98
526 #: build/C/man2/setuid.2:134 build/C/man7/svipc.7:355 build/C/man3/ulimit.3:95
527 msgid ""
528 "This page is part of release 3.53 of the Linux I<man-pages> project.  A "
529 "description of the project, and information about reporting bugs, can be "
530 "found at \\%http://www.kernel.org/doc/man-pages/."
531 msgstr ""
532 "この man ページは Linux I<man-pages> プロジェクトのリリース 3.53 の一部\n"
533 "である。プロジェクトの説明とバグ報告に関する情報は\n"
534 "http://www.kernel.org/doc/man-pages/ に書かれている。"
535
536 #. type: TH
537 #: build/C/man5/acct.5:25
538 #, no-wrap
539 msgid "2008-06-15"
540 msgstr "2008-06-15"
541
542 #. type: Plain text
543 #: build/C/man5/acct.5:28
544 msgid "acct - process accounting file"
545 msgstr "acct - プロセス・アカウンティング・ファイル"
546
547 #. type: Plain text
548 #: build/C/man5/acct.5:30
549 msgid "B<#include E<lt>sys/acct.hE<gt>>"
550 msgstr "B<#include E<lt>sys/acct.hE<gt>>"
551
552 #. type: Plain text
553 #: build/C/man5/acct.5:36
554 msgid ""
555 "If the kernel is built with the process accounting option enabled "
556 "(B<CONFIG_BSD_PROCESS_ACCT>), then calling B<acct>(2)  starts process "
557 "accounting, for example:"
558 msgstr ""
559 "カーネルがプロセス・アカウンティングのオプション "
560 "(B<CONFIG_BSD_PROCESS_ACCT>)  を有効にして作成されていると、以下のように "
561 "B<acct>(2)  を呼び出すとプロセス・アカウンティングが開始される。"
562
563 #. type: Plain text
564 #: build/C/man5/acct.5:39
565 msgid "acct(\"/var/log/pacct\");"
566 msgstr "acct(\"/var/log/pacct\");"
567
568 #. type: Plain text
569 #: build/C/man5/acct.5:47
570 msgid ""
571 "When process accounting is enabled, the kernel writes a record to the "
572 "accounting file as each process on the system terminates.  This record "
573 "contains information about the terminated process, and is defined in "
574 "I<E<lt>sys/acct.hE<gt>> as follows:"
575 msgstr ""
576 "プロセス・アカウンティングが有効になっていると、カーネルは システム上の各プロ"
577 "セスが終了するたびにアカウンティングファイルに レコードを書き込む。 このレ"
578 "コードは、終了したプロセスに関する情報を保持するもので、 I<E<lt>sys/acct."
579 "hE<gt>> で以下のように定義されている。"
580
581 #. type: Plain text
582 #: build/C/man5/acct.5:51
583 #, no-wrap
584 msgid "#define ACCT_COMM 16\n"
585 msgstr "#define ACCT_COMM 16\n"
586
587 #. type: Plain text
588 #: build/C/man5/acct.5:53
589 #, no-wrap
590 msgid "typedef u_int16_t comp_t;\n"
591 msgstr "typedef u_int16_t comp_t;\n"
592
593 #. type: Plain text
594 #: build/C/man5/acct.5:77
595 #, no-wrap
596 msgid ""
597 "struct acct {\n"
598 "    char ac_flag;           /* Accounting flags */\n"
599 "    u_int16_t ac_uid;       /* Accounting user ID */\n"
600 "    u_int16_t ac_gid;       /* Accounting group ID */\n"
601 "    u_int16_t ac_tty;       /* Controlling terminal */\n"
602 "    u_int32_t ac_btime;     /* Process creation time\n"
603 "                               (seconds since the Epoch) */\n"
604 "    comp_t    ac_utime;     /* User CPU time */\n"
605 "    comp_t    ac_stime;     /* System CPU time */\n"
606 "    comp_t    ac_etime;     /* Elapsed time */\n"
607 "    comp_t    ac_mem;       /* Average memory usage (kB) */\n"
608 "    comp_t    ac_io;        /* Characters transferred (unused) */\n"
609 "    comp_t    ac_rw;        /* Blocks read or written (unused) */\n"
610 "    comp_t    ac_minflt;    /* Minor page faults */\n"
611 "    comp_t    ac_majflt;    /* Major page faults */\n"
612 "    comp_t    ac_swaps;     /* Number of swaps (unused) */\n"
613 "    u_int32_t ac_exitcode;  /* Process termination status\n"
614 "                               (see wait(2)) */\n"
615 "    char      ac_comm[ACCT_COMM+1];\n"
616 "                            /* Command name (basename of last\n"
617 "                               executed command; null-terminated) */\n"
618 "    char      ac_pad[I<X>];    /* padding bytes */\n"
619 "};\n"
620 msgstr ""
621 "struct acct {\n"
622 "    char ac_flag;           /* Accounting flags */\n"
623 "    u_int16_t ac_uid;       /* Accounting user ID */\n"
624 "    u_int16_t ac_gid;       /* Accounting group ID */\n"
625 "    u_int16_t ac_tty;       /* Controlling terminal */\n"
626 "    u_int32_t ac_btime;     /* Process creation time\n"
627 "                               (seconds since the Epoch) */\n"
628 "    comp_t    ac_utime;     /* User CPU time */\n"
629 "    comp_t    ac_stime;     /* System CPU time */\n"
630 "    comp_t    ac_etime;     /* Elapsed time */\n"
631 "    comp_t    ac_mem;       /* Average memory usage (kB) */\n"
632 "    comp_t    ac_io;        /* Characters transferred (unused) */\n"
633 "    comp_t    ac_rw;        /* Blocks read or written (unused) */\n"
634 "    comp_t    ac_minflt;    /* Minor page faults */\n"
635 "    comp_t    ac_majflt;    /* Major page faults */\n"
636 "    comp_t    ac_swaps;     /* Number of swaps (unused) */\n"
637 "    u_int32_t ac_exitcode;  /* Process termination status\n"
638 "                               (see wait(2)) */\n"
639 "    char      ac_comm[ACCT_COMM+1];\n"
640 "                            /* Command name (basename of last\n"
641 "                               executed command; null-terminated) */\n"
642 "    char      ac_pad[I<X>];    /* padding bytes */\n"
643 "};\n"
644
645 #. type: Plain text
646 #: build/C/man5/acct.5:84
647 #, no-wrap
648 msgid ""
649 "enum {          /* Bits that may be set in ac_flag field */\n"
650 "    AFORK = 0x01,           /* Has executed fork, but no exec */\n"
651 "    ASU   = 0x02,           /* Used superuser privileges */\n"
652 "    ACORE = 0x08,           /* Dumped core */\n"
653 "    AXSIG = 0x10            /* Killed by a signal */\n"
654 "};\n"
655 msgstr ""
656 "enum {          /* Bits that may be set in ac_flag field */\n"
657 "    AFORK = 0x01,           /* Has executed fork, but no exec */\n"
658 "    ASU   = 0x02,           /* Used superuser privileges */\n"
659 "    ACORE = 0x08,           /* Dumped core */\n"
660 "    AXSIG = 0x10            /* Killed by a signal */\n"
661 "};\n"
662
663 #. type: Plain text
664 #: build/C/man5/acct.5:94
665 msgid ""
666 "The I<comp_t> data type is a floating-point value consisting of a 3-bit, "
667 "base-8 exponent, and a 13-bit mantissa.  A value, I<c>, of this type can be "
668 "converted to a (long) integer as follows:"
669 msgstr ""
670 "データ型 I<comp_t> は浮動小数点値で、3 ビット幅の基数が 8 の指数部と 13 ビッ"
671 "ト幅の仮数部から 構成される。 I<comp_t> 型の値 I<c> は以下のようにして (long "
672 "型の) 整数に変換できる。"
673
674 #. type: Plain text
675 #: build/C/man5/acct.5:97
676 #, no-wrap
677 msgid "    v = (c & 0x1fff) E<lt>E<lt> (((c E<gt>E<gt> 13) & 0x7) * 3);\n"
678 msgstr "    v = (c & 0x1fff) E<lt>E<lt> (((c E<gt>E<gt> 13) & 0x7) * 3);\n"
679
680 #. type: Plain text
681 #: build/C/man5/acct.5:107
682 msgid ""
683 "The I<ac_utime>, I<ac_stime>, and I<ac_etime> fields measure time in \"clock "
684 "ticks\"; divide these values by I<sysconf(_SC_CLK_TCK)> to convert them to "
685 "seconds."
686 msgstr ""
687 "フィールド I<ac_utime>, I<ac_stime>, I<ac_etime> は \"clock ticks\" 単位で計"
688 "測した時間である。 これらの値を I<sysconf(_SC_CLK_TCK)> で割ると、秒に変換で"
689 "きる。"
690
691 #. type: SS
692 #: build/C/man5/acct.5:107
693 #, no-wrap
694 msgid "Version 3 accounting file format"
695 msgstr "バージョン 3 のアカウンティングファイルのフォーマット"
696
697 #. type: Plain text
698 #: build/C/man5/acct.5:122
699 msgid ""
700 "Since kernel 2.6.8, an optional alternative version of the accounting file "
701 "can be produced if the B<CONFIG_BSD_PROCESS_ACCT_V3> option is set when "
702 "building the kernel.  With this option is set, the records written to the "
703 "accounting file contain additional fields, and the width of I<c_uid> and "
704 "I<ac_gid> fields is widened from 16 to 32 bits (in line with the increased "
705 "size of UID and GIDs in Linux 2.4 and later).  The records are defined as "
706 "follows:"
707 msgstr ""
708 "カーネル 2.6.8 以降では、 別のバージョンのアカウンティングファイルを生成する"
709 "ことができ、 これを使うにはカーネル構築時に B<CONFIG_BSD_PROCESS_ACCT_V3> オ"
710 "プションが有効になっている必要がある。 このオプションが設定されると、アカウン"
711 "ティングファイルに書き込まれる レコードにフィールドが追加される。 また、"
712 "フィールド I<c_uid> と I<ac_gid> の幅が 16 ビットから 32 ビットに拡張される "
713 "(これは Linux 2.4 以降で UID と GID のサイズが増えているのに 対応したものであ"
714 "る)。 このレコードは以下のように定義されている。"
715
716 #. type: Plain text
717 #: build/C/man5/acct.5:147
718 #, no-wrap
719 msgid ""
720 "struct acct_v3 {\n"
721 "    char      ac_flag;      /* Flags */\n"
722 "    char      ac_version;   /* Always set to ACCT_VERSION (3) */\n"
723 "    u_int16_t ac_tty;       /* Controlling terminal */\n"
724 "    u_int32_t ac_exitcode;  /* Process termination status */\n"
725 "    u_int32_t ac_uid;       /* Real user ID */\n"
726 "    u_int32_t ac_gid;       /* Real group ID */\n"
727 "    u_int32_t ac_pid;       /* Process ID */\n"
728 "    u_int32_t ac_ppid;      /* Parent process ID */\n"
729 "    u_int32_t ac_btime;     /* Process creation time */\n"
730 "    float     ac_etime;     /* Elapsed time */\n"
731 "    comp_t    ac_utime;     /* User CPU time */\n"
732 "    comp_t    ac_stime;     /* System time */\n"
733 "    comp_t    ac_mem;       /* Average memory usage (kB) */\n"
734 "    comp_t    ac_io;        /* Characters transferred (unused) */\n"
735 "    comp_t    ac_rw;        /* Blocks read or written\n"
736 "                               (unused) */\n"
737 "    comp_t    ac_minflt;    /* Minor page faults */\n"
738 "    comp_t    ac_majflt;    /* Major page faults */\n"
739 "    comp_t    ac_swaps;     /* Number of swaps (unused) */\n"
740 "    char      ac_comm[ACCT_COMM]; /* Command name */\n"
741 "};\n"
742 msgstr ""
743 "struct acct_v3 {\n"
744 "    char      ac_flag;      /* Flags */\n"
745 "    char      ac_version;   /* Always set to ACCT_VERSION (3) */\n"
746 "    u_int16_t ac_tty;       /* Controlling terminal */\n"
747 "    u_int32_t ac_exitcode;  /* Process termination status */\n"
748 "    u_int32_t ac_uid;       /* Real user ID */\n"
749 "    u_int32_t ac_gid;       /* Real group ID */\n"
750 "    u_int32_t ac_pid;       /* Process ID */\n"
751 "    u_int32_t ac_ppid;      /* Parent process ID */\n"
752 "    u_int32_t ac_btime;     /* Process creation time */\n"
753 "    float     ac_etime;     /* Elapsed time */\n"
754 "    comp_t    ac_utime;     /* User CPU time */\n"
755 "    comp_t    ac_stime;     /* System time */\n"
756 "    comp_t    ac_mem;       /* Average memory usage (kB) */\n"
757 "    comp_t    ac_io;        /* Characters transferred (unused) */\n"
758 "    comp_t    ac_rw;        /* Blocks read or written\n"
759 "                               (unused) */\n"
760 "    comp_t    ac_minflt;    /* Minor page faults */\n"
761 "    comp_t    ac_majflt;    /* Major page faults */\n"
762 "    comp_t    ac_swaps;     /* Number of swaps (unused) */\n"
763 "    char      ac_comm[ACCT_COMM]; /* Command name */\n"
764 "};\n"
765
766 #. type: SH
767 #: build/C/man5/acct.5:149 build/C/man7/cpuset.7:1338
768 #: build/C/man2/getresuid.2:60 build/C/man2/getrlimit.2:468
769 #: build/C/man2/getsid.2:75 build/C/man2/ioprio_set.2:193
770 #: build/C/man2/setfsgid.2:76 build/C/man2/setfsuid.2:76
771 #: build/C/man2/setresuid.2:81
772 #, no-wrap
773 msgid "VERSIONS"
774 msgstr "バージョン"
775
776 #. type: Plain text
777 #: build/C/man5/acct.5:153
778 msgid "The I<acct_v3> structure is defined in glibc since version 2.6."
779 msgstr "I<acct_v3> 構造体はバージョン 2.6 以降の glibc で定義されている。"
780
781 #. type: Plain text
782 #: build/C/man5/acct.5:157
783 msgid ""
784 "Process accounting originated on BSD.  Although it is present on most "
785 "systems, it is not standardized, and the details vary somewhat between "
786 "systems."
787 msgstr ""
788 "プロセスアカウンティングは BSD 由来である。 この機能はほとんどのシステムに存"
789 "在するが、標準化されておらず、 その詳細はシステムによりいくらか異なる。"
790
791 #. type: Plain text
792 #: build/C/man5/acct.5:160
793 msgid ""
794 "Records in the accounting file are ordered by termination time of the "
795 "process."
796 msgstr "アカウンティングファイルのレコードは、プロセスの終了時刻の順序となる。"
797
798 #. type: Plain text
799 #: build/C/man5/acct.5:167
800 msgid ""
801 "In kernels up to and including 2.6.9, a separate accounting record is "
802 "written for each thread created using the NPTL threading library; since "
803 "Linux 2.6.10, a single accounting record is written for the entire process "
804 "on termination of the last thread in the process."
805 msgstr ""
806 "バージョン 2.6.9 以前のカーネルでは、 NPTL スレッドライブラリを使って作成され"
807 "たスレッドでは スレッド毎に別々のアカウンティングレコードが書き込まれてい"
808 "た。 Linux 2.6.10 以降では、プロセス内の最後のスレッドが終了すると、 プロセス"
809 "全体についてのアカウンティングレコードが一つだけ書き込まれる。"
810
811 #. type: Plain text
812 #: build/C/man5/acct.5:174
813 msgid ""
814 "The I<proc/sys/kernel/acct> file, described in B<proc>(5), defines settings "
815 "that control the behavior of process accounting when disk space runs low."
816 msgstr ""
817 "I<proc/sys/kernel/acct> ファイル (B<proc>(5)  で説明されている) は、ディスク"
818 "容量の残りが少なくなった際の プロセス・アカウンティングの動作を制御する設定を"
819 "保持している。"
820
821 #. type: Plain text
822 #: build/C/man5/acct.5:179
823 msgid "B<lastcomm>(1), B<acct>(2), B<accton>(8), B<sa>(8)"
824 msgstr "B<lastcomm>(1), B<acct>(2), B<accton>(8), B<sa>(8)"
825
826 #. type: TH
827 #: build/C/man7/capabilities.7:48
828 #, no-wrap
829 msgid "CAPABILITIES"
830 msgstr "CAPABILITIES"
831
832 #. type: TH
833 #: build/C/man7/capabilities.7:48
834 #, fuzzy, no-wrap
835 #| msgid "2013-04-17"
836 msgid "2013-07-21"
837 msgstr "2013-04-17"
838
839 #. type: Plain text
840 #: build/C/man7/capabilities.7:51
841 msgid "capabilities - overview of Linux capabilities"
842 msgstr "capabilities - Linux のケーパビリティ (capability) の概要"
843
844 #. type: Plain text
845 #: build/C/man7/capabilities.7:63
846 msgid ""
847 "For the purpose of performing permission checks, traditional UNIX "
848 "implementations distinguish two categories of processes: I<privileged> "
849 "processes (whose effective user ID is 0, referred to as superuser or root), "
850 "and I<unprivileged> processes (whose effective UID is nonzero).  Privileged "
851 "processes bypass all kernel permission checks, while unprivileged processes "
852 "are subject to full permission checking based on the process's credentials "
853 "(usually: effective UID, effective GID, and supplementary group list)."
854 msgstr ""
855 "権限のチェックを行う観点から見ると、伝統的な UNIX の実装では プロセスは二つの"
856 "カテゴリに分類できる: I<特権> プロセス (実効ユーザID が 0 のプロセス。ユーザ"
857 "ID 0 は スーパーユーザや root と呼ばれる) と I<非特権> プロセス (実効ユーザ"
858 "ID が 0 以外のプロセス) である。 非特権プロセスでは、プロセスの資格情報 (通常"
859 "は、実効UID 、実効GID と追加のグループリスト) に基づく権限チェックが行われる"
860 "のに対し、 特権プロセスでは全てのカーネルの権限チェックがバイパスされる。"
861
862 #. type: Plain text
863 #: build/C/man7/capabilities.7:70
864 msgid ""
865 "Starting with kernel 2.2, Linux divides the privileges traditionally "
866 "associated with superuser into distinct units, known as I<capabilities>, "
867 "which can be independently enabled and disabled.  Capabilities are a per-"
868 "thread attribute."
869 msgstr ""
870 "バージョン 2.2 以降の Linux では、 これまでスーパーユーザに結び付けられてきた"
871 "権限を、 いくつかのグループに分割している。これらのグループは I<ケーパビリ"
872 "ティ>(capability)  と呼ばれ、グループ毎に独立に有効、無効を設定できる。 ケー"
873 "パビリティはスレッド単位の属性である。"
874
875 #. type: SS
876 #: build/C/man7/capabilities.7:70
877 #, no-wrap
878 msgid "Capabilities list"
879 msgstr "ケーパビリティのリスト"
880
881 #. type: Plain text
882 #: build/C/man7/capabilities.7:73
883 msgid ""
884 "The following list shows the capabilities implemented on Linux, and the "
885 "operations or behaviors that each capability permits:"
886 msgstr ""
887 "以下のリストは、 Linux で実装されているケーパビリティと 各ケーパビリティが許"
888 "可する操作と動作をまとめたものである。"
889
890 #. type: TP
891 #: build/C/man7/capabilities.7:73
892 #, no-wrap
893 msgid "B<CAP_AUDIT_CONTROL> (since Linux 2.6.11)"
894 msgstr "B<CAP_AUDIT_CONTROL> (Linux 2.6.11 以降)"
895
896 #. type: Plain text
897 #: build/C/man7/capabilities.7:77
898 msgid ""
899 "Enable and disable kernel auditing; change auditing filter rules; retrieve "
900 "auditing status and filtering rules."
901 msgstr ""
902 "カーネル監査 (audit) の有効無効の切り替え、 監査のフィルタルールの変更、 監査"
903 "の状況やフィルタルールの取得ができる。"
904
905 #. type: TP
906 #: build/C/man7/capabilities.7:77
907 #, no-wrap
908 msgid "B<CAP_AUDIT_WRITE> (since Linux 2.6.11)"
909 msgstr "B<CAP_AUDIT_WRITE> (Linux 2.6.11 以降)"
910
911 #. type: Plain text
912 #: build/C/man7/capabilities.7:80
913 msgid "Write records to kernel auditing log."
914 msgstr "カーネル監査のログにレコードを書き込む。"
915
916 #. type: TP
917 #: build/C/man7/capabilities.7:80
918 #, no-wrap
919 msgid "B<CAP_BLOCK_SUSPEND> (since Linux 3.5)"
920 msgstr "B<CAP_BLOCK_SUSPEND> (Linux 3.5 以降)"
921
922 #. type: Plain text
923 #: build/C/man7/capabilities.7:86
924 msgid ""
925 "Employ features that can block system suspend (B<epoll>(7)  B<EPOLLWAKEUP>, "
926 "I</proc/sys/wake_lock>)."
927 msgstr ""
928 "システムのサスペンドをブロックできる機能を使用する (B<epoll>(7)  "
929 "B<EPOLLWAKEUP>, I</proc/sys/wake_lock>)。"
930
931 #. type: TP
932 #: build/C/man7/capabilities.7:86
933 #, no-wrap
934 msgid "B<CAP_CHOWN>"
935 msgstr "B<CAP_CHOWN>"
936
937 #. type: Plain text
938 #: build/C/man7/capabilities.7:90
939 msgid "Make arbitrary changes to file UIDs and GIDs (see B<chown>(2))."
940 msgstr "ファイルの UID とGID を任意に変更する (B<chown>(2)  参照)。"
941
942 #. type: TP
943 #: build/C/man7/capabilities.7:90
944 #, no-wrap
945 msgid "B<CAP_DAC_OVERRIDE>"
946 msgstr "B<CAP_DAC_OVERRIDE>"
947
948 #. type: Plain text
949 #: build/C/man7/capabilities.7:94
950 msgid ""
951 "Bypass file read, write, and execute permission checks.  (DAC is an "
952 "abbreviation of \"discretionary access control\".)"
953 msgstr ""
954 "ファイルの読み出し、書き込み、実行の権限チェックをバイパスする (DAC は "
955 "\"discretionary access control (任意のアクセス制御)\" の略である)。"
956
957 #. type: TP
958 #: build/C/man7/capabilities.7:94
959 #, no-wrap
960 msgid "B<CAP_DAC_READ_SEARCH>"
961 msgstr "B<CAP_DAC_READ_SEARCH>"
962
963 #. type: IP
964 #: build/C/man7/capabilities.7:98 build/C/man7/capabilities.7:101
965 #: build/C/man7/capabilities.7:111 build/C/man7/capabilities.7:121
966 #: build/C/man7/capabilities.7:125 build/C/man7/capabilities.7:127
967 #: build/C/man7/capabilities.7:129 build/C/man7/capabilities.7:199
968 #: build/C/man7/capabilities.7:201 build/C/man7/capabilities.7:203
969 #: build/C/man7/capabilities.7:205 build/C/man7/capabilities.7:207
970 #: build/C/man7/capabilities.7:209 build/C/man7/capabilities.7:211
971 #: build/C/man7/capabilities.7:213 build/C/man7/capabilities.7:215
972 #: build/C/man7/capabilities.7:239 build/C/man7/capabilities.7:241
973 #: build/C/man7/capabilities.7:287 build/C/man7/capabilities.7:297
974 #: build/C/man7/capabilities.7:303 build/C/man7/capabilities.7:308
975 #: build/C/man7/capabilities.7:314 build/C/man7/capabilities.7:321
976 #: build/C/man7/capabilities.7:324 build/C/man7/capabilities.7:332
977 #: build/C/man7/capabilities.7:334 build/C/man7/capabilities.7:343
978 #: build/C/man7/capabilities.7:350 build/C/man7/capabilities.7:353
979 #: build/C/man7/capabilities.7:357 build/C/man7/capabilities.7:360
980 #: build/C/man7/capabilities.7:363 build/C/man7/capabilities.7:370
981 #: build/C/man7/capabilities.7:375 build/C/man7/capabilities.7:381
982 #: build/C/man7/capabilities.7:385 build/C/man7/capabilities.7:389
983 #: build/C/man7/capabilities.7:393 build/C/man7/capabilities.7:397
984 #: build/C/man7/capabilities.7:424 build/C/man7/capabilities.7:429
985 #: build/C/man7/capabilities.7:434 build/C/man7/capabilities.7:437
986 #: build/C/man7/capabilities.7:440 build/C/man7/capabilities.7:449
987 #: build/C/man7/capabilities.7:453 build/C/man7/capabilities.7:479
988 #: build/C/man7/capabilities.7:484 build/C/man7/capabilities.7:487
989 #: build/C/man7/capabilities.7:492 build/C/man7/capabilities.7:495
990 #: build/C/man7/capabilities.7:498 build/C/man7/capabilities.7:501
991 #: build/C/man7/capabilities.7:504 build/C/man7/capabilities.7:509
992 #: build/C/man7/capabilities.7:511 build/C/man7/capabilities.7:517
993 #: build/C/man7/capabilities.7:525 build/C/man7/capabilities.7:527
994 #: build/C/man7/capabilities.7:531 build/C/man7/capabilities.7:533
995 #: build/C/man7/capabilities.7:536 build/C/man7/capabilities.7:540
996 #: build/C/man7/capabilities.7:542 build/C/man7/capabilities.7:544
997 #: build/C/man7/capabilities.7:546 build/C/man7/capabilities.7:555
998 #: build/C/man7/capabilities.7:562 build/C/man7/capabilities.7:567
999 #: build/C/man7/capabilities.7:572 build/C/man7/capabilities.7:577
1000 #: build/C/man7/capabilities.7:600 build/C/man7/capabilities.7:607
1001 #: build/C/man7/capabilities.7:806 build/C/man7/capabilities.7:814
1002 #: build/C/man7/capabilities.7:1130 build/C/man7/capabilities.7:1135
1003 #: build/C/man7/cpuset.7:540 build/C/man7/cpuset.7:545
1004 #: build/C/man7/cpuset.7:550 build/C/man7/cpuset.7:726
1005 #: build/C/man7/cpuset.7:730 build/C/man7/cpuset.7:927
1006 #: build/C/man7/cpuset.7:930 build/C/man7/cpuset.7:934
1007 #: build/C/man7/cpuset.7:938 build/C/man7/cpuset.7:942
1008 #: build/C/man7/credentials.7:125 build/C/man7/credentials.7:131
1009 #: build/C/man7/credentials.7:143 build/C/man7/credentials.7:165
1010 #: build/C/man7/credentials.7:182 build/C/man7/credentials.7:214
1011 #: build/C/man7/credentials.7:217 build/C/man7/credentials.7:227
1012 #: build/C/man7/credentials.7:230
1013 #, no-wrap
1014 msgid "*"
1015 msgstr "*"
1016
1017 #. type: Plain text
1018 #: build/C/man7/capabilities.7:101
1019 #, fuzzy
1020 #| msgid ""
1021 #| "Bypass file read permission checks and directory read and execute "
1022 #| "permission checks."
1023 msgid ""
1024 "Bypass file read permission checks and directory read and execute permission "
1025 "checks;"
1026 msgstr ""
1027 "ファイルの読み出し権限のチェックとディレクトリの読み出しと実行 の権限チェック"
1028 "をバイパスする。"
1029
1030 #. type: Plain text
1031 #: build/C/man7/capabilities.7:104
1032 msgid "Invoke B<open_by_handle_at>(2)."
1033 msgstr ""
1034
1035 #. type: TP
1036 #: build/C/man7/capabilities.7:107
1037 #, no-wrap
1038 msgid "B<CAP_FOWNER>"
1039 msgstr "B<CAP_FOWNER>"
1040
1041 #. type: Plain text
1042 #: build/C/man7/capabilities.7:121
1043 msgid ""
1044 "Bypass permission checks on operations that normally require the file system "
1045 "UID of the process to match the UID of the file (e.g., B<chmod>(2), B<utime>"
1046 "(2)), excluding those operations covered by B<CAP_DAC_OVERRIDE> and "
1047 "B<CAP_DAC_READ_SEARCH>;"
1048 msgstr ""
1049 "通常、プロセスのファイルシステム UID がファイルの UID に一致することが 要求さ"
1050 "れる操作 (例えば B<chmod>(2), B<utime>(2))  における権限チェックをバイパスす"
1051 "る。 但し、 B<CAP_DAC_OVERRIDE> か B<CAP_DAC_READ_SEARCH> によりチェックが行"
1052 "われる操作は除く。"
1053
1054 #. type: Plain text
1055 #: build/C/man7/capabilities.7:125
1056 msgid "set extended file attributes (see B<chattr>(1))  on arbitrary files;"
1057 msgstr ""
1058 "任意のファイルに対して拡張ファイル属性を設定する (B<chattr>(1)  参照)。"
1059
1060 #. type: Plain text
1061 #: build/C/man7/capabilities.7:127
1062 msgid "set Access Control Lists (ACLs) on arbitrary files;"
1063 msgstr "任意のファイルに対してアクセス制御リスト (ACL) を設定する。"
1064
1065 #. type: Plain text
1066 #: build/C/man7/capabilities.7:129
1067 msgid "ignore directory sticky bit on file deletion;"
1068 msgstr "ファイルの削除の際にディレクトリのスティッキービットを無視する。"
1069
1070 #. type: Plain text
1071 #: build/C/man7/capabilities.7:136
1072 msgid ""
1073 "specify B<O_NOATIME> for arbitrary files in B<open>(2)  and B<fcntl>(2)."
1074 msgstr ""
1075 "B<open>(2)  や B<fcntl>(2)  で任意のファイルに対して B<O_NOATIME> を指定す"
1076 "る。"
1077
1078 #. type: TP
1079 #: build/C/man7/capabilities.7:138
1080 #, no-wrap
1081 msgid "B<CAP_FSETID>"
1082 msgstr "B<CAP_FSETID>"
1083
1084 #. type: Plain text
1085 #: build/C/man7/capabilities.7:144
1086 msgid ""
1087 "Don't clear set-user-ID and set-group-ID permission bits when a file is "
1088 "modified; set the set-group-ID bit for a file whose GID does not match the "
1089 "file system or any of the supplementary GIDs of the calling process."
1090 msgstr ""
1091 "ファイルが変更されたときに set-user-ID とset-group-ID の許可ビットをクリア し"
1092 "ない。呼び出し元プロセスのファイルシステム GID と追加の GID のいずれとも GID "
1093 "が一致しないファイルに対して set-group-ID ビットを設定する。"
1094
1095 #. type: TP
1096 #: build/C/man7/capabilities.7:144
1097 #, no-wrap
1098 msgid "B<CAP_IPC_LOCK>"
1099 msgstr "B<CAP_IPC_LOCK>"
1100
1101 #.  FIXME As at Linux 3.2, there are some strange uses of this capability
1102 #.  in other places; they probably should be replaced with something else.
1103 #. type: Plain text
1104 #: build/C/man7/capabilities.7:153
1105 msgid "Lock memory (B<mlock>(2), B<mlockall>(2), B<mmap>(2), B<shmctl>(2))."
1106 msgstr ""
1107 "メモリーのロック (B<mlock>(2), B<mlockall>(2), B<mmap>(2), B<shmctl>(2))  を"
1108 "行う。"
1109
1110 #. type: TP
1111 #: build/C/man7/capabilities.7:153
1112 #, no-wrap
1113 msgid "B<CAP_IPC_OWNER>"
1114 msgstr "B<CAP_IPC_OWNER>"
1115
1116 #. type: Plain text
1117 #: build/C/man7/capabilities.7:156
1118 msgid "Bypass permission checks for operations on System V IPC objects."
1119 msgstr ""
1120 "System V IPC オブジェクトに対する操作に関して権限チェックをバイパスする。"
1121
1122 #. type: TP
1123 #: build/C/man7/capabilities.7:156
1124 #, no-wrap
1125 msgid "B<CAP_KILL>"
1126 msgstr "B<CAP_KILL>"
1127
1128 #.  FIXME CAP_KILL also has an effect for threads + setting child
1129 #.        termination signal to other than SIGCHLD: without this
1130 #.        capability, the termination signal reverts to SIGCHLD
1131 #.        if the child does an exec().  What is the rationale
1132 #.        for this?
1133 #. type: Plain text
1134 #: build/C/man7/capabilities.7:169
1135 msgid ""
1136 "Bypass permission checks for sending signals (see B<kill>(2)).  This "
1137 "includes use of the B<ioctl>(2)  B<KDSIGACCEPT> operation."
1138 msgstr ""
1139 "シグナルを送信する際に権限チェックをバイパスする (B<kill>(2)  参照)。これに"
1140 "は B<ioctl>(2)  の B<KDSIGACCEPT> 操作の使用も含まれる。"
1141
1142 #. type: TP
1143 #: build/C/man7/capabilities.7:169
1144 #, no-wrap
1145 msgid "B<CAP_LEASE> (since Linux 2.4)"
1146 msgstr "B<CAP_LEASE> (Linux 2.4 以降)"
1147
1148 #. type: Plain text
1149 #: build/C/man7/capabilities.7:173
1150 msgid "Establish leases on arbitrary files (see B<fcntl>(2))."
1151 msgstr "任意のファイルに対して ファイルリースを設定する (B<fcntl>(2)  参照)。"
1152
1153 #. type: TP
1154 #: build/C/man7/capabilities.7:173
1155 #, no-wrap
1156 msgid "B<CAP_LINUX_IMMUTABLE>"
1157 msgstr "B<CAP_LINUX_IMMUTABLE>"
1158
1159 #.  These attributes are now available on ext2, ext3, Reiserfs, XFS, JFS
1160 #. type: Plain text
1161 #: build/C/man7/capabilities.7:182
1162 msgid ""
1163 "Set the B<FS_APPEND_FL> and B<FS_IMMUTABLE_FL> i-node flags (see B<chattr>"
1164 "(1))."
1165 msgstr ""
1166 "拡張ファイル属性 B<FS_APPEND_FL> と B<FS_IMMUTABLE_FL> を設定する (B<chattr>"
1167 "(1)  参照)。"
1168
1169 #. type: TP
1170 #: build/C/man7/capabilities.7:182
1171 #, no-wrap
1172 msgid "B<CAP_MAC_ADMIN> (since Linux 2.6.25)"
1173 msgstr "B<CAP_MAC_ADMIN> (Linux 2.6.25 以降)"
1174
1175 #. type: Plain text
1176 #: build/C/man7/capabilities.7:186
1177 msgid ""
1178 "Override Mandatory Access Control (MAC).  Implemented for the Smack Linux "
1179 "Security Module (LSM)."
1180 msgstr ""
1181 "強制アクセス制御 (MAC) を上書きする。 Smack Linux Security Module (LSM) 用に"
1182 "実装されている。"
1183
1184 #. type: TP
1185 #: build/C/man7/capabilities.7:186
1186 #, no-wrap
1187 msgid "B<CAP_MAC_OVERRIDE> (since Linux 2.6.25)"
1188 msgstr "B<CAP_MAC_OVERRIDE> (Linux 2.6.25 以降)"
1189
1190 #. type: Plain text
1191 #: build/C/man7/capabilities.7:190
1192 msgid ""
1193 "Allow MAC configuration or state changes.  Implemented for the Smack LSM."
1194 msgstr "MAC の設定や状態を変更する。 Smack LSM 用に実装されている。"
1195
1196 #. type: TP
1197 #: build/C/man7/capabilities.7:190
1198 #, no-wrap
1199 msgid "B<CAP_MKNOD> (since Linux 2.4)"
1200 msgstr "B<CAP_MKNOD> (Linux 2.4 以降)"
1201
1202 #. type: Plain text
1203 #: build/C/man7/capabilities.7:194
1204 msgid "Create special files using B<mknod>(2)."
1205 msgstr ""
1206 "(Linux 2.4 以降)  B<mknod>(2)  を使用してスペシャルファイルを作成する。"
1207
1208 #. type: TP
1209 #: build/C/man7/capabilities.7:194
1210 #, no-wrap
1211 msgid "B<CAP_NET_ADMIN>"
1212 msgstr "B<CAP_NET_ADMIN>"
1213
1214 #. type: Plain text
1215 #: build/C/man7/capabilities.7:197
1216 msgid "Perform various network-related operations:"
1217 msgstr "各種のネットワーク関係の操作を実行する:"
1218
1219 #. type: Plain text
1220 #: build/C/man7/capabilities.7:201
1221 msgid "interface configuration;"
1222 msgstr "インターフェースの設定"
1223
1224 #. type: Plain text
1225 #: build/C/man7/capabilities.7:203
1226 msgid "administration of IP firewall, masquerading, and accounting;"
1227 msgstr "IP のファイアウォール、マスカレード、アカウンティング"
1228
1229 #. type: Plain text
1230 #: build/C/man7/capabilities.7:205
1231 msgid "modify routing tables;"
1232 msgstr "ルーティングテーブルの変更"
1233
1234 #. type: Plain text
1235 #: build/C/man7/capabilities.7:207
1236 msgid "bind to any address for transparent proxying;"
1237 msgstr "透過的プロキシでの任意のアドレスの割り当て (bind)"
1238
1239 #. type: Plain text
1240 #: build/C/man7/capabilities.7:209
1241 msgid "set type-of-service (TOS)"
1242 msgstr "サービス種別 (type-of-service; TOS) のセット"
1243
1244 #. type: Plain text
1245 #: build/C/man7/capabilities.7:211
1246 msgid "clear driver statistics;"
1247 msgstr "ドライバの統計情報のクリア"
1248
1249 #. type: Plain text
1250 #: build/C/man7/capabilities.7:213
1251 msgid "set promiscuous mode;"
1252 msgstr "promiscuous モードをセットする"
1253
1254 #. type: Plain text
1255 #: build/C/man7/capabilities.7:215
1256 msgid "enabling multicasting;"
1257 msgstr "マルチキャストを有効にする"
1258
1259 #. type: Plain text
1260 #: build/C/man7/capabilities.7:226
1261 msgid ""
1262 "use B<setsockopt>(2)  to set the following socket options: B<SO_DEBUG>, "
1263 "B<SO_MARK>, B<SO_PRIORITY> (for a priority outside the range 0 to 6), "
1264 "B<SO_RCVBUFFORCE>, and B<SO_SNDBUFFORCE>."
1265 msgstr ""
1266 "B<setsockopt>(2) を使って以下のソケットオプションを設定する:\n"
1267 "B<SO_DEBUG>, B<SO_MARK>, \n"
1268 "B<SO_PRIORITY> (優先度を 0 から 6 以外に設定する場合),\n"
1269 "B<SO_RCVBUFFORCE>, and B<SO_SNDBUFFORCE>"
1270
1271 #. type: TP
1272 #: build/C/man7/capabilities.7:228
1273 #, no-wrap
1274 msgid "B<CAP_NET_BIND_SERVICE>"
1275 msgstr "B<CAP_NET_BIND_SERVICE>"
1276
1277 #. type: Plain text
1278 #: build/C/man7/capabilities.7:232
1279 msgid ""
1280 "Bind a socket to Internet domain privileged ports (port numbers less than "
1281 "1024)."
1282 msgstr ""
1283 "インターネットドメインの特権ポート (ポート番号が 1024 番未満)  をバインドでき"
1284 "る。"
1285
1286 #. type: TP
1287 #: build/C/man7/capabilities.7:232
1288 #, no-wrap
1289 msgid "B<CAP_NET_BROADCAST>"
1290 msgstr "B<CAP_NET_BROADCAST>"
1291
1292 #. type: Plain text
1293 #: build/C/man7/capabilities.7:235
1294 msgid "(Unused)  Make socket broadcasts, and listen to multicasts."
1295 msgstr ""
1296 "(未使用) ソケットのブロードキャストと、マルチキャストの待ち受けを行う。"
1297
1298 #. type: TP
1299 #: build/C/man7/capabilities.7:235
1300 #, no-wrap
1301 msgid "B<CAP_NET_RAW>"
1302 msgstr "B<CAP_NET_RAW>"
1303
1304 #. type: Plain text
1305 #: build/C/man7/capabilities.7:241
1306 msgid "use RAW and PACKET sockets;"
1307 msgstr "RAW ソケットと PACKET ソケットを使用する。"
1308
1309 #. type: Plain text
1310 #: build/C/man7/capabilities.7:243
1311 msgid "bind to any address for transparent proxying."
1312 msgstr "透過的プロキシでの任意のアドレスの割り当て (bind)"
1313
1314 #. type: TP
1315 #: build/C/man7/capabilities.7:246
1316 #, no-wrap
1317 msgid "B<CAP_SETGID>"
1318 msgstr "B<CAP_SETGID>"
1319
1320 #. type: Plain text
1321 #: build/C/man7/capabilities.7:250
1322 msgid ""
1323 "Make arbitrary manipulations of process GIDs and supplementary GID list; "
1324 "forge GID when passing socket credentials via UNIX domain sockets."
1325 msgstr ""
1326 "プロセスの GID と追加の GID リストに対する任意の操作を行う。 UNIX ドメインソ"
1327 "ケット経由でソケットの資格情報 (credential) を渡す際に 偽の GID を渡すことが"
1328 "できる。"
1329
1330 #. type: TP
1331 #: build/C/man7/capabilities.7:250
1332 #, no-wrap
1333 msgid "B<CAP_SETFCAP> (since Linux 2.6.24)"
1334 msgstr "B<CAP_SETFCAP> (Linux 2.6.24 以降)"
1335
1336 #. type: Plain text
1337 #: build/C/man7/capabilities.7:253
1338 msgid "Set file capabilities."
1339 msgstr "ファイルケーパビリティを設定する。"
1340
1341 #. type: TP
1342 #: build/C/man7/capabilities.7:253
1343 #, no-wrap
1344 msgid "B<CAP_SETPCAP>"
1345 msgstr "B<CAP_SETPCAP>"
1346
1347 #. type: Plain text
1348 #: build/C/man7/capabilities.7:264
1349 msgid ""
1350 "If file capabilities are not supported: grant or remove any capability in "
1351 "the caller's permitted capability set to or from any other process.  (This "
1352 "property of B<CAP_SETPCAP> is not available when the kernel is configured to "
1353 "support file capabilities, since B<CAP_SETPCAP> has entirely different "
1354 "semantics for such kernels.)"
1355 msgstr ""
1356 "ファイルケーパビリティがサポートされていない場合: 呼び出し元が許可されている"
1357 "ケーパビリティセットに含まれる任意のケーパビリティを、 他のプロセスに付与した"
1358 "り、削除したりできる。 (カーネルがファイルケーパビリティをサポートしている場"
1359 "合、 B<CAP_SETPCAP> はこの役割を持たない。 なぜなら、ファイルケーパビリティを"
1360 "サポートしているカーネルでは B<CAP_SETPCAP> は全く別の意味を持つからである。)"
1361
1362 #. type: Plain text
1363 #: build/C/man7/capabilities.7:274
1364 msgid ""
1365 "If file capabilities are supported: add any capability from the calling "
1366 "thread's bounding set to its inheritable set; drop capabilities from the "
1367 "bounding set (via B<prctl>(2)  B<PR_CAPBSET_DROP>); make changes to the "
1368 "I<securebits> flags."
1369 msgstr ""
1370 "ファイルケーパビリティがサポートされている場合: 呼び出し元スレッドのバウン"
1371 "ディングセットの任意のケーパビリティを 自身の継承可能ケーパビリティセットに追"
1372 "加できる。 (B<prctl>(2)  B<PR_CAPBSET_DROP> を使って)  バウンディングセットか"
1373 "らケーパビリティを削除できる。 I<securebits> フラグを変更できる。"
1374
1375 #. type: TP
1376 #: build/C/man7/capabilities.7:274
1377 #, no-wrap
1378 msgid "B<CAP_SETUID>"
1379 msgstr "B<CAP_SETUID>"
1380
1381 #.  FIXME CAP_SETUID also an effect in exec(); document this.
1382 #. type: Plain text
1383 #: build/C/man7/capabilities.7:283
1384 msgid ""
1385 "Make arbitrary manipulations of process UIDs (B<setuid>(2), B<setreuid>(2), "
1386 "B<setresuid>(2), B<setfsuid>(2)); make forged UID when passing socket "
1387 "credentials via UNIX domain sockets."
1388 msgstr ""
1389 "プロセスの UID に対する任意の操作 (B<setuid>(2), B<setreuid>(2), B<setresuid>"
1390 "(2), B<setfsuid>(2))  を行う。 UNIX ドメインソケット経由でソケットの資格情報 "
1391 "(credential) を渡す際に 偽の UID を渡すことができる。"
1392
1393 #. type: TP
1394 #: build/C/man7/capabilities.7:283
1395 #, no-wrap
1396 msgid "B<CAP_SYS_ADMIN>"
1397 msgstr "B<CAP_SYS_ADMIN>"
1398
1399 #. type: Plain text
1400 #: build/C/man7/capabilities.7:297
1401 msgid ""
1402 "Perform a range of system administration operations including: B<quotactl>"
1403 "(2), B<mount>(2), B<umount>(2), B<swapon>(2), B<swapoff>(2), B<sethostname>"
1404 "(2), and B<setdomainname>(2);"
1405 msgstr ""
1406 "以下のシステム管理用の操作を実行する: B<quotactl>(2), B<mount>(2), B<umount>"
1407 "(2), B<swapon>(2), B<swapoff>(2), B<sethostname>(2), B<setdomainname>(2)."
1408
1409 #. type: Plain text
1410 #: build/C/man7/capabilities.7:303
1411 msgid ""
1412 "perform privileged B<syslog>(2)  operations (since Linux 2.6.37, "
1413 "B<CAP_SYSLOG> should be used to permit such operations);"
1414 msgstr ""
1415 "特権が必要な B<syslog>(2) の操作を実行する\n"
1416 "(Linux 2.6.37 以降では、このような操作を許可するには\n"
1417 "B<CAP_SYSLOG> を使うべきである)"
1418
1419 #. type: Plain text
1420 #: build/C/man7/capabilities.7:308
1421 msgid "perform B<VM86_REQUEST_IRQ> B<vm86>(2)  command;"
1422 msgstr "B<VM86_REQUEST_IRQ> B<vm86>(2) コマンドを実行する。"
1423
1424 #. type: Plain text
1425 #: build/C/man7/capabilities.7:314
1426 msgid ""
1427 "perform B<IPC_SET> and B<IPC_RMID> operations on arbitrary System V IPC "
1428 "objects;"
1429 msgstr ""
1430 "任意の System V IPC オブジェクトに対する B<IPC_SET> と B<IPC_RMID> 操作を実行"
1431 "する。"
1432
1433 #. type: Plain text
1434 #: build/C/man7/capabilities.7:321
1435 msgid ""
1436 "perform operations on I<trusted> and I<security> Extended Attributes (see "
1437 "B<attr>(5));"
1438 msgstr ""
1439 "拡張属性 I<trusted> と I<security> に対する操作を実行する (B<attr>(5)  参"
1440 "照)。"
1441
1442 #. type: Plain text
1443 #: build/C/man7/capabilities.7:324
1444 msgid "use B<lookup_dcookie>(2);"
1445 msgstr "B<lookup_dcookie>(2)  を呼び出す。"
1446
1447 #. type: Plain text
1448 #: build/C/man7/capabilities.7:332
1449 msgid ""
1450 "use B<ioprio_set>(2)  to assign B<IOPRIO_CLASS_RT> and (before Linux "
1451 "2.6.25)  B<IOPRIO_CLASS_IDLE> I/O scheduling classes;"
1452 msgstr ""
1453 "B<ioprio_set>(2)  を使って I/O スケジューリングクラス B<IOPRIO_CLASS_RT>, "
1454 "B<IOPRIO_CLASS_IDLE> を割り当てる (B<IOPRIO_CLASS_IDLE> は Linux 2.6.25 より"
1455 "前のバージョンのみ)。"
1456
1457 #. type: Plain text
1458 #: build/C/man7/capabilities.7:334
1459 msgid "forge UID when passing socket credentials;"
1460 msgstr "ソケットの資格情報 (credential) を渡す際に偽の UID を渡す。"
1461
1462 #. type: Plain text
1463 #: build/C/man7/capabilities.7:343
1464 msgid ""
1465 "exceed I</proc/sys/fs/file-max>, the system-wide limit on the number of open "
1466 "files, in system calls that open files (e.g., B<accept>(2), B<execve>(2), "
1467 "B<open>(2), B<pipe>(2));"
1468 msgstr ""
1469 "ファイルをオープンするシステムコール (例えば B<accept>(2), B<execve>(2), "
1470 "B<open>(2), B<pipe>(2))  でシステム全体でオープンできるファイル数の上限 I</"
1471 "proc/sys/fs/file-max> を超過する。"
1472
1473 #. type: Plain text
1474 #: build/C/man7/capabilities.7:350
1475 msgid ""
1476 "employ B<CLONE_*> flags that create new namespaces with B<clone>(2)  and "
1477 "B<unshare>(2);"
1478 msgstr ""
1479 "B<clone>(2) と B<unshare>(2) で新しい名前空間を作成する B<CLONE_*> \n"
1480 "フラグを利用する。"
1481
1482 #. type: Plain text
1483 #: build/C/man7/capabilities.7:353
1484 msgid "call B<perf_event_open>(2);"
1485 msgstr "B<perf_event_open>(2) を呼び出す。"
1486
1487 #. type: Plain text
1488 #: build/C/man7/capabilities.7:357
1489 msgid "access privileged I<perf> event information;"
1490 msgstr "特権が必要な I<perf> イベントの情報にアクセスする。"
1491
1492 #. type: Plain text
1493 #: build/C/man7/capabilities.7:360
1494 msgid "call B<setns>(2);"
1495 msgstr "B<setns>(2) を呼び出す。"
1496
1497 #. type: Plain text
1498 #: build/C/man7/capabilities.7:363
1499 msgid "call B<fanotify_init>(2);"
1500 msgstr "B<fanotify_init>(2) を呼び出す。"
1501
1502 #. type: Plain text
1503 #: build/C/man7/capabilities.7:370
1504 msgid "perform B<KEYCTL_CHOWN> and B<KEYCTL_SETPERM> B<keyctl>(2)  operations;"
1505 msgstr "B<keyctl>(2)  の B<KEYCTL_CHOWN> と B<KEYCTL_SETPERM> 操作を実行する。"
1506
1507 #. type: Plain text
1508 #: build/C/man7/capabilities.7:375
1509 msgid "perform B<madvise>(2)  B<MADV_HWPOISON> operation;"
1510 msgstr "B<madvise>(2)  の B<MADV_HWPOISON> 操作を実行する。"
1511
1512 #. type: Plain text
1513 #: build/C/man7/capabilities.7:381
1514 msgid ""
1515 "employ the B<TIOCSTI> B<ioctl>(2)  to insert characters into the input queue "
1516 "of a terminal other than the caller's controlling terminal."
1517 msgstr ""
1518 "B<TIOCSTI> B<ioctl>(2) を使って、\n"
1519 "呼び出し元の制御端末以外の端末の入力キューに文字を挿入する。"
1520
1521 #. type: Plain text
1522 #: build/C/man7/capabilities.7:385
1523 msgid "employ the obsolete B<nfsservctl>(2)  system call;"
1524 msgstr "廃止予定の B<nfsservctl>(2) システムコールを使用する。"
1525
1526 #. type: Plain text
1527 #: build/C/man7/capabilities.7:389
1528 msgid "employ the obsolete B<bdflush>(2)  system call;"
1529 msgstr "廃止予定の B<bdflush>(2) システムコールを使用する。"
1530
1531 #. type: Plain text
1532 #: build/C/man7/capabilities.7:393
1533 msgid "perform various privileged block-device B<ioctl>(2)  operations;"
1534 msgstr ""
1535 "特権が必要なブロックデバイスに対する各種の B<ioctl>(2) 操作を\n"
1536 "実行する。"
1537
1538 #. type: Plain text
1539 #: build/C/man7/capabilities.7:397
1540 msgid "perform various privileged file-system B<ioctl>(2)  operations;"
1541 msgstr ""
1542 "特権が必要なファイルシステムに対する各種の B<ioctl>(2) 操作を\n"
1543 "実行する。"
1544
1545 #. type: Plain text
1546 #: build/C/man7/capabilities.7:399
1547 msgid "perform administrative operations on many device drivers."
1548 msgstr "多くのデバイスドライバに対する管理命令を実行する。"
1549
1550 #. type: TP
1551 #: build/C/man7/capabilities.7:401
1552 #, no-wrap
1553 msgid "B<CAP_SYS_BOOT>"
1554 msgstr "B<CAP_SYS_BOOT>"
1555
1556 #. type: Plain text
1557 #: build/C/man7/capabilities.7:407
1558 msgid "Use B<reboot>(2)  and B<kexec_load>(2)."
1559 msgstr "B<reboot>(2)  と B<kexec_load>(2)  を呼び出す。"
1560
1561 #. type: TP
1562 #: build/C/man7/capabilities.7:407
1563 #, no-wrap
1564 msgid "B<CAP_SYS_CHROOT>"
1565 msgstr "B<CAP_SYS_CHROOT>"
1566
1567 #. type: Plain text
1568 #: build/C/man7/capabilities.7:411
1569 msgid "Use B<chroot>(2)."
1570 msgstr "B<chroot>(2).  を呼び出す。"
1571
1572 #. type: TP
1573 #: build/C/man7/capabilities.7:411
1574 #, no-wrap
1575 msgid "B<CAP_SYS_MODULE>"
1576 msgstr "B<CAP_SYS_MODULE>"
1577
1578 #. type: Plain text
1579 #: build/C/man7/capabilities.7:420
1580 msgid ""
1581 "Load and unload kernel modules (see B<init_module>(2)  and B<delete_module>"
1582 "(2)); in kernels before 2.6.25: drop capabilities from the system-wide "
1583 "capability bounding set."
1584 msgstr ""
1585 "カーネルモジュールのロード、アンロードを行う (B<init_module>(2)  と "
1586 "B<delete_module>(2)  を参照のこと)。 バージョン 2.6.25 より前のカーネルで、 "
1587 "システム全体のケーパビリティバウンディングセット (capability bounding set)  "
1588 "からケーパビリティを外す。"
1589
1590 #. type: TP
1591 #: build/C/man7/capabilities.7:420
1592 #, no-wrap
1593 msgid "B<CAP_SYS_NICE>"
1594 msgstr "B<CAP_SYS_NICE>"
1595
1596 #. type: Plain text
1597 #: build/C/man7/capabilities.7:429
1598 msgid ""
1599 "Raise process nice value (B<nice>(2), B<setpriority>(2))  and change the "
1600 "nice value for arbitrary processes;"
1601 msgstr ""
1602 "プロセスの nice 値の引き上げ (B<nice>(2), B<setpriority>(2))  や、任意のプロ"
1603 "セスの nice 値の変更を行う。"
1604
1605 #. type: Plain text
1606 #: build/C/man7/capabilities.7:434
1607 msgid ""
1608 "set real-time scheduling policies for calling process, and set scheduling "
1609 "policies and priorities for arbitrary processes (B<sched_setscheduler>(2), "
1610 "B<sched_setparam>(2));"
1611 msgstr ""
1612 "呼び出し元プロセスに対するリアルタイムスケジューリングポリシーと、 任意のプロ"
1613 "セスに対するスケジューリングポリシーと優先度を設定する (B<sched_setscheduler>"
1614 "(2), B<sched_setparam>(2))。"
1615
1616 #. type: Plain text
1617 #: build/C/man7/capabilities.7:437
1618 msgid "set CPU affinity for arbitrary processes (B<sched_setaffinity>(2));"
1619 msgstr ""
1620 "任意のプロセスに対する CPU affinity を設定できる (B<sched_setaffinity>(2))。"
1621
1622 #. type: Plain text
1623 #: build/C/man7/capabilities.7:440
1624 msgid ""
1625 "set I/O scheduling class and priority for arbitrary processes (B<ioprio_set>"
1626 "(2));"
1627 msgstr ""
1628 "任意のプロセスに対して I/O スケジューリングクラスと優先度を設定できる "
1629 "(B<ioprio_set>(2))。"
1630
1631 #.  FIXME CAP_SYS_NICE also has the following effect for
1632 #.  migrate_pages(2):
1633 #.      do_migrate_pages(mm, &old, &new,
1634 #.          capable(CAP_SYS_NICE) ? MPOL_MF_MOVE_ALL : MPOL_MF_MOVE);
1635 #. type: Plain text
1636 #: build/C/man7/capabilities.7:449
1637 msgid ""
1638 "apply B<migrate_pages>(2)  to arbitrary processes and allow processes to be "
1639 "migrated to arbitrary nodes;"
1640 msgstr ""
1641 "B<migrate_pages>(2)  を任意のプロセスに適用し、プロセスを任意のノードに移動す"
1642 "る。"
1643
1644 #. type: Plain text
1645 #: build/C/man7/capabilities.7:453
1646 msgid "apply B<move_pages>(2)  to arbitrary processes;"
1647 msgstr "B<move_pages>(2)  を任意のプロセスに対して行う。"
1648
1649 #. type: Plain text
1650 #: build/C/man7/capabilities.7:460
1651 msgid ""
1652 "use the B<MPOL_MF_MOVE_ALL> flag with B<mbind>(2)  and B<move_pages>(2)."
1653 msgstr ""
1654 "B<mbind>(2)  と B<move_pages>(2)  で B<MPOL_MF_MOVE_ALL> フラグを使用する。"
1655
1656 #. type: TP
1657 #: build/C/man7/capabilities.7:462
1658 #, no-wrap
1659 msgid "B<CAP_SYS_PACCT>"
1660 msgstr "B<CAP_SYS_PACCT>"
1661
1662 #. type: Plain text
1663 #: build/C/man7/capabilities.7:466
1664 msgid "Use B<acct>(2)."
1665 msgstr "B<acct>(2)  を呼び出す。"
1666
1667 #. type: TP
1668 #: build/C/man7/capabilities.7:466
1669 #, no-wrap
1670 msgid "B<CAP_SYS_PTRACE>"
1671 msgstr "B<CAP_SYS_PTRACE>"
1672
1673 #. type: Plain text
1674 #: build/C/man7/capabilities.7:475
1675 msgid ""
1676 "Trace arbitrary processes using B<ptrace>(2); apply B<get_robust_list>(2)  "
1677 "to arbitrary processes; inspect processes using B<kcmp>(2)."
1678 msgstr ""
1679 "B<ptrace>(2)  を使って任意のプロセスをトレースする。 任意のプロセスに "
1680 "B<get_robust_list>(2)  を適用する。 B<kcmp>(2) を使ってプロセス内部を調査す"
1681 "る。"
1682
1683 #. type: TP
1684 #: build/C/man7/capabilities.7:475
1685 #, no-wrap
1686 msgid "B<CAP_SYS_RAWIO>"
1687 msgstr "B<CAP_SYS_RAWIO>"
1688
1689 #. type: Plain text
1690 #: build/C/man7/capabilities.7:484
1691 msgid "Perform I/O port operations (B<iopl>(2)  and B<ioperm>(2));"
1692 msgstr "I/O ポート操作を実行する (B<iopl>(2)、 B<ioperm>(2))。"
1693
1694 #. type: Plain text
1695 #: build/C/man7/capabilities.7:487
1696 msgid "access I</proc/kcore>;"
1697 msgstr "I</proc/kcore> にアクセスする。"
1698
1699 #. type: Plain text
1700 #: build/C/man7/capabilities.7:492
1701 msgid "employ the B<FIBMAP> B<ioctl>(2)  operation;"
1702 msgstr "B<FIBMAP> B<ioctl>(2) 操作を使用する。"
1703
1704 #. type: Plain text
1705 #: build/C/man7/capabilities.7:495
1706 msgid ""
1707 "open devices for accessing x86 model-specific registers (MSRs, see B<msr>(4))"
1708 msgstr ""
1709 "x86 モデルに固有のレジスタ (MSR レジスタ群、 B<msr>(4) 参照) にアクセスするた"
1710 "めのデバイスをオープンする。"
1711
1712 #. type: Plain text
1713 #: build/C/man7/capabilities.7:498
1714 msgid "update I</proc/sys/vm/mmap_min_addr>;"
1715 msgstr "I</proc/sys/vm/mmap_min_addr> を更新する。"
1716
1717 #. type: Plain text
1718 #: build/C/man7/capabilities.7:501
1719 msgid ""
1720 "create memory mappings at addresses below the value specified by I</proc/sys/"
1721 "vm/mmap_min_addr>;"
1722 msgstr ""
1723 "I</proc/sys/vm/mmap_min_addr> で指定された値よりも小さなアドレスにメモリマッ"
1724 "ピングを作成する。"
1725
1726 #. type: Plain text
1727 #: build/C/man7/capabilities.7:504
1728 msgid "map files in I</proc/bus/pci>;"
1729 msgstr "I</proc/bus/pci> にあるファイルをマップする。"
1730
1731 #. type: Plain text
1732 #: build/C/man7/capabilities.7:509
1733 msgid "open I</dev/mem> and I</dev/kmem>;"
1734 msgstr "I</dev/mem> や I</dev/kmem> をオープンする。"
1735
1736 #. type: Plain text
1737 #: build/C/man7/capabilities.7:511
1738 msgid "perform various SCSI device commands;"
1739 msgstr "各種の SCSI デバイスコマンドを実行する。"
1740
1741 #. type: Plain text
1742 #: build/C/man7/capabilities.7:517
1743 msgid "perform certain operations on B<hpsa>(4)  and B<cciss>(4)  devices;"
1744 msgstr "B<hpsa>(4) デバイスや B<cciss>(4) デバイスの特定の操作を実行する。"
1745
1746 #. type: Plain text
1747 #: build/C/man7/capabilities.7:519
1748 msgid "perform a range of device-specific operations on other devices."
1749 msgstr "他のデバイスに対して各種のデバイス固有命令を実行する。"
1750
1751 #. type: TP
1752 #: build/C/man7/capabilities.7:521
1753 #, no-wrap
1754 msgid "B<CAP_SYS_RESOURCE>"
1755 msgstr "B<CAP_SYS_RESOURCE>"
1756
1757 #. type: Plain text
1758 #: build/C/man7/capabilities.7:527
1759 msgid "Use reserved space on ext2 file systems;"
1760 msgstr "ext2 ファイルシステム上の予約されている領域を使用する。"
1761
1762 #. type: Plain text
1763 #: build/C/man7/capabilities.7:531
1764 msgid "make B<ioctl>(2)  calls controlling ext3 journaling;"
1765 msgstr "ext3 のジャーナル機能を制御する B<ioctl>(2)  を使用する。"
1766
1767 #. type: Plain text
1768 #: build/C/man7/capabilities.7:533
1769 msgid "override disk quota limits;"
1770 msgstr "ディスク quota の上限を上書きする。"
1771
1772 #. type: Plain text
1773 #: build/C/man7/capabilities.7:536
1774 msgid "increase resource limits (see B<setrlimit>(2));"
1775 msgstr "リソース上限を増やす (B<setrlimit>(2))。"
1776
1777 #. type: Plain text
1778 #: build/C/man7/capabilities.7:540
1779 msgid "override B<RLIMIT_NPROC> resource limit;"
1780 msgstr "B<RLIMIT_NPROC> リソース制限を上書きする。"
1781
1782 #. type: Plain text
1783 #: build/C/man7/capabilities.7:542
1784 msgid "override maximum number of consoles on console allocation;"
1785 msgstr "コンソール割り当てにおいてコンソールの最大数を上書きする。"
1786
1787 #. type: Plain text
1788 #: build/C/man7/capabilities.7:544
1789 msgid "override maximum number of keymaps;"
1790 msgstr "キーマップの最大数を上書きする。"
1791
1792 #. type: Plain text
1793 #: build/C/man7/capabilities.7:546
1794 msgid "allow more than 64hz interrupts from the real-time clock;"
1795 msgstr "リアルタイムクロックから秒間 64 回を越える回数の割り当てが許可する。"
1796
1797 #. type: Plain text
1798 #: build/C/man7/capabilities.7:555
1799 msgid ""
1800 "raise I<msg_qbytes> limit for a System V message queue above the limit in I</"
1801 "proc/sys/kernel/msgmnb> (see B<msgop>(2)  and B<msgctl>(2));"
1802 msgstr ""
1803 "メッセージキューに関する上限 I<msg_qbytes> を \n"
1804 "I</proc/sys/kernel/msgmnb> に指定されている上限よりも大きく設定する\n"
1805 "(B<msgop>(2) と B<msgctl>(2) 参照)。"
1806
1807 #. type: Plain text
1808 #: build/C/man7/capabilities.7:562
1809 msgid ""
1810 "override the I</proc/sys/fs/pipe-size-max> limit when setting the capacity "
1811 "of a pipe using the B<F_SETPIPE_SZ> B<fcntl>(2)  command."
1812 msgstr ""
1813 "B<F_SETPIPE_SZ> B<fcntl>(2) を使ってパイプの容量を設定する際に\n"
1814 "上限 I</proc/sys/fs/pipe-size-max> を上書きする。"
1815
1816 #. type: Plain text
1817 #: build/C/man7/capabilities.7:567
1818 msgid ""
1819 "use B<F_SETPIPE_SZ> to increase the capacity of a pipe above the limit "
1820 "specified by I</proc/sys/fs/pipe-max-size>;"
1821 msgstr ""
1822 "I</proc/sys/fs/pipe-max-size> に指定されている上限を超えてパイプの容量\n"
1823 "を増やすのに B<F_SETPIPE_SZ> を使用する。"
1824
1825 #. type: Plain text
1826 #: build/C/man7/capabilities.7:572
1827 msgid ""
1828 "override I</proc/sys/fs/mqueue/queues_max> limit when creating POSIX message "
1829 "queues (see B<mq_overview>(7));"
1830 msgstr ""
1831 "POSIX メッセージキューを作成する際に、\n"
1832 "上限 I</proc/sys/fs/mqueue/queues_max> を上書きする\n"
1833 "(B<mq_overview>(7) 参照)。"
1834
1835 #. type: Plain text
1836 #: build/C/man7/capabilities.7:577
1837 msgid "employ B<prctl>(2)  B<PR_SET_MM> operation;"
1838 msgstr "B<prctl>(2) B<PR_SET_MM> 操作を使用する。"
1839
1840 #. type: Plain text
1841 #: build/C/man7/capabilities.7:582
1842 msgid ""
1843 "set I</proc/PID/oom_score_adj> to a value lower than the value last set by a "
1844 "process with B<CAP_SYS_RESOURCE>."
1845 msgstr ""
1846 "B<CAP_SYS_RESOURCE> を持ったプロセスによって最後に設定された値よりも小さな値"
1847 "を I</proc/PID/oom_score_adj> に設定する。"
1848
1849 #. type: TP
1850 #: build/C/man7/capabilities.7:584
1851 #, no-wrap
1852 msgid "B<CAP_SYS_TIME>"
1853 msgstr "B<CAP_SYS_TIME>"
1854
1855 #. type: Plain text
1856 #: build/C/man7/capabilities.7:591
1857 msgid ""
1858 "Set system clock (B<settimeofday>(2), B<stime>(2), B<adjtimex>(2)); set real-"
1859 "time (hardware) clock."
1860 msgstr ""
1861 "システムクロックを変更する (B<settimeofday>(2), B<stime>(2), B<adjtimex>"
1862 "(2))。 リアルタイム (ハードウェア) クロックを変更する。"
1863
1864 #. type: TP
1865 #: build/C/man7/capabilities.7:591
1866 #, no-wrap
1867 msgid "B<CAP_SYS_TTY_CONFIG>"
1868 msgstr "B<CAP_SYS_TTY_CONFIG>"
1869
1870 #. type: Plain text
1871 #: build/C/man7/capabilities.7:598
1872 msgid ""
1873 "Use B<vhangup>(2); employ various privileged B<ioctl>(2)  operations on "
1874 "virtual terminals."
1875 msgstr ""
1876 "B<vhangup>(2) を使用する。\n"
1877 "特権が必要な仮想端末に関する各種の B<ioctl>(2) 操作を利用できる。"
1878
1879 #. type: TP
1880 #: build/C/man7/capabilities.7:598
1881 #, no-wrap
1882 msgid "B<CAP_SYSLOG> (since Linux 2.6.37)"
1883 msgstr "B<CAP_SYSLOG> (Linux 2.6.37 以降)"
1884
1885 #. type: Plain text
1886 #: build/C/man7/capabilities.7:607
1887 msgid ""
1888 "Perform privileged B<syslog>(2)  operations.  See B<syslog>(2)  for "
1889 "information on which operations require privilege."
1890 msgstr ""
1891 "特権が必要な B<syslog>(2) 操作を実行できる。\n"
1892 "どの操作が特権が必要かについての情報は B<syslog>(2) を参照。"
1893
1894 #. type: Plain text
1895 #: build/C/man7/capabilities.7:617
1896 msgid ""
1897 "View kernel addresses exposed via I</proc> and other interfaces when I</proc/"
1898 "sys/kernel/kptr_restrict> has the value 1.  (See the discussion of the "
1899 "I<kptr_restrict> in B<proc>(5).)"
1900 msgstr ""
1901 "I</proc/sys/kernel/kptr_restrict> の値が 1 の場合、 I</proc> や他のインター"
1902 "フェース経由で公開されているカーネルアドレスを参照する (B<proc>(5) の "
1903 "I<kptr_restrict> の議論を参照)。"
1904
1905 #. type: TP
1906 #: build/C/man7/capabilities.7:617
1907 #, no-wrap
1908 msgid "B<CAP_WAKE_ALARM> (since Linux 3.0)"
1909 msgstr "B<CAP_WAKE_ALARM> (Linux 3.0 以降)"
1910
1911 #. type: Plain text
1912 #: build/C/man7/capabilities.7:625
1913 msgid ""
1914 "Trigger something that will wake up the system (set B<CLOCK_REALTIME_ALARM> "
1915 "and B<CLOCK_BOOTTIME_ALARM> timers)."
1916 msgstr ""
1917 "システムを起こすトリガーを有効にする (タイマー B<CLOCK_REALTIME_ALARM>\n"
1918 "や B<CLOCK_BOOTTIME_ALARM> を設定する)。"
1919
1920 #. type: SS
1921 #: build/C/man7/capabilities.7:625
1922 #, no-wrap
1923 msgid "Past and current implementation"
1924 msgstr "過去と現在の実装"
1925
1926 #. type: Plain text
1927 #: build/C/man7/capabilities.7:627
1928 msgid "A full implementation of capabilities requires that:"
1929 msgstr "完全な形のケーパビリティを実装するには、以下の要件を満たす必要がある:"
1930
1931 #. type: IP
1932 #: build/C/man7/capabilities.7:627 build/C/man7/capabilities.7:778
1933 #: build/C/man7/capabilities.7:925 build/C/man7/capabilities.7:978
1934 #, no-wrap
1935 msgid "1."
1936 msgstr "1."
1937
1938 #. type: Plain text
1939 #: build/C/man7/capabilities.7:631
1940 msgid ""
1941 "For all privileged operations, the kernel must check whether the thread has "
1942 "the required capability in its effective set."
1943 msgstr ""
1944 "全ての特権操作について、カーネルはそのスレッドの実効ケーパビリティセットに 必"
1945 "要なケーパビリティがあるかを確認する。"
1946
1947 #. type: IP
1948 #: build/C/man7/capabilities.7:631 build/C/man7/capabilities.7:783
1949 #: build/C/man7/capabilities.7:931 build/C/man7/capabilities.7:984
1950 #, no-wrap
1951 msgid "2."
1952 msgstr "2."
1953
1954 #. type: Plain text
1955 #: build/C/man7/capabilities.7:634
1956 msgid ""
1957 "The kernel must provide system calls allowing a thread's capability sets to "
1958 "be changed and retrieved."
1959 msgstr ""
1960 "カーネルで、あるスレッドのケーパビリティセットを変更したり、 取得したりできる"
1961 "システムコールが提供される。"
1962
1963 #. type: IP
1964 #: build/C/man7/capabilities.7:634 build/C/man7/capabilities.7:934
1965 #: build/C/man7/capabilities.7:988
1966 #, no-wrap
1967 msgid "3."
1968 msgstr "3."
1969
1970 #. type: Plain text
1971 #: build/C/man7/capabilities.7:637
1972 msgid ""
1973 "The file system must support attaching capabilities to an executable file, "
1974 "so that a process gains those capabilities when the file is executed."
1975 msgstr ""
1976 "ファイルシステムが、実行可能ファイルにケーパビリティを付与でき、ファイル 実行"
1977 "時にそのケーパビリティをプロセスが取得できるような機能をサポートする。"
1978
1979 #. type: Plain text
1980 #: build/C/man7/capabilities.7:641
1981 msgid ""
1982 "Before kernel 2.6.24, only the first two of these requirements are met; "
1983 "since kernel 2.6.24, all three requirements are met."
1984 msgstr ""
1985 "カーネル 2.6.24 より前では、最初の 2つの要件のみが満たされている。 カーネル "
1986 "2.6.24 以降では、3つの要件すべてが満たされている。"
1987
1988 #. type: SS
1989 #: build/C/man7/capabilities.7:641
1990 #, no-wrap
1991 msgid "Thread capability sets"
1992 msgstr "スレッドケーパビリティセット"
1993
1994 #. type: Plain text
1995 #: build/C/man7/capabilities.7:644
1996 msgid ""
1997 "Each thread has three capability sets containing zero or more of the above "
1998 "capabilities:"
1999 msgstr ""
2000 "各スレッドは以下の 3種類のケーパビリティセットを持つ。各々のケーパビリティ"
2001 "セットは 上記のケーパビリティの組み合わせである (全てのケーパビリティが無効で"
2002 "もよい)。"
2003
2004 #. type: TP
2005 #: build/C/man7/capabilities.7:644
2006 #, no-wrap
2007 msgid "I<Permitted>:"
2008 msgstr "I<許可 (permitted)>:"
2009
2010 #. type: Plain text
2011 #: build/C/man7/capabilities.7:652
2012 msgid ""
2013 "This is a limiting superset for the effective capabilities that the thread "
2014 "may assume.  It is also a limiting superset for the capabilities that may be "
2015 "added to the inheritable set by a thread that does not have the "
2016 "B<CAP_SETPCAP> capability in its effective set."
2017 msgstr ""
2018 "そのスレッドが持つことになっている実効ケーパビリティの 限定的なスーパーセット"
2019 "である。 これは、実効ケーパビリティセットに B<CAP_SETPCAP> ケーパビリティを"
2020 "持っていないスレッドが継承可能ケーパビリティセットに 追加可能なケーパビリティ"
2021 "の限定的なスーパーセットでもある。"
2022
2023 #. type: Plain text
2024 #: build/C/man7/capabilities.7:658
2025 msgid ""
2026 "If a thread drops a capability from its permitted set, it can never "
2027 "reacquire that capability (unless it B<execve>(2)s either a set-user-ID-root "
2028 "program, or a program whose associated file capabilities grant that "
2029 "capability)."
2030 msgstr ""
2031 "許可ケーパビリティセットから削除してしまったケーパビリティは、 (set-user-ID-"
2032 "root プログラムか、 そのケーパビリティをファイルケーパビリティで許可している"
2033 "プログラムを B<execve>(2)  しない限りは) もう一度獲得することはできない。"
2034
2035 #. type: TP
2036 #: build/C/man7/capabilities.7:658
2037 #, no-wrap
2038 msgid "I<Inheritable>:"
2039 msgstr "I<継承可能 (inheritable)>:"
2040
2041 #. type: Plain text
2042 #: build/C/man7/capabilities.7:665
2043 msgid ""
2044 "This is a set of capabilities preserved across an B<execve>(2).  It provides "
2045 "a mechanism for a process to assign capabilities to the permitted set of the "
2046 "new program during an B<execve>(2)."
2047 msgstr ""
2048 "B<execve>(2)  を前後で保持されるケーパビリティセットである。 この仕組みを使う"
2049 "ことで、あるプロセスが B<execve>(2)  を行う際に新しいプログラムの許可ケーパビ"
2050 "リティセットとして 割り当てるケーパビリティを指定することができる。"
2051
2052 #. type: TP
2053 #: build/C/man7/capabilities.7:665 build/C/man7/capabilities.7:715
2054 #, no-wrap
2055 msgid "I<Effective>:"
2056 msgstr "I<実効 (effective)>:"
2057
2058 #. type: Plain text
2059 #: build/C/man7/capabilities.7:669
2060 msgid ""
2061 "This is the set of capabilities used by the kernel to perform permission "
2062 "checks for the thread."
2063 msgstr ""
2064 "カーネルがスレッドの権限 (permission) をチェックするときに 使用するケーパビリ"
2065 "ティセットである。"
2066
2067 #. type: Plain text
2068 #: build/C/man7/capabilities.7:675
2069 msgid ""
2070 "A child created via B<fork>(2)  inherits copies of its parent's capability "
2071 "sets.  See below for a discussion of the treatment of capabilities during "
2072 "B<execve>(2)."
2073 msgstr ""
2074 "B<fork>(2)  で作成される子プロセスは、親のケーパビリティセットのコピーを継承"
2075 "する。 B<execve>(2)  中のケーパビリティの扱いについては下記を参照のこと。"
2076
2077 #. type: Plain text
2078 #: build/C/man7/capabilities.7:679
2079 msgid ""
2080 "Using B<capset>(2), a thread may manipulate its own capability sets (see "
2081 "below)."
2082 msgstr ""
2083 "B<capset>(2)  を使うと、プロセスは自分自身のケーパビリティセット を操作するこ"
2084 "とができる (下記参照)。"
2085
2086 #.  commit 73efc0394e148d0e15583e13712637831f926720
2087 #. type: Plain text
2088 #: build/C/man7/capabilities.7:688
2089 msgid ""
2090 "Since Linux 3.2, the file I</proc/sys/kernel/cap_last_cap> exposes the "
2091 "numerical value of the highest capability supported by the running kernel; "
2092 "this can be used to determine the highest bit that may be set in a "
2093 "capability set."
2094 msgstr ""
2095 "Linux 3.2 以降では、 ファイル I</proc/sys/kernel/cap_last_cap> で、 実行中の"
2096 "カーネルでサポートされているケーパビリティの最大値を参照できる。 この情報を"
2097 "使って、 ケーパビリティセットに設定される可能性がある最上位ビットを判定するこ"
2098 "とができる。"
2099
2100 #. type: SS
2101 #: build/C/man7/capabilities.7:688
2102 #, no-wrap
2103 msgid "File capabilities"
2104 msgstr "ファイルケーパビリティ"
2105
2106 #. type: Plain text
2107 #: build/C/man7/capabilities.7:703
2108 msgid ""
2109 "Since kernel 2.6.24, the kernel supports associating capability sets with an "
2110 "executable file using B<setcap>(8).  The file capability sets are stored in "
2111 "an extended attribute (see B<setxattr>(2))  named I<security.capability>.  "
2112 "Writing to this extended attribute requires the B<CAP_SETFCAP> capability.  "
2113 "The file capability sets, in conjunction with the capability sets of the "
2114 "thread, determine the capabilities of a thread after an B<execve>(2)."
2115 msgstr ""
2116 "カーネル 2.6.24 以降では、 B<setcap>(8)  を使って実行ファイルにケーパビリティ"
2117 "セットを対応付けることができる。 ファイルケーパビリティセットは I<security."
2118 "capability> という名前の拡張属性に保存される (B<setxattr>(2)  参照)。この拡張"
2119 "属性への書き込みには B<CAP_SETFCAP> ケーパビリティが必要である。 ファイルケー"
2120 "パビリティセットとスレッドのケーパビリティセットの両方が 考慮され、 B<execve>"
2121 "(2)  後のスレッドのケーパビリティセットが決定される。"
2122
2123 #. type: Plain text
2124 #: build/C/man7/capabilities.7:705
2125 msgid "The three file capability sets are:"
2126 msgstr "3 つのファイルケーパビリティセットが定義されている。"
2127
2128 #. type: TP
2129 #: build/C/man7/capabilities.7:705
2130 #, no-wrap
2131 msgid "I<Permitted> (formerly known as I<forced>):"
2132 msgstr "I<許可 (Permitted)> (以前のI<強制 (Forced)>):"
2133
2134 #. type: Plain text
2135 #: build/C/man7/capabilities.7:709
2136 msgid ""
2137 "These capabilities are automatically permitted to the thread, regardless of "
2138 "the thread's inheritable capabilities."
2139 msgstr ""
2140 "スレッドの継承可能ケーパビリティに関わらず、そのスレッドに自動的に 認められる"
2141 "ケーパビリティ。"
2142
2143 #. type: TP
2144 #: build/C/man7/capabilities.7:709
2145 #, no-wrap
2146 msgid "I<Inheritable> (formerly known as I<allowed>):"
2147 msgstr "I<継承可能 (Inheritable)> (以前の I<許容 (Allowed)>):"
2148
2149 #. type: Plain text
2150 #: build/C/man7/capabilities.7:715
2151 msgid ""
2152 "This set is ANDed with the thread's inheritable set to determine which "
2153 "inheritable capabilities are enabled in the permitted set of the thread "
2154 "after the B<execve>(2)."
2155 msgstr ""
2156 "このセットと、スレッドの継承可能ケーパビリティセットとの 論理積 (AND) がとら"
2157 "れ、 B<execve>(2)  の後にそのスレッドの許可ケーパビリティセットで有効となる "
2158 "継承可能ケーパビリティが決定される。"
2159
2160 #. type: Plain text
2161 #: build/C/man7/capabilities.7:725
2162 msgid ""
2163 "This is not a set, but rather just a single bit.  If this bit is set, then "
2164 "during an B<execve>(2)  all of the new permitted capabilities for the thread "
2165 "are also raised in the effective set.  If this bit is not set, then after an "
2166 "B<execve>(2), none of the new permitted capabilities is in the new effective "
2167 "set."
2168 msgstr ""
2169 "これは集合ではなく、1 ビットの情報である。 このビットがセットされていると、 "
2170 "B<execve>(2)  実行中に、そのスレッドの新しい許可ケーパビリティが全て 実効ケー"
2171 "パビリティ集合においてもセットされる。 このビットがセットされていない場合、 "
2172 "B<execve>(2)  後には新しい許可ケーパビリティのどれも新しい実効ケーパビリティ"
2173 "集合 にセットされない。"
2174
2175 #. type: Plain text
2176 #: build/C/man7/capabilities.7:741
2177 msgid ""
2178 "Enabling the file effective capability bit implies that any file permitted "
2179 "or inheritable capability that causes a thread to acquire the corresponding "
2180 "permitted capability during an B<execve>(2)  (see the transformation rules "
2181 "described below) will also acquire that capability in its effective set.  "
2182 "Therefore, when assigning capabilities to a file (B<setcap>(8), "
2183 "B<cap_set_file>(3), B<cap_set_fd>(3)), if we specify the effective flag as "
2184 "being enabled for any capability, then the effective flag must also be "
2185 "specified as enabled for all other capabilities for which the corresponding "
2186 "permitted or inheritable flags is enabled."
2187 msgstr ""
2188 "ファイルの実効ケーパビリティビットを有効にするというのは、 B<execve>(2)  実行"
2189 "時に、ファイルの許可ケーパビリティと継承ケーパビリティに対応するものが スレッ"
2190 "ドの許可ケーパビリティセットとしてセットされるが、 これが実効ケーパビリティ"
2191 "セットにもセットされるということである (ケーパビリティの変換ルールは下記参"
2192 "照)。 したがって、ファイルにケーパビリティを割り当てる際 (B<setcap>(8), "
2193 "B<cap_set_file>(3), B<cap_set_fd>(3))、 いずれかのケーパビリティに対して実効"
2194 "フラグを有効と指定する場合、 許可フラグや継承可能フラグを有効にした他の全ての"
2195 "ケーパビリティ についても実効フラグを有効と指定しなければならない。"
2196
2197 #. type: SS
2198 #: build/C/man7/capabilities.7:741
2199 #, no-wrap
2200 msgid "Transformation of capabilities during execve()"
2201 msgstr "execve() 中のケーパビリティの変換"
2202
2203 #. type: Plain text
2204 #: build/C/man7/capabilities.7:747
2205 msgid ""
2206 "During an B<execve>(2), the kernel calculates the new capabilities of the "
2207 "process using the following algorithm:"
2208 msgstr ""
2209 "B<execve>(2)  実行時に、カーネルはプロセスの新しいケーパビリティを次の アルゴ"
2210 "リズムを用いて計算する:"
2211
2212 #. type: Plain text
2213 #: build/C/man7/capabilities.7:752
2214 #, no-wrap
2215 msgid ""
2216 "P'(permitted) = (P(inheritable) & F(inheritable)) |\n"
2217 "                (F(permitted) & cap_bset)\n"
2218 msgstr ""
2219 "P'(permitted) = (P(inheritable) & F(inheritable)) |\n"
2220 "                (F(permitted) & cap_bset)\n"
2221
2222 #. type: Plain text
2223 #: build/C/man7/capabilities.7:754
2224 #, no-wrap
2225 msgid "P'(effective) = F(effective) ? P'(permitted) : 0\n"
2226 msgstr "P'(effective) = F(effective) ? P'(permitted) : 0\n"
2227
2228 #. type: Plain text
2229 #: build/C/man7/capabilities.7:756
2230 #, no-wrap
2231 msgid "P'(inheritable) = P(inheritable)    [i.e., unchanged]\n"
2232 msgstr "P'(inheritable) = P(inheritable)    [つまり、変更されない]\n"
2233
2234 #. type: Plain text
2235 #: build/C/man7/capabilities.7:760
2236 msgid "where:"
2237 msgstr "各変数の意味は以下の通り:"
2238
2239 #. type: IP
2240 #: build/C/man7/capabilities.7:761
2241 #, no-wrap
2242 msgid "P"
2243 msgstr "P"
2244
2245 #. type: Plain text
2246 #: build/C/man7/capabilities.7:764
2247 msgid "denotes the value of a thread capability set before the B<execve>(2)"
2248 msgstr "B<execve>(2)  前のスレッドのケーパビリティセットの値"
2249
2250 #. type: IP
2251 #: build/C/man7/capabilities.7:764
2252 #, no-wrap
2253 msgid "P'"
2254 msgstr "P'"
2255
2256 #. type: Plain text
2257 #: build/C/man7/capabilities.7:767
2258 msgid "denotes the value of a capability set after the B<execve>(2)"
2259 msgstr "B<execve>(2)  後のスレッドのケーパビリティセットの値"
2260
2261 #. type: IP
2262 #: build/C/man7/capabilities.7:767
2263 #, no-wrap
2264 msgid "F"
2265 msgstr "F"
2266
2267 #. type: Plain text
2268 #: build/C/man7/capabilities.7:769
2269 msgid "denotes a file capability set"
2270 msgstr "ファイルケーパビリティセットの値"
2271
2272 #. type: IP
2273 #: build/C/man7/capabilities.7:769
2274 #, no-wrap
2275 msgid "cap_bset"
2276 msgstr "cap_bset"
2277
2278 #. type: Plain text
2279 #: build/C/man7/capabilities.7:771
2280 msgid "is the value of the capability bounding set (described below)."
2281 msgstr "ケーパビリティバウンディングセットの値 (下記参照)"
2282
2283 #. type: SS
2284 #: build/C/man7/capabilities.7:773
2285 #, no-wrap
2286 msgid "Capabilities and execution of programs by root"
2287 msgstr "ケーパビリティと、ルートによるプログラムの実行"
2288
2289 #. type: Plain text
2290 #: build/C/man7/capabilities.7:778
2291 msgid ""
2292 "In order to provide an all-powerful I<root> using capability sets, during an "
2293 "B<execve>(2):"
2294 msgstr ""
2295 "B<execve>(2)  時に、ケーパビリティセットを使って、全ての権限を持った I<root> "
2296 "を実現するには、以下のようにする。"
2297
2298 #. type: Plain text
2299 #: build/C/man7/capabilities.7:783
2300 msgid ""
2301 "If a set-user-ID-root program is being executed, or the real user ID of the "
2302 "process is 0 (root)  then the file inheritable and permitted sets are "
2303 "defined to be all ones (i.e., all capabilities enabled)."
2304 msgstr ""
2305 "set-user-ID-root プログラムが実行される場合、 またはプロセスの実ユーザ ID が "
2306 "0 (root) の場合、 ファイルの継承可能セットと許可セットを全て 1 (全てのケーパ"
2307 "ビリティが有効) に定義する。"
2308
2309 #. type: Plain text
2310 #: build/C/man7/capabilities.7:786
2311 msgid ""
2312 "If a set-user-ID-root program is being executed, then the file effective bit "
2313 "is defined to be one (enabled)."
2314 msgstr ""
2315 "set-user-ID-root プログラムが実行される場合、 ファイルの実効ケーパビリティ"
2316 "ビットを 1 (enabled) に定義する。"
2317
2318 #.  If a process with real UID 0, and nonzero effective UID does an
2319 #.  exec(), then it gets all capabilities in its
2320 #.  permitted set, and no effective capabilities
2321 #. type: Plain text
2322 #: build/C/man7/capabilities.7:801
2323 msgid ""
2324 "The upshot of the above rules, combined with the capabilities "
2325 "transformations described above, is that when a process B<execve>(2)s a set-"
2326 "user-ID-root program, or when a process with an effective UID of 0 B<execve>"
2327 "(2)s a program, it gains all capabilities in its permitted and effective "
2328 "capability sets, except those masked out by the capability bounding set.  "
2329 "This provides semantics that are the same as those provided by traditional "
2330 "UNIX systems."
2331 msgstr ""
2332 "上記のルールにケーパビリティ変換を適用した結果をまとめると、 プロセスが set-"
2333 "user-ID-root プログラムを B<execve>(2)  する場合、または実効 UID が 0 のプロ"
2334 "セスがプログラムを B<execve>(2)  する場合、許可と実効のケーパビリティセットの"
2335 "全ケーパビリティ (正確には、ケーパビリティバウンディングセットによるマスクで"
2336 "除外されるもの 以外の全てのケーパビリティ) を取得するということである。 これ"
2337 "により、伝統的な UNIX システムと同じ振る舞いができるようになっている。"
2338
2339 #. type: SS
2340 #: build/C/man7/capabilities.7:801
2341 #, no-wrap
2342 msgid "Capability bounding set"
2343 msgstr "ケーパビリティ・バウンディングセット"
2344
2345 #. type: Plain text
2346 #: build/C/man7/capabilities.7:806
2347 msgid ""
2348 "The capability bounding set is a security mechanism that can be used to "
2349 "limit the capabilities that can be gained during an B<execve>(2).  The "
2350 "bounding set is used in the following ways:"
2351 msgstr ""
2352 "ケーパビリティ・バウンディングセット (capability bounding set) は、 B<execve>"
2353 "(2)  時に獲得できるケーパビリティを制限するために使われる セキュリティ機構で"
2354 "ある。 バウンディングセットは以下のように使用される。"
2355
2356 #. type: Plain text
2357 #: build/C/man7/capabilities.7:814
2358 msgid ""
2359 "During an B<execve>(2), the capability bounding set is ANDed with the file "
2360 "permitted capability set, and the result of this operation is assigned to "
2361 "the thread's permitted capability set.  The capability bounding set thus "
2362 "places a limit on the permitted capabilities that may be granted by an "
2363 "executable file."
2364 msgstr ""
2365 "B<execve>(2)  実行時に、ケーパビリティ・バウンディングセットと ファイルの許可"
2366 "ケーパビリティセットの論理和 (AND) を取ったものが、 そのスレッドの許可ケーパ"
2367 "ビリティセットに割り当てられる。 つまり、ケーパビリティ・バウンディングセット"
2368 "は、 実行ファイルが認めている許可ケーパビリティに対して 制限を課す働きをす"
2369 "る。"
2370
2371 #. type: Plain text
2372 #: build/C/man7/capabilities.7:826
2373 msgid ""
2374 "(Since Linux 2.6.25)  The capability bounding set acts as a limiting "
2375 "superset for the capabilities that a thread can add to its inheritable set "
2376 "using B<capset>(2).  This means that if a capability is not in the bounding "
2377 "set, then a thread can't add this capability to its inheritable set, even if "
2378 "it was in its permitted capabilities, and thereby cannot have this "
2379 "capability preserved in its permitted set when it B<execve>(2)s a file that "
2380 "has the capability in its inheritable set."
2381 msgstr ""
2382 "(Linux 2.6.25 以降)  ケーパビリティ・バウンディングセットは、スレッドが "
2383 "B<capset>(2)  により自身の継承可能セットに追加可能なケーパビリティの母集団を "
2384 "制限する役割を持つ。 スレッドに許可されたケーパビリティであっても、バウンディ"
2385 "ングセットに 含まれていなければ、スレッドはそのケーパビリティは自身の継承可能"
2386 "セットに 追加できず、その結果、継承可能セットにそのケーパビリティを含むファイ"
2387 "ルを B<execve>(2)  する場合、そのケーパビリティを許可セットに持ち続けることが"
2388 "できない、 ということである。"
2389
2390 #. type: Plain text
2391 #: build/C/man7/capabilities.7:833
2392 msgid ""
2393 "Note that the bounding set masks the file permitted capabilities, but not "
2394 "the inherited capabilities.  If a thread maintains a capability in its "
2395 "inherited set that is not in its bounding set, then it can still gain that "
2396 "capability in its permitted set by executing a file that has the capability "
2397 "in its inherited set."
2398 msgstr ""
2399 "バウンディングセットがマスクを行うのは、継承可能ケーパビリティではなく、 ファ"
2400 "イルの許可ケーパビリティのマスクを行う点に注意すること。 あるスレッドの継承可"
2401 "能セットにそのスレッドのバウンディングセットに 存在しないケーパビリティが含ま"
2402 "れている場合、そのスレッドは、 継承可能セットに含まれるケーパビリティを持つ"
2403 "ファイルを実行することにより、 許可セットに含まれるケーパビリティも獲得できる"
2404 "ということである。"
2405
2406 #. type: Plain text
2407 #: build/C/man7/capabilities.7:836
2408 msgid ""
2409 "Depending on the kernel version, the capability bounding set is either a "
2410 "system-wide attribute, or a per-process attribute."
2411 msgstr ""
2412 "カーネルのバージョンにより、ケーパビリティ・バウンディングセットは システム共"
2413 "通の属性の場合と、プロセス単位の属性の場合がある。"
2414
2415 #. type: Plain text
2416 #: build/C/man7/capabilities.7:838
2417 msgid "B<Capability bounding set prior to Linux 2.6.25>"
2418 msgstr "B<Linux 2.6.25 より前のケーパビリティ・バウンディングセット>"
2419
2420 #. type: Plain text
2421 #: build/C/man7/capabilities.7:846
2422 msgid ""
2423 "In kernels before 2.6.25, the capability bounding set is a system-wide "
2424 "attribute that affects all threads on the system.  The bounding set is "
2425 "accessible via the file I</proc/sys/kernel/cap-bound>.  (Confusingly, this "
2426 "bit mask parameter is expressed as a signed decimal number in I</proc/sys/"
2427 "kernel/cap-bound>.)"
2428 msgstr ""
2429 "2.6.25 より前のカーネルでは、ケーパビリティ・バウンディングセットは システム"
2430 "共通の属性で、システム上の全てのスレッドに適用される。 バウンディングセット"
2431 "は I</proc/sys/kernel/cap-bound> ファイル経由で参照できる。 (間違えやすいが、"
2432 "このビットマスク形式のパラメータは、 I</proc/sys/kernel/cap-bound> では符号付"
2433 "きの十進数で表現される。)"
2434
2435 #. type: Plain text
2436 #: build/C/man7/capabilities.7:853
2437 msgid ""
2438 "Only the B<init> process may set capabilities in the capability bounding "
2439 "set; other than that, the superuser (more precisely: programs with the "
2440 "B<CAP_SYS_MODULE> capability) may only clear capabilities from this set."
2441 msgstr ""
2442 "B<init> プロセスだけがケーパビリティ・バウンディングセットで ケーパビリティを"
2443 "セットすることができる。 それ以外では、スーパーユーザ (より正確には、 "
2444 "B<CAP_SYS_MODULE> ケーパビリティを持ったプログラム) が、 ケーパビリティ・バウ"
2445 "ンディングセットのケーパビリティのクリアが できるだけである。"
2446
2447 #. type: Plain text
2448 #: build/C/man7/capabilities.7:862
2449 msgid ""
2450 "On a standard system the capability bounding set always masks out the "
2451 "B<CAP_SETPCAP> capability.  To remove this restriction (dangerous!), modify "
2452 "the definition of B<CAP_INIT_EFF_SET> in I<include/linux/capability.h> and "
2453 "rebuild the kernel."
2454 msgstr ""
2455 "通常のシステムでは、ケーパビリティ・バウンディングセットは、 B<CAP_SETPCAP> "
2456 "が無効になっている。 この制限を取り去るには (取り去るのは危険!)、 I<include/"
2457 "linux/capability.h> 内の B<CAP_INIT_EFF_SET> の定義を修正し、カーネルを再構築"
2458 "する必要がある。"
2459
2460 #. type: Plain text
2461 #: build/C/man7/capabilities.7:866
2462 msgid ""
2463 "The system-wide capability bounding set feature was added to Linux starting "
2464 "with kernel version 2.2.11."
2465 msgstr ""
2466 "システム共通のケーパビリティ・バウンディングセット機能は、 カーネル 2.2.11 以"
2467 "降で Linux に追加された。"
2468
2469 #. type: Plain text
2470 #: build/C/man7/capabilities.7:868
2471 msgid "B<Capability bounding set from Linux 2.6.25 onward>"
2472 msgstr "B<Linux 2.6.25 以降のケーパビリティ・バウンディングセット>"
2473
2474 #. type: Plain text
2475 #: build/C/man7/capabilities.7:873
2476 msgid ""
2477 "From Linux 2.6.25, the I<capability bounding set> is a per-thread "
2478 "attribute.  (There is no longer a system-wide capability bounding set.)"
2479 msgstr ""
2480 "Linux 2.6.25 以降では、 「ケーパビリティ・バウンディングセット」はスレッド単"
2481 "位の属性である (システム共通のケーパビリティ・バウンディングセットはもはや存"
2482 "在しない)。"
2483
2484 #. type: Plain text
2485 #: build/C/man7/capabilities.7:878
2486 msgid ""
2487 "The bounding set is inherited at B<fork>(2)  from the thread's parent, and "
2488 "is preserved across an B<execve>(2)."
2489 msgstr ""
2490 "バウンディングセットは B<fork>(2)  時にはスレッドの親プロセスから継承され、 "
2491 "B<execve>(2)  の前後では保持される。"
2492
2493 #. type: Plain text
2494 #: build/C/man7/capabilities.7:891
2495 msgid ""
2496 "A thread may remove capabilities from its capability bounding set using the "
2497 "B<prctl>(2)  B<PR_CAPBSET_DROP> operation, provided it has the "
2498 "B<CAP_SETPCAP> capability.  Once a capability has been dropped from the "
2499 "bounding set, it cannot be restored to that set.  A thread can determine if "
2500 "a capability is in its bounding set using the B<prctl>(2)  "
2501 "B<PR_CAPBSET_READ> operation."
2502 msgstr ""
2503 "スレッドが B<CAP_SETPCAP> ケーパビリティを持っている場合、そのスレッドは "
2504 "B<prctl>(2)  の B<PR_CAPBSET_DROP> 操作を使って自身のケーパビリティ・バウン"
2505 "ディングセットから ケーパビリティを削除することができる。 いったんケーパビリ"
2506 "ティをバウンディングセットから削除してしまうと、 スレッドはそのケーパビリティ"
2507 "を再度セットすることはできない。 B<prctl>(2)  の B<PR_CAPBSET_READ> 操作を使"
2508 "うことで、スレッドがあるケーパビリティが自身のバウンディングセット に含まれて"
2509 "いるかを知ることができる。"
2510
2511 #. type: Plain text
2512 #: build/C/man7/capabilities.7:909
2513 msgid ""
2514 "Removing capabilities from the bounding set is supported only if file "
2515 "capabilities are compiled into the kernel.  In kernels before Linux 2.6.33, "
2516 "file capabilities were an optional feature configurable via the "
2517 "CONFIG_SECURITY_FILE_CAPABILITIES option.  Since Linux 2.6.33, the "
2518 "configuration option has been removed and file capabilities are always part "
2519 "of the kernel.  When file capabilities are compiled into the kernel, the "
2520 "B<init> process (the ancestor of all processes) begins with a full bounding "
2521 "set.  If file capabilities are not compiled into the kernel, then B<init> "
2522 "begins with a full bounding set minus B<CAP_SETPCAP>, because this "
2523 "capability has a different meaning when there are no file capabilities."
2524 msgstr ""
2525 "バウンディングセットからのケーパビリティの削除がサポートされるのは、\n"
2526 "カーネルのコンパイル時にファイルケーパビリティが有効になっている場合\n"
2527 "だけである。Linux 2.6.33 より前のカーネルでは、ファイルケーパビリティは\n"
2528 "設定オプション CONFIG_SECURITY_FILE_CAPABILITIES で切り替えられる追加の\n"
2529 "機能であった。Linux 2.6.33 以降では、この設定オプションは削除され、\n"
2530 "ファイルケーパビリティは常にカーネルに組込まれるようになった。\n"
2531 "ファイルケーパビリティがカーネルにコンパイル時に組み込まれている場合、\n"
2532 "(全てのプロセスの先祖である) I<init> プロセスはバウンディングセットで\n"
2533 "全てのケーパビリティが セットされた状態で開始する。ファイルケーパビリティ\n"
2534 "が有効になっていない場合には、 I<init> はバウンディングセットで\n"
2535 "B<CAP_SETPCAP> 以外の全てのケーパビリティがセットされた状態で開始する。\n"
2536 "このようになっているのは、 B<CAP_SETPCAP> ケーパビリティがファイルケー\n"
2537 "パビリティがサポートされていない場合には 違った意味を持つからである。"
2538
2539 #. type: Plain text
2540 #: build/C/man7/capabilities.7:916
2541 msgid ""
2542 "Removing a capability from the bounding set does not remove it from the "
2543 "thread's inherited set.  However it does prevent the capability from being "
2544 "added back into the thread's inherited set in the future."
2545 msgstr ""
2546 "バウンディングセットからケーパビリティを削除しても、 スレッドの継承可能セット"
2547 "からはそのケーパビリティは削除されない。 しかしながら、バウンディングセットか"
2548 "らの削除により、 この先そのケーパビリティをスレッドの継承可能セットに追加する"
2549 "こと はできなくなる。"
2550
2551 #. type: SS
2552 #: build/C/man7/capabilities.7:916
2553 #, no-wrap
2554 msgid "Effect of user ID changes on capabilities"
2555 msgstr "ユーザ ID 変更のケーパビリティへの影響"
2556
2557 #. type: Plain text
2558 #: build/C/man7/capabilities.7:925
2559 msgid ""
2560 "To preserve the traditional semantics for transitions between 0 and nonzero "
2561 "user IDs, the kernel makes the following changes to a thread's capability "
2562 "sets on changes to the thread's real, effective, saved set, and file system "
2563 "user IDs (using B<setuid>(2), B<setresuid>(2), or similar):"
2564 msgstr ""
2565 "ユーザ ID が 0 と 0 以外の間で変化する際の振る舞いを従来と同じにするため、 ス"
2566 "レッドの実 UID、実効 UID、保存 set-user-ID、ファイルシステム UID が "
2567 "(B<setuid>(2), B<setresuid>(2)  などを使って) 変更された際に、カーネルはその"
2568 "スレッドのケーパビリティセットに 以下の変更を行う:"
2569
2570 #. type: Plain text
2571 #: build/C/man7/capabilities.7:931
2572 msgid ""
2573 "If one or more of the real, effective or saved set user IDs was previously "
2574 "0, and as a result of the UID changes all of these IDs have a nonzero value, "
2575 "then all capabilities are cleared from the permitted and effective "
2576 "capability sets."
2577 msgstr ""
2578 "UID の変更前には実 UID、実効 UID、保存 set-user-ID のうち 少なくとも一つが 0 "
2579 "で、変更後に実 UID、実効 UID、保存 set-user-ID が すべて 0 以外の値になった場"
2580 "合、許可と実効のケーパビリティセットの 全ケーパビリティをクリアする。"
2581
2582 #. type: Plain text
2583 #: build/C/man7/capabilities.7:934
2584 msgid ""
2585 "If the effective user ID is changed from 0 to nonzero, then all capabilities "
2586 "are cleared from the effective set."
2587 msgstr ""
2588 "実効 UID が 0 から 0 以外に変更された場合、 実効ケーパビリティセットの全ケー"
2589 "パビリティをクリアする。"
2590
2591 #. type: Plain text
2592 #: build/C/man7/capabilities.7:937
2593 msgid ""
2594 "If the effective user ID is changed from nonzero to 0, then the permitted "
2595 "set is copied to the effective set."
2596 msgstr ""
2597 "実効 UID が 0 以外から 0 に変更された場合、 許可ケーパビリティセットの内容を"
2598 "実効ケーパビリティセットにコピーする。"
2599
2600 #. type: IP
2601 #: build/C/man7/capabilities.7:937 build/C/man7/capabilities.7:992
2602 #, no-wrap
2603 msgid "4."
2604 msgstr "4."
2605
2606 #. type: Plain text
2607 #: build/C/man7/capabilities.7:955
2608 msgid ""
2609 "If the file system user ID is changed from 0 to nonzero (see B<setfsuid>"
2610 "(2))  then the following capabilities are cleared from the effective set: "
2611 "B<CAP_CHOWN>, B<CAP_DAC_OVERRIDE>, B<CAP_DAC_READ_SEARCH>, B<CAP_FOWNER>, "
2612 "B<CAP_FSETID>, B<CAP_LINUX_IMMUTABLE> (since Linux 2.2.30), "
2613 "B<CAP_MAC_OVERRIDE>, and B<CAP_MKNOD> (since Linux 2.2.30).  If the file "
2614 "system UID is changed from nonzero to 0, then any of these capabilities that "
2615 "are enabled in the permitted set are enabled in the effective set."
2616 msgstr ""
2617 "ファイルシステム UID が 0 から 0 以外に変更された場合 (B<setfsuid>(2)  参"
2618 "照)、実効ケーパビリティセットの以下のケーパビリティがクリアされる: "
2619 "B<CAP_CHOWN>, B<CAP_DAC_OVERRIDE>, B<CAP_DAC_READ_SEARCH>, B<CAP_FOWNER>, "
2620 "B<CAP_FSETID>, B<CAP_LINUX_IMMUTABLE> (Linux 2.2.30 以降), "
2621 "B<CAP_MAC_OVERRIDE>, B<CAP_MKNOD> (Linux 2.2.30 以降)。 ファイルシステム UID "
2622 "が 0 以外から 0 に変更された場合、 上記のケーパビリティのうち許可ケーパビリ"
2623 "ティセットで有効になっているものが 実効ケーパビリティセットで有効にされる。"
2624
2625 #. type: Plain text
2626 #: build/C/man7/capabilities.7:963
2627 msgid ""
2628 "If a thread that has a 0 value for one or more of its user IDs wants to "
2629 "prevent its permitted capability set being cleared when it resets all of its "
2630 "user IDs to nonzero values, it can do so using the B<prctl>(2)  "
2631 "B<PR_SET_KEEPCAPS> operation."
2632 msgstr ""
2633 "各種 UID のうち少なくとも一つが 0 であるスレッドが、 その UID の全てが 0 以外"
2634 "になったときに許可ケーパビリティセットが クリアされないようにしたい場合に"
2635 "は、 B<prctl>(2)  の B<PR_SET_KEEPCAPS> 操作を使えばよい。"
2636
2637 #. type: SS
2638 #: build/C/man7/capabilities.7:963
2639 #, no-wrap
2640 msgid "Programmatically adjusting capability sets"
2641 msgstr "プログラムでケーパビリティセットを調整する"
2642
2643 #. type: Plain text
2644 #: build/C/man7/capabilities.7:978
2645 msgid ""
2646 "A thread can retrieve and change its capability sets using the B<capget>(2)  "
2647 "and B<capset>(2)  system calls.  However, the use of B<cap_get_proc>(3)  and "
2648 "B<cap_set_proc>(3), both provided in the I<libcap> package, is preferred for "
2649 "this purpose.  The following rules govern changes to the thread capability "
2650 "sets:"
2651 msgstr ""
2652 "各スレッドは、 B<capget>(2)  や B<capset>(2)  を使って、自身のケーパビリティ"
2653 "セットを取得したり変更したりできる。 ただし、これを行うには、 I<libcap> パッ"
2654 "ケージで提供されている B<cap_get_proc>(3)  や B<cap_set_proc>(3)  を使うのが"
2655 "望ましい。 スレッドのケーパビリティセットの変更には以下のルールが適用される。"
2656
2657 #. type: Plain text
2658 #: build/C/man7/capabilities.7:984
2659 msgid ""
2660 "If the caller does not have the B<CAP_SETPCAP> capability, the new "
2661 "inheritable set must be a subset of the combination of the existing "
2662 "inheritable and permitted sets."
2663 msgstr ""
2664 "呼び出し側が B<CAP_SETPCAP> ケーパビリティを持っていない場合、新しい継承可能"
2665 "セットは、 既存の継承可能セットと許可セットの積集合 (AND) の部分集合で なけれ"
2666 "ばならない。"
2667
2668 #. type: Plain text
2669 #: build/C/man7/capabilities.7:988
2670 msgid ""
2671 "(Since Linux 2.6.25)  The new inheritable set must be a subset of the "
2672 "combination of the existing inheritable set and the capability bounding set."
2673 msgstr ""
2674 "(Linux 2.6.25 以降)  新しい継承可能セットは、既存の継承可能セットとケーパビリ"
2675 "ティ・ バウンディングセットの積集合 (AND) の部分集合でなければならない。"
2676
2677 #. type: Plain text
2678 #: build/C/man7/capabilities.7:992
2679 msgid ""
2680 "The new permitted set must be a subset of the existing permitted set (i.e., "
2681 "it is not possible to acquire permitted capabilities that the thread does "
2682 "not currently have)."
2683 msgstr ""
2684 "新しい許可セットは、既存の許可セットの部分集合でなければならない (つまり、そ"
2685 "のスレッドが現在持っていない許可ケーパビリティを 獲得することはできない)。"
2686
2687 #. type: Plain text
2688 #: build/C/man7/capabilities.7:994
2689 msgid "The new effective set must be a subset of the new permitted set."
2690 msgstr ""
2691 "新しい実効ケーパビリティセットは新しい許可ケーパビリティセットの 部分集合に"
2692 "なっていなければならない。"
2693
2694 #. type: SS
2695 #: build/C/man7/capabilities.7:994
2696 #, no-wrap
2697 msgid "The securebits flags: establishing a capabilities-only environment"
2698 msgstr "securebits フラグ: ケーパビリティだけの環境を構築する"
2699
2700 #.  For some background:
2701 #.        see http://lwn.net/Articles/280279/ and
2702 #.        http://article.gmane.org/gmane.linux.kernel.lsm/5476/
2703 #. type: Plain text
2704 #: build/C/man7/capabilities.7:1005
2705 msgid ""
2706 "Starting with kernel 2.6.26, and with a kernel in which file capabilities "
2707 "are enabled, Linux implements a set of per-thread I<securebits> flags that "
2708 "can be used to disable special handling of capabilities for UID 0 "
2709 "(I<root>).  These flags are as follows:"
2710 msgstr ""
2711 "カーネル 2.6.26 以降で、 ファイルケーパビリティが有効になったカーネルでは、 "
2712 "スレッド単位の I<securebits> フラグが実装されており、このフラグを使うと UID "
2713 "0 (I<root>)  に対するケーパビリティの特別扱いを無効することができる。 以下の"
2714 "ようなフラグがある。"
2715
2716 #. type: TP
2717 #: build/C/man7/capabilities.7:1005
2718 #, no-wrap
2719 msgid "B<SECBIT_KEEP_CAPS>"
2720 msgstr "B<SECBIT_KEEP_CAPS>"
2721
2722 #. type: Plain text
2723 #: build/C/man7/capabilities.7:1017
2724 msgid ""
2725 "Setting this flag allows a thread that has one or more 0 UIDs to retain its "
2726 "capabilities when it switches all of its UIDs to a nonzero value.  If this "
2727 "flag is not set, then such a UID switch causes the thread to lose all "
2728 "capabilities.  This flag is always cleared on an B<execve>(2).  (This flag "
2729 "provides the same functionality as the older B<prctl>(2)  B<PR_SET_KEEPCAPS> "
2730 "operation.)"
2731 msgstr ""
2732 "このフラグをセットされている場合、UID が 0 のスレッドの UID が 0 以外の値に "
2733 "切り替わる際に、そのスレッドはケーパビリティを維持することができる。 このフラ"
2734 "グがセットされていない場合には、UID が 0 から 0 以外の値に 切り替わると、その"
2735 "スレッドは全てのケーパビリティを失う。 このフラグは B<execve>(2)  時には全て"
2736 "クリアされる (このフラグは、以前の B<prctl>(2)  の B<PR_SET_KEEPCAPS> 操作と"
2737 "同じ機能を提供するものである)。"
2738
2739 #. type: TP
2740 #: build/C/man7/capabilities.7:1017
2741 #, no-wrap
2742 msgid "B<SECBIT_NO_SETUID_FIXUP>"
2743 msgstr "B<SECBIT_NO_SETUID_FIXUP>"
2744
2745 #. type: Plain text
2746 #: build/C/man7/capabilities.7:1024
2747 msgid ""
2748 "Setting this flag stops the kernel from adjusting capability sets when the "
2749 "threads's effective and file system UIDs are switched between zero and "
2750 "nonzero values.  (See the subsection I<Effect of User ID Changes on "
2751 "Capabilities>.)"
2752 msgstr ""
2753 "このフラグをセットすると、スレッドの実効 UID とファイルシステム UID が 0 と "
2754 "0 以外の間で切り替わった場合に、 カーネルはケーパビリティセットの調整を行わな"
2755 "くなる (「ユーザ ID 変更のケーパビリティへの影響」の節を参照)。"
2756
2757 #. type: TP
2758 #: build/C/man7/capabilities.7:1024
2759 #, no-wrap
2760 msgid "B<SECBIT_NOROOT>"
2761 msgstr "B<SECBIT_NOROOT>"
2762
2763 #. type: Plain text
2764 #: build/C/man7/capabilities.7:1032
2765 msgid ""
2766 "If this bit is set, then the kernel does not grant capabilities when a set-"
2767 "user-ID-root program is executed, or when a process with an effective or "
2768 "real UID of 0 calls B<execve>(2).  (See the subsection I<Capabilities and "
2769 "execution of programs by root>.)"
2770 msgstr ""
2771 "このビットがセットされている場合、 set-user-ID-root プログラムの実行時や、 実"
2772 "効 UID か 実 UID が 0 のプロセスが B<execve>(2)  を呼び出した時に、カーネルは"
2773 "ケーパビリティを許可しない (「ケーパビリティと、ルートによるプログラムの実"
2774 "行」の節を参照)。"
2775
2776 #. type: Plain text
2777 #: build/C/man7/capabilities.7:1042
2778 msgid ""
2779 "Each of the above \"base\" flags has a companion \"locked\" flag.  Setting "
2780 "any of the \"locked\" flags is irreversible, and has the effect of "
2781 "preventing further changes to the corresponding \"base\" flag.  The locked "
2782 "flags are: B<SECBIT_KEEP_CAPS_LOCKED>, B<SECBIT_NO_SETUID_FIXUP_LOCKED>, and "
2783 "B<SECBIT_NOROOT_LOCKED>."
2784 msgstr ""
2785 "上記の \"base\" フラグの各々には対応する \"locked\" フラグが存在する。 いずれ"
2786 "の \"locked\" フラグも一度セットされると戻すことはできず、 それ以降は対応す"
2787 "る \"base\" フラグを変更することができなくなる。 \"locked\" フラグは "
2788 "B<SECBIT_KEEP_CAPS_LOCKED>, B<SECBIT_NO_SETUID_FIXUP_LOCKED>, "
2789 "B<SECBIT_NOROOT_LOCKED> という名前である。"
2790
2791 #. type: Plain text
2792 #: build/C/man7/capabilities.7:1054
2793 msgid ""
2794 "The I<securebits> flags can be modified and retrieved using the B<prctl>(2)  "
2795 "B<PR_SET_SECUREBITS> and B<PR_GET_SECUREBITS> operations.  The "
2796 "B<CAP_SETPCAP> capability is required to modify the flags."
2797 msgstr ""
2798 "I<securebits> フラグは、 B<prctl>(2)  の操作 B<PR_SET_SECUREBITS> や "
2799 "B<PR_GET_SECUREBITS> を使うことで変更したり取得したりできる。 フラグを変更す"
2800 "るには B<CAP_SETPCAP> ケーパビリティが必要である。"
2801
2802 #. type: Plain text
2803 #: build/C/man7/capabilities.7:1063
2804 msgid ""
2805 "The I<securebits> flags are inherited by child processes.  During an "
2806 "B<execve>(2), all of the flags are preserved, except B<SECBIT_KEEP_CAPS> "
2807 "which is always cleared."
2808 msgstr ""
2809 "I<securebits> フラグは子プロセスに継承される。 B<execve>(2) においては、\n"
2810 "B<SECBIT_KEEP_CAPS> が常にクリアされる以外は、全てのフラグが保持される。"
2811
2812 #. type: Plain text
2813 #: build/C/man7/capabilities.7:1068
2814 msgid ""
2815 "An application can use the following call to lock itself, and all of its "
2816 "descendants, into an environment where the only way of gaining capabilities "
2817 "is by executing a program with associated file capabilities:"
2818 msgstr ""
2819 "アプリケーションは、以下の呼び出しを行うことにより、 自分自身および子孫となる"
2820 "プロセス全てに対して、 必要なファイルケーパビリティを持ったプログラムを実行し"
2821 "ない限り、 対応するケーパビリティを獲得できないような状況に閉じこめることがで"
2822 "きる。"
2823
2824 #. type: Plain text
2825 #: build/C/man7/capabilities.7:1077
2826 #, no-wrap
2827 msgid ""
2828 "prctl(PR_SET_SECUREBITS,\n"
2829 "        SECBIT_KEEP_CAPS_LOCKED |\n"
2830 "        SECBIT_NO_SETUID_FIXUP |\n"
2831 "        SECBIT_NO_SETUID_FIXUP_LOCKED |\n"
2832 "        SECBIT_NOROOT |\n"
2833 "        SECBIT_NOROOT_LOCKED);\n"
2834 msgstr ""
2835 "prctl(PR_SET_SECUREBITS,\n"
2836 "        SECBIT_KEEP_CAPS_LOCKED |\n"
2837 "        SECBIT_NO_SETUID_FIXUP |\n"
2838 "        SECBIT_NO_SETUID_FIXUP_LOCKED |\n"
2839 "        SECBIT_NOROOT |\n"
2840 "        SECBIT_NOROOT_LOCKED);\n"
2841
2842 #. type: Plain text
2843 #: build/C/man7/capabilities.7:1085
2844 msgid ""
2845 "No standards govern capabilities, but the Linux capability implementation is "
2846 "based on the withdrawn POSIX.1e draft standard; see E<.UR http://wt."
2847 "tuxomania.net\\:/publications\\:/posix.1e/> E<.UE .>"
2848 msgstr ""
2849 "ケーパビリティに関する標準はないが、 Linux のケーパビリティは廃案になった "
2850 "POSIX.1e 草案に基づいて実装されている。 E<.UR http://wt.xpilot.org\\:/"
2851 "publications\\:/posix.1e/> E<.UE> を参照。"
2852
2853 #. type: Plain text
2854 #: build/C/man7/capabilities.7:1089
2855 msgid ""
2856 "Since kernel 2.5.27, capabilities are an optional kernel component, and can "
2857 "be enabled/disabled via the CONFIG_SECURITY_CAPABILITIES kernel "
2858 "configuration option."
2859 msgstr ""
2860 "カーネル 2.5.27 以降、ケーパビリティは選択式のカーネルコンポーネント となって"
2861 "おり、カーネル設定オプション CONFIG_SECURITY_CAPABILITIES により有効/無効を切"
2862 "り替えることができる。"
2863
2864 #.  7b9a7ec565505699f503b4fcf61500dceb36e744
2865 #. type: Plain text
2866 #: build/C/man7/capabilities.7:1103
2867 msgid ""
2868 "The I</proc/PID/task/TID/status> file can be used to view the capability "
2869 "sets of a thread.  The I</proc/PID/status> file shows the capability sets of "
2870 "a process's main thread.  Before Linux 3.8, nonexistent capabilities were "
2871 "shown as being enabled (1) in these sets.  Since Linux 3.8, all non-existent "
2872 "capabilities (above B<CAP_LAST_CAP>)  are shown as disabled (0)."
2873 msgstr ""
2874 "I</proc/PID/task/TID/status> ファイルを使うと、スレッドのケーパビリティセット"
2875 "を見ることができる。 I</proc/PID/status> ファイルには、プロセスのメインスレッ"
2876 "ドのケーパビリティセットが表示される。 Linux 3.8 より前では、 これらのケーパ"
2877 "ビリティセットの表示で、 存在しないケーパビリティはすべて有効 (1) として表示"
2878 "される。 Linux 3.8 以降では、 存在しないケーパビリティはすべて無効 (0) として"
2879 "表示される。 (B<CAP_LAST_CAP> より大きい値を持つケーパビリティが存在しない"
2880 "ケーパビリティである)。"
2881
2882 #. type: Plain text
2883 #: build/C/man7/capabilities.7:1118
2884 msgid ""
2885 "The I<libcap> package provides a suite of routines for setting and getting "
2886 "capabilities that is more comfortable and less likely to change than the "
2887 "interface provided by B<capset>(2)  and B<capget>(2).  This package also "
2888 "provides the B<setcap>(8)  and B<getcap>(8)  programs.  It can be found at"
2889 msgstr ""
2890 "I<libcap> パッケージは、ケーパビリティを設定・取得するための ルーチン群を提供"
2891 "している。これらのインタフェースは、 B<capset>(2)  と B<capget>(2)  が提供す"
2892 "るインターフェースと比べて、より使いやすく、変更される可能性が少ない。 この"
2893 "パッケージでは、 B<setcap>(8), B<getcap>(8)  というプログラムも提供されてい"
2894 "る。 パッケージは以下で入手できる。"
2895
2896 #. type: Plain text
2897 #: build/C/man7/capabilities.7:1121
2898 msgid ""
2899 "E<.UR http://www.kernel.org\\:/pub\\:/linux\\:/libs\\:/security\\:/linux-"
2900 "privs> E<.UE .>"
2901 msgstr ""
2902 "E<.UR http://www.kernel.org\\:/pub\\:/linux\\:/libs\\:/security\\:/linux-"
2903 "privs> E<.UE .>"
2904
2905 #. type: Plain text
2906 #: build/C/man7/capabilities.7:1130
2907 msgid ""
2908 "Before kernel 2.6.24, and since kernel 2.6.24 if file capabilities are not "
2909 "enabled, a thread with the B<CAP_SETPCAP> capability can manipulate the "
2910 "capabilities of threads other than itself.  However, this is only "
2911 "theoretically possible, since no thread ever has B<CAP_SETPCAP> in either of "
2912 "these cases:"
2913 msgstr ""
2914 "バージョン 2.6.24 より前、およびファイルケーパビリティが 有効になっていない"
2915 "2.6.24 以降のカーネルでは、 B<CAP_SETPCAP> ケーパビリティを持ったスレッドは自"
2916 "分以外のスレッドの ケーパビリティを操作できる。 しかしながら、これは理論的に"
2917 "可能というだけである。 以下のいずれかの場合においても、どのスレッドも "
2918 "B<CAP_SETPCAP> ケーパビリティを持つことはないからである。"
2919
2920 #. type: Plain text
2921 #: build/C/man7/capabilities.7:1135
2922 msgid ""
2923 "In the pre-2.6.25 implementation the system-wide capability bounding set, I</"
2924 "proc/sys/kernel/cap-bound>, always masks out this capability, and this can "
2925 "not be changed without modifying the kernel source and rebuilding."
2926 msgstr ""
2927 "2.6.25 より前の実装では、システム共通のケーパビリティ・バウンディングセット "
2928 "I</proc/sys/kernel/cap-bound> ではこのケーパビリティは常に無効になっており、 "
2929 "ソースを変更してカーネルを再コンパイルしない限り、 これを変更することはできな"
2930 "い。"
2931
2932 #. type: Plain text
2933 #: build/C/man7/capabilities.7:1141
2934 msgid ""
2935 "If file capabilities are disabled in the current implementation, then "
2936 "B<init> starts out with this capability removed from its per-process "
2937 "bounding set, and that bounding set is inherited by all other processes "
2938 "created on the system."
2939 msgstr ""
2940 "現在の実装ではファイルケーパビリティが無効になっている場合、 プロセス毎のバウ"
2941 "ンディングセットからこのケーパビリティを抜いて B<init> は開始され、 システム"
2942 "上で生成される他の全てのプロセスでこのバウンディングセットが 継承される。"
2943
2944 #. type: Plain text
2945 #: build/C/man7/capabilities.7:1158
2946 msgid ""
2947 "B<capget>(2), B<prctl>(2), B<setfsuid>(2), B<cap_clear>(3), B<cap_copy_ext>"
2948 "(3), B<cap_from_text>(3), B<cap_get_file>(3), B<cap_get_proc>(3), B<cap_init>"
2949 "(3), B<capgetp>(3), B<capsetp>(3), B<libcap>(3), B<credentials>(7), "
2950 "B<pthreads>(7), B<getcap>(8), B<setcap>(8)"
2951 msgstr ""
2952 "B<capget>(2), B<prctl>(2), B<setfsuid>(2), B<cap_clear>(3),\n"
2953 "B<cap_copy_ext>(3), B<cap_from_text>(3), B<cap_get_file>(3),\n"
2954 "B<cap_get_proc>(3), B<cap_init>(3), B<capgetp>(3), B<capsetp>(3),\n"
2955 "B<libcap>(3), B<credentials>(7), B<pthreads>(7), B<getcap>(8), B<setcap>(8)"
2956
2957 #. type: Plain text
2958 #: build/C/man7/capabilities.7:1161
2959 msgid "I<include/linux/capability.h> in the Linux kernel source tree"
2960 msgstr "Linux カーネルソース内の I<include/linux/capability.h>"
2961
2962 #. type: TH
2963 #: build/C/man2/capget.2:15
2964 #, no-wrap
2965 msgid "CAPGET"
2966 msgstr "CAPGET"
2967
2968 #. type: TH
2969 #: build/C/man2/capget.2:15
2970 #, no-wrap
2971 msgid "2013-03-11"
2972 msgstr "2013-03-11"
2973
2974 #. type: Plain text
2975 #: build/C/man2/capget.2:18
2976 msgid "capget, capset - set/get capabilities of thread(s)"
2977 msgstr "capget, capset - スレッドのケーパビリティを設定/取得する"
2978
2979 #. type: Plain text
2980 #: build/C/man2/capget.2:20
2981 msgid "B<#include E<lt>sys/capability.hE<gt>>"
2982 msgstr "B<#include E<lt>sys/capability.hE<gt>>"
2983
2984 #. type: Plain text
2985 #: build/C/man2/capget.2:22
2986 msgid ""
2987 "B<int capget(cap_user_header_t >I<hdrp>B<, cap_user_data_t >I<datap>B<);>"
2988 msgstr ""
2989 "B<int capget(cap_user_header_t >I<hdrp>B<, cap_user_data_t >I<datap>B<);>"
2990
2991 #. type: Plain text
2992 #: build/C/man2/capget.2:24
2993 msgid ""
2994 "B<int capset(cap_user_header_t >I<hdrp>B<, const cap_user_data_t "
2995 ">I<datap>B<);>"
2996 msgstr ""
2997 "B<int capset(cap_user_header_t >I<hdrp>B<, const cap_user_data_t "
2998 ">I<datap>B<);>"
2999
3000 #. type: Plain text
3001 #: build/C/man2/capget.2:35
3002 msgid ""
3003 "As of Linux 2.2, the power of the superuser (root) has been partitioned into "
3004 "a set of discrete capabilities.  Each thread has a set of effective "
3005 "capabilities identifying which capabilities (if any) it may currently "
3006 "exercise.  Each thread also has a set of inheritable capabilities that may "
3007 "be passed through an B<execve>(2)  call, and a set of permitted capabilities "
3008 "that it can make effective or inheritable."
3009 msgstr ""
3010 "Linux 2.2 で、スーパーユーザー (root) の権限は、個別のケーパビリティ "
3011 "(capabilities) へと分割され、その集合として表現されるようになった。 各スレッ"
3012 "ドは「実効ケーパビリティ (effective capability) の集合」を持ち、 それによって"
3013 "現在どの操作が実行可能かを識別できる。 また、各スレッドは、 「継承可能ケーパ"
3014 "ビリティ (inheritable capability) の集合」と 「許可ケーパビリティ (permitted "
3015 "capability) の集合」を持つ。 「継承可能ケーパビリティの集合」は B<execve>"
3016 "(2)  を通じて渡すことができるケーパビリティの集合であり、 「許可ケーパビリ"
3017 "ティ (permitted capability) の集合」は 実効ケーパビリティや継承可能ケーパビリ"
3018 "ティとして有効にできる ケーパビリティを規定するものである。"
3019
3020 #. type: Plain text
3021 #: build/C/man2/capget.2:44
3022 msgid ""
3023 "These two system calls are the raw kernel interface for getting and setting "
3024 "thread capabilities.  Not only are these system calls specific to Linux, but "
3025 "the kernel API is likely to change and use of these system calls (in "
3026 "particular the format of the I<cap_user_*_t> types) is subject to extension "
3027 "with each kernel revision, but old programs will keep working."
3028 msgstr ""
3029 "この二つのシステムコールはスレッドのケーパビリティを取得したり設定したりする"
3030 "ための 生のカーネルインターフェースである。 これらのシステムコールは Linux 特"
3031 "有であるというだけでなく、 カーネル API は変更されるかもしれず、これらのシス"
3032 "テムコールの使用法 (特に I<cap_user_*_t> 型という書式) はカーネルのリビジョン"
3033 "毎に拡張されるかもしれないが、 以前のプログラムはそのまま動作する。"
3034
3035 #. type: Plain text
3036 #: build/C/man2/capget.2:55
3037 msgid ""
3038 "The portable interfaces are B<cap_set_proc>(3)  and B<cap_get_proc>(3); if "
3039 "possible you should use those interfaces in applications.  If you wish to "
3040 "use the Linux extensions in applications, you should use the easier-to-use "
3041 "interfaces B<capsetp>(3)  and B<capgetp>(3)."
3042 msgstr ""
3043 "移植性のあるインターフェースは B<cap_set_proc>(3)  と B<cap_get_proc>(3)  で"
3044 "ある。 可能ならばアプリケーションはこれらの関数を使用すべきである。 アプリ"
3045 "ケーションに Linux 拡張を使用したい場合には、より簡単に 使えるインターフェー"
3046 "スである B<capsetp>(3)  と B<capgetp>(3)  を使用すべきである。"
3047
3048 #. type: SS
3049 #: build/C/man2/capget.2:55
3050 #, no-wrap
3051 msgid "Current details"
3052 msgstr "現在の詳細"
3053
3054 #. type: Plain text
3055 #: build/C/man2/capget.2:58
3056 msgid ""
3057 "Now that you have been warned, some current kernel details.  The structures "
3058 "are defined as follows."
3059 msgstr ""
3060 "現在のカーネルの詳細について注意を述べておく。 構造体は以下のように定義され"
3061 "る。"
3062
3063 #. type: Plain text
3064 #: build/C/man2/capget.2:63
3065 #, no-wrap
3066 msgid ""
3067 "#define _LINUX_CAPABILITY_VERSION_1  0x19980330\n"
3068 "#define _LINUX_CAPABILITY_U32S_1     1\n"
3069 msgstr ""
3070 "#define _LINUX_CAPABILITY_VERSION_1  0x19980330\n"
3071 "#define _LINUX_CAPABILITY_U32S_1     1\n"
3072
3073 #. type: Plain text
3074 #: build/C/man2/capget.2:66
3075 #, no-wrap
3076 msgid ""
3077 "#define _LINUX_CAPABILITY_VERSION_2  0x20071026\n"
3078 "#define _LINUX_CAPABILITY_U32S_2     2\n"
3079 msgstr ""
3080 "#define _LINUX_CAPABILITY_VERSION_2  0x20071026\n"
3081 "#define _LINUX_CAPABILITY_U32S_2     2\n"
3082
3083 #. type: Plain text
3084 #: build/C/man2/capget.2:71
3085 #, no-wrap
3086 msgid ""
3087 "typedef struct __user_cap_header_struct {\n"
3088 "   __u32 version;\n"
3089 "   int pid;\n"
3090 "} *cap_user_header_t;\n"
3091 msgstr ""
3092 "typedef struct __user_cap_header_struct {\n"
3093 "   __u32 version;\n"
3094 "   int pid;\n"
3095 "} *cap_user_header_t;\n"
3096
3097 #. type: Plain text
3098 #: build/C/man2/capget.2:77
3099 #, no-wrap
3100 msgid ""
3101 "typedef struct __user_cap_data_struct {\n"
3102 "   __u32 effective;\n"
3103 "   __u32 permitted;\n"
3104 "   __u32 inheritable;\n"
3105 "} *cap_user_data_t;\n"
3106 msgstr ""
3107 "typedef struct __user_cap_data_struct {\n"
3108 "   __u32 effective;\n"
3109 "   __u32 permitted;\n"
3110 "   __u32 inheritable;\n"
3111 "} *cap_user_data_t;\n"
3112
3113 #. type: Plain text
3114 #: build/C/man2/capget.2:96
3115 msgid ""
3116 "The I<effective>, I<permitted>, and I<inheritable> fields are bit masks of "
3117 "the capabilities defined in I<capability(7).> Note the B<CAP_*> values are "
3118 "bit indexes and need to be bit-shifted before ORing into the bit fields.  To "
3119 "define the structures for passing to the system call you have to use the "
3120 "I<struct __user_cap_header_struct> and I<struct __user_cap_data_struct> "
3121 "names because the typedefs are only pointers."
3122 msgstr ""
3123 "フィールド I<effective>, I<permitted>, I<inheritable> は、 B<capability>(7)  "
3124 "で定義されるケーパビリティのビットマスクである。 I<CAP_*> はビット番号を表す"
3125 "インデックス値であり、 ビットフィールドに OR を行う前に I<CAP_*> の値の分だけ"
3126 "ビットシフトを行う必要がある。 typedef の方はポインタなので、 このシステム"
3127 "コールに渡す構造体を定義するには、 I<struct __user_cap_header_struct> と "
3128 "I<struct __user_cap_data_struct> という名前を使用しなければならない。"
3129
3130 #. type: Plain text
3131 #: build/C/man2/capget.2:108
3132 msgid ""
3133 "Kernels prior to 2.6.25 prefer 32-bit capabilities with version "
3134 "B<_LINUX_CAPABILITY_VERSION_1>, and kernels 2.6.25+ prefer 64-bit "
3135 "capabilities with version B<_LINUX_CAPABILITY_VERSION_2>.  Note, 64-bit "
3136 "capabilities use I<datap>[0] and I<datap>[1], whereas 32-bit capabilities "
3137 "use only I<datap>[0]."
3138 msgstr ""
3139 "カーネル 2.6.25 より前では、バージョン B<_LINUX_CAPABILITY_VERSION_1> の 32 "
3140 "ビットケーパビリティが推奨である。 カーネル 2.6.25 以降では、バージョン "
3141 "B<_LINUX_CAPABILITY_VERSION_2> の 64 ビットケーパビリティが推奨である。 64 "
3142 "ビットケーパビリティでは I<datap>[0] と I<datap>[1] が使用されるのに対し、 "
3143 "32 ビットケーパビリティでは I<datap>[0] だけが使用される。"
3144
3145 #. type: Plain text
3146 #: build/C/man2/capget.2:112
3147 msgid ""
3148 "Another change affecting the behavior of these system calls is kernel "
3149 "support for file capabilities (VFS capability support).  This support is "
3150 "currently a compile time option (added in kernel 2.6.24)."
3151 msgstr ""
3152 "これらのシステムコールの挙動に影響があるもう一つの変更点は、 ファイルケーパビ"
3153 "リティ (file capabilities) のカーネルによるサポート (VFS ケーパビリティのサ"
3154 "ポート) である。 VFS ケーパビリティのサポートは現在のところコンパイル時のオプ"
3155 "ションである (カーネル 2.6.24 で追加された)。"
3156
3157 #. type: Plain text
3158 #: build/C/man2/capget.2:119
3159 msgid ""
3160 "For B<capget>()  calls, one can probe the capabilities of any process by "
3161 "specifying its process ID with the I<hdrp-E<gt>pid> field value."
3162 msgstr ""
3163 "B<capget>()  では、 I<hdrp-E<gt>pid> のフィールド値にケーパビリティを知りたい"
3164 "プロセスのプロセス ID を 指定することで、任意のプロセスのケーパビリティを調べ"
3165 "ることができる。"
3166
3167 #. type: SS
3168 #: build/C/man2/capget.2:119
3169 #, no-wrap
3170 msgid "With VFS capability support"
3171 msgstr "VFS ケーパビリティがサポートされている場合"
3172
3173 #. type: Plain text
3174 #: build/C/man2/capget.2:131
3175 msgid ""
3176 "VFS Capability support creates a file-attribute method for adding "
3177 "capabilities to privileged executables.  This privilege model obsoletes "
3178 "kernel support for one process asynchronously setting the capabilities of "
3179 "another.  That is, with VFS support, for B<capset>()  calls the only "
3180 "permitted values for I<hdrp-E<gt>pid> are 0 or B<getpid>(2), which are "
3181 "equivalent."
3182 msgstr ""
3183 "VFS ケーパビリティのサポートでは、特権実行ファイルにケーパビリティを 追加する"
3184 "ためのファイル属性メソッドが作成された。 この特権モデルの導入により、あるプロ"
3185 "セスにより別のプロセスのケーパビリティ を非同期に設定する機能のカーネルによる"
3186 "サポートは廃止される。 つまり、VFS サポートでは、 B<capset>()  を呼び出す際"
3187 "に I<hdrp-E<gt>pid> の値として許されるのは 0 と B<getpid>(2)  が返す値だけと"
3188 "なる (どちらの値でも等価である)。"
3189
3190 #. type: SS
3191 #: build/C/man2/capget.2:131
3192 #, no-wrap
3193 msgid "Without VFS capability support"
3194 msgstr "VFS ケーパビリティがサポートされていない場合"
3195
3196 #. type: Plain text
3197 #: build/C/man2/capget.2:157
3198 msgid ""
3199 "When the kernel does not support VFS capabilities, B<capset>()  calls can "
3200 "operate on the capabilities of the thread specified by the I<pid> field of "
3201 "I<hdrp> when that is nonzero, or on the capabilities of the calling thread "
3202 "if I<pid> is 0.  If I<pid> refers to a single-threaded process, then I<pid> "
3203 "can be specified as a traditional process ID; operating on a thread of a "
3204 "multithreaded process requires a thread ID of the type returned by B<gettid>"
3205 "(2).  For B<capset>(), I<pid> can also be: -1, meaning perform the change on "
3206 "all threads except the caller and B<init>(8); or a value less than -1, in "
3207 "which case the change is applied to all members of the process group whose "
3208 "ID is -I<pid>."
3209 msgstr ""
3210 "カーネルが VFS ケーパビリティをサポートしていない場合、 I<hdrp> の I<pid> "
3211 "フィールドが 0 以外であれば、 B<capset>()  の操作対象は I<pid> で指定されたス"
3212 "レッドのケーパビリティになる。 I<pid> が 0 の場合は呼び出し元のスレッドのケー"
3213 "パビリティが操作対象となる。 I<pid> がシングルスレッド・プロセスを参照してい"
3214 "る場合、 I<pid> は以前から使われているプロセスID を使って指定できる。 マルチ"
3215 "スレッド・プロセス内のあるスレッドを対象にする場合は、 B<gettid>(2)  が返すス"
3216 "レッドID を用いて指定する必要がある。 また、 B<capset>()  では -1 や -1 より"
3217 "小さな値を指定することもできる。 -1 は呼び出し元と B<init>(8)  を除く全てのス"
3218 "レッドを対象として変更を行うことを、 -1 より小さな値は ID が -I<pid> のプロセ"
3219 "スグループの全メンバ を対象として変更を行うことを意味する。"
3220
3221 #. type: Plain text
3222 #: build/C/man2/capget.2:160
3223 msgid "For details on the data, see B<capabilities>(7)."
3224 msgstr "このデータの詳細は B<capabilities>(7)  を参照すること。"
3225
3226 #. type: Plain text
3227 #: build/C/man2/capget.2:179
3228 msgid ""
3229 "The calls will fail with the error B<EINVAL>, and set the I<version> field "
3230 "of I<hdrp> to the kernel preferred value of B<_LINUX_CAPABILITY_VERSION_?> "
3231 "when an unsupported I<version> value is specified.  In this way, one can "
3232 "probe what the current preferred capability revision is."
3233 msgstr ""
3234 "I<hdrp> のフィールド I<version> にサポートされていない値が指定された場合、 呼"
3235 "び出しはエラー B<EINVAL> で失敗し、 I<version> にカーネル推奨の "
3236 "B<_LINUX_CAPABILITY_VERSION_?> を設定する。 このようにして、現在の推奨ケーパ"
3237 "ビリティ・リビジョンが何かを 調べることができる。"
3238
3239 #. type: Plain text
3240 #: build/C/man2/capget.2:188
3241 msgid ""
3242 "Bad memory address.  I<hdrp> must not be NULL.  I<datap> may be NULL only "
3243 "when the user is trying to determine the preferred capability version format "
3244 "supported by the kernel."
3245 msgstr ""
3246 "不正なメモリアドレス。 I<hdrp> は NULL であってはならない。 I<datap> に NULL "
3247 "を指定してよいのは、ユーザがカーネルがサポートしている 推奨のケーパビリティ・"
3248 "バージョンを判定しようとしているときだけである。"
3249
3250 #. type: TP
3251 #: build/C/man2/capget.2:188 build/C/man7/cpuset.7:1180
3252 #: build/C/man7/cpuset.7:1189 build/C/man7/cpuset.7:1198
3253 #: build/C/man7/cpuset.7:1208 build/C/man7/cpuset.7:1217
3254 #: build/C/man7/cpuset.7:1224 build/C/man7/cpuset.7:1231
3255 #: build/C/man2/getgroups.2:114 build/C/man2/getgroups.2:121
3256 #: build/C/man2/getpriority.2:121 build/C/man2/getrlimit.2:440
3257 #: build/C/man2/getrusage.2:191 build/C/man2/iopl.2:72
3258 #: build/C/man2/ioprio_set.2:170 build/C/man2/setpgid.2:202
3259 #, no-wrap
3260 msgid "B<EINVAL>"
3261 msgstr "B<EINVAL>"
3262
3263 #. type: Plain text
3264 #: build/C/man2/capget.2:191
3265 msgid "One of the arguments was invalid."
3266 msgstr "引き数のどれかが無効である。"
3267
3268 #. type: Plain text
3269 #: build/C/man2/capget.2:196
3270 msgid ""
3271 "An attempt was made to add a capability to the Permitted set, or to set a "
3272 "capability in the Effective or Inheritable sets that is not in the Permitted "
3273 "set."
3274 msgstr ""
3275 "「許可ケーパビリティセット」にケーパビリティを追加しようとしているか、 もしく"
3276 "は「許可ケーパビリティセット」に含まれないケーパビリティを 「実効ケーパビリ"
3277 "ティセット」や「継承可能ケーパビリティセット」に セットしようとしている。"
3278
3279 #. type: Plain text
3280 #: build/C/man2/capget.2:215
3281 msgid ""
3282 "The caller attempted to use B<capset>()  to modify the capabilities of a "
3283 "thread other than itself, but lacked sufficient privilege.  For kernels "
3284 "supporting VFS capabilities, this is never permitted.  For kernels lacking "
3285 "VFS support, the B<CAP_SETPCAP> capability is required.  (A bug in kernels "
3286 "before 2.6.11 meant that this error could also occur if a thread without "
3287 "this capability tried to change its own capabilities by specifying the "
3288 "I<pid> field as a nonzero value (i.e., the value returned by B<getpid>(2))  "
3289 "instead of 0.)"
3290 msgstr ""
3291 "呼び出し元が自分以外のスレッドのケーパビリティを B<capset>()  を使って修正し"
3292 "ようとしたが、十分な特権がなかった。 VFS ケーパビリティをサポートしているカー"
3293 "ネルでは、 この操作が許可されることは決してない。 VFS ケーパビリティをサポー"
3294 "トしていないカーネルでは、 B<CAP_SETPCAP> ケーパビリティが必要である。 (バー"
3295 "ジョン 2.6.11 より前のカーネルには、 このケーパビリティを持たないスレッドが "
3296 "I<pid> フィールドに 0 でない値 (つまり、0 の代わりに B<getpid>(2)  が返す値) "
3297 "を指定して自分自身のケーパビリティを変更しようとした場合にも、 このエラーが発"
3298 "生するというバグがあった。)"
3299
3300 #. type: TP
3301 #: build/C/man2/capget.2:215 build/C/man7/cpuset.7:1330
3302 #: build/C/man2/getpriority.2:129 build/C/man2/getrlimit.2:464
3303 #: build/C/man2/getsid.2:70 build/C/man2/ioprio_set.2:187
3304 #: build/C/man2/setpgid.2:217
3305 #, no-wrap
3306 msgid "B<ESRCH>"
3307 msgstr "B<ESRCH>"
3308
3309 #. type: Plain text
3310 #: build/C/man2/capget.2:218
3311 msgid "No such thread."
3312 msgstr "そのようなスレッドが存在しない。"
3313
3314 #. type: Plain text
3315 #: build/C/man2/capget.2:220 build/C/man2/ioprio_set.2:198
3316 msgid "These system calls are Linux-specific."
3317 msgstr "これらのシステムコールは Linux 独自である。"
3318
3319 #. type: Plain text
3320 #: build/C/man2/capget.2:225
3321 msgid ""
3322 "The portable interface to the capability querying and setting functions is "
3323 "provided by the I<libcap> library and is available here:"
3324 msgstr ""
3325 "ケーパビリティを設定したり取得したりする機能のための移植性ある インターフェー"
3326 "スは I<libcap> ライブラリによって提供される。 このライブラリは以下から入手で"
3327 "きる:"
3328
3329 #. type: Plain text
3330 #: build/C/man2/capget.2:228
3331 msgid ""
3332 "E<.UR http://git.kernel.org/cgit\\:/linux\\:/kernel\\:/git\\:/morgan\\:\\:/"
3333 "libcap.git> E<.UE>"
3334 msgstr ""
3335 "E<.UR http://git.kernel.org/cgit\\:/linux\\:/kernel\\:/git\\:/morgan\\:\\:/"
3336 "libcap.git> E<.UE>"
3337
3338 #. type: Plain text
3339 #: build/C/man2/capget.2:232
3340 msgid "B<clone>(2), B<gettid>(2), B<capabilities>(7)"
3341 msgstr "B<clone>(2), B<gettid>(2), B<capabilities>(7)"
3342
3343 #. type: TH
3344 #: build/C/man7/cpuset.7:25
3345 #, no-wrap
3346 msgid "CPUSET"
3347 msgstr "CPUSET"
3348
3349 #. type: TH
3350 #: build/C/man7/cpuset.7:25 build/C/man2/getpriority.2:48
3351 #: build/C/man2/ioprio_set.2:24 build/C/man7/svipc.7:40
3352 #, no-wrap
3353 msgid "2013-02-12"
3354 msgstr "2013-02-12"
3355
3356 #. type: Plain text
3357 #: build/C/man7/cpuset.7:28
3358 msgid "cpuset - confine processes to processor and memory node subsets"
3359 msgstr ""
3360
3361 #. type: Plain text
3362 #: build/C/man7/cpuset.7:35
3363 msgid ""
3364 "The cpuset file system is a pseudo-file-system interface to the kernel "
3365 "cpuset mechanism, which is used to control the processor placement and "
3366 "memory placement of processes.  It is commonly mounted at I</dev/cpuset>."
3367 msgstr ""
3368
3369 #. type: Plain text
3370 #: build/C/man7/cpuset.7:52
3371 msgid ""
3372 "On systems with kernels compiled with built in support for cpusets, all "
3373 "processes are attached to a cpuset, and cpusets are always present.  If a "
3374 "system supports cpusets, then it will have the entry B<nodev cpuset> in the "
3375 "file I</proc/filesystems>.  By mounting the cpuset file system (see the "
3376 "B<EXAMPLE> section below), the administrator can configure the cpusets on a "
3377 "system to control the processor and memory placement of processes on that "
3378 "system.  By default, if the cpuset configuration on a system is not modified "
3379 "or if the cpuset file system is not even mounted, then the cpuset mechanism, "
3380 "though present, has no affect on the system's behavior."
3381 msgstr ""
3382
3383 #. type: Plain text
3384 #: build/C/man7/cpuset.7:54
3385 msgid "A cpuset defines a list of CPUs and memory nodes."
3386 msgstr ""
3387
3388 #. type: Plain text
3389 #: build/C/man7/cpuset.7:63
3390 msgid ""
3391 "The CPUs of a system include all the logical processing units on which a "
3392 "process can execute, including, if present, multiple processor cores within "
3393 "a package and Hyper-Threads within a processor core.  Memory nodes include "
3394 "all distinct banks of main memory; small and SMP systems typically have just "
3395 "one memory node that contains all the system's main memory, while NUMA (non-"
3396 "uniform memory access) systems have multiple memory nodes."
3397 msgstr ""
3398
3399 #. type: Plain text
3400 #: build/C/man7/cpuset.7:73
3401 msgid ""
3402 "Cpusets are represented as directories in a hierarchical pseudo-file system, "
3403 "where the top directory in the hierarchy (I</dev/cpuset>)  represents the "
3404 "entire system (all online CPUs and memory nodes)  and any cpuset that is the "
3405 "child (descendant) of another parent cpuset contains a subset of that "
3406 "parent's CPUs and memory nodes.  The directories and files representing "
3407 "cpusets have normal file-system permissions."
3408 msgstr ""
3409
3410 #. type: Plain text
3411 #: build/C/man7/cpuset.7:84
3412 msgid ""
3413 "Every process in the system belongs to exactly one cpuset.  A process is "
3414 "confined to run only on the CPUs in the cpuset it belongs to, and to "
3415 "allocate memory only on the memory nodes in that cpuset.  When a process "
3416 "B<fork>(2)s, the child process is placed in the same cpuset as its parent.  "
3417 "With sufficient privilege, a process may be moved from one cpuset to another "
3418 "and the allowed CPUs and memory nodes of an existing cpuset may be changed."
3419 msgstr ""
3420
3421 #. type: Plain text
3422 #: build/C/man7/cpuset.7:92
3423 msgid ""
3424 "When the system begins booting, a single cpuset is defined that includes all "
3425 "CPUs and memory nodes on the system, and all processes are in that cpuset.  "
3426 "During the boot process, or later during normal system operation, other "
3427 "cpusets may be created, as subdirectories of this top cpuset, under the "
3428 "control of the system administrator, and processes may be placed in these "
3429 "other cpusets."
3430 msgstr ""
3431
3432 #. type: Plain text
3433 #: build/C/man7/cpuset.7:114
3434 msgid ""
3435 "Cpusets are integrated with the B<sched_setaffinity>(2)  scheduling affinity "
3436 "mechanism and the B<mbind>(2)  and B<set_mempolicy>(2)  memory-placement "
3437 "mechanisms in the kernel.  Neither of these mechanisms let a process make "
3438 "use of a CPU or memory node that is not allowed by that process's cpuset.  "
3439 "If changes to a process's cpuset placement conflict with these other "
3440 "mechanisms, then cpuset placement is enforced even if it means overriding "
3441 "these other mechanisms.  The kernel accomplishes this overriding by silently "
3442 "restricting the CPUs and memory nodes requested by these other mechanisms to "
3443 "those allowed by the invoking process's cpuset.  This can result in these "
3444 "other calls returning an error, if for example, such a call ends up "
3445 "requesting an empty set of CPUs or memory nodes, after that request is "
3446 "restricted to the invoking process's cpuset."
3447 msgstr ""
3448
3449 #. type: Plain text
3450 #: build/C/man7/cpuset.7:120
3451 msgid ""
3452 "Typically, a cpuset is used to manage the CPU and memory-node confinement "
3453 "for a set of cooperating processes such as a batch scheduler job, and these "
3454 "other mechanisms are used to manage the placement of individual processes or "
3455 "memory regions within that set or job."
3456 msgstr ""
3457
3458 #. type: SH
3459 #: build/C/man7/cpuset.7:120
3460 #, no-wrap
3461 msgid "FILES"
3462 msgstr ""
3463
3464 #. type: Plain text
3465 #: build/C/man7/cpuset.7:125
3466 msgid ""
3467 "Each directory below I</dev/cpuset> represents a cpuset and contains a fixed "
3468 "set of pseudo-files describing the state of that cpuset."
3469 msgstr ""
3470
3471 #. type: Plain text
3472 #: build/C/man7/cpuset.7:135
3473 msgid ""
3474 "New cpusets are created using the B<mkdir>(2)  system call or the B<mkdir>"
3475 "(1)  command.  The properties of a cpuset, such as its flags, allowed CPUs "
3476 "and memory nodes, and attached processes, are queried and modified by "
3477 "reading or writing to the appropriate file in that cpuset's directory, as "
3478 "listed below."
3479 msgstr ""
3480
3481 #. type: Plain text
3482 #: build/C/man7/cpuset.7:141
3483 msgid ""
3484 "The pseudo-files in each cpuset directory are automatically created when the "
3485 "cpuset is created, as a result of the B<mkdir>(2)  invocation.  It is not "
3486 "possible to directly add or remove these pseudo-files."
3487 msgstr ""
3488
3489 #. type: Plain text
3490 #: build/C/man7/cpuset.7:149
3491 msgid ""
3492 "A cpuset directory that contains no child cpuset directories, and has no "
3493 "attached processes, can be removed using B<rmdir>(2)  or B<rmdir>(1).  It is "
3494 "not necessary, or possible, to remove the pseudo-files inside the directory "
3495 "before removing it."
3496 msgstr ""
3497
3498 #. type: Plain text
3499 #: build/C/man7/cpuset.7:163
3500 msgid ""
3501 "The pseudo-files in each cpuset directory are small text files that may be "
3502 "read and written using traditional shell utilities such as B<cat>(1), and "
3503 "B<echo>(1), or from a program by using file I/O library functions or system "
3504 "calls, such as B<open>(2), B<read>(2), B<write>(2), and B<close>(2)."
3505 msgstr ""
3506
3507 #.  ====================== tasks ======================
3508 #. type: Plain text
3509 #: build/C/man7/cpuset.7:168
3510 msgid ""
3511 "The pseudo-files in a cpuset directory represent internal kernel state and "
3512 "do not have any persistent image on disk.  Each of these per-cpuset files is "
3513 "listed and described below."
3514 msgstr ""
3515
3516 #. type: TP
3517 #: build/C/man7/cpuset.7:168
3518 #, no-wrap
3519 msgid "I<tasks>"
3520 msgstr "I<tasks>"
3521
3522 #. type: Plain text
3523 #: build/C/man7/cpuset.7:178
3524 msgid ""
3525 "List of the process IDs (PIDs) of the processes in that cpuset.  The list is "
3526 "formatted as a series of ASCII decimal numbers, each followed by a newline.  "
3527 "A process may be added to a cpuset (automatically removing it from the "
3528 "cpuset that previously contained it) by writing its PID to that cpuset's "
3529 "I<tasks> file (with or without a trailing newline.)"
3530 msgstr ""
3531
3532 #.  =================== notify_on_release ===================
3533 #. type: Plain text
3534 #: build/C/man7/cpuset.7:186
3535 msgid ""
3536 "B<Warning:> only one PID may be written to the I<tasks> file at a time.  If "
3537 "a string is written that contains more than one PID, only the first one will "
3538 "be used."
3539 msgstr ""
3540
3541 #. type: TP
3542 #: build/C/man7/cpuset.7:186
3543 #, no-wrap
3544 msgid "I<notify_on_release>"
3545 msgstr "I<notify_on_release>"
3546
3547 #.  ====================== cpus ======================
3548 #. type: Plain text
3549 #: build/C/man7/cpuset.7:195
3550 msgid ""
3551 "Flag (0 or 1).  If set (1), that cpuset will receive special handling after "
3552 "it is released, that is, after all processes cease using it (i.e., terminate "
3553 "or are moved to a different cpuset)  and all child cpuset directories have "
3554 "been removed.  See the B<Notify On Release> section, below."
3555 msgstr ""
3556
3557 #. type: TP
3558 #: build/C/man7/cpuset.7:195
3559 #, no-wrap
3560 msgid "I<cpuset.cpus>"
3561 msgstr "I<cpuset.cpus>"
3562
3563 #. type: Plain text
3564 #: build/C/man7/cpuset.7:202
3565 msgid ""
3566 "List of the physical numbers of the CPUs on which processes in that cpuset "
3567 "are allowed to execute.  See B<List Format> below for a description of the "
3568 "format of I<cpus>."
3569 msgstr ""
3570
3571 #.  ==================== cpu_exclusive ====================
3572 #. type: Plain text
3573 #: build/C/man7/cpuset.7:208
3574 msgid ""
3575 "The CPUs allowed to a cpuset may be changed by writing a new list to its "
3576 "I<cpus> file."
3577 msgstr ""
3578
3579 #. type: TP
3580 #: build/C/man7/cpuset.7:208
3581 #, no-wrap
3582 msgid "I<cpuset.cpu_exclusive>"
3583 msgstr "I<cpuset.cpu_exclusive>"
3584
3585 #. type: Plain text
3586 #: build/C/man7/cpuset.7:215
3587 msgid ""
3588 "Flag (0 or 1).  If set (1), the cpuset has exclusive use of its CPUs (no "
3589 "sibling or cousin cpuset may overlap CPUs).  By default this is off (0).  "
3590 "Newly created cpusets also initially default this to off (0)."
3591 msgstr ""
3592
3593 #.  ====================== mems ======================
3594 #. type: Plain text
3595 #: build/C/man7/cpuset.7:237
3596 msgid ""
3597 "Two cpusets are I<sibling> cpusets if they share the same parent cpuset in "
3598 "the I</dev/cpuset> hierarchy.  Two cpusets are I<cousin> cpusets if neither "
3599 "is the ancestor of the other.  Regardless of the I<cpu_exclusive> setting, "
3600 "if one cpuset is the ancestor of another, and if both of these cpusets have "
3601 "nonempty I<cpus>, then their I<cpus> must overlap, because the I<cpus> of "
3602 "any cpuset are always a subset of the I<cpus> of its parent cpuset."
3603 msgstr ""
3604
3605 #. type: TP
3606 #: build/C/man7/cpuset.7:237
3607 #, no-wrap
3608 msgid "I<cpuset.mems>"
3609 msgstr "I<cpuset.mems>"
3610
3611 #.  ==================== mem_exclusive ====================
3612 #. type: Plain text
3613 #: build/C/man7/cpuset.7:245
3614 msgid ""
3615 "List of memory nodes on which processes in this cpuset are allowed to "
3616 "allocate memory.  See B<List Format> below for a description of the format "
3617 "of I<mems>."
3618 msgstr ""
3619
3620 #. type: TP
3621 #: build/C/man7/cpuset.7:245
3622 #, no-wrap
3623 msgid "I<cpuset.mem_exclusive>"
3624 msgstr "I<cpuset.mem_exclusive>"
3625
3626 #. type: Plain text
3627 #: build/C/man7/cpuset.7:253
3628 msgid ""
3629 "Flag (0 or 1).  If set (1), the cpuset has exclusive use of its memory nodes "
3630 "(no sibling or cousin may overlap).  Also if set (1), the cpuset is a "
3631 "B<Hardwall> cpuset (see below.)  By default this is off (0).  Newly created "
3632 "cpusets also initially default this to off (0)."
3633 msgstr ""
3634
3635 #.  ==================== mem_hardwall ====================
3636 #. type: Plain text
3637 #: build/C/man7/cpuset.7:261
3638 msgid ""
3639 "Regardless of the I<mem_exclusive> setting, if one cpuset is the ancestor of "
3640 "another, then their memory nodes must overlap, because the memory nodes of "
3641 "any cpuset are always a subset of the memory nodes of that cpuset's parent "
3642 "cpuset."
3643 msgstr ""
3644
3645 #. type: TP
3646 #: build/C/man7/cpuset.7:261
3647 #, no-wrap
3648 msgid "I<cpuset.mem_hardwall> (since Linux 2.6.26)"
3649 msgstr "I<cpuset.mem_hardwall> (Linux 2.6.26 以降)"
3650
3651 #.  ==================== memory_migrate ====================
3652 #. type: Plain text
3653 #: build/C/man7/cpuset.7:272
3654 msgid ""
3655 "Flag (0 or 1).  If set (1), the cpuset is a B<Hardwall> cpuset (see below.)  "
3656 "Unlike B<mem_exclusive>, there is no constraint on whether cpusets marked "
3657 "B<mem_hardwall> may have overlapping memory nodes with sibling or cousin "
3658 "cpusets.  By default this is off (0).  Newly created cpusets also initially "
3659 "default this to off (0)."
3660 msgstr ""
3661
3662 #. type: TP
3663 #: build/C/man7/cpuset.7:272
3664 #, no-wrap
3665 msgid "I<cpuset.memory_migrate> (since Linux 2.6.16)"
3666 msgstr "I<cpuset.memory_migrate> (Linux 2.6.16 以降)"
3667
3668 #.  ==================== memory_pressure ====================
3669 #. type: Plain text
3670 #: build/C/man7/cpuset.7:279
3671 msgid ""
3672 "Flag (0 or 1).  If set (1), then memory migration is enabled.  By default "
3673 "this is off (0).  See the B<Memory Migration> section, below."
3674 msgstr ""
3675
3676 #. type: TP
3677 #: build/C/man7/cpuset.7:279
3678 #, no-wrap
3679 msgid "I<cpuset.memory_pressure> (since Linux 2.6.16)"
3680 msgstr "I<cpuset.memory_pressure> (Linux 2.6.16 以降)"
3681
3682 #.  ================= memory_pressure_enabled =================
3683 #. type: Plain text
3684 #: build/C/man7/cpuset.7:292
3685 msgid ""
3686 "A measure of how much memory pressure the processes in this cpuset are "
3687 "causing.  See the B<Memory Pressure> section, below.  Unless "
3688 "I<memory_pressure_enabled> is enabled, always has value zero (0).  This file "
3689 "is read-only.  See the B<WARNINGS> section, below."
3690 msgstr ""
3691
3692 #. type: TP
3693 #: build/C/man7/cpuset.7:292
3694 #, no-wrap
3695 msgid "I<cpuset.memory_pressure_enabled> (since Linux 2.6.16)"
3696 msgstr "I<cpuset.memory_pressure_enabled> (Linux 2.6.16 以降)"
3697
3698 #.  ================== memory_spread_page ==================
3699 #. type: Plain text
3700 #: build/C/man7/cpuset.7:304
3701 msgid ""
3702 "Flag (0 or 1).  This file is present only in the root cpuset, normally I</"
3703 "dev/cpuset>.  If set (1), the I<memory_pressure> calculations are enabled "
3704 "for all cpusets in the system.  By default this is off (0).  See the "
3705 "B<Memory Pressure> section, below."
3706 msgstr ""
3707
3708 #. type: TP
3709 #: build/C/man7/cpuset.7:304
3710 #, no-wrap
3711 msgid "I<cpuset.memory_spread_page> (since Linux 2.6.17)"
3712 msgstr "I<cpuset.memory_spread_page> (Linux 2.6.17 以降)"
3713
3714 #.  ================== memory_spread_slab ==================
3715 #. type: Plain text
3716 #: build/C/man7/cpuset.7:314
3717 msgid ""
3718 "Flag (0 or 1).  If set (1), pages in the kernel page cache (file-system "
3719 "buffers) are uniformly spread across the cpuset.  By default this is off (0) "
3720 "in the top cpuset, and inherited from the parent cpuset in newly created "
3721 "cpusets.  See the B<Memory Spread> section, below."
3722 msgstr ""
3723
3724 #. type: TP
3725 #: build/C/man7/cpuset.7:314
3726 #, no-wrap
3727 msgid "I<cpuset.memory_spread_slab> (since Linux 2.6.17)"
3728 msgstr "I<cpuset.memory_spread_slab> (Linux 2.6.17 以降)"
3729
3730 #.  ================== sched_load_balance ==================
3731 #. type: Plain text
3732 #: build/C/man7/cpuset.7:325
3733 msgid ""
3734 "Flag (0 or 1).  If set (1), the kernel slab caches for file I/O (directory "
3735 "and inode structures) are uniformly spread across the cpuset.  By default "
3736 "this is off (0) in the top cpuset, and inherited from the parent cpuset in "
3737 "newly created cpusets.  See the B<Memory Spread> section, below."
3738 msgstr ""
3739
3740 #. type: TP
3741 #: build/C/man7/cpuset.7:325
3742 #, no-wrap
3743 msgid "I<cpuset.sched_load_balance> (since Linux 2.6.24)"
3744 msgstr "I<cpuset.sched_load_balance> (Linux 2.6.24 以降)"
3745
3746 #.  ================== sched_relax_domain_level ==================
3747 #. type: Plain text
3748 #: build/C/man7/cpuset.7:339
3749 msgid ""
3750 "Flag (0 or 1).  If set (1, the default) the kernel will automatically load "
3751 "balance processes in that cpuset over the allowed CPUs in that cpuset.  If "
3752 "cleared (0) the kernel will avoid load balancing processes in this cpuset, "
3753 "I<unless> some other cpuset with overlapping CPUs has its "
3754 "I<sched_load_balance> flag set.  See B<Scheduler Load Balancing>, below, for "
3755 "further details."
3756 msgstr ""
3757
3758 #. type: TP
3759 #: build/C/man7/cpuset.7:339
3760 #, no-wrap
3761 msgid "I<cpuset.sched_relax_domain_level> (since Linux 2.6.26)"
3762 msgstr "I<cpuset.sched_relax_domain_level> (Linux 2.6.26 以降)"
3763
3764 #.  ================== proc cpuset ==================
3765 #. type: Plain text
3766 #: build/C/man7/cpuset.7:359
3767 msgid ""
3768 "Integer, between -1 and a small positive value.  The "
3769 "I<sched_relax_domain_level> controls the width of the range of CPUs over "
3770 "which the kernel scheduler performs immediate rebalancing of runnable tasks "
3771 "across CPUs.  If I<sched_load_balance> is disabled, then the setting of "
3772 "I<sched_relax_domain_level> does not matter, as no such load balancing is "
3773 "done.  If I<sched_load_balance> is enabled, then the higher the value of the "
3774 "I<sched_relax_domain_level>, the wider the range of CPUs over which "
3775 "immediate load balancing is attempted.  See B<Scheduler Relax Domain Level>, "
3776 "below, for further details."
3777 msgstr ""
3778
3779 #.  ================== proc status ==================
3780 #. type: Plain text
3781 #: build/C/man7/cpuset.7:367
3782 msgid ""
3783 "In addition to the above pseudo-files in each directory below I</dev/"
3784 "cpuset>, each process has a pseudo-file, I</proc/E<lt>pidE<gt>/cpuset>, that "
3785 "displays the path of the process's cpuset directory relative to the root of "
3786 "the cpuset file system."
3787 msgstr ""
3788
3789 #. type: Plain text
3790 #: build/C/man7/cpuset.7:378
3791 msgid ""
3792 "Also the I</proc/E<lt>pidE<gt>/status> file for each process has four added "
3793 "lines, displaying the process's I<Cpus_allowed> (on which CPUs it may be "
3794 "scheduled) and I<Mems_allowed> (on which memory nodes it may obtain memory), "
3795 "in the two formats B<Mask Format> and B<List Format> (see below)  as shown "
3796 "in the following example:"
3797 msgstr ""
3798
3799 #. type: Plain text
3800 #: build/C/man7/cpuset.7:385
3801 #, no-wrap
3802 msgid ""
3803 "Cpus_allowed:   ffffffff,ffffffff,ffffffff,ffffffff\n"
3804 "Cpus_allowed_list:     0-127\n"
3805 "Mems_allowed:   ffffffff,ffffffff\n"
3806 "Mems_allowed_list:     0-63\n"
3807 msgstr ""
3808 "Cpus_allowed:   ffffffff,ffffffff,ffffffff,ffffffff\n"
3809 "Cpus_allowed_list:     0-127\n"
3810 "Mems_allowed:   ffffffff,ffffffff\n"
3811 "Mems_allowed_list:     0-63\n"
3812
3813 #.  ================== EXTENDED CAPABILITIES ==================
3814 #. type: Plain text
3815 #: build/C/man7/cpuset.7:391
3816 msgid ""
3817 "The \"allowed\" fields were added in Linux 2.6.24; the \"allowed_list\" "
3818 "fields were added in Linux 2.6.26."
3819 msgstr ""
3820
3821 #. type: SH
3822 #: build/C/man7/cpuset.7:391
3823 #, no-wrap
3824 msgid "EXTENDED CAPABILITIES"
3825 msgstr ""
3826
3827 #.  ================== Exclusive Cpusets ==================
3828 #. type: Plain text
3829 #: build/C/man7/cpuset.7:399
3830 msgid ""
3831 "In addition to controlling which I<cpus> and I<mems> a process is allowed to "
3832 "use, cpusets provide the following extended capabilities."
3833 msgstr ""
3834
3835 #. type: SS
3836 #: build/C/man7/cpuset.7:399
3837 #, no-wrap
3838 msgid "Exclusive cpusets"
3839 msgstr ""
3840
3841 #. type: Plain text
3842 #: build/C/man7/cpuset.7:406
3843 msgid ""
3844 "If a cpuset is marked I<cpu_exclusive> or I<mem_exclusive>, no other cpuset, "
3845 "other than a direct ancestor or descendant, may share any of the same CPUs "
3846 "or memory nodes."
3847 msgstr ""
3848
3849 #.  ================== Hardwall ==================
3850 #. type: Plain text
3851 #: build/C/man7/cpuset.7:432
3852 msgid ""
3853 "A cpuset that is I<mem_exclusive> restricts kernel allocations for buffer "
3854 "cache pages and other internal kernel data pages commonly shared by the "
3855 "kernel across multiple users.  All cpusets, whether I<mem_exclusive> or not, "
3856 "restrict allocations of memory for user space.  This enables configuring a "
3857 "system so that several independent jobs can share common kernel data, while "
3858 "isolating each job's user allocation in its own cpuset.  To do this, "
3859 "construct a large I<mem_exclusive> cpuset to hold all the jobs, and "
3860 "construct child, non-I<mem_exclusive> cpusets for each individual job.  Only "
3861 "a small amount of kernel memory, such as requests from interrupt handlers, "
3862 "is allowed to be placed on memory nodes outside even a I<mem_exclusive> "
3863 "cpuset."
3864 msgstr ""
3865
3866 #. type: SS
3867 #: build/C/man7/cpuset.7:432
3868 #, no-wrap
3869 msgid "Hardwall"
3870 msgstr ""
3871
3872 #. type: Plain text
3873 #: build/C/man7/cpuset.7:447
3874 msgid ""
3875 "A cpuset that has I<mem_exclusive> or I<mem_hardwall> set is a I<hardwall> "
3876 "cpuset.  A I<hardwall> cpuset restricts kernel allocations for page, buffer, "
3877 "and other data commonly shared by the kernel across multiple users.  All "
3878 "cpusets, whether I<hardwall> or not, restrict allocations of memory for user "
3879 "space."
3880 msgstr ""
3881
3882 #. type: Plain text
3883 #: build/C/man7/cpuset.7:458
3884 msgid ""
3885 "This enables configuring a system so that several independent jobs can share "
3886 "common kernel data, such as file system pages, while isolating each job's "
3887 "user allocation in its own cpuset.  To do this, construct a large "
3888 "I<hardwall> cpuset to hold all the jobs, and construct child cpusets for "
3889 "each individual job which are not I<hardwall> cpusets."
3890 msgstr ""
3891
3892 #.  ================== Notify On Release ==================
3893 #. type: Plain text
3894 #: build/C/man7/cpuset.7:464
3895 msgid ""
3896 "Only a small amount of kernel memory, such as requests from interrupt "
3897 "handlers, is allowed to be taken outside even a I<hardwall> cpuset."
3898 msgstr ""
3899
3900 #. type: SS
3901 #: build/C/man7/cpuset.7:464
3902 #, no-wrap
3903 msgid "Notify on release"
3904 msgstr ""
3905
3906 #. type: Plain text
3907 #: build/C/man7/cpuset.7:476
3908 msgid ""
3909 "If the I<notify_on_release> flag is enabled (1) in a cpuset, then whenever "
3910 "the last process in the cpuset leaves (exits or attaches to some other "
3911 "cpuset)  and the last child cpuset of that cpuset is removed, the kernel "
3912 "will run the command I</sbin/cpuset_release_agent>, supplying the pathname "
3913 "(relative to the mount point of the cpuset file system) of the abandoned "
3914 "cpuset.  This enables automatic removal of abandoned cpusets."
3915 msgstr ""
3916
3917 #. type: Plain text
3918 #: build/C/man7/cpuset.7:484
3919 msgid ""
3920 "The default value of I<notify_on_release> in the root cpuset at system boot "
3921 "is disabled (0).  The default value of other cpusets at creation is the "
3922 "current value of their parent's I<notify_on_release> setting."
3923 msgstr ""
3924
3925 #. type: Plain text
3926 #: build/C/man7/cpuset.7:492
3927 msgid ""
3928 "The command I</sbin/cpuset_release_agent> is invoked, with the name (I</dev/"
3929 "cpuset> relative path)  of the to-be-released cpuset in I<argv[1]>."
3930 msgstr ""
3931
3932 #. type: Plain text
3933 #: build/C/man7/cpuset.7:496
3934 msgid ""
3935 "The usual contents of the command I</sbin/cpuset_release_agent> is simply "
3936 "the shell script:"
3937 msgstr ""
3938
3939 #. type: Plain text
3940 #: build/C/man7/cpuset.7:501
3941 #, no-wrap
3942 msgid ""
3943 "#!/bin/sh\n"
3944 "rmdir /dev/cpuset/$1\n"
3945 msgstr ""
3946 "#!/bin/sh\n"
3947 "rmdir /dev/cpuset/$1\n"
3948
3949 #.  ================== Memory Pressure ==================
3950 #. type: Plain text
3951 #: build/C/man7/cpuset.7:509
3952 msgid ""
3953 "As with other flag values below, this flag can be changed by writing an "
3954 "ASCII number 0 or 1 (with optional trailing newline)  into the file, to "
3955 "clear or set the flag, respectively."
3956 msgstr ""
3957
3958 #. type: SS
3959 #: build/C/man7/cpuset.7:509
3960 #, no-wrap
3961 msgid "Memory pressure"
3962 msgstr ""
3963
3964 #. type: Plain text
3965 #: build/C/man7/cpuset.7:515
3966 msgid ""
3967 "The I<memory_pressure> of a cpuset provides a simple per-cpuset running "
3968 "average of the rate that the processes in a cpuset are attempting to free up "
3969 "in-use memory on the nodes of the cpuset to satisfy additional memory "
3970 "requests."
3971 msgstr ""
3972
3973 #. type: Plain text
3974 #: build/C/man7/cpuset.7:519
3975 msgid ""
3976 "This enables batch managers that are monitoring jobs running in dedicated "
3977 "cpusets to efficiently detect what level of memory pressure that job is "
3978 "causing."
3979 msgstr ""
3980
3981 #. type: Plain text
3982 #: build/C/man7/cpuset.7:526
3983 msgid ""
3984 "This is useful both on tightly managed systems running a wide mix of "
3985 "submitted jobs, which may choose to terminate or reprioritize jobs that are "
3986 "trying to use more memory than allowed on the nodes assigned them, and with "
3987 "tightly coupled, long-running, massively parallel scientific computing jobs "
3988 "that will dramatically fail to meet required performance goals if they start "
3989 "to use more memory than allowed to them."
3990 msgstr ""
3991
3992 #. type: Plain text
3993 #: build/C/man7/cpuset.7:531
3994 msgid ""
3995 "This mechanism provides a very economical way for the batch manager to "
3996 "monitor a cpuset for signs of memory pressure.  It's up to the batch manager "
3997 "or other user code to decide what action to take if it detects signs of "
3998 "memory pressure."
3999 msgstr ""
4000
4001 #. type: Plain text
4002 #: build/C/man7/cpuset.7:538
4003 msgid ""
4004 "Unless memory pressure calculation is enabled by setting the pseudo-file I</"
4005 "dev/cpuset/cpuset.memory_pressure_enabled>, it is not computed for any "
4006 "cpuset, and reads from any I<memory_pressure> always return zero, as "
4007 "represented by the ASCII string \"0\\en\".  See the B<WARNINGS> section, "
4008 "below."
4009 msgstr ""
4010
4011 #. type: Plain text
4012 #: build/C/man7/cpuset.7:540
4013 msgid "A per-cpuset, running average is employed for the following reasons:"
4014 msgstr ""
4015
4016 #. type: Plain text
4017 #: build/C/man7/cpuset.7:545
4018 msgid ""
4019 "Because this meter is per-cpuset rather than per-process or per virtual "
4020 "memory region, the system load imposed by a batch scheduler monitoring this "
4021 "metric is sharply reduced on large systems, because a scan of the tasklist "
4022 "can be avoided on each set of queries."
4023 msgstr ""
4024
4025 #. type: Plain text
4026 #: build/C/man7/cpuset.7:550
4027 msgid ""
4028 "Because this meter is a running average rather than an accumulating counter, "
4029 "a batch scheduler can detect memory pressure with a single read, instead of "
4030 "having to read and accumulate results for a period of time."
4031 msgstr ""
4032
4033 #. type: Plain text
4034 #: build/C/man7/cpuset.7:556
4035 msgid ""
4036 "Because this meter is per-cpuset rather than per-process, the batch "
4037 "scheduler can obtain the key information\\(emmemory pressure in a cpuset"
4038 "\\(emwith a single read, rather than having to query and accumulate results "
4039 "over all the (dynamically changing)  set of processes in the cpuset."
4040 msgstr ""
4041
4042 #. type: Plain text
4043 #: build/C/man7/cpuset.7:564
4044 msgid ""
4045 "The I<memory_pressure> of a cpuset is calculated using a per-cpuset simple "
4046 "digital filter that is kept within the kernel.  For each cpuset, this filter "
4047 "tracks the recent rate at which processes attached to that cpuset enter the "
4048 "kernel direct reclaim code."
4049 msgstr ""
4050
4051 #. type: Plain text
4052 #: build/C/man7/cpuset.7:573
4053 msgid ""
4054 "The kernel direct reclaim code is entered whenever a process has to satisfy "
4055 "a memory page request by first finding some other page to repurpose, due to "
4056 "lack of any readily available already free pages.  Dirty file system pages "
4057 "are repurposed by first writing them to disk.  Unmodified file system buffer "
4058 "pages are repurposed by simply dropping them, though if that page is needed "
4059 "again, it will have to be reread from disk."
4060 msgstr ""
4061
4062 #.  ================== Memory Spread ==================
4063 #. type: Plain text
4064 #: build/C/man7/cpuset.7:581
4065 msgid ""
4066 "The I<cpuset.memory_pressure> file provides an integer number representing "
4067 "the recent (half-life of 10 seconds) rate of entries to the direct reclaim "
4068 "code caused by any process in the cpuset, in units of reclaims attempted per "
4069 "second, times 1000."
4070 msgstr ""
4071
4072 #. type: SS
4073 #: build/C/man7/cpuset.7:581
4074 #, no-wrap
4075 msgid "Memory spread"
4076 msgstr ""
4077
4078 #. type: Plain text
4079 #: build/C/man7/cpuset.7:589
4080 msgid ""
4081 "There are two Boolean flag files per cpuset that control where the kernel "
4082 "allocates pages for the file-system buffers and related in-kernel data "
4083 "structures.  They are called I<cpuset.memory_spread_page> and I<cpuset."
4084 "memory_spread_slab>."
4085 msgstr ""
4086
4087 #. type: Plain text
4088 #: build/C/man7/cpuset.7:596
4089 msgid ""
4090 "If the per-cpuset Boolean flag file I<cpuset.memory_spread_page> is set, "
4091 "then the kernel will spread the file-system buffers (page cache) evenly over "
4092 "all the nodes that the faulting process is allowed to use, instead of "
4093 "preferring to put those pages on the node where the process is running."
4094 msgstr ""
4095
4096 #. type: Plain text
4097 #: build/C/man7/cpuset.7:604
4098 msgid ""
4099 "If the per-cpuset Boolean flag file I<cpuset.memory_spread_slab> is set, "
4100 "then the kernel will spread some file-system-related slab caches, such as "
4101 "those for inodes and directory entries, evenly over all the nodes that the "
4102 "faulting process is allowed to use, instead of preferring to put those pages "
4103 "on the node where the process is running."
4104 msgstr ""
4105
4106 #. type: Plain text
4107 #: build/C/man7/cpuset.7:609
4108 msgid ""
4109 "The setting of these flags does not affect the data segment (see B<brk>(2))  "
4110 "or stack segment pages of a process."
4111 msgstr ""
4112
4113 #. type: Plain text
4114 #: build/C/man7/cpuset.7:617
4115 msgid ""
4116 "By default, both kinds of memory spreading are off and the kernel prefers to "
4117 "allocate memory pages on the node local to where the requesting process is "
4118 "running.  If that node is not allowed by the process's NUMA memory policy or "
4119 "cpuset configuration or if there are insufficient free memory pages on that "
4120 "node, then the kernel looks for the nearest node that is allowed and has "
4121 "sufficient free memory."
4122 msgstr ""
4123
4124 #. type: Plain text
4125 #: build/C/man7/cpuset.7:620
4126 msgid ""
4127 "When new cpusets are created, they inherit the memory spread settings of "
4128 "their parent."
4129 msgstr ""
4130
4131 #. type: Plain text
4132 #: build/C/man7/cpuset.7:635
4133 msgid ""
4134 "Setting memory spreading causes allocations for the affected page or slab "
4135 "caches to ignore the process's NUMA memory policy and be spread instead.  "
4136 "However, the effect of these changes in memory placement caused by cpuset-"
4137 "specified memory spreading is hidden from the B<mbind>(2)  or "
4138 "B<set_mempolicy>(2)  calls.  These two NUMA memory policy calls always "
4139 "appear to behave as if no cpuset-specified memory spreading is in effect, "
4140 "even if it is.  If cpuset memory spreading is subsequently turned off, the "
4141 "NUMA memory policy most recently specified by these calls is automatically "
4142 "reapplied."
4143 msgstr ""
4144
4145 #. type: Plain text
4146 #: build/C/man7/cpuset.7:644
4147 msgid ""
4148 "Both I<cpuset.memory_spread_page> and I<cpuset.memory_spread_slab> are "
4149 "Boolean flag files.  By default they contain \"0\", meaning that the feature "
4150 "is off for that cpuset.  If a \"1\" is written to that file, that turns the "
4151 "named feature on."
4152 msgstr ""
4153
4154 #. type: Plain text
4155 #: build/C/man7/cpuset.7:647
4156 msgid ""
4157 "Cpuset-specified memory spreading behaves similarly to what is known (in "
4158 "other contexts) as round-robin or interleave memory placement."
4159 msgstr ""
4160
4161 #. type: Plain text
4162 #: build/C/man7/cpuset.7:650
4163 msgid ""
4164 "Cpuset-specified memory spreading can provide substantial performance "
4165 "improvements for jobs that:"
4166 msgstr ""
4167
4168 #. type: IP
4169 #: build/C/man7/cpuset.7:650
4170 #, no-wrap
4171 msgid "a)"
4172 msgstr "a)"
4173
4174 #. type: Plain text
4175 #: build/C/man7/cpuset.7:654
4176 msgid ""
4177 "need to place thread-local data on memory nodes close to the CPUs which are "
4178 "running the threads that most frequently access that data; but also"
4179 msgstr ""
4180
4181 #. type: IP
4182 #: build/C/man7/cpuset.7:654
4183 #, no-wrap
4184 msgid "b)"
4185 msgstr "b)"
4186
4187 #. type: Plain text
4188 #: build/C/man7/cpuset.7:657
4189 msgid ""
4190 "need to access large file-system data sets that must to be spread across the "
4191 "several nodes in the job's cpuset in order to fit."
4192 msgstr ""
4193
4194 #.  ================== Memory Migration ==================
4195 #. type: Plain text
4196 #: build/C/man7/cpuset.7:664
4197 msgid ""
4198 "Without this policy, the memory allocation across the nodes in the job's "
4199 "cpuset can become very uneven, especially for jobs that might have just a "
4200 "single thread initializing or reading in the data set."
4201 msgstr ""
4202
4203 #. type: SS
4204 #: build/C/man7/cpuset.7:664
4205 #, no-wrap
4206 msgid "Memory migration"
4207 msgstr ""
4208
4209 #. type: Plain text
4210 #: build/C/man7/cpuset.7:673
4211 msgid ""
4212 "Normally, under the default setting (disabled) of I<cpuset.memory_migrate>, "
4213 "once a page is allocated (given a physical page of main memory) then that "
4214 "page stays on whatever node it was allocated, so long as it remains "
4215 "allocated, even if the cpuset's memory-placement policy I<mems> subsequently "
4216 "changes."
4217 msgstr ""
4218
4219 #. type: Plain text
4220 #: build/C/man7/cpuset.7:679
4221 msgid ""
4222 "When memory migration is enabled in a cpuset, if the I<mems> setting of the "
4223 "cpuset is changed, then any memory page in use by any process in the cpuset "
4224 "that is on a memory node that is no longer allowed will be migrated to a "
4225 "memory node that is allowed."
4226 msgstr ""
4227
4228 #. type: Plain text
4229 #: build/C/man7/cpuset.7:685
4230 msgid ""
4231 "Furthermore, if a process is moved into a cpuset with I<memory_migrate> "
4232 "enabled, any memory pages it uses that were on memory nodes allowed in its "
4233 "previous cpuset, but which are not allowed in its new cpuset, will be "
4234 "migrated to a memory node allowed in the new cpuset."
4235 msgstr ""
4236
4237 #.  ================== Scheduler Load Balancing ==================
4238 #. type: Plain text
4239 #: build/C/man7/cpuset.7:693
4240 msgid ""
4241 "The relative placement of a migrated page within the cpuset is preserved "
4242 "during these migration operations if possible.  For example, if the page was "
4243 "on the second valid node of the prior cpuset, then the page will be placed "
4244 "on the second valid node of the new cpuset, if possible."
4245 msgstr ""
4246
4247 #. type: SS
4248 #: build/C/man7/cpuset.7:693
4249 #, no-wrap
4250 msgid "Scheduler load balancing"
4251 msgstr ""
4252
4253 #. type: Plain text
4254 #: build/C/man7/cpuset.7:700
4255 msgid ""
4256 "The kernel scheduler automatically load balances processes.  If one CPU is "
4257 "underutilized, the kernel will look for processes on other more overloaded "
4258 "CPUs and move those processes to the underutilized CPU, within the "
4259 "constraints of such placement mechanisms as cpusets and B<sched_setaffinity>"
4260 "(2)."
4261 msgstr ""
4262
4263 #. type: Plain text
4264 #: build/C/man7/cpuset.7:713
4265 msgid ""
4266 "The algorithmic cost of load balancing and its impact on key shared kernel "
4267 "data structures such as the process list increases more than linearly with "
4268 "the number of CPUs being balanced.  For example, it costs more to load "
4269 "balance across one large set of CPUs than it does to balance across two "
4270 "smaller sets of CPUs, each of half the size of the larger set.  (The precise "
4271 "relationship between the number of CPUs being balanced and the cost of load "
4272 "balancing depends on implementation details of the kernel process scheduler, "
4273 "which is subject to change over time, as improved kernel scheduler "
4274 "algorithms are implemented.)"
4275 msgstr ""
4276
4277 #. type: Plain text
4278 #: build/C/man7/cpuset.7:719
4279 msgid ""
4280 "The per-cpuset flag I<sched_load_balance> provides a mechanism to suppress "
4281 "this automatic scheduler load balancing in cases where it is not needed and "
4282 "suppressing it would have worthwhile performance benefits."
4283 msgstr ""
4284
4285 #. type: Plain text
4286 #: build/C/man7/cpuset.7:723
4287 msgid ""
4288 "By default, load balancing is done across all CPUs, except those marked "
4289 "isolated using the kernel boot time \"isolcpus=\" argument.  (See "
4290 "B<Scheduler Relax Domain Level>, below, to change this default.)"
4291 msgstr ""
4292
4293 #. type: Plain text
4294 #: build/C/man7/cpuset.7:726
4295 msgid ""
4296 "This default load balancing across all CPUs is not well suited to the "
4297 "following two situations:"
4298 msgstr ""
4299
4300 #. type: Plain text
4301 #: build/C/man7/cpuset.7:730
4302 msgid ""
4303 "On large systems, load balancing across many CPUs is expensive.  If the "
4304 "system is managed using cpusets to place independent jobs on separate sets "
4305 "of CPUs, full load balancing is unnecessary."
4306 msgstr ""
4307
4308 #. type: Plain text
4309 #: build/C/man7/cpuset.7:734
4310 msgid ""
4311 "Systems supporting real-time on some CPUs need to minimize system overhead "
4312 "on those CPUs, including avoiding process load balancing if that is not "
4313 "needed."
4314 msgstr ""
4315
4316 #. type: Plain text
4317 #: build/C/man7/cpuset.7:744
4318 msgid ""
4319 "When the per-cpuset flag I<sched_load_balance> is enabled (the default "
4320 "setting), it requests load balancing across all the CPUs in that cpuset's "
4321 "allowed CPUs, ensuring that load balancing can move a process (not otherwise "
4322 "pinned, as by B<sched_setaffinity>(2))  from any CPU in that cpuset to any "
4323 "other."
4324 msgstr ""
4325
4326 #. type: Plain text
4327 #: build/C/man7/cpuset.7:753
4328 msgid ""
4329 "When the per-cpuset flag I<sched_load_balance> is disabled, then the "
4330 "scheduler will avoid load balancing across the CPUs in that cpuset, "
4331 "I<except> in so far as is necessary because some overlapping cpuset has "
4332 "I<sched_load_balance> enabled."
4333 msgstr ""
4334
4335 #. type: Plain text
4336 #: build/C/man7/cpuset.7:761
4337 msgid ""
4338 "So, for example, if the top cpuset has the flag I<sched_load_balance> "
4339 "enabled, then the scheduler will load balance across all CPUs, and the "
4340 "setting of the I<sched_load_balance> flag in other cpusets has no effect, as "
4341 "we're already fully load balancing."
4342 msgstr ""
4343
4344 #. type: Plain text
4345 #: build/C/man7/cpuset.7:766
4346 msgid ""
4347 "Therefore in the above two situations, the flag I<sched_load_balance> should "
4348 "be disabled in the top cpuset, and only some of the smaller, child cpusets "
4349 "would have this flag enabled."
4350 msgstr ""
4351
4352 #. type: Plain text
4353 #: build/C/man7/cpuset.7:774
4354 msgid ""
4355 "When doing this, you don't usually want to leave any unpinned processes in "
4356 "the top cpuset that might use nontrivial amounts of CPU, as such processes "
4357 "may be artificially constrained to some subset of CPUs, depending on the "
4358 "particulars of this flag setting in descendant cpusets.  Even if such a "
4359 "process could use spare CPU cycles in some other CPUs, the kernel scheduler "
4360 "might not consider the possibility of load balancing that process to the "
4361 "underused CPU."
4362 msgstr ""
4363
4364 #.  ================== Scheduler Relax Domain Level ==================
4365 #. type: Plain text
4366 #: build/C/man7/cpuset.7:780
4367 msgid ""
4368 "Of course, processes pinned to a particular CPU can be left in a cpuset that "
4369 "disables I<sched_load_balance> as those processes aren't going anywhere else "
4370 "anyway."
4371 msgstr ""
4372
4373 #. type: SS
4374 #: build/C/man7/cpuset.7:780
4375 #, no-wrap
4376 msgid "Scheduler relax domain level"
4377 msgstr ""
4378
4379 #. type: Plain text
4380 #: build/C/man7/cpuset.7:801
4381 msgid ""
4382 "The kernel scheduler performs immediate load balancing whenever a CPU "
4383 "becomes free or another task becomes runnable.  This load balancing works to "
4384 "ensure that as many CPUs as possible are usefully employed running tasks.  "
4385 "The kernel also performs periodic load balancing off the software clock "
4386 "described in I<time>(7).  The setting of I<sched_relax_domain_level> applies "
4387 "only to immediate load balancing.  Regardless of the "
4388 "I<sched_relax_domain_level> setting, periodic load balancing is attempted "
4389 "over all CPUs (unless disabled by turning off I<sched_load_balance>.)  In "
4390 "any case, of course, tasks will be scheduled to run only on CPUs allowed by "
4391 "their cpuset, as modified by B<sched_setaffinity>(2)  system calls."
4392 msgstr ""
4393
4394 #. type: Plain text
4395 #: build/C/man7/cpuset.7:809
4396 msgid ""
4397 "On small systems, such as those with just a few CPUs, immediate load "
4398 "balancing is useful to improve system interactivity and to minimize wasteful "
4399 "idle CPU cycles.  But on large systems, attempting immediate load balancing "
4400 "across a large number of CPUs can be more costly than it is worth, depending "
4401 "on the particular performance characteristics of the job mix and the "
4402 "hardware."
4403 msgstr ""
4404
4405 #. type: Plain text
4406 #: build/C/man7/cpuset.7:817
4407 msgid ""
4408 "The exact meaning of the small integer values of I<sched_relax_domain_level> "
4409 "will depend on internal implementation details of the kernel scheduler code "
4410 "and on the non-uniform architecture of the hardware.  Both of these will "
4411 "evolve over time and vary by system architecture and kernel version."
4412 msgstr ""
4413
4414 #. type: Plain text
4415 #: build/C/man7/cpuset.7:822
4416 msgid ""
4417 "As of this writing, when this capability was introduced in Linux 2.6.26, on "
4418 "certain popular architectures, the positive values of "
4419 "I<sched_relax_domain_level> have the following meanings."
4420 msgstr ""
4421
4422 #. type: IP
4423 #: build/C/man7/cpuset.7:824
4424 #, no-wrap
4425 msgid "B<(1)>"
4426 msgstr "B<(1)>"
4427
4428 #. type: Plain text
4429 #: build/C/man7/cpuset.7:827
4430 msgid ""
4431 "Perform immediate load balancing across Hyper-Thread siblings on the same "
4432 "core."
4433 msgstr ""
4434
4435 #. type: IP
4436 #: build/C/man7/cpuset.7:827
4437 #, no-wrap
4438 msgid "B<(2)>"
4439 msgstr "B<(2)>"
4440
4441 #. type: Plain text
4442 #: build/C/man7/cpuset.7:829
4443 msgid ""
4444 "Perform immediate load balancing across other cores in the same package."
4445 msgstr ""
4446
4447 #. type: IP
4448 #: build/C/man7/cpuset.7:829
4449 #, no-wrap
4450 msgid "B<(3)>"
4451 msgstr "B<(3)>"
4452
4453 #. type: Plain text
4454 #: build/C/man7/cpuset.7:832
4455 msgid ""
4456 "Perform immediate load balancing across other CPUs on the same node or blade."
4457 msgstr ""
4458
4459 #. type: IP
4460 #: build/C/man7/cpuset.7:832
4461 #, no-wrap
4462 msgid "B<(4)>"
4463 msgstr "B<(4)>"
4464
4465 #. type: Plain text
4466 #: build/C/man7/cpuset.7:835
4467 msgid ""
4468 "Perform immediate load balancing across over several (implementation detail) "
4469 "nodes [On NUMA systems]."
4470 msgstr ""
4471
4472 #. type: IP
4473 #: build/C/man7/cpuset.7:835
4474 #, no-wrap
4475 msgid "B<(5)>"
4476 msgstr "B<(5)>"
4477
4478 #. type: Plain text
4479 #: build/C/man7/cpuset.7:838
4480 msgid ""
4481 "Perform immediate load balancing across over all CPUs in system [On NUMA "
4482 "systems]."
4483 msgstr ""
4484
4485 #. type: Plain text
4486 #: build/C/man7/cpuset.7:847
4487 msgid ""
4488 "The I<sched_relax_domain_level> value of zero (0) always means don't perform "
4489 "immediate load balancing, hence that load balancing is done only "
4490 "periodically, not immediately when a CPU becomes available or another task "
4491 "becomes runnable."
4492 msgstr ""
4493
4494 #. type: Plain text
4495 #: build/C/man7/cpuset.7:855
4496 msgid ""
4497 "The I<sched_relax_domain_level> value of minus one (-1)  always means use "
4498 "the system default value.  The system default value can vary by architecture "
4499 "and kernel version.  This system default value can be changed by kernel boot-"
4500 "time \"relax_domain_level=\" argument."
4501 msgstr ""
4502
4503 #. type: Plain text
4504 #: build/C/man7/cpuset.7:863
4505 msgid ""
4506 "In the case of multiple overlapping cpusets which have conflicting "
4507 "I<sched_relax_domain_level> values, then the highest such value applies to "
4508 "all CPUs in any of the overlapping cpusets.  In such cases, the value "
4509 "B<minus one (-1)> is the lowest value, overridden by any other value, and "
4510 "the value B<zero (0)> is the next lowest value."
4511 msgstr ""
4512
4513 #. type: SH
4514 #: build/C/man7/cpuset.7:863
4515 #, no-wrap
4516 msgid "FORMATS"
4517 msgstr ""
4518
4519 #.  ================== Mask Format ==================
4520 #. type: Plain text
4521 #: build/C/man7/cpuset.7:867
4522 msgid ""
4523 "The following formats are used to represent sets of CPUs and memory nodes."
4524 msgstr ""
4525
4526 #. type: SS
4527 #: build/C/man7/cpuset.7:867
4528 #, no-wrap
4529 msgid "Mask format"
4530 msgstr ""
4531
4532 #. type: Plain text
4533 #: build/C/man7/cpuset.7:872
4534 msgid ""
4535 "The B<Mask Format> is used to represent CPU and memory-node bit masks in the "
4536 "I</proc/E<lt>pidE<gt>/status> file."
4537 msgstr ""
4538
4539 #. type: Plain text
4540 #: build/C/man7/cpuset.7:880
4541 msgid ""
4542 "This format displays each 32-bit word in hexadecimal (using ASCII characters "
4543 "\"0\" - \"9\" and \"a\" - \"f\"); words are filled with leading zeros, if "
4544 "required.  For masks longer than one word, a comma separator is used between "
4545 "words.  Words are displayed in big-endian order, which has the most "
4546 "significant bit first.  The hex digits within a word are also in big-endian "
4547 "order."
4548 msgstr ""
4549
4550 #. type: Plain text
4551 #: build/C/man7/cpuset.7:883
4552 msgid ""
4553 "The number of 32-bit words displayed is the minimum number needed to display "
4554 "all bits of the bit mask, based on the size of the bit mask."
4555 msgstr ""
4556
4557 #. type: Plain text
4558 #: build/C/man7/cpuset.7:885
4559 msgid "Examples of the B<Mask Format>:"
4560 msgstr ""
4561
4562 #. type: Plain text
4563 #: build/C/man7/cpuset.7:893
4564 #, no-wrap
4565 msgid ""
4566 "00000001                        # just bit 0 set\n"
4567 "40000000,00000000,00000000      # just bit 94 set\n"
4568 "00000001,00000000,00000000      # just bit 64 set\n"
4569 "000000ff,00000000               # bits 32-39 set\n"
4570 "00000000,000E3862               # 1,5,6,11-13,17-19 set\n"
4571 msgstr ""
4572 "00000001                        # just bit 0 set\n"
4573 "40000000,00000000,00000000      # just bit 94 set\n"
4574 "00000001,00000000,00000000      # just bit 64 set\n"
4575 "000000ff,00000000               # bits 32-39 set\n"
4576 "00000000,000E3862               # 1,5,6,11-13,17-19 set\n"
4577
4578 #. type: Plain text
4579 #: build/C/man7/cpuset.7:897
4580 msgid "A mask with bits 0, 1, 2, 4, 8, 16, 32, and 64 set displays as:"
4581 msgstr ""
4582
4583 #. type: Plain text
4584 #: build/C/man7/cpuset.7:901
4585 #, no-wrap
4586 msgid "00000001,00000001,00010117\n"
4587 msgstr "00000001,00000001,00010117\n"
4588
4589 #.  ================== List Format ==================
4590 #. type: Plain text
4591 #: build/C/man7/cpuset.7:908
4592 msgid ""
4593 "The first \"1\" is for bit 64, the second for bit 32, the third for bit 16, "
4594 "the fourth for bit 8, the fifth for bit 4, and the \"7\" is for bits 2, 1, "
4595 "and 0."
4596 msgstr ""
4597
4598 #. type: SS
4599 #: build/C/man7/cpuset.7:908
4600 #, no-wrap
4601 msgid "List format"
4602 msgstr ""
4603
4604 #. type: Plain text
4605 #: build/C/man7/cpuset.7:915
4606 msgid ""
4607 "The B<List Format> for I<cpus> and I<mems> is a comma-separated list of CPU "
4608 "or memory-node numbers and ranges of numbers, in ASCII decimal."
4609 msgstr ""
4610
4611 #. type: Plain text
4612 #: build/C/man7/cpuset.7:917
4613 msgid "Examples of the B<List Format>:"
4614 msgstr ""
4615
4616 #. type: Plain text
4617 #: build/C/man7/cpuset.7:922
4618 #, no-wrap
4619 msgid ""
4620 "0-4,9           # bits 0, 1, 2, 3, 4, and 9 set\n"
4621 "0-2,7,12-14     # bits 0, 1, 2, 7, 12, 13, and 14 set\n"
4622 msgstr ""
4623 "0-4,9           # bits 0, 1, 2, 3, 4, and 9 set\n"
4624 "0-2,7,12-14     # bits 0, 1, 2, 7, 12, 13, and 14 set\n"
4625
4626 #.  ================== RULES ==================
4627 #. type: SH
4628 #: build/C/man7/cpuset.7:925
4629 #, no-wrap
4630 msgid "RULES"
4631 msgstr ""
4632
4633 #. type: Plain text
4634 #: build/C/man7/cpuset.7:927
4635 msgid "The following rules apply to each cpuset:"
4636 msgstr ""
4637
4638 #. type: Plain text
4639 #: build/C/man7/cpuset.7:930
4640 msgid ""
4641 "Its CPUs and memory nodes must be a (possibly equal)  subset of its parent's."
4642 msgstr ""
4643
4644 #. type: Plain text
4645 #: build/C/man7/cpuset.7:934
4646 msgid "It can be marked I<cpu_exclusive> only if its parent is."
4647 msgstr ""
4648
4649 #. type: Plain text
4650 #: build/C/man7/cpuset.7:938
4651 msgid "It can be marked I<mem_exclusive> only if its parent is."
4652 msgstr ""
4653
4654 #. type: Plain text
4655 #: build/C/man7/cpuset.7:942
4656 msgid "If it is I<cpu_exclusive>, its CPUs may not overlap any sibling."
4657 msgstr ""
4658
4659 #.  ================== PERMISSIONS ==================
4660 #. type: Plain text
4661 #: build/C/man7/cpuset.7:947
4662 msgid ""
4663 "If it is I<memory_exclusive>, its memory nodes may not overlap any sibling."
4664 msgstr ""
4665
4666 #. type: SH
4667 #: build/C/man7/cpuset.7:947
4668 #, no-wrap
4669 msgid "PERMISSIONS"
4670 msgstr ""
4671
4672 #. type: Plain text
4673 #: build/C/man7/cpuset.7:952
4674 msgid ""
4675 "The permissions of a cpuset are determined by the permissions of the "
4676 "directories and pseudo-files in the cpuset file system, normally mounted at "
4677 "I</dev/cpuset>."
4678 msgstr ""
4679
4680 #. type: Plain text
4681 #: build/C/man7/cpuset.7:961
4682 msgid ""
4683 "For instance, a process can put itself in some other cpuset (than its "
4684 "current one) if it can write the I<tasks> file for that cpuset.  This "
4685 "requires execute permission on the encompassing directories and write "
4686 "permission on the I<tasks> file."
4687 msgstr ""
4688
4689 #. type: Plain text
4690 #: build/C/man7/cpuset.7:968
4691 msgid ""
4692 "An additional constraint is applied to requests to place some other process "
4693 "in a cpuset.  One process may not attach another to a cpuset unless it would "
4694 "have permission to send that process a signal (see B<kill>(2))."
4695 msgstr ""
4696
4697 #. type: Plain text
4698 #: build/C/man7/cpuset.7:979
4699 msgid ""
4700 "A process may create a child cpuset if it can access and write the parent "
4701 "cpuset directory.  It can modify the CPUs or memory nodes in a cpuset if it "
4702 "can access that cpuset's directory (execute permissions on the each of the "
4703 "parent directories) and write the corresponding I<cpus> or I<mems> file."
4704 msgstr ""
4705
4706 #. type: Plain text
4707 #: build/C/man7/cpuset.7:1000
4708 msgid ""
4709 "There is one minor difference between the manner in which these permissions "
4710 "are evaluated and the manner in which normal file-system operation "
4711 "permissions are evaluated.  The kernel interprets relative pathnames "
4712 "starting at a process's current working directory.  Even if one is operating "
4713 "on a cpuset file, relative pathnames are interpreted relative to the "
4714 "process's current working directory, not relative to the process's current "
4715 "cpuset.  The only ways that cpuset paths relative to a process's current "
4716 "cpuset can be used are if either the process's current working directory is "
4717 "its cpuset (it first did a B<cd> or B<chdir>(2)  to its cpuset directory "
4718 "beneath I</dev/cpuset>, which is a bit unusual)  or if some user code "
4719 "converts the relative cpuset path to a full file-system path."
4720 msgstr ""
4721
4722 #.  ================== WARNINGS ==================
4723 #. type: Plain text
4724 #: build/C/man7/cpuset.7:1015
4725 msgid ""
4726 "In theory, this means that user code should specify cpusets using absolute "
4727 "pathnames, which requires knowing the mount point of the cpuset file system "
4728 "(usually, but not necessarily, I</dev/cpuset>).  In practice, all user level "
4729 "code that this author is aware of simply assumes that if the cpuset file "
4730 "system is mounted, then it is mounted at I</dev/cpuset>.  Furthermore, it is "
4731 "common practice for carefully written user code to verify the presence of "
4732 "the pseudo-file I</dev/cpuset/tasks> in order to verify that the cpuset "
4733 "pseudo-file system is currently mounted."
4734 msgstr ""
4735
4736 #. type: SH
4737 #: build/C/man7/cpuset.7:1015
4738 #, no-wrap
4739 msgid "WARNINGS"
4740 msgstr ""
4741
4742 #. type: SS
4743 #: build/C/man7/cpuset.7:1016
4744 #, no-wrap
4745 msgid "Enabling memory_pressure"
4746 msgstr ""
4747
4748 #. type: Plain text
4749 #: build/C/man7/cpuset.7:1025
4750 msgid ""
4751 "By default, the per-cpuset file I<cpuset.memory_pressure> always contains "
4752 "zero (0).  Unless this feature is enabled by writing \"1\" to the pseudo-"
4753 "file I</dev/cpuset/cpuset.memory_pressure_enabled>, the kernel does not "
4754 "compute per-cpuset I<memory_pressure>."
4755 msgstr ""
4756
4757 #. type: SS
4758 #: build/C/man7/cpuset.7:1025
4759 #, no-wrap
4760 msgid "Using the echo command"
4761 msgstr ""
4762
4763 #.  Gack!  csh(1)'s echo does this
4764 #. type: Plain text
4765 #: build/C/man7/cpuset.7:1036
4766 msgid ""
4767 "When using the B<echo> command at the shell prompt to change the values of "
4768 "cpuset files, beware that the built-in B<echo> command in some shells does "
4769 "not display an error message if the B<write>(2)  system call fails.  For "
4770 "example, if the command:"
4771 msgstr ""
4772
4773 #. type: Plain text
4774 #: build/C/man7/cpuset.7:1040
4775 #, no-wrap
4776 msgid "echo 19 E<gt> cpuset.mems\n"
4777 msgstr "echo 19 E<gt> cpuset.mems\n"
4778
4779 #. type: Plain text
4780 #: build/C/man7/cpuset.7:1053
4781 msgid ""
4782 "failed because memory node 19 was not allowed (perhaps the current system "
4783 "does not have a memory node 19), then the B<echo> command might not display "
4784 "any error.  It is better to use the B</bin/echo> external command to change "
4785 "cpuset file settings, as this command will display B<write>(2)  errors, as "
4786 "in the example:"
4787 msgstr ""
4788
4789 #. type: Plain text
4790 #: build/C/man7/cpuset.7:1058
4791 #, no-wrap
4792 msgid ""
4793 "/bin/echo 19 E<gt> cpuset.mems\n"
4794 "/bin/echo: write error: Invalid argument\n"
4795 msgstr ""
4796 "/bin/echo 19 E<gt> cpuset.mems\n"
4797 "/bin/echo: write error: Invalid argument\n"
4798
4799 #.  ================== EXCEPTIONS ==================
4800 #. type: SH
4801 #: build/C/man7/cpuset.7:1061
4802 #, no-wrap
4803 msgid "EXCEPTIONS"
4804 msgstr ""
4805
4806 #. type: SS
4807 #: build/C/man7/cpuset.7:1062
4808 #, no-wrap
4809 msgid "Memory placement"
4810 msgstr ""
4811
4812 #. type: Plain text
4813 #: build/C/man7/cpuset.7:1065
4814 msgid ""
4815 "Not all allocations of system memory are constrained by cpusets, for the "
4816 "following reasons."
4817 msgstr ""
4818
4819 #. type: Plain text
4820 #: build/C/man7/cpuset.7:1080
4821 msgid ""
4822 "If hot-plug functionality is used to remove all the CPUs that are currently "
4823 "assigned to a cpuset, then the kernel will automatically update the "
4824 "I<cpus_allowed> of all processes attached to CPUs in that cpuset to allow "
4825 "all CPUs.  When memory hot-plug functionality for removing memory nodes is "
4826 "available, a similar exception is expected to apply there as well.  In "
4827 "general, the kernel prefers to violate cpuset placement, rather than "
4828 "starving a process that has had all its allowed CPUs or memory nodes taken "
4829 "offline.  User code should reconfigure cpusets to refer only to online CPUs "
4830 "and memory nodes when using hot-plug to add or remove such resources."
4831 msgstr ""
4832
4833 #. type: Plain text
4834 #: build/C/man7/cpuset.7:1088
4835 msgid ""
4836 "A few kernel-critical, internal memory-allocation requests, marked "
4837 "GFP_ATOMIC, must be satisfied immediately.  The kernel may drop some request "
4838 "or malfunction if one of these allocations fail.  If such a request cannot "
4839 "be satisfied within the current process's cpuset, then we relax the cpuset, "
4840 "and look for memory anywhere we can find it.  It's better to violate the "
4841 "cpuset than stress the kernel."
4842 msgstr ""
4843
4844 #. type: Plain text
4845 #: build/C/man7/cpuset.7:1092
4846 msgid ""
4847 "Allocations of memory requested by kernel drivers while processing an "
4848 "interrupt lack any relevant process context, and are not confined by cpusets."
4849 msgstr ""
4850
4851 #. type: SS
4852 #: build/C/man7/cpuset.7:1092
4853 #, no-wrap
4854 msgid "Renaming cpusets"
4855 msgstr ""
4856
4857 #.  ================== ERRORS ==================
4858 #. type: Plain text
4859 #: build/C/man7/cpuset.7:1100
4860 msgid ""
4861 "You can use the B<rename>(2)  system call to rename cpusets.  Only simple "
4862 "renaming is supported; that is, changing the name of a cpuset directory is "
4863 "permitted, but moving a directory into a different directory is not "
4864 "permitted."
4865 msgstr ""
4866
4867 #. type: Plain text
4868 #: build/C/man7/cpuset.7:1104
4869 msgid ""
4870 "The Linux kernel implementation of cpusets sets I<errno> to specify the "
4871 "reason for a failed system call affecting cpusets."
4872 msgstr ""
4873
4874 #. type: Plain text
4875 #: build/C/man7/cpuset.7:1109
4876 msgid ""
4877 "The possible I<errno> settings and their meaning when set on a failed cpuset "
4878 "call are as listed below."
4879 msgstr ""
4880
4881 #. type: TP
4882 #: build/C/man7/cpuset.7:1109
4883 #, no-wrap
4884 msgid "B<E2BIG>"
4885 msgstr "B<E2BIG>"
4886
4887 #. type: Plain text
4888 #: build/C/man7/cpuset.7:1116
4889 msgid ""
4890 "Attempted a B<write>(2)  on a special cpuset file with a length larger than "
4891 "some kernel-determined upper limit on the length of such writes."
4892 msgstr ""
4893
4894 #. type: Plain text
4895 #: build/C/man7/cpuset.7:1123
4896 msgid ""
4897 "Attempted to B<write>(2)  the process ID (PID) of a process to a cpuset "
4898 "I<tasks> file when one lacks permission to move that process."
4899 msgstr ""
4900
4901 #. type: Plain text
4902 #: build/C/man7/cpuset.7:1129
4903 msgid ""
4904 "Attempted to add, using B<write>(2), a CPU or memory node to a cpuset, when "
4905 "that CPU or memory node was not already in its parent."
4906 msgstr ""
4907
4908 #. type: Plain text
4909 #: build/C/man7/cpuset.7:1137
4910 msgid ""
4911 "Attempted to set, using B<write>(2), I<cpuset.cpu_exclusive> or I<cpuset."
4912 "mem_exclusive> on a cpuset whose parent lacks the same setting."
4913 msgstr ""
4914
4915 #. type: Plain text
4916 #: build/C/man7/cpuset.7:1144
4917 msgid "Attempted to B<write>(2)  a I<cpuset.memory_pressure> file."
4918 msgstr ""
4919
4920 #. type: Plain text
4921 #: build/C/man7/cpuset.7:1147
4922 msgid "Attempted to create a file in a cpuset directory."
4923 msgstr ""
4924
4925 #. type: TP
4926 #: build/C/man7/cpuset.7:1147 build/C/man7/cpuset.7:1152
4927 #: build/C/man7/cpuset.7:1157
4928 #, no-wrap
4929 msgid "B<EBUSY>"
4930 msgstr "B<EBUSY>"
4931
4932 #. type: Plain text
4933 #: build/C/man7/cpuset.7:1152
4934 msgid ""
4935 "Attempted to remove, using B<rmdir>(2), a cpuset with attached processes."
4936 msgstr ""
4937
4938 #. type: Plain text
4939 #: build/C/man7/cpuset.7:1157
4940 msgid "Attempted to remove, using B<rmdir>(2), a cpuset with child cpusets."
4941 msgstr ""
4942
4943 #. type: Plain text
4944 #: build/C/man7/cpuset.7:1162
4945 msgid ""
4946 "Attempted to remove a CPU or memory node from a cpuset that is also in a "
4947 "child of that cpuset."
4948 msgstr ""
4949
4950 #. type: TP
4951 #: build/C/man7/cpuset.7:1162 build/C/man7/cpuset.7:1167
4952 #, no-wrap
4953 msgid "B<EEXIST>"
4954 msgstr "B<EEXIST>"
4955
4956 #. type: Plain text
4957 #: build/C/man7/cpuset.7:1167
4958 msgid "Attempted to create, using B<mkdir>(2), a cpuset that already exists."
4959 msgstr ""
4960
4961 #. type: Plain text
4962 #: build/C/man7/cpuset.7:1172
4963 msgid "Attempted to B<rename>(2)  a cpuset to a name that already exists."
4964 msgstr ""
4965
4966 #. type: Plain text
4967 #: build/C/man7/cpuset.7:1180
4968 msgid ""
4969 "Attempted to B<read>(2)  or B<write>(2)  a cpuset file using a buffer that "
4970 "is outside the writing processes accessible address space."
4971 msgstr ""
4972
4973 #. type: Plain text
4974 #: build/C/man7/cpuset.7:1189
4975 msgid ""
4976 "Attempted to change a cpuset, using B<write>(2), in a way that would violate "
4977 "a I<cpu_exclusive> or I<mem_exclusive> attribute of that cpuset or any of "
4978 "its siblings."
4979 msgstr ""
4980
4981 #. type: Plain text
4982 #: build/C/man7/cpuset.7:1198
4983 msgid ""
4984 "Attempted to B<write>(2)  an empty I<cpuset.cpus> or I<cpuset.mems> list to "
4985 "a cpuset which has attached processes or child cpusets."
4986 msgstr ""
4987
4988 #. type: Plain text
4989 #: build/C/man7/cpuset.7:1208
4990 msgid ""
4991 "Attempted to B<write>(2)  a I<cpuset.cpus> or I<cpuset.mems> list which "
4992 "included a range with the second number smaller than the first number."
4993 msgstr ""
4994
4995 #. type: Plain text
4996 #: build/C/man7/cpuset.7:1217
4997 msgid ""
4998 "Attempted to B<write>(2)  a I<cpuset.cpus> or I<cpuset.mems> list which "
4999 "included an invalid character in the string."
5000 msgstr ""
5001
5002 #. type: Plain text
5003 #: build/C/man7/cpuset.7:1224
5004 msgid ""
5005 "Attempted to B<write>(2)  a list to a I<cpuset.cpus> file that did not "
5006 "include any online CPUs."
5007 msgstr ""
5008
5009 #. type: Plain text
5010 #: build/C/man7/cpuset.7:1231
5011 msgid ""
5012 "Attempted to B<write>(2)  a list to a I<cpuset.mems> file that did not "
5013 "include any online memory nodes."
5014 msgstr ""
5015
5016 #. type: Plain text
5017 #: build/C/man7/cpuset.7:1238
5018 msgid ""
5019 "Attempted to B<write>(2)  a list to a I<cpuset.mems> file that included a "
5020 "node that held no memory."
5021 msgstr ""
5022
5023 #. type: Plain text
5024 #: build/C/man7/cpuset.7:1246
5025 msgid ""
5026 "Attempted to B<write>(2)  a string to a cpuset I<tasks> file that does not "
5027 "begin with an ASCII decimal integer."
5028 msgstr ""
5029
5030 #. type: Plain text
5031 #: build/C/man7/cpuset.7:1251
5032 msgid "Attempted to B<rename>(2)  a cpuset into a different directory."
5033 msgstr ""
5034
5035 #. type: Plain text
5036 #: build/C/man7/cpuset.7:1258
5037 msgid ""
5038 "Attempted to B<read>(2)  a I</proc/E<lt>pidE<gt>/cpuset> file for a cpuset "
5039 "path that is longer than the kernel page size."
5040 msgstr ""
5041
5042 #. type: Plain text
5043 #: build/C/man7/cpuset.7:1263
5044 msgid ""
5045 "Attempted to create, using B<mkdir>(2), a cpuset whose base directory name "
5046 "is longer than 255 characters."
5047 msgstr ""
5048
5049 #. type: Plain text
5050 #: build/C/man7/cpuset.7:1270
5051 msgid ""
5052 "Attempted to create, using B<mkdir>(2), a cpuset whose full pathname, "
5053 "including the mount point (typically \"/dev/cpuset/\") prefix, is longer "
5054 "than 4095 characters."
5055 msgstr ""
5056
5057 #. type: TP
5058 #: build/C/man7/cpuset.7:1270
5059 #, no-wrap
5060 msgid "B<ENODEV>"
5061 msgstr "B<ENODEV>"
5062
5063 #. type: Plain text
5064 #: build/C/man7/cpuset.7:1275
5065 msgid ""
5066 "The cpuset was removed by another process at the same time as a B<write>(2)  "
5067 "was attempted on one of the pseudo-files in the cpuset directory."
5068 msgstr ""
5069
5070 #. type: Plain text
5071 #: build/C/man7/cpuset.7:1280
5072 msgid ""
5073 "Attempted to create, using B<mkdir>(2), a cpuset in a parent cpuset that "
5074 "doesn't exist."
5075 msgstr ""
5076
5077 #. type: Plain text
5078 #: build/C/man7/cpuset.7:1287
5079 msgid ""
5080 "Attempted to B<access>(2)  or B<open>(2)  a nonexistent file in a cpuset "
5081 "directory."
5082 msgstr ""
5083
5084 #. type: Plain text
5085 #: build/C/man7/cpuset.7:1292
5086 msgid ""
5087 "Insufficient memory is available within the kernel; can occur on a variety "
5088 "of system calls affecting cpusets, but only if the system is extremely short "
5089 "of memory."
5090 msgstr ""
5091
5092 #. type: TP
5093 #: build/C/man7/cpuset.7:1292 build/C/man7/cpuset.7:1304
5094 #, no-wrap
5095 msgid "B<ENOSPC>"
5096 msgstr "B<ENOSPC>"
5097
5098 #. type: Plain text
5099 #: build/C/man7/cpuset.7:1304
5100 msgid ""
5101 "Attempted to B<write>(2)  the process ID (PID)  of a process to a cpuset "
5102 "I<tasks> file when the cpuset had an empty I<cpuset.cpus> or empty I<cpuset."
5103 "mems> setting."
5104 msgstr ""
5105
5106 #. type: Plain text
5107 #: build/C/man7/cpuset.7:1314
5108 msgid ""
5109 "Attempted to B<write>(2)  an empty I<cpuset.cpus> or I<cpuset.mems> setting "
5110 "to a cpuset that has tasks attached."
5111 msgstr ""
5112
5113 #. type: Plain text
5114 #: build/C/man7/cpuset.7:1319
5115 msgid "Attempted to B<rename>(2)  a nonexistent cpuset."
5116 msgstr ""
5117
5118 #. type: Plain text
5119 #: build/C/man7/cpuset.7:1322
5120 msgid "Attempted to remove a file from a cpuset directory."
5121 msgstr ""
5122
5123 #. type: TP
5124 #: build/C/man7/cpuset.7:1322
5125 #, no-wrap
5126 msgid "B<ERANGE>"
5127 msgstr "B<ERANGE>"
5128
5129 #. type: Plain text
5130 #: build/C/man7/cpuset.7:1330
5131 msgid ""
5132 "Specified a I<cpuset.cpus> or I<cpuset.mems> list to the kernel which "
5133 "included a number too large for the kernel to set in its bit masks."
5134 msgstr ""
5135
5136 #.  ================== VERSIONS ==================
5137 #. type: Plain text
5138 #: build/C/man7/cpuset.7:1338
5139 msgid ""
5140 "Attempted to B<write>(2)  the process ID (PID) of a nonexistent process to a "
5141 "cpuset I<tasks> file."
5142 msgstr ""
5143
5144 #.  ================== NOTES ==================
5145 #. type: Plain text
5146 #: build/C/man7/cpuset.7:1341
5147 msgid "Cpusets appeared in version 2.6.12 of the Linux kernel."
5148 msgstr ""
5149
5150 #.  ================== BUGS ==================
5151 #. type: Plain text
5152 #: build/C/man7/cpuset.7:1352
5153 msgid ""
5154 "Despite its name, the I<pid> parameter is actually a thread ID, and each "
5155 "thread in a threaded group can be attached to a different cpuset.  The value "
5156 "returned from a call to B<gettid>(2)  can be passed in the argument I<pid>."
5157 msgstr ""
5158
5159 #. type: SH
5160 #: build/C/man7/cpuset.7:1352 build/C/man2/getpriority.2:225
5161 #: build/C/man2/getrlimit.2:525 build/C/man2/ioprio_set.2:337
5162 #: build/C/man2/setfsgid.2:104 build/C/man2/setfsuid.2:104
5163 #, no-wrap
5164 msgid "BUGS"
5165 msgstr "バグ"
5166
5167 #.  ================== EXAMPLE ==================
5168 #. type: Plain text
5169 #: build/C/man7/cpuset.7:1365
5170 msgid ""
5171 "I<cpuset.memory_pressure> cpuset files can be opened for writing, creation, "
5172 "or truncation, but then the B<write>(2)  fails with I<errno> set to "
5173 "B<EACCES>, and the creation and truncation options on B<open>(2)  have no "
5174 "effect."
5175 msgstr ""
5176
5177 #. type: SH
5178 #: build/C/man7/cpuset.7:1365 build/C/man2/getrlimit.2:600
5179 #, no-wrap
5180 msgid "EXAMPLE"
5181 msgstr "例"
5182
5183 #. type: Plain text
5184 #: build/C/man7/cpuset.7:1368
5185 msgid ""
5186 "The following examples demonstrate querying and setting cpuset options using "
5187 "shell commands."
5188 msgstr ""
5189
5190 #. type: SS
5191 #: build/C/man7/cpuset.7:1368
5192 #, no-wrap
5193 msgid "Creating and attaching to a cpuset."
5194 msgstr ""
5195
5196 #. type: Plain text
5197 #: build/C/man7/cpuset.7:1371
5198 msgid ""
5199 "To create a new cpuset and attach the current command shell to it, the steps "
5200 "are:"
5201 msgstr ""
5202
5203 #. type: IP
5204 #: build/C/man7/cpuset.7:1373 build/C/man7/cpuset.7:1412
5205 #, no-wrap
5206 msgid "1)"
5207 msgstr "1)"
5208
5209 #. type: Plain text
5210 #: build/C/man7/cpuset.7:1375
5211 msgid "mkdir /dev/cpuset (if not already done)"
5212 msgstr ""
5213
5214 #. type: IP
5215 #: build/C/man7/cpuset.7:1375 build/C/man7/cpuset.7:1418
5216 #, no-wrap
5217 msgid "2)"
5218 msgstr "2)"
5219
5220 #. type: Plain text
5221 #: build/C/man7/cpuset.7:1377
5222 msgid "mount -t cpuset none /dev/cpuset (if not already done)"
5223 msgstr ""
5224
5225 #. type: IP
5226 #: build/C/man7/cpuset.7:1377 build/C/man7/cpuset.7:1421
5227 #, no-wrap
5228 msgid "3)"
5229 msgstr "3)"
5230
5231 #. type: Plain text
5232 #: build/C/man7/cpuset.7:1380
5233 msgid "Create the new cpuset using B<mkdir>(1)."
5234 msgstr ""
5235
5236 #. type: IP
5237 #: build/C/man7/cpuset.7:1380 build/C/man7/cpuset.7:1424
5238 #, no-wrap
5239 msgid "4)"
5240 msgstr "4)"
5241
5242 #. type: Plain text
5243 #: build/C/man7/cpuset.7:1382
5244 msgid "Assign CPUs and memory nodes to the new cpuset."
5245 msgstr ""
5246
5247 #. type: IP
5248 #: build/C/man7/cpuset.7:1382 build/C/man7/cpuset.7:1429
5249 #, no-wrap
5250 msgid "5)"
5251 msgstr "5)"
5252
5253 #. type: Plain text
5254 #: build/C/man7/cpuset.7:1384
5255 msgid "Attach the shell to the new cpuset."
5256 msgstr ""
5257
5258 #. type: Plain text
5259 #: build/C/man7/cpuset.7:1389
5260 msgid ""
5261 "For example, the following sequence of commands will set up a cpuset named "
5262 "\"Charlie\", containing just CPUs 2 and 3, and memory node 1, and then "
5263 "attach the current shell to that cpuset."
5264 msgstr ""
5265
5266 #. type: Plain text
5267 #: build/C/man7/cpuset.7:1403
5268 #, no-wrap
5269 msgid ""
5270 "$B< mkdir /dev/cpuset>\n"
5271 "$B< mount -t cpuset cpuset /dev/cpuset>\n"
5272 "$B< cd /dev/cpuset>\n"
5273 "$B< mkdir Charlie>\n"
5274 "$B< cd Charlie>\n"
5275 "$B< /bin/echo 2-3 E<gt> cpuset.cpus>\n"
5276 "$B< /bin/echo 1 E<gt> cpuset.mems>\n"
5277 "$B< /bin/echo $$ E<gt> tasks>\n"
5278 "# The current shell is now running in cpuset Charlie\n"
5279 "# The next line should display '/Charlie'\n"
5280 "$B< cat /proc/self/cpuset>\n"
5281 msgstr ""
5282 "$B< mkdir /dev/cpuset>\n"
5283 "$B< mount -t cpuset cpuset /dev/cpuset>\n"
5284 "$B< cd /dev/cpuset>\n"
5285 "$B< mkdir Charlie>\n"
5286 "$B< cd Charlie>\n"
5287 "$B< /bin/echo 2-3 E<gt> cpuset.cpus>\n"
5288 "$B< /bin/echo 1 E<gt> cpuset.mems>\n"
5289 "$B< /bin/echo $$ E<gt> tasks>\n"
5290 "# The current shell is now running in cpuset Charlie\n"
5291 "# The next line should display '/Charlie'\n"
5292 "$B< cat /proc/self/cpuset>\n"
5293
5294 #. type: SS
5295 #: build/C/man7/cpuset.7:1405
5296 #, no-wrap
5297 msgid "Migrating a job to different memory nodes."
5298 msgstr ""
5299
5300 #. type: Plain text
5301 #: build/C/man7/cpuset.7:1410
5302 msgid ""
5303 "To migrate a job (the set of processes attached to a cpuset)  to different "
5304 "CPUs and memory nodes in the system, including moving the memory pages "
5305 "currently allocated to that job, perform the following steps."
5306 msgstr ""
5307
5308 #. type: Plain text
5309 #: build/C/man7/cpuset.7:1418
5310 msgid ""
5311 "Let's say we want to move the job in cpuset I<alpha> (CPUs 4-7 and memory "
5312 "nodes 2-3) to a new cpuset I<beta> (CPUs 16-19 and memory nodes 8-9)."
5313 msgstr ""
5314
5315 #. type: Plain text
5316 #: build/C/man7/cpuset.7:1421
5317 msgid "First create the new cpuset I<beta>."
5318 msgstr ""
5319
5320 #. type: Plain text
5321 #: build/C/man7/cpuset.7:1424
5322 msgid "Then allow CPUs 16-19 and memory nodes 8-9 in I<beta>."
5323 msgstr ""
5324
5325 #. type: Plain text
5326 #: build/C/man7/cpuset.7:1429
5327 msgid "Then enable I<memory_migration> in I<beta>."
5328 msgstr ""
5329
5330 #. type: Plain text
5331 #: build/C/man7/cpuset.7:1434
5332 msgid "Then move each process from I<alpha> to I<beta>."
5333 msgstr ""
5334
5335 #. type: Plain text
5336 #: build/C/man7/cpuset.7:1437
5337 msgid "The following sequence of commands accomplishes this."
5338 msgstr ""
5339
5340 #. type: Plain text
5341 #: build/C/man7/cpuset.7:1447
5342 #, no-wrap
5343 msgid ""
5344 "$B< cd /dev/cpuset>\n"
5345 "$B< mkdir beta>\n"
5346 "$B< cd beta>\n"
5347 "$B< /bin/echo 16-19 E<gt> cpuset.cpus>\n"
5348 "$B< /bin/echo 8-9 E<gt> cpuset.mems>\n"
5349 "$B< /bin/echo 1 E<gt> cpuset.memory_migrate>\n"
5350 "$B< while read i; do /bin/echo $i; done E<lt> ../alpha/tasks E<gt> tasks>\n"
5351 msgstr ""
5352 "$B< cd /dev/cpuset>\n"
5353 "$B< mkdir beta>\n"
5354 "$B< cd beta>\n"
5355 "$B< /bin/echo 16-19 E<gt> cpuset.cpus>\n"
5356 "$B< /bin/echo 8-9 E<gt> cpuset.mems>\n"
5357 "$B< /bin/echo 1 E<gt> cpuset.memory_migrate>\n"
5358 "$B< while read i; do /bin/echo $i; done E<lt> ../alpha/tasks E<gt> tasks>\n"
5359
5360 #. type: Plain text
5361 #: build/C/man7/cpuset.7:1456
5362 msgid ""
5363 "The above should move any processes in I<alpha> to I<beta>, and any memory "
5364 "held by these processes on memory nodes 2-3 to memory nodes 8-9, "
5365 "respectively."
5366 msgstr ""
5367
5368 #. type: Plain text
5369 #: build/C/man7/cpuset.7:1458
5370 msgid "Notice that the last step of the above sequence did not do:"
5371 msgstr ""
5372
5373 #. type: Plain text
5374 #: build/C/man7/cpuset.7:1462
5375 #, no-wrap
5376 msgid "$B< cp ../alpha/tasks tasks>\n"
5377 msgstr "$B< cp ../alpha/tasks tasks>\n"
5378
5379 #. type: Plain text
5380 #: build/C/man7/cpuset.7:1473
5381 msgid ""
5382 "The I<while> loop, rather than the seemingly easier use of the B<cp>(1)  "
5383 "command, was necessary because only one process PID at a time may be written "
5384 "to the I<tasks> file."
5385 msgstr ""
5386
5387 #. type: Plain text
5388 #: build/C/man7/cpuset.7:1481
5389 msgid ""
5390 "The same effect (writing one PID at a time) as the I<while> loop can be "
5391 "accomplished more efficiently, in fewer keystrokes and in syntax that works "
5392 "on any shell, but alas more obscurely, by using the B<-u> (unbuffered) "
5393 "option of B<sed>(1):"
5394 msgstr ""
5395
5396 #. type: Plain text
5397 #: build/C/man7/cpuset.7:1485
5398 #, no-wrap
5399 msgid "$B< sed -un p E<lt> ../alpha/tasks E<gt> tasks>\n"
5400 msgstr "$B< sed -un p E<lt> ../alpha/tasks E<gt> tasks>\n"
5401
5402 #. type: Plain text
5403 #: build/C/man7/cpuset.7:1502
5404 msgid ""
5405 "B<taskset>(1), B<get_mempolicy>(2), B<getcpu>(2), B<mbind>(2), "
5406 "B<sched_getaffinity>(2), B<sched_setaffinity>(2), B<sched_setscheduler>(2), "
5407 "B<set_mempolicy>(2), B<CPU_SET>(3), B<proc>(5), B<numa>(7), B<migratepages>"
5408 "(8), B<numactl>(8)"
5409 msgstr ""
5410 "B<taskset>(1), B<get_mempolicy>(2), B<getcpu>(2), B<mbind>(2), "
5411 "B<sched_getaffinity>(2), B<sched_setaffinity>(2), B<sched_setscheduler>(2), "
5412 "B<set_mempolicy>(2), B<CPU_SET>(3), B<proc>(5), B<numa>(7), B<migratepages>"
5413 "(8), B<numactl>(8)"
5414
5415 #. type: Plain text
5416 #: build/C/man7/cpuset.7:1505
5417 msgid "I<Documentation/cpusets.txt> in the Linux kernel source tree"
5418 msgstr "Linux カーネルソース内の I<Documentation/cpusets.txt>"
5419
5420 #. type: TH
5421 #: build/C/man7/credentials.7:27
5422 #, no-wrap
5423 msgid "CREDENTIALS"
5424 msgstr "CREDENTIALS"
5425
5426 #. type: TH
5427 #: build/C/man7/credentials.7:27
5428 #, no-wrap
5429 msgid "2008-06-03"
5430 msgstr "2008-06-03"
5431
5432 #. type: Plain text
5433 #: build/C/man7/credentials.7:30
5434 msgid "credentials - process identifiers"
5435 msgstr "credentials - 認証に用いられるプロセスの識別子"
5436
5437 #. type: SS
5438 #: build/C/man7/credentials.7:31
5439 #, no-wrap
5440 msgid "Process ID (PID)"
5441 msgstr "プロセスID (PID)"
5442
5443 #. type: Plain text
5444 #: build/C/man7/credentials.7:41
5445 msgid ""
5446 "Each process has a unique nonnegative integer identifier that is assigned "
5447 "when the process is created using B<fork>(2).  A process can obtain its PID "
5448 "using B<getpid>(2).  A PID is represented using the type I<pid_t> (defined "
5449 "in I<E<lt>sys/types.hE<gt>>)."
5450 msgstr ""
5451 "各プロセスは、負でない整数の一意な識別子を持つ。 この識別子は B<fork>(2)  を"
5452 "使ってプロセスが生成される際に割り当てられる。 プロセスは B<getpid>(2)  を"
5453 "使って自分の PID を取得できる。 PID は I<pid_t> 型で表現される (I<pid_t> は "
5454 "I<E<lt>sys/types.hE<gt>> で定義されている)。"
5455
5456 #.  .BR sched_rr_get_interval (2),
5457 #.  .BR sched_getaffinity (2),
5458 #.  .BR sched_setaffinity (2),
5459 #.  .BR sched_getparam (2),
5460 #.  .BR sched_setparam (2),
5461 #.  .BR sched_setscheduler (2),
5462 #.  .BR sched_getscheduler (2),
5463 #.  .BR getsid (2),
5464 #.  .BR waitid (2),
5465 #.  .BR wait4 (2),
5466 #. type: Plain text
5467 #: build/C/man7/credentials.7:62
5468 msgid ""
5469 "PIDs are used in a range of system calls to identify the process affected by "
5470 "the call, for example: B<kill>(2), B<ptrace>(2), B<setpriority>(2)  "
5471 "B<setpgid>(2), B<setsid>(2), B<sigqueue>(3), and B<waitpid>(2)."
5472 msgstr ""
5473 "PID は各種のシステムコールでそのシステムコールが作用するプロセスを 特定するた"
5474 "めに使用される。以下に例を挙げる: B<kill>(2), B<ptrace>(2), B<setpriority>"
5475 "(2), B<setpgid>(2), B<setsid>(2), B<sigqueue>(3), B<waitpid>(2)."
5476
5477 #. type: Plain text
5478 #: build/C/man7/credentials.7:65
5479 msgid "A process's PID is preserved across an B<execve>(2)."
5480 msgstr "プロセスの PID は B<execve>(2)  の前後で不変である。"
5481
5482 #. type: SS
5483 #: build/C/man7/credentials.7:65
5484 #, no-wrap
5485 msgid "Parent process ID (PPID)"
5486 msgstr "親プロセス ID (PPID)"
5487
5488 #. type: Plain text
5489 #: build/C/man7/credentials.7:73
5490 msgid ""
5491 "A process's parent process ID identifies the process that created this "
5492 "process using B<fork>(2).  A process can obtain its PPID using B<getppid>"
5493 "(2).  A PPID is represented using the type I<pid_t>."
5494 msgstr ""
5495 "プロセスの親プロセスの ID は、 B<fork>(2)  を使ってそのプロセスを生成したプロ"
5496 "セスを示す。 プロセスは B<getppid>(2)  を使って自分の PPID を取得できる。 "
5497 "PPID は I<pid_t> 型で表現される。"
5498
5499 #. type: Plain text
5500 #: build/C/man7/credentials.7:76
5501 msgid "A process's PPID is preserved across an B<execve>(2)."
5502 msgstr "プロセスの PPID は B<execve>(2)  の前後で不変である。"
5503
5504 #. type: SS
5505 #: build/C/man7/credentials.7:76
5506 #, no-wrap
5507 msgid "Process group ID and session ID"
5508 msgstr "プロセスグループ ID とセッション ID"
5509
5510 #. type: Plain text
5511 #: build/C/man7/credentials.7:84
5512 msgid ""
5513 "Each process has a session ID and a process group ID, both represented using "
5514 "the type I<pid_t>.  A process can obtain its session ID using B<getsid>(2), "
5515 "and its process group ID using B<getpgrp>(2)."
5516 msgstr ""
5517 "各プロセスはセッション ID とプロセスグループ ID を持つ。 これらの ID はどちら"
5518 "も I<pid_t> 型で表現される。 プロセスは、それぞれ B<getsid>(2), B<getpgrp>"
5519 "(2)  を使って自分のセッション ID、プロセスグループ ID を取得できる。"
5520
5521 #. type: Plain text
5522 #: build/C/man7/credentials.7:90
5523 msgid ""
5524 "A child created by B<fork>(2)  inherits its parent's session ID and process "
5525 "group ID.  A process's session ID and process group ID are preserved across "
5526 "an B<execve>(2)."
5527 msgstr ""
5528 "B<fork>(2)  で生成された子プロセスは親プロセスのセッション ID とプロセスグ"
5529 "ループ ID を継承する。プロセスのセッション ID とプロセスグループ ID は "
5530 "B<execve>(2)  の前後で不変である。"
5531
5532 #. type: Plain text
5533 #: build/C/man7/credentials.7:103
5534 msgid ""
5535 "Sessions and process groups are abstractions devised to support shell job "
5536 "control.  A process group (sometimes called a \"job\") is a collection of "
5537 "processes that share the same process group ID; the shell creates a new "
5538 "process group for the process(es) used to execute single command or pipeline "
5539 "(e.g., the two processes created to execute the command \"ls\\ |\\ wc\" are "
5540 "placed in the same process group).  A process's group membership can be set "
5541 "using B<setpgid>(2).  The process whose process ID is the same as its "
5542 "process group ID is the I<process group leader> for that group."
5543 msgstr ""
5544 "セッションとプロセスグループの概念は、シェルのジョブ制御を行うために 考案され"
5545 "たものである。 プロセスグループ (時には「ジョブ」と呼ばれることもある) は、 "
5546 "同じプロセスグループ ID を共有するプロセスの集まりである。 シェルは、一つのコ"
5547 "マンドもしくはパイプラインの実行に使われるプロセス群に 対して一つのプロセスグ"
5548 "ループを生成する (例えば、コマンド \"ls\\ |\\ wc\" を実行するために生成される"
5549 "二つのプロセスは 同じプロセスグループに置かれる)。 所属するプロセスグループ"
5550 "は B<setpgid>(2)  を使って設定できる。 自身のプロセス ID がプロセスグループ "
5551 "ID と同じプロセスは、 そのグループの「プロセスグループ・リーダー」である。"
5552
5553 #. type: Plain text
5554 #: build/C/man7/credentials.7:115
5555 msgid ""
5556 "A session is a collection of processes that share the same session ID.  All "
5557 "of the members of a process group also have the same session ID (i.e., all "
5558 "of the members of a process group always belong to the same session, so that "
5559 "sessions and process groups form a strict two-level hierarchy of "
5560 "processes.)  A new session is created when a process calls B<setsid>(2), "
5561 "which creates a new session whose session ID is the same as the PID of the "
5562 "process that called B<setsid>(2).  The creator of the session is called the "
5563 "I<session leader>."
5564 msgstr ""
5565 "セッションは、同じセッション ID を共有するプロセスの集まりである。 ある一つの"
5566 "プロセスグループの全メンバーは同じセッション ID を持つ (つまり、一つのプロセ"
5567 "スグループのメンバーは全て同じセッションに所属し、 これにより、セッションとプ"
5568 "ロセスグループで二階層のプロセス階層が形成できる)。 新たなセッションの生成は"
5569 "プロセスが B<setsid>(2)  を呼び出すことで行う。 B<setsid>(2)  は、 B<setsid>"
5570 "(2)  を呼び出したプロセスの PID と同じ値のセッション ID を持つ 新たなセッショ"
5571 "ンを生成する。 セッションの生成者は「セッション・リーダー」と呼ばれる。"
5572
5573 #. type: SS
5574 #: build/C/man7/credentials.7:115
5575 #, no-wrap
5576 msgid "User and group identifiers"
5577 msgstr "ユーザ ID とグループ ID"
5578
5579 #. type: Plain text
5580 #: build/C/man7/credentials.7:123
5581 msgid ""
5582 "Each process has various associated user and groups IDs.  These IDs are "
5583 "integers, respectively represented using the types I<uid_t> and I<gid_t> "
5584 "(defined in I<E<lt>sys/types.hE<gt>>)."
5585 msgstr ""
5586 "各プロセスは、数種類のユーザ ID とグループ ID を持つ。 ユーザ ID、グループ "
5587 "ID は整数で、それぞれ I<uid_t>, I<gid_t> 型で表現される (これらは I<E<lt>sys/"
5588 "types.hE<gt>> で定義されている)。"
5589
5590 #. type: Plain text
5591 #: build/C/man7/credentials.7:125
5592 msgid "On Linux, each process has the following user and group identifiers:"
5593 msgstr ""
5594 "Linux では、各プロセスは以下のような種類のユーザ ID とグループ ID を持つ。"
5595
5596 #. type: Plain text
5597 #: build/C/man7/credentials.7:131
5598 msgid ""
5599 "Real user ID and real group ID.  These IDs determine who owns the process.  "
5600 "A process can obtain its real user (group) ID using B<getuid>(2)  (B<getgid>"
5601 "(2))."
5602 msgstr ""
5603 "実ユーザ ID と実グループ ID。 これらの ID によりプロセスの所有者が決定され"
5604 "る。 プロセスが自分の実ユーザ ID、実グループ ID を取得するには、それぞれ "
5605 "B<getuid>(2), B<getgid>(2)  を使用する。"
5606
5607 #. type: Plain text
5608 #: build/C/man7/credentials.7:143
5609 msgid ""
5610 "Effective user ID and effective group ID.  These IDs are used by the kernel "
5611 "to determine the permissions that the process will have when accessing "
5612 "shared resources such as message queues, shared memory, and semaphores.  On "
5613 "most UNIX systems, these IDs also determine the permissions when accessing "
5614 "files.  However, Linux uses the file system IDs described below for this "
5615 "task.  A process can obtain its effective user (group) ID using B<geteuid>"
5616 "(2)  (B<getegid>(2))."
5617 msgstr ""
5618 "実効ユーザ ID と実効グループ ID。 これらの ID は、メッセージキュー、共有メモ"
5619 "リ、セマフォなどの 共有リソースにアクセスしようとした際にそのプロセスがアクセ"
5620 "ス許可を 持っているかをカーネルが判定するのに使用される。 ほとんどの UNIX シ"
5621 "ステムでは、これらの ID はファイルへのアクセス時の アクセス許可の判定にも使用"
5622 "される。 しかしながら、Linux ではファイルへのアクセス許可の判定には 後述の"
5623 "ファイルシステム ID が使用される。 プロセスが自分の実効ユーザ ID、実効グルー"
5624 "プ ID を取得するには、それぞれ B<geteuid>(2), B<getegid>(2)  を使用する。"
5625
5626 #. type: Plain text
5627 #: build/C/man7/credentials.7:165
5628 msgid ""
5629 "Saved set-user-ID and saved set-group-ID.  These IDs are used in set-user-ID "
5630 "and set-group-ID programs to save a copy of the corresponding effective IDs "
5631 "that were set when the program was executed (see B<execve>(2)).  A set-user-"
5632 "ID program can assume and drop privileges by switching its effective user ID "
5633 "back and forth between the values in its real user ID and saved set-user-"
5634 "ID.  This switching is done via calls to B<seteuid>(2), B<setreuid>(2), or "
5635 "B<setresuid>(2).  A set-group-ID program performs the analogous tasks using "
5636 "B<setegid>(2), B<setregid>(2), or B<setresgid>(2).  A process can obtain its "
5637 "saved set-user-ID (set-group-ID) using B<getresuid>(2)  (B<getresgid>(2))."
5638 msgstr ""
5639 "保存 (saved) set-user-ID と保存 set-group-ID。 これらの ID は、set-user-ID "
5640 "や set-group-ID されたプログラムにおいて、 プログラムの実行時に設定された実"
5641 "効 ID のコピーを保存するために 使用される (B<execve>(2)  参照)。 set-user-ID "
5642 "プログラムは、実効ユーザ ID を実ユーザID と保存 set-user-ID の間で行ったり来"
5643 "たり切り替えることで、特権を得たり落としたりできる。 この切り替えは "
5644 "B<seteuid>(2), B<setreuid>(2), B<setresuid>(2)  を呼び出すことで実行できる。 "
5645 "set-group-ID プログラムは、 B<setegid>(2), B<setregid>(2), B<setresgid>(2)  "
5646 "を使って同様のことができる。 プロセスが自分の保存 set-user-ID、保存 set-"
5647 "group-ID を取得するには、 B<getresuid(2),> B<getresgids>(2)  をそれぞれ使用す"
5648 "る。"
5649
5650 #. type: Plain text
5651 #: build/C/man7/credentials.7:182
5652 msgid ""
5653 "File system user ID and file system group ID (Linux-specific).  These IDs, "
5654 "in conjunction with the supplementary group IDs described below, are used to "
5655 "determine permissions for accessing files; see B<path_resolution>(7)  for "
5656 "details.  Whenever a process's effective user (group) ID is changed, the "
5657 "kernel also automatically changes the file system user (group) ID to the "
5658 "same value.  Consequently, the file system IDs normally have the same values "
5659 "as the corresponding effective ID, and the semantics for file-permission "
5660 "checks are thus the same on Linux as on other UNIX systems.  The file system "
5661 "IDs can be made to differ from the effective IDs by calling B<setfsuid>(2)  "
5662 "and B<setfsgid>(2)."
5663 msgstr ""
5664 "ファイルシステム・ユーザ ID とファイルシステム・グループ ID (Linux 固有)。 こ"
5665 "れらの ID は、後述の補助グループ ID と組み合わせて使用され、 ファイルへのアク"
5666 "セス権の決定に利用される。詳細は B<path_resolution>(7)  を参照。 プロセスの実"
5667 "効 ID (ユーザ ID や グループ ID) が変更されるたびに、 カーネルは自動的に対応"
5668 "するファイルシステム ID を同じ値に変更する。 その結果、ファイルシステム ID は"
5669 "通常は対応する実効 ID と同じ値となり、 ファイルのアクセス権のチェック方法は "
5670 "Linux と他の UNIX システムで同じである。 ファイルシステム ID は実効 ID とは異"
5671 "なる値にすることができ、 変更は B<setfsuid>(2)  と B<setfsgid>(2)  を呼び出し"
5672 "て行う。"
5673
5674 #.  Since kernel 2.6.4, the limit is visible via the read-only file
5675 #.  /proc/sys/kernel/ngroups_max.
5676 #.  As at 2.6.22-rc2, this file is still read-only.
5677 #. type: Plain text
5678 #: build/C/man7/credentials.7:201
5679 msgid ""
5680 "Supplementary group IDs.  This is a set of additional group IDs that are "
5681 "used for permission checks when accessing files and other shared resources.  "
5682 "On Linux kernels before 2.6.4, a process can be a member of up to 32 "
5683 "supplementary groups; since kernel 2.6.4, a process can be a member of up to "
5684 "65536 supplementary groups.  The call I<sysconf(_SC_NGROUPS_MAX)> can be "
5685 "used to determine the number of supplementary groups of which a process may "
5686 "be a member.  A process can obtain its set of supplementary group IDs using "
5687 "B<getgroups>(2), and can modify the set using B<setgroups>(2)."
5688 msgstr ""
5689 "補助グループ ID。 この ID は、ファイルや他の共有リソースへのアクセス時にアク"
5690 "セス許可の チェックに使用される、追加のグループ ID の集合である。 カーネル "
5691 "2.6.4 より前の Linux では、一つのプロセスあたりの 補助グループのメンバー数は"
5692 "最大で 32 である。 カーネル 2.6.4 以降では、一つのプロセスあたりの 補助グルー"
5693 "プのメンバー数は最大で 65536 である。 I<sysconf(_SC_NGROUPS_MAX)> を呼び出す"
5694 "ことで、あるプロセスがメンバーとなることができる可能性のある 補助グループ数を"
5695 "知ることができる。 プロセスは、自分の補助グループ ID の集合を B<getgroups>"
5696 "(2)  で取得でき、 B<setgroups>(2)  で集合を変更できる。"
5697
5698 #. type: Plain text
5699 #: build/C/man7/credentials.7:211
5700 msgid ""
5701 "A child process created by B<fork>(2)  inherits copies of its parent's user "
5702 "and groups IDs.  During an B<execve>(2), a process's real user and group ID "
5703 "and supplementary group IDs are preserved; the effective and saved set IDs "
5704 "may be changed, as described in B<execve>(2)."
5705 msgstr ""
5706 "B<fork>(2)  で生成された子プロセスは親プロセスのユーザ ID とグループ ID を継"
5707 "承する。 B<execve>(2)  の間、プロセスの実ユーザ/グループ ID と補助グループ "
5708 "ID 集合は不変である。 実効 ID と保存セット ID は変更される可能性がある "
5709 "(B<execve>(2)  で説明されている)。"
5710
5711 #. type: Plain text
5712 #: build/C/man7/credentials.7:214
5713 msgid ""
5714 "Aside from the purposes noted above, a process's user IDs are also employed "
5715 "in a number of other contexts:"
5716 msgstr "上記の目的以外にも、プロセスのユーザ ID は他の様々な場面で利用される。"
5717
5718 #. type: Plain text
5719 #: build/C/man7/credentials.7:217
5720 msgid ""
5721 "when determining the permissions for sending signals\\(emsee B<kill>(2);"
5722 msgstr "シグナルを送る許可の判定時\\(em B<kill>(2)  参照。"
5723
5724 #. type: Plain text
5725 #: build/C/man7/credentials.7:227
5726 msgid ""
5727 "when determining the permissions for setting process-scheduling parameters "
5728 "(nice value, real time scheduling policy and priority, CPU affinity, I/O "
5729 "priority) using B<setpriority>(2), B<sched_setaffinity>(2), "
5730 "B<sched_setscheduler>(2), B<sched_setparam>(2), and B<ioprio_set>(2);"
5731 msgstr ""
5732 "プロセスのスケジューリング関連のパラメータ (nice 値、 リアルタイム・スケ"
5733 "ジューリングポリシーや優先度、CPU affinity、 入出力優先度) の設定許可の判定"
5734 "時。 スケジューリング関連のパラメータ設定には B<setpriority>(2), "
5735 "B<sched_setaffinity>(2), B<sched_setscheduler>(2), B<sched_setparam>(2), "
5736 "B<ioprio_set>(2)  が使用される。"
5737
5738 #. type: Plain text
5739 #: build/C/man7/credentials.7:230
5740 msgid "when checking resource limits; see B<getrlimit>(2);"
5741 msgstr "リソース上限のチェック時。 B<getrlimit>(2)  参照。"
5742
5743 #. type: Plain text
5744 #: build/C/man7/credentials.7:234
5745 msgid ""
5746 "when checking the limit on the number of inotify instances that the process "
5747 "may create; see B<inotify>(7)."
5748 msgstr ""
5749 "プロセスが生成できる inotify インスタンス数の上限のチェック時。 B<inotify>"
5750 "(7)  参照。"
5751
5752 #. type: Plain text
5753 #: build/C/man7/credentials.7:240
5754 msgid ""
5755 "Process IDs, parent process IDs, process group IDs, and session IDs are "
5756 "specified in POSIX.1-2001.  The real, effective, and saved set user and "
5757 "groups IDs, and the supplementary group IDs, are specified in POSIX.1-2001.  "
5758 "The file system user and group IDs are a Linux extension."
5759 msgstr ""
5760 "プロセス ID、親プロセス ID、プロセスグループ ID、セッション ID は "
5761 "POSIX.1-2001 で規定されている。 実 ID、実効 ID、保存セット ID のユーザ ID / "
5762 "グループ ID および 補助グループ ID は POSIX.1-2001 で規定されている。 ファイ"
5763 "ルシステム・ユーザ ID / グループ ID は Linux による拡張である。"
5764
5765 #. type: Plain text
5766 #: build/C/man7/credentials.7:251
5767 msgid ""
5768 "The POSIX threads specification requires that credentials are shared by all "
5769 "of the threads in a process.  However, at the kernel level, Linux maintains "
5770 "separate user and group credentials for each thread.  The NPTL threading "
5771 "implementation does some work to ensure that any change to user or group "
5772 "credentials (e.g., calls to B<setuid>(2), B<setresuid>(2))  is carried "
5773 "through to all of the POSIX threads in a process."
5774 msgstr ""
5775 "POSIX のスレッド仕様では、これらの識別子がプロセス内の全スレッドで 共有される"
5776 "ことを求めている。 しかしながら、カーネルのレベルでは、Linux はスレッド毎に"
5777 "別々の ユーザとグループに関する識別子を管理している。 NPTL スレッド実装が、"
5778 "(例えば B<setuid>(2), B<setresuid>(2)  などの呼び出しによる) ユーザやグループ"
5779 "に関する識別子に対する変更が プロセス内の全ての POSIX スレッドに対して反映さ"
5780 "れることを保証する ための処理を行っている。"
5781
5782 #. type: Plain text
5783 #: build/C/man7/credentials.7:282
5784 msgid ""
5785 "B<bash>(1), B<csh>(1), B<ps>(1), B<access>(2), B<execve>(2), B<faccessat>"
5786 "(2), B<fork>(2), B<getpgrp>(2), B<getpid>(2), B<getppid>(2), B<getsid>(2), "
5787 "B<kill>(2), B<killpg>(2), B<setegid>(2), B<seteuid>(2), B<setfsgid>(2), "
5788 "B<setfsuid>(2), B<setgid>(2), B<setgroups>(2), B<setresgid>(2), B<setresuid>"
5789 "(2), B<setuid>(2), B<waitpid>(2), B<euidaccess>(3), B<initgroups>(3), "
5790 "B<tcgetpgrp>(3), B<tcsetpgrp>(3), B<capabilities>(7), B<path_resolution>(7), "
5791 "B<unix>(7)"
5792 msgstr ""
5793 "B<bash>(1), B<csh>(1), B<ps>(1), B<access>(2), B<execve>(2), B<faccessat>"
5794 "(2), B<fork>(2), B<getpgrp>(2), B<getpid>(2), B<getppid>(2), B<getsid>(2), "
5795 "B<kill>(2), B<killpg>(2), B<setegid>(2), B<seteuid>(2), B<setfsgid>(2), "
5796 "B<setfsuid>(2), B<setgid>(2), B<setgroups>(2), B<setresgid>(2), B<setresuid>"
5797 "(2), B<setuid>(2), B<waitpid>(2), B<euidaccess>(3), B<initgroups>(3), "
5798 "B<tcgetpgrp>(3), B<tcsetpgrp>(3), B<capabilities>(7), B<path_resolution>(7), "
5799 "B<unix>(7)"
5800
5801 #. type: TH
5802 #: build/C/man2/getgid.2:25
5803 #, no-wrap
5804 msgid "GETGID"
5805 msgstr "GETGID"
5806
5807 #. type: TH
5808 #: build/C/man2/getgid.2:25 build/C/man2/getgroups.2:31
5809 #: build/C/man2/getresuid.2:28 build/C/man2/getuid.2:26
5810 #: build/C/man2/setfsgid.2:31 build/C/man2/setfsuid.2:31
5811 #: build/C/man2/setgid.2:29 build/C/man2/setresuid.2:26
5812 #: build/C/man2/setreuid.2:45 build/C/man2/setuid.2:30
5813 #, no-wrap
5814 msgid "2010-11-22"
5815 msgstr "2010-11-22"
5816
5817 #. type: Plain text
5818 #: build/C/man2/getgid.2:28
5819 msgid "getgid, getegid - get group identity"
5820 msgstr "getgid, getegid - グループ ID を得る"
5821
5822 #. type: Plain text
5823 #: build/C/man2/getgid.2:30 build/C/man2/getgroups.2:38
5824 #: build/C/man2/getpid.2:32 build/C/man2/getresuid.2:35
5825 #: build/C/man2/getsid.2:31 build/C/man2/getuid.2:31 build/C/man2/seteuid.2:36
5826 #: build/C/man2/setgid.2:36 build/C/man2/setpgid.2:53
5827 #: build/C/man2/setresuid.2:33 build/C/man2/setreuid.2:52
5828 #: build/C/man2/setsid.2:36 build/C/man2/setuid.2:37
5829 msgid "B<#include E<lt>unistd.hE<gt>>"
5830 msgstr "B<#include E<lt>unistd.hE<gt>>"
5831
5832 #. type: Plain text
5833 #: build/C/man2/getgid.2:32 build/C/man2/getgroups.2:36
5834 #: build/C/man2/getpid.2:30 build/C/man2/getuid.2:33 build/C/man2/seteuid.2:34
5835 #: build/C/man2/setgid.2:34 build/C/man2/setreuid.2:50
5836 #: build/C/man2/setuid.2:35
5837 msgid "B<#include E<lt>sys/types.hE<gt>>"
5838 msgstr "B<#include E<lt>sys/types.hE<gt>>"
5839
5840 #. type: Plain text
5841 #: build/C/man2/getgid.2:34
5842 msgid "B<gid_t getgid(void);>"
5843 msgstr "B<gid_t getgid(void);>"
5844
5845 #. type: Plain text
5846 #: build/C/man2/getgid.2:36
5847 msgid "B<gid_t getegid(void);>"
5848 msgstr "B<gid_t getegid(void);>"
5849
5850 #. type: Plain text
5851 #: build/C/man2/getgid.2:39
5852 msgid "B<getgid>()  returns the real group ID of the calling process."
5853 msgstr "B<getgid>()  は呼び出し元のプロセスの実グループ ID を返す。"
5854
5855 #. type: Plain text
5856 #: build/C/man2/getgid.2:42
5857 msgid "B<getegid>()  returns the effective group ID of the calling process."
5858 msgstr "B<getegid>()  は呼び出し元のプロセスの実効グループ ID を返す。"
5859
5860 #. type: Plain text
5861 #: build/C/man2/getgid.2:44 build/C/man2/getpid.2:46 build/C/man2/getuid.2:45
5862 msgid "These functions are always successful."
5863 msgstr "これらの関数は常に成功する。"
5864
5865 #. type: Plain text
5866 #: build/C/man2/getgid.2:46 build/C/man2/getuid.2:47
5867 msgid "POSIX.1-2001, 4.3BSD."
5868 msgstr "POSIX.1-2001, 4.3BSD."
5869
5870 #. type: Plain text
5871 #: build/C/man2/getgid.2:62
5872 msgid ""
5873 "The original Linux B<getgid>()  and B<getegid>()  system calls supported "
5874 "only 16-bit group IDs.  Subsequently, Linux 2.4 added B<getgid32>()  and "
5875 "B<getegid32>(), supporting 32-bit IDs.  The glibc B<getgid>()  and B<getegid>"
5876 "()  wrapper functions transparently deal with the variations across kernel "
5877 "versions."
5878 msgstr ""
5879 "元々の Linux の B<getgid>() と B<getegid>() システムコールは\n"
5880 "16 ビットのグループ ID だけに対応していた。\n"
5881 "その後、Linux 2.4 で、32 ビットの ID に対応した\n"
5882 "B<getgid32>() と B<getegid32>() が追加された。\n"
5883 "glibc の B<getgid>() と B<getegid>() のラッパー関数は\n"
5884 "カーネルバージョンによるこの違いを吸収している。"
5885
5886 #. type: Plain text
5887 #: build/C/man2/getgid.2:67
5888 msgid "B<getresgid>(2), B<setgid>(2), B<setregid>(2), B<credentials>(7)"
5889 msgstr "B<getresgid>(2), B<setgid>(2), B<setregid>(2), B<credentials>(7)"
5890
5891 #. type: TH
5892 #: build/C/man2/getgroups.2:31
5893 #, no-wrap
5894 msgid "GETGROUPS"
5895 msgstr "GETGROUPS"
5896
5897 #. type: Plain text
5898 #: build/C/man2/getgroups.2:34
5899 msgid "getgroups, setgroups - get/set list of supplementary group IDs"
5900 msgstr "getgroups, setgroups - 補助グループ ID のリストを取得/設定する"
5901
5902 #. type: Plain text
5903 #: build/C/man2/getgroups.2:40
5904 msgid "B<int getgroups(int >I<size>B<, gid_t >I<list>B<[]);>"
5905 msgstr "B<int getgroups(int >I<size>B<, gid_t >I<list>B<[]);>"
5906
5907 #. type: Plain text
5908 #: build/C/man2/getgroups.2:42
5909 msgid "B<#include E<lt>grp.hE<gt>>"
5910 msgstr "B<#include E<lt>grp.hE<gt>>"
5911
5912 #. type: Plain text
5913 #: build/C/man2/getgroups.2:44
5914 msgid "B<int setgroups(size_t >I<size>B<, const gid_t *>I<list>B<);>"
5915 msgstr "B<int setgroups(size_t >I<size>B<, const gid_t *>I<list>B<);>"
5916
5917 #. type: Plain text
5918 #: build/C/man2/getgroups.2:52
5919 msgid "B<setgroups>(): _BSD_SOURCE"
5920 msgstr "B<setgroups>(): _BSD_SOURCE"
5921
5922 #. type: Plain text
5923 #: build/C/man2/getgroups.2:70
5924 msgid ""
5925 "B<getgroups>()  returns the supplementary group IDs of the calling process "
5926 "in I<list>.  The argument I<size> should be set to the maximum number of "
5927 "items that can be stored in the buffer pointed to by I<list>.  If the "
5928 "calling process is a member of more than I<size> supplementary groups, then "
5929 "an error results.  It is unspecified whether the effective group ID of the "
5930 "calling process is included in the returned list.  (Thus, an application "
5931 "should also call B<getegid>(2)  and add or remove the resulting value.)"
5932 msgstr ""
5933 "B<getgroups>()  は呼び出し元プロセスの補助グループ (supplementary group) ID "
5934 "を I<list> に返す。 I<size> 引き数には、 I<list> により参照されるバッファに格"
5935 "納できる要素の最大数を設定すべきである。 呼び出し元プロセスが I<size> 個より"
5936 "多くの補助グループのメンバの場合には、エラーとなる。 この関数を呼び出したプロ"
5937 "セスの実効グループ ID が、 返されるリストに含まれるかどうかは規定されていな"
5938 "い (したがって、アプリケーションは B<getegid>(2)  を呼び出し、その結果の値を"
5939 "追加・削除すべきである)。"
5940
5941 #. type: Plain text
5942 #: build/C/man2/getgroups.2:81
5943 msgid ""
5944 "If I<size> is zero, I<list> is not modified, but the total number of "
5945 "supplementary group IDs for the process is returned.  This allows the caller "
5946 "to determine the size of a dynamically allocated I<list> to be used in a "
5947 "further call to B<getgroups>()."
5948 msgstr ""
5949 "I<size> が 0 ならば、 I<list> は修正されないが、そのプロセスの補助グループ "
5950 "ID の合計数が返される。 これを使うことで、それ以降の B<getgroups>()  の呼び出"
5951 "しで必要となる動的割り当てバッファ I<list> のサイズを、呼び出し元が決定するこ"
5952 "とができる。"
5953
5954 #. type: Plain text
5955 #: build/C/man2/getgroups.2:92
5956 msgid ""
5957 "B<setgroups>()  sets the supplementary group IDs for the calling process.  "
5958 "Appropriate privileges (Linux: the B<CAP_SETGID> capability) are required.  "
5959 "The I<size> argument specifies the number of supplementary group IDs in the "
5960 "buffer pointed to by I<list>."
5961 msgstr ""
5962 "B<setgroups>()  は、呼び出し元プロセスの補助グループ ID を設定する。 適切な特"
5963 "権 (Linux では B<CAP_SETGID> ケーパビリティ (capability)) が必要である。 "
5964 "I<size> 引き数には、 I<list> により参照されるバッファに格納された補助グルー"
5965 "プ ID の数を指定する。"
5966
5967 #. type: Plain text
5968 #: build/C/man2/getgroups.2:99
5969 msgid ""
5970 "On success, B<getgroups>()  returns the number of supplementary group IDs.  "
5971 "On error, -1 is returned, and I<errno> is set appropriately."
5972 msgstr ""
5973 "B<getgroups>()  は、成功すると補助グループ ID の数を返す。 エラーの場合 -1 を"
5974 "返し、 I<errno> を適切に設定する。"
5975
5976 #. type: Plain text
5977 #: build/C/man2/getgroups.2:106
5978 msgid ""
5979 "On success, B<setgroups>()  returns 0.  On error, -1 is returned, and "
5980 "I<errno> is set appropriately."
5981 msgstr ""
5982 "B<setgroups>()  は、成功すると 0 を返す。 エラーの場合 -1 を返し、 I<errno> "
5983 "を適切に設定する。"
5984
5985 #. type: Plain text
5986 #: build/C/man2/getgroups.2:111
5987 msgid "I<list> has an invalid address."
5988 msgstr "I<list> が不正なアドレスである。"
5989
5990 #. type: Plain text
5991 #: build/C/man2/getgroups.2:114
5992 msgid "B<getgroups>()  can additionally fail with the following error:"
5993 msgstr "B<getgroups>()  は、上記に加えて以下のエラーで失敗する可能性がある。"
5994
5995 #. type: Plain text
5996 #: build/C/man2/getgroups.2:118
5997 msgid ""
5998 "I<size> is less than the number of supplementary group IDs, but is not zero."
5999 msgstr "I<size> が補助グループ ID の数より小さいが 0 でない。"
6000
6001 #. type: Plain text
6002 #: build/C/man2/getgroups.2:121
6003 msgid "B<setgroups>()  can additionally fail with the following errors:"
6004 msgstr "B<setgroups>()  は、上記に加えて以下のエラーで失敗する可能性がある。"
6005
6006 #. type: Plain text
6007 #: build/C/man2/getgroups.2:127
6008 msgid ""
6009 "I<size> is greater than B<NGROUPS_MAX> (32 before Linux 2.6.4; 65536 since "
6010 "Linux 2.6.4)."
6011 msgstr ""
6012 "I<size> が B<NGROUPS_MAX> より大きい (B<NGROUPS_MAX> は Linux 2.6.4 より前で"
6013 "は 32、Linux 2.6.4 以降では 65536)。"
6014
6015 #. type: Plain text
6016 #: build/C/man2/getgroups.2:133
6017 msgid "The calling process has insufficient privilege."
6018 msgstr "呼び出し元プロセスが十分な特権を持っていない。"
6019
6020 #. type: Plain text
6021 #: build/C/man2/getgroups.2:141
6022 msgid ""
6023 "SVr4, 4.3BSD.  The B<getgroups>()  function is in POSIX.1-2001.  Since "
6024 "B<setgroups>()  requires privilege, it is not covered by POSIX.1-2001."
6025 msgstr ""
6026 "SVr4, 4.3BSD.  B<getgroups>()  関数は POSIX.1-2001 に準拠している。 "
6027 "B<setgroups>()  は特権を必要とするため、POSIX.1-2001 に従っていない。"
6028
6029 #. type: Plain text
6030 #: build/C/man2/getgroups.2:149
6031 msgid ""
6032 "A process can have up to B<NGROUPS_MAX> supplementary group IDs in addition "
6033 "to the effective group ID.  The set of supplementary group IDs is inherited "
6034 "from the parent process, and preserved across an B<execve>(2)."
6035 msgstr ""
6036 "プロセスは、実効グループ ID に加え、最大 B<NGROUPS_MAX> までの補助グループ "
6037 "ID を持つことができる。 補助グループ ID の集合は親プロセスから継承され、 "
6038 "B<execve>(2)  の前後で保持される。"
6039
6040 #. type: Plain text
6041 #: build/C/man2/getgroups.2:152
6042 msgid ""
6043 "The maximum number of supplementary group IDs can be found using B<sysconf>"
6044 "(3):"
6045 msgstr ""
6046 "補助グループ ID の最大数は B<sysconf>(3)  を使って以下のようにして調べること"
6047 "ができる:"
6048
6049 #. type: Plain text
6050 #: build/C/man2/getgroups.2:156
6051 #, no-wrap
6052 msgid ""
6053 "    long ngroups_max;\n"
6054 "    ngroups_max = sysconf(_SC_NGROUPS_MAX);\n"
6055 msgstr ""
6056 "    long ngroups_max;\n"
6057 "    ngroups_max = sysconf(_SC_NGROUPS_MAX);\n"
6058
6059 #. type: Plain text
6060 #: build/C/man2/getgroups.2:161
6061 msgid ""
6062 "The maximum return value of B<getgroups>()  cannot be larger than one more "
6063 "than this value."
6064 msgstr ""
6065 "B<getgroups>()  の返り値の最大値は、この値より 1 大きい値より大きくなることは"
6066 "ない。"
6067
6068 #. type: Plain text
6069 #: build/C/man2/getgroups.2:171
6070 msgid ""
6071 "The original Linux B<getgroups>()  system call supported only 16-bit group "
6072 "IDs.  Subsequently, Linux 2.4 added B<getgroups32>(), supporting 32-bit "
6073 "IDs.  The glibc B<getgroups>()  wrapper function transparently deals with "
6074 "the variation across kernel versions."
6075 msgstr ""
6076 "元々の Linux の B<getgroups>() システムコールは 16 ビットのグループ ID だけ\n"
6077 "に対応していた。その後、Linux 2.4 で、32 ビットの ID に対応した\n"
6078 "B<getgroups>() が追加された。glibc の B<getgroups> のラッパー関数はカーネル\n"
6079 "バージョンによるこの違いを吸収している。"
6080
6081 #. type: Plain text
6082 #: build/C/man2/getgroups.2:178
6083 msgid ""
6084 "B<getgid>(2), B<setgid>(2), B<getgrouplist>(3), B<initgroups>(3), "
6085 "B<capabilities>(7), B<credentials>(7)"
6086 msgstr ""
6087 "B<getgid>(2), B<setgid>(2), B<getgrouplist>(3), B<initgroups>(3), "
6088 "B<capabilities>(7), B<credentials>(7)"
6089
6090 #. type: TH
6091 #: build/C/man2/getpid.2:25
6092 #, no-wrap
6093 msgid "GETPID"
6094 msgstr "GETPID"
6095
6096 #. type: TH
6097 #: build/C/man2/getpid.2:25
6098 #, no-wrap
6099 msgid "2008-09-23"
6100 msgstr "2008-09-23"
6101
6102 #. type: Plain text
6103 #: build/C/man2/getpid.2:28
6104 msgid "getpid, getppid - get process identification"
6105 msgstr "getpid, getppid - プロセス ID を得る"
6106
6107 #. type: Plain text
6108 #: build/C/man2/getpid.2:34
6109 msgid "B<pid_t getpid(void);>"
6110 msgstr "B<pid_t getpid(void);>"
6111
6112 #. type: Plain text
6113 #: build/C/man2/getpid.2:36
6114 msgid "B<pid_t getppid(void);>"
6115 msgstr "B<pid_t getppid(void);>"
6116
6117 #. type: Plain text
6118 #: build/C/man2/getpid.2:41
6119 msgid ""
6120 "B<getpid>()  returns the process ID of the calling process.  (This is often "
6121 "used by routines that generate unique temporary filenames.)"
6122 msgstr ""
6123 "B<getpid>()  は呼び出し元のプロセスのプロセス ID を返す。(テンポラリ用のファ"
6124 "イル名として 他と重ならない名前を生成するルーチンでしばしば使用される。)"
6125
6126 #. type: Plain text
6127 #: build/C/man2/getpid.2:44
6128 msgid ""
6129 "B<getppid>()  returns the process ID of the parent of the calling process."
6130 msgstr "B<getppid>()  は呼び出し元のプロセスの親プロセスのプロセス ID を返す。"
6131
6132 #. type: Plain text
6133 #: build/C/man2/getpid.2:48
6134 msgid "POSIX.1-2001, 4.3BSD, SVr4."
6135 msgstr "POSIX.1-2001, 4.3BSD, SVr4."
6136
6137 #.  The following program demonstrates this "feature":
6138 #.  #define _GNU_SOURCE
6139 #.  #include <sys/syscall.h>
6140 #.  #include <sys/wait.h>
6141 #.  #include <stdio.h>
6142 #.  #include <stdlib.h>
6143 #.  #include <unistd.h>
6144 #.  int
6145 #.  main(int argc, char *argv[])
6146 #.  {
6147 #.     /* The following statement fills the getpid() cache */
6148 #.     printf("parent PID = %ld
6149 #. ", (long) getpid());
6150 #.     if (syscall(SYS_fork) == 0) {
6151 #.         if (getpid() != syscall(SYS_getpid))
6152 #.             printf("child getpid() mismatch: getpid()=%ld; "
6153 #.                     "syscall(SYS_getpid)=%ld
6154 #. ",
6155 #.                     (long) getpid(), (long) syscall(SYS_getpid));
6156 #.         exit(EXIT_SUCCESS);
6157 #.     }
6158 #.     wait(NULL);
6159 #. }
6160 #. type: Plain text
6161 #: build/C/man2/getpid.2:100
6162 msgid ""
6163 "Since glibc version 2.3.4, the glibc wrapper function for B<getpid>()  "
6164 "caches PIDs, so as to avoid additional system calls when a process calls "
6165 "B<getpid>()  repeatedly.  Normally this caching is invisible, but its "
6166 "correct operation relies on support in the wrapper functions for B<fork>(2), "
6167 "B<vfork>(2), and B<clone>(2): if an application bypasses the glibc wrappers "
6168 "for these system calls by using B<syscall>(2), then a call to B<getpid>()  "
6169 "in the child will return the wrong value (to be precise: it will return the "
6170 "PID of the parent process).  See also B<clone>(2)  for discussion of a case "
6171 "where B<getpid>()  may return the wrong value even when invoking B<clone>"
6172 "(2)  via the glibc wrapper function."
6173 msgstr ""
6174 "glibc バージョン 2.3.4 以降では、 glibc の B<getpid>()  のラッパー関数は PID "
6175 "をキャッシュする。 これは、プロセスが繰り返し B<getpid>()  を呼び出した場合に"
6176 "その都度システムコールを呼ぶのを避けるためである。 通常は、このキャッシュ処理"
6177 "が見えることはないが、 キャッシュ処理が正しく働くためには B<fork>(2), "
6178 "B<vfork>(2), B<clone>(2)  のラッパー関数でのサポートが必要である。 アプリケー"
6179 "ションがこれらのシステムコールを呼び出す際に、 glibc のラッパー関数を経由せず"
6180 "に B<syscall>(2)  を使った場合には、子プロセスで B<getpid>()  を呼び出すと間"
6181 "違った値が返ることだろう (正確にいうと、親プロセスの PID が返される)。 "
6182 "B<clone>(2)  を glibc のラッパー関数経由で起動した際にも B<getpid>()  が間"
6183 "違った値を返す場合があり、これに関する議論は B<clone>(2)  も参照してほしい。"
6184
6185 #. type: Plain text
6186 #: build/C/man2/getpid.2:110
6187 msgid ""
6188 "B<clone>(2), B<fork>(2), B<kill>(2), B<exec>(3), B<mkstemp>(3), B<tempnam>"
6189 "(3), B<tmpfile>(3), B<tmpnam>(3), B<credentials>(7)"
6190 msgstr ""
6191 "B<clone>(2), B<fork>(2), B<kill>(2), B<exec>(3), B<mkstemp>(3), B<tempnam>"
6192 "(3), B<tmpfile>(3), B<tmpnam>(3), B<credentials>(7)"
6193
6194 #. type: TH
6195 #: build/C/man2/getpriority.2:48
6196 #, no-wrap
6197 msgid "GETPRIORITY"
6198 msgstr "GETPRIORITY"
6199
6200 #. type: Plain text
6201 #: build/C/man2/getpriority.2:51
6202 msgid "getpriority, setpriority - get/set program scheduling priority"
6203 msgstr ""
6204 "getpriority, setpriority - プログラムのスケジューリングの優先度を取得/設定す"
6205 "る"
6206
6207 #. type: Plain text
6208 #: build/C/man2/getpriority.2:53 build/C/man2/getrlimit.2:69
6209 #: build/C/man2/getrusage.2:44
6210 msgid "B<#include E<lt>sys/time.hE<gt>>"
6211 msgstr "B<#include E<lt>sys/time.hE<gt>>"
6212
6213 #. type: Plain text
6214 #: build/C/man2/getpriority.2:55 build/C/man2/getrlimit.2:71
6215 #: build/C/man2/getrusage.2:46
6216 msgid "B<#include E<lt>sys/resource.hE<gt>>"
6217 msgstr "B<#include E<lt>sys/resource.hE<gt>>"
6218
6219 #. type: Plain text
6220 #: build/C/man2/getpriority.2:57
6221 msgid "B<int getpriority(int >I<which>B<, int >I<who>B<);>"
6222 msgstr "B<int getpriority(int >I<which>B<, int >I<who>B<);>"
6223
6224 #. type: Plain text
6225 #: build/C/man2/getpriority.2:59
6226 msgid "B<int setpriority(int >I<which>B<, int >I<who>B<, int >I<prio>B<);>"
6227 msgstr "B<int setpriority(int >I<which>B<, int >I<who>B<, int >I<prio>B<);>"
6228
6229 #. type: Plain text
6230 #: build/C/man2/getpriority.2:70
6231 msgid ""
6232 "The scheduling priority of the process, process group, or user, as indicated "
6233 "by I<which> and I<who> is obtained with the B<getpriority>()  call and set "
6234 "with the B<setpriority>()  call."
6235 msgstr ""
6236 "システムコール B<getpriority>()  や B<setpriority>()  は、 I<which> と "
6237 "I<who> で指定されたプロセス、プロセスグループ、ユーザーの スケジューリング優"
6238 "先度 (scheduling priority) の 取得や設定をそれぞれ行う。"
6239
6240 #. type: Plain text
6241 #: build/C/man2/getpriority.2:97
6242 msgid ""
6243 "The value I<which> is one of B<PRIO_PROCESS>, B<PRIO_PGRP>, or B<PRIO_USER>, "
6244 "and I<who> is interpreted relative to I<which> (a process identifier for "
6245 "B<PRIO_PROCESS>, process group identifier for B<PRIO_PGRP>, and a user ID "
6246 "for B<PRIO_USER>).  A zero value for I<who> denotes (respectively) the "
6247 "calling process, the process group of the calling process, or the real user "
6248 "ID of the calling process.  I<Prio> is a value in the range -20 to 19 (but "
6249 "see the Notes below).  The default priority is 0; lower priorities cause "
6250 "more favorable scheduling."
6251 msgstr ""
6252 "I<which> の値は B<PRIO_PROCESS>, B<PRIO_PGRP>, B<PRIO_USER>, のどれか一つ"
6253 "で、 I<who> は I<which> に応じて解釈される (B<PRIO_PROCESS> だとプロセス識別"
6254 "子、 B<PRIO_PGRP> だとプロセスグループ識別子、 B<PRIO_USER> だと UID (ユーザ"
6255 "ID) と解釈される)。 I<who> がゼロならば、(それぞれ)呼び出したプロセス、 呼び"
6256 "出したプロセスのプロセスグループ、 呼び出したプロセスの実UID を意味する。 "
6257 "I<prio> は -20 から 19 の範囲の値で (但し以下の注意の項を参照のこと)、 デフォ"
6258 "ルトの優先度は 0 である; 小さな数字ほど、有利なスケジューリングとなる。"
6259
6260 #. type: Plain text
6261 #: build/C/man2/getpriority.2:107
6262 msgid ""
6263 "The B<getpriority>()  call returns the highest priority (lowest numerical "
6264 "value)  enjoyed by any of the specified processes.  The B<setpriority>()  "
6265 "call sets the priorities of all of the specified processes to the specified "
6266 "value.  Only the superuser may lower priorities."
6267 msgstr ""
6268 "B<getpriority>()  コールは指定したプロセスの中の最も高い優先度 (数値的には最"
6269 "小の値) を返す。 B<setpriority>()  コールは指定したプロセス全ての優先度を指定"
6270 "した値に設定する。 優先度を今より小さい値に設定できるのはスーパーユーザーだけ"
6271 "である。"
6272
6273 #. type: Plain text
6274 #: build/C/man2/getpriority.2:120
6275 msgid ""
6276 "Since B<getpriority>()  can legitimately return the value -1, it is "
6277 "necessary to clear the external variable I<errno> prior to the call, then "
6278 "check it afterward to determine if -1 is an error or a legitimate value.  "
6279 "The B<setpriority>()  call returns 0 if there is no error, or -1 if there is."
6280 msgstr ""
6281 "B<getpriority>()  は成功した場合にも -1 の値を返す可能性があるので、 呼び出し"
6282 "の前に外部変数の I<errno> をクリアし、呼び出しの後に返り値の -1 が正当な値か "
6283 "エラーかを判別する必要がある。 B<setpriority>()  コールはエラーがなければ 0 "
6284 "を返し、エラーがあれば -1 を返す。"
6285
6286 #. type: Plain text
6287 #: build/C/man2/getpriority.2:129
6288 msgid "I<which> was not one of B<PRIO_PROCESS>, B<PRIO_PGRP>, or B<PRIO_USER>."
6289 msgstr ""
6290 "I<which> が B<PRIO_PROCESS>, B<PRIO_PGRP>, B<PRIO_USER> のいずれでもない。"
6291
6292 #. type: Plain text
6293 #: build/C/man2/getpriority.2:136
6294 msgid "No process was located using the I<which> and I<who> values specified."
6295 msgstr "I<which> と I<who> で指定されたプロセスが存在しない。"
6296
6297 #. type: Plain text
6298 #: build/C/man2/getpriority.2:140
6299 msgid ""
6300 "In addition to the errors indicated above, B<setpriority>()  may fail if:"
6301 msgstr "上記のものに加えて B<setpriority>()  では以下のエラーがある:"
6302
6303 #. type: Plain text
6304 #: build/C/man2/getpriority.2:152
6305 msgid ""
6306 "The caller attempted to lower a process priority, but did not have the "
6307 "required privilege (on Linux: did not have the B<CAP_SYS_NICE> capability).  "
6308 "Since Linux 2.6.12, this error occurs only if the caller attempts to set a "
6309 "process priority outside the range of the B<RLIMIT_NICE> soft resource limit "
6310 "of the target process; see B<getrlimit>(2)  for details."
6311 msgstr ""
6312 "呼び出し元がプロセスの優先度を下げようとしたが、必要な特権を 持っていなかっ"
6313 "た (Linux の場合、 B<CAP_SYS_NICE> ケーパビリティがなかった)。 Linux 2.6.12 "
6314 "以降では、呼び出し元が、あるプロセスの優先度を、 変更対象のプロセスのリソー"
6315 "ス B<RLIMIT_NICE> のソフトリミットの範囲外に設定しようとした場合にのみ、 この"
6316 "エラーが発生する。詳細は B<getrlimit>(2)  を参照。"
6317
6318 #. type: Plain text
6319 #: build/C/man2/getpriority.2:160
6320 msgid ""
6321 "A process was located, but its effective user ID did not match either the "
6322 "effective or the real user ID of the caller, and was not privileged (on "
6323 "Linux: did not have the B<CAP_SYS_NICE> capability).  But see NOTES below."
6324 msgstr ""
6325 "プロセスは見つかったが、そのプロセスの実効 (effective) UID が 呼び出し元の実"
6326 "効UID にも実 (real) UID にも一致せず、 呼び出し元が特権も持っていなかった "
6327 "(Linux の場合、 B<CAP_SYS_NICE> ケーパビリティがなかった)。 以下の「注意」も"
6328 "参照のこと。"
6329
6330 #. type: Plain text
6331 #: build/C/man2/getpriority.2:163
6332 msgid ""
6333 "SVr4, 4.4BSD (these function calls first appeared in 4.2BSD), POSIX.1-2001."
6334 msgstr "SVr4, 4.4BSD (これらの関数は 4.2BSD で最初に登場した), POSIX.1-2001."
6335
6336 #. type: Plain text
6337 #: build/C/man2/getpriority.2:169
6338 msgid ""
6339 "A child created by B<fork>(2)  inherits its parent's nice value.  The nice "
6340 "value is preserved across B<execve>(2)."
6341 msgstr ""
6342 "B<fork>(2)  で作成された子プロセスは、 親プロセスの nice 値を継承する。 "
6343 "B<execve>(2)  の前後で nice 値は保存される。"
6344
6345 #. type: Plain text
6346 #: build/C/man2/getpriority.2:180
6347 msgid ""
6348 "The degree to which their relative nice value affects the scheduling of "
6349 "processes varies across UNIX systems, and, on Linux, across kernel "
6350 "versions.  Starting with kernel 2.6.23, Linux adopted an algorithm that "
6351 "causes relative differences in nice values to have a much stronger effect.  "
6352 "This causes very low nice values (+19) to truly provide little CPU to a "
6353 "process whenever there is any other higher priority load on the system, and "
6354 "makes high nice values (-20) deliver most of the CPU to applications that "
6355 "require it (e.g., some audio applications)."
6356 msgstr ""
6357 "相対的な nice 値の違いがプロセス間のスケジューリングにどの程度影響を与えるか "
6358 "は、UNIX システム間で異なり、Linux ではカーネルバージョンにより異なる。 "
6359 "Linux は、カーネル 2.6.23 以降で、nice 値の相対的な違いが、非常に強い影響を "
6360 "与えるアルゴリズムを採用した。このアルゴリズムでは、 他に優先度の高いものがシ"
6361 "ステムに存在する時には、 非常に低い nice 値 (+19) ではプロセスに本当にほとん"
6362 "ど CPU が割り当てられない。 また、高い nice 値 (-20) では CPU を必要とするア"
6363 "プリケーション (例えば オーディオアプリケーション) に CPU のほとんどが割り当"
6364 "てられる。"
6365
6366 #. type: Plain text
6367 #: build/C/man2/getpriority.2:195
6368 msgid ""
6369 "The details on the condition for B<EPERM> depend on the system.  The above "
6370 "description is what POSIX.1-2001 says, and seems to be followed on all "
6371 "System V-like systems.  Linux kernels before 2.6.12 required the real or "
6372 "effective user ID of the caller to match the real user of the process I<who> "
6373 "(instead of its effective user ID).  Linux 2.6.12 and later require the "
6374 "effective user ID of the caller to match the real or effective user ID of "
6375 "the process I<who>.  All BSD-like systems (SunOS 4.1.3, Ultrix 4.2, 4.3BSD, "
6376 "FreeBSD 4.3, OpenBSD-2.5, ...) behave in the same manner as Linux 2.6.12 and "
6377 "later."
6378 msgstr ""
6379 "B<EPERM> が発生する条件の詳細はシステムに依存する。 上記の説明は "
6380 "POSIX.1-2001 のものであり、全ての System V 風システムは これに従っているよう"
6381 "である。 2.6.12 より前の Linux カーネルでは、呼び出し元の実 UID または 実効 "
6382 "UID がプロセス I<who> の (実効 UID でなく)  実 UID に一致する必要がある。 "
6383 "Linux 2.6.12 以降では、呼び出し元の実行 UID がプロセス I<who> の実 UID か実"
6384 "効 UID のいずれかと一致する必要がある。 全ての BSD 風システム (SunOS 4.1.3, "
6385 "Ultrix 4.2, 4.3BSD, FreeBSD 4.3, OpenBSD-2.5等) は、 Linux 2.6.12 以降と同じ"
6386 "動作をする。"
6387
6388 #. type: Plain text
6389 #: build/C/man2/getpriority.2:211
6390 msgid ""
6391 "The actual priority range varies between kernel versions.  Linux before "
6392 "1.3.36 had -infinity..15.  Since kernel 1.3.43, Linux has the range "
6393 "-20..19.  Within the kernel, nice values are actually represented using the "
6394 "corresponding range 40..1 (since negative numbers are error codes) and these "
6395 "are the values employed by the B<setpriority>()  and B<getpriority>()  "
6396 "system calls.  The glibc wrapper functions for these system calls handle the "
6397 "translations between the user-land and kernel representations of the nice "
6398 "value according to the formula I<unice\\ =\\ 20\\ -\\ knice>."
6399 msgstr ""
6400 "実際の優先度の値の範囲はカーネルのバージョンによって異なる。 1.3.36 より前の "
6401 "Linux では、優先度の範囲は負の無限大 〜 15 である。 1.3.43 以降の Linux で"
6402 "は、優先度の範囲は -20 〜 19 である。 カーネル内部では、nice 値は実際には 40 "
6403 "〜 1 の範囲を使って 表現されており (負の値はエラーコードとなるため)、こちらの"
6404 "値が システムコール B<setpriority>()  と B<getpriority>()  で使用されてい"
6405 "る。 glibc のこれらのシステムコールのラッパー関数において、nice 値の ユーザ領"
6406 "域 (user-land) とカーネル表現の間の変換が行われる。 変換式は以下の通り: "
6407 "I<unice\\ =\\ 20\\ -\\ knice>"
6408
6409 #. type: Plain text
6410 #: build/C/man2/getpriority.2:213
6411 msgid "On some systems, the range of nice values is -20..20."
6412 msgstr "いくつかのシステムでは、nice 値の範囲は \\20 〜 20 である。"
6413
6414 #. type: Plain text
6415 #: build/C/man2/getpriority.2:225
6416 msgid ""
6417 "Including I<E<lt>sys/time.hE<gt>> is not required these days, but increases "
6418 "portability.  (Indeed, I<E<lt>sys/resource.hE<gt>> defines the I<rusage> "
6419 "structure with fields of type I<struct timeval> defined in I<E<lt>sys/time."
6420 "hE<gt>>.)"
6421 msgstr ""
6422 "現在では I<E<lt>sys/time.hE<gt>> をインクルードする必要はないが、インクルード"
6423 "すれば移植性を高めることができる (実際には I<E<lt>sys/resource.hE<gt>> で "
6424 "I<rusage> 構造体が定義されているが、そのフィールドで使用されている I<struct "
6425 "timeval> 型は I<E<lt>sys/time.hE<gt>> で定義されている)。"
6426
6427 #. type: Plain text
6428 #: build/C/man2/getpriority.2:232
6429 msgid ""
6430 "According to POSIX, the nice value is a per-process setting.  However, under "
6431 "the current Linux/NPTL implementation of POSIX threads, the nice value is a "
6432 "per-thread attribute: different threads in the same process can have "
6433 "different nice values.  Portable applications should avoid relying on the "
6434 "Linux behavior, which may be made standards conformant in the future."
6435 msgstr ""
6436 "POSIX では nice 値はプロセス単位の設定となっている。 一方、 現在の POSIX ス"
6437 "レッドの Linux/NPTL 実装では、 nice 値はスレッド単位の属性である。 同じプロセ"
6438 "スの別々のスレッドが異なる nice 値を持つ場合がある。 移植性が必要なアプリケー"
6439 "ションではこの Linux の動作を前提するのは避けるべきである。 Linux の動作は将"
6440 "来標準に準拠した動作になるかもしれない。"
6441
6442 #. type: Plain text
6443 #: build/C/man2/getpriority.2:237
6444 msgid "B<nice>(1), B<renice>(1), B<fork>(2), B<capabilities>(7)"
6445 msgstr "B<nice>(1), B<renice>(1), B<fork>(2), B<capabilities>(7)"
6446
6447 #. type: Plain text
6448 #: build/C/man2/getpriority.2:240
6449 msgid ""
6450 "I<Documentation/scheduler/sched-nice-design.txt> in the Linux kernel source "
6451 "tree (since Linux 2.6.23)"
6452 msgstr ""
6453 "Linux カーネルのソースツリー内の I<Documentation/scheduler/sched-nice-design."
6454 "txt> (Linux 2.6.23 以降)"
6455
6456 #. type: TH
6457 #: build/C/man2/getresuid.2:28
6458 #, no-wrap
6459 msgid "GETRESUID"
6460 msgstr "GETRESUID"
6461
6462 #. type: Plain text
6463 #: build/C/man2/getresuid.2:31
6464 msgid "getresuid, getresgid - get real, effective and saved user/group IDs"
6465 msgstr ""
6466 "getresuid, getresgid - 実、実効、保存、ユーザー ID / グループ ID を取得する"
6467
6468 #. type: Plain text
6469 #: build/C/man2/getresuid.2:33 build/C/man2/setresuid.2:31
6470 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
6471 msgstr "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */"
6472
6473 #. type: Plain text
6474 #: build/C/man2/getresuid.2:37
6475 msgid ""
6476 "B<int getresuid(uid_t *>I<ruid>B<, uid_t *>I<euid>B<, uid_t *>I<suid>B<);>"
6477 msgstr ""
6478 "B<int getresuid(uid_t *>I<ruid>B<, uid_t *>I<euid>B<, uid_t *>I<suid>B<);>"
6479
6480 #. type: Plain text
6481 #: build/C/man2/getresuid.2:39
6482 msgid ""
6483 "B<int getresgid(gid_t *>I<rgid>B<, gid_t *>I<egid>B<, gid_t *>I<sgid>B<);>"
6484 msgstr ""
6485 "B<int getresgid(gid_t *>I<rgid>B<, gid_t *>I<egid>B<, gid_t *>I<sgid>B<);>"
6486
6487 #. type: Plain text
6488 #: build/C/man2/getresuid.2:50
6489 msgid ""
6490 "B<getresuid>()  returns the real UID, the effective UID, and the saved set-"
6491 "user-ID of the calling process, in the arguments I<ruid>, I<euid>, and "
6492 "I<suid>, respectively.  B<getresgid>()  performs the analogous task for the "
6493 "process's group IDs."
6494 msgstr ""
6495 "B<getresuid>()  は、呼び出したプロセスの実 (real) UID、実効 (effective) "
6496 "UID、 保存 (saved) set-user-ID (B<getresgid> の場合はグループ ID) を、 それぞ"
6497 "れ引き数 I<ruid>, I<euid>, I<suid> に格納して返す。 B<getresgid>()  は、呼び"
6498 "出したプロセスのグループ ID について同様の処理を行う。"
6499
6500 #. type: Plain text
6501 #: build/C/man2/getresuid.2:60
6502 msgid ""
6503 "One of the arguments specified an address outside the calling program's "
6504 "address space."
6505 msgstr ""
6506 "指定した引き数のどれかが、呼び出したプログラムのアドレス空間の外の アドレスで"
6507 "ある。"
6508
6509 #. type: Plain text
6510 #: build/C/man2/getresuid.2:62
6511 msgid "These system calls appeared on Linux starting with kernel 2.1.44."
6512 msgstr "これらのシステムコールはカーネル 2.1.44 から Linux に登場した。"
6513
6514 #. type: Plain text
6515 #: build/C/man2/getresuid.2:67
6516 msgid ""
6517 "The prototypes are given by glibc since version 2.3.2, provided "
6518 "B<_GNU_SOURCE> is defined."
6519 msgstr ""
6520 "プロトタイプ宣言は 2.3.2 以降の glibc では B<_GNU_SOURCE> を定義していると得"
6521 "られる。"
6522
6523 #. type: Plain text
6524 #: build/C/man2/getresuid.2:70 build/C/man2/setresuid.2:86
6525 msgid ""
6526 "These calls are nonstandard; they also appear on HP-UX and some of the BSDs."
6527 msgstr "これらのコールは非標準である。 HP-UX や BSD 系のいくつかにも存在する。"
6528
6529 #. type: Plain text
6530 #: build/C/man2/getresuid.2:86
6531 msgid ""
6532 "The original Linux B<getresuid>()  and B<getresgid>()  system calls "
6533 "supported only 16-bit user and group IDs.  Subsequently, Linux 2.4 added "
6534 "B<getresuid32>()  and B<getresgid32>(), supporting 32-bit IDs.  The glibc "
6535 "B<getresuid>()  and B<getresgid>()  wrapper functions transparently deal "
6536 "with the variations across kernel versions."
6537 msgstr ""
6538 "元々の Linux の B<getresuid>() と B<getresgid>() システムコールは\n"
6539 "16 ビットのグループ ID だけに対応していた。\n"
6540 "その後、Linux 2.4 で、32 ビットの ID に対応した\n"
6541 "B<getresuid32>() と B<getresgid32>() が追加された。\n"
6542 "glibc の B<getresuid>() と B<getresgid>() のラッパー関数は\n"
6543 "カーネルバージョンによるこの違いを吸収している。"
6544
6545 #. type: Plain text
6546 #: build/C/man2/getresuid.2:92
6547 msgid ""
6548 "B<getuid>(2), B<setresuid>(2), B<setreuid>(2), B<setuid>(2), B<credentials>"
6549 "(7)"
6550 msgstr ""
6551 "B<getuid>(2), B<setresuid>(2), B<setreuid>(2), B<setuid>(2), B<credentials>"
6552 "(7)"
6553
6554 #. type: TH
6555 #: build/C/man2/getrlimit.2:64
6556 #, no-wrap
6557 msgid "GETRLIMIT"
6558 msgstr "GETRLIMIT"
6559
6560 #. type: TH
6561 #: build/C/man2/getrlimit.2:64 build/C/man2/setsid.2:30
6562 #, no-wrap
6563 msgid "2013-02-11"
6564 msgstr "2013-02-11"
6565
6566 #. type: Plain text
6567 #: build/C/man2/getrlimit.2:67
6568 msgid "getrlimit, setrlimit, prlimit - get/set resource limits"
6569 msgstr "getrlimit, setrlimit, prlimit - 資源の制限を取得/設定する"
6570
6571 #. type: Plain text
6572 #: build/C/man2/getrlimit.2:73
6573 msgid "B<int getrlimit(int >I<resource>B<, struct rlimit *>I<rlim>B<);>"
6574 msgstr "B<int getrlimit(int >I<resource>B<, struct rlimit *>I<rlim>B<);>"
6575
6576 #. type: Plain text
6577 #: build/C/man2/getrlimit.2:75
6578 msgid "B<int setrlimit(int >I<resource>B<, const struct rlimit *>I<rlim>B<);>"
6579 msgstr "B<int setrlimit(int >I<resource>B<, const struct rlimit *>I<rlim>B<);>"
6580
6581 #. type: Plain text
6582 #: build/C/man2/getrlimit.2:78
6583 msgid ""
6584 "B<int prlimit(pid_t >I<pid>B<, int >I<resource>B<, const struct rlimit "
6585 "*>I<new_limit>B<,>"
6586 msgstr ""
6587 "B<int prlimit(pid_t >I<pid>B<, int >I<resource>B<, const struct rlimit "
6588 "*>I<new_limit>B<,>"
6589
6590 #. type: Plain text
6591 #: build/C/man2/getrlimit.2:80
6592 msgid "B< struct rlimit *>I<old_limit>B<);>"
6593 msgstr "B< struct rlimit *>I<old_limit>B<);>"
6594
6595 #. type: Plain text
6596 #: build/C/man2/getrlimit.2:88
6597 msgid "B<prlimit>(): _GNU_SOURCE && _FILE_OFFSET_BITS == 64"
6598 msgstr "B<prlimit>(): _GNU_SOURCE && _FILE_OFFSET_BITS == 64"
6599
6600 #. type: Plain text
6601 #: build/C/man2/getrlimit.2:97
6602 msgid ""
6603 "The B<getrlimit>()  and B<setrlimit>()  system calls get and set resource "
6604 "limits respectively.  Each resource has an associated soft and hard limit, "
6605 "as defined by the I<rlimit> structure:"
6606 msgstr ""
6607 "B<getrlimit>() と B<setrlimit>() はそれぞれ資源 (resource) の制限\n"
6608 "(limit) の設定と取得を行う。 各リソースには、それに対応するソフトリミッ\n"
6609 "トとハードリミットがあり、 I<rlimit> 構造体で定義される:"
6610
6611 #. type: Plain text
6612 #: build/C/man2/getrlimit.2:104
6613 #, no-wrap
6614 msgid ""
6615 "struct rlimit {\n"
6616 "    rlim_t rlim_cur;  /* Soft limit */\n"
6617 "    rlim_t rlim_max;  /* Hard limit (ceiling for rlim_cur) */\n"
6618 "};\n"
6619 msgstr ""
6620 "struct rlimit {\n"
6621 "    rlim_t rlim_cur;  /* ソフトリミット */\n"
6622 "    rlim_t rlim_max;  /* ハードリミット\n"
6623 "                         (rlim_cur より小さくない) */\n"
6624 "};\n"
6625
6626 #. type: Plain text
6627 #: build/C/man2/getrlimit.2:115
6628 msgid ""
6629 "The soft limit is the value that the kernel enforces for the corresponding "
6630 "resource.  The hard limit acts as a ceiling for the soft limit: an "
6631 "unprivileged process may set only its soft limit to a value in the range "
6632 "from 0 up to the hard limit, and (irreversibly) lower its hard limit.  A "
6633 "privileged process (under Linux: one with the B<CAP_SYS_RESOURCE> "
6634 "capability) may make arbitrary changes to either limit value."
6635 msgstr ""
6636 "ソフトリミットは、カーネルが対応するリソースに対して課す制限値である。 ハード"
6637 "リミットはソフトリミットの上限として働く。 特権を持たないプロセスは、ソフトリ"
6638 "ミットの値を 0 からハードリミットの範囲に設定することと、 ハードリミットを下"
6639 "げることのみができる (一度下げたハードリミットは上げられない)。 特権プロセス "
6640 "(Linux では B<CAP_SYS_RESOURCE> ケーパビリティ (capability) を持つプロセス) "
6641 "は ソフトリミットとハードリミットを自由に変更できる。"
6642
6643 #. type: Plain text
6644 #: build/C/man2/getrlimit.2:122
6645 msgid ""
6646 "The value B<RLIM_INFINITY> denotes no limit on a resource (both in the "
6647 "structure returned by B<getrlimit>()  and in the structure passed to "
6648 "B<setrlimit>())."
6649 msgstr ""
6650 "値 B<RLIM_INFINITY> はリソースに制限がないことを表す (この値は B<getrlimit>"
6651 "()  が返す構造体と B<setrlimit>()  に渡す構造体の両方で使用される)。"
6652
6653 #. type: Plain text
6654 #: build/C/man2/getrlimit.2:126
6655 msgid "The I<resource> argument must be one of:"
6656 msgstr "I<resource> 引き数は次のいずれか 1 つである。"
6657
6658 #. type: TP
6659 #: build/C/man2/getrlimit.2:126
6660 #, no-wrap
6661 msgid "B<RLIMIT_AS>"
6662 msgstr "B<RLIMIT_AS>"
6663
6664 #.  since 2.0.27 / 2.1.12
6665 #. type: Plain text
6666 #: build/C/man2/getrlimit.2:146
6667 msgid ""
6668 "The maximum size of the process's virtual memory (address space) in bytes.  "
6669 "This limit affects calls to B<brk>(2), B<mmap>(2)  and B<mremap>(2), which "
6670 "fail with the error B<ENOMEM> upon exceeding this limit.  Also automatic "
6671 "stack expansion will fail (and generate a B<SIGSEGV> that kills the process "
6672 "if no alternate stack has been made available via B<sigaltstack>(2)).  Since "
6673 "the value is a I<long>, on machines with a 32-bit I<long> either this limit "
6674 "is at most 2 GiB, or this resource is unlimited."
6675 msgstr ""
6676 "プロセスの仮想メモリ (アドレス空間) の最大サイズ (バイト単位)。 この制限は "
6677 "B<brk>(2), B<mmap>(2), B<mremap>(2)  の呼び出しに影響し、この制限を超えた場合"
6678 "は エラー B<ENOMEM> で失敗する。 また自動的なスタック拡張にも失敗する (さら"
6679 "に B<sigaltstack>(2)  を使った代替スタックを利用可能にしていなかった場合に"
6680 "は、 B<SIGSEGV> を生成してそのプロセスを kill する)。 この値は I<long> 型なの"
6681 "で、32 ビットの I<long> 型を持つマシンでは、 この制限は最大で 2 GiB になる"
6682 "か、この資源が無制限になる。"
6683
6684 #. type: TP
6685 #: build/C/man2/getrlimit.2:146
6686 #, no-wrap
6687 msgid "B<RLIMIT_CORE>"
6688 msgstr "B<RLIMIT_CORE>"
6689
6690 #. type: Plain text
6691 #: build/C/man2/getrlimit.2:153
6692 msgid ""
6693 "Maximum size of I<core> file.  When 0 no core dump files are created.  When "
6694 "nonzero, larger dumps are truncated to this size."
6695 msgstr ""
6696 "I<core> ファイルの最大サイズ。 0 の場合、core ファイルは生成されない。 0 以外"
6697 "の場合、このサイズより大きいダンプは切り詰められる。"
6698
6699 #. type: TP
6700 #: build/C/man2/getrlimit.2:153
6701 #, no-wrap
6702 msgid "B<RLIMIT_CPU>"
6703 msgstr "B<RLIMIT_CPU>"
6704
6705 #. type: Plain text
6706 #: build/C/man2/getrlimit.2:173
6707 msgid ""
6708 "CPU time limit in seconds.  When the process reaches the soft limit, it is "
6709 "sent a B<SIGXCPU> signal.  The default action for this signal is to "
6710 "terminate the process.  However, the signal can be caught, and the handler "
6711 "can return control to the main program.  If the process continues to consume "
6712 "CPU time, it will be sent B<SIGXCPU> once per second until the hard limit is "
6713 "reached, at which time it is sent B<SIGKILL>.  (This latter point describes "
6714 "Linux behavior.  Implementations vary in how they treat processes which "
6715 "continue to consume CPU time after reaching the soft limit.  Portable "
6716 "applications that need to catch this signal should perform an orderly "
6717 "termination upon first receipt of B<SIGXCPU>.)"
6718 msgstr ""
6719 "CPU 時間の上限 (秒数)。プロセスがソフトリミットに達した場合に、\n"
6720 "B<SIGXCPU> シグナルを送る。このシグナルに対するデフォルトの動作は、\n"
6721 "プロセスの終了である。ただし、シグナルをキャッチして、ハンドラがメイン\n"
6722 "プログラムに制御を返すこともできる。プロセスが CPU 時間を使い続けた\n"
6723 "場合は、ハードリミットに達するまで 1 秒毎にプロセスに B<SIGXCPU> を送り、\n"
6724 "ハードリミットに達すると B<SIGKILL> を送る。\n"
6725 "(ソフトリミットを超過したときの動作は、 Linux における動作である。ソフ\n"
6726 "トリミットを超えて CPU 時間を使い続けるプロセスの扱い方についての実装は\n"
6727 "変化してきている。 このシグナルをキャッチする必要のある 移植性を考えた\n"
6728 "アプリケーションでは、 最初に B<SIGXCPU> を受け取った時点で正しく終了\n"
6729 "すべきである。)"
6730
6731 #. type: TP
6732 #: build/C/man2/getrlimit.2:173
6733 #, no-wrap
6734 msgid "B<RLIMIT_DATA>"
6735 msgstr "B<RLIMIT_DATA>"
6736
6737 #. type: Plain text
6738 #: build/C/man2/getrlimit.2:184
6739 msgid ""
6740 "The maximum size of the process's data segment (initialized data, "
6741 "uninitialized data, and heap).  This limit affects calls to B<brk>(2)  and "
6742 "B<sbrk>(2), which fail with the error B<ENOMEM> upon encountering the soft "
6743 "limit of this resource."
6744 msgstr ""
6745 "プロセスのデータセグメント (初期化されたデータ・初期化されていないデータ・"
6746 "ヒープ) の最大値。 このリミットは B<brk>(2)  と B<sbrk>(2)  の呼び出しに影響"
6747 "する。 これらの関数は、このリソースのソフトリミットに達すると、 エラー "
6748 "B<ENOMEM> で失敗する。"
6749
6750 #. type: TP
6751 #: build/C/man2/getrlimit.2:184
6752 #, no-wrap
6753 msgid "B<RLIMIT_FSIZE>"
6754 msgstr "B<RLIMIT_FSIZE>"
6755
6756 #. type: Plain text
6757 #: build/C/man2/getrlimit.2:196
6758 msgid ""
6759 "The maximum size of files that the process may create.  Attempts to extend a "
6760 "file beyond this limit result in delivery of a B<SIGXFSZ> signal.  By "
6761 "default, this signal terminates a process, but a process can catch this "
6762 "signal instead, in which case the relevant system call (e.g., B<write>(2), "
6763 "B<truncate>(2))  fails with the error B<EFBIG>."
6764 msgstr ""
6765 "プロセスが作成できるファイルサイズの最大値。 このサイズを超えてファイルを拡張"
6766 "すると、 B<SIGXFSZ> シグナルを送る。 デフォルトでは、このシグナルはプロセスを"
6767 "終了する。 プロセスをキャッチすることもできるが、 関連するシステムコール "
6768 "(B<write>(2), B<truncate>(2)  など) はエラー B<EFBIG> で失敗する。"
6769
6770 #. type: TP
6771 #: build/C/man2/getrlimit.2:196
6772 #, no-wrap
6773 msgid "B<RLIMIT_LOCKS> (Early Linux 2.4 only)"
6774 msgstr "B<RLIMIT_LOCKS> (初期の Linux 2.4 のみ)"
6775
6776 #.  to be precise: Linux 2.4.0-test9; no longer in 2.4.25 / 2.5.65
6777 #. type: Plain text
6778 #: build/C/man2/getrlimit.2:204
6779 msgid ""
6780 "A limit on the combined number of B<flock>(2)  locks and B<fcntl>(2)  leases "
6781 "that this process may establish."
6782 msgstr ""
6783 "このプロセスが実行できる B<flock>(2)  ロック数と B<fcntl>(2)  リース数の合計"
6784 "値を制限する。"
6785
6786 #. type: TP
6787 #: build/C/man2/getrlimit.2:204
6788 #, no-wrap
6789 msgid "B<RLIMIT_MEMLOCK>"
6790 msgstr "B<RLIMIT_MEMLOCK>"
6791
6792 #. type: Plain text
6793 #: build/C/man2/getrlimit.2:242
6794 msgid ""
6795 "The maximum number of bytes of memory that may be locked into RAM.  In "
6796 "effect this limit is rounded down to the nearest multiple of the system page "
6797 "size.  This limit affects B<mlock>(2)  and B<mlockall>(2)  and the B<mmap>"
6798 "(2)  B<MAP_LOCKED> operation.  Since Linux 2.6.9 it also affects the "
6799 "B<shmctl>(2)  B<SHM_LOCK> operation, where it sets a maximum on the total "
6800 "bytes in shared memory segments (see B<shmget>(2))  that may be locked by "
6801 "the real user ID of the calling process.  The B<shmctl>(2)  B<SHM_LOCK> "
6802 "locks are accounted for separately from the per-process memory locks "
6803 "established by B<mlock>(2), B<mlockall>(2), and B<mmap>(2)  B<MAP_LOCKED>; a "
6804 "process can lock bytes up to this limit in each of these two categories.  In "
6805 "Linux kernels before 2.6.9, this limit controlled the amount of memory that "
6806 "could be locked by a privileged process.  Since Linux 2.6.9, no limits are "
6807 "placed on the amount of memory that a privileged process may lock, and this "
6808 "limit instead governs the amount of memory that an unprivileged process may "
6809 "lock."
6810 msgstr ""
6811 "RAM 内にロックできるメモリの最大バイト数。 実際には、この制限はシステムページ"
6812 "サイズの最も近い倍数に 切り捨てて丸められる。 この制限は B<mlock>(2), "
6813 "B<mlockall>(2), B<mmap>(2)  の B<MAP_LOCKED> 操作に影響する。 Linux 2.6.9 以"
6814 "降では B<shmctl>(2)  B<SHM_LOCK> 操作にも影響する。 この操作は呼び出し元プロ"
6815 "セスの実 (real) ユーザー ID にロックされる 共有メモリセグメント (B<shmget>"
6816 "(2)  を参照) の合計バイト数の最大値を設定する。 B<shmctl>(2)  B<SHM_LOCK> に"
6817 "よるロックは、 B<mlock>(2), B<mlockall>(2), B<mmap>(2)  の B<MAP_LOCKED> に"
6818 "よって確立されるプロセス毎のメモリロックとは分けて数える。 1 つのプロセスはこ"
6819 "の制限までのバイトをロックできる。 この制限には 2 つの種類がある。 2.6.9 より"
6820 "前の Linux カーネル では、 この制限は特権プロセスによってロックされるメモリの"
6821 "合計を制御していた。 Linux 2.6.9 以降では、特権プロセスがロックするメモリの合"
6822 "計に制限はなく、 代わりにこの制限は非特権プロセスがロックするメモリの合計に "
6823 "適用されるようになった。"
6824
6825 #. type: TP
6826 #: build/C/man2/getrlimit.2:242
6827 #, no-wrap
6828 msgid "B<RLIMIT_MSGQUEUE> (Since Linux 2.6.8)"
6829 msgstr "B<RLIMIT_MSGQUEUE> (Linux 2.6.8 以降)"
6830
6831 #. type: Plain text
6832 #: build/C/man2/getrlimit.2:250
6833 msgid ""
6834 "Specifies the limit on the number of bytes that can be allocated for POSIX "
6835 "message queues for the real user ID of the calling process.  This limit is "
6836 "enforced for B<mq_open>(3).  Each message queue that the user creates counts "
6837 "(until it is removed)  against this limit according to the formula:"
6838 msgstr ""
6839 "呼び出し元プロセスの実ユーザー ID に対して、 POSIX メッセージキューのために確"
6840 "保できるバイト数の制限を指定する。 この制限は B<mq_open>(3)  に対して適用され"
6841 "る。 ユーザが作成した各々のメッセージキューのバイト数は 以下の式により計算さ"
6842 "れ、(そのキューが削除されるまでの間)  この制限の計算対象に含められる。"
6843
6844 #. type: Plain text
6845 #: build/C/man2/getrlimit.2:254
6846 #, no-wrap
6847 msgid ""
6848 "    bytes = attr.mq_maxmsg * sizeof(struct msg_msg *) +\n"
6849 "            attr.mq_maxmsg * attr.mq_msgsize\n"
6850 msgstr ""
6851 "    bytes = attr.mq_maxmsg * sizeof(struct msg_msg *) +\n"
6852 "            attr.mq_maxmsg * attr.mq_msgsize\n"
6853
6854 #. type: Plain text
6855 #: build/C/man2/getrlimit.2:262
6856 msgid ""
6857 "where I<attr> is the I<mq_attr> structure specified as the fourth argument "
6858 "to B<mq_open>(3)."
6859 msgstr ""
6860 "ここで I<attr> は I<mq_attr> 構造体であり、 B<mq_open>(3)  の第 4 引き数とし"
6861 "て指定される。"
6862
6863 #. type: Plain text
6864 #: build/C/man2/getrlimit.2:268
6865 msgid ""
6866 "The first addend in the formula, which includes I<sizeof(struct msg_msg\\ *)"
6867 "> (4 bytes on Linux/i386), ensures that the user cannot create an unlimited "
6868 "number of zero-length messages (such messages nevertheless each consume some "
6869 "system memory for bookkeeping overhead)."
6870 msgstr ""
6871 "I<sizeof(struct msg_msg\\ *)> (Linux/i386 では 4 バイト) を含む最初の加数"
6872 "は、 ユーザーが長さ 0 のメッセージを無制限に作れないこと保証している (このよ"
6873 "うなメッセージであっても、 記録のためのオーバーヘッドでシステムメモリを消費す"
6874 "る)。"
6875
6876 #. type: TP
6877 #: build/C/man2/getrlimit.2:268
6878 #, no-wrap
6879 msgid "B<RLIMIT_NICE> (since Linux 2.6.12, but see BUGS below)"
6880 msgstr "B<RLIMIT_NICE> (Linux 2.6.12 以降, 下記の「バグ」の節も参照)"
6881
6882 #. type: Plain text
6883 #: build/C/man2/getrlimit.2:281
6884 msgid ""
6885 "Specifies a ceiling to which the process's nice value can be raised using "
6886 "B<setpriority>(2)  or B<nice>(2).  The actual ceiling for the nice value is "
6887 "calculated as I<20\\ -\\ rlim_cur>.  (This strangeness occurs because "
6888 "negative numbers cannot be specified as resource limit values, since they "
6889 "typically have special meanings.  For example, B<RLIM_INFINITY> typically is "
6890 "the same as -1.)"
6891 msgstr ""
6892 "B<setpriority>(2)  や B<nice>(2)  を使って引き上げられるプロセスの nice 値の"
6893 "上限を指定する。 nice 値の実際の上限は I<20\\ -\\ rlim_cur> で計算される (こ"
6894 "のような変な状況は、リソース制限値として負の数を指定できないため 発生する。通"
6895 "常、負の値は特別な意味を持っているからである。 例えば、通常は "
6896 "B<RLIM_INFINITY> の値は -1 である)。"
6897
6898 #. type: TP
6899 #: build/C/man2/getrlimit.2:281
6900 #, no-wrap
6901 msgid "B<RLIMIT_NOFILE>"
6902 msgstr "B<RLIMIT_NOFILE>"
6903
6904 #. type: Plain text
6905 #: build/C/man2/getrlimit.2:295
6906 msgid ""
6907 "Specifies a value one greater than the maximum file descriptor number that "
6908 "can be opened by this process.  Attempts (B<open>(2), B<pipe>(2), B<dup>(2), "
6909 "etc.)  to exceed this limit yield the error B<EMFILE>.  (Historically, this "
6910 "limit was named B<RLIMIT_OFILE> on BSD.)"
6911 msgstr ""
6912 "このプロセスがオープンできるファイルディスクリプタ数の最大値より 1 大きい値を"
6913 "指定する。 (B<open>(2), B<pipe>(2), B<dup>(2)  などにより) この上限を超えよう"
6914 "とした場合、エラー B<EMFILE> が発生する (歴史的に、BSD ではこの上限は "
6915 "B<RLIMIT_OFILE> という名前となっている)。"
6916
6917 #. type: TP
6918 #: build/C/man2/getrlimit.2:295
6919 #, no-wrap
6920 msgid "B<RLIMIT_NPROC>"
6921 msgstr "B<RLIMIT_NPROC>"
6922
6923 #. type: Plain text
6924 #: build/C/man2/getrlimit.2:303
6925 msgid ""
6926 "The maximum number of processes (or, more precisely on Linux, threads)  that "
6927 "can be created for the real user ID of the calling process.  Upon "
6928 "encountering this limit, B<fork>(2)  fails with the error B<EAGAIN>."
6929 msgstr ""
6930 "呼び出したプロセスの実ユーザー ID で作成できる最大プロセス数 (より正確には "
6931 "Linux ではスレッド数)。 この上限に達すると、 B<fork>(2)  はエラー B<EAGAIN> "
6932 "で失敗する。"
6933
6934 #. type: TP
6935 #: build/C/man2/getrlimit.2:303
6936 #, no-wrap
6937 msgid "B<RLIMIT_RSS>"
6938 msgstr "B<RLIMIT_RSS>"
6939
6940 #.  As at kernel 2.6.12, this limit still does nothing in 2.6 though
6941 #.  talk of making it do something has surfaced from time to time in LKML
6942 #.        -- MTK, Jul 05
6943 #. type: Plain text
6944 #: build/C/man2/getrlimit.2:315
6945 msgid ""
6946 "Specifies the limit (in pages) of the process's resident set (the number of "
6947 "virtual pages resident in RAM).  This limit has effect only in Linux 2.4.x, "
6948 "x E<lt> 30, and there affects only calls to B<madvise>(2)  specifying "
6949 "B<MADV_WILLNEED>."
6950 msgstr ""
6951 "プロセスの resident set (RAM 上に存在する仮想ページの数) の 上限を (ページ数"
6952 "で) 指定する。 この制限は 2.4.30 より前でしか影響がなく、 B<madvise>(2)  に "
6953 "B<MADV_WILLNEED> を指定した関数コールにしか影響しない。"
6954
6955 #. type: TP
6956 #: build/C/man2/getrlimit.2:315
6957 #, no-wrap
6958 msgid "B<RLIMIT_RTPRIO> (Since Linux 2.6.12, but see BUGS)"
6959 msgstr "B<RLIMIT_RTPRIO> (Linux 2.6.12 以降, バグの節も参照)"
6960
6961 #. type: Plain text
6962 #: build/C/man2/getrlimit.2:322
6963 msgid ""
6964 "Specifies a ceiling on the real-time priority that may be set for this "
6965 "process using B<sched_setscheduler>(2)  and B<sched_setparam>(2)."
6966 msgstr ""
6967 "B<sched_setscheduler>(2)  や B<sched_setparam>(2)  を使って設定できる、そのプ"
6968 "ロセスのリアルタイム優先度の上限を指定する。"
6969
6970 #. type: TP
6971 #: build/C/man2/getrlimit.2:322
6972 #, no-wrap
6973 msgid "B<RLIMIT_RTTIME> (Since Linux 2.6.25)"
6974 msgstr "B<RLIMIT_RTTIME> (Linux 2.6.25 以降)"
6975
6976 #. type: Plain text
6977 #: build/C/man2/getrlimit.2:334
6978 msgid ""
6979 "Specifies a limit (in microseconds)  on the amount of CPU time that a "
6980 "process scheduled under a real-time scheduling policy may consume without "
6981 "making a blocking system call.  For the purpose of this limit, each time a "
6982 "process makes a blocking system call, the count of its consumed CPU time is "
6983 "reset to zero.  The CPU time count is not reset if the process continues "
6984 "trying to use the CPU but is preempted, its time slice expires, or it calls "
6985 "B<sched_yield>(2)."
6986 msgstr ""
6987 "リアルタイムスケジューリング方針でスケジューリングされるプロセスが ブロッキン"
6988 "グ型のシステムコールを呼び出さずに消費することのできる CPU 時間の合計について"
6989 "の上限を (マイクロ秒単位で) 指定する。 この上限の目的のため、プロセスがブロッ"
6990 "キング型のシステムコールを 呼び出す度に、消費された CPU 時間のカウントは 0 に"
6991 "リセットされる。 プロセスが CPU を使い続けようとしたが他のプロセスに置き換え"
6992 "られた (preempted) 場合や、そのプロセスのタイムスライスが満了した場合、 その"
6993 "プロセスが B<sched_yield>(2)  を呼び出した場合は、CPU 時間のカウントはリセッ"
6994 "トされない。"
6995
6996 #. type: Plain text
6997 #: build/C/man2/getrlimit.2:345
6998 msgid ""
6999 "Upon reaching the soft limit, the process is sent a B<SIGXCPU> signal.  If "
7000 "the process catches or ignores this signal and continues consuming CPU time, "
7001 "then B<SIGXCPU> will be generated once each second until the hard limit is "
7002 "reached, at which point the process is sent a B<SIGKILL> signal."
7003 msgstr ""
7004 "ソフトリミットに達すると、そのプロセスに B<SIGXCPU> シグナルが送られる。その"
7005 "プロセスがこのシグナルを捕捉するか 無視して、CPU 時間を消費し続けた場合に"
7006 "は、 ハードリミットに達するまで 1 秒に 1 回 B<SIGXCPU> が生成され続けることに"
7007 "なる。 ハードリミットに達した時点で、そのプロセスには B<SIGKILL> シグナルが送"
7008 "られる。"
7009
7010 #. type: Plain text
7011 #: build/C/man2/getrlimit.2:348
7012 msgid ""
7013 "The intended use of this limit is to stop a runaway real-time process from "
7014 "locking up the system."
7015 msgstr ""
7016 "この上限を意図的に使用するのは、暴走したリアルタイムプロセスを 停止して、シス"
7017 "テムが動かなくなるのを避ける場合である。"
7018
7019 #. type: TP
7020 #: build/C/man2/getrlimit.2:348
7021 #, no-wrap
7022 msgid "B<RLIMIT_SIGPENDING> (Since Linux 2.6.8)"
7023 msgstr "B<RLIMIT_SIGPENDING> (Linux 2.6.8 以降)"
7024
7025 #.  This replaces the /proc/sys/kernel/rtsig-max system-wide limit
7026 #.  that was present in kernels <= 2.6.7.  MTK Dec 04
7027 #. type: Plain text
7028 #: build/C/man2/getrlimit.2:362
7029 msgid ""
7030 "Specifies the limit on the number of signals that may be queued for the real "
7031 "user ID of the calling process.  Both standard and real-time signals are "
7032 "counted for the purpose of checking this limit.  However, the limit is "
7033 "enforced only for B<sigqueue>(3); it is always possible to use B<kill>(2)  "
7034 "to queue one instance of any of the signals that are not already queued to "
7035 "the process."
7036 msgstr ""
7037 "呼び出し元プロセスの実ユーザー ID に対して キューに入れられるシグナルの\n"
7038 "数の制限を指定する。この制限をチェックするため、標準シグナルとリアルタ\n"
7039 "イムシグナルの両方がカウントされる。しかし、この制限は B<sigqueue>(3)\n"
7040 "に対してのみ適用され、 B<kill>(2) 使うことで、そのプロセスに対してま\n"
7041 "だキューに入れられていない シグナルのインスタンスをキューに入れることが\n"
7042 "できる。"
7043
7044 #. type: TP
7045 #: build/C/man2/getrlimit.2:362
7046 #, no-wrap
7047 msgid "B<RLIMIT_STACK>"
7048 msgstr "B<RLIMIT_STACK>"
7049
7050 #. type: Plain text
7051 #: build/C/man2/getrlimit.2:370
7052 msgid ""
7053 "The maximum size of the process stack, in bytes.  Upon reaching this limit, "
7054 "a B<SIGSEGV> signal is generated.  To handle this signal, a process must "
7055 "employ an alternate signal stack (B<sigaltstack>(2))."
7056 msgstr ""
7057 "プロセススタックの最大サイズをバイト単位で指定する。 この上限に達すると、 "
7058 "B<SIGSEGV> シグナルが生成される。 このシグナルを扱うためには、 プロセスは代り"
7059 "のシグナルスタック (B<sigaltstack>(2))  を使用しなければならない。"
7060
7061 #. type: Plain text
7062 #: build/C/man2/getrlimit.2:375
7063 msgid ""
7064 "Since Linux 2.6.23, this limit also determines the amount of space used for "
7065 "the process's command-line arguments and environment variables; for details, "
7066 "see B<execve>(2)."
7067 msgstr ""
7068 "Linux 2.6.23 以降では、この制限はプロセスのコマンドライン引き数と環境変数 に"
7069 "使用される空間の合計サイズの上限の決定にも使用される。詳細については "
7070 "B<execve>(2)  を参照。"
7071
7072 #. type: SS
7073 #: build/C/man2/getrlimit.2:375
7074 #, no-wrap
7075 msgid "prlimit()"
7076 msgstr "prlimit()"
7077
7078 #.  commit c022a0acad534fd5f5d5f17280f6d4d135e74e81
7079 #.  Author: Jiri Slaby <jslaby@suse.cz>
7080 #.  Date:   Tue May 4 18:03:50 2010 +0200
7081 #. type: Plain text
7082 #: build/C/man2/getrlimit.2:386
7083 msgid ""
7084 "The Linux-specific B<prlimit>()  system call combines and extends the "
7085 "functionality of B<setrlimit>()  and B<getrlimit>().  It can be used to both "
7086 "set and get the resource limits of an arbitrary process."
7087 msgstr ""
7088 "Linux 固有の B<prlimit>() システムコールは、 B<setrlimit>() と B<getrlimit> "
7089 "の機能を合わせて拡張したものである。 このシステムコールを使って、任意のプロセ"
7090 "スのリソース上限の設定と取得を行うことができる。"
7091
7092 #. type: Plain text
7093 #: build/C/man2/getrlimit.2:393
7094 msgid ""
7095 "The I<resource> argument has the same meaning as for B<setrlimit>()  and "
7096 "B<getrlimit>()."
7097 msgstr ""
7098 "I<resource> 引き数は B<setrlimit>() や B<getrlimit>() と同じ意味である。"
7099
7100 #. type: Plain text
7101 #: build/C/man2/getrlimit.2:411
7102 msgid ""
7103 "If the I<new_limit> argument is a not NULL, then the I<rlimit> structure to "
7104 "which it points is used to set new values for the soft and hard limits for "
7105 "I<resource>.  If the I<old_limit> argument is a not NULL, then a successful "
7106 "call to B<prlimit>()  places the previous soft and hard limits for "
7107 "I<resource> in the I<rlimit> structure pointed to by I<old_limit>."
7108 msgstr ""
7109 "I<new_limit> 引き数が NULL 以外の場合、 I<new_limit> が指す I<rlimit> 構造体"
7110 "を使って I<resource> のソフトリミットとハードリミットの新しい値が設定され"
7111 "る。 I<old_limit> 引き数が NULL 以外の場合、 B<prlimit>() の呼び出しが成功す"
7112 "ると、 I<resource> の直前のソフトリミットとハードリミットが I<old_limit> が指"
7113 "す I<rlimit> 構造体に格納される。"
7114
7115 #.  FIXME this permission check is strange
7116 #.  Asked about this on LKML, 7 Nov 2010
7117 #.      "Inconsistent credential checking in prlimit() syscall"
7118 #. type: Plain text
7119 #: build/C/man2/getrlimit.2:430
7120 msgid ""
7121 "The I<pid> argument specifies the ID of the process on which the call is to "
7122 "operate.  If I<pid> is 0, then the call applies to the calling process.  To "
7123 "set or get the resources of a process other than itself, the caller must "
7124 "have the B<CAP_SYS_RESOURCE> capability, or the real, effective, and saved "
7125 "set user IDs of the target process must match the real user ID of the caller "
7126 "I<and> the real, effective, and saved set group IDs of the target process "
7127 "must match the real group ID of the caller."
7128 msgstr ""
7129 "I<pid> 引き数は呼び出しの操作対象となるプロセス ID を指定する。 I<pid> が 0 "
7130 "の場合、呼び出しは呼び出し元プロセスに対して適用される。 自分以外のプロセスの"
7131 "リソースの設定と取得を行うためには、 呼び出し元プロセスが "
7132 "B<CAP_SYS_RESOURCE> ケーパビリティを持っているか、 対象となるプロセスの実ユー"
7133 "ザ ID、 実効ユーザ ID、 保存 set-user-ID が呼び出し元プロセスの実ユーザ ID と"
7134 "一致し、 かつ、 対象となるプロセスの実グループ ID、 実効グループ ID、 保存 "
7135 "set-group-ID が呼び出し元プロセスの実グループ ID と一致していなければならな"
7136 "い。"
7137
7138 #. type: Plain text
7139 #: build/C/man2/getrlimit.2:435
7140 msgid ""
7141 "On success, these system calls return 0.  On error, -1 is returned, and "
7142 "I<errno> is set appropriately."
7143 msgstr ""
7144 "成功した場合、これらのシステムコールは 0 を返す。\n"
7145 "エラーの場合は -1 が返され、 I<errno> が適切に設定される。"
7146
7147 #. type: Plain text
7148 #: build/C/man2/getrlimit.2:440
7149 msgid ""
7150 "A pointer argument points to a location outside the accessible address space."
7151 msgstr "場所を指すポインタ引き数がアクセス可能なアドレス空間外を指している。"
7152
7153 #. type: Plain text
7154 #: build/C/man2/getrlimit.2:452
7155 msgid ""
7156 "The value specified in I<resource> is not valid; or, for B<setrlimit>()  or "
7157 "B<prlimit>(): I<rlim-E<gt>rlim_cur> was greater than I<rlim-E<gt>rlim_max>."
7158 msgstr ""
7159 "I<resource> で指定された値が有効でない。\n"
7160 "または、 B<setrlimit>() や B<prlimit>() で、\n"
7161 "I<rlim-E<gt>rlim_cur> が I<rlim-E<gt>rlim_max> よりも大きかった。"
7162
7163 #. type: Plain text
7164 #: build/C/man2/getrlimit.2:464
7165 msgid ""
7166 "An unprivileged process tried to raise the hard limit; the "
7167 "B<CAP_SYS_RESOURCE> capability is required to do this.  Or, the caller tried "
7168 "to increase the hard B<RLIMIT_NOFILE> limit above the current kernel maximum "
7169 "(B<NR_OPEN>).  Or, the calling process did not have permission to set limits "
7170 "for the process specified by I<pid>."
7171 msgstr ""
7172 "特権のないプロセスがハードリミットを上げようとした。\n"
7173 "これを行うためには B<CAP_SYS_RESOURCE> ケーパビリティが必要である。\n"
7174 "または、特権のないプロセスが B<RLIMIT_NOFILE> ハードリミットを\n"
7175 "現在のカーネルの最大値 (B<NR_OPEN>) 以上に増やそうとした。\n"
7176 "または、呼び出したプロセスが I<pid> で指定されたプロセスのリミットを\n"
7177 "設定する許可を持っていなかった。"
7178
7179 #. type: Plain text
7180 #: build/C/man2/getrlimit.2:468
7181 msgid "Could not find a process with the ID specified in I<pid>."
7182 msgstr "I<pid> で指定された ID のプロセスが見つからなかった。"
7183
7184 #. type: Plain text
7185 #: build/C/man2/getrlimit.2:473
7186 msgid ""
7187 "The B<prlimit>()  system call is available since Linux 2.6.36.  Library "
7188 "support is available since glibc 2.13."
7189 msgstr ""
7190 "B<prlimit>() システムコールは Linux 2.6.36 以降で利用できる。 ライブラリのサ"
7191 "ポートは glibc 2.13 以降で利用できる。"
7192
7193 #. type: Plain text
7194 #: build/C/man2/getrlimit.2:477
7195 msgid "B<getrlimit>(), B<setrlimit>(): SVr4, 4.3BSD, POSIX.1-2001."
7196 msgstr "B<getrlimit>(), B<setrlimit>(): SVr4, 4.3BSD, POSIX.1-2001."
7197
7198 #. type: Plain text
7199 #: build/C/man2/getrlimit.2:480
7200 msgid "B<prlimit>(): Linux-specific."
7201 msgstr "B<prlimit>(): Linux 固有。"
7202
7203 #. type: Plain text
7204 #: build/C/man2/getrlimit.2:496
7205 msgid ""
7206 "B<RLIMIT_MEMLOCK> and B<RLIMIT_NPROC> derive from BSD and are not specified "
7207 "in POSIX.1-2001; they are present on the BSDs and Linux, but on few other "
7208 "implementations.  B<RLIMIT_RSS> derives from BSD and is not specified in "
7209 "POSIX.1-2001; it is nevertheless present on most implementations.  "
7210 "B<RLIMIT_MSGQUEUE>, B<RLIMIT_NICE>, B<RLIMIT_RTPRIO>, B<RLIMIT_RTTIME>, and "
7211 "B<RLIMIT_SIGPENDING> are Linux-specific."
7212 msgstr ""
7213 "B<RLIMIT_MEMLOCK> と B<RLIMIT_NPROC> は BSD から派生し、\n"
7214 "POSIX.1-2001 には指定されていない。\n"
7215 "これらは BSD 系と Linux に存在するが、他の実装は少ない。\n"
7216 "B<RLIMIT_RSS> は BSD から派生し、POSIX.1-2001 には指定されていない。\n"
7217 "それにも関わらず多くの実装で存在する。\n"
7218 "B<RLIMIT_MSGQUEUE>, B<RLIMIT_NICE>, B<RLIMIT_RTPRIO>, B<RLIMIT_RTTIME>,\n"
7219 "B<RLIMIT_SIGPENDING> は Linux 固有のものである。"
7220
7221 #. type: Plain text
7222 #: build/C/man2/getrlimit.2:502
7223 msgid ""
7224 "A child process created via B<fork>(2)  inherits its parent's resource "
7225 "limits.  Resource limits are preserved across B<execve>(2)."
7226 msgstr ""
7227 "B<fork>(2)  で作成された作成された子プロセスは、 親プロセスのリソース制限を継"
7228 "承する。 B<execve>(2)  の前後でリソース制限は保存される。"
7229
7230 #. type: Plain text
7231 #: build/C/man2/getrlimit.2:511
7232 msgid ""
7233 "One can set the resource limits of the shell using the built-in I<ulimit> "
7234 "command (I<limit> in B<csh>(1)).  The shell's resource limits are inherited "
7235 "by the processes that it creates to execute commands."
7236 msgstr ""
7237 "シェルのリソース制限は、シェルの組み込みコマンドである I<ulimit> (B<csh>(1)  "
7238 "では I<limit )> を使って設定することができる。 このシェルのリソース制限は、コ"
7239 "マンドを実行してシェルが生成するプロセス に引き継がれる。"
7240
7241 #. type: Plain text
7242 #: build/C/man2/getrlimit.2:516
7243 msgid ""
7244 "Since Linux 2.6.24, the resource limits of any process can be inspected via "
7245 "I</proc/[pid]/limits>; see B<proc>(5)."
7246 msgstr ""
7247 "Linux 2.6.24 以降では、 プロセスのリソース上限は I</proc/[pid]/limits> で知る"
7248 "ことができる。 B<proc>(5) 参照。"
7249
7250 #. type: Plain text
7251 #: build/C/man2/getrlimit.2:525
7252 msgid ""
7253 "Ancient systems provided a B<vlimit>()  function with a similar purpose to "
7254 "B<setrlimit>().  For backward compatibility, glibc also provides B<vlimit>"
7255 "().  All new applications should be written using B<setrlimit>()."
7256 msgstr ""
7257 "古いシステムでは、 B<setrlimit>()  と同様の目的を持つ関数 B<vlimit>()  が提供"
7258 "されていた。 後方互換性のため、glibc でも B<vlimit>()  を提供している。 全て"
7259 "の新しいアプリケーションでは、 B<setrlimit>()  を使用すべきである。"
7260
7261 #.  FIXME prlimit() does not suffer
7262 #.  https://bugzilla.kernel.org/show_bug.cgi?id=5042
7263 #.  http://sources.redhat.com/bugzilla/show_bug.cgi?id=12201
7264 #.  Since versions 2.13, glibc has library implementations of
7265 #.  getrlimit() and setrlimit() that use prlimit() to work around
7266 #.  this bug.
7267 #. type: Plain text
7268 #: build/C/man2/getrlimit.2:540
7269 msgid ""
7270 "In older Linux kernels, the B<SIGXCPU> and B<SIGKILL> signals delivered when "
7271 "a process encountered the soft and hard B<RLIMIT_CPU> limits were delivered "
7272 "one (CPU) second later than they should have been.  This was fixed in kernel "
7273 "2.6.8."
7274 msgstr ""
7275 "以前の Linux カーネルでは、プロセスがソフトまたはハード B<RLIMIT_CPU> リミッ"
7276 "トに達した場合に送られる B<SIGXCPU> と B<SIGKILL> シグナルが、本来送られるべ"
7277 "き時点の 1 (CPU) 秒後に送られてしまう。 これはカーネル 2.6.8 で修正された。"
7278
7279 #.  see http://marc.theaimsgroup.com/?l=linux-kernel&m=114008066530167&w=2
7280 #. type: Plain text
7281 #: build/C/man2/getrlimit.2:548
7282 msgid ""
7283 "In 2.6.x kernels before 2.6.17, a B<RLIMIT_CPU> limit of 0 is wrongly "
7284 "treated as \"no limit\" (like B<RLIM_INFINITY>).  Since Linux 2.6.17, "
7285 "setting a limit of 0 does have an effect, but is actually treated as a limit "
7286 "of 1 second."
7287 msgstr ""
7288 "2.6.17 より前の 2.6.x カーネルでは、 B<RLIMIT_CPU> リミットが 0 の場合、 "
7289 "(B<RLIM_INFINITY> と同じように) 「制限なし」と間違って解釈されていた。 Linux "
7290 "2.6.17 以降では、リミットを 0 に設定した場合にも 効果を持つようになっている"
7291 "が、実際にはリミットの値は 1 秒となる。"
7292
7293 #.  See https://lwn.net/Articles/145008/
7294 #. type: Plain text
7295 #: build/C/man2/getrlimit.2:553
7296 msgid ""
7297 "A kernel bug means that B<RLIMIT_RTPRIO> does not work in kernel 2.6.12; the "
7298 "problem is fixed in kernel 2.6.13."
7299 msgstr ""
7300 "カーネル 2.6.12 には、 B<RLIMIT_RTPRIO> が動作しないというバグがある。この問"
7301 "題はカーネル 2.6.13 で修正されている。"
7302
7303 #.  see http://marc.theaimsgroup.com/?l=linux-kernel&m=112256338703880&w=2
7304 #. type: Plain text
7305 #: build/C/man2/getrlimit.2:564
7306 msgid ""
7307 "In kernel 2.6.12, there was an off-by-one mismatch between the priority "
7308 "ranges returned by B<getpriority>(2)  and B<RLIMIT_NICE>.  This had the "
7309 "effect that the actual ceiling for the nice value was calculated as I<19\\ -"
7310 "\\ rlim_cur>.  This was fixed in kernel 2.6.13."
7311 msgstr ""
7312 "カーネル 2.6.12 では、 B<getpriority>(2)  と B<RLIMIT_NICE> が返す優先度の範"
7313 "囲が一つずれていた。このため、nice 値の実際の上限が I<19\\ -\\ rlim_cur> に"
7314 "なってしまうという影響があった。これはカーネル 2.6.13 で修正された。"
7315
7316 #.  The relevant patch, sent to LKML, seems to be
7317 #.  http://thread.gmane.org/gmane.linux.kernel/273462
7318 #.  From: Roland McGrath <roland <at> redhat.com>
7319 #.  Subject: [PATCH 7/7] make RLIMIT_CPU/SIGXCPU per-process
7320 #.  Date: 2005-01-23 23:27:46 GMT
7321 #.  Tested Solaris 10, FreeBSD 9, OpenBSD 5.0
7322 #.  FIXME https://bugzilla.kernel.org/show_bug.cgi?id=50951
7323 #. type: Plain text
7324 #: build/C/man2/getrlimit.2:591
7325 msgid ""
7326 "Since Linux 2.6.12, if a process reaches its soft B<RLIMIT_CPU> limit and "
7327 "has a handler installed for B<SIGXCPU>, then, in addition to invoking the "
7328 "signal handler, the kernel increases the soft limit by one second.  This "
7329 "behavior repeats if the process continues to consume CPU time, until the "
7330 "hard limit is reached, at which point the process is killed.  Other "
7331 "implementations do not change the B<RLIMIT_CPU> soft limit in this manner, "
7332 "and the Linux behavior is probably not standards conformant; portable "
7333 "applications should avoid relying on this Linux-specific behavior.  The "
7334 "Linux-specific B<RLIMIT_RTTIME> limit exhibits the same behavior when the "
7335 "soft limit is encountered."
7336 msgstr ""
7337 "Linux 2.6.12 以降では、 プロセスがその B<RLIMIT_CPU> ソフトリミットに達し、 "
7338 "B<SIGXCPU> に対してシグナルハンドラが設定されている場合、 シグナルハンドラを"
7339 "起動するだけでなく、 カーネルは 1 秒間ソフトリミットを増やす。 そのプロセス"
7340 "が CPU 時間を消費し続けている限り、 ハードリミットに達するまで、この動作が繰"
7341 "り返される。 ハードリミットに達すると、その時点でプロセスは kill される。 他"
7342 "の実装では、上記のような B<RLIMIT_CPU> ソフトリミットの変更は行われず、 おそ"
7343 "らく Linux の動作は標準に準拠していない。 移植性が必要なアプリケーションでは"
7344 "この Linux 固有の動作を前提にするのは避けるべきである。 Linux 固有の上限 "
7345 "B<RLIMIT_RTTIME> でも、 ソフトリミットに達した場合に同じ動作となる。"
7346
7347 #. type: Plain text
7348 #: build/C/man2/getrlimit.2:600
7349 msgid ""
7350 "Kernels before 2.4.22 did not diagnose the error B<EINVAL> for B<setrlimit>"
7351 "()  when I<rlim-E<gt>rlim_cur> was greater than I<rlim-E<gt>rlim_max>."
7352 msgstr ""
7353 "2.4.22 より前のカーネルでは、 I<rlim-E<gt>rlim_cur> が I<rlim-E<gt>rlim_max> "
7354 "より大きかった場合、 B<setrlimit>()  での B<EINVAL> エラーを検出できない。"
7355
7356 #. type: Plain text
7357 #: build/C/man2/getrlimit.2:603
7358 msgid "The program below demonstrates the use of B<prlimit>()."
7359 msgstr "以下のプログラムに B<prlimit>() の使用例を示す。"
7360
7361 #. type: Plain text
7362 #: build/C/man2/getrlimit.2:612
7363 #, no-wrap
7364 msgid ""
7365 "#define _GNU_SOURCE\n"
7366 "#define _FILE_OFFSET_BITS 64\n"
7367 "#include E<lt>stdio.hE<gt>\n"
7368 "#include E<lt>time.hE<gt>\n"
7369 "#include E<lt>stdlib.hE<gt>\n"
7370 "#include E<lt>unistd.hE<gt>\n"
7371 "#include E<lt>sys/resource.hE<gt>\n"
7372 msgstr ""
7373 "#define _GNU_SOURCE\n"
7374 "#define _FILE_OFFSET_BITS 64\n"
7375 "#include E<lt>stdio.hE<gt>\n"
7376 "#include E<lt>time.hE<gt>\n"
7377 "#include E<lt>stdlib.hE<gt>\n"
7378 "#include E<lt>unistd.hE<gt>\n"
7379 "#include E<lt>sys/resource.hE<gt>\n"
7380
7381 #. type: Plain text
7382 #: build/C/man2/getrlimit.2:615
7383 #, no-wrap
7384 msgid ""
7385 "#define errExit(msg) \tdo { perror(msg); exit(EXIT_FAILURE); \\e\n"
7386 "                        } while (0)\n"
7387 msgstr ""
7388 "#define errExit(msg) \tdo { perror(msg); exit(EXIT_FAILURE); \\e\n"
7389 "                        } while (0)\n"
7390
7391 #. type: Plain text
7392 #: build/C/man2/getrlimit.2:622
7393 #, no-wrap
7394 msgid ""
7395 "int\n"
7396 "main(int argc, char *argv[])\n"
7397 "{\n"
7398 "    struct rlimit old, new;\n"
7399 "    struct rlimit *newp;\n"
7400 "    pid_t pid;\n"
7401 msgstr ""
7402 "int\n"
7403 "main(int argc, char *argv[])\n"
7404 "{\n"
7405 "    struct rlimit old, new;\n"
7406 "    struct rlimit *newp;\n"
7407 "    pid_t pid;\n"
7408
7409 #. type: Plain text
7410 #: build/C/man2/getrlimit.2:628
7411 #, no-wrap
7412 msgid ""
7413 "    if (!(argc == 2 || argc == 4)) {\n"
7414 "        fprintf(stderr, \"Usage: %s E<lt>pidE<gt> [E<lt>new-soft-limitE<gt> \"\n"
7415 "                \"E<lt>new-hard-limitE<gt>]\\en\", argv[0]);\n"
7416 "        exit(EXIT_FAILURE);\n"
7417 "    }\n"
7418 msgstr ""
7419 "    if (!(argc == 2 || argc == 4)) {\n"
7420 "        fprintf(stderr, \"Usage: %s E<lt>pidE<gt> [E<lt>new-soft-limitE<gt> \"\n"
7421 "                \"E<lt>new-hard-limitE<gt>]\\en\", argv[0]);\n"
7422 "        exit(EXIT_FAILURE);\n"
7423 "    }\n"
7424
7425 #. type: Plain text
7426 #: build/C/man2/getrlimit.2:630
7427 #, no-wrap
7428 msgid "    pid = atoi(argv[1]);        /* PID of target process */\n"
7429 msgstr "    pid = atoi(argv[1]);        /* PID of target process */\n"
7430
7431 #. type: Plain text
7432 #: build/C/man2/getrlimit.2:637
7433 #, no-wrap
7434 msgid ""
7435 "    newp = NULL;\n"
7436 "    if (argc == 4) {\n"
7437 "        new.rlim_cur = atoi(argv[2]);\n"
7438 "        new.rlim_max = atoi(argv[3]);\n"
7439 "        newp = &new;\n"
7440 "    }\n"
7441 msgstr ""
7442 "    newp = NULL;\n"
7443 "    if (argc == 4) {\n"
7444 "        new.rlim_cur = atoi(argv[2]);\n"
7445 "        new.rlim_max = atoi(argv[3]);\n"
7446 "        newp = &new;\n"
7447 "    }\n"
7448
7449 #. type: Plain text
7450 #: build/C/man2/getrlimit.2:640
7451 #, no-wrap
7452 msgid ""
7453 "    /* Set CPU time limit of target process; retrieve and display\n"
7454 "       previous limit */\n"
7455 msgstr ""
7456 "    /* Set CPU time limit of target process; retrieve and display\n"
7457 "       previous limit */\n"
7458
7459 #. type: Plain text
7460 #: build/C/man2/getrlimit.2:645
7461 #, no-wrap
7462 msgid ""
7463 "    if (prlimit(pid, RLIMIT_CPU, newp, &old) == -1)\n"
7464 "        errExit(\"prlimit-1\");\n"
7465 "    printf(\"Previous limits: soft=%lld; hard=%lld\\en\",\n"
7466 "            (long long) old.rlim_cur, (long long) old.rlim_max);\n"
7467 msgstr ""
7468 "    if (prlimit(pid, RLIMIT_CPU, newp, &old) == -1)\n"
7469 "        errExit(\"prlimit-1\");\n"
7470 "    printf(\"Previous limits: soft=%lld; hard=%lld\\en\",\n"
7471 "            (long long) old.rlim_cur, (long long) old.rlim_max);\n"
7472
7473 #. type: Plain text
7474 #: build/C/man2/getrlimit.2:647
7475 #, no-wrap
7476 msgid "    /* Retrieve and display new CPU time limit */\n"
7477 msgstr "    /* Retrieve and display new CPU time limit */\n"
7478
7479 #. type: Plain text
7480 #: build/C/man2/getrlimit.2:652
7481 #, no-wrap
7482 msgid ""
7483 "    if (prlimit(pid, RLIMIT_CPU, NULL, &old) == -1)\n"
7484 "        errExit(\"prlimit-2\");\n"
7485 "    printf(\"New limits: soft=%lld; hard=%lld\\en\",\n"
7486 "            (long long) old.rlim_cur, (long long) old.rlim_max);\n"
7487 msgstr ""
7488 "    if (prlimit(pid, RLIMIT_CPU, NULL, &old) == -1)\n"
7489 "        errExit(\"prlimit-2\");\n"
7490 "    printf(\"New limits: soft=%lld; hard=%lld\\en\",\n"
7491 "            (long long) old.rlim_cur, (long long) old.rlim_max);\n"
7492
7493 #. type: Plain text
7494 #: build/C/man2/getrlimit.2:655
7495 #, no-wrap
7496 msgid ""
7497 "    exit(EXIT_FAILURE);\n"
7498 "}\n"
7499 msgstr ""
7500 "    exit(EXIT_FAILURE);\n"
7501 "}\n"
7502
7503 #. type: Plain text
7504 #: build/C/man2/getrlimit.2:674
7505 msgid ""
7506 "B<prlimit>(1), B<dup>(2), B<fcntl>(2), B<fork>(2), B<getrusage>(2), B<mlock>"
7507 "(2), B<mmap>(2), B<open>(2), B<quotactl>(2), B<sbrk>(2), B<shmctl>(2), "
7508 "B<malloc>(3), B<sigqueue>(3), B<ulimit>(3), B<core>(5), B<capabilities>(7), "
7509 "B<signal>(7)"
7510 msgstr ""
7511 "B<prlimit>(1), B<dup>(2), B<fcntl>(2), B<fork>(2), B<getrusage>(2), B<mlock>"
7512 "(2), B<mmap>(2), B<open>(2), B<quotactl>(2), B<sbrk>(2), B<shmctl>(2), "
7513 "B<malloc>(3), B<sigqueue>(3), B<ulimit>(3), B<core>(5), B<capabilities>(7), "
7514 "B<signal>(7)"
7515
7516 #. type: TH
7517 #: build/C/man2/getrusage.2:39
7518 #, no-wrap
7519 msgid "GETRUSAGE"
7520 msgstr "GETRUSAGE"
7521
7522 #. type: TH
7523 #: build/C/man2/getrusage.2:39 build/C/man2/getsid.2:26
7524 #, no-wrap
7525 msgid "2010-09-26"
7526 msgstr "2010-09-26"
7527
7528 #. type: Plain text
7529 #: build/C/man2/getrusage.2:42
7530 msgid "getrusage - get resource usage"
7531 msgstr "getrusage - 資源の使用量を取得する"
7532
7533 #. type: Plain text
7534 #: build/C/man2/getrusage.2:48
7535 msgid "B<int getrusage(int >I<who>B<, struct rusage *>I<usage>B<);>"
7536 msgstr "B<int getrusage(int >I<who>B<, struct rusage *>I<usage>B<);>"
7537
7538 #. type: Plain text
7539 #: build/C/man2/getrusage.2:54
7540 msgid ""
7541 "B<getrusage>()  returns resource usage measures for I<who>, which can be one "
7542 "of the following:"
7543 msgstr ""
7544 "B<getrusage>()  は I<who> の資源 (resource) の使用量を返す。 I<who> には以下"
7545 "のいずれか一つを指定できる。"
7546
7547 #. type: TP
7548 #: build/C/man2/getrusage.2:54
7549 #, no-wrap
7550 msgid "B<RUSAGE_SELF>"
7551 msgstr "B<RUSAGE_SELF>"
7552
7553 #. type: Plain text
7554 #: build/C/man2/getrusage.2:58
7555 msgid ""
7556 "Return resource usage statistics for the calling process, which is the sum "
7557 "of resources used by all threads in the process."
7558 msgstr ""
7559 "呼び出したプロセスの資源使用量、 そのプロセス内の全スレッドが使用している資源"
7560 "の合計を返す。"
7561
7562 #. type: TP
7563 #: build/C/man2/getrusage.2:58
7564 #, no-wrap
7565 msgid "B<RUSAGE_CHILDREN>"
7566 msgstr "B<RUSAGE_CHILDREN>"
7567
7568 #. type: Plain text
7569 #: build/C/man2/getrusage.2:65
7570 msgid ""
7571 "Return resource usage statistics for all children of the calling process "
7572 "that have terminated and been waited for.  These statistics will include the "
7573 "resources used by grandchildren, and further removed descendants, if all of "
7574 "the intervening descendants waited on their terminated children."
7575 msgstr ""
7576 "呼び出したプロセスの子プロセスのうち、 終了して待ち状態にある全プロセスが使用"
7577 "している資源使用量の統計を返す。 これらの統計情報には、孫プロセスやその子孫の"
7578 "プロセスのうち、 削除待ちのものが使用している資源も含まれる。"
7579
7580 #. type: TP
7581 #: build/C/man2/getrusage.2:65
7582 #, no-wrap
7583 msgid "B<RUSAGE_THREAD> (since Linux 2.6.26)"
7584 msgstr "B<RUSAGE_THREAD> (Linux 2.6.26 以降)"
7585
7586 #. type: Plain text
7587 #: build/C/man2/getrusage.2:68
7588 msgid "Return resource usage statistics for the calling thread."
7589 msgstr "呼び出したスレッドに関する資源使用量の統計を返す。"
7590
7591 #. type: Plain text
7592 #: build/C/man2/getrusage.2:72
7593 msgid ""
7594 "The resource usages are returned in the structure pointed to by I<usage>, "
7595 "which has the following form:"
7596 msgstr ""
7597 "資源使用量は I<usage> が指す構造体に格納されて返される。 構造体は以下の形式で"
7598 "ある。"
7599
7600 #. type: Plain text
7601 #: build/C/man2/getrusage.2:93
7602 #, no-wrap
7603 msgid ""
7604 "struct rusage {\n"
7605 "    struct timeval ru_utime; /* user CPU time used */\n"
7606 "    struct timeval ru_stime; /* system CPU time used */\n"
7607 "    long   ru_maxrss;        /* maximum resident set size */\n"
7608 "    long   ru_ixrss;         /* integral shared memory size */\n"
7609 "    long   ru_idrss;         /* integral unshared data size */\n"
7610 "    long   ru_isrss;         /* integral unshared stack size */\n"
7611 "    long   ru_minflt;        /* page reclaims (soft page faults) */\n"
7612 "    long   ru_majflt;        /* page faults (hard page faults) */\n"
7613 "    long   ru_nswap;         /* swaps */\n"
7614 "    long   ru_inblock;       /* block input operations */\n"
7615 "    long   ru_oublock;       /* block output operations */\n"
7616 "    long   ru_msgsnd;        /* IPC messages sent */\n"
7617 "    long   ru_msgrcv;        /* IPC messages received */\n"
7618 "    long   ru_nsignals;      /* signals received */\n"
7619 "    long   ru_nvcsw;         /* voluntary context switches */\n"
7620 "    long   ru_nivcsw;        /* involuntary context switches */\n"
7621 "};\n"
7622 msgstr ""
7623 "struct rusage {\n"
7624 "    struct timeval ru_utime; /* 使用されたユーザー CPU 時間 */\n"
7625 "    struct timeval ru_stime; /* 使用されたシステム CPU 時間 */\n"
7626 "    long   ru_maxrss;        /* RAM 上に存在する仮想ページのサイズ\n"
7627 "                               (resident set size) の最大値 */\n"
7628 "    long   ru_ixrss;         /* 共有メモリの合計サイズ */\n"
7629 "    long   ru_idrss;         /* 非共有データの合計サイズ */\n"
7630 "    long   ru_isrss;         /* 非共有スタックの合計サイズ */\n"
7631 "    long   ru_minflt;        /* ページの再利用 (ソフトページフォルト) */\n"
7632 "    long   ru_majflt;        /* ページフォールト (ハードページフォルト) */\n"
7633 "    long   ru_nswap;         /* スワップ */\n"
7634 "    long   ru_inblock;       /* ブロック入力操作 */\n"
7635 "    long   ru_oublock;       /* ブロック出力操作 */\n"
7636 "    long   ru_msgsnd;        /* 送信された IPC メッセージ */\n"
7637 "    long   ru_msgrcv;        /* 受信された IPC メッセージ */\n"
7638 "    long   ru_nsignals;      /* 受信されたシグナル */\n"
7639 "    long   ru_nvcsw;         /* 意図したコンテキスト切り替え */\n"
7640 "    long   ru_nivcsw;        /* 意図しないコンテキスト切り替え */\n"
7641 "};\n"
7642
7643 #. type: Plain text
7644 #: build/C/man2/getrusage.2:101
7645 msgid ""
7646 "Not all fields are completed; unmaintained fields are set to zero by the "
7647 "kernel.  (The unmaintained fields are provided for compatibility with other "
7648 "systems, and because they may one day be supported on Linux.)  The fields "
7649 "are interpreted as follows:"
7650 msgstr ""
7651 "すべてのフィールドがサポートされているわけではない。 メンテナンスされていない"
7652 "フィールドには、 カーネルが 0 を設定する (メンテナンスされていないフィールド"
7653 "は、 他のシステムとの互換性のために提供されており、 いつか Linux でもサポート"
7654 "されるかもしれない)。 各フィールドの詳細は以下の通りである。"
7655
7656 #. type: TP
7657 #: build/C/man2/getrusage.2:101
7658 #, no-wrap
7659 msgid "I<ru_utime>"
7660 msgstr "I<ru_utime>"
7661
7662 #. type: Plain text
7663 #: build/C/man2/getrusage.2:107
7664 msgid ""
7665 "This is the total amount of time spent executing in user mode, expressed in "
7666 "a I<timeval> structure (seconds plus microseconds)."
7667 msgstr ""
7668 "ユーザモードでの実行で消費された合計時間。 I<timeval> 構造体 (秒とミリ秒) で"
7669 "表現される。"
7670
7671 #. type: TP
7672 #: build/C/man2/getrusage.2:107
7673 #, no-wrap
7674 msgid "I<ru_stime>"
7675 msgstr "I<ru_stime>"
7676
7677 #. type: Plain text
7678 #: build/C/man2/getrusage.2:113
7679 msgid ""
7680 "This is the total amount of time spent executing in kernel mode, expressed "
7681 "in a I<timeval> structure (seconds plus microseconds)."
7682 msgstr ""
7683 "カーネルモードでの実行で消費された合計時間。 I<timeval> 構造体 (秒とミリ秒) "
7684 "で表現される。"
7685
7686 #. type: TP
7687 #: build/C/man2/getrusage.2:113
7688 #, no-wrap
7689 msgid "I<ru_maxrss> (since Linux 2.6.32)"
7690 msgstr "I<ru_maxrss> (Linux 2.6.32 以降)"
7691
7692 #. type: Plain text
7693 #: build/C/man2/getrusage.2:120
7694 msgid ""
7695 "This is the maximum resident set size used (in kilobytes).  For "
7696 "B<RUSAGE_CHILDREN>, this is the resident set size of the largest child, not "
7697 "the maximum resident set size of the process tree."
7698 msgstr ""
7699 "使用された resident set size の最大値 (キロバイト単位)。 B<RUSAGE_CHILDREN> "
7700 "の場合には、プロセスツリーの resident set size の最大値ではなく、 最も大きい"
7701 "子プロセスの resident set size となる。"
7702
7703 #. type: TP
7704 #: build/C/man2/getrusage.2:120
7705 #, no-wrap
7706 msgid "I<ru_ixrss> (unmaintained)"
7707 msgstr "I<ru_ixrss> (メンテナンスされていない)"
7708
7709 #.  On some systems, this field records the number of signals received.
7710 #. type: Plain text
7711 #: build/C/man2/getrusage.2:126 build/C/man2/getrusage.2:131
7712 #: build/C/man2/getrusage.2:136 build/C/man2/getrusage.2:148
7713 #: build/C/man2/getrusage.2:160 build/C/man2/getrusage.2:166
7714 #: build/C/man2/getrusage.2:170
7715 msgid "This field is currently unused on Linux."
7716 msgstr "このフィールドは現在のところ Linux では未使用である。"
7717
7718 #. type: TP
7719 #: build/C/man2/getrusage.2:126
7720 #, no-wrap
7721 msgid "I<ru_idrss> (unmaintained)"
7722 msgstr "I<ru_idrss> (メンテナンスされていない)"
7723
7724 #. type: TP
7725 #: build/C/man2/getrusage.2:131
7726 #, no-wrap
7727 msgid "I<ru_isrss> (unmaintained)"
7728 msgstr "I<ru_isrss> (メンテナンスされていない)"
7729
7730 #. type: TP
7731 #: build/C/man2/getrusage.2:136
7732 #, no-wrap
7733 msgid "I<ru_minflt>"
7734 msgstr "I<ru_minflt>"
7735
7736 #. type: Plain text
7737 #: build/C/man2/getrusage.2:141
7738 msgid ""
7739 "The number of page faults serviced without any I/O activity; here I/O "
7740 "activity is avoided by ``reclaiming'' a page frame from the list of pages "
7741 "awaiting reallocation."
7742 msgstr ""
7743 "I/O 動作なしで発生したページフォルトの回数。 再割り当てを待っているページリス"
7744 "トからページフレームを「回収」 (reclaim) することで、 I/O 動作を避けることが"
7745 "できる。"
7746
7747 #. type: TP
7748 #: build/C/man2/getrusage.2:141
7749 #, no-wrap
7750 msgid "I<ru_majflt>"
7751 msgstr "I<ru_majflt>"
7752
7753 #. type: Plain text
7754 #: build/C/man2/getrusage.2:144
7755 msgid "The number of page faults serviced that required I/O activity."
7756 msgstr "I/O 動作を必要とするページフォルトの回数。"
7757
7758 #. type: TP
7759 #: build/C/man2/getrusage.2:144
7760 #, no-wrap
7761 msgid "I<ru_nswap> (unmaintained)"
7762 msgstr "I<ru_nswap> (メンテナンスされていない)"
7763
7764 #. type: TP
7765 #: build/C/man2/getrusage.2:148
7766 #, no-wrap
7767 msgid "I<ru_inblock> (since Linux 2.6.22)"
7768 msgstr "I<ru_inblock> (Linux 2.6.22 以降)"
7769
7770 #. type: Plain text
7771 #: build/C/man2/getrusage.2:151
7772 msgid "The number of times the file system had to perform input."
7773 msgstr "ファイルシステムが入力を実行する必要があった回数。"
7774
7775 #. type: TP
7776 #: build/C/man2/getrusage.2:151
7777 #, no-wrap
7778 msgid "I<ru_oublock> (since Linux 2.6.22)"
7779 msgstr "I<ru_oublock> (Linux 2.6.22 以降)"
7780
7781 #. type: Plain text
7782 #: build/C/man2/getrusage.2:154
7783 msgid "The number of times the file system had to perform output."
7784 msgstr "ファイルシステムが出力を実行する必要があった回数。"
7785
7786 #. type: TP
7787 #: build/C/man2/getrusage.2:154
7788 #, no-wrap
7789 msgid "I<ru_msgsnd> (unmaintained)"
7790 msgstr "I<ru_msgsnd> (メンテナンスされていない)"
7791
7792 #. type: TP
7793 #: build/C/man2/getrusage.2:160
7794 #, no-wrap
7795 msgid "I<ru_msgrcv> (unmaintained)"
7796 msgstr "I<ru_msgrcv> (メンテナンスされていない)"
7797
7798 #. type: TP
7799 #: build/C/man2/getrusage.2:166
7800 #, no-wrap
7801 msgid "I<ru_nsignals> (unmaintained)"
7802 msgstr "I<ru_nsignals> (メンテナンスされていない)"
7803
7804 #. type: TP
7805 #: build/C/man2/getrusage.2:170
7806 #, no-wrap
7807 msgid "I<ru_nvcsw> (since Linux 2.6)"
7808 msgstr "I<ru_nvcsw> (Linux 2.6 以降)"
7809
7810 #. type: Plain text
7811 #: build/C/man2/getrusage.2:175
7812 msgid ""
7813 "The number of times a context switch resulted due to a process voluntarily "
7814 "giving up the processor before its time slice was completed (usually to "
7815 "await availability of a resource)."
7816 msgstr ""
7817 "自分のタイムスライスが完了する前にプロセスが自発的にプロセッサを解放して行わ"
7818 "れたコンテキストスイッチの回数 (通常はリソースが利用可能になるのを待つために"
7819 "行われる)。"
7820
7821 #. type: TP
7822 #: build/C/man2/getrusage.2:175
7823 #, no-wrap
7824 msgid "I<ru_nivcsw> (since Linux 2.6)"
7825 msgstr "I<memory_migrate> (Linux 2.6.16 以降)"
7826
7827 #. type: Plain text
7828 #: build/C/man2/getrusage.2:180
7829 msgid ""
7830 "The number of times a context switch resulted due to a higher priority "
7831 "process becoming runnable or because the current process exceeded its time "
7832 "slice."
7833 msgstr ""
7834 "優先度が自分より高いプロセッサが実行可能になったか、現在のプロセスが自分のタ"
7835 "イムスライスを超過したことにより行われたコンテキストスイッチの回数。"
7836
7837 #. type: Plain text
7838 #: build/C/man2/getrusage.2:191
7839 msgid "I<usage> points outside the accessible address space."
7840 msgstr "I<usage> がアクセス可能なアドレス空間の外を指している。"
7841
7842 #. type: Plain text
7843 #: build/C/man2/getrusage.2:195
7844 msgid "I<who> is invalid."
7845 msgstr "I<who> が無効である。"
7846
7847 #. type: Plain text
7848 #: build/C/man2/getrusage.2:203
7849 msgid ""
7850 "SVr4, 4.3BSD.  POSIX.1-2001 specifies B<getrusage>(), but specifies only the "
7851 "fields I<ru_utime> and I<ru_stime>."
7852 msgstr ""
7853 "SVr4, 4.3BSD.  POSIX.1-2001 は B<getrusage>()  を規定しているが、規定している"
7854 "フィールドは I<ru_utime> と I<ru_stime> だけである。"
7855
7856 #. type: Plain text
7857 #: build/C/man2/getrusage.2:206
7858 msgid "B<RUSAGE_THREAD> is Linux-specific."
7859 msgstr "B<RUSAGE_THREAD> は Linux 固有である。"
7860
7861 #. type: Plain text
7862 #: build/C/man2/getrusage.2:209
7863 msgid "Resource usage metrics are preserved across an B<execve>(2)."
7864 msgstr "B<execve>(2)  の前後でリソース使用量の指標は保持される。"
7865
7866 #. type: Plain text
7867 #: build/C/man2/getrusage.2:217
7868 msgid ""
7869 "Including I<E<lt>sys/time.hE<gt>> is not required these days, but increases "
7870 "portability.  (Indeed, I<struct timeval> is defined in I<E<lt>sys/time."
7871 "hE<gt>>.)"
7872 msgstr ""
7873 "今日では I<E<lt>sys/time.hE<gt>> をインクルードする必要はないが、 インクルー"
7874 "ドしておけば移植性が増す。 (実際 I<struct timeval> は I<E<lt>sys/time."
7875 "hE<gt>> で定義されている。)"
7876
7877 #.  See the description of getrusage() in XSH.
7878 #.  A similar statement was also in SUSv2.
7879 #. type: Plain text
7880 #: build/C/man2/getrusage.2:229
7881 msgid ""
7882 "In Linux kernel versions before 2.6.9, if the disposition of B<SIGCHLD> is "
7883 "set to B<SIG_IGN> then the resource usages of child processes are "
7884 "automatically included in the value returned by B<RUSAGE_CHILDREN>, although "
7885 "POSIX.1-2001 explicitly prohibits this.  This nonconformance is rectified in "
7886 "Linux 2.6.9 and later."
7887 msgstr ""
7888 "2.6.9 より前のバージョンの Linux カーネルでは、 B<SIGCHLD> の処理が "
7889 "B<SIG_IGN> に設定されていると、 子プロセスのリソース使用量が "
7890 "B<RUSAGE_CHILDREN> で返される値に自動的に含められる。 しかし POSIX.1-2001 で"
7891 "は、これを明確に禁止している。 この準拠していなかった点は、Linux 2.6.9 以降で"
7892 "改正された。"
7893
7894 #. type: Plain text
7895 #: build/C/man2/getrusage.2:232
7896 msgid ""
7897 "The structure definition shown at the start of this page was taken from "
7898 "4.3BSD Reno."
7899 msgstr "このページの最初で示した構造体の定義は 4.3BSD Reno のものである。"
7900
7901 #. type: Plain text
7902 #: build/C/man2/getrusage.2:241
7903 msgid ""
7904 "Ancient systems provided a B<vtimes>()  function with a similar purpose to "
7905 "B<getrusage>().  For backward compatibility, glibc also provides B<vtimes>"
7906 "().  All new applications should be written using B<getrusage>()."
7907 msgstr ""
7908 "古いシステムでは、 B<getrusage>() と同様の目的を持つ関数 B<vtimes>() が提供\n"
7909 "されていた。後方互換性のため、glibc でも B<vtimes>() を提供している。\n"
7910 "全ての新しいアプリケーションでは B<getrusage>() を使用すべきである。"
7911
7912 #. type: Plain text
7913 #: build/C/man2/getrusage.2:246
7914 msgid "See also the description of I</proc/PID/stat> in B<proc>(5)."
7915 msgstr "B<proc>(5)  にある I</proc/PID/stat> の説明も参照のこと。"
7916
7917 #. type: Plain text
7918 #: build/C/man2/getrusage.2:253
7919 msgid ""
7920 "B<clock_gettime>(2), B<getrlimit>(2), B<times>(2), B<wait>(2), B<wait4>(2), "
7921 "B<clock>(3)"
7922 msgstr ""
7923 "B<clock_gettime>(2), B<getrlimit>(2), B<times>(2), B<wait>(2), B<wait4>(2), "
7924 "B<clock>(3)"
7925
7926 #. type: TH
7927 #: build/C/man2/getsid.2:26
7928 #, no-wrap
7929 msgid "GETSID"
7930 msgstr "GETSID"
7931
7932 #. type: Plain text
7933 #: build/C/man2/getsid.2:29
7934 msgid "getsid - get session ID"
7935 msgstr "getsid - セッション ID を取得する。"
7936
7937 #. type: Plain text
7938 #: build/C/man2/getsid.2:33
7939 msgid "B<pid_t getsid(pid_t>I< pid>B<);>"
7940 msgstr "B<pid_t getsid(pid_t>I< pid>B<);>"
7941
7942 #. type: Plain text
7943 #: build/C/man2/getsid.2:42
7944 msgid "B<getsid>():"
7945 msgstr "B<getsid>():"
7946
7947 #. type: Plain text
7948 #: build/C/man2/getsid.2:45 build/C/man2/setpgid.2:79
7949 msgid ""
7950 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
7951 msgstr ""
7952 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
7953
7954 #. type: Plain text
7955 #: build/C/man2/getsid.2:47 build/C/man2/setpgid.2:81
7956 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
7957 msgstr "|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
7958
7959 #. type: Plain text
7960 #: build/C/man2/getsid.2:58
7961 msgid ""
7962 "I<getsid(0)> returns the session ID of the calling process.  I<getsid(p)> "
7963 "returns the session ID of the process with process ID I<p>.  (The session ID "
7964 "of a process is the process group ID of the session leader.)"
7965 msgstr ""
7966 "I<getsid(0)> は呼び出し元のプロセスのセッション ID を返す。 I<getsid(p)> はプ"
7967 "ロセス ID I<p> を持つプロセスのセッション ID を返す (プロセスのセッション ID "
7968 "は セッションリーダーのプロセスグループ ID である)。"
7969
7970 #. type: Plain text
7971 #: build/C/man2/getsid.2:63
7972 msgid ""
7973 "On success, a session ID is returned.  On error, I<(pid_t)\\ -1> will be "
7974 "returned, and I<errno> is set appropriately."
7975 msgstr ""
7976 "成功すると、セッション ID が返される。 エラーの場合、I<(pid_t) -1> が返さ"
7977 "れ、 I<errno> が適切に設定される。"
7978
7979 #. type: Plain text
7980 #: build/C/man2/getsid.2:70
7981 msgid ""
7982 "A process with process ID I<p> exists, but it is not in the same session as "
7983 "the calling process, and the implementation considers this an error."
7984 msgstr ""
7985 "プロセス ID I<p> のプロセスは存在するが、呼び出し元のプロセスと同じセッション"
7986 "ではなく、 さらに実装がこの状態をエラーと判断した場合。"
7987
7988 #. type: Plain text
7989 #: build/C/man2/getsid.2:75
7990 msgid "No process with process ID I<p> was found."
7991 msgstr "プロセス ID が I<p> のプロセスがない。"
7992
7993 #.  Linux has this system call since Linux 1.3.44.
7994 #.  There is libc support since libc 5.2.19.
7995 #. type: Plain text
7996 #: build/C/man2/getsid.2:79
7997 msgid "This system call is available on Linux since version 2.0."
7998 msgstr "このシステムコールは Linux バージョン 2.0 以降で利用可能である。"
7999
8000 #. type: Plain text
8001 #: build/C/man2/getsid.2:81 build/C/man2/setgid.2:68 build/C/man2/setsid.2:67
8002 msgid "SVr4, POSIX.1-2001."
8003 msgstr "SVr4, POSIX.1-2001."
8004
8005 #. type: Plain text
8006 #: build/C/man2/getsid.2:84
8007 msgid "Linux does not return B<EPERM>."
8008 msgstr "Linux は B<EPERM> を返さない。"
8009
8010 #. type: Plain text
8011 #: build/C/man2/getsid.2:88
8012 msgid "B<getpgid>(2), B<setsid>(2), B<credentials>(7)"
8013 msgstr "B<getpgid>(2), B<setsid>(2), B<credentials>(7)"
8014
8015 #. type: TH
8016 #: build/C/man2/getuid.2:26
8017 #, no-wrap
8018 msgid "GETUID"
8019 msgstr "GETUID"
8020
8021 #. type: Plain text
8022 #: build/C/man2/getuid.2:29
8023 msgid "getuid, geteuid - get user identity"
8024 msgstr "getuid, geteuid - ユーザー ID を得る"
8025
8026 #. type: Plain text
8027 #: build/C/man2/getuid.2:35
8028 msgid "B<uid_t getuid(void);>"
8029 msgstr "B<uid_t getuid(void);>"
8030
8031 #. type: Plain text
8032 #: build/C/man2/getuid.2:37
8033 msgid "B<uid_t geteuid(void);>"
8034 msgstr "B<uid_t geteuid(void);>"
8035
8036 #. type: Plain text
8037 #: build/C/man2/getuid.2:40
8038 msgid "B<getuid>()  returns the real user ID of the calling process."
8039 msgstr "B<getuid>()  は呼び出し元のプロセスの実ユーザー ID を返す。"
8040
8041 #. type: Plain text
8042 #: build/C/man2/getuid.2:43
8043 msgid "B<geteuid>()  returns the effective user ID of the calling process."
8044 msgstr "B<geteuid>()  は呼び出し元のプロセスの実効ユーザー ID を返す。"
8045
8046 #. type: SS
8047 #: build/C/man2/getuid.2:48
8048 #, no-wrap
8049 msgid "History"
8050 msgstr "歴史"
8051
8052 #. type: Plain text
8053 #: build/C/man2/getuid.2:57
8054 msgid ""
8055 "In UNIX V6 the B<getuid>()  call returned I<(euid E<lt>E<lt> 8) + uid>.  "
8056 "UNIX V7 introduced separate calls B<getuid>()  and B<geteuid>()."
8057 msgstr ""
8058 "UNIX V6 では B<getuid>()  コールは I<(euid E<lt>E<lt> 8) + uid> を返してい"
8059 "た。 UNIX V7 では B<getuid>()  と B<geteuid>()  という別々のコールが導入され"
8060 "た。"
8061
8062 #. type: Plain text
8063 #: build/C/man2/getuid.2:73
8064 msgid ""
8065 "The original Linux B<getuid>()  and B<geteuid>()  system calls supported "
8066 "only 16-bit user IDs.  Subsequently, Linux 2.4 added B<getuid32>()  and "
8067 "B<geteuid32>(), supporting 32-bit IDs.  The glibc B<getuid>()  and B<geteuid>"
8068 "()  wrapper functions transparently deal with the variations across kernel "
8069 "versions."
8070 msgstr ""
8071 "元々の Linux の B<getuid>() と B<geteuid>() システムコールは\n"
8072 "16 ビットのグループ ID だけに対応していた。\n"
8073 "その後、Linux 2.4 で、32 ビットの ID に対応した\n"
8074 "B<getuid32>() と B<geteuid32>() が追加された。\n"
8075 "glibc の B<getuid>() と B<geteuid>() のラッパー関数は\n"
8076 "カーネルバージョンによるこの違いを吸収している。"
8077
8078 #. type: Plain text
8079 #: build/C/man2/getuid.2:78
8080 msgid "B<getresuid>(2), B<setreuid>(2), B<setuid>(2), B<credentials>(7)"
8081 msgstr "B<getresuid>(2), B<setreuid>(2), B<setuid>(2), B<credentials>(7)"
8082
8083 #. type: TH
8084 #: build/C/man2/iopl.2:33
8085 #, no-wrap
8086 msgid "IOPL"
8087 msgstr "IOPL"
8088
8089 #. type: TH
8090 #: build/C/man2/iopl.2:33
8091 #, no-wrap
8092 msgid "2013-03-15"
8093 msgstr "2013-03-15"
8094
8095 #. type: Plain text
8096 #: build/C/man2/iopl.2:36
8097 msgid "iopl - change I/O privilege level"
8098 msgstr "iopl - I/O 特権レベルを変更する"
8099
8100 #. type: Plain text
8101 #: build/C/man2/iopl.2:38
8102 msgid "B<#include E<lt>sys/io.hE<gt>>"
8103 msgstr "B<#include E<lt>sys/io.hE<gt>>"
8104
8105 #. type: Plain text
8106 #: build/C/man2/iopl.2:40
8107 msgid "B<int iopl(int >I<level>B<);>"
8108 msgstr "B<int iopl(int >I<level>B<);>"
8109
8110 #. type: Plain text
8111 #: build/C/man2/iopl.2:45
8112 msgid ""
8113 "B<iopl>()  changes the I/O privilege level of the calling process, as "
8114 "specified by the two least significant bits in I<level>."
8115 msgstr ""
8116 "B<iopl>()  は呼び出し元のプロセスの I/O 特権レベルを I<level> の下位 2 ビット"
8117 "で指定した値に変更する。"
8118
8119 #. type: Plain text
8120 #: build/C/man2/iopl.2:51
8121 msgid ""
8122 "This call is necessary to allow 8514-compatible X servers to run under "
8123 "Linux.  Since these X servers require access to all 65536 I/O ports, the "
8124 "B<ioperm>(2)  call is not sufficient."
8125 msgstr ""
8126 "この関数は 8514 互換の X サーバを Linux で動作させるために必要である。 なぜな"
8127 "らこの X サーバは 65536 個の I/O ポート全てへのアクセスを要求するので "
8128 "B<ioperm>(2)  関数では不十分だからである。"
8129
8130 #. type: Plain text
8131 #: build/C/man2/iopl.2:55
8132 msgid ""
8133 "In addition to granting unrestricted I/O port access, running at a higher I/"
8134 "O privilege level also allows the process to disable interrupts.  This will "
8135 "probably crash the system, and is not recommended."
8136 msgstr ""
8137 "より高い I/O 特権レベルでの動作をさせることによって I/O ポートアクセスの制限"
8138 "を解除することに加えて、プロセスが割り込みを 無効にすることもできるようにな"
8139 "る。この機能は時としてシステムの破壊を もたらすので勧められない。"
8140
8141 #. type: Plain text
8142 #: build/C/man2/iopl.2:60
8143 msgid "Permissions are inherited by B<fork>(2)  and B<execve>(2)."
8144 msgstr "B<fork>(2)  や B<exec>(2)  を行った場合、特権は継承される。"
8145
8146 #. type: Plain text
8147 #: build/C/man2/iopl.2:62
8148 msgid "The I/O privilege level for a normal process is 0."
8149 msgstr "通常のプロセスの I/O 特権レベルは 0 である。"
8150
8151 #. type: Plain text
8152 #: build/C/man2/iopl.2:66
8153 msgid ""
8154 "This call is mostly for the i386 architecture.  On many other architectures "
8155 "it does not exist or will always return an error."
8156 msgstr ""
8157 "このシステムコールはほとんど i386 アーキテクチャのためだけのものである。 その"
8158 "他の多くのアーキテクチャでは存在しないか、常にエラーを返す。"
8159
8160 #. type: Plain text
8161 #: build/C/man2/iopl.2:76
8162 msgid "I<level> is greater than 3."
8163 msgstr "引き数 I<level> が 3 より大きい。"
8164
8165 #. type: Plain text
8166 #: build/C/man2/iopl.2:79
8167 msgid "This call is unimplemented."
8168 msgstr "このシステムコールは実装されていない。"
8169
8170 #. type: Plain text
8171 #: build/C/man2/iopl.2:87
8172 msgid ""
8173 "The calling process has insufficient privilege to call B<iopl>(); the "
8174 "B<CAP_SYS_RAWIO> capability is required to raise the I/O privilege level "
8175 "above its current value."
8176 msgstr ""
8177 "呼び出し元プロセスに B<iopl>()  を呼び出すのに十分な権限がなかった。 I/O 特権"
8178 "レベルを現在の値より上げるには B<CAP_SYS_RAWIO> ケーパビリティが必要である。"
8179
8180 #. type: Plain text
8181 #: build/C/man2/iopl.2:91
8182 msgid ""
8183 "B<iopl>()  is Linux-specific and should not be used in programs that are "
8184 "intended to be portable."
8185 msgstr ""
8186 "B<ipc>()  は Linux 特有であり、 移植を意図したプログラムでは 使用してはいけな"
8187 "い。"
8188
8189 #. type: Plain text
8190 #: build/C/man2/iopl.2:100
8191 msgid ""
8192 "Libc5 treats it as a system call and has a prototype in I<E<lt>unistd."
8193 "hE<gt>>.  Glibc1 does not have a prototype.  Glibc2 has a prototype both in "
8194 "I<E<lt>sys/io.hE<gt>> and in I<E<lt>sys/perm.hE<gt>>.  Avoid the latter, it "
8195 "is available on i386 only."
8196 msgstr ""
8197 "libc5 ではシステムコールとして扱い I<E<lt>unistd.hE<gt>> にプロトタイプが存在"
8198 "している。 glibc1 にはプロトタイプは存在していない。 glibc2 は I<E<lt>sys/io."
8199 "hE<gt>> と I<E<lt>sys/perm.hE<gt>> の両方にプロトタイプを持っている。 後者は "
8200 "i386 のみで利用可能なので、使用すべきではない。"
8201
8202 #. type: Plain text
8203 #: build/C/man2/iopl.2:104
8204 msgid "B<ioperm>(2), B<outb>(2), B<capabilities>(7)"
8205 msgstr "B<ioperm>(2), B<outb>(2), B<capabilities>(7)"
8206
8207 #. type: TH
8208 #: build/C/man2/ioprio_set.2:24
8209 #, no-wrap
8210 msgid "IOPRIO_SET"
8211 msgstr "IOPRIO_SET"
8212
8213 #. type: Plain text
8214 #: build/C/man2/ioprio_set.2:27
8215 msgid "ioprio_get, ioprio_set - get/set I/O scheduling class and priority"
8216 msgstr "ioprio_get, ioprio_set - I/O スケジューリングクラスと優先度の設定/取得"
8217
8218 #. type: Plain text
8219 #: build/C/man2/ioprio_set.2:31
8220 #, no-wrap
8221 msgid ""
8222 "B<int ioprio_get(int >I<which>B<, int >I<who>B<);>\n"
8223 "B<int ioprio_set(int >I<which>B<, int >I<who>B<, int >I<ioprio>B<);>\n"
8224 msgstr ""
8225 "B<int ioprio_get(int >I<which>B<, int >I<who>B<);>\n"
8226 "B<int ioprio_set(int >I<which>B<, int >I<who>B<, int >I<ioprio>B<);>\n"
8227
8228 #. type: Plain text
8229 #: build/C/man2/ioprio_set.2:35
8230 msgid "I<Note>: There are no glibc wrappers for these system calls; see NOTES."
8231 msgstr ""
8232 "I<注意>: これらのシステムコールには glibc ラッパー関数は存在しない。 「注意」"
8233 "の節を参照。"
8234
8235 #. type: Plain text
8236 #: build/C/man2/ioprio_set.2:42
8237 msgid ""
8238 "The B<ioprio_get>()  and B<ioprio_set>()  system calls respectively get and "
8239 "set the I/O scheduling class and priority of one or more threads."
8240 msgstr ""
8241 "システムコール B<ioprio_get>()  / B<ioprio_set>()  は、(1つ以上の) スレッド"
8242 "の I/O スケジューリングクラスと 優先度の取得/設定を行う。"
8243
8244 #. type: Plain text
8245 #: build/C/man2/ioprio_set.2:54
8246 msgid ""
8247 "The I<which> and I<who> arguments identify the thread(s) on which the system "
8248 "calls operate.  The I<which> argument determines how I<who> is interpreted, "
8249 "and has one of the following values:"
8250 msgstr ""
8251 "I<which> と I<who> 引き数でシステムコールの操作対象となるスレッドを指示す"
8252 "る。 I<which> 引き数は、 I<who> をどのように解釈するかを決めるもので、以下の"
8253 "いずれか一つを指定する。"
8254
8255 #. type: TP
8256 #: build/C/man2/ioprio_set.2:54
8257 #, no-wrap
8258 msgid "B<IOPRIO_WHO_PROCESS>"
8259 msgstr "B<IOPRIO_WHO_PROCESS>"
8260
8261 #. type: Plain text
8262 #: build/C/man2/ioprio_set.2:61
8263 msgid ""
8264 "I<who> is a process ID or thread ID identifying a single process or thread.  "
8265 "If I<who> is 0, then operate on the calling thread."
8266 msgstr ""
8267 "I<who> は特定のプロセスやスレッドを特定するためのプロセス ID かスレッド ID で"
8268 "ある。 I<who> が 0 の場合、呼び出し元のスレッドに対して操作が行われる。"
8269
8270 #. type: TP
8271 #: build/C/man2/ioprio_set.2:61
8272 #, no-wrap
8273 msgid "B<IOPRIO_WHO_PGRP>"
8274 msgstr "B<IOPRIO_WHO_PGRP>"
8275
8276 #. type: Plain text
8277 #: build/C/man2/ioprio_set.2:68
8278 msgid ""
8279 "I<who> is a process group ID identifying all the members of a process "
8280 "group.  If I<who> is 0, then operate on the process group of which the "
8281 "caller is a member."
8282 msgstr ""
8283 "I<who> はプロセスグループ ID であり、プロセスグループの全メンバが対象とな"
8284 "る。 I<who> が 0 の場合、 呼び出し元がメンバーとなっているプロセスグループに"
8285 "対して操作が行われる。"
8286
8287 #. type: TP
8288 #: build/C/man2/ioprio_set.2:68
8289 #, no-wrap
8290 msgid "B<IOPRIO_WHO_USER>"
8291 msgstr "B<IOPRIO_WHO_USER>"
8292
8293 #.  FIXME who==0 needs to be documented,
8294 #.  See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=652443
8295 #. type: Plain text
8296 #: build/C/man2/ioprio_set.2:75
8297 msgid ""
8298 "I<who> is a user ID identifying all of the processes that have a matching "
8299 "real UID."
8300 msgstr "I<who> はユーザID であり、実 UID に一致する全プロセスが対象となる。"
8301
8302 #. type: Plain text
8303 #: build/C/man2/ioprio_set.2:98
8304 msgid ""
8305 "If I<which> is specified as B<IOPRIO_WHO_PGRP> or B<IOPRIO_WHO_USER> when "
8306 "calling B<ioprio_get>(), and more than one process matches I<who>, then the "
8307 "returned priority will be the highest one found among all of the matching "
8308 "processes.  One priority is said to be higher than another one if it belongs "
8309 "to a higher priority class (B<IOPRIO_CLASS_RT> is the highest priority "
8310 "class; B<IOPRIO_CLASS_IDLE> is the lowest)  or if it belongs to the same "
8311 "priority class as the other process but has a higher priority level (a lower "
8312 "priority number means a higher priority level)."
8313 msgstr ""
8314 "B<ioprio_get>()  の呼び出し時に I<which> に B<IOPRIO_WHO_PGRP> か "
8315 "B<IOPRIO_WHO_USER> が指定され、 I<who> に一致するプロセスが複数あった場合、 "
8316 "一致するプロセス全体の中で最も高い優先度が返される。 優先度が高いとは、より高"
8317 "い優先度クラスに属している (B<IOPRIO_CLASS_RT> が最も高い優先度クラスで、 "
8318 "B<IOPRIO_CLASS_IDLE> が最も低い)、もしくは 同じ優先度クラスに属しているが優先"
8319 "度レベルが高い (優先度番号が小さい方が優先度レベルが高いことを意味する)、 と"
8320 "いうことである。"
8321
8322 #. type: Plain text
8323 #: build/C/man2/ioprio_set.2:108
8324 msgid ""
8325 "The I<ioprio> argument given to B<ioprio_set>()  is a bit mask that "
8326 "specifies both the scheduling class and the priority to be assigned to the "
8327 "target process(es).  The following macros are used for assembling and "
8328 "dissecting I<ioprio> values:"
8329 msgstr ""
8330 "B<ioprio_set>()  に渡す I<ioprio> 引き数は、対象となるプロセスに割り当てるス"
8331 "ケジューリングクラスと 優先度の両方を指定するビットマスクである。 I<ioprio> "
8332 "の値を組み立てたり解釈するのに、以下のマクロが利用できる。"
8333
8334 #. type: TP
8335 #: build/C/man2/ioprio_set.2:108
8336 #, no-wrap
8337 msgid "B<IOPRIO_PRIO_VALUE(>I<class>B<, >I<data>B<)>"
8338 msgstr "B<IOPRIO_PRIO_VALUE(>I<class>B<, >I<data>B<)>"
8339
8340 #. type: Plain text
8341 #: build/C/man2/ioprio_set.2:117
8342 msgid ""
8343 "Given a scheduling I<class> and priority (I<data>), this macro combines the "
8344 "two values to produce an I<ioprio> value, which is returned as the result of "
8345 "the macro."
8346 msgstr ""
8347 "スケジューリングクラス I<class> と優先度 (I<data>)  を与えると、このマクロは "
8348 "2つの値を組み合わせて、 I<ioprio> 値を生成し、マクロの結果として返す。"
8349
8350 #. type: TP
8351 #: build/C/man2/ioprio_set.2:117
8352 #, no-wrap
8353 msgid "B<IOPRIO_PRIO_CLASS(>I<mask>B<)>"
8354 msgstr "B<IOPRIO_PRIO_CLASS(>I<mask>B<)>"
8355
8356 #. type: Plain text
8357 #: build/C/man2/ioprio_set.2:129
8358 msgid ""
8359 "Given I<mask> (an I<ioprio> value), this macro returns its I/O class "
8360 "component, that is, one of the values B<IOPRIO_CLASS_RT>, "
8361 "B<IOPRIO_CLASS_BE>, or B<IOPRIO_CLASS_IDLE>."
8362 msgstr ""
8363 "I<mask> (I<ioprio> 値) を与えると、このマクロは I/O クラス要素、つまり "
8364 "B<IOPRIO_CLASS_RT>, B<IOPRIO_CLASS_BE>, B<IOPRIO_CLASS_IDLE> のいずれか一つの"
8365 "値を返す。"
8366
8367 #. type: TP
8368 #: build/C/man2/ioprio_set.2:129
8369 #, no-wrap
8370 msgid "B<IOPRIO_PRIO_DATA(>I<mask>B<)>"
8371 msgstr "B<IOPRIO_PRIO_DATA(>I<mask>B<)>"
8372
8373 #. type: Plain text
8374 #: build/C/man2/ioprio_set.2:138
8375 msgid ""
8376 "Given I<mask> (an I<ioprio> value), this macro returns its priority "
8377 "(I<data>)  component."
8378 msgstr ""
8379 "I<mask> (I<ioprio> 値) を与えると、このマクロは優先度 (I<data>)  要素を返す。"
8380
8381 #. type: Plain text
8382 #: build/C/man2/ioprio_set.2:141
8383 msgid ""
8384 "See the NOTES section for more information on scheduling classes and "
8385 "priorities."
8386 msgstr ""
8387 "スケジューリングクラスと優先度に関する詳しい情報は、 「備考」の節を参照のこ"
8388 "と。"
8389
8390 #. type: Plain text
8391 #: build/C/man2/ioprio_set.2:149
8392 msgid ""
8393 "I/O priorities are supported for reads and for synchronous (B<O_DIRECT>, "
8394 "B<O_SYNC>)  writes.  I/O priorities are not supported for asynchronous "
8395 "writes because they are issued outside the context of the program dirtying "
8396 "the memory, and thus program-specific priorities do not apply."
8397 msgstr ""
8398 "I/O 優先度は読み出しと同期書き込み (B<O_DIRECT>, B<O_SYNC>)  に対応してい"
8399 "る。 I/O 優先度は非同期書き込みには対応していない。なぜなら、 非同期書き込み"
8400 "はメモリ書き換えを行うプログラムの動作 (context) とは 関係なく発行され、その"
8401 "ためプログラム単位の優先度は適用されないから である。"
8402
8403 #. type: Plain text
8404 #: build/C/man2/ioprio_set.2:162
8405 msgid ""
8406 "On success, B<ioprio_get>()  returns the I<ioprio> value of the process with "
8407 "highest I/O priority of any of the processes that match the criteria "
8408 "specified in I<which> and I<who>.  On error, -1 is returned, and I<errno> is "
8409 "set to indicate the error."
8410 msgstr ""
8411 "成功すると、 B<ioprio_get>()  は、 I<which> と I<who> で指定された基準に合致"
8412 "した全プロセスで最も高い I/O 優先度を持つプロセスの I<ioprio> 値を返す。 エ"
8413 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
8414
8415 #. type: Plain text
8416 #: build/C/man2/ioprio_set.2:169
8417 msgid ""
8418 "On success, B<ioprio_set>()  returns 0.  On error, -1 is returned, and "
8419 "I<errno> is set to indicate the error."
8420 msgstr ""
8421 "成功すると、 B<ioprio_set>()  は 0 を返す。 エラーの場合、-1 を返し、 "
8422 "I<errno> にエラーを示す値を設定する。"
8423
8424 #. type: Plain text
8425 #: build/C/man2/ioprio_set.2:179
8426 msgid ""
8427 "Invalid value for I<which> or I<ioprio>.  Refer to the NOTES section for "
8428 "available scheduler classes and priority levels for I<ioprio>."
8429 msgstr ""
8430 "I<which> か I<ioprio> の値が不正である。 I<ioprio> 用に指定可能なスケジューラ"
8431 "クラスと優先度レベルについては 「備考」を参照のこと。"
8432
8433 #. type: Plain text
8434 #: build/C/man2/ioprio_set.2:187
8435 msgid ""
8436 "The calling process does not have the privilege needed to assign this "
8437 "I<ioprio> to the specified process(es).  See the NOTES section for more "
8438 "information on required privileges for B<ioprio_set>()."
8439 msgstr ""
8440 "呼び出し元プロセスが、指定されたプロセスに I<ioprio> を割り当てるのに必要な権"
8441 "限を持っていない。 B<ioprio_set>()  に必要な権限についての詳しい情報は「備"
8442 "考」の節を参照のこと。"
8443
8444 #. type: Plain text
8445 #: build/C/man2/ioprio_set.2:193
8446 msgid ""
8447 "No process(es) could be found that matched the specification in I<which> and "
8448 "I<who>."
8449 msgstr ""
8450 "I<which> と I<who> で指定された基準に合致するプロセスが見つからなかった。"
8451
8452 #. type: Plain text
8453 #: build/C/man2/ioprio_set.2:196
8454 msgid "These system calls have been available on Linux since kernel 2.6.13."
8455 msgstr ""
8456 "これらのシステムコールはカーネル 2.6.13 以降の Linux で利用可能である。"
8457
8458 #. type: Plain text
8459 #: build/C/man2/ioprio_set.2:201
8460 msgid ""
8461 "Glibc does not provide a wrapper for these system calls; call them using "
8462 "B<syscall>(2)."
8463 msgstr ""
8464 "glibc はこれらのシステムコールに対するラッパー関数を提供していない。 "
8465 "B<syscall>(2)  を使って呼び出すこと。"
8466
8467 #. type: Plain text
8468 #: build/C/man2/ioprio_set.2:220
8469 msgid ""
8470 "Two or more processes or threads can share an I/O context.  This will be the "
8471 "case when B<clone>(2)  was called with the B<CLONE_IO> flag.  However, by "
8472 "default, the distinct threads of a process will B<not> share the same I/O "
8473 "context.  This means that if you want to change the I/O priority of all "
8474 "threads in a process, you may need to call B<ioprio_set>()  on each of the "
8475 "threads.  The thread ID that you would need for this operation is the one "
8476 "that is returned by B<gettid>(2)  or B<clone>(2)."
8477 msgstr ""
8478 "複数のプロセスやスレッドが一つの I/O コンテキストを共有する場合がある。 "
8479 "B<clone>(2) を B<CLONE_IO> フラグ付きで呼び出した場合にはこの状況となる。 し"
8480 "かしながら、デフォルトでは、一つのプロセスの個々のスレッドは I/O コンテキスト"
8481 "を共有「しない」。 したがって、 プロセス内のすべてのスレッドの I/O 優先度を変"
8482 "更したい場合には、 それぞれのスレッドに対して B<ioprio_set>() を呼び出す必要"
8483 "がある。 この操作を行うのに必要となるスレッド ID には B<gettid>(2) か "
8484 "B<clone>(2) が返す値を指定する。"
8485
8486 #. type: Plain text
8487 #: build/C/man2/ioprio_set.2:225
8488 msgid ""
8489 "These system calls have an effect only when used in conjunction with an I/O "
8490 "scheduler that supports I/O priorities.  As at kernel 2.6.17 the only such "
8491 "scheduler is the Completely Fair Queuing (CFQ) I/O scheduler."
8492 msgstr ""
8493 "これらのシステムコールは、I/O 優先度に対応した I/O スケジューラと 組み合わせ"
8494 "て使用された場合にのみ効果を持つ。 カーネル 2.6.17 では、この条件を満たすスケ"
8495 "ジューラは Completely Fair Queuing (CFQ) I/O スケジューラだけである。"
8496
8497 #. type: SS
8498 #: build/C/man2/ioprio_set.2:225
8499 #, no-wrap
8500 msgid "Selecting an I/O scheduler"
8501 msgstr "I/O スケジューラの選択"
8502
8503 #. type: Plain text
8504 #: build/C/man2/ioprio_set.2:229
8505 msgid ""
8506 "I/O Schedulers are selected on a per-device basis via the special file I</"
8507 "sys/block/E<lt>deviceE<gt>/queue/scheduler>."
8508 msgstr ""
8509 "I/O スケジューラの選択はデバイス単位に行われ、その選択は スペシャルファイル "
8510 "I</sys/block/E<lt>deviceE<gt>/queue/scheduler> 経由で行われる。"
8511
8512 #. type: Plain text
8513 #: build/C/man2/ioprio_set.2:235
8514 msgid ""
8515 "One can view the current I/O scheduler via the I</sys> file system.  For "
8516 "example, the following command displays a list of all schedulers currently "
8517 "loaded in the kernel:"
8518 msgstr ""
8519 "現在の I/O スケジューラは I</sys> ファイルシステム経由で参照できる。例えば、"
8520 "以下のコマンドを実行すると、 現在カーネルでロードされているスケジューラの全リ"
8521 "ストが表示される。"
8522
8523 #. type: Plain text
8524 #: build/C/man2/ioprio_set.2:240
8525 #, no-wrap
8526 msgid ""
8527 "$B< cat /sys/block/hda/queue/scheduler>\n"
8528 "noop anticipatory deadline [cfq]\n"
8529 msgstr ""
8530 "$B< cat /sys/block/hda/queue/scheduler>\n"
8531 "noop anticipatory deadline [cfq]\n"
8532
8533 #. type: Plain text
8534 #: build/C/man2/ioprio_set.2:254
8535 msgid ""
8536 "The scheduler surrounded by brackets is the one actually in use for the "
8537 "device (I<hda> in the example).  Setting another scheduler is done by "
8538 "writing the name of the new scheduler to this file.  For example, the "
8539 "following command will set the scheduler for the I<hda> device to I<cfq>:"
8540 msgstr ""
8541 "括弧で囲まれたスケジューラがそのデバイス (上の例では I<hda>)  について実際に"
8542 "使用されているスケジューラである。 別のスケジューラを設定するには、このファイ"
8543 "ルに新しいスケジューラ名を 書き込めばよい。例えば、以下のコマンドを実行する"
8544 "と、デバイス I<hda> のスケジューラとして I<cfq> が設定される。"
8545
8546 #. type: Plain text
8547 #: build/C/man2/ioprio_set.2:260
8548 #, no-wrap
8549 msgid ""
8550 "$B< su>\n"
8551 "Password:\n"
8552 "#B< echo cfq E<gt> /sys/block/hda/queue/scheduler>\n"
8553 msgstr ""
8554 "$B< su>\n"
8555 "Password:\n"
8556 "#B< echo cfq E<gt> /sys/block/hda/queue/scheduler>\n"
8557
8558 #. type: SS
8559 #: build/C/man2/ioprio_set.2:262
8560 #, no-wrap
8561 msgid "The Completely Fair Queuing (CFQ) I/O scheduler"
8562 msgstr "Completely Fair Queuing (CFQ) I/O スケジューラ"
8563
8564 #. type: Plain text
8565 #: build/C/man2/ioprio_set.2:268
8566 msgid ""
8567 "Since v3 (aka CFQ Time Sliced) CFQ implements I/O nice levels similar to "
8568 "those of CPU scheduling.  These nice levels are grouped in three scheduling "
8569 "classes each one containing one or more priority levels:"
8570 msgstr ""
8571 "バージョン 3 (別名 CFQ Time Sliced) 以降、 CPU スケジューリングと同様の I/O "
8572 "nice レベルが CFQ に実装されている。 これらの nice レベルは 3つのスケジューリ"
8573 "ングクラスに分類でき、 各スケジューリングクラスにつき 1つ以上の優先度レベルが"
8574 "定義されている。"
8575
8576 #. type: TP
8577 #: build/C/man2/ioprio_set.2:268
8578 #, no-wrap
8579 msgid "B<IOPRIO_CLASS_RT> (1)"
8580 msgstr "B<IOPRIO_CLASS_RT> (1)"
8581
8582 #. type: Plain text
8583 #: build/C/man2/ioprio_set.2:283
8584 msgid ""
8585 "This is the real-time I/O class.  This scheduling class is given higher "
8586 "priority than any other class: processes from this class are given first "
8587 "access to the disk every time.  Thus this I/O class needs to be used with "
8588 "some care: one I/O real-time process can starve the entire system.  Within "
8589 "the real-time class, there are 8 levels of class data (priority) that "
8590 "determine exactly how much time this process needs the disk for on each "
8591 "service.  The highest real-time priority level is 0; the lowest is 7.  In "
8592 "the future this might change to be more directly mappable to performance, by "
8593 "passing in a desired data rate instead."
8594 msgstr ""
8595 "これはリアルタイム I/O クラスである。 このスケジューリングクラスには他のクラ"
8596 "スよりも高い優先度が与えられる。 このクラスのプロセスには、常にディスクへのア"
8597 "クセスが優先して 割り当てられる。そのため、この I/O クラスを使う際には、 たっ"
8598 "た一つの リアルタイム I/O クラスのプロセスにより システム全体のディスクアクセ"
8599 "スができなくなってしまうことがある という点に、注意を払う必要がある。 このク"
8600 "ラスには、8 段階の class data (優先度レベル) がある。 この値は、そのプロセス"
8601 "が 1回のディスクアクセスにどれだけの 時間が必要かを正確に決めるためのものであ"
8602 "る。 最高のリアルタイム優先度レベルは 0 で、最低は 7 である。 将来的には、優"
8603 "先度レベルは、希望するデータレートを渡すなど、 より直接的に性能条件を反映でき"
8604 "るように変更されるかもしれない。"
8605
8606 #. type: TP
8607 #: build/C/man2/ioprio_set.2:283
8608 #, no-wrap
8609 msgid "B<IOPRIO_CLASS_BE> (2)"
8610 msgstr "B<IOPRIO_CLASS_BE> (2)"
8611
8612 #. type: Plain text
8613 #: build/C/man2/ioprio_set.2:296
8614 msgid ""
8615 "This is the best-effort scheduling class, which is the default for any "
8616 "process that hasn't set a specific I/O priority.  The class data (priority) "
8617 "determines how much I/O bandwidth the process will get.  Best-effort "
8618 "priority levels are analogous to CPU nice values (see B<getpriority>(2)).  "
8619 "The priority level determines a priority relative to other processes in the "
8620 "best-effort scheduling class.  Priority levels range from 0 (highest) to 7 "
8621 "(lowest)."
8622 msgstr ""
8623 "これは ベストエフォート・スケジューリングクラスである。 このクラスは、特定の "
8624 "I/O 優先度を設定していないプロセスの デフォルト値である。 class data (優先度"
8625 "レベル) により、そのプロセスがどの程度の I/O 帯域を得られるかが決定される。 "
8626 "ベストエフォート・優先度レベルは、CPU の nice 値 (B<getpriority>(2)  参照) と"
8627 "同様のものである。 優先度レベルは、ベストエフォート・スケジューリングクラスの"
8628 "中で 他のプロセスとの相対的な優先度を決定する。 優先度レベルの値の範囲は 0 "
8629 "(最高) から 7 (最低) である。"
8630
8631 #. type: TP
8632 #: build/C/man2/ioprio_set.2:296
8633 #, no-wrap
8634 msgid "B<IOPRIO_CLASS_IDLE> (3)"
8635 msgstr "B<IOPRIO_CLASS_IDLE> (3)"
8636
8637 #. type: Plain text
8638 #: build/C/man2/ioprio_set.2:305
8639 msgid ""
8640 "This is the idle scheduling class.  Processes running at this level only get "
8641 "I/O time when no-one else needs the disk.  The idle class has no class "
8642 "data.  Attention is required when assigning this priority class to a "
8643 "process, since it may become starved if higher priority processes are "
8644 "constantly accessing the disk."
8645 msgstr ""
8646 "これは idle スケジューリングクラスである。 このレベルで動作するプロセスは他に"
8647 "ディスクアクセスをしようとする プロセスがない場合にのみ I/O 時間を取得する。 "
8648 "idle クラスには class data (優先度) は用意されていない。 プロセスにこの優先度"
8649 "を割り当てる際には注意が必要である。 なぜなら、優先度の高いプロセスが常にディ"
8650 "スクにアクセスしている場合には ディスクにアクセスできなくなる可能性があるから"
8651 "だ。"
8652
8653 #. type: Plain text
8654 #: build/C/man2/ioprio_set.2:309
8655 msgid ""
8656 "Refer to I<Documentation/block/ioprio.txt> for more information on the CFQ I/"
8657 "O Scheduler and an example program."
8658 msgstr ""
8659 "CFQ I/O スケジューラの更なる情報とサンプルプログラムについては "
8660 "I<Documentation/block/ioprio.txt> を参照のこと。"
8661
8662 #. type: SS
8663 #: build/C/man2/ioprio_set.2:309
8664 #, no-wrap
8665 msgid "Required permissions to set I/O priorities"
8666 msgstr "I/O 優先度の設定に必要な許可"
8667
8668 #. type: Plain text
8669 #: build/C/man2/ioprio_set.2:312
8670 msgid ""
8671 "Permission to change a process's priority is granted or denied based on two "
8672 "assertions:"
8673 msgstr ""
8674 "プロセスの優先度を変更する許可が得られるかどうかは 以下の 2つの条件に基いて決"
8675 "定される。"
8676
8677 #. type: TP
8678 #: build/C/man2/ioprio_set.2:312
8679 #, no-wrap
8680 msgid "B<Process ownership>"
8681 msgstr "B<プロセスの所有権>"
8682
8683 #. type: Plain text
8684 #: build/C/man2/ioprio_set.2:320
8685 msgid ""
8686 "An unprivileged process may set only the I/O priority of a process whose "
8687 "real UID matches the real or effective UID of the calling process.  A "
8688 "process which has the B<CAP_SYS_NICE> capability can change the priority of "
8689 "any process."
8690 msgstr ""
8691 "非特権プロセスは、プロセスの実 UID が呼び出し元プロセスの実 UID もしくは 実"
8692 "効 UID と一致するプロセスの I/O 優先度のみを設定できる。 B<CAP_SYS_NICE> ケー"
8693 "パビリティを持つプロセスは、どのプロセスの優先度でも変更できる。"
8694
8695 #. type: TP
8696 #: build/C/man2/ioprio_set.2:320
8697 #, no-wrap
8698 msgid "B<What is the desired priority>"
8699 msgstr "B<どの優先度に設定しようとしているか>"
8700
8701 #. type: Plain text
8702 #: build/C/man2/ioprio_set.2:332
8703 msgid ""
8704 "Attempts to set very high priorities (B<IOPRIO_CLASS_RT>)  require the "
8705 "B<CAP_SYS_ADMIN> capability.  Kernel versions up to 2.6.24 also required "
8706 "B<CAP_SYS_ADMIN> to set a very low priority (B<IOPRIO_CLASS_IDLE>), but "
8707 "since Linux 2.6.25, this is no longer required."
8708 msgstr ""
8709 "非常に高い優先度 (B<IOPRIO_CLASS_RT>)  を設定しようとする場合、 "
8710 "B<CAP_SYS_ADMIN> ケーパビリティが必要である。 カーネル 2.6.24 以前では、非常"
8711 "に低い優先度 (B<IOPRIO_CLASS_IDLE>)  を設定するためにも B<CAP_SYS_ADMIN> ケー"
8712 "パビリティが必要であったが、 Linux 2.6.25 以降ではもはや必要なくなった。"
8713
8714 #. type: Plain text
8715 #: build/C/man2/ioprio_set.2:337
8716 msgid ""
8717 "A call to B<ioprio_set>()  must follow both rules, or the call will fail "
8718 "with the error B<EPERM>."
8719 msgstr ""
8720 "B<ioprio_set>()  はこの両方のルールに従い、条件を満たさない場合、エラー "
8721 "B<EPERM> で失敗する。"
8722
8723 #.  6 May 07: Bug report raised:
8724 #.  http://sources.redhat.com/bugzilla/show_bug.cgi?id=4464
8725 #.  Ulrich Drepper replied that he wasn't going to add these
8726 #.  to glibc.
8727 #. type: Plain text
8728 #: build/C/man2/ioprio_set.2:346
8729 msgid ""
8730 "Glibc does not yet provide a suitable header file defining the function "
8731 "prototypes and macros described on this page.  Suitable definitions can be "
8732 "found in I<linux/ioprio.h>."
8733 msgstr ""
8734 "glibc は、このページに記載された関数プロトタイプやマクロを定義する 適切なヘッ"
8735 "ダファイルをまだ提供していない。 必要な定義については I<linux/ioprio.h> を見"
8736 "ればよい。"
8737
8738 #. type: Plain text
8739 #: build/C/man2/ioprio_set.2:351
8740 msgid "B<ionice>(1), B<getpriority>(2), B<open>(2), B<capabilities>(7)"
8741 msgstr "B<ionice>(1), B<getpriority>(2), B<open>(2), B<capabilities>(7)"
8742
8743 #. type: Plain text
8744 #: build/C/man2/ioprio_set.2:354
8745 msgid "I<Documentation/block/ioprio.txt> in the Linux kernel source tree"
8746 msgstr "Linux カーネルソース内の I<Documentation/block/ioprio.txt>"
8747
8748 #. type: TH
8749 #: build/C/man2/ipc.2:25
8750 #, no-wrap
8751 msgid "IPC"
8752 msgstr "IPC"
8753
8754 #. type: TH
8755 #: build/C/man2/ipc.2:25
8756 #, no-wrap
8757 msgid "2012-10-16"
8758 msgstr "2012-10-16"
8759
8760 #. type: Plain text
8761 #: build/C/man2/ipc.2:28
8762 msgid "ipc - System V IPC system calls"
8763 msgstr "ipc - System V IPC システムコール"
8764
8765 #. type: Plain text
8766 #: build/C/man2/ipc.2:33
8767 #, no-wrap
8768 msgid ""
8769 "B<int ipc(unsigned int >I<call>B<, int >I<first>B<, int >I<second>B<, int >I<third>B<,>\n"
8770 "B<        void *>I<ptr>B<, long >I<fifth>B<);>\n"
8771 msgstr ""
8772 "B<int ipc(unsigned int >I<call>B<, int >I<first>B<, int >I<second>B<, int >I<third>B<,>\n"
8773 "B<        void *>I<ptr>B<, long >I<fifth>B<);>\n"
8774
8775 #. type: Plain text
8776 #: build/C/man2/ipc.2:41
8777 msgid ""
8778 "B<ipc>()  is a common kernel entry point for the System V IPC calls for "
8779 "messages, semaphores, and shared memory.  I<call> determines which IPC "
8780 "function to invoke; the other arguments are passed through to the "
8781 "appropriate call."
8782 msgstr ""
8783 "B<ipc>()  は メッセージ、セマフォー、共有メモリに関する System V IPC コール"
8784 "の 共通のカーネルへのエントリポイントである。 I<call> はどの IPC 関数を呼び出"
8785 "すかを決め; 他の引き数は適切なコールへと渡される。"
8786
8787 #. type: Plain text
8788 #: build/C/man2/ipc.2:45
8789 msgid ""
8790 "User programs should call the appropriate functions by their usual names.  "
8791 "Only standard library implementors and kernel hackers need to know about "
8792 "B<ipc>()."
8793 msgstr ""
8794 "ユーザープログラムは通常の名前で適切な関数を呼び出すべきである。 標準ライブラ"
8795 "リの実装者やカーネルハッカーのみが B<ipc>()  について知る必要がある。"
8796
8797 #. type: Plain text
8798 #: build/C/man2/ipc.2:49
8799 msgid ""
8800 "B<ipc>()  is Linux-specific, and should not be used in programs intended to "
8801 "be portable."
8802 msgstr ""
8803 "B<ipc>()  は Linux 特有であり、 移植を意図したプログラムでは 使用してはいけな"
8804 "い。"
8805
8806 #. type: Plain text
8807 #: build/C/man2/ipc.2:57
8808 msgid ""
8809 "On some architectures\\(emfor example x86-64 and ARM\\(emthere is no B<ipc>"
8810 "()  system call; instead B<msgctl>(2), B<semctl>(2), B<shmctl>(2), and so on "
8811 "really are implemented as separate system calls."
8812 msgstr ""
8813 "いくつかのアーキテクチャ\\(emfor 例えば x86-64 や ARM\\(emでは、システムコー"
8814 "ル B<ipc>()  が存在しない。実際には、その代わりに B<msgctl>(2), B<semctl>"
8815 "(2), B<shmctl>(2)  などが独立したシステムコールとして実装されている。"
8816
8817 #. type: Plain text
8818 #: build/C/man2/ipc.2:70
8819 msgid ""
8820 "B<msgctl>(2), B<msgget>(2), B<msgrcv>(2), B<msgsnd>(2), B<semctl>(2), "
8821 "B<semget>(2), B<semop>(2), B<semtimedop>(2), B<shmat>(2), B<shmctl>(2), "
8822 "B<shmdt>(2), B<shmget>(2)"
8823 msgstr ""
8824 "B<msgctl>(2), B<msgget>(2), B<msgrcv>(2), B<msgsnd>(2), B<semctl>(2), "
8825 "B<semget>(2), B<semop>(2), B<shmat>(2), B<shmctl>(2), B<shmdt>(2), B<shmget>"
8826 "(2)"
8827
8828 #. type: TH
8829 #: build/C/man2/seteuid.2:29
8830 #, no-wrap
8831 msgid "SETEUID"
8832 msgstr "SETEUID"
8833
8834 #. type: TH
8835 #: build/C/man2/seteuid.2:29
8836 #, no-wrap
8837 msgid "2012-07-02"
8838 msgstr "2012-07-02"
8839
8840 #. type: Plain text
8841 #: build/C/man2/seteuid.2:32
8842 msgid "seteuid, setegid - set effective user or group ID"
8843 msgstr "seteuid, setegid - 実効ユーザー ID や 実効グループ ID を設定する"
8844
8845 #. type: Plain text
8846 #: build/C/man2/seteuid.2:38
8847 msgid "B<int seteuid(uid_t >I<euid>B<);>"
8848 msgstr "B<int seteuid(uid_t >I<euid>B<);>"
8849
8850 #. type: Plain text
8851 #: build/C/man2/seteuid.2:40
8852 msgid "B<int setegid(gid_t >I<egid>B<);>"
8853 msgstr "B<int setegid(gid_t >I<egid>B<);>"
8854
8855 #. type: Plain text
8856 #: build/C/man2/seteuid.2:49
8857 msgid "B<seteuid>(), B<setegid>():"
8858 msgstr "B<seteuid>(), B<setegid>():"
8859
8860 #. type: Plain text
8861 #: build/C/man2/seteuid.2:51
8862 msgid ""
8863 "_BSD_SOURCE || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>="
8864 "\\ 600"
8865 msgstr ""
8866 "_BSD_SOURCE || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>="
8867 "\\ 600"
8868
8869 #. type: Plain text
8870 #: build/C/man2/seteuid.2:58
8871 msgid ""
8872 "B<seteuid>()  sets the effective user ID of the calling process.  "
8873 "Unprivileged user processes may only set the effective user ID to the real "
8874 "user ID, the effective user ID or the saved set-user-ID."
8875 msgstr ""
8876 "B<seteuid>()  は呼び出し元のプロセスの実効ユーザー ID を設定する。 非特権ユー"
8877 "ザーのプロセスの場合、実効ユーザー ID に設定できるのは、 実ユーザー ID・実効"
8878 "ユーザー ID・保存 set-user-ID のいずれかだけである。"
8879
8880 #.  When
8881 #.  .I euid
8882 #.  equals \-1, nothing is changed.
8883 #.  (This is an artifact of the implementation in glibc of seteuid()
8884 #.  using setresuid(2).)
8885 #. type: Plain text
8886 #: build/C/man2/seteuid.2:67
8887 msgid ""
8888 "Precisely the same holds for B<setegid>()  with \"group\" instead of \"user"
8889 "\"."
8890 msgstr ""
8891 "B<setegid>()  は「ユーザー」ではなく「グループ」に対して全く同じことを行う。"
8892
8893 #. type: Plain text
8894 #: build/C/man2/seteuid.2:91
8895 msgid ""
8896 "The calling process is not privileged (Linux: does not have the "
8897 "B<CAP_SETUID> capability in the case of B<seteuid>(), or the B<CAP_SETGID> "
8898 "capability in the case of B<setegid>())  and I<euid> (respectively, "
8899 "I<egid>)  is not the real user (group) ID, the effective user (group) ID, or "
8900 "the saved set-user-ID (saved set-group-ID)."
8901 msgstr ""
8902 "呼び出し元のプロセスに特権がなく、 I<euid> (I<egid>)  が実ユーザー (グルー"
8903 "プ) ID、または実効ユーザー (グループ) ID、 保存 set-user-ID (保存 set-group-"
8904 "ID) のいずれでもではない (Linux においては、 B<seteuid>()  では "
8905 "B<CAP_SETUID> ケーパビリティ (capability) が、 B<setegid>()  では "
8906 "B<CAP_SETGID> ケーパビリティがない場合に、特権がないと判断される)。"
8907
8908 #. type: Plain text
8909 #: build/C/man2/seteuid.2:93
8910 msgid "4.3BSD, POSIX.1-2001."
8911 msgstr "4.3BSD, POSIX.1-2001."
8912
8913 #. type: Plain text
8914 #: build/C/man2/seteuid.2:99
8915 msgid ""
8916 "Setting the effective user (group) ID to the saved set-user-ID (saved set-"
8917 "group-ID) is possible since Linux 1.1.37 (1.1.38).  On an arbitrary system "
8918 "one should check B<_POSIX_SAVED_IDS>."
8919 msgstr ""
8920 "実効ユーザー (グループ) ID を保存 set-user-ID (保存 set-group-ID) に 設定でき"
8921 "るのは、Linux 1.1.37 (1.1.38) 以降である。 全てのシステムにおいて "
8922 "B<_POSIX_SAVED_IDS> をチェックすべきである。"
8923
8924 #. type: Plain text
8925 #: build/C/man2/seteuid.2:115
8926 msgid ""
8927 "Under libc4, libc5 and glibc 2.0 B<seteuid(>I<euid>B<)> is equivalent to "
8928 "B<setreuid(-1,>I< euid>B<)> and hence may change the saved set-user-ID.  "
8929 "Under glibc 2.1 and later it is equivalent to B<setresuid(-1,>I< euid>B<, -1)"
8930 "> and hence does not change the saved set-user-ID.  Analogous remarks hold "
8931 "for B<setegid>(), with the difference that the change in implementation from "
8932 "B<setregid(-1,>I< egid>B<)> to B<setresgid(-1,>I< egid>B<, -1)> occurred in "
8933 "glibc 2.2 or 2.3 (dependeing on the hardware architecture)."
8934 msgstr ""
8935 "libc4, libc5, glibc 2.0 では、 B<seteuid(>I<euid>B<)> は B<setreuid(-1,>I< "
8936 "euid>B<)> と等価であり、保存 set-user-ID を変更するかもしれない。 glibc 2.1 "
8937 "では、 B<setresuid(-1,>I< euid>B<, -1)> と等価であり、保存 set-user-ID 変更し"
8938 "ない。 同様のことが B<setegid>() にも言えるが、 glibc 2.2 か 2.3 で、 実装が "
8939 "B<setregid(-1,>I< egid>B<)> から B<setresgid(-1,>I< egid>B<, -1)> へ変更され"
8940 "た点だけが違う (どの glibc バージョンで変更が行われたかは、ハードウェアアーキ"
8941 "テクチャによって異なる)。"
8942
8943 #. type: Plain text
8944 #: build/C/man2/seteuid.2:124
8945 msgid ""
8946 "According to POSIX.1, B<seteuid>()  (B<setegid>())  need not permit I<euid> "
8947 "(I<egid>)  to be the same value as the current effective user (group) ID, "
8948 "and some implementations do not permit this."
8949 msgstr ""
8950 "POSIX.1 では、 B<seteuid>()  (B<setegid>())  で、 I<euid> (I<egid>)  として現"
8951 "在の実効ユーザ (グループ) ID と同じ値を指定可能である 必要はないとされてお"
8952 "り、いくつかの実装では I<euid> (I<egid>)  として現在の実効ユーザ (グループ) "
8953 "ID と同じ値を 指定することができない。"
8954
8955 #. type: Plain text
8956 #: build/C/man2/seteuid.2:131
8957 msgid ""
8958 "B<geteuid>(2), B<setresuid>(2), B<setreuid>(2), B<setuid>(2), B<capabilities>"
8959 "(7), B<credentials>(7)"
8960 msgstr ""
8961 "B<geteuid>(2), B<setresuid>(2), B<setreuid>(2), B<setuid>(2), B<capabilities>"
8962 "(7), B<credentials>(7)"
8963
8964 #. type: TH
8965 #: build/C/man2/setfsgid.2:31
8966 #, no-wrap
8967 msgid "SETFSGID"
8968 msgstr "SETFSGID"
8969
8970 #. type: Plain text
8971 #: build/C/man2/setfsgid.2:34
8972 msgid "setfsgid - set group identity used for file system checks"
8973 msgstr ""
8974 "setfsgid - ファイルシステムのチェックに用いられるグループ ID を設定する"
8975
8976 #. type: Plain text
8977 #: build/C/man2/setfsgid.2:37 build/C/man2/setfsuid.2:37
8978 msgid "B<#include E<lt>unistd.hE<gt>> /* glibc uses E<lt>sys/fsuid.hE<gt> */"
8979 msgstr "B<#include E<lt>unistd.hE<gt>> /* glibc では E<lt>sys/fsuid.hE<gt> */"
8980
8981 #. type: Plain text
8982 #: build/C/man2/setfsgid.2:39
8983 msgid "B<int setfsgid(uid_t >I<fsgid>B<);>"
8984 msgstr "B<int setfsgid(uid_t >I<fsgid>B<);>"
8985
8986 #. type: Plain text
8987 #: build/C/man2/setfsgid.2:51
8988 msgid ""
8989 "The system call B<setfsgid>()  sets the group ID that the Linux kernel uses "
8990 "to check for all accesses to the file system.  Normally, the value of "
8991 "I<fsgid> will shadow the value of the effective group ID.  In fact, whenever "
8992 "the effective group ID is changed, I<fsgid> will also be changed to the new "
8993 "value of the effective group ID."
8994 msgstr ""
8995 "システムコール B<setfsgid>()  は Linux カーネルがファイルシステムに対する 全"
8996 "てのアクセスのチェックに使用するグループ IDを設定する。通常は I<fsgid> の値は"
8997 "実効 (effective) グループID と同じになる。実際、 実効グループ ID が変更される"
8998 "度に I<fsgid> もまた新しい実効グループID の値に変更される。"
8999
9000 #. type: Plain text
9001 #: build/C/man2/setfsgid.2:62
9002 msgid ""
9003 "Explicit calls to B<setfsuid>(2)  and B<setfsgid>()  are usually used only "
9004 "by programs such as the Linux NFS server that need to change what user and "
9005 "group ID is used for file access without a corresponding change in the real "
9006 "and effective user and group IDs.  A change in the normal user IDs for a "
9007 "program such as the NFS server is a security hole that can expose it to "
9008 "unwanted signals.  (But see below.)"
9009 msgstr ""
9010 "通常、 B<setfsuid>()  や B<setfsgid>() を明示的に呼び出すのは、Linux NFS サー"
9011 "バー のように、 ファイルアクセスに用いるユーザID / グループID を変更しなけれ"
9012 "ばならないが、 対応する実(real)/実効(effective) ユーザID / グループID は変更"
9013 "したくないような プログラムに限られる。 NFS サーバーのようなプログラムで、通"
9014 "常のユーザID を変更すると、 プロセスを望まないシグナルにさらす可能性があり、 "
9015 "セキュリティホールになる。(下記参照)"
9016
9017 #. type: Plain text
9018 #: build/C/man2/setfsgid.2:69
9019 msgid ""
9020 "B<setfsgid>()  will succeed only if the caller is the superuser or if "
9021 "I<fsgid> matches either the real group ID, effective group ID, saved set-"
9022 "group-ID, or the current value of I<fsgid>."
9023 msgstr ""
9024 "B<setfsgid>()  は、スーパーユーザによって呼び出された場合か、 I<fsgid> が実グ"
9025 "ループID、実効グループID、 保存セットグループID (saved set-group-ID)、現在の "
9026 "I<fsgid> の値のいずれかに一致する場合にのみ成功する。"
9027
9028 #. type: Plain text
9029 #: build/C/man2/setfsgid.2:76
9030 msgid ""
9031 "On success, the previous value of I<fsgid> is returned.  On error, the "
9032 "current value of I<fsgid> is returned."
9033 msgstr ""
9034 "成功した場合、 I<fsgid> の以前の値を返す。エラーの場合は I<fsgid> の現在の値"
9035 "を返す。"
9036
9037 #.  This system call is present since Linux 1.1.44
9038 #.  and in libc since libc 4.7.6.
9039 #. type: Plain text
9040 #: build/C/man2/setfsgid.2:80 build/C/man2/setfsuid.2:80
9041 msgid "This system call is present in Linux since version 1.2."
9042 msgstr "このシステムコールはバージョン 1.2 以降の Linux に存在する。"
9043
9044 #. type: Plain text
9045 #: build/C/man2/setfsgid.2:84
9046 msgid ""
9047 "B<setfsgid>()  is Linux-specific and should not be used in programs intended "
9048 "to be portable."
9049 msgstr ""
9050 "B<setfsgid>()  は Linux 特有であり、移植を想定したプログラムで使用してはいけ"
9051 "ない。"
9052
9053 #. type: Plain text
9054 #: build/C/man2/setfsgid.2:90
9055 msgid ""
9056 "When glibc determines that the argument is not a valid group ID, it will "
9057 "return -1 and set I<errno> to B<EINVAL> without attempting the system call."
9058 msgstr ""
9059 "glibc が引き数がグループID として不正だと判断した場合は、 システムコールを行"
9060 "わず I<errno> に B<EINVAL> を設定して -1 が返される。"
9061
9062 #. type: Plain text
9063 #: build/C/man2/setfsgid.2:94 build/C/man2/setfsuid.2:94
9064 msgid ""
9065 "Note that at the time this system call was introduced, a process could send "
9066 "a signal to a process with the same effective user ID.  Today signal "
9067 "permission handling is slightly different."
9068 msgstr ""
9069 "このシステムコールが導入された当時、プロセスは 同じ実効ユーザIDのプロセスへシ"
9070 "グナルを送ることができた。 今日では、シグナル送信権限の扱いはかなり違うものに"
9071 "なっている。"
9072
9073 #. type: Plain text
9074 #: build/C/man2/setfsgid.2:104
9075 msgid ""
9076 "The original Linux B<setfsgid>()  system call supported only 16-bit group "
9077 "IDs.  Subsequently, Linux 2.4 added B<setfsgid32>()  supporting 32-bit IDs.  "
9078 "The glibc B<setfsgid>()  wrapper function transparently deals with the "
9079 "variation across kernel versions."
9080 msgstr ""
9081 "元々の Linux の B<setfsgid>() システムコールは\n"
9082 "16 ビットのグループ ID だけに対応していた。\n"
9083 "その後、Linux 2.4 で、32 ビットの ID に対応した\n"
9084 "B<setfsgid32>() が追加された。\n"
9085 "glibc の B<setfsgid>() のラッパー関数は\n"
9086 "カーネルバージョンによるこの違いを吸収している。"
9087
9088 #. type: Plain text
9089 #: build/C/man2/setfsgid.2:112
9090 msgid ""
9091 "No error messages of any kind are returned to the caller.  At the very "
9092 "least, B<EPERM> should be returned when the call fails (because the caller "
9093 "lacks the B<CAP_SETGID> capability)."
9094 msgstr ""
9095 "いかなる種類のエラーメッセージも返さない。 失敗した場合は (呼び出し元には "
9096 "B<CAP_SETGID> ケーパビリティがなかったのだから) 最低でも B<EPERM> くらいは返"
9097 "すべきである。"
9098
9099 #. type: Plain text
9100 #: build/C/man2/setfsgid.2:117
9101 msgid "B<kill>(2), B<setfsuid>(2), B<capabilities>(7), B<credentials>(7)"
9102 msgstr "B<kill>(2), B<setfsuid>(2), B<capabilities>(7), B<credentials>(7)"
9103
9104 #. type: TH
9105 #: build/C/man2/setfsuid.2:31
9106 #, no-wrap
9107 msgid "SETFSUID"
9108 msgstr "SETFSUID"
9109
9110 #. type: Plain text
9111 #: build/C/man2/setfsuid.2:34
9112 msgid "setfsuid - set user identity used for file system checks"
9113 msgstr "setfsuid - ファイルシステムのチェックに用いられるユーザ ID を設定する"
9114
9115 #. type: Plain text
9116 #: build/C/man2/setfsuid.2:39
9117 msgid "B<int setfsuid(uid_t >I<fsuid>B<);>"
9118 msgstr "B<int setfsuid(uid_t >I<fsuid>B<);>"
9119
9120 #. type: Plain text
9121 #: build/C/man2/setfsuid.2:51
9122 msgid ""
9123 "The system call B<setfsuid>()  sets the user ID that the Linux kernel uses "
9124 "to check for all accesses to the file system.  Normally, the value of "
9125 "I<fsuid> will shadow the value of the effective user ID.  In fact, whenever "
9126 "the effective user ID is changed, I<fsuid> will also be changed to the new "
9127 "value of the effective user ID."
9128 msgstr ""
9129 "B<setfsuid>()  は Linux カーネルがファイルシステムに対する 全てのアクセスの"
9130 "チェックに使用するユーザID を設定する。通常は I<fsuid> の値は実効 "
9131 "(effective) ユーザID と同じになる。実際、 実効ユーザID が変更される度に "
9132 "I<fsuid> もまた新しい実効ユーザID の値に変更される。"
9133
9134 #. type: Plain text
9135 #: build/C/man2/setfsuid.2:62
9136 msgid ""
9137 "Explicit calls to B<setfsuid>()  and B<setfsgid>(2)  are usually used only "
9138 "by programs such as the Linux NFS server that need to change what user and "
9139 "group ID is used for file access without a corresponding change in the real "
9140 "and effective user and group IDs.  A change in the normal user IDs for a "
9141 "program such as the NFS server is a security hole that can expose it to "
9142 "unwanted signals.  (But see below.)"
9143 msgstr ""
9144 "通常、 B<setfsuid>()  や B<setfsgid>() を明示的に呼び出すのは、Linux NFS サー"
9145 "バー のように、 ファイルアクセスに用いるユーザID / グループID を変更しなけれ"
9146 "ばならないが、 対応する実(real)/実効(effective) ユーザID / グループID は変更"
9147 "したくないような プログラムに限られる。 NFS サーバーのようなプログラムで、通"
9148 "常のユーザID を変更すると、 プロセスを望まないシグナルにさらす可能性があり、 "
9149 "セキュリティホールになる。(下記参照)"
9150
9151 #. type: Plain text
9152 #: build/C/man2/setfsuid.2:69
9153 msgid ""
9154 "B<setfsuid>()  will succeed only if the caller is the superuser or if "
9155 "I<fsuid> matches either the real user ID, effective user ID, saved set-user-"
9156 "ID, or the current value of I<fsuid>."
9157 msgstr ""
9158 "B<setfsuid>()  は、スーパーユーザによって呼び出された場合か、 I<fsuid> が実"
9159 "ユーザID、実効ユーザID、 保存セットユーザID (saved set-user-ID)、現在の "
9160 "I<fsuid> の値のいずれかに一致する場合にのみ成功する。"
9161
9162 #. type: Plain text
9163 #: build/C/man2/setfsuid.2:76
9164 msgid ""
9165 "On success, the previous value of I<fsuid> is returned.  On error, the "
9166 "current value of I<fsuid> is returned."
9167 msgstr ""
9168 "成功した場合、 I<fsuid> の以前の値を返す。エラーの場合は I<fsuid> の現在の値"
9169 "を返す。"
9170
9171 #. type: Plain text
9172 #: build/C/man2/setfsuid.2:84
9173 msgid ""
9174 "B<setfsuid>()  is Linux-specific and should not be used in programs intended "
9175 "to be portable."
9176 msgstr ""
9177 "B<setfsuid>()  は Linux 特有であり、移植を想定したプログラムで使用してはいけ"
9178 "ない。"
9179
9180 #. type: Plain text
9181 #: build/C/man2/setfsuid.2:90
9182 msgid ""
9183 "When glibc determines that the argument is not a valid user ID, it will "
9184 "return -1 and set I<errno> to B<EINVAL> without attempting the system call."
9185 msgstr ""
9186 "glibc が引き数がユーザID として不正だと判断した場合は、 システムコールを行わ"
9187 "ず I<errno> に B<EINVAL> を設定して -1 が返される。"
9188
9189 #. type: Plain text
9190 #: build/C/man2/setfsuid.2:104
9191 msgid ""
9192 "The original Linux B<setfsuid>()  system call supported only 16-bit user "
9193 "IDs.  Subsequently, Linux 2.4 added B<setfsuid32>()  supporting 32-bit IDs.  "
9194 "The glibc B<setfsuid>()  wrapper function transparently deals with the "
9195 "variation across kernel versions."
9196 msgstr ""
9197 "元々の Linux の B<setfsuid>() システムコールは\n"
9198 "16 ビットのグループ ID だけに対応していた。\n"
9199 "その後、Linux 2.4 で、32 ビットの ID に対応した\n"
9200 "B<setfsuid32>() が追加された。\n"
9201 "glibc の B<setfsuid>() のラッパー関数は\n"
9202 "カーネルバージョンによるこの違いを吸収している。"
9203
9204 #. type: Plain text
9205 #: build/C/man2/setfsuid.2:112
9206 msgid ""
9207 "No error messages of any kind are returned to the caller.  At the very "
9208 "least, B<EPERM> should be returned when the call fails (because the caller "
9209 "lacks the B<CAP_SETUID> capability)."
9210 msgstr ""
9211 "いかなる種類のエラーメッセージも呼び出し元に返さない。 失敗した場合は (呼び出"
9212 "し元には B<CAP_SETUID> ケーパビリティがなかったのだから) 最低でも B<EPERM> く"
9213 "らいは返すべきである。"
9214
9215 #. type: Plain text
9216 #: build/C/man2/setfsuid.2:117
9217 msgid "B<kill>(2), B<setfsgid>(2), B<capabilities>(7), B<credentials>(7)"
9218 msgstr "B<kill>(2), B<setfsgid>(2), B<capabilities>(7), B<credentials>(7)"
9219
9220 #. type: TH
9221 #: build/C/man2/setgid.2:29
9222 #, no-wrap
9223 msgid "SETGID"
9224 msgstr "SETGID"
9225
9226 #. type: Plain text
9227 #: build/C/man2/setgid.2:32
9228 msgid "setgid - set group identity"
9229 msgstr "setgid - グループ識別(identity)を設定する"
9230
9231 #. type: Plain text
9232 #: build/C/man2/setgid.2:38
9233 msgid "B<int setgid(gid_t >I<gid>B<);>"
9234 msgstr "B<int setgid(gid_t >I<gid>B<);>"
9235
9236 #. type: Plain text
9237 #: build/C/man2/setgid.2:43
9238 msgid ""
9239 "B<setgid>()  sets the effective group ID of the calling process.  If the "
9240 "caller is the superuser, the real GID and saved set-group-ID are also set."
9241 msgstr ""
9242 "B<setgid>()  は呼び出し元のプロセスの実効 (effective) グループID を設定す"
9243 "る。 もしスーパーユーザーによって呼び出された場合は、 実 (real) グループID と"
9244 "保存 (saved) set-group-ID も設定される。"
9245
9246 #. type: Plain text
9247 #: build/C/man2/setgid.2:53
9248 msgid ""
9249 "Under Linux, B<setgid>()  is implemented like the POSIX version with the "
9250 "B<_POSIX_SAVED_IDS> feature.  This allows a set-group-ID program that is not "
9251 "set-user-ID-root to drop all of its group privileges, do some un-privileged "
9252 "work, and then reengage the original effective group ID in a secure manner."
9253 msgstr ""
9254 "Linux において、 B<setgid>()  は B<_POSIX_SAVED_IDS> をもった POSIX 版のよう"
9255 "に実装されている。 これは set-user-ID-root でない set-group-ID プログラムにそ"
9256 "のグループの 特権の全て落とし、特権の必要ない仕事をし、本来の実効グループID "
9257 "に 安全な方法で再び戻すことを許す。"
9258
9259 #. type: Plain text
9260 #: build/C/man2/setgid.2:66
9261 msgid ""
9262 "The calling process is not privileged (does not have the B<CAP_SETGID> "
9263 "capability), and I<gid> does not match the real group ID or saved set-group-"
9264 "ID of the calling process."
9265 msgstr ""
9266 "呼び出し元のプロセスに権限がなく (B<CAP_SETGID> ケーパビリティがなく)、かつ "
9267 "I<gid> が呼び出し元のプロセスの実グループID と保存セットグループID のどちらと"
9268 "も一致しない。"
9269
9270 #. type: Plain text
9271 #: build/C/man2/setgid.2:78
9272 msgid ""
9273 "The original Linux B<setgid>()  system call supported only 16-bit group "
9274 "IDs.  Subsequently, Linux 2.4 added B<setgid32>()  supporting 32-bit IDs.  "
9275 "The glibc B<setgid>()  wrapper function transparently deals with the "
9276 "variation across kernel versions."
9277 msgstr ""
9278 "元々の Linux の B<setgid>() システムコールは\n"
9279 "16 ビットのグループ ID だけに対応していた。\n"
9280 "その後、Linux 2.4 で、32 ビットの ID に対応した\n"
9281 "B<setgid32>() が追加された。\n"
9282 "glibc の B<setgid>() のラッパー関数は\n"
9283 "カーネルバージョンによるこの違いを吸収している。"
9284
9285 #. type: Plain text
9286 #: build/C/man2/setgid.2:84
9287 msgid ""
9288 "B<getgid>(2), B<setegid>(2), B<setregid>(2), B<capabilities>(7), "
9289 "B<credentials>(7)"
9290 msgstr ""
9291 "B<getgid>(2), B<setegid>(2), B<setregid>(2), B<capabilities>(7), "
9292 "B<credentials>(7)"
9293
9294 #. type: TH
9295 #: build/C/man2/setpgid.2:48
9296 #, no-wrap
9297 msgid "SETPGID"
9298 msgstr "SETPGID"
9299
9300 #. type: TH
9301 #: build/C/man2/setpgid.2:48
9302 #, fuzzy, no-wrap
9303 #| msgid "2013-04-17"
9304 msgid "2013-07-31"
9305 msgstr "2013-04-17"
9306
9307 #. type: Plain text
9308 #: build/C/man2/setpgid.2:51
9309 msgid "setpgid, getpgid, setpgrp, getpgrp - set/get process group"
9310 msgstr "setpgid, getpgid, setpgrp, getpgrp - プロセスグループの設定/取得を行う"
9311
9312 #. type: Plain text
9313 #: build/C/man2/setpgid.2:55
9314 msgid "B<int setpgid(pid_t >I<pid>B<, pid_t >I<pgid>B<);>"
9315 msgstr "B<int setpgid(pid_t >I<pid>B<, pid_t >I<pgid>B<);>"
9316
9317 #. type: Plain text
9318 #: build/C/man2/setpgid.2:57
9319 msgid "B<pid_t getpgid(pid_t >I<pid>B<);>"
9320 msgstr "B<pid_t getpgid(pid_t >I<pid>B<);>"
9321
9322 #. type: Plain text
9323 #: build/C/man2/setpgid.2:59
9324 msgid "B<pid_t getpgrp(void);> /* POSIX.1 version */"
9325 msgstr "B<pid_t getpgrp(void);> /* POSIX.1 version */"
9326
9327 #. type: Plain text
9328 #: build/C/man2/setpgid.2:62
9329 msgid ""
9330 "B<pid_t getpgrp(pid_t >I<pid>B<);\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ > /* BSD "
9331 "version */"
9332 msgstr ""
9333 "B<pid_t getpgrp(pid_t >I<pid>B<);\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ > /* BSD "
9334 "version */"
9335
9336 #. type: Plain text
9337 #: build/C/man2/setpgid.2:64
9338 msgid "B<int setpgrp(void);> /* System V version */"
9339 msgstr "B<int setpgrp(void);> /* System V version */"
9340
9341 #. type: Plain text
9342 #: build/C/man2/setpgid.2:67
9343 msgid "B<int setpgrp(pid_t >I<pid>B<, pid_t >I<pgid>B<);\\ > /* BSD version */"
9344 msgstr ""
9345 "B<int setpgrp(pid_t >I<pid>B<, pid_t >I<pgid>B<);\\ > /* BSD version */"
9346
9347 #. type: Plain text
9348 #: build/C/man2/setpgid.2:76
9349 msgid "B<getpgid>():"
9350 msgstr "B<getpgid>():"
9351
9352 #. type: Plain text
9353 #: build/C/man2/setpgid.2:84
9354 msgid "B<setpgrp>() (POSIX.1):"
9355 msgstr "B<setpgrp>() (POSIX.1):"
9356
9357 #. type: Plain text
9358 #: build/C/man2/setpgid.2:87
9359 #, no-wrap
9360 msgid ""
9361 "    _SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 ||\n"
9362 "    _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED\n"
9363 msgstr ""
9364 "    _SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 ||\n"
9365 "    _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED\n"
9366
9367 #. type: Plain text
9368 #: build/C/man2/setpgid.2:91
9369 msgid "B<setpgrp>()\\ (BSD), B<getpgrp>()\\ (BSD):"
9370 msgstr "B<setpgrp>()\\ (BSD), B<getpgrp>()\\ (BSD):"
9371
9372 #. type: Plain text
9373 #: build/C/man2/setpgid.2:95
9374 #, no-wrap
9375 msgid ""
9376 "    _BSD_SOURCE &&\n"
9377 "        !\\ (_POSIX_SOURCE || _POSIX_C_SOURCE || _XOPEN_SOURCE ||\n"
9378 "           _XOPEN_SOURCE_EXTENDED || _GNU_SOURCE || _SVID_SOURCE)\n"
9379 msgstr ""
9380 "    _BSD_SOURCE &&\n"
9381 "        !\\ (_POSIX_SOURCE || _POSIX_C_SOURCE || _XOPEN_SOURCE ||\n"
9382 "           _XOPEN_SOURCE_EXTENDED || _GNU_SOURCE || _SVID_SOURCE)\n"
9383
9384 #. type: Plain text
9385 #: build/C/man2/setpgid.2:107
9386 msgid ""
9387 "All of these interfaces are available on Linux, and are used for getting and "
9388 "setting the process group ID (PGID) of a process.  The preferred, POSIX.1-"
9389 "specified ways of doing this are: B<getpgrp>(void), for retrieving the "
9390 "calling process's PGID; and B<setpgid>(), for setting a process's PGID."
9391 msgstr ""
9392 "これらのインタフェースすべてが Linux で利用可能で、 これらを使ってプロセスの"
9393 "プロセスグループ ID (PGID) の 取得や設定ができる。 推奨の、POSIX.1 で規定され"
9394 "た方法では、 B<getpgrp>(void)  で呼び出し元プロセスの PGID を取得し、 "
9395 "B<setpgid>()  で設定する。"
9396
9397 #. type: Plain text
9398 #: build/C/man2/setpgid.2:132
9399 msgid ""
9400 "B<setpgid>()  sets the PGID of the process specified by I<pid> to I<pgid>.  "
9401 "If I<pid> is zero, then the process ID of the calling process is used.  If "
9402 "I<pgid> is zero, then the PGID of the process specified by I<pid> is made "
9403 "the same as its process ID.  If B<setpgid>()  is used to move a process from "
9404 "one process group to another (as is done by some shells when creating "
9405 "pipelines), both process groups must be part of the same session (see "
9406 "B<setsid>(2)  and B<credentials>(7)).  In this case, the I<pgid> specifies "
9407 "an existing process group to be joined and the session ID of that group must "
9408 "match the session ID of the joining process."
9409 msgstr ""
9410 "B<setpgid>()  は I<pid> で指定したプロセスの PGID に I<pgid> を設定する。 "
9411 "I<pid> がゼロならば、呼び出し元プロセスのプロセス ID が pid として使用され"
9412 "る。 I<pgid> がゼロならば、 I<pid> で指定されたプロセスの PGID がそのプロセス"
9413 "のプロセス ID と 同じに設定される。 B<setpgid>()  をプロセスをあるプロセスグ"
9414 "ループから別のグループへ 移動するために使用する場合は (一部のシェルはパイプラ"
9415 "インを生成 する時にこれを行う)、両方のプロセスグループは同じセッションの 一部"
9416 "でなければならない (B<setsid>(2)  と B<credentials>(7)  参照)。この場合は "
9417 "I<pgid> は参加すべき既存の プロセスグループを指定し、そのセッション ID は参加"
9418 "するプロセスの セッション ID に一致しなければならない。"
9419
9420 #. type: Plain text
9421 #: build/C/man2/setpgid.2:137
9422 msgid ""
9423 "The POSIX.1 version of B<getpgrp>(), which takes no arguments, returns the "
9424 "PGID of the calling process."
9425 msgstr ""
9426 "POSIX.1 バージョンの B<getpgrp>()  は引き数を一つもとらず、 呼び出し元プロセ"
9427 "スの PGID を返す。"
9428
9429 #. type: Plain text
9430 #: build/C/man2/setpgid.2:148
9431 msgid ""
9432 "B<getpgid>()  returns the PGID of the process specified by I<pid>.  If "
9433 "I<pid> is zero, the process ID of the calling process is used.  (Retrieving "
9434 "the PGID of a process other than the caller is rarely necessary, and the "
9435 "POSIX.1 B<getpgrp>()  is preferred for that task.)"
9436 msgstr ""
9437 "B<getpgid>()  は I<pid> で指定されたプロセスの PGID を返す。 I<pid> がゼロな"
9438 "らば、呼び出し元プロセスのプロセス ID が pid として使用される。 (呼び出し元プ"
9439 "ロセス以外のプロセスの PGID の取得が必要になることは めったになく、呼び出し元"
9440 "プロセスの PGID を取得するには POSIX.1 バージョンの B<getpgrp>()  を使うのが"
9441 "望ましい。)"
9442
9443 #. type: Plain text
9444 #: build/C/man2/setpgid.2:153
9445 msgid ""
9446 "The System V-style B<setpgrp>(), which takes no arguments, is equivalent to "
9447 "I<setpgid(0,\\ 0)>."
9448 msgstr ""
9449 "System V バージョンの B<setpgrp>()  は引き数を一つもとらず、 I<setpgid(0,\\ "
9450 "0)> と等価である。"
9451
9452 #.  The true BSD setpgrp() system call differs in allowing the PGID
9453 #.  to be set to arbitrary values, rather than being restricted to
9454 #.  PGIDs in the same session.
9455 #. type: Plain text
9456 #: build/C/man2/setpgid.2:165
9457 msgid ""
9458 "The BSD-specific B<setpgrp>()  call, which takes arguments I<pid> and "
9459 "I<pgid>, is equivalent to I<setpgid(pid, pgid)>."
9460 msgstr ""
9461 "BSD 仕様の B<setpgrp>()  は I<pid> と I<pgid> を引き数にとり、 I<setpgid"
9462 "(pid, pgid)> と等価である。"
9463
9464 #. type: Plain text
9465 #: build/C/man2/setpgid.2:172
9466 msgid ""
9467 "The BSD-specific B<getpgrp>()  call, which takes a single I<pid> argument, "
9468 "is equivalent to I<getpgid(pid)>."
9469 msgstr ""
9470 "BSD 仕様の B<getpgrp>()  は I<pid> だけを引き数にとり、 I<getpgid(pid)> と等"
9471 "価である。"
9472
9473 #. type: Plain text
9474 #: build/C/man2/setpgid.2:181
9475 msgid ""
9476 "On success, B<setpgid>()  and B<setpgrp>()  return zero.  On error, -1 is "
9477 "returned, and I<errno> is set appropriately."
9478 msgstr ""
9479 "B<setpgid>()  と B<setpgrp>()  は成功した場合、ゼロを返す。エラーの場合は -1 "
9480 "を返し、 I<errno> が適切に設定される。"
9481
9482 #. type: Plain text
9483 #: build/C/man2/setpgid.2:185
9484 msgid "The POSIX.1 B<getpgrp>()  always returns the PGID of the caller."
9485 msgstr ""
9486 "POSIX.1 バージョンの B<getpgrp>()  は常に呼び出しプロセスの PGID を返す。"
9487
9488 #. type: Plain text
9489 #: build/C/man2/setpgid.2:193
9490 msgid ""
9491 "B<getpgid>(), and the BSD-specific B<getpgrp>()  return a process group on "
9492 "success.  On error, -1 is returned, and I<errno> is set appropriately."
9493 msgstr ""
9494 "B<getpgid>()  と BSD 仕様の B<getpgrp>()  は成功した場合プロセスグループを返"
9495 "す。 エラーの場合は -1 を返し、 I<errno> が適切に設定される。"
9496
9497 #. type: Plain text
9498 #: build/C/man2/setpgid.2:202
9499 msgid ""
9500 "An attempt was made to change the process group ID of one of the children of "
9501 "the calling process and the child had already performed an B<execve>(2)  "
9502 "(B<setpgid>(), B<setpgrp>())."
9503 msgstr ""
9504 "呼び出し元プロセスの子プロセスのプロセスグループ ID を変更しようとしたが、 す"
9505 "でにその子プロセスは B<execve>(2)  を実行していた。 (B<setpgid>(), B<setpgrp>"
9506 "())"
9507
9508 #. type: Plain text
9509 #: build/C/man2/setpgid.2:208
9510 msgid "I<pgid> is less than 0 (B<setpgid>(), B<setpgrp>())."
9511 msgstr "I<pgid> が 0 より小さい。 (B<setpgid>(), B<setpgrp>())"
9512
9513 #. type: Plain text
9514 #: build/C/man2/setpgid.2:217
9515 msgid ""
9516 "An attempt was made to move a process into a process group in a different "
9517 "session, or to change the process group ID of one of the children of the "
9518 "calling process and the child was in a different session, or to change the "
9519 "process group ID of a session leader (B<setpgid>(), B<setpgrp>())."
9520 msgstr ""
9521 "プロセスを異なるセッションのプロセスグループに移動させようとした。 または呼び"
9522 "出し元プロセスの子プロセスのプロセスグループ ID を変更しようと したが、その子"
9523 "プロセスは別のセッションだった。 またはセッションリーダーのプロセスグループ "
9524 "ID を変更しようとした。 (B<setpgid>(), B<setpgrp>())"
9525
9526 #. type: Plain text
9527 #: build/C/man2/setpgid.2:227
9528 msgid ""
9529 "For B<getpgid>(): I<pid> does not match any process.  For B<setpgid>(): "
9530 "I<pid> is not the calling process and not a child of the calling process."
9531 msgstr ""
9532 "B<getpgid>()  の場合: I<pid> がどのプロセスにも一致しない。 B<setpgid>()  の"
9533 "場合: I<pid> が呼び出し元のプロセスではなく、呼び出し元のプロセスの子プロセス"
9534 "でもない。"
9535
9536 #. type: Plain text
9537 #: build/C/man2/setpgid.2:233
9538 msgid ""
9539 "B<setpgid>()  and the version of B<getpgrp>()  with no arguments conform to "
9540 "POSIX.1-2001."
9541 msgstr ""
9542 "B<setpgid>()  と、引き数なしバージョンの B<getpgrp>()  は POSIX.1-2001 に準拠"
9543 "している。"
9544
9545 #. type: Plain text
9546 #: build/C/man2/setpgid.2:242
9547 msgid ""
9548 "POSIX.1-2001 also specifies B<getpgid>()  and the version of B<setpgrp>()  "
9549 "that takes no arguments.  (POSIX.1-2008 marks this B<setpgrp>()  "
9550 "specification as obsolete.)"
9551 msgstr ""
9552 "POSIX.1-2001 は、 B<getpgid>()  と、引き数なしバージョンの B<setpgrp>()  も規"
9553 "定している。 POSIX.1-2008 は、この B<setpgrp>()  の仕様を廃止予定としている。"
9554
9555 #. type: Plain text
9556 #: build/C/man2/setpgid.2:249
9557 msgid ""
9558 "The version of B<getpgrp>()  with one argument and the version of B<setpgrp>"
9559 "()  that takes two arguments derive from 4.2BSD, and are not specified by "
9560 "POSIX.1."
9561 msgstr ""
9562 "引き数 1 個バージョンの B<getpgrp>()  と引き数 2 個バージョンの B<setpgrp>"
9563 "()  は 4.2BSD に由来し、 POSIX.1 では規定されていない。"
9564
9565 #. type: Plain text
9566 #: build/C/man2/setpgid.2:255
9567 msgid ""
9568 "A child created via B<fork>(2)  inherits its parent's process group ID.  The "
9569 "PGID is preserved across an B<execve>(2)."
9570 msgstr ""
9571 "B<fork>(2)  で作成された子プロセスは、親プロセスの PGID を継承する。 "
9572 "B<execve>(2)  の前後で PGID は保存される。"
9573
9574 #. type: Plain text
9575 #: build/C/man2/setpgid.2:258
9576 msgid ""
9577 "Each process group is a member of a session and each process is a member of "
9578 "the session of which its process group is a member."
9579 msgstr ""
9580 "各プロセスグループはセッションのメンバーであり、各プロセスは そのプロセスグ"
9581 "ループが所属しているセッションのメンバーである。"
9582
9583 #. type: Plain text
9584 #: build/C/man2/setpgid.2:285
9585 #, fuzzy
9586 #| msgid ""
9587 #| "A session can have a controlling terminal.  At any time, one (and only "
9588 #| "one) of the process groups in the session can be the foreground process "
9589 #| "group for the terminal; the remaining process groups are in the "
9590 #| "background.  If a signal is generated from the terminal (e.g., typing the "
9591 #| "interrupt key to generate B<SIGINT>), that signal is sent to the "
9592 #| "foreground process group.  (See B<termios>(3)  for a description of the "
9593 #| "characters that generate signals.)  Only the foreground process group may "
9594 #| "B<read>(2)  from the terminal; if a background process group tries to "
9595 #| "B<read>(2)  from the terminal, then the group is sent a B<SIGTSTP> "
9596 #| "signal, which suspends it.  The B<tcgetpgrp>(3)  and B<tcsetpgrp>(3)  "
9597 #| "functions are used to get/set the foreground process group of the "
9598 #| "controlling terminal."
9599 msgid ""
9600 "A session can have a controlling terminal.  At any time, one (and only one) "
9601 "of the process groups in the session can be the foreground process group for "
9602 "the terminal; the remaining process groups are in the background.  If a "
9603 "signal is generated from the terminal (e.g., typing the interrupt key to "
9604 "generate B<SIGINT>), that signal is sent to the foreground process group.  "
9605 "(See B<termios>(3)  for a description of the characters that generate "
9606 "signals.)  Only the foreground process group may B<read>(2)  from the "
9607 "terminal; if a background process group tries to B<read>(2)  from the "
9608 "terminal, then the group is sent a B<SIGTTIN> signal, which suspends it.  "
9609 "The B<tcgetpgrp>(3)  and B<tcsetpgrp>(3)  functions are used to get/set the "
9610 "foreground process group of the controlling terminal."
9611 msgstr ""
9612 "セッションは制御端末 (controlling terminal) を持つことができる。 いつでも、"
9613 "セッションに所属するプロセスグループの一つ (だけ) が 端末のフォアグランドのプ"
9614 "ロセスグループになることができ、 残りのプロセスグループはバックグラウンドにな"
9615 "る。 端末からシグナルが生成された場合 (例えば、中断キーを叩いて B<SIGINT> が"
9616 "生成されるなど)、そのシグナルはフォアグラウンドのプロセスグループ に送られる "
9617 "(シグナルを生成する文字の説明は B<termios>(3)  を参照)。 フォアグラウンドのプ"
9618 "ロセスグループだけが端末からの B<read>(2)  ができる。 バックグラウンドのプロ"
9619 "セスグループが端末からの B<read>(2)  を行おうとした場合、そのプロセスグループ"
9620 "にはシグナル B<SIGTSTP> が送られ、そのプロセスグループは一時停止 (suspend) す"
9621 "る。 関数 B<tcgetpgrp>(3)  と B<tcsetpgrp>(3)  を使うと、制御端末のフォアグラ"
9622 "ウンドのプロセスグループを 取得/設定できる。"
9623
9624 #. type: Plain text
9625 #: build/C/man2/setpgid.2:293
9626 msgid ""
9627 "The B<setpgid>()  and B<getpgrp>()  calls are used by programs such as "
9628 "B<bash>(1)  to create process groups in order to implement shell job control."
9629 msgstr ""
9630 "B<setpgid>()  と B<getpgrp>()  は、 B<bash>(1)  のようなプログラムで、シェル"
9631 "のジョブ制御 (job control) の実装のための プロセスグループを作成するのに使わ"
9632 "れる。"
9633
9634 #. type: Plain text
9635 #: build/C/man2/setpgid.2:303
9636 msgid ""
9637 "If a session has a controlling terminal, and the B<CLOCAL> flag for that "
9638 "terminal is not set, and a terminal hangup occurs, then the session leader "
9639 "is sent a B<SIGHUP>.  If the session leader exits, then a B<SIGHUP> signal "
9640 "will also be sent to each process in the foreground process group of the "
9641 "controlling terminal."
9642 msgstr ""
9643 "セッションが制御端末を持っていて、その端末に対して B<CLOCAL> フラグが設定され"
9644 "ておらず、端末のハングアップが起きた場合、 セッション・リーダーに B<SIGHUP> "
9645 "が送られる。 セッション・リーダーが終了した場合には、その制御端末の フォアグ"
9646 "ランドのプロセスグループに所属する各プロセスにも B<SIGHUP> シグナルが送られ"
9647 "る。"
9648
9649 #.  exit.3 refers to the following text:
9650 #. type: Plain text
9651 #: build/C/man2/setpgid.2:317
9652 msgid ""
9653 "If the exit of the process causes a process group to become orphaned, and if "
9654 "any member of the newly orphaned process group is stopped, then a B<SIGHUP> "
9655 "signal followed by a B<SIGCONT> signal will be sent to each process in the "
9656 "newly orphaned process group.  An orphaned process group is one in which the "
9657 "parent of every member of process group is either itself also a member of "
9658 "the process group or is a member of a process group in a different session "
9659 "(see also B<credentials>(7))."
9660 msgstr ""
9661 "プロセスの終了によってプロセスグループが孤児 (orphaned) になった際に、 その新"
9662 "たに孤児になったプロセスグループに停止しているメンバーがいれば、 その孤児に"
9663 "なったプロセスグループに属す全てのプロセスに B<SIGHUP> シグナルに続けて "
9664 "B<SIGCONT> シグナルが送られる。 孤児になった (orphaned) プロセスグループと"
9665 "は、 そのプロセスグループの全てのメンバーについて、メンバーの親プロセスが、 "
9666 "親プロセス自身もそのプロセスグループのメンバーか、 別のセッションに属すプロセ"
9667 "スグループのメンバーのいずれかであるような、 プロセスグループのことである。"
9668
9669 #. type: Plain text
9670 #: build/C/man2/setpgid.2:324
9671 msgid ""
9672 "B<getuid>(2), B<setsid>(2), B<tcgetpgrp>(3), B<tcsetpgrp>(3), B<termios>(3), "
9673 "B<credentials>(7)"
9674 msgstr ""
9675 "B<getuid>(2), B<setsid>(2), B<tcgetpgrp>(3), B<tcsetpgrp>(3), B<termios>(3), "
9676 "B<credentials>(7)"
9677
9678 #. type: TH
9679 #: build/C/man2/setresuid.2:26
9680 #, no-wrap
9681 msgid "SETRESUID"
9682 msgstr "SETRESUID"
9683
9684 #. type: Plain text
9685 #: build/C/man2/setresuid.2:29
9686 msgid "setresuid, setresgid - set real, effective and saved user or group ID"
9687 msgstr "setresuid, setresgid - ユーザやグループの 実、実効、保存 ID を設定する"
9688
9689 #. type: Plain text
9690 #: build/C/man2/setresuid.2:35
9691 msgid "B<int setresuid(uid_t >I<ruid>B<, uid_t >I<euid>B<, uid_t >I<suid>B<);>"
9692 msgstr ""
9693 "B<int setresuid(uid_t >I<ruid>B<, uid_t >I<euid>B<, uid_t >I<suid>B<);>"
9694
9695 #. type: Plain text
9696 #: build/C/man2/setresuid.2:37
9697 msgid "B<int setresgid(gid_t >I<rgid>B<, gid_t >I<egid>B<, gid_t >I<sgid>B<);>"
9698 msgstr ""
9699 "B<int setresgid(gid_t >I<rgid>B<, gid_t >I<egid>B<, gid_t >I<sgid>B<);>"
9700
9701 #. type: Plain text
9702 #: build/C/man2/setresuid.2:41
9703 msgid ""
9704 "B<setresuid>()  sets the real user ID, the effective user ID, and the saved "
9705 "set-user-ID of the calling process."
9706 msgstr ""
9707 "B<setresuid>()  は呼び出し元のプロセスの実 (real) ユーザーID、実効 "
9708 "(effective) ユーザーID、 保存 set-user-ID を設定する。"
9709
9710 #. type: Plain text
9711 #: build/C/man2/setresuid.2:47
9712 msgid ""
9713 "Unprivileged user processes may change the real UID, effective UID, and "
9714 "saved set-user-ID, each to one of: the current real UID, the current "
9715 "effective UID or the current saved set-user-ID."
9716 msgstr ""
9717 "非特権ユーザーのプロセスは、その実 UID、実効 UID、保存 set-user-ID を、 現在"
9718 "の実 UID、現在の実効 UID、現在の保存 set-user-ID のどれかに変更することができ"
9719 "る:"
9720
9721 #. type: Plain text
9722 #: build/C/man2/setresuid.2:51
9723 msgid ""
9724 "Privileged processes (on Linux, those having the B<CAP_SETUID> capability)  "
9725 "may set the real UID, effective UID, and saved set-user-ID to arbitrary "
9726 "values."
9727 msgstr ""
9728 "特権プロセス (Linux では B<CAP_SETUID> ケーパビリティ (capability) を持つ プ"
9729 "ロセス) は、実 UID、実効 UID、保存 set-user-ID を任意の値に設定できる。"
9730
9731 #. type: Plain text
9732 #: build/C/man2/setresuid.2:53
9733 msgid ""
9734 "If one of the arguments equals -1, the corresponding value is not changed."
9735 msgstr "引き数のどれかが -1 の場合はその値は変更されずに残される。"
9736
9737 #. type: Plain text
9738 #: build/C/man2/setresuid.2:57
9739 msgid ""
9740 "Regardless of what changes are made to the real UID, effective UID, and "
9741 "saved set-user-ID, the file system UID is always set to the same value as "
9742 "the (possibly new) effective UID."
9743 msgstr ""
9744 "実 UID、実効 UID、保存 set-user-ID にどんな変更が行われたかに関わらず、 ファ"
9745 "イルシステム UID は常に実効 UID (可能であれば変更後の新しい実効 UID)  と同じ"
9746 "値に設定される。"
9747
9748 #. type: Plain text
9749 #: build/C/man2/setresuid.2:64
9750 msgid ""
9751 "Completely analogously, B<setresgid>()  sets the real GID, effective GID, "
9752 "and saved set-group-ID of the calling process (and always modifies the file "
9753 "system GID to be the same as the effective GID), with the same restrictions "
9754 "for unprivileged processes."
9755 msgstr ""
9756 "全く同じように、 B<setresgid>()  は呼び出し元のプロセスの実 GID、実効 GID、保"
9757 "存 set-group-ID を設定する (さらにファイルシステム GID を実効 GID と同じ値に"
9758 "修正する)。 非特権プロセスは同様の制限を受ける。"
9759
9760 #. type: TP
9761 #: build/C/man2/setresuid.2:70 build/C/man2/setuid.2:76
9762 #, no-wrap
9763 msgid "B<EAGAIN>"
9764 msgstr "B<EAGAIN>"
9765
9766 #. type: Plain text
9767 #: build/C/man2/setresuid.2:77
9768 msgid ""
9769 "I<uid> does not match the current UID and this call would bring that user ID "
9770 "over its B<RLIMIT_NPROC> resource limit."
9771 msgstr ""
9772 "I<uid> が現在のユーザー ID と違う値で、 この呼び出しにより ユーザー ID が リ"
9773 "ソース上限 B<RLIMIT_NPROC> を超えてしまう。"
9774
9775 #. type: Plain text
9776 #: build/C/man2/setresuid.2:81
9777 msgid ""
9778 "The calling process is not privileged (did not have the B<CAP_SETUID> "
9779 "capability) and tried to change the IDs to values that are not permitted."
9780 msgstr ""
9781 "呼び出したプロセスが特権を持たないのに (B<CAP_SETUID> ケーパビリティを持たな"
9782 "いのに)、 ID を許されていない値に変更しようとした。"
9783
9784 #. type: Plain text
9785 #: build/C/man2/setresuid.2:83
9786 msgid "These calls are available under Linux since Linux 2.1.44."
9787 msgstr "Linux ではバージョン 2.1.44 より利用可能になった。"
9788
9789 #. type: Plain text
9790 #: build/C/man2/setresuid.2:90
9791 msgid ""
9792 "Under HP-UX and FreeBSD, the prototype is found in I<E<lt>unistd.hE<gt>>.  "
9793 "Under Linux the prototype is provided by glibc since version 2.3.2."
9794 msgstr ""
9795 "HP-UX や FreeBSD では I<E<lt>unistd.hE<gt>> にプロトタイプが存在する。 \n"
9796 "Linux では、glibc 2.3.2 以降で プロトタイプが提供されている。"
9797
9798 #. type: Plain text
9799 #: build/C/man2/setresuid.2:106
9800 msgid ""
9801 "The original Linux B<setresuid>()  and B<setresgid>()  system calls "
9802 "supported only 16-bit user and group IDs.  Subsequently, Linux 2.4 added "
9803 "B<setresuid32>()  and B<setresgid32>(), supporting 32-bit IDs.  The glibc "
9804 "B<setresuid>()  and B<setresgid>()  wrapper functions transparently deal "
9805 "with the variations across kernel versions."
9806 msgstr ""
9807 "元々の Linux の B<setresuid>() と B<setresgid>() システムコールは\n"
9808 "16 ビットのグループ ID だけに対応していた。\n"
9809 "その後、Linux 2.4 で、32 ビットの ID に対応した\n"
9810 "B<setresuid32>() と B<setresgid32>() が追加された。\n"
9811 "glibc の B<setresuid>() と B<setresgid>() のラッパー関数は\n"
9812 "カーネルバージョンによるこの違いを吸収している。"
9813
9814 #. type: Plain text
9815 #: build/C/man2/setresuid.2:115
9816 msgid ""
9817 "B<getresuid>(2), B<getuid>(2), B<setfsgid>(2), B<setfsuid>(2), B<setreuid>"
9818 "(2), B<setuid>(2), B<capabilities>(7), B<credentials>(7)"
9819 msgstr ""
9820 "B<getresuid>(2), B<getuid>(2), B<setfsgid>(2), B<setfsuid>(2), B<setreuid>"
9821 "(2), B<setuid>(2), B<capabilities>(7), B<credentials>(7)"
9822
9823 #. type: TH
9824 #: build/C/man2/setreuid.2:45
9825 #, no-wrap
9826 msgid "SETREUID"
9827 msgstr "SETREUID"
9828
9829 #. type: Plain text
9830 #: build/C/man2/setreuid.2:48
9831 msgid "setreuid, setregid - set real and/or effective user or group ID"
9832 msgstr ""
9833 "setreuid, setregid - 実 (real) と実効 (effective) ユーザー (グループ) ID を設"
9834 "定する"
9835
9836 #. type: Plain text
9837 #: build/C/man2/setreuid.2:54
9838 msgid "B<int setreuid(uid_t >I<ruid>B<, uid_t >I<euid>B<);>"
9839 msgstr "B<int setreuid(uid_t >I<ruid>B<, uid_t >I<euid>B<);>"
9840
9841 #. type: Plain text
9842 #: build/C/man2/setreuid.2:56
9843 msgid "B<int setregid(gid_t >I<rgid>B<, gid_t >I<egid>B<);>"
9844 msgstr "B<int setregid(gid_t >I<rgid>B<, gid_t >I<egid>B<);>"
9845
9846 #. type: Plain text
9847 #: build/C/man2/setreuid.2:64
9848 msgid "B<setreuid>(), B<setregid>():"
9849 msgstr "B<setreuid>(), B<setregid>():"
9850
9851 #. type: Plain text
9852 #: build/C/man2/setreuid.2:68
9853 msgid ""
9854 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
9855 "_XOPEN_SOURCE_EXTENDED"
9856 msgstr ""
9857 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
9858 "_XOPEN_SOURCE_EXTENDED"
9859
9860 #. type: Plain text
9861 #: build/C/man2/setreuid.2:73
9862 msgid "B<setreuid>()  sets real and effective user IDs of the calling process."
9863 msgstr ""
9864 "B<setreuid>()  は呼び出し元のプロセスの実 (real) ユーザー ID と 実効 "
9865 "(effective) ユーザー ID を設定する。"
9866
9867 #. type: Plain text
9868 #: build/C/man2/setreuid.2:76
9869 msgid ""
9870 "Supplying a value of -1 for either the real or effective user ID forces the "
9871 "system to leave that ID unchanged."
9872 msgstr ""
9873 "実ユーザー ID や実効ユーザー ID に -1 を与えた場合、 システムはその ID を変更"
9874 "しない。"
9875
9876 #. type: Plain text
9877 #: build/C/man2/setreuid.2:79
9878 msgid ""
9879 "Unprivileged processes may only set the effective user ID to the real user "
9880 "ID, the effective user ID, or the saved set-user-ID."
9881 msgstr ""
9882 "非特権プロセスは実効ユーザー ID を実ユーザー ID または実効ユーザー ID または "
9883 "保存 set-user-ID にしか設定できない。"
9884
9885 #. type: Plain text
9886 #: build/C/man2/setreuid.2:82
9887 msgid ""
9888 "Unprivileged users may only set the real user ID to the real user ID or the "
9889 "effective user ID."
9890 msgstr ""
9891 "非特権ユーザーは、実ユーザー ID を実ユーザー ID または 実効ユーザー ID にしか"
9892 "設定できない。"
9893
9894 #. type: Plain text
9895 #: build/C/man2/setreuid.2:86
9896 msgid ""
9897 "If the real user ID is set or the effective user ID is set to a value not "
9898 "equal to the previous real user ID, the saved set-user-ID will be set to the "
9899 "new effective user ID."
9900 msgstr ""
9901 "実ユーザーID が設定されたり、実効ユーザーID が前の実ユーザーID と 異った値に"
9902 "設定された場合、保存 set-user-ID には新しい実効ユーザーID の値が設定される。"
9903
9904 #. type: Plain text
9905 #: build/C/man2/setreuid.2:91
9906 msgid ""
9907 "Completely analogously, B<setregid>()  sets real and effective group ID's of "
9908 "the calling process, and all of the above holds with \"group\" instead of "
9909 "\"user\"."
9910 msgstr ""
9911 "これと全く同様に、 B<setregid>()  は呼び出し元のプロセスの実グループ ID と実"
9912 "効グループ ID を設定し、 上記の説明で「ユーザー」を「グループ」に読み替えたこ"
9913 "とが成り立つ。"
9914
9915 #. type: Plain text
9916 #: build/C/man2/setreuid.2:113
9917 msgid ""
9918 "The calling process is not privileged (Linux: does not have the "
9919 "B<CAP_SETUID> capability in the case of B<setreuid>(), or the B<CAP_SETGID> "
9920 "capability in the case of B<setregid>())  and a change other than (i)  "
9921 "swapping the effective user (group) ID with the real user (group) ID, or "
9922 "(ii) setting one to the value of the other or (iii) setting the effective "
9923 "user (group) ID to the value of the saved set-user-ID (saved set-group-ID) "
9924 "was specified."
9925 msgstr ""
9926 "呼び出し元のプロセスに特権がなく (Linux では B<setreuid>()  の場合に "
9927 "B<CAP_SETUID> ケーパビリティ (capability) がなく、 B<setregid>()  の場合に "
9928 "B<CAP_SETGID> ケーパビリティがない)、 以下のいずれでもない変更が指定された: "
9929 "(i) 実効ユーザー (グループ) ID と実ユーザー (グループ) ID を入れ換える。 "
9930 "(ii) 片方の値を他方に設定する。 (iii) 実効ユーザー (グループ) ID に保存 set-"
9931 "user-ID (保存 set-group-ID)  の値を設定する。"
9932
9933 #. type: Plain text
9934 #: build/C/man2/setreuid.2:119
9935 msgid ""
9936 "POSIX.1-2001, 4.3BSD (the B<setreuid>()  and B<setregid>()  function calls "
9937 "first appeared in 4.2BSD)."
9938 msgstr ""
9939 "POSIX.1-2001, 4.3BSD (B<setreuid>()  と B<setregid>()  関数コールは 4.2BSD で"
9940 "登場した)。"
9941
9942 #. type: Plain text
9943 #: build/C/man2/setreuid.2:123
9944 msgid ""
9945 "Setting the effective user (group) ID to the saved set-user-ID (saved set-"
9946 "group-ID) is possible since Linux 1.1.37 (1.1.38)."
9947 msgstr ""
9948 "実効ユーザー (グループ) ID を保存ユーザー (グループ) ID に 設定することが、"
9949 "Linux 1.1.37 (1.1.38) から可能になった。"
9950
9951 #. type: Plain text
9952 #: build/C/man2/setreuid.2:140
9953 msgid ""
9954 "POSIX.1 does not specify all of possible ID changes that are permitted on "
9955 "Linux for an unprivileged process.  For B<setreuid>(), the effective user ID "
9956 "can be made the same as the real user ID or the save set-user-ID, and it is "
9957 "unspecified whether unprivileged processes may set the real user ID to the "
9958 "real user ID, the effective user ID, or the saved set-user-ID.  For "
9959 "B<setregid>(), the real group ID can be changed to the value of the saved "
9960 "set-group-ID, and the effective group ID can be changed to the value of the "
9961 "real group ID or the saved set-group-ID.  The precise details of what ID "
9962 "changes are permitted vary across implementations."
9963 msgstr ""
9964 "POSIX.1 では、非特権プロセスに対して Linux 上で認められている ID の変更の 全"
9965 "パターンを規定しているわけではない。 B<setreuid>()  では、実効ユーザ ID を実"
9966 "ユーザ ID もしくは保存 set-user-ID と 同じ値にすることができるが、 非特権プロ"
9967 "セスが実ユーザ ID を実ユーザ ID、実効ユーザ ID、 保存 set-user-ID のどの値に"
9968 "も設定できるかは規定されていない。 B<setregid>()  では、実グループ ID を保存 "
9969 "set-group-ID と同じ値に変更でき、 実効グループ ID を実グループ ID や保存 set-"
9970 "group-ID と同じ値に変更できる。 どのような ID の変更が認められているかの正確"
9971 "な詳細は 実装ごとに異なる。"
9972
9973 #. type: Plain text
9974 #: build/C/man2/setreuid.2:143
9975 msgid ""
9976 "POSIX.1 makes no specification about the effect of these calls on the saved "
9977 "set-user-ID and saved set-group-ID."
9978 msgstr ""
9979 "POSIX.1 では、これらのシステムコールが保存 set-user-ID や 保存 set-group-ID "
9980 "に与える影響については規定していない。"
9981
9982 #. type: Plain text
9983 #: build/C/man2/setreuid.2:159
9984 msgid ""
9985 "The original Linux B<setreuid>()  and B<setregid>()  system calls supported "
9986 "only 16-bit user and group IDs.  Subsequently, Linux 2.4 added B<setreuid32>"
9987 "()  and B<setregid32>(), supporting 32-bit IDs.  The glibc B<setreuid>()  "
9988 "and B<setregid>()  wrapper functions transparently deal with the variations "
9989 "across kernel versions."
9990 msgstr ""
9991 "元々の Linux の B<setreuid>() と B<setregid>() システムコールは\n"
9992 "16 ビットのグループ ID だけに対応していた。\n"
9993 "その後、Linux 2.4 で、32 ビットの ID に対応した\n"
9994 "B<setreuid32>() と B<setregid32>() が追加された。\n"
9995 "glibc の B<setreuid>() と B<setregid>() のラッパー関数は\n"
9996 "カーネルバージョンによるこの違いを吸収している。"
9997
9998 #. type: Plain text
9999 #: build/C/man2/setreuid.2:167
10000 msgid ""
10001 "B<getgid>(2), B<getuid>(2), B<seteuid>(2), B<setgid>(2), B<setresuid>(2), "
10002 "B<setuid>(2), B<capabilities>(7)"
10003 msgstr ""
10004 "B<getgid>(2), B<getuid>(2), B<seteuid>(2), B<setgid>(2), B<setresuid>(2), "
10005 "B<setuid>(2), B<capabilities>(7)"
10006
10007 #. type: TH
10008 #: build/C/man2/setsid.2:30
10009 #, no-wrap
10010 msgid "SETSID"
10011 msgstr "SETSID"
10012
10013 #. type: Plain text
10014 #: build/C/man2/setsid.2:33
10015 msgid "setsid - creates a session and sets the process group ID"
10016 msgstr "setsid - セッション (session) を作成し、プロセスグループ ID を設定する"
10017
10018 #. type: Plain text
10019 #: build/C/man2/setsid.2:38
10020 msgid "B<pid_t setsid(void);>"
10021 msgstr "B<pid_t setsid(void);>"
10022
10023 #. type: Plain text
10024 #: build/C/man2/setsid.2:51
10025 msgid ""
10026 "B<setsid>()  creates a new session if the calling process is not a process "
10027 "group leader.  The calling process is the leader of the new session, the "
10028 "process group leader of the new process group, and has no controlling "
10029 "terminal.  The process group ID and session ID of the calling process are "
10030 "set to the PID of the calling process.  The calling process will be the only "
10031 "process in this new process group and in this new session."
10032 msgstr ""
10033 "B<setsid>()  は呼び出したプロセスがプロセスグループ・リーダー (process group "
10034 "leader) でなければ、新しいセッションを作成する。 呼び出したプロセスは新しい"
10035 "セッションのリーダー、新しいプロセスグループの プロセスグループ・リーダーとな"
10036 "り、端末の制御を持たない。 呼び出したプロセスのプロセスグループ ID とセッショ"
10037 "ン ID には、 呼び出したプロセスの PID が設定される。呼び出したプロセスはこの "
10038 "新しいプロセスグループ、この新しいセッションの唯一のプロセスとなる。"
10039
10040 #. type: Plain text
10041 #: build/C/man2/setsid.2:58
10042 msgid ""
10043 "On success, the (new) session ID of the calling process is returned.  On "
10044 "error, I<(pid_t)\\ -1> is returned, and I<errno> is set to indicate the "
10045 "error."
10046 msgstr ""
10047 "成功すると、呼び出したプロセスの (新しい) セッション ID が返される。 エラーの"
10048 "場合は、 I<(pid_t)\\ -1> が返され、 I<error> にエラーを示す値が設定される。"
10049
10050 #. type: Plain text
10051 #: build/C/man2/setsid.2:65
10052 msgid ""
10053 "The process group ID of any process equals the PID of the calling process.  "
10054 "Thus, in particular, B<setsid>()  fails if the calling process is already a "
10055 "process group leader."
10056 msgstr ""
10057 "いずれかのプロセスのプロセスグループ ID が、 呼び出したプロセスの PID と等し"
10058 "い。 これは、呼び出したプロセスが既にプロセスリーダーの場合には B<setsid>()  "
10059 "は失敗することを意味する。"
10060
10061 #. type: Plain text
10062 #: build/C/man2/setsid.2:73
10063 msgid ""
10064 "A child created via B<fork>(2)  inherits its parent's session ID.  The "
10065 "session ID is preserved across an B<execve>(2)."
10066 msgstr ""
10067 "B<fork>(2)  で作成された子プロセスは、親プロセスのセッション ID を継承する。 "
10068 "B<execve>(2)  の前後でセッション ID は保存される。"
10069
10070 #. type: Plain text
10071 #: build/C/man2/setsid.2:84
10072 msgid ""
10073 "A process group leader is a process with process group ID equal to its PID.  "
10074 "In order to be sure that B<setsid>()  will succeed, B<fork>(2)  and B<_exit>"
10075 "(2), and have the child do B<setsid>()."
10076 msgstr ""
10077 "プロセスグループ・リーダーとは、そのプロセスのプロセスグループ ID が その "
10078 "PID に等しいプロセスである。 B<setsid>()  を確実に成功させるためには、 "
10079 "B<fork>(2)  して B<exit>(2)  し、子プロセスで B<setsid>()  を行なえば良い。"
10080
10081 #. type: Plain text
10082 #: build/C/man2/setsid.2:91
10083 msgid ""
10084 "B<setsid>(1), B<getsid>(2), B<setpgid>(2), B<setpgrp>(2), B<tcgetsid>(3), "
10085 "B<credentials>(7)"
10086 msgstr ""
10087 "B<setsid>(1), B<getsid>(2), B<setpgid>(2), B<setpgrp>(2), B<tcgetsid>(3), "
10088 "B<credentials>(7)"
10089
10090 #. type: TH
10091 #: build/C/man2/setuid.2:30
10092 #, no-wrap
10093 msgid "SETUID"
10094 msgstr "SETUID"
10095
10096 #. type: Plain text
10097 #: build/C/man2/setuid.2:33
10098 msgid "setuid - set user identity"
10099 msgstr "setuid - ユーザー識別 (identity) を設定する"
10100
10101 #. type: Plain text
10102 #: build/C/man2/setuid.2:39
10103 msgid "B<int setuid(uid_t >I<uid>B<);>"
10104 msgstr "B<int setuid(uid_t >I<uid>B<);>"
10105
10106 #. type: Plain text
10107 #: build/C/man2/setuid.2:44
10108 msgid ""
10109 "B<setuid>()  sets the effective user ID of the calling process.  If the "
10110 "effective UID of the caller is root, the real UID and saved set-user-ID are "
10111 "also set."
10112 msgstr ""
10113 "B<setuid>()  は呼び出し元のプロセスの実効 (effective) ユーザー ID を設定す"
10114 "る。 もし呼び出し元プロセスの実効 UID が root ならば、 実 (real) UID と保存 "
10115 "(saved) set-user-ID も設定される。"
10116
10117 #. type: Plain text
10118 #: build/C/man2/setuid.2:53
10119 msgid ""
10120 "Under Linux, B<setuid>()  is implemented like the POSIX version with the "
10121 "B<_POSIX_SAVED_IDS> feature.  This allows a set-user-ID (other than root) "
10122 "program to drop all of its user privileges, do some un-privileged work, and "
10123 "then reengage the original effective user ID in a secure manner."
10124 msgstr ""
10125 "Linux では、 B<setuid>()  は B<_POSIX_SAVED_IDS> をもった POSIX 版のように実"
10126 "装されている。 これは (ルート以外の) set-user-ID プログラムにそのユーザーの特"
10127 "権を 全て与え、特権の必要ない仕事をし、本来の実効ユーザー ID に 安全な方法で"
10128 "再び戻すことを許す。"
10129
10130 #. type: Plain text
10131 #: build/C/man2/setuid.2:63
10132 msgid ""
10133 "If the user is root or the program is set-user-ID-root, special care must be "
10134 "taken.  The B<setuid>()  function checks the effective user ID of the caller "
10135 "and if it is the superuser, all process-related user ID's are set to "
10136 "I<uid>.  After this has occurred, it is impossible for the program to regain "
10137 "root privileges."
10138 msgstr ""
10139 "ユーザーが root またはプログラムが root に set-user-ID されているならば、 特"
10140 "別の注意が払われる。 B<setuid>()  関数は呼び出し者の実効ユーザー ID をチェッ"
10141 "クし、 それがスーパーユーザーならば、 プロセスに関連する全てのユーザー ID に "
10142 "I<uid> を設定する。 これが行なわれた後にはプログラムが再びルートの特権を得る"
10143 "ことはできない。"
10144
10145 #. type: Plain text
10146 #: build/C/man2/setuid.2:70
10147 msgid ""
10148 "Thus, a set-user-ID-root program wishing to temporarily drop root "
10149 "privileges, assume the identity of an unprivileged user, and then regain "
10150 "root privileges afterward cannot use B<setuid>().  You can accomplish this "
10151 "with B<seteuid>(2)."
10152 msgstr ""
10153 "したがって、set-user-ID-root プログラムで、一時的にルート特権を解除し、 非特"
10154 "権ユーザであるかのように振舞い、後でルート権限をもう一度得ようと する場合に"
10155 "は、 B<setuid>()  を使うことができない。その場合には、 B<seteuid>(2)  を使う"
10156 "必要がある。"
10157
10158 #. type: Plain text
10159 #: build/C/man2/setuid.2:85
10160 msgid ""
10161 "The I<uid> does not match the current uid and I<uid> brings process over its "
10162 "B<RLIMIT_NPROC> resource limit."
10163 msgstr ""
10164 "I<uid> が現在のユーザー ID とマッチせず、この I<uid> によってプロセスがリソー"
10165 "ス上限 B<RLIMIT_NPROC> を超えた。"
10166
10167 #. type: Plain text
10168 #: build/C/man2/setuid.2:92
10169 msgid ""
10170 "The user is not privileged (Linux: does not have the B<CAP_SETUID> "
10171 "capability) and I<uid> does not match the real UID or saved set-user-ID of "
10172 "the calling process."
10173 msgstr ""
10174 "ユーザーが特権を持たず (Linux では B<CAP_SETUID> ケーパビリティ (capability) "
10175 "を持たず)、 I<uid> が呼び出し元プロセスの実 UID または保存 set-user-ID と一致"
10176 "しない。"
10177
10178 #.  SVr4 documents an additional EINVAL error condition.
10179 #. type: Plain text
10180 #: build/C/man2/setuid.2:97
10181 msgid ""
10182 "SVr4, POSIX.1-2001.  Not quite compatible with the 4.4BSD call, which sets "
10183 "all of the real, saved, and effective user IDs."
10184 msgstr ""
10185 "SVr4, POSIX.1-2001.  4.4BSD のコールとは完全な互換性はない、 BSD のコールは"
10186 "実 (real)、保存 (saved)、実効 (effective) ID の全てを設定する。"
10187
10188 #. type: Plain text
10189 #: build/C/man2/setuid.2:105
10190 msgid ""
10191 "Linux has the concept of the file system user ID, normally equal to the "
10192 "effective user ID.  The B<setuid>()  call also sets the file system user ID "
10193 "of the calling process.  See B<setfsuid>(2)."
10194 msgstr ""
10195 "Linux はファイルシステム・ユーザー ID の概念を持つ。\n"
10196 "通常、これは実効ユーザー ID に等しい。 \n"
10197 "B<setuid>()  コールは呼び出し元のプロセスの\n"
10198 "ファイルシステム・ユーザー ID も設定する。 \n"
10199 "B<setfsuid>(2) も参照すること。"
10200
10201 #. type: Plain text
10202 #: build/C/man2/setuid.2:110
10203 msgid ""
10204 "If I<uid> is different from the old effective UID, the process will be "
10205 "forbidden from leaving core dumps."
10206 msgstr ""
10207 "I<uid> が前の実効 UID と異っていた場合、\n"
10208 "プロセスはコアダンプすることを禁止される。"
10209
10210 #. type: Plain text
10211 #: build/C/man2/setuid.2:120
10212 msgid ""
10213 "The original Linux B<setuid>()  system call supported only 16-bit user IDs.  "
10214 "Subsequently, Linux 2.4 added B<setuid32>()  supporting 32-bit IDs.  The "
10215 "glibc B<setuid>()  wrapper function transparently deals with the variation "
10216 "across kernel versions."
10217 msgstr ""
10218 "元々の Linux の B<setuid>() システムコールは\n"
10219 "16 ビットのグループ ID だけに対応していた。\n"
10220 "その後、Linux 2.4 で、32 ビットの ID に対応した\n"
10221 "B<setuid32>() が追加された。\n"
10222 "glibc の B<setuid>() のラッパー関数は\n"
10223 "カーネルバージョンによるこの違いを吸収している。"
10224
10225 #. type: Plain text
10226 #: build/C/man2/setuid.2:127
10227 msgid ""
10228 "B<getuid>(2), B<seteuid>(2), B<setfsuid>(2), B<setreuid>(2), B<capabilities>"
10229 "(7), B<credentials>(7)"
10230 msgstr ""
10231 "B<getuid>(2), B<seteuid>(2), B<setfsuid>(2), B<setreuid>(2), B<capabilities>"
10232 "(7), B<credentials>(7)"
10233
10234 #. type: TH
10235 #: build/C/man7/svipc.7:40
10236 #, no-wrap
10237 msgid "SVIPC"
10238 msgstr "SVIPC"
10239
10240 #. type: Plain text
10241 #: build/C/man7/svipc.7:43
10242 msgid "svipc - System V interprocess communication mechanisms"
10243 msgstr "svipc - System V プロセス間通信機構"
10244
10245 #. type: Plain text
10246 #: build/C/man7/svipc.7:48
10247 #, no-wrap
10248 msgid ""
10249 "B<#include E<lt>sys/msg.hE<gt>>\n"
10250 "B<#include E<lt>sys/sem.hE<gt>>\n"
10251 "B<#include E<lt>sys/shm.hE<gt>>\n"
10252 msgstr ""
10253 "B<#include E<lt>sys/msg.hE<gt>>\n"
10254 "B<#include E<lt>sys/sem.hE<gt>>\n"
10255 "B<#include E<lt>sys/shm.hE<gt>>\n"
10256
10257 #. type: Plain text
10258 #: build/C/man7/svipc.7:56
10259 msgid ""
10260 "This manual page refers to the Linux implementation of the System V "
10261 "interprocess communication (IPC) mechanisms: message queues, semaphore sets, "
10262 "and shared memory segments.  In the following, the word I<resource> means an "
10263 "instantiation of one among such mechanisms."
10264 msgstr ""
10265 "このマニュアルページは System V プロセス間通信 (interprocess communication; "
10266 "IPC) 機構の Linux に おける実装を説明する。 このプロセス間通信機構には、 メッ"
10267 "セージキュー (message queue)、セマフォー集合 (semaphore set)、 共有メモリセグ"
10268 "メント (shared memory segment) などがある。以下で I<資源 (resource)> という用"
10269 "語を使用した場合にはこれらの機構のどれかを意味する。"
10270
10271 #. type: SS
10272 #: build/C/man7/svipc.7:56
10273 #, no-wrap
10274 msgid "Resource access permissions"
10275 msgstr "資源へのアクセス許可"
10276
10277 #. type: Plain text
10278 #: build/C/man7/svipc.7:64
10279 msgid ""
10280 "For each resource, the system uses a common structure of type I<struct "
10281 "ipc_perm> to store information needed in determining permissions to perform "
10282 "an IPC operation.  The I<ipc_perm> structure includes the following members:"
10283 msgstr ""
10284 "システムのそれぞれの資源は、IPC への操作を許可するかどうかを決定する ための情"
10285 "報を共通の構造体 I<struct ipc_perm> に格納して使用する。 I<ipc_perm> 構造体に"
10286 "は以下のメンバーが定義されている:"
10287
10288 #. type: Plain text
10289 #: build/C/man7/svipc.7:74
10290 #, no-wrap
10291 msgid ""
10292 "struct ipc_perm {\n"
10293 "    uid_t          cuid;   /* creator user ID */\n"
10294 "    gid_t          cgid;   /* creator group ID */\n"
10295 "    uid_t          uid;    /* owner user ID */\n"
10296 "    gid_t          gid;    /* owner group ID */\n"
10297 "    unsigned short mode;   /* r/w permissions */\n"
10298 "};\n"
10299 msgstr ""
10300 "struct ipc_perm {\n"
10301 "    uid_t          cuid;   /* 作成者のユーザーID */\n"
10302 "    gid_t          cgid;   /* 作成者のグループID */\n"
10303 "    uid_t          uid;    /* 所有者のユーザーID */\n"
10304 "    gid_t          gid;    /* 所有者のグループID */\n"
10305 "    unsigned short mode;   /* 読み書きの許可 */\n"
10306 "};\n"
10307
10308 #. type: Plain text
10309 #: build/C/man7/svipc.7:84
10310 msgid ""
10311 "The I<mode> member of the I<ipc_perm> structure defines, with its lower 9 "
10312 "bits, the access permissions to the resource for a process executing an IPC "
10313 "system call.  The permissions are interpreted as follows:"
10314 msgstr ""
10315 "I<ipc_perm> 構造体の I<mode> メンバーは以下の 9 ビットで、プロセスの IPC シス"
10316 "テムコール による資源へのアクセス許可を定義する。 許可は以下のように解釈され"
10317 "る:"
10318
10319 #. type: Plain text
10320 #: build/C/man7/svipc.7:88
10321 #, no-wrap
10322 msgid ""
10323 "    0400    Read by user.\n"
10324 "    0200    Write by user.\n"
10325 msgstr ""
10326 "    0400    ユーザーによる読み込み。\n"
10327 "    0200    ユーザーによる書き込み。\n"
10328
10329 #. type: Plain text
10330 #: build/C/man7/svipc.7:91
10331 #, no-wrap
10332 msgid ""
10333 "    0040    Read by group.\n"
10334 "    0020    Write by group.\n"
10335 msgstr ""
10336 "    0040    グループによる読み込み。\n"
10337 "    0020    グループによる書き込み。\n"
10338
10339 #. type: Plain text
10340 #: build/C/man7/svipc.7:94
10341 #, no-wrap
10342 msgid ""
10343 "    0004    Read by others.\n"
10344 "    0002    Write by others.\n"
10345 msgstr ""
10346 "    0004    他人による読み込み。\n"
10347 "    0002    他人による書き込み。\n"
10348
10349 #. type: Plain text
10350 #: build/C/man7/svipc.7:102
10351 msgid ""
10352 "Bits 0100, 0010, and 0001 (the execute bits) are unused by the system.  "
10353 "Furthermore, \"write\" effectively means \"alter\" for a semaphore set."
10354 msgstr ""
10355 "システムはビット 0100, 0010, 0001 (実行ビット) は使用しない。 さらに、セマ"
10356 "フォーの場合には \"書き込み(write)\" は実際には \"変更(alter)\" を意味する。"
10357
10358 #. type: Plain text
10359 #: build/C/man7/svipc.7:105
10360 msgid ""
10361 "The same system header file also defines the following symbolic constants:"
10362 msgstr "同じヘッダーファイルには以下のシンボルの定義が含まれている:"
10363
10364 #. type: TP
10365 #: build/C/man7/svipc.7:105
10366 #, no-wrap
10367 msgid "B<IPC_CREAT>"
10368 msgstr "B<IPC_CREAT>"
10369
10370 #. type: Plain text
10371 #: build/C/man7/svipc.7:108
10372 msgid "Create entry if key doesn't exist."
10373 msgstr "キー(key)が存在しない場合には新たなエントリを作成する。"
10374
10375 #. type: TP
10376 #: build/C/man7/svipc.7:108
10377 #, no-wrap
10378 msgid "B<IPC_EXCL>"
10379 msgstr "B<IPC_EXCL>"
10380
10381 #. type: Plain text
10382 #: build/C/man7/svipc.7:111
10383 msgid "Fail if key exists."
10384 msgstr "キー(key)が存在する場合には失敗する。"
10385
10386 #. type: TP
10387 #: build/C/man7/svipc.7:111
10388 #, no-wrap
10389 msgid "B<IPC_NOWAIT>"
10390 msgstr "B<IPC_NOWAIT>"
10391
10392 #. type: Plain text
10393 #: build/C/man7/svipc.7:114
10394 msgid "Error if request must wait."
10395 msgstr "要求が待たされる場合にはエラーになる。"
10396
10397 #. type: TP
10398 #: build/C/man7/svipc.7:114
10399 #, no-wrap
10400 msgid "B<IPC_PRIVATE>"
10401 msgstr "B<IPC_PRIVATE>"
10402
10403 #. type: Plain text
10404 #: build/C/man7/svipc.7:117
10405 msgid "Private key."
10406 msgstr "プライベートキー。"
10407
10408 #. type: TP
10409 #: build/C/man7/svipc.7:117
10410 #, no-wrap
10411 msgid "B<IPC_RMID>"
10412 msgstr "B<IPC_RMID>"
10413
10414 #. type: Plain text
10415 #: build/C/man7/svipc.7:120
10416 msgid "Remove resource."
10417 msgstr "資源を削除する。"
10418
10419 #. type: TP
10420 #: build/C/man7/svipc.7:120
10421 #, no-wrap
10422 msgid "B<IPC_SET>"
10423 msgstr "B<IPC_SET>"
10424
10425 #. type: Plain text
10426 #: build/C/man7/svipc.7:123
10427 msgid "Set resource options."
10428 msgstr "資源にオプションを設定する。"
10429
10430 #. type: TP
10431 #: build/C/man7/svipc.7:123
10432 #, no-wrap
10433 msgid "B<IPC_STAT>"
10434 msgstr "B<IPC_STAT>"
10435
10436 #. type: Plain text
10437 #: build/C/man7/svipc.7:126
10438 msgid "Get resource options."
10439 msgstr "資源のオプションを取得する。"
10440
10441 #. type: Plain text
10442 #: build/C/man7/svipc.7:135
10443 msgid ""
10444 "Note that B<IPC_PRIVATE> is a I<key_t> type, while all the other symbolic "
10445 "constants are flag fields and can be OR'ed into an I<int> type variable."
10446 msgstr ""
10447 "B<IPC_PRIVATE> は I<key_t> 型である。その他の全てのシンボルはフラグフィールド"
10448 "として I<int> 変数に OR 演算で格納することができる。"
10449
10450 #. type: SS
10451 #: build/C/man7/svipc.7:135
10452 #, no-wrap
10453 msgid "Message queues"
10454 msgstr "メッセージキュー"
10455
10456 #. type: Plain text
10457 #: build/C/man7/svipc.7:143
10458 msgid ""
10459 "A message queue is uniquely identified by a positive integer (its I<msqid>)  "
10460 "and has an associated data structure of type I<struct msqid_ds>, defined in "
10461 "I<E<lt>sys/msg.hE<gt>>, containing the following members:"
10462 msgstr ""
10463 "メッセージキューは正の整数 (I<msqid>)  によって識別され、 I<E<lt>sys/msg."
10464 "hE<gt>> に定義されている構造体 I<struct msqid_ds> に結びつけられている。 この"
10465 "構造体は以下のメンバーを含んでいる:"
10466
10467 #. type: Plain text
10468 #: build/C/man7/svipc.7:156
10469 #, no-wrap
10470 msgid ""
10471 "struct msqid_ds {\n"
10472 "    struct ipc_perm msg_perm;\n"
10473 "    msgqnum_t       msg_qnum;    /* no of messages on queue */\n"
10474 "    msglen_t        msg_qbytes;  /* bytes max on a queue */\n"
10475 "    pid_t           msg_lspid;   /* PID of last msgsnd(2) call */\n"
10476 "    pid_t           msg_lrpid;   /* PID of last msgrcv(2) call */\n"
10477 "    time_t          msg_stime;   /* last msgsnd(2) time */\n"
10478 "    time_t          msg_rtime;   /* last msgrcv(2) time */\n"
10479 "    time_t          msg_ctime;   /* last change time */\n"
10480 "};\n"
10481 msgstr ""
10482 "struct msqid_ds {\n"
10483 "    struct ipc_perm msg_perm;\n"
10484 "    msgqnum_t       msg_qnum;    /* キューにあるメッセージの数 */\n"
10485 "    msglen_t        msg_qbytes;  /* キューの最大バイト数 */\n"
10486 "    pid_t           msg_lspid;   /* 最後に msgsnd(2) をした PID */\n"
10487 "    pid_t           msg_lrpid;   /* 最後に msgrcv(2) をした PID */\n"
10488 "    time_t          msg_stime;   /* 最後に msgsnd(2) をした時間 */\n"
10489 "    time_t          msg_rtime;   /* 最後に msgrcv(2) をした時間 */\n"
10490 "    time_t          msg_ctime;   /* 最後に変更された時間 */\n"
10491 "};\n"
10492
10493 #. type: TP
10494 #: build/C/man7/svipc.7:158
10495 #, no-wrap
10496 msgid "I<msg_perm>"
10497 msgstr "I<msg_perm>"
10498
10499 #. type: Plain text
10500 #: build/C/man7/svipc.7:163
10501 msgid ""
10502 "I<ipc_perm> structure that specifies the access permissions on the message "
10503 "queue."
10504 msgstr "メッセージキューへのアクセス許可を指定する I<ipc_perm> 構造体。"
10505
10506 #. type: TP
10507 #: build/C/man7/svipc.7:163
10508 #, no-wrap
10509 msgid "I<msg_qnum>"
10510 msgstr "I<msg_qnum>"
10511
10512 #. type: Plain text
10513 #: build/C/man7/svipc.7:166
10514 msgid "Number of messages currently on the message queue."
10515 msgstr "現在、このメッセージキューにあるメッセージの数。"
10516
10517 #. type: TP
10518 #: build/C/man7/svipc.7:166
10519 #, no-wrap
10520 msgid "I<msg_qbytes>"
10521 msgstr "I<msg_qbytes>"
10522
10523 #. type: Plain text
10524 #: build/C/man7/svipc.7:170
10525 msgid "Maximum number of bytes of message text allowed on the message queue."
10526 msgstr "メッセージキューに入れることができるメッセージの最大バイト数。"
10527
10528 #. type: TP
10529 #: build/C/man7/svipc.7:170
10530 #, no-wrap
10531 msgid "I<msg_lspid>"
10532 msgstr "I<msg_lspid>"
10533
10534 #. type: Plain text
10535 #: build/C/man7/svipc.7:175
10536 msgid "ID of the process that performed the last B<msgsnd>(2)  system call."
10537 msgstr "最後に B<msgsnd>(2)  システムコールを行なったプロセスの ID。"
10538
10539 #. type: TP
10540 #: build/C/man7/svipc.7:175
10541 #, no-wrap
10542 msgid "I<msg_lrpid>"
10543 msgstr "I<msg_lrpid>"
10544
10545 #. type: Plain text
10546 #: build/C/man7/svipc.7:180
10547 msgid "ID of the process that performed the last B<msgrcv>(2)  system call."
10548 msgstr "最後に B<msgrcv>(2)  システムコールを行なったプロセスの ID。"
10549
10550 #. type: TP
10551 #: build/C/man7/svipc.7:180
10552 #, no-wrap
10553 msgid "I<msg_stime>"
10554 msgstr "I<msg_stime>"
10555
10556 #. type: Plain text
10557 #: build/C/man7/svipc.7:185
10558 msgid "Time of the last B<msgsnd>(2)  system call."
10559 msgstr "最後に B<msgsnd>(2)  システムコールを行なった時間。"
10560
10561 #. type: TP
10562 #: build/C/man7/svipc.7:185
10563 #, no-wrap
10564 msgid "I<msg_rtime>"
10565 msgstr "I<msg_rtime>"
10566
10567 #. type: Plain text
10568 #: build/C/man7/svipc.7:190
10569 msgid "Time of the last B<msgrcv>(2)  system call."
10570 msgstr "最後に B<msgrcv>(2)  を行なった時間。"
10571
10572 #. type: TP
10573 #: build/C/man7/svipc.7:190
10574 #, no-wrap
10575 msgid "I<msg_ctime>"
10576 msgstr "I<msg_ctime>"
10577
10578 #. type: Plain text
10579 #: build/C/man7/svipc.7:196
10580 msgid ""
10581 "Time of the last system call that changed a member of the I<msqid_ds> "
10582 "structure."
10583 msgstr "最後に I<msqid_ds> 構造体のメンバーが変更された時間。"
10584
10585 #. type: SS
10586 #: build/C/man7/svipc.7:196
10587 #, no-wrap
10588 msgid "Semaphore sets"
10589 msgstr "セマフォー集合"
10590
10591 #. type: Plain text
10592 #: build/C/man7/svipc.7:204
10593 msgid ""
10594 "A semaphore set is uniquely identified by a positive integer (its I<semid>)  "
10595 "and has an associated data structure of type I<struct semid_ds>, defined in "
10596 "I<E<lt>sys/sem.hE<gt>>, containing the following members:"
10597 msgstr ""
10598 "セマフォー集合は正の整数 (I<semid>)  によって識別され、 I<E<lt>sys/sem."
10599 "hE<gt>> に定義されている構造体 I<struct semid_ds> に結びつけられている。 この"
10600 "構造体は以下のメンバーを含んでいる:"
10601
10602 #. type: Plain text
10603 #: build/C/man7/svipc.7:213
10604 #, no-wrap
10605 msgid ""
10606 "struct semid_ds {\n"
10607 "    struct ipc_perm sem_perm;\n"
10608 "    time_t          sem_otime;   /* last operation time */\n"
10609 "    time_t          sem_ctime;   /* last change time */\n"
10610 "    unsigned long   sem_nsems;   /* count of sems in set */\n"
10611 "};\n"
10612 msgstr ""
10613 "struct semid_ds {\n"
10614 "    struct ipc_perm sem_perm;\n"
10615 "    time_t          sem_otime;   /* 最後に操作した時間 */\n"
10616 "    time_t          sem_ctime;   /* 最後に変更した時間 */\n"
10617 "    unsigned long   sem_nsems;   /* 集合の中にあるセマフォー数 */\n"
10618 "};\n"
10619
10620 #. type: TP
10621 #: build/C/man7/svipc.7:215
10622 #, no-wrap
10623 msgid "I<sem_perm>"
10624 msgstr "I<sem_perm>"
10625
10626 #. type: Plain text
10627 #: build/C/man7/svipc.7:220
10628 msgid ""
10629 "I<ipc_perm> structure that specifies the access permissions on the semaphore "
10630 "set."
10631 msgstr "セマフォー集合へのアクセス許可を指定する I<ipc_perm> 構造体。"
10632
10633 #. type: TP
10634 #: build/C/man7/svipc.7:220
10635 #, no-wrap
10636 msgid "I<sem_otime>"
10637 msgstr "I<sem_otime>"
10638
10639 #. type: Plain text
10640 #: build/C/man7/svipc.7:225
10641 msgid "Time of last B<semop>(2)  system call."
10642 msgstr "最後に B<semop>(2)  システムコールを行なった時間。"
10643
10644 #. type: TP
10645 #: build/C/man7/svipc.7:225
10646 #, no-wrap
10647 msgid "I<sem_ctime>"
10648 msgstr "I<sem_ctime>"
10649
10650 #. type: Plain text
10651 #: build/C/man7/svipc.7:231
10652 msgid ""
10653 "Time of last B<semctl>(2)  system call that changed a member of the above "
10654 "structure or of one semaphore belonging to the set."
10655 msgstr ""
10656 "最後に B<semctl>(2)  を行なって上記の構造体のメンバーを変更するか、セマフォー"
10657 "集合に属する セマフォーを変更した時間。"
10658
10659 #. type: TP
10660 #: build/C/man7/svipc.7:231
10661 #, no-wrap
10662 msgid "I<sem_nsems>"
10663 msgstr "I<sem_nsems>"
10664
10665 #. type: Plain text
10666 #: build/C/man7/svipc.7:239
10667 msgid ""
10668 "Number of semaphores in the set.  Each semaphore of the set is referenced by "
10669 "a nonnegative integer ranging from B<0> to I<sem_nsems-1>."
10670 msgstr ""
10671 "セマフォー集合の中にあるセマフォーの数。 集合の中にあるそれぞれのセマフォーは"
10672 "負でない整数によって参照され、 B<0> から I<sem_nsems-1> までの番号を持つ。"
10673
10674 #. type: Plain text
10675 #: build/C/man7/svipc.7:243
10676 msgid ""
10677 "A semaphore is a data structure of type I<struct sem> containing the "
10678 "following members:"
10679 msgstr ""
10680 "セマフォーは I<struct sem> 型のデータ構造体であり、以下のメンバーを含んでい"
10681 "る:"
10682
10683 #.     unsigned short semncnt; /* nr awaiting semval to increase */
10684 #.     unsigned short semzcnt; /* nr awaiting semval = 0 */
10685 #. type: Plain text
10686 #: build/C/man7/svipc.7:252
10687 #, no-wrap
10688 msgid ""
10689 "struct sem {\n"
10690 "    int semval;  /* semaphore value */\n"
10691 "    int sempid;  /* PID for last operation */\n"
10692 "};\n"
10693 msgstr ""
10694 "struct sem {\n"
10695 "    int semval;  /* セマフォーの値 */\n"
10696 "    int sempid;  /* 最後に操作したプロセス ID */\n"
10697 "};\n"
10698
10699 #. type: TP
10700 #: build/C/man7/svipc.7:254
10701 #, no-wrap
10702 msgid "I<semval>"
10703 msgstr "I<semval>"
10704
10705 #. type: Plain text
10706 #: build/C/man7/svipc.7:257
10707 msgid "Semaphore value: a nonnegative integer."
10708 msgstr "セマフォー値: 負でない整数。"
10709
10710 #. type: TP
10711 #: build/C/man7/svipc.7:257
10712 #, no-wrap
10713 msgid "I<sempid>"
10714 msgstr "I<sempid>"
10715
10716 #. .TP
10717 #. .I semncnt
10718 #. Number of processes suspended awaiting for
10719 #. .I semval
10720 #. to increase.
10721 #. .TP
10722 #. .I semznt
10723 #. Number of processes suspended awaiting for
10724 #. .I semval
10725 #. to become zero.
10726 #. type: Plain text
10727 #: build/C/man7/svipc.7:271
10728 msgid ""
10729 "ID of the last process that performed a semaphore operation on this "
10730 "semaphore."
10731 msgstr "このセマフォーを最後に操作したプロセスの ID。"
10732
10733 #. type: SS
10734 #: build/C/man7/svipc.7:271
10735 #, no-wrap
10736 msgid "Shared memory segments"
10737 msgstr "共有メモリセグメント"
10738
10739 #. type: Plain text
10740 #: build/C/man7/svipc.7:279
10741 msgid ""
10742 "A shared memory segment is uniquely identified by a positive integer (its "
10743 "I<shmid>)  and has an associated data structure of type I<struct shmid_ds>, "
10744 "defined in I<E<lt>sys/shm.hE<gt>>, containing the following members:"
10745 msgstr ""
10746 "共有メモリセグメントは正の整数 (I<shmid>)  によって識別され、 I<E<lt>sys/shm."
10747 "hE<gt>> に定義されている I<struct shmid_ds> 構造体に結びつけられている。 この"
10748 "構造体は以下のメンバーを含んでいる:"
10749
10750 #. type: Plain text
10751 #: build/C/man7/svipc.7:292
10752 #, no-wrap
10753 msgid ""
10754 "struct shmid_ds {\n"
10755 "    struct ipc_perm shm_perm;\n"
10756 "    size_t          shm_segsz;   /* size of segment */\n"
10757 "    pid_t           shm_cpid;    /* PID of creator */\n"
10758 "    pid_t           shm_lpid;    /* PID, last operation */\n"
10759 "    shmatt_t        shm_nattch;  /* no. of current attaches */\n"
10760 "    time_t          shm_atime;   /* time of last attach */\n"
10761 "    time_t          shm_dtime;   /* time of last detach */\n"
10762 "    time_t          shm_ctime;   /* time of last change */\n"
10763 "};\n"
10764 msgstr ""
10765 "struct shmid_ds {\n"
10766 "    struct ipc_perm shm_perm;\n"
10767 "    size_t          shm_segsz;   /* セグメントのサイズ */\n"
10768 "    pid_t           shm_cpid;    /* 作成者のプロセス ID */\n"
10769 "    pid_t           shm_lpid;    /* 最後に操作したプロセス ID */\n"
10770 "    shmatt_t        shm_nattch;  /* 現在、付加している数 */\n"
10771 "    time_t          shm_atime;   /* 最後に付加した時間 */\n"
10772 "    time_t          shm_dtime;   /* 最後に分離した時間 */\n"
10773 "    time_t          shm_ctime;   /* 最後に変更した時間 */\n"
10774 "};\n"
10775
10776 #. type: TP
10777 #: build/C/man7/svipc.7:294
10778 #, no-wrap
10779 msgid "I<shm_perm>"
10780 msgstr "I<shm_perm>"
10781
10782 #. type: Plain text
10783 #: build/C/man7/svipc.7:299
10784 msgid ""
10785 "I<ipc_perm> structure that specifies the access permissions on the shared "
10786 "memory segment."
10787 msgstr "共有メモリセグメントへのアクセス許可を指定した I<ipc_perm> 構造体。"
10788
10789 #. type: TP
10790 #: build/C/man7/svipc.7:299
10791 #, no-wrap
10792 msgid "I<shm_segsz>"
10793 msgstr "I<shm_segsz>"
10794
10795 #. type: Plain text
10796 #: build/C/man7/svipc.7:302
10797 msgid "Size in bytes of the shared memory segment."
10798 msgstr "共有メモリセグメントのバイト数。"
10799
10800 #. type: TP
10801 #: build/C/man7/svipc.7:302
10802 #, no-wrap
10803 msgid "I<shm_cpid>"
10804 msgstr "I<shm_cpid>"
10805
10806 #. type: Plain text
10807 #: build/C/man7/svipc.7:305
10808 msgid "ID of the process that created the shared memory segment."
10809 msgstr "共有メモリセグメントを作成したプロセスの ID。"
10810
10811 #. type: TP
10812 #: build/C/man7/svipc.7:305
10813 #, no-wrap
10814 msgid "I<shm_lpid>"
10815 msgstr "I<shm_lpid>"
10816
10817 #. type: Plain text
10818 #: build/C/man7/svipc.7:312
10819 msgid ""
10820 "ID of the last process that executed a B<shmat>(2)  or B<shmdt>(2)  system "
10821 "call."
10822 msgstr ""
10823 "最後に B<shmat>(2)  または B<shmdt>(2)  システムコールを実行したプロセスの "
10824 "ID。"
10825
10826 #. type: TP
10827 #: build/C/man7/svipc.7:312
10828 #, no-wrap
10829 msgid "I<shm_nattch>"
10830 msgstr "I<shm_nattch>"
10831
10832 #. type: Plain text
10833 #: build/C/man7/svipc.7:315
10834 msgid "Number of current alive attaches for this shared memory segment."
10835 msgstr "この共有メモリセグメントをメモリに付加 (attach) しているプロセスの数。"
10836
10837 #. type: TP
10838 #: build/C/man7/svipc.7:315
10839 #, no-wrap
10840 msgid "I<shm_atime>"
10841 msgstr "I<shm_atime>"
10842
10843 #. type: Plain text
10844 #: build/C/man7/svipc.7:320
10845 msgid "Time of the last B<shmat>(2)  system call."
10846 msgstr "最後に B<shmat>(2)  システムコールを行なった時間。"
10847
10848 #. type: TP
10849 #: build/C/man7/svipc.7:320
10850 #, no-wrap
10851 msgid "I<shm_dtime>"
10852 msgstr "I<shm_dtime>"
10853
10854 #. type: Plain text
10855 #: build/C/man7/svipc.7:325
10856 msgid "Time of the last B<shmdt>(2)  system call."
10857 msgstr "最後に B<shmdt>(2)  システムコールを行なった時間。"
10858
10859 #. type: TP
10860 #: build/C/man7/svipc.7:325
10861 #, no-wrap
10862 msgid "I<shm_ctime>"
10863 msgstr "I<shm_ctime>"
10864
10865 #. type: Plain text
10866 #: build/C/man7/svipc.7:331
10867 msgid "Time of the last B<shmctl>(2)  system call that changed I<shmid_ds>."
10868 msgstr ""
10869 "最後に B<shmctl>(2)  システムコールを行なって、 I<shmid_ds> 構造体を変更した"
10870 "時間。"
10871
10872 #. type: Plain text
10873 #: build/C/man7/svipc.7:348
10874 msgid ""
10875 "B<ipcmk>(1), B<ipcrm>(1), B<ipcs>(1), B<ipc>(2), B<msgctl>(2), B<msgget>(2), "
10876 "B<msgrcv>(2), B<msgsnd>(2), B<semctl>(2), B<semget>(2), B<semop>(2), B<shmat>"
10877 "(2), B<shmctl>(2), B<shmdt>(2), B<shmget>(2), B<ftok>(3)"
10878 msgstr ""
10879 "B<ipcmk>(1), B<ipcrm>(1), B<ipcs>(1), B<ipc>(2), B<msgctl>(2), B<msgget>(2), "
10880 "B<msgrcv>(2), B<msgsnd>(2), B<semctl>(2), B<semget>(2), B<semop>(2), B<shmat>"
10881 "(2), B<shmctl>(2), B<shmdt>(2), B<shmget>(2), B<ftok>(3)"
10882
10883 #. type: TH
10884 #: build/C/man3/ulimit.3:27
10885 #, no-wrap
10886 msgid "ULIMIT"
10887 msgstr "ULIMIT"
10888
10889 #. type: TH
10890 #: build/C/man3/ulimit.3:27
10891 #, no-wrap
10892 msgid "2008-08-06"
10893 msgstr "2008-08-06"
10894
10895 #. type: Plain text
10896 #: build/C/man3/ulimit.3:30
10897 msgid "ulimit - get and set user limits"
10898 msgstr "ulimit - ユーザー制限を取得・設定する"
10899
10900 #. type: Plain text
10901 #: build/C/man3/ulimit.3:32
10902 msgid "B<#include E<lt>ulimit.hE<gt>>"
10903 msgstr "B<#include E<lt>ulimit.hE<gt>>"
10904
10905 #. type: Plain text
10906 #: build/C/man3/ulimit.3:34
10907 msgid "B<long ulimit(int >I<cmd>B<, long >I<newlimit>B<);>"
10908 msgstr "B<long ulimit(int >I<cmd>B<, long >I<newlimit>B<);>"
10909
10910 #. type: Plain text
10911 #: build/C/man3/ulimit.3:46
10912 msgid ""
10913 "Warning: This routine is obsolete.  Use B<getrlimit>(2), B<setrlimit>(2), "
10914 "and B<sysconf>(3)  instead.  For the shell command B<ulimit>(), see B<bash>"
10915 "(1)."
10916 msgstr ""
10917 "注意: このルーチンは古い。 代わりに B<getrlimit>(2), B<setrlimit>(2), "
10918 "B<sysconf>(3)  などを用いること。 シェルコマンドとしての B<ulimit>()  につい"
10919 "ては、 B<bash>(1)  を見ること。"
10920
10921 #. type: Plain text
10922 #: build/C/man3/ulimit.3:53
10923 msgid ""
10924 "The B<ulimit>()  call will get or set some limit for the calling process.  "
10925 "The I<cmd> argument can have one of the following values."
10926 msgstr ""
10927 "B<ulimit>()  は呼び出し元のプロセスに関する制限のいくつかを取得・設定する。 "
10928 "I<cmd> 引き数には、以下の値のうちのどれか一つを与えることができる。"
10929
10930 #. type: TP
10931 #: build/C/man3/ulimit.3:53
10932 #, no-wrap
10933 msgid "B<UL_GETFSIZE>"
10934 msgstr "B<UL_GETFSIZE>"
10935
10936 #. type: Plain text
10937 #: build/C/man3/ulimit.3:56
10938 msgid "Return the limit on the size of a file, in units of 512 bytes."
10939 msgstr "ファイルサイズに関する制限を返す。単位は 512 バイト。"
10940
10941 #. type: TP
10942 #: build/C/man3/ulimit.3:56
10943 #, no-wrap
10944 msgid "B<UL_SETFSIZE>"
10945 msgstr "B<UL_SETFSIZE>"
10946
10947 #. type: Plain text
10948 #: build/C/man3/ulimit.3:59
10949 msgid "Set the limit on the size of a file."
10950 msgstr "ファイルサイズに関する制限を設定する。"
10951
10952 #. type: TP
10953 #: build/C/man3/ulimit.3:59
10954 #, no-wrap
10955 msgid "B<3>"
10956 msgstr "B<3>"
10957
10958 #. type: Plain text
10959 #: build/C/man3/ulimit.3:63
10960 msgid ""
10961 "(Not implemented for Linux.)  Return the maximum possible address of the "
10962 "data segment."
10963 msgstr ""
10964 "(Linux では実装されていない)  データセグメントで指定できるアドレスの最大値を"
10965 "返す。"
10966
10967 #. type: TP
10968 #: build/C/man3/ulimit.3:63
10969 #, no-wrap
10970 msgid "B<4>"
10971 msgstr "B<4>"
10972
10973 #. type: Plain text
10974 #: build/C/man3/ulimit.3:67
10975 msgid ""
10976 "(Implemented but no symbolic constant provided.)  Return the maximum number "
10977 "of files that the calling process can open."
10978 msgstr ""
10979 "(実装されているが、対応するシンボリックな定数は存在しない)  プロセスがオープ"
10980 "ンできるファイル数の最大値を返す。"
10981
10982 #. type: Plain text
10983 #: build/C/man3/ulimit.3:74
10984 msgid ""
10985 "On success, B<ulimit>()  returns a nonnegative value.  On error, -1 is "
10986 "returned, and I<errno> is set appropriately."
10987 msgstr ""
10988 "成功すると B<ulimit>()  は 0 または正の値を返す。 エラーが生じると -1 を返"
10989 "し、 I<errno> を適切な値に設定する。"
10990
10991 #. type: Plain text
10992 #: build/C/man3/ulimit.3:78
10993 msgid "A unprivileged process tried to increase a limit."
10994 msgstr "非特権プロセスが制限値を増加させようとした。"
10995
10996 #. type: Plain text
10997 #: build/C/man3/ulimit.3:83
10998 msgid "SVr4, POSIX.1-2001.  POSIX.1-2008 marks B<ulimit>()  as obsolete."
10999 msgstr ""
11000 "SVr4, POSIX.1-2001.  POSIX.1-2008 は B<ulimit>()  を廃止予定としている。"
11001
11002 #. type: Plain text
11003 #: build/C/man3/ulimit.3:88
11004 msgid "B<bash>(1), B<getrlimit>(2), B<setrlimit>(2), B<sysconf>(3)"
11005 msgstr "B<bash>(1), B<getrlimit>(2), B<setrlimit>(2), B<sysconf>(3)"