OSDN Git Service

(split) LDP: Release following pages.
[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: 2012-05-28 07:16+0900\n"
10 "PO-Revision-Date: 2012-05-28 12:59+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:32 build/C/man5/acct.5:23
20 #, no-wrap
21 msgid "ACCT"
22 msgstr "ACCT"
23
24 #. type: TH
25 #: build/C/man2/acct.2:32
26 #, no-wrap
27 msgid "2008-06-16"
28 msgstr "2008-06-16"
29
30 #. type: TH
31 #: build/C/man2/acct.2:32 build/C/man5/acct.5:23
32 #: build/C/man7/capabilities.7:46 build/C/man2/capget.2:11
33 #: build/C/man7/cpuset.7:24 build/C/man7/credentials.7:25
34 #: build/C/man2/getgid.2:25 build/C/man2/getgroups.2:31
35 #: build/C/man2/getpid.2:23 build/C/man2/getpriority.2:46
36 #: build/C/man2/getresuid.2:27 build/C/man2/getrlimit.2:64
37 #: build/C/man2/getrusage.2:39 build/C/man2/getsid.2:25
38 #: build/C/man2/getuid.2:26 build/C/man2/iopl.2:33
39 #: build/C/man2/ioprio_set.2:25 build/C/man2/ipc.2:26
40 #: build/C/man2/seteuid.2:27 build/C/man2/setfsgid.2:29
41 #: build/C/man2/setfsuid.2:29 build/C/man2/setgid.2:27
42 #: build/C/man2/setpgid.2:46 build/C/man2/setresuid.2:26
43 #: build/C/man2/setreuid.2:43 build/C/man2/setsid.2:29
44 #: build/C/man2/setuid.2:28 build/C/man7/svipc.7:25 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:32 build/C/man5/acct.5:23
51 #: build/C/man7/capabilities.7:46 build/C/man2/capget.2:11
52 #: build/C/man7/cpuset.7:24 build/C/man7/credentials.7:25
53 #: build/C/man2/getgid.2:25 build/C/man2/getgroups.2:31
54 #: build/C/man2/getpid.2:23 build/C/man2/getpriority.2:46
55 #: build/C/man2/getresuid.2:27 build/C/man2/getrlimit.2:64
56 #: build/C/man2/getrusage.2:39 build/C/man2/getsid.2:25
57 #: build/C/man2/getuid.2:26 build/C/man2/iopl.2:33
58 #: build/C/man2/ioprio_set.2:25 build/C/man2/ipc.2:26
59 #: build/C/man2/seteuid.2:27 build/C/man2/setfsgid.2:29
60 #: build/C/man2/setfsuid.2:29 build/C/man2/setgid.2:27
61 #: build/C/man2/setpgid.2:46 build/C/man2/setresuid.2:26
62 #: build/C/man2/setreuid.2:43 build/C/man2/setsid.2:29
63 #: build/C/man2/setuid.2:28 build/C/man7/svipc.7:25 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:33 build/C/man5/acct.5:24
70 #: build/C/man7/capabilities.7:47 build/C/man2/capget.2:12
71 #: build/C/man7/cpuset.7:25 build/C/man7/credentials.7:26
72 #: build/C/man2/getgid.2:26 build/C/man2/getgroups.2:32
73 #: build/C/man2/getpid.2:24 build/C/man2/getpriority.2:47
74 #: build/C/man2/getresuid.2:28 build/C/man2/getrlimit.2:65
75 #: build/C/man2/getrusage.2:40 build/C/man2/getsid.2:26
76 #: build/C/man2/getuid.2:27 build/C/man2/iopl.2:34
77 #: build/C/man2/ioprio_set.2:26 build/C/man2/ipc.2:27
78 #: build/C/man2/seteuid.2:28 build/C/man2/setfsgid.2:30
79 #: build/C/man2/setfsuid.2:30 build/C/man2/setgid.2:28
80 #: build/C/man2/setpgid.2:47 build/C/man2/setresuid.2:27
81 #: build/C/man2/setreuid.2:44 build/C/man2/setsid.2:30
82 #: build/C/man2/setuid.2:29 build/C/man7/svipc.7:26 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:35
89 msgid "acct - switch process accounting on or off"
90 msgstr "acct - プロセス・アカウントのオンとオフを切り換える"
91
92 #. type: SH
93 #: build/C/man2/acct.2:35 build/C/man5/acct.5:26 build/C/man2/capget.2:14
94 #: build/C/man2/getgid.2:28 build/C/man2/getgroups.2:34
95 #: build/C/man2/getpid.2:26 build/C/man2/getpriority.2:49
96 #: build/C/man2/getresuid.2:30 build/C/man2/getrlimit.2:67
97 #: build/C/man2/getrusage.2:42 build/C/man2/getsid.2:28
98 #: build/C/man2/getuid.2:29 build/C/man2/iopl.2:36
99 #: build/C/man2/ioprio_set.2:28 build/C/man2/ipc.2:29
100 #: build/C/man2/seteuid.2:30 build/C/man2/setfsgid.2:32
101 #: build/C/man2/setfsuid.2:32 build/C/man2/setgid.2:30
102 #: build/C/man2/setpgid.2:49 build/C/man2/setresuid.2:29
103 #: build/C/man2/setreuid.2:46 build/C/man2/setsid.2:32
104 #: build/C/man2/setuid.2:31 build/C/man7/svipc.7:28 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:39
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:41
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:47 build/C/man2/getgroups.2:48
123 #: build/C/man2/getrlimit.2:84 build/C/man2/getsid.2:36
124 #: build/C/man2/seteuid.2:42 build/C/man2/setpgid.2:69
125 #: build/C/man2/setreuid.2:58
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:51
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:51 build/C/man5/acct.5:28
139 #: build/C/man7/capabilities.7:49 build/C/man2/capget.2:20
140 #: build/C/man7/cpuset.7:27 build/C/man7/credentials.7:28
141 #: build/C/man2/getgid.2:36 build/C/man2/getgroups.2:52
142 #: build/C/man2/getpid.2:34 build/C/man2/getpriority.2:57
143 #: build/C/man2/getresuid.2:38 build/C/man2/getrlimit.2:88
144 #: build/C/man2/getrusage.2:48 build/C/man2/getsid.2:49
145 #: build/C/man2/getuid.2:37 build/C/man2/iopl.2:40
146 #: build/C/man2/ioprio_set.2:33 build/C/man2/ipc.2:35
147 #: build/C/man2/seteuid.2:51 build/C/man2/setfsgid.2:37
148 #: build/C/man2/setfsuid.2:37 build/C/man2/setgid.2:36
149 #: build/C/man2/setpgid.2:96 build/C/man2/setresuid.2:37
150 #: build/C/man2/setreuid.2:68 build/C/man2/setsid.2:39
151 #: build/C/man2/setuid.2:37 build/C/man7/svipc.7:36 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:152
172 #: build/C/man2/getgroups.2:92 build/C/man2/getpriority.2:105
173 #: build/C/man2/getresuid.2:49 build/C/man2/getrlimit.2:430
174 #: build/C/man2/getrusage.2:180 build/C/man2/getsid.2:57
175 #: build/C/man2/iopl.2:65 build/C/man2/ioprio_set.2:139
176 #: build/C/man2/seteuid.2:65 build/C/man2/setfsgid.2:67
177 #: build/C/man2/setfsuid.2:67 build/C/man2/setgid.2:51
178 #: build/C/man2/setpgid.2:170 build/C/man2/setresuid.2:64
179 #: build/C/man2/setreuid.2:89 build/C/man2/setsid.2:50
180 #: build/C/man2/setuid.2:68 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:157
187 #: build/C/man2/getresuid.2:54 build/C/man2/getrusage.2:185
188 #: build/C/man2/iopl.2:70 build/C/man2/seteuid.2:70 build/C/man2/setgid.2:56
189 #: build/C/man2/setresuid.2:69 build/C/man2/setreuid.2:94
190 #: build/C/man2/setuid.2:73
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:171 build/C/man7/cpuset.7:1099
200 #: build/C/man2/getgid.2:42 build/C/man2/getgroups.2:106
201 #: build/C/man2/getpid.2:42 build/C/man2/getpriority.2:118
202 #: build/C/man2/getresuid.2:54 build/C/man2/getrlimit.2:435
203 #: build/C/man2/getrusage.2:185 build/C/man2/getsid.2:62
204 #: build/C/man2/getuid.2:43 build/C/man2/iopl.2:70
205 #: build/C/man2/ioprio_set.2:159 build/C/man2/seteuid.2:70
206 #: build/C/man2/setgid.2:56 build/C/man2/setpgid.2:191
207 #: build/C/man2/setresuid.2:69 build/C/man2/setreuid.2:94
208 #: build/C/man2/setsid.2:57 build/C/man2/setuid.2:73 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:1115
215 #: build/C/man7/cpuset.7:1122 build/C/man7/cpuset.7:1128
216 #: build/C/man7/cpuset.7:1136 build/C/man7/cpuset.7:1143
217 #: build/C/man2/getpriority.2:138 build/C/man2/setpgid.2:192
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:172 build/C/man7/cpuset.7:1171
236 #: build/C/man2/getgroups.2:107 build/C/man2/getresuid.2:55
237 #: build/C/man2/getrlimit.2:436 build/C/man2/getrusage.2:186
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:1237
249 #: build/C/man7/cpuset.7:1245
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:1250
283 #: build/C/man7/cpuset.7:1257 build/C/man7/cpuset.7:1262
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:1274
306 #: build/C/man7/cpuset.7:1279
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:1286
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:75
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:1313
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:183 build/C/man2/capget.2:188
361 #: build/C/man7/cpuset.7:1318 build/C/man2/getgroups.2:130
362 #: build/C/man2/getpriority.2:150 build/C/man2/getrlimit.2:452
363 #: build/C/man2/getsid.2:63 build/C/man2/iopl.2:78
364 #: build/C/man2/ioprio_set.2:169 build/C/man2/seteuid.2:73
365 #: build/C/man2/setgid.2:57 build/C/man2/setpgid.2:206
366 #: build/C/man2/setresuid.2:77 build/C/man2/setreuid.2:95
367 #: build/C/man2/setsid.2:58 build/C/man2/setuid.2:83 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:152
406 #: build/C/man7/capabilities.7:1002 build/C/man2/capget.2:210
407 #: build/C/man7/credentials.7:232 build/C/man2/getgid.2:44
408 #: build/C/man2/getgroups.2:133 build/C/man2/getpid.2:44
409 #: build/C/man2/getpriority.2:158 build/C/man2/getresuid.2:66
410 #: build/C/man2/getrlimit.2:473 build/C/man2/getrusage.2:194
411 #: build/C/man2/getsid.2:78 build/C/man2/getuid.2:45 build/C/man2/iopl.2:85
412 #: build/C/man2/ioprio_set.2:186 build/C/man2/ipc.2:46
413 #: build/C/man2/seteuid.2:89 build/C/man2/setfsgid.2:78
414 #: build/C/man2/setfsuid.2:78 build/C/man2/setgid.2:74
415 #: build/C/man2/setpgid.2:225 build/C/man2/setresuid.2:83
416 #: build/C/man2/setreuid.2:111 build/C/man2/setsid.2:64
417 #: build/C/man2/setuid.2:90 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:156
434 #: build/C/man7/capabilities.7:1007 build/C/man2/capget.2:212
435 #: build/C/man7/cpuset.7:1340 build/C/man7/credentials.7:238
436 #: build/C/man2/getgid.2:46 build/C/man2/getgroups.2:141
437 #: build/C/man2/getpid.2:46 build/C/man2/getpriority.2:161
438 #: build/C/man2/getresuid.2:69 build/C/man2/getrlimit.2:496
439 #: build/C/man2/getrusage.2:205 build/C/man2/getsid.2:80
440 #: build/C/man2/getuid.2:47 build/C/man2/getuid.2:57 build/C/man2/iopl.2:89
441 #: build/C/man2/ioprio_set.2:188 build/C/man2/ipc.2:50
442 #: build/C/man2/seteuid.2:91 build/C/man2/setfsgid.2:82
443 #: build/C/man2/setfsuid.2:82 build/C/man2/setgid.2:64
444 #: build/C/man2/setpgid.2:247 build/C/man2/setresuid.2:86
445 #: build/C/man2/setreuid.2:117 build/C/man2/setsid.2:66
446 #: build/C/man2/setuid.2:95
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:173
471 #: build/C/man7/capabilities.7:1055 build/C/man2/capget.2:219
472 #: build/C/man7/cpuset.7:1487 build/C/man7/credentials.7:249
473 #: build/C/man2/getgid.2:62 build/C/man2/getgroups.2:171
474 #: build/C/man2/getpid.2:98 build/C/man2/getpriority.2:223
475 #: build/C/man2/getresuid.2:85 build/C/man2/getrlimit.2:620
476 #: build/C/man2/getrusage.2:245 build/C/man2/getsid.2:83
477 #: build/C/man2/getuid.2:73 build/C/man2/iopl.2:98
478 #: build/C/man2/ioprio_set.2:317 build/C/man2/ipc.2:58
479 #: build/C/man2/seteuid.2:117 build/C/man2/setfsgid.2:110
480 #: build/C/man2/setfsuid.2:110 build/C/man2/setgid.2:76
481 #: build/C/man2/setpgid.2:315 build/C/man2/setresuid.2:106
482 #: build/C/man2/setreuid.2:157 build/C/man2/setsid.2:83
483 #: build/C/man2/setuid.2:118 build/C/man7/svipc.7:320 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:178
495 #: build/C/man7/capabilities.7:1076 build/C/man2/capget.2:223
496 #: build/C/man7/cpuset.7:1504 build/C/man7/credentials.7:280
497 #: build/C/man2/getgid.2:67 build/C/man2/getgroups.2:178
498 #: build/C/man2/getpid.2:108 build/C/man2/getpriority.2:231
499 #: build/C/man2/getresuid.2:91 build/C/man2/getrlimit.2:637
500 #: build/C/man2/getrusage.2:252 build/C/man2/getsid.2:87
501 #: build/C/man2/getuid.2:78 build/C/man2/iopl.2:101
502 #: build/C/man2/ioprio_set.2:323 build/C/man2/ipc.2:71
503 #: build/C/man2/seteuid.2:124 build/C/man2/setfsgid.2:115
504 #: build/C/man2/setfsuid.2:115 build/C/man2/setgid.2:82
505 #: build/C/man2/setpgid.2:322 build/C/man2/setresuid.2:115
506 #: build/C/man2/setreuid.2:165 build/C/man2/setsid.2:89
507 #: build/C/man2/setuid.2:125 build/C/man7/svipc.7:334 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:185
514 #: build/C/man7/capabilities.7:1083 build/C/man2/capget.2:230
515 #: build/C/man7/cpuset.7:1511 build/C/man7/credentials.7:287
516 #: build/C/man2/getgid.2:74 build/C/man2/getgroups.2:185
517 #: build/C/man2/getpid.2:115 build/C/man2/getpriority.2:238
518 #: build/C/man2/getresuid.2:98 build/C/man2/getrlimit.2:644
519 #: build/C/man2/getrusage.2:259 build/C/man2/getsid.2:94
520 #: build/C/man2/getuid.2:85 build/C/man2/iopl.2:108
521 #: build/C/man2/ioprio_set.2:330 build/C/man2/ipc.2:78
522 #: build/C/man2/seteuid.2:131 build/C/man2/setfsgid.2:122
523 #: build/C/man2/setfsuid.2:122 build/C/man2/setgid.2:89
524 #: build/C/man2/setpgid.2:329 build/C/man2/setresuid.2:122
525 #: build/C/man2/setreuid.2:172 build/C/man2/setsid.2:96
526 #: build/C/man2/setuid.2:132 build/C/man7/svipc.7:341 build/C/man3/ulimit.3:95
527 msgid ""
528 "This page is part of release 3.41 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.41 の一部\n"
533 "である。プロジェクトの説明とバグ報告に関する情報は\n"
534 "http://www.kernel.org/doc/man-pages/ に書かれている。"
535
536 #. type: TH
537 #: build/C/man5/acct.5:23
538 #, no-wrap
539 msgid "2008-06-15"
540 msgstr "2008-06-15"
541
542 #. type: Plain text
543 #: build/C/man5/acct.5:26
544 msgid "acct - process accounting file"
545 msgstr "acct - プロセス・アカウンティング・ファイル"
546
547 #. type: Plain text
548 #: build/C/man5/acct.5:28
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:34
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:37
565 msgid "acct(\"/var/log/pacct\");"
566 msgstr "acct(\"/var/log/pacct\");"
567
568 #. type: Plain text
569 #: build/C/man5/acct.5:45
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:49
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:51
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:75
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:82
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:92
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:95
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:105
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:105
693 #, no-wrap
694 msgid "Version 3 Accounting File Format"
695 msgstr "バージョン 3 のアカウンティングファイルのフォーマット"
696
697 #. type: Plain text
698 #: build/C/man5/acct.5:120
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:145
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:148 build/C/man7/cpuset.7:1337
768 #: build/C/man2/getresuid.2:59 build/C/man2/getrlimit.2:468
769 #: build/C/man2/getsid.2:74 build/C/man2/ioprio_set.2:183
770 #: build/C/man2/setfsgid.2:74 build/C/man2/setfsuid.2:74
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:152
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:156
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:159
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:166
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:173
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:178
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:46
828 #, no-wrap
829 msgid "CAPABILITIES"
830 msgstr "CAPABILITIES"
831
832 #. type: TH
833 #: build/C/man7/capabilities.7:46
834 #, no-wrap
835 msgid "2012-04-15"
836 msgstr "2012-04-15"
837
838 #. type: Plain text
839 #: build/C/man7/capabilities.7:49
840 msgid "capabilities - overview of Linux capabilities"
841 msgstr "capabilities - Linux のケーパビリティ (capability) の概要"
842
843 #. type: Plain text
844 #: build/C/man7/capabilities.7:61
845 msgid ""
846 "For the purpose of performing permission checks, traditional UNIX "
847 "implementations distinguish two categories of processes: I<privileged> "
848 "processes (whose effective user ID is 0, referred to as superuser or root), "
849 "and I<unprivileged> processes (whose effective UID is nonzero).  Privileged "
850 "processes bypass all kernel permission checks, while unprivileged processes "
851 "are subject to full permission checking based on the process's credentials "
852 "(usually: effective UID, effective GID, and supplementary group list)."
853 msgstr ""
854 "権限のチェックを行う観点から見ると、伝統的な UNIX の実装では プロセスは二つの"
855 "カテゴリに分類できる: I<特権> プロセス (実効ユーザID が 0 のプロセス。ユーザ"
856 "ID 0 は スーパーユーザや root と呼ばれる) と I<非特権> プロセス (実効ユーザ"
857 "ID が 0 以外のプロセス) である。 非特権プロセスでは、プロセスの資格情報 (通常"
858 "は、実効UID 、実効GID と追加のグループリスト) に基づく権限チェックが行われる"
859 "のに対し、 特権プロセスでは全てのカーネルの権限チェックがバイパスされる。"
860
861 #. type: Plain text
862 #: build/C/man7/capabilities.7:68
863 msgid ""
864 "Starting with kernel 2.2, Linux divides the privileges traditionally "
865 "associated with superuser into distinct units, known as I<capabilities>, "
866 "which can be independently enabled and disabled.  Capabilities are a per-"
867 "thread attribute."
868 msgstr ""
869 "バージョン 2.2 以降の Linux では、 これまでスーパーユーザに結び付けられてきた"
870 "権限を、 いくつかのグループに分割している。これらのグループは I<ケーパビリ"
871 "ティ>(capability)  と呼ばれ、グループ毎に独立に有効、無効を設定できる。 ケー"
872 "パビリティはスレッド単位の属性である。"
873
874 #. type: SS
875 #: build/C/man7/capabilities.7:68
876 #, no-wrap
877 msgid "Capabilities List"
878 msgstr "ケーパビリティのリスト"
879
880 #. type: Plain text
881 #: build/C/man7/capabilities.7:71
882 msgid ""
883 "The following list shows the capabilities implemented on Linux, and the "
884 "operations or behaviors that each capability permits:"
885 msgstr ""
886 "以下のリストは、 Linux で実装されているケーパビリティと 各ケーパビリティが許"
887 "可する操作と動作をまとめたものである。"
888
889 #. type: TP
890 #: build/C/man7/capabilities.7:71
891 #, no-wrap
892 msgid "B<CAP_AUDIT_CONTROL> (since Linux 2.6.11)"
893 msgstr "B<CAP_AUDIT_CONTROL> (Linux 2.6.11 以降)"
894
895 #. type: Plain text
896 #: build/C/man7/capabilities.7:75
897 msgid ""
898 "Enable and disable kernel auditing; change auditing filter rules; retrieve "
899 "auditing status and filtering rules."
900 msgstr ""
901 "カーネル監査 (audit) の有効無効の切り替え、 監査のフィルタルールの変更、 監査"
902 "の状況やフィルタルールの取得ができる。"
903
904 #. type: TP
905 #: build/C/man7/capabilities.7:75
906 #, no-wrap
907 msgid "B<CAP_AUDIT_WRITE> (since Linux 2.6.11)"
908 msgstr "B<CAP_AUDIT_WRITE> (Linux 2.6.11 以降)"
909
910 #. type: Plain text
911 #: build/C/man7/capabilities.7:78
912 msgid "Write records to kernel auditing log."
913 msgstr "カーネル監査のログにレコードを書き込む。"
914
915 #. type: TP
916 #: build/C/man7/capabilities.7:78
917 #, no-wrap
918 msgid "B<CAP_CHOWN>"
919 msgstr "B<CAP_CHOWN>"
920
921 #. type: Plain text
922 #: build/C/man7/capabilities.7:82
923 msgid "Make arbitrary changes to file UIDs and GIDs (see B<chown>(2))."
924 msgstr "ファイルの UID とGID を任意に変更する (B<chown>(2)  参照)。"
925
926 #. type: TP
927 #: build/C/man7/capabilities.7:82
928 #, no-wrap
929 msgid "B<CAP_DAC_OVERRIDE>"
930 msgstr "B<CAP_DAC_OVERRIDE>"
931
932 #. type: Plain text
933 #: build/C/man7/capabilities.7:86
934 msgid ""
935 "Bypass file read, write, and execute permission checks.  (DAC is an "
936 "abbreviation of \"discretionary access control\".)"
937 msgstr ""
938 "ファイルの読み出し、書き込み、実行の権限チェックをバイパスする (DAC は "
939 "\"discretionary access control (任意のアクセス制御)\" の略である)。"
940
941 #. type: TP
942 #: build/C/man7/capabilities.7:86
943 #, no-wrap
944 msgid "B<CAP_DAC_READ_SEARCH>"
945 msgstr "B<CAP_DAC_READ_SEARCH>"
946
947 #. type: Plain text
948 #: build/C/man7/capabilities.7:90
949 msgid ""
950 "Bypass file read permission checks and directory read and execute permission "
951 "checks."
952 msgstr ""
953 "ファイルの読み出し権限のチェックとディレクトリの読み出しと実行 の権限チェック"
954 "をバイパスする。"
955
956 #. type: TP
957 #: build/C/man7/capabilities.7:90
958 #, no-wrap
959 msgid "B<CAP_FOWNER>"
960 msgstr "B<CAP_FOWNER>"
961
962 #. type: IP
963 #: build/C/man7/capabilities.7:94 build/C/man7/capabilities.7:104
964 #: build/C/man7/capabilities.7:108 build/C/man7/capabilities.7:110
965 #: build/C/man7/capabilities.7:112 build/C/man7/capabilities.7:182
966 #: build/C/man7/capabilities.7:184 build/C/man7/capabilities.7:186
967 #: build/C/man7/capabilities.7:188 build/C/man7/capabilities.7:190
968 #: build/C/man7/capabilities.7:192 build/C/man7/capabilities.7:194
969 #: build/C/man7/capabilities.7:196 build/C/man7/capabilities.7:198
970 #: build/C/man7/capabilities.7:222 build/C/man7/capabilities.7:224
971 #: build/C/man7/capabilities.7:270 build/C/man7/capabilities.7:280
972 #: build/C/man7/capabilities.7:286 build/C/man7/capabilities.7:291
973 #: build/C/man7/capabilities.7:297 build/C/man7/capabilities.7:304
974 #: build/C/man7/capabilities.7:307 build/C/man7/capabilities.7:315
975 #: build/C/man7/capabilities.7:317 build/C/man7/capabilities.7:326
976 #: build/C/man7/capabilities.7:333 build/C/man7/capabilities.7:336
977 #: build/C/man7/capabilities.7:340 build/C/man7/capabilities.7:343
978 #: build/C/man7/capabilities.7:346 build/C/man7/capabilities.7:353
979 #: build/C/man7/capabilities.7:358 build/C/man7/capabilities.7:364
980 #: build/C/man7/capabilities.7:368 build/C/man7/capabilities.7:372
981 #: build/C/man7/capabilities.7:376 build/C/man7/capabilities.7:380
982 #: build/C/man7/capabilities.7:407 build/C/man7/capabilities.7:412
983 #: build/C/man7/capabilities.7:417 build/C/man7/capabilities.7:420
984 #: build/C/man7/capabilities.7:423 build/C/man7/capabilities.7:432
985 #: build/C/man7/capabilities.7:436 build/C/man7/capabilities.7:472
986 #: build/C/man7/capabilities.7:474 build/C/man7/capabilities.7:478
987 #: build/C/man7/capabilities.7:480 build/C/man7/capabilities.7:483
988 #: build/C/man7/capabilities.7:487 build/C/man7/capabilities.7:489
989 #: build/C/man7/capabilities.7:491 build/C/man7/capabilities.7:493
990 #: build/C/man7/capabilities.7:502 build/C/man7/capabilities.7:509
991 #: build/C/man7/capabilities.7:514 build/C/man7/capabilities.7:519
992 #: build/C/man7/capabilities.7:729 build/C/man7/capabilities.7:737
993 #: build/C/man7/capabilities.7:1044 build/C/man7/capabilities.7:1049
994 #: build/C/man7/cpuset.7:539 build/C/man7/cpuset.7:544
995 #: build/C/man7/cpuset.7:549 build/C/man7/cpuset.7:725
996 #: build/C/man7/cpuset.7:729 build/C/man7/cpuset.7:926
997 #: build/C/man7/cpuset.7:929 build/C/man7/cpuset.7:933
998 #: build/C/man7/cpuset.7:937 build/C/man7/cpuset.7:941
999 #: build/C/man7/credentials.7:123 build/C/man7/credentials.7:129
1000 #: build/C/man7/credentials.7:141 build/C/man7/credentials.7:163
1001 #: build/C/man7/credentials.7:180 build/C/man7/credentials.7:212
1002 #: build/C/man7/credentials.7:215 build/C/man7/credentials.7:225
1003 #: build/C/man7/credentials.7:228
1004 #, no-wrap
1005 msgid "*"
1006 msgstr "*"
1007
1008 #. type: Plain text
1009 #: build/C/man7/capabilities.7:104
1010 msgid ""
1011 "Bypass permission checks on operations that normally require the file system "
1012 "UID of the process to match the UID of the file (e.g., B<chmod>(2), B<utime>"
1013 "(2)), excluding those operations covered by B<CAP_DAC_OVERRIDE> and "
1014 "B<CAP_DAC_READ_SEARCH>;"
1015 msgstr ""
1016 "通常、プロセスのファイルシステム UID がファイルの UID に一致することが 要求さ"
1017 "れる操作 (例えば B<chmod>(2), B<utime>(2))  における権限チェックをバイパスす"
1018 "る。 但し、 B<CAP_DAC_OVERRIDE> か B<CAP_DAC_READ_SEARCH> によりチェックが行"
1019 "われる操作は除く。"
1020
1021 #. type: Plain text
1022 #: build/C/man7/capabilities.7:108
1023 msgid "set extended file attributes (see B<chattr>(1))  on arbitrary files;"
1024 msgstr ""
1025 "任意のファイルに対して拡張ファイル属性を設定する (B<chattr>(1)  参照)。"
1026
1027 #. type: Plain text
1028 #: build/C/man7/capabilities.7:110
1029 msgid "set Access Control Lists (ACLs) on arbitrary files;"
1030 msgstr "任意のファイルに対してアクセス制御リスト (ACL) を設定する。"
1031
1032 #. type: Plain text
1033 #: build/C/man7/capabilities.7:112
1034 msgid "ignore directory sticky bit on file deletion;"
1035 msgstr "ファイルの削除の際にディレクトリのスティッキービットを無視する。"
1036
1037 #. type: Plain text
1038 #: build/C/man7/capabilities.7:119
1039 msgid ""
1040 "specify B<O_NOATIME> for arbitrary files in B<open>(2)  and B<fcntl>(2)."
1041 msgstr ""
1042 "B<open>(2)  や B<fcntl>(2)  で任意のファイルに対して B<O_NOATIME> を指定す"
1043 "る。"
1044
1045 #. type: TP
1046 #: build/C/man7/capabilities.7:121
1047 #, no-wrap
1048 msgid "B<CAP_FSETID>"
1049 msgstr "B<CAP_FSETID>"
1050
1051 #. type: Plain text
1052 #: build/C/man7/capabilities.7:127
1053 msgid ""
1054 "Don't clear set-user-ID and set-group-ID permission bits when a file is "
1055 "modified; set the set-group-ID bit for a file whose GID does not match the "
1056 "file system or any of the supplementary GIDs of the calling process."
1057 msgstr ""
1058 "ファイルが変更されたときに set-user-ID とset-group-ID の許可ビットをクリア し"
1059 "ない。呼び出し元プロセスのファイルシステム GID と追加の GID のいずれとも GID "
1060 "が一致しないファイルに対して set-group-ID ビットを設定する。"
1061
1062 #. type: TP
1063 #: build/C/man7/capabilities.7:127
1064 #, no-wrap
1065 msgid "B<CAP_IPC_LOCK>"
1066 msgstr "B<CAP_IPC_LOCK>"
1067
1068 #.  FIXME As at Linux 3.2, there are some strange uses of this capability
1069 #.  in other places; they probably should be replaced with something else.
1070 #. type: Plain text
1071 #: build/C/man7/capabilities.7:136
1072 msgid "Lock memory (B<mlock>(2), B<mlockall>(2), B<mmap>(2), B<shmctl>(2))."
1073 msgstr ""
1074 "メモリーのロック (B<mlock>(2), B<mlockall>(2), B<mmap>(2), B<shmctl>(2))  を"
1075 "行う。"
1076
1077 #. type: TP
1078 #: build/C/man7/capabilities.7:136
1079 #, no-wrap
1080 msgid "B<CAP_IPC_OWNER>"
1081 msgstr "B<CAP_IPC_OWNER>"
1082
1083 #. type: Plain text
1084 #: build/C/man7/capabilities.7:139
1085 msgid "Bypass permission checks for operations on System V IPC objects."
1086 msgstr ""
1087 "System V IPC オブジェクトに対する操作に関して権限チェックをバイパスする。"
1088
1089 #. type: TP
1090 #: build/C/man7/capabilities.7:139
1091 #, no-wrap
1092 msgid "B<CAP_KILL>"
1093 msgstr "B<CAP_KILL>"
1094
1095 #.  FIXME CAP_KILL also has an effect for threads + setting child
1096 #.        termination signal to other than SIGCHLD: without this
1097 #.        capability, the termination signal reverts to SIGCHLD
1098 #.        if the child does an exec().  What is the rationale
1099 #.        for this?
1100 #. type: Plain text
1101 #: build/C/man7/capabilities.7:152
1102 msgid ""
1103 "Bypass permission checks for sending signals (see B<kill>(2)).  This "
1104 "includes use of the B<ioctl>(2)  B<KDSIGACCEPT> operation."
1105 msgstr ""
1106 "シグナルを送信する際に権限チェックをバイパスする (B<kill>(2)  参照)。これに"
1107 "は B<ioctl>(2)  の B<KDSIGACCEPT> 操作の使用も含まれる。"
1108
1109 #. type: TP
1110 #: build/C/man7/capabilities.7:152
1111 #, no-wrap
1112 msgid "B<CAP_LEASE> (since Linux 2.4)"
1113 msgstr "B<CAP_LEASE> (Linux 2.4 以降)"
1114
1115 #. type: Plain text
1116 #: build/C/man7/capabilities.7:156
1117 msgid "Establish leases on arbitrary files (see B<fcntl>(2))."
1118 msgstr "任意のファイルに対して ファイルリースを設定する (B<fcntl>(2)  参照)。"
1119
1120 #. type: TP
1121 #: build/C/man7/capabilities.7:156
1122 #, no-wrap
1123 msgid "B<CAP_LINUX_IMMUTABLE>"
1124 msgstr "B<CAP_LINUX_IMMUTABLE>"
1125
1126 #.  These attributes are now available on ext2, ext3, Reiserfs, XFS, JFS
1127 #. type: Plain text
1128 #: build/C/man7/capabilities.7:165
1129 msgid ""
1130 "Set the B<FS_APPEND_FL> and B<FS_IMMUTABLE_FL> i-node flags (see B<chattr>"
1131 "(1))."
1132 msgstr ""
1133 "拡張ファイル属性 B<FS_APPEND_FL> と B<FS_IMMUTABLE_FL> を設定する (B<chattr>"
1134 "(1)  参照)。"
1135
1136 #. type: TP
1137 #: build/C/man7/capabilities.7:165
1138 #, no-wrap
1139 msgid "B<CAP_MAC_ADMIN> (since Linux 2.6.25)"
1140 msgstr "B<CAP_MAC_ADMIN> (Linux 2.6.25 以降)"
1141
1142 #. type: Plain text
1143 #: build/C/man7/capabilities.7:169
1144 msgid ""
1145 "Override Mandatory Access Control (MAC).  Implemented for the Smack Linux "
1146 "Security Module (LSM)."
1147 msgstr ""
1148 "強制アクセス制御 (MAC) を上書きする。 Smack Linux Security Module (LSM) 用に"
1149 "実装されている。"
1150
1151 #. type: TP
1152 #: build/C/man7/capabilities.7:169
1153 #, no-wrap
1154 msgid "B<CAP_MAC_OVERRIDE> (since Linux 2.6.25)"
1155 msgstr "B<CAP_MAC_OVERRIDE> (Linux 2.6.25 以降)"
1156
1157 #. type: Plain text
1158 #: build/C/man7/capabilities.7:173
1159 msgid ""
1160 "Allow MAC configuration or state changes.  Implemented for the Smack LSM."
1161 msgstr "MAC の設定や状態を変更する。 Smack LSM 用に実装されている。"
1162
1163 #. type: TP
1164 #: build/C/man7/capabilities.7:173
1165 #, no-wrap
1166 msgid "B<CAP_MKNOD> (since Linux 2.4)"
1167 msgstr "B<CAP_MKNOD> (Linux 2.4 以降)"
1168
1169 #. type: Plain text
1170 #: build/C/man7/capabilities.7:177
1171 msgid "Create special files using B<mknod>(2)."
1172 msgstr ""
1173 "(Linux 2.4 以降)  B<mknod>(2)  を使用してスペシャルファイルを作成する。"
1174
1175 #. type: TP
1176 #: build/C/man7/capabilities.7:177
1177 #, no-wrap
1178 msgid "B<CAP_NET_ADMIN>"
1179 msgstr "B<CAP_NET_ADMIN>"
1180
1181 #. type: Plain text
1182 #: build/C/man7/capabilities.7:180
1183 msgid "Perform various network-related operations:"
1184 msgstr ""
1185
1186 #. type: Plain text
1187 #: build/C/man7/capabilities.7:184
1188 msgid "interface configuration;"
1189 msgstr ""
1190
1191 #. type: Plain text
1192 #: build/C/man7/capabilities.7:186
1193 msgid "administration of IP firewall, masquerading, and accounting"
1194 msgstr ""
1195
1196 #. type: Plain text
1197 #: build/C/man7/capabilities.7:188
1198 msgid "modify routing tables;"
1199 msgstr ""
1200
1201 #. type: Plain text
1202 #: build/C/man7/capabilities.7:190
1203 msgid "bind to any address for transparent proxying;"
1204 msgstr ""
1205
1206 #. type: Plain text
1207 #: build/C/man7/capabilities.7:192
1208 msgid "set type-of-service (TOS)"
1209 msgstr ""
1210
1211 #. type: Plain text
1212 #: build/C/man7/capabilities.7:194
1213 msgid "clear driver statistics;"
1214 msgstr ""
1215
1216 #. type: Plain text
1217 #: build/C/man7/capabilities.7:196
1218 msgid "set promiscuous mode;"
1219 msgstr ""
1220
1221 #. type: Plain text
1222 #: build/C/man7/capabilities.7:198
1223 msgid "enabling multicasting;"
1224 msgstr ""
1225
1226 #. type: Plain text
1227 #: build/C/man7/capabilities.7:209
1228 msgid ""
1229 "use B<setsockopt>(2)  to set the following socket options: B<SO_DEBUG>, "
1230 "B<SO_MARK>, B<SO_PRIORITY> (for a priority outside the range 0 to 6), "
1231 "B<SO_RCVBUFFORCE>, and B<SO_SNDBUFFORCE>."
1232 msgstr ""
1233
1234 #. type: TP
1235 #: build/C/man7/capabilities.7:211
1236 #, no-wrap
1237 msgid "B<CAP_NET_BIND_SERVICE>"
1238 msgstr "B<CAP_NET_BIND_SERVICE>"
1239
1240 #. type: Plain text
1241 #: build/C/man7/capabilities.7:215
1242 msgid ""
1243 "Bind a socket to Internet domain privileged ports (port numbers less than "
1244 "1024)."
1245 msgstr ""
1246 "インターネットドメインの特権ポート (ポート番号が 1024 番未満)  をバインドでき"
1247 "る。"
1248
1249 #. type: TP
1250 #: build/C/man7/capabilities.7:215
1251 #, no-wrap
1252 msgid "B<CAP_NET_BROADCAST>"
1253 msgstr "B<CAP_NET_BROADCAST>"
1254
1255 #. type: Plain text
1256 #: build/C/man7/capabilities.7:218
1257 msgid "(Unused)  Make socket broadcasts, and listen to multicasts."
1258 msgstr ""
1259 "(未使用) ソケットのブロードキャストと、マルチキャストの待ち受けを行う。"
1260
1261 #. type: TP
1262 #: build/C/man7/capabilities.7:218
1263 #, no-wrap
1264 msgid "B<CAP_NET_RAW>"
1265 msgstr "B<CAP_NET_RAW>"
1266
1267 #. type: Plain text
1268 #: build/C/man7/capabilities.7:224
1269 msgid "use RAW and PACKET sockets;"
1270 msgstr "RAW ソケットと PACKET ソケットを使用する。"
1271
1272 #. type: Plain text
1273 #: build/C/man7/capabilities.7:226
1274 msgid "bind to any address for transparent proxying."
1275 msgstr ""
1276
1277 #. type: TP
1278 #: build/C/man7/capabilities.7:229
1279 #, no-wrap
1280 msgid "B<CAP_SETGID>"
1281 msgstr "B<CAP_SETGID>"
1282
1283 #. type: Plain text
1284 #: build/C/man7/capabilities.7:233
1285 msgid ""
1286 "Make arbitrary manipulations of process GIDs and supplementary GID list; "
1287 "forge GID when passing socket credentials via UNIX domain sockets."
1288 msgstr ""
1289 "プロセスの GID と追加の GID リストに対する任意の操作を行う。 UNIX ドメインソ"
1290 "ケット経由でソケットの資格情報 (credential) を渡す際に 偽の GID を渡すことが"
1291 "できる。"
1292
1293 #. type: TP
1294 #: build/C/man7/capabilities.7:233
1295 #, no-wrap
1296 msgid "B<CAP_SETFCAP> (since Linux 2.6.24)"
1297 msgstr "B<CAP_SETFCAP> (Linux 2.6.24 以降)"
1298
1299 #. type: Plain text
1300 #: build/C/man7/capabilities.7:236
1301 msgid "Set file capabilities."
1302 msgstr "ファイルケーパビリティを設定する。"
1303
1304 #. type: TP
1305 #: build/C/man7/capabilities.7:236
1306 #, no-wrap
1307 msgid "B<CAP_SETPCAP>"
1308 msgstr "B<CAP_SETPCAP>"
1309
1310 #. type: Plain text
1311 #: build/C/man7/capabilities.7:247
1312 msgid ""
1313 "If file capabilities are not supported: grant or remove any capability in "
1314 "the caller's permitted capability set to or from any other process.  (This "
1315 "property of B<CAP_SETPCAP> is not available when the kernel is configured to "
1316 "support file capabilities, since B<CAP_SETPCAP> has entirely different "
1317 "semantics for such kernels.)"
1318 msgstr ""
1319 "ファイルケーパビリティがサポートされていない場合: 呼び出し元が許可されている"
1320 "ケーパビリティセットに含まれる任意のケーパビリティを、 他のプロセスに付与した"
1321 "り、削除したりできる。 (カーネルがファイルケーパビリティをサポートしている場"
1322 "合、 B<CAP_SETPCAP> はこの役割を持たない。 なぜなら、ファイルケーパビリティを"
1323 "サポートしているカーネルでは B<CAP_SETPCAP> は全く別の意味を持つからである。)"
1324
1325 #. type: Plain text
1326 #: build/C/man7/capabilities.7:257
1327 msgid ""
1328 "If file capabilities are supported: add any capability from the calling "
1329 "thread's bounding set to its inheritable set; drop capabilities from the "
1330 "bounding set (via B<prctl>(2)  B<PR_CAPBSET_DROP>); make changes to the "
1331 "I<securebits> flags."
1332 msgstr ""
1333 "ファイルケーパビリティがサポートされている場合: 呼び出し元スレッドのバウン"
1334 "ディングセットの任意のケーパビリティを 自身の継承可能ケーパビリティセットに追"
1335 "加できる。 (B<prctl>(2)  B<PR_CAPBSET_DROP> を使って)  バウンディングセットか"
1336 "らケーパビリティを削除できる。 I<securebits> フラグを変更できる。"
1337
1338 #. type: TP
1339 #: build/C/man7/capabilities.7:257
1340 #, no-wrap
1341 msgid "B<CAP_SETUID>"
1342 msgstr "B<CAP_SETUID>"
1343
1344 #.  FIXME CAP_SETUID also an effect in exec(); document this.
1345 #. type: Plain text
1346 #: build/C/man7/capabilities.7:266
1347 msgid ""
1348 "Make arbitrary manipulations of process UIDs (B<setuid>(2), B<setreuid>(2), "
1349 "B<setresuid>(2), B<setfsuid>(2)); make forged UID when passing socket "
1350 "credentials via UNIX domain sockets."
1351 msgstr ""
1352 "プロセスの UID に対する任意の操作 (B<setuid>(2), B<setreuid>(2), B<setresuid>"
1353 "(2), B<setfsuid>(2))  を行う。 UNIX ドメインソケット経由でソケットの資格情報 "
1354 "(credential) を渡す際に 偽の UID を渡すことができる。"
1355
1356 #. type: TP
1357 #: build/C/man7/capabilities.7:266
1358 #, no-wrap
1359 msgid "B<CAP_SYS_ADMIN>"
1360 msgstr "B<CAP_SYS_ADMIN>"
1361
1362 #. type: Plain text
1363 #: build/C/man7/capabilities.7:280
1364 msgid ""
1365 "Perform a range of system administration operations including: B<quotactl>"
1366 "(2), B<mount>(2), B<umount>(2), B<swapon>(2), B<swapoff>(2), B<sethostname>"
1367 "(2), and B<setdomainname>(2);"
1368 msgstr ""
1369 "以下のシステム管理用の操作を実行する: B<quotactl>(2), B<mount>(2), B<umount>"
1370 "(2), B<swapon>(2), B<swapoff>(2), B<sethostname>(2), B<setdomainname>(2)."
1371
1372 #. type: Plain text
1373 #: build/C/man7/capabilities.7:286
1374 msgid ""
1375 "perform privileged B<syslog>(2)  operations (since Linux 2.6.37, "
1376 "B<CAP_SYSLOG> should be used to permit such operations);"
1377 msgstr ""
1378
1379 #. type: Plain text
1380 #: build/C/man7/capabilities.7:291
1381 msgid "perform B<VM86_REQUEST_IRQ> B<vm86>(2)  command;"
1382 msgstr ""
1383
1384 #. type: Plain text
1385 #: build/C/man7/capabilities.7:297
1386 msgid ""
1387 "perform B<IPC_SET> and B<IPC_RMID> operations on arbitrary System V IPC "
1388 "objects;"
1389 msgstr ""
1390 "任意の System V IPC オブジェクトに対する B<IPC_SET> と B<IPC_RMID> 操作を実行"
1391 "する。"
1392
1393 #. type: Plain text
1394 #: build/C/man7/capabilities.7:304
1395 msgid ""
1396 "perform operations on I<trusted> and I<security> Extended Attributes (see "
1397 "B<attr>(5));"
1398 msgstr ""
1399 "拡張属性 I<trusted> と I<security> に対する操作を実行する (B<attr>(5)  参"
1400 "照)。"
1401
1402 #. type: Plain text
1403 #: build/C/man7/capabilities.7:307
1404 msgid "use B<lookup_dcookie>(2);"
1405 msgstr "B<lookup_dcookie>(2)  を呼び出す。"
1406
1407 #. type: Plain text
1408 #: build/C/man7/capabilities.7:315
1409 msgid ""
1410 "use B<ioprio_set>(2)  to assign B<IOPRIO_CLASS_RT> and (before Linux "
1411 "2.6.25)  B<IOPRIO_CLASS_IDLE> I/O scheduling classes;"
1412 msgstr ""
1413 "B<ioprio_set>(2)  を使って I/O スケジューリングクラス B<IOPRIO_CLASS_RT>, "
1414 "B<IOPRIO_CLASS_IDLE> を割り当てる (B<IOPRIO_CLASS_IDLE> は Linux 2.6.25 より"
1415 "前のバージョンのみ)。"
1416
1417 #. type: Plain text
1418 #: build/C/man7/capabilities.7:317
1419 msgid "forge UID when passing socket credentials;"
1420 msgstr "ソケットの資格情報 (credential) を渡す際に偽の UID を渡す。"
1421
1422 #. type: Plain text
1423 #: build/C/man7/capabilities.7:326
1424 msgid ""
1425 "exceed I</proc/sys/fs/file-max>, the system-wide limit on the number of open "
1426 "files, in system calls that open files (e.g., B<accept>(2), B<execve>(2), "
1427 "B<open>(2), B<pipe>(2));"
1428 msgstr ""
1429 "ファイルをオープンするシステムコール (例えば B<accept>(2), B<execve>(2), "
1430 "B<open>(2), B<pipe>(2))  でシステム全体でオープンできるファイル数の上限 I</"
1431 "proc/sys/fs/file-max> を超過する。"
1432
1433 #. type: Plain text
1434 #: build/C/man7/capabilities.7:333
1435 msgid ""
1436 "employ B<CLONE_*> flags that create new namespaces with B<clone>(2)  and "
1437 "B<unshare>(2);"
1438 msgstr ""
1439 "B<clone>(2) と B<unshare>(2) で新しい名前空間を作成する B<CLONE_*> \n"
1440 "フラグを利用する。"
1441
1442 #. type: Plain text
1443 #: build/C/man7/capabilities.7:336
1444 msgid "call B<perf_event_open>(2);"
1445 msgstr ""
1446
1447 #. type: Plain text
1448 #: build/C/man7/capabilities.7:340
1449 msgid "access privileged I<perf> event information;"
1450 msgstr ""
1451
1452 #. type: Plain text
1453 #: build/C/man7/capabilities.7:343
1454 msgid "call B<setns>(2);"
1455 msgstr ""
1456
1457 #. type: Plain text
1458 #: build/C/man7/capabilities.7:346
1459 msgid "call B<fanotify_init>(2);"
1460 msgstr ""
1461
1462 #. type: Plain text
1463 #: build/C/man7/capabilities.7:353
1464 msgid "perform B<KEYCTL_CHOWN> and B<KEYCTL_SETPERM> B<keyctl>(2)  operations;"
1465 msgstr "B<keyctl>(2)  の B<KEYCTL_CHOWN> と B<KEYCTL_SETPERM> 操作を実行する。"
1466
1467 #. type: Plain text
1468 #: build/C/man7/capabilities.7:358
1469 msgid "perform B<madvise>(2)  B<MADV_HWPOISON> operation;"
1470 msgstr "B<madvise>(2)  の B<MADV_HWPOISON> 操作を実行する。"
1471
1472 #. type: Plain text
1473 #: build/C/man7/capabilities.7:364
1474 msgid ""
1475 "employ the B<TIOCSTI> B<ioctl>(2)  to insert characters into the input queue "
1476 "of a terminal other than the caller's controlling terminal."
1477 msgstr ""
1478
1479 #. type: Plain text
1480 #: build/C/man7/capabilities.7:368
1481 msgid "employ the obsolete B<nfsservctl>(2)  system call;"
1482 msgstr "廃止予定の B<nfsservctl>(2) システムコールを使用する。"
1483
1484 #. type: Plain text
1485 #: build/C/man7/capabilities.7:372
1486 msgid "employ the obsolete B<bdflush>(2)  system call;"
1487 msgstr "廃止予定の B<bdflush>(2) システムコールを使用する。"
1488
1489 #. type: Plain text
1490 #: build/C/man7/capabilities.7:376
1491 msgid "perform various privileged block-device B<ioctl>(2)  operations;"
1492 msgstr ""
1493 "特権が必要なブロックデバイスに対する各種の B<ioctl>(2) 操作を\n"
1494 "実行する。"
1495
1496 #. type: Plain text
1497 #: build/C/man7/capabilities.7:380
1498 msgid "perform various privileged file-system B<ioctl>(2)  operations;"
1499 msgstr ""
1500 "特権が必要なファイルシステムに対する各種の B<ioctl>(2) 操作を\n"
1501 "実行する。"
1502
1503 #. type: Plain text
1504 #: build/C/man7/capabilities.7:382
1505 msgid "perform administrative operations on many device drivers."
1506 msgstr "多くのデバイスドライバに対する管理命令を実行する。"
1507
1508 #. type: TP
1509 #: build/C/man7/capabilities.7:384
1510 #, no-wrap
1511 msgid "B<CAP_SYS_BOOT>"
1512 msgstr "B<CAP_SYS_BOOT>"
1513
1514 #. type: Plain text
1515 #: build/C/man7/capabilities.7:390
1516 msgid "Use B<reboot>(2)  and B<kexec_load>(2)."
1517 msgstr "B<reboot>(2)  と B<kexec_load>(2)  を呼び出す。"
1518
1519 #. type: TP
1520 #: build/C/man7/capabilities.7:390
1521 #, no-wrap
1522 msgid "B<CAP_SYS_CHROOT>"
1523 msgstr "B<CAP_SYS_CHROOT>"
1524
1525 #. type: Plain text
1526 #: build/C/man7/capabilities.7:394
1527 msgid "Use B<chroot>(2)."
1528 msgstr "B<chroot>(2).  を呼び出す。"
1529
1530 #. type: TP
1531 #: build/C/man7/capabilities.7:394
1532 #, no-wrap
1533 msgid "B<CAP_SYS_MODULE>"
1534 msgstr "B<CAP_SYS_MODULE>"
1535
1536 #. type: Plain text
1537 #: build/C/man7/capabilities.7:403
1538 msgid ""
1539 "Load and unload kernel modules (see B<init_module>(2)  and B<delete_module>"
1540 "(2)); in kernels before 2.6.25: drop capabilities from the system-wide "
1541 "capability bounding set."
1542 msgstr ""
1543 "カーネルモジュールのロード、アンロードを行う (B<init_module>(2)  と "
1544 "B<delete_module>(2)  を参照のこと)。 バージョン 2.6.25 より前のカーネルで、 "
1545 "システム全体のケーパビリティバウンディングセット (capability bounding set)  "
1546 "からケーパビリティを外す。"
1547
1548 #. type: TP
1549 #: build/C/man7/capabilities.7:403
1550 #, no-wrap
1551 msgid "B<CAP_SYS_NICE>"
1552 msgstr "B<CAP_SYS_NICE>"
1553
1554 #. type: Plain text
1555 #: build/C/man7/capabilities.7:412
1556 msgid ""
1557 "Raise process nice value (B<nice>(2), B<setpriority>(2))  and change the "
1558 "nice value for arbitrary processes;"
1559 msgstr ""
1560 "プロセスの nice 値の引き上げ (B<nice>(2), B<setpriority>(2))  や、任意のプロ"
1561 "セスの nice 値の変更を行う。"
1562
1563 #. type: Plain text
1564 #: build/C/man7/capabilities.7:417
1565 msgid ""
1566 "set real-time scheduling policies for calling process, and set scheduling "
1567 "policies and priorities for arbitrary processes (B<sched_setscheduler>(2), "
1568 "B<sched_setparam>(2));"
1569 msgstr ""
1570 "呼び出し元プロセスに対するリアルタイムスケジューリングポリシーと、 任意のプロ"
1571 "セスに対するスケジューリングポリシーと優先度を設定する (B<sched_setscheduler>"
1572 "(2), B<sched_setparam>(2))。"
1573
1574 #. type: Plain text
1575 #: build/C/man7/capabilities.7:420
1576 msgid "set CPU affinity for arbitrary processes (B<sched_setaffinity>(2));"
1577 msgstr ""
1578 "任意のプロセスに対する CPU affinity を設定できる (B<sched_setaffinity>(2))。"
1579
1580 #. type: Plain text
1581 #: build/C/man7/capabilities.7:423
1582 msgid ""
1583 "set I/O scheduling class and priority for arbitrary processes (B<ioprio_set>"
1584 "(2));"
1585 msgstr ""
1586 "任意のプロセスに対して I/O スケジューリングクラスと優先度を設定できる "
1587 "(B<ioprio_set>(2))。"
1588
1589 #.  FIXME CAP_SYS_NICE also has the following effect for
1590 #.  migrate_pages(2):
1591 #.      do_migrate_pages(mm, &old, &new,
1592 #.          capable(CAP_SYS_NICE) ? MPOL_MF_MOVE_ALL : MPOL_MF_MOVE);
1593 #. type: Plain text
1594 #: build/C/man7/capabilities.7:432
1595 msgid ""
1596 "apply B<migrate_pages>(2)  to arbitrary processes and allow processes to be "
1597 "migrated to arbitrary nodes;"
1598 msgstr ""
1599 "B<migrate_pages>(2)  を任意のプロセスに適用し、プロセスを任意のノードに移動す"
1600 "る。"
1601
1602 #. type: Plain text
1603 #: build/C/man7/capabilities.7:436
1604 msgid "apply B<move_pages>(2)  to arbitrary processes;"
1605 msgstr "B<move_pages>(2)  を任意のプロセスに対して行う。"
1606
1607 #. type: Plain text
1608 #: build/C/man7/capabilities.7:443
1609 msgid ""
1610 "use the B<MPOL_MF_MOVE_ALL> flag with B<mbind>(2)  and B<move_pages>(2)."
1611 msgstr ""
1612 "B<mbind>(2)  と B<move_pages>(2)  で B<MPOL_MF_MOVE_ALL> フラグを使用する。"
1613
1614 #. type: TP
1615 #: build/C/man7/capabilities.7:445
1616 #, no-wrap
1617 msgid "B<CAP_SYS_PACCT>"
1618 msgstr "B<CAP_SYS_PACCT>"
1619
1620 #. type: Plain text
1621 #: build/C/man7/capabilities.7:449
1622 msgid "Use B<acct>(2)."
1623 msgstr "B<acct>(2)  を呼び出す。"
1624
1625 #. type: TP
1626 #: build/C/man7/capabilities.7:449
1627 #, no-wrap
1628 msgid "B<CAP_SYS_PTRACE>"
1629 msgstr "B<CAP_SYS_PTRACE>"
1630
1631 #. type: Plain text
1632 #: build/C/man7/capabilities.7:456
1633 msgid ""
1634 "Trace arbitrary processes using B<ptrace>(2); apply B<get_robust_list>(2)  "
1635 "to arbitrary processes."
1636 msgstr ""
1637 "B<ptrace>(2)  を使って任意のプロセスをトレースする。 任意のプロセスに "
1638 "B<get_robust_list>(2)  を適用する。"
1639
1640 #. type: TP
1641 #: build/C/man7/capabilities.7:456
1642 #, no-wrap
1643 msgid "B<CAP_SYS_RAWIO>"
1644 msgstr "B<CAP_SYS_RAWIO>"
1645
1646 #. type: Plain text
1647 #: build/C/man7/capabilities.7:468
1648 msgid ""
1649 "Perform I/O port operations (B<iopl>(2)  and B<ioperm>(2)); access I</proc/"
1650 "kcore>; employ the B<FIBMAP> B<ioctl>(2)  operation."
1651 msgstr ""
1652 "I/O ポート操作を実行する (B<iopl>(2)、 B<ioperm>(2))。\n"
1653 "I</proc/kcore> にアクセスする。\n"
1654 "B<FIBMAP> B<ioctl>(2) 操作を使用する。"
1655
1656 #. type: TP
1657 #: build/C/man7/capabilities.7:468
1658 #, no-wrap
1659 msgid "B<CAP_SYS_RESOURCE>"
1660 msgstr "B<CAP_SYS_RESOURCE>"
1661
1662 #. type: Plain text
1663 #: build/C/man7/capabilities.7:474
1664 msgid "Use reserved space on ext2 file systems;"
1665 msgstr "ext2 ファイルシステム上の予約されている領域を使用する。"
1666
1667 #. type: Plain text
1668 #: build/C/man7/capabilities.7:478
1669 msgid "make B<ioctl>(2)  calls controlling ext3 journaling;"
1670 msgstr "ext3 のジャーナル機能を制御する B<ioctl>(2)  を使用する。"
1671
1672 #. type: Plain text
1673 #: build/C/man7/capabilities.7:480
1674 msgid "override disk quota limits;"
1675 msgstr "ディスク quota の上限を上書きする。"
1676
1677 #. type: Plain text
1678 #: build/C/man7/capabilities.7:483
1679 msgid "increase resource limits (see B<setrlimit>(2));"
1680 msgstr "リソース上限を増やす (B<setrlimit>(2))。"
1681
1682 #. type: Plain text
1683 #: build/C/man7/capabilities.7:487
1684 msgid "override B<RLIMIT_NPROC> resource limit;"
1685 msgstr "B<RLIMIT_NPROC> リソース制限を上書きする。"
1686
1687 #. type: Plain text
1688 #: build/C/man7/capabilities.7:489
1689 msgid "override maximum number of consoles on console allocation;"
1690 msgstr ""
1691
1692 #. type: Plain text
1693 #: build/C/man7/capabilities.7:491
1694 msgid "override maximum number of keymaps;"
1695 msgstr ""
1696
1697 #. type: Plain text
1698 #: build/C/man7/capabilities.7:493
1699 msgid "allow more than 64hz interrupts from the real-time clock;"
1700 msgstr ""
1701
1702 #. type: Plain text
1703 #: build/C/man7/capabilities.7:502
1704 msgid ""
1705 "raise I<msg_qbytes> limit for a System V message queue above the limit in I</"
1706 "proc/sys/kernel/msgmnb> (see B<msgop>(2)  and B<msgctl>(2));"
1707 msgstr ""
1708 "メッセージキューに関する上限 I<msg_qbytes> を \n"
1709 "I</proc/sys/kernel/msgmnb> に指定されている上限よりも大きく設定する\n"
1710 "(B<msgop>(2) と B<msgctl>(2) 参照)。"
1711
1712 #. type: Plain text
1713 #: build/C/man7/capabilities.7:509
1714 msgid ""
1715 "override the I</proc/sys/fs/pipe-size-max> limit when setting the capacity "
1716 "of a pipe using the B<F_SETPIPE_SZ> B<fcntl>(2)  command."
1717 msgstr ""
1718
1719 #. type: Plain text
1720 #: build/C/man7/capabilities.7:514
1721 msgid ""
1722 "use B<F_SETPIPE_SZ> to increase the capacity of a pipe above the limit "
1723 "specified by I</proc/sys/fs/pipe-max-size>;"
1724 msgstr ""
1725 "I</proc/sys/fs/pipe-max-size> に指定されている上限を超えてパイプの容量\n"
1726 "を増やすのに B<F_SETPIPE_SZ> を使用する。"
1727
1728 #. type: Plain text
1729 #: build/C/man7/capabilities.7:519
1730 msgid ""
1731 "override I</proc/sys/fs/mqueue/queues_max> limit when creating POSIX message "
1732 "queues (see B<mq_overview>(7));"
1733 msgstr ""
1734
1735 #. type: Plain text
1736 #: build/C/man7/capabilities.7:524
1737 msgid "employ B<prctl>(2)  B<PR_SET_MM> operation."
1738 msgstr ""
1739
1740 #. type: TP
1741 #: build/C/man7/capabilities.7:526
1742 #, no-wrap
1743 msgid "B<CAP_SYS_TIME>"
1744 msgstr "B<CAP_SYS_TIME>"
1745
1746 #. type: Plain text
1747 #: build/C/man7/capabilities.7:533
1748 msgid ""
1749 "Set system clock (B<settimeofday>(2), B<stime>(2), B<adjtimex>(2)); set real-"
1750 "time (hardware) clock."
1751 msgstr ""
1752 "システムクロックを変更する (B<settimeofday>(2), B<stime>(2), B<adjtimex>"
1753 "(2))。 リアルタイム (ハードウェア) クロックを変更する。"
1754
1755 #. type: TP
1756 #: build/C/man7/capabilities.7:533
1757 #, no-wrap
1758 msgid "B<CAP_SYS_TTY_CONFIG>"
1759 msgstr "B<CAP_SYS_TTY_CONFIG>"
1760
1761 #. type: Plain text
1762 #: build/C/man7/capabilities.7:540
1763 msgid ""
1764 "Use B<vhangup>(2); employ various privileged B<ioctl>(2)  operations on "
1765 "virtual terminals."
1766 msgstr ""
1767
1768 #. type: TP
1769 #: build/C/man7/capabilities.7:540
1770 #, no-wrap
1771 msgid "B<CAP_SYSLOG> (since Linux 2.6.37)"
1772 msgstr "B<CAP_SYSLOG> (Linux 2.6.37 以降)"
1773
1774 #. type: Plain text
1775 #: build/C/man7/capabilities.7:548
1776 msgid ""
1777 "Perform privileged B<syslog>(2)  operations.  See B<syslog>(2)  for "
1778 "information on which operations require privilege."
1779 msgstr ""
1780
1781 #. type: TP
1782 #: build/C/man7/capabilities.7:548
1783 #, no-wrap
1784 msgid "B<CAP_WAKE_ALARM> (since Linux 3.0)"
1785 msgstr "B<CAP_WAKE_ALARM> (Linux 3.0 以降)"
1786
1787 #. type: Plain text
1788 #: build/C/man7/capabilities.7:556
1789 msgid ""
1790 "Trigger something that will wake up the system (set B<CLOCK_REALTIME_ALARM> "
1791 "and B<CLOCK_BOOTTIME_ALARM> timers)."
1792 msgstr ""
1793
1794 #. type: SS
1795 #: build/C/man7/capabilities.7:556
1796 #, no-wrap
1797 msgid "Past and Current Implementation"
1798 msgstr "過去と現在の実装"
1799
1800 #. type: Plain text
1801 #: build/C/man7/capabilities.7:558
1802 msgid "A full implementation of capabilities requires that:"
1803 msgstr "完全な形のケーパビリティを実装するには、以下の要件を満たす必要がある:"
1804
1805 #. type: IP
1806 #: build/C/man7/capabilities.7:558 build/C/man7/capabilities.7:701
1807 #: build/C/man7/capabilities.7:848 build/C/man7/capabilities.7:901
1808 #, no-wrap
1809 msgid "1."
1810 msgstr "1."
1811
1812 #. type: Plain text
1813 #: build/C/man7/capabilities.7:562
1814 msgid ""
1815 "For all privileged operations, the kernel must check whether the thread has "
1816 "the required capability in its effective set."
1817 msgstr ""
1818 "全ての特権操作について、カーネルはそのスレッドの実効ケーパビリティセットに 必"
1819 "要なケーパビリティがあるかを確認する。"
1820
1821 #. type: IP
1822 #: build/C/man7/capabilities.7:562 build/C/man7/capabilities.7:706
1823 #: build/C/man7/capabilities.7:854 build/C/man7/capabilities.7:907
1824 #, no-wrap
1825 msgid "2."
1826 msgstr "2."
1827
1828 #. type: Plain text
1829 #: build/C/man7/capabilities.7:565
1830 msgid ""
1831 "The kernel must provide system calls allowing a thread's capability sets to "
1832 "be changed and retrieved."
1833 msgstr ""
1834 "カーネルで、あるスレッドのケーパビリティセットを変更したり、 取得したりできる"
1835 "システムコールが提供される。"
1836
1837 #. type: IP
1838 #: build/C/man7/capabilities.7:565 build/C/man7/capabilities.7:857
1839 #: build/C/man7/capabilities.7:911
1840 #, no-wrap
1841 msgid "3."
1842 msgstr "3."
1843
1844 #. type: Plain text
1845 #: build/C/man7/capabilities.7:568
1846 msgid ""
1847 "The file system must support attaching capabilities to an executable file, "
1848 "so that a process gains those capabilities when the file is executed."
1849 msgstr ""
1850 "ファイルシステムが、実行可能ファイルにケーパビリティを付与でき、ファイル 実行"
1851 "時にそのケーパビリティをプロセスが取得できるような機能をサポートする。"
1852
1853 #. type: Plain text
1854 #: build/C/man7/capabilities.7:572
1855 msgid ""
1856 "Before kernel 2.6.24, only the first two of these requirements are met; "
1857 "since kernel 2.6.24, all three requirements are met."
1858 msgstr ""
1859 "カーネル 2.6.24 より前では、最初の 2つの要件のみが満たされている。 カーネル "
1860 "2.6.24 以降では、3つの要件すべてが満たされている。"
1861
1862 #. type: SS
1863 #: build/C/man7/capabilities.7:572
1864 #, no-wrap
1865 msgid "Thread Capability Sets"
1866 msgstr "スレッドケーパビリティセット"
1867
1868 #. type: Plain text
1869 #: build/C/man7/capabilities.7:575
1870 msgid ""
1871 "Each thread has three capability sets containing zero or more of the above "
1872 "capabilities:"
1873 msgstr ""
1874 "各スレッドは以下の 3種類のケーパビリティセットを持つ。各々のケーパビリティ"
1875 "セットは 上記のケーパビリティの組み合わせである (全てのケーパビリティが無効で"
1876 "もよい)。"
1877
1878 #. type: TP
1879 #: build/C/man7/capabilities.7:575
1880 #, no-wrap
1881 msgid "I<Permitted>:"
1882 msgstr "I<許可 (permitted)>:"
1883
1884 #. type: Plain text
1885 #: build/C/man7/capabilities.7:583
1886 msgid ""
1887 "This is a limiting superset for the effective capabilities that the thread "
1888 "may assume.  It is also a limiting superset for the capabilities that may be "
1889 "added to the inheritable set by a thread that does not have the "
1890 "B<CAP_SETPCAP> capability in its effective set."
1891 msgstr ""
1892 "そのスレッドが持つことになっている実効ケーパビリティの 限定的なスーパーセット"
1893 "である。 これは、実効ケーパビリティセットに B<CAP_SETPCAP> ケーパビリティを"
1894 "持っていないスレッドが継承可能ケーパビリティセットに 追加可能なケーパビリティ"
1895 "の限定的なスーパーセットでもある。"
1896
1897 #. type: Plain text
1898 #: build/C/man7/capabilities.7:589
1899 msgid ""
1900 "If a thread drops a capability from its permitted set, it can never "
1901 "reacquire that capability (unless it B<execve>(2)s either a set-user-ID-root "
1902 "program, or a program whose associated file capabilities grant that "
1903 "capability)."
1904 msgstr ""
1905 "許可ケーパビリティセットから削除してしまったケーパビリティは、 (set-user-ID-"
1906 "root プログラムか、 そのケーパビリティをファイルケーパビリティで許可している"
1907 "プログラムを B<execve>(2)  しない限りは) もう一度獲得することはできない。"
1908
1909 #. type: TP
1910 #: build/C/man7/capabilities.7:589
1911 #, no-wrap
1912 msgid "I<Inheritable>:"
1913 msgstr "I<継承可能 (inheritable)>:"
1914
1915 #. type: Plain text
1916 #: build/C/man7/capabilities.7:596
1917 msgid ""
1918 "This is a set of capabilities preserved across an B<execve>(2).  It provides "
1919 "a mechanism for a process to assign capabilities to the permitted set of the "
1920 "new program during an B<execve>(2)."
1921 msgstr ""
1922 "B<execve>(2)  を前後で保持されるケーパビリティセットである。 この仕組みを使う"
1923 "ことで、あるプロセスが B<execve>(2)  を行う際に新しいプログラムの許可ケーパビ"
1924 "リティセットとして 割り当てるケーパビリティを指定することができる。"
1925
1926 #. type: TP
1927 #: build/C/man7/capabilities.7:596 build/C/man7/capabilities.7:638
1928 #, no-wrap
1929 msgid "I<Effective>:"
1930 msgstr "I<実効 (effective)>:"
1931
1932 #. type: Plain text
1933 #: build/C/man7/capabilities.7:600
1934 msgid ""
1935 "This is the set of capabilities used by the kernel to perform permission "
1936 "checks for the thread."
1937 msgstr ""
1938 "カーネルがスレッドの権限 (permission) をチェックするときに 使用するケーパビリ"
1939 "ティセットである。"
1940
1941 #. type: Plain text
1942 #: build/C/man7/capabilities.7:606
1943 msgid ""
1944 "A child created via B<fork>(2)  inherits copies of its parent's capability "
1945 "sets.  See below for a discussion of the treatment of capabilities during "
1946 "B<execve>(2)."
1947 msgstr ""
1948 "B<fork>(2)  で作成される子プロセスは、親のケーパビリティセットのコピーを継承"
1949 "する。 B<execve>(2)  中のケーパビリティの扱いについては下記を参照のこと。"
1950
1951 #. type: Plain text
1952 #: build/C/man7/capabilities.7:611
1953 msgid ""
1954 "Using B<capset>(2), a thread may manipulate its own capability sets (see "
1955 "below)."
1956 msgstr ""
1957 "B<capset>(2)  を使うと、プロセスは自分自身のケーパビリティセット を操作するこ"
1958 "とができる (下記参照)。"
1959
1960 #. type: SS
1961 #: build/C/man7/capabilities.7:611
1962 #, no-wrap
1963 msgid "File Capabilities"
1964 msgstr "ファイルケーパビリティ"
1965
1966 #. type: Plain text
1967 #: build/C/man7/capabilities.7:626
1968 msgid ""
1969 "Since kernel 2.6.24, the kernel supports associating capability sets with an "
1970 "executable file using B<setcap>(8).  The file capability sets are stored in "
1971 "an extended attribute (see B<setxattr>(2))  named I<security.capability>.  "
1972 "Writing to this extended attribute requires the B<CAP_SETFCAP> capability.  "
1973 "The file capability sets, in conjunction with the capability sets of the "
1974 "thread, determine the capabilities of a thread after an B<execve>(2)."
1975 msgstr ""
1976 "カーネル 2.6.24 以降では、 B<setcap>(8)  を使って実行ファイルにケーパビリティ"
1977 "セットを対応付けることができる。 ファイルケーパビリティセットは I<security."
1978 "capability> という名前の拡張属性に保存される (B<setxattr>(2)  参照)。この拡張"
1979 "属性への書き込みには B<CAP_SETFCAP> ケーパビリティが必要である。 ファイルケー"
1980 "パビリティセットとスレッドのケーパビリティセットの両方が 考慮され、 B<execve>"
1981 "(2)  後のスレッドのケーパビリティセットが決定される。"
1982
1983 #. type: Plain text
1984 #: build/C/man7/capabilities.7:628
1985 msgid "The three file capability sets are:"
1986 msgstr "3 つのファイルケーパビリティセットが定義されている。"
1987
1988 #. type: TP
1989 #: build/C/man7/capabilities.7:628
1990 #, no-wrap
1991 msgid "I<Permitted> (formerly known as I<forced>):"
1992 msgstr "I<許可 (Permitted)> (以前のI<強制 (Forced)>):"
1993
1994 #. type: Plain text
1995 #: build/C/man7/capabilities.7:632
1996 msgid ""
1997 "These capabilities are automatically permitted to the thread, regardless of "
1998 "the thread's inheritable capabilities."
1999 msgstr ""
2000 "スレッドの継承可能ケーパビリティに関わらず、そのスレッドに自動的に 認められる"
2001 "ケーパビリティ。"
2002
2003 #. type: TP
2004 #: build/C/man7/capabilities.7:632
2005 #, no-wrap
2006 msgid "I<Inheritable> (formerly known as I<allowed>):"
2007 msgstr "I<継承可能 (Inheritable)> (以前の I<許容 (Allowed)>):"
2008
2009 #. type: Plain text
2010 #: build/C/man7/capabilities.7:638
2011 msgid ""
2012 "This set is ANDed with the thread's inheritable set to determine which "
2013 "inheritable capabilities are enabled in the permitted set of the thread "
2014 "after the B<execve>(2)."
2015 msgstr ""
2016 "このセットと、スレッドの継承可能ケーパビリティセットとの 論理積 (AND) がとら"
2017 "れ、 B<execve>(2)  の後にそのスレッドの許可ケーパビリティセットで有効となる "
2018 "継承可能ケーパビリティが決定される。"
2019
2020 #. type: Plain text
2021 #: build/C/man7/capabilities.7:648
2022 msgid ""
2023 "This is not a set, but rather just a single bit.  If this bit is set, then "
2024 "during an B<execve>(2)  all of the new permitted capabilities for the thread "
2025 "are also raised in the effective set.  If this bit is not set, then after an "
2026 "B<execve>(2), none of the new permitted capabilities is in the new effective "
2027 "set."
2028 msgstr ""
2029 "これは集合ではなく、1 ビットの情報である。 このビットがセットされていると、 "
2030 "B<execve>(2)  実行中に、そのスレッドの新しい許可ケーパビリティが全て 実効ケー"
2031 "パビリティ集合においてもセットされる。 このビットがセットされていない場合、 "
2032 "B<execve>(2)  後には新しい許可ケーパビリティのどれも新しい実効ケーパビリティ"
2033 "集合 にセットされない。"
2034
2035 #. type: Plain text
2036 #: build/C/man7/capabilities.7:664
2037 msgid ""
2038 "Enabling the file effective capability bit implies that any file permitted "
2039 "or inheritable capability that causes a thread to acquire the corresponding "
2040 "permitted capability during an B<execve>(2)  (see the transformation rules "
2041 "described below) will also acquire that capability in its effective set.  "
2042 "Therefore, when assigning capabilities to a file (B<setcap>(8), "
2043 "B<cap_set_file>(3), B<cap_set_fd>(3)), if we specify the effective flag as "
2044 "being enabled for any capability, then the effective flag must also be "
2045 "specified as enabled for all other capabilities for which the corresponding "
2046 "permitted or inheritable flags is enabled."
2047 msgstr ""
2048 "ファイルの実効ケーパビリティビットを有効にするというのは、 B<execve>(2)  実行"
2049 "時に、ファイルの許可ケーパビリティと継承ケーパビリティに対応するものが スレッ"
2050 "ドの許可ケーパビリティセットとしてセットされるが、 これが実効ケーパビリティ"
2051 "セットにもセットされるということである (ケーパビリティの変換ルールは下記参"
2052 "照)。 したがって、ファイルにケーパビリティを割り当てる際 (B<setcap>(8), "
2053 "B<cap_set_file>(3), B<cap_set_fd>(3))、 いずれかのケーパビリティに対して実効"
2054 "フラグを有効と指定する場合、 許可フラグや継承可能フラグを有効にした他の全ての"
2055 "ケーパビリティ についても実効フラグを有効と指定しなければならない。"
2056
2057 #. type: SS
2058 #: build/C/man7/capabilities.7:664
2059 #, no-wrap
2060 msgid "Transformation of Capabilities During execve()"
2061 msgstr "execve() 中のケーパビリティの変換"
2062
2063 #. type: Plain text
2064 #: build/C/man7/capabilities.7:670
2065 msgid ""
2066 "During an B<execve>(2), the kernel calculates the new capabilities of the "
2067 "process using the following algorithm:"
2068 msgstr ""
2069 "B<execve>(2)  実行時に、カーネルはプロセスの新しいケーパビリティを次の アルゴ"
2070 "リズムを用いて計算する:"
2071
2072 #. type: Plain text
2073 #: build/C/man7/capabilities.7:675
2074 #, no-wrap
2075 msgid ""
2076 "P'(permitted) = (P(inheritable) & F(inheritable)) |\n"
2077 "                (F(permitted) & cap_bset)\n"
2078 msgstr ""
2079 "P'(permitted) = (P(inheritable) & F(inheritable)) |\n"
2080 "                (F(permitted) & cap_bset)\n"
2081
2082 #. type: Plain text
2083 #: build/C/man7/capabilities.7:677
2084 #, no-wrap
2085 msgid "P'(effective) = F(effective) ? P'(permitted) : 0\n"
2086 msgstr "P'(effective) = F(effective) ? P'(permitted) : 0\n"
2087
2088 #. type: Plain text
2089 #: build/C/man7/capabilities.7:679
2090 #, no-wrap
2091 msgid "P'(inheritable) = P(inheritable)    [i.e., unchanged]\n"
2092 msgstr "P'(inheritable) = P(inheritable)    [つまり、変更されない]\n"
2093
2094 #. type: Plain text
2095 #: build/C/man7/capabilities.7:683
2096 msgid "where:"
2097 msgstr "各変数の意味は以下の通り:"
2098
2099 #. type: IP
2100 #: build/C/man7/capabilities.7:684
2101 #, no-wrap
2102 msgid "P"
2103 msgstr "P"
2104
2105 #. type: Plain text
2106 #: build/C/man7/capabilities.7:687
2107 msgid "denotes the value of a thread capability set before the B<execve>(2)"
2108 msgstr "B<execve>(2)  前のスレッドのケーパビリティセットの値"
2109
2110 #. type: IP
2111 #: build/C/man7/capabilities.7:687
2112 #, no-wrap
2113 msgid "P'"
2114 msgstr "P'"
2115
2116 #. type: Plain text
2117 #: build/C/man7/capabilities.7:690
2118 msgid "denotes the value of a capability set after the B<execve>(2)"
2119 msgstr "B<execve>(2)  後のスレッドのケーパビリティセットの値"
2120
2121 #. type: IP
2122 #: build/C/man7/capabilities.7:690
2123 #, no-wrap
2124 msgid "F"
2125 msgstr "F"
2126
2127 #. type: Plain text
2128 #: build/C/man7/capabilities.7:692
2129 msgid "denotes a file capability set"
2130 msgstr "ファイルケーパビリティセットの値"
2131
2132 #. type: IP
2133 #: build/C/man7/capabilities.7:692
2134 #, no-wrap
2135 msgid "cap_bset"
2136 msgstr "cap_bset"
2137
2138 #. type: Plain text
2139 #: build/C/man7/capabilities.7:694
2140 msgid "is the value of the capability bounding set (described below)."
2141 msgstr "ケーパビリティバウンディングセットの値 (下記参照)"
2142
2143 #. type: SS
2144 #: build/C/man7/capabilities.7:696
2145 #, no-wrap
2146 msgid "Capabilities and execution of programs by root"
2147 msgstr "ケーパビリティと、ルートによるプログラムの実行"
2148
2149 #. type: Plain text
2150 #: build/C/man7/capabilities.7:701
2151 msgid ""
2152 "In order to provide an all-powerful I<root> using capability sets, during an "
2153 "B<execve>(2):"
2154 msgstr ""
2155 "B<execve>(2)  時に、ケーパビリティセットを使って、全ての権限を持った I<root> "
2156 "を実現するには、以下のようにする。"
2157
2158 #. type: Plain text
2159 #: build/C/man7/capabilities.7:706
2160 msgid ""
2161 "If a set-user-ID-root program is being executed, or the real user ID of the "
2162 "process is 0 (root)  then the file inheritable and permitted sets are "
2163 "defined to be all ones (i.e., all capabilities enabled)."
2164 msgstr ""
2165 "set-user-ID-root プログラムが実行される場合、 またはプロセスの実ユーザ ID が "
2166 "0 (root) の場合、 ファイルの継承可能セットと許可セットを全て 1 (全てのケーパ"
2167 "ビリティが有効) に定義する。"
2168
2169 #. type: Plain text
2170 #: build/C/man7/capabilities.7:709
2171 msgid ""
2172 "If a set-user-ID-root program is being executed, then the file effective bit "
2173 "is defined to be one (enabled)."
2174 msgstr ""
2175 "set-user-ID-root プログラムが実行される場合、 ファイルの実効ケーパビリティ"
2176 "ビットを 1 (enabled) に定義する。"
2177
2178 #.  If a process with real UID 0, and nonzero effective UID does an
2179 #.  exec(), then it gets all capabilities in its
2180 #.  permitted set, and no effective capabilities
2181 #. type: Plain text
2182 #: build/C/man7/capabilities.7:724
2183 msgid ""
2184 "The upshot of the above rules, combined with the capabilities "
2185 "transformations described above, is that when a process B<execve>(2)s a set-"
2186 "user-ID-root program, or when a process with an effective UID of 0 B<execve>"
2187 "(2)s a program, it gains all capabilities in its permitted and effective "
2188 "capability sets, except those masked out by the capability bounding set.  "
2189 "This provides semantics that are the same as those provided by traditional "
2190 "UNIX systems."
2191 msgstr ""
2192 "上記のルールにケーパビリティ変換を適用した結果をまとめると、 プロセスが set-"
2193 "user-ID-root プログラムを B<execve>(2)  する場合、または実効 UID が 0 のプロ"
2194 "セスがプログラムを B<execve>(2)  する場合、許可と実効のケーパビリティセットの"
2195 "全ケーパビリティ (正確には、ケーパビリティバウンディングセットによるマスクで"
2196 "除外されるもの 以外の全てのケーパビリティ) を取得するということである。 これ"
2197 "により、伝統的な UNIX システムと同じ振る舞いができるようになっている。"
2198
2199 #. type: SS
2200 #: build/C/man7/capabilities.7:724
2201 #, no-wrap
2202 msgid "Capability bounding set"
2203 msgstr "ケーパビリティ・バウンディングセット"
2204
2205 #. type: Plain text
2206 #: build/C/man7/capabilities.7:729
2207 msgid ""
2208 "The capability bounding set is a security mechanism that can be used to "
2209 "limit the capabilities that can be gained during an B<execve>(2).  The "
2210 "bounding set is used in the following ways:"
2211 msgstr ""
2212 "ケーパビリティ・バウンディングセット (capability bounding set) は、 B<execve>"
2213 "(2)  時に獲得できるケーパビリティを制限するために使われる セキュリティ機構で"
2214 "ある。 バウンディングセットは以下のように使用される。"
2215
2216 #. type: Plain text
2217 #: build/C/man7/capabilities.7:737
2218 msgid ""
2219 "During an B<execve>(2), the capability bounding set is ANDed with the file "
2220 "permitted capability set, and the result of this operation is assigned to "
2221 "the thread's permitted capability set.  The capability bounding set thus "
2222 "places a limit on the permitted capabilities that may be granted by an "
2223 "executable file."
2224 msgstr ""
2225 "B<execve>(2)  実行時に、ケーパビリティ・バウンディングセットと ファイルの許可"
2226 "ケーパビリティセットの論理和 (AND) を取ったものが、 そのスレッドの許可ケーパ"
2227 "ビリティセットに割り当てられる。 つまり、ケーパビリティ・バウンディングセット"
2228 "は、 実行ファイルが認めている許可ケーパビリティに対して 制限を課す働きをす"
2229 "る。"
2230
2231 #. type: Plain text
2232 #: build/C/man7/capabilities.7:749
2233 msgid ""
2234 "(Since Linux 2.6.25)  The capability bounding set acts as a limiting "
2235 "superset for the capabilities that a thread can add to its inheritable set "
2236 "using B<capset>(2).  This means that if a capability is not in the bounding "
2237 "set, then a thread can't add this capability to its inheritable set, even if "
2238 "it was in its permitted capabilities, and thereby cannot have this "
2239 "capability preserved in its permitted set when it B<execve>(2)s a file that "
2240 "has the capability in its inheritable set."
2241 msgstr ""
2242 "(Linux 2.6.25 以降)  ケーパビリティ・バウンディングセットは、スレッドが "
2243 "B<capset>(2)  により自身の継承可能セットに追加可能なケーパビリティの母集団を "
2244 "制限する役割を持つ。 スレッドに許可されたケーパビリティであっても、バウンディ"
2245 "ングセットに 含まれていなければ、スレッドはそのケーパビリティは自身の継承可能"
2246 "セットに 追加できず、その結果、継承可能セットにそのケーパビリティを含むファイ"
2247 "ルを B<execve>(2)  する場合、そのケーパビリティを許可セットに持ち続けることが"
2248 "できない、 ということである。"
2249
2250 #. type: Plain text
2251 #: build/C/man7/capabilities.7:756
2252 msgid ""
2253 "Note that the bounding set masks the file permitted capabilities, but not "
2254 "the inherited capabilities.  If a thread maintains a capability in its "
2255 "inherited set that is not in its bounding set, then it can still gain that "
2256 "capability in its permitted set by executing a file that has the capability "
2257 "in its inherited set."
2258 msgstr ""
2259 "バウンディングセットがマスクを行うのは、継承可能ケーパビリティではなく、 ファ"
2260 "イルの許可ケーパビリティのマスクを行う点に注意すること。 あるスレッドの継承可"
2261 "能セットにそのスレッドのバウンディングセットに 存在しないケーパビリティが含ま"
2262 "れている場合、そのスレッドは、 継承可能セットに含まれるケーパビリティを持つ"
2263 "ファイルを実行することにより、 許可セットに含まれるケーパビリティも獲得できる"
2264 "ということである。"
2265
2266 #. type: Plain text
2267 #: build/C/man7/capabilities.7:759
2268 msgid ""
2269 "Depending on the kernel version, the capability bounding set is either a "
2270 "system-wide attribute, or a per-process attribute."
2271 msgstr ""
2272 "カーネルのバージョンにより、ケーパビリティ・バウンディングセットは システム共"
2273 "通の属性の場合と、プロセス単位の属性の場合がある。"
2274
2275 #. type: Plain text
2276 #: build/C/man7/capabilities.7:761
2277 msgid "B<Capability bounding set prior to Linux 2.6.25>"
2278 msgstr "B<Linux 2.6.25 より前のケーパビリティ・バウンディングセット>"
2279
2280 #. type: Plain text
2281 #: build/C/man7/capabilities.7:769
2282 msgid ""
2283 "In kernels before 2.6.25, the capability bounding set is a system-wide "
2284 "attribute that affects all threads on the system.  The bounding set is "
2285 "accessible via the file I</proc/sys/kernel/cap-bound>.  (Confusingly, this "
2286 "bit mask parameter is expressed as a signed decimal number in I</proc/sys/"
2287 "kernel/cap-bound>.)"
2288 msgstr ""
2289 "2.6.25 より前のカーネルでは、ケーパビリティ・バウンディングセットは システム"
2290 "共通の属性で、システム上の全てのスレッドに適用される。 バウンディングセット"
2291 "は I</proc/sys/kernel/cap-bound> ファイル経由で参照できる。 (間違えやすいが、"
2292 "このビットマスク形式のパラメータは、 I</proc/sys/kernel/cap-bound> では符号付"
2293 "きの十進数で表現される。)"
2294
2295 #. type: Plain text
2296 #: build/C/man7/capabilities.7:776
2297 msgid ""
2298 "Only the B<init> process may set capabilities in the capability bounding "
2299 "set; other than that, the superuser (more precisely: programs with the "
2300 "B<CAP_SYS_MODULE> capability) may only clear capabilities from this set."
2301 msgstr ""
2302 "B<init> プロセスだけがケーパビリティ・バウンディングセットで ケーパビリティを"
2303 "セットすることができる。 それ以外では、スーパーユーザ (より正確には、 "
2304 "B<CAP_SYS_MODULE> ケーパビリティを持ったプログラム) が、 ケーパビリティ・バウ"
2305 "ンディングセットのケーパビリティのクリアが できるだけである。"
2306
2307 #. type: Plain text
2308 #: build/C/man7/capabilities.7:785
2309 msgid ""
2310 "On a standard system the capability bounding set always masks out the "
2311 "B<CAP_SETPCAP> capability.  To remove this restriction (dangerous!), modify "
2312 "the definition of B<CAP_INIT_EFF_SET> in I<include/linux/capability.h> and "
2313 "rebuild the kernel."
2314 msgstr ""
2315 "通常のシステムでは、ケーパビリティ・バウンディングセットは、 B<CAP_SETPCAP> "
2316 "が無効になっている。 この制限を取り去るには (取り去るのは危険!)、 I<include/"
2317 "linux/capability.h> 内の B<CAP_INIT_EFF_SET> の定義を修正し、カーネルを再構築"
2318 "する必要がある。"
2319
2320 #. type: Plain text
2321 #: build/C/man7/capabilities.7:789
2322 msgid ""
2323 "The system-wide capability bounding set feature was added to Linux starting "
2324 "with kernel version 2.2.11."
2325 msgstr ""
2326 "システム共通のケーパビリティ・バウンディングセット機能は、 カーネル 2.2.11 以"
2327 "降で Linux に追加された。"
2328
2329 #. type: Plain text
2330 #: build/C/man7/capabilities.7:791
2331 msgid "B<Capability bounding set from Linux 2.6.25 onward>"
2332 msgstr "B<Linux 2.6.25 以降のケーパビリティ・バウンディングセット>"
2333
2334 #. type: Plain text
2335 #: build/C/man7/capabilities.7:796
2336 msgid ""
2337 "From Linux 2.6.25, the I<capability bounding set> is a per-thread "
2338 "attribute.  (There is no longer a system-wide capability bounding set.)"
2339 msgstr ""
2340 "Linux 2.6.25 以降では、 「ケーパビリティ・バウンディングセット」はスレッド単"
2341 "位の属性である (システム共通のケーパビリティ・バウンディングセットはもはや存"
2342 "在しない)。"
2343
2344 #. type: Plain text
2345 #: build/C/man7/capabilities.7:801
2346 msgid ""
2347 "The bounding set is inherited at B<fork>(2)  from the thread's parent, and "
2348 "is preserved across an B<execve>(2)."
2349 msgstr ""
2350 "バウンディングセットは B<fork>(2)  時にはスレッドの親プロセスから継承され、 "
2351 "B<execve>(2)  の前後では保持される。"
2352
2353 #. type: Plain text
2354 #: build/C/man7/capabilities.7:814
2355 msgid ""
2356 "A thread may remove capabilities from its capability bounding set using the "
2357 "B<prctl>(2)  B<PR_CAPBSET_DROP> operation, provided it has the "
2358 "B<CAP_SETPCAP> capability.  Once a capability has been dropped from the "
2359 "bounding set, it cannot be restored to that set.  A thread can determine if "
2360 "a capability is in its bounding set using the B<prctl>(2)  "
2361 "B<PR_CAPBSET_READ> operation."
2362 msgstr ""
2363 "スレッドが B<CAP_SETPCAP> ケーパビリティを持っている場合、そのスレッドは "
2364 "B<prctl>(2)  の B<PR_CAPBSET_DROP> 操作を使って自身のケーパビリティ・バウン"
2365 "ディングセットから ケーパビリティを削除することができる。 いったんケーパビリ"
2366 "ティをバウンディングセットから削除してしまうと、 スレッドはそのケーパビリティ"
2367 "を再度セットすることはできない。 B<prctl>(2)  の B<PR_CAPBSET_READ> 操作を使"
2368 "うことで、スレッドがあるケーパビリティが自身のバウンディングセット に含まれて"
2369 "いるかを知ることができる。"
2370
2371 #. type: Plain text
2372 #: build/C/man7/capabilities.7:832
2373 msgid ""
2374 "Removing capabilities from the bounding set is only supported if file "
2375 "capabilities are compiled into the kernel.  In kernels before Linux 2.6.33, "
2376 "file capabilities were an optional feature configurable via the "
2377 "CONFIG_SECURITY_FILE_CAPABILITIES option.  Since Linux 2.6.33, the "
2378 "configuration option has been removed and file capabilities are always part "
2379 "of the kernel.  When file capabilities are compiled into the kernel, the "
2380 "B<init> process (the ancestor of all processes) begins with a full bounding "
2381 "set.  If file capabilities are not compiled into the kernel, then B<init> "
2382 "begins with a full bounding set minus B<CAP_SETPCAP>, because this "
2383 "capability has a different meaning when there are no file capabilities."
2384 msgstr ""
2385 "バウンディングセットからのケーパビリティの削除がサポートされるのは、\n"
2386 "カーネルのコンパイル時にファイルケーパビリティが有効になっている場合\n"
2387 "だけである。Linux 2.6.33 より前のカーネルでは、ファイルケーパビリティは\n"
2388 "設定オプション CONFIG_SECURITY_FILE_CAPABILITIES で切り替えられる追加の\n"
2389 "機能であった。Linux 2.6.33 以降では、この設定オプションは削除され、\n"
2390 "ファイルケーパビリティは常にカーネルに組込まれるようになった。\n"
2391 "ファイルケーパビリティがカーネルにコンパイル時に組み込まれている場合、\n"
2392 "(全てのプロセスの先祖である) I<init> プロセスはバウンディングセットで\n"
2393 "全てのケーパビリティが セットされた状態で開始する。ファイルケーパビリティ\n"
2394 "が有効になっていない場合には、 I<init> はバウンディングセットで\n"
2395 "B<CAP_SETPCAP> 以外の全てのケーパビリティがセットされた状態で開始する。\n"
2396 "このようになっているのは、 B<CAP_SETPCAP> ケーパビリティがファイルケー\n"
2397 "パビリティがサポートされていない場合には 違った意味を持つからである。"
2398
2399 #. type: Plain text
2400 #: build/C/man7/capabilities.7:839
2401 msgid ""
2402 "Removing a capability from the bounding set does not remove it from the "
2403 "thread's inherited set.  However it does prevent the capability from being "
2404 "added back into the thread's inherited set in the future."
2405 msgstr ""
2406 "バウンディングセットからケーパビリティを削除しても、 スレッドの継承可能セット"
2407 "からはそのケーパビリティは削除されない。 しかしながら、バウンディングセットか"
2408 "らの削除により、 この先そのケーパビリティをスレッドの継承可能セットに追加する"
2409 "こと はできなくなる。"
2410
2411 #. type: SS
2412 #: build/C/man7/capabilities.7:839
2413 #, no-wrap
2414 msgid "Effect of User ID Changes on Capabilities"
2415 msgstr "ユーザ ID 変更のケーパビリティへの影響"
2416
2417 #. type: Plain text
2418 #: build/C/man7/capabilities.7:848
2419 msgid ""
2420 "To preserve the traditional semantics for transitions between 0 and nonzero "
2421 "user IDs, the kernel makes the following changes to a thread's capability "
2422 "sets on changes to the thread's real, effective, saved set, and file system "
2423 "user IDs (using B<setuid>(2), B<setresuid>(2), or similar):"
2424 msgstr ""
2425 "ユーザ ID が 0 と 0 以外の間で変化する際の振る舞いを従来と同じにするため、 ス"
2426 "レッドの実 UID、実効 UID、保存 set-user-ID、ファイルシステム UID が "
2427 "(B<setuid>(2), B<setresuid>(2)  などを使って) 変更された際に、カーネルはその"
2428 "スレッドのケーパビリティセットに 以下の変更を行う:"
2429
2430 #. type: Plain text
2431 #: build/C/man7/capabilities.7:854
2432 msgid ""
2433 "If one or more of the real, effective or saved set user IDs was previously "
2434 "0, and as a result of the UID changes all of these IDs have a nonzero value, "
2435 "then all capabilities are cleared from the permitted and effective "
2436 "capability sets."
2437 msgstr ""
2438 "UID の変更前には実 UID、実効 UID、保存 set-user-ID のうち 少なくとも一つが 0 "
2439 "で、変更後に実 UID、実効 UID、保存 set-user-ID が すべて 0 以外の値になった場"
2440 "合、許可と実効のケーパビリティセットの 全ケーパビリティをクリアする。"
2441
2442 #. type: Plain text
2443 #: build/C/man7/capabilities.7:857
2444 msgid ""
2445 "If the effective user ID is changed from 0 to nonzero, then all capabilities "
2446 "are cleared from the effective set."
2447 msgstr ""
2448 "実効 UID が 0 から 0 以外に変更された場合、 実効ケーパビリティセットの全ケー"
2449 "パビリティをクリアする。"
2450
2451 #. type: Plain text
2452 #: build/C/man7/capabilities.7:860
2453 msgid ""
2454 "If the effective user ID is changed from nonzero to 0, then the permitted "
2455 "set is copied to the effective set."
2456 msgstr ""
2457 "実効 UID が 0 以外から 0 に変更された場合、 許可ケーパビリティセットの内容を"
2458 "実効ケーパビリティセットにコピーする。"
2459
2460 #. type: IP
2461 #: build/C/man7/capabilities.7:860 build/C/man7/capabilities.7:915
2462 #, no-wrap
2463 msgid "4."
2464 msgstr "4."
2465
2466 #. type: Plain text
2467 #: build/C/man7/capabilities.7:878
2468 msgid ""
2469 "If the file system user ID is changed from 0 to nonzero (see B<setfsuid>"
2470 "(2))  then the following capabilities are cleared from the effective set: "
2471 "B<CAP_CHOWN>, B<CAP_DAC_OVERRIDE>, B<CAP_DAC_READ_SEARCH>, B<CAP_FOWNER>, "
2472 "B<CAP_FSETID>, B<CAP_LINUX_IMMUTABLE> (since Linux 2.2.30), "
2473 "B<CAP_MAC_OVERRIDE>, and B<CAP_MKNOD> (since Linux 2.2.30).  If the file "
2474 "system UID is changed from nonzero to 0, then any of these capabilities that "
2475 "are enabled in the permitted set are enabled in the effective set."
2476 msgstr ""
2477 "ファイルシステム UID が 0 から 0 以外に変更された場合 (B<setfsuid>(2)  参"
2478 "照)、実効ケーパビリティセットの以下のケーパビリティがクリアされる: "
2479 "B<CAP_CHOWN>, B<CAP_DAC_OVERRIDE>, B<CAP_DAC_READ_SEARCH>, B<CAP_FOWNER>, "
2480 "B<CAP_FSETID>, B<CAP_LINUX_IMMUTABLE> (Linux 2.2.30 以降), "
2481 "B<CAP_MAC_OVERRIDE>, B<CAP_MKNOD> (Linux 2.2.30 以降)。 ファイルシステム UID "
2482 "が 0 以外から 0 に変更された場合、 上記のケーパビリティのうち許可ケーパビリ"
2483 "ティセットで有効になっているものが 実効ケーパビリティセットで有効にされる。"
2484
2485 #. type: Plain text
2486 #: build/C/man7/capabilities.7:886
2487 msgid ""
2488 "If a thread that has a 0 value for one or more of its user IDs wants to "
2489 "prevent its permitted capability set being cleared when it resets all of its "
2490 "user IDs to nonzero values, it can do so using the B<prctl>(2)  "
2491 "B<PR_SET_KEEPCAPS> operation."
2492 msgstr ""
2493 "各種 UID のうち少なくとも一つが 0 であるスレッドが、 その UID の全てが 0 以外"
2494 "になったときに許可ケーパビリティセットが クリアされないようにしたい場合に"
2495 "は、 B<prctl>(2)  の B<PR_SET_KEEPCAPS> 操作を使えばよい。"
2496
2497 #. type: SS
2498 #: build/C/man7/capabilities.7:886
2499 #, no-wrap
2500 msgid "Programmatically adjusting capability sets"
2501 msgstr "プログラムでケーパビリティセットを調整する"
2502
2503 #. type: Plain text
2504 #: build/C/man7/capabilities.7:901
2505 msgid ""
2506 "A thread can retrieve and change its capability sets using the B<capget>(2)  "
2507 "and B<capset>(2)  system calls.  However, the use of B<cap_get_proc>(3)  and "
2508 "B<cap_set_proc>(3), both provided in the I<libcap> package, is preferred for "
2509 "this purpose.  The following rules govern changes to the thread capability "
2510 "sets:"
2511 msgstr ""
2512 "各スレッドは、 B<capget>(2)  や B<capset>(2)  を使って、自身のケーパビリティ"
2513 "セットを取得したり変更したりできる。 ただし、これを行うには、 I<libcap> パッ"
2514 "ケージで提供されている B<cap_get_proc>(3)  や B<cap_set_proc>(3)  を使うのが"
2515 "望ましい。 スレッドのケーパビリティセットの変更には以下のルールが適用される。"
2516
2517 #. type: Plain text
2518 #: build/C/man7/capabilities.7:907
2519 msgid ""
2520 "If the caller does not have the B<CAP_SETPCAP> capability, the new "
2521 "inheritable set must be a subset of the combination of the existing "
2522 "inheritable and permitted sets."
2523 msgstr ""
2524 "呼び出し側が B<CAP_SETPCAP> ケーパビリティを持っていない場合、新しい継承可能"
2525 "セットは、 既存の継承可能セットと許可セットの積集合 (AND) の部分集合で なけれ"
2526 "ばならない。"
2527
2528 #. type: Plain text
2529 #: build/C/man7/capabilities.7:911
2530 msgid ""
2531 "(Since kernel 2.6.25)  The new inheritable set must be a subset of the "
2532 "combination of the existing inheritable set and the capability bounding set."
2533 msgstr ""
2534 "(カーネル 2.6.25 以降)  新しい継承可能セットは、既存の継承可能セットとケーパ"
2535 "ビリティ・ バウンディングセットの積集合 (AND) の部分集合でなければならない。"
2536
2537 #. type: Plain text
2538 #: build/C/man7/capabilities.7:915
2539 msgid ""
2540 "The new permitted set must be a subset of the existing permitted set (i.e., "
2541 "it is not possible to acquire permitted capabilities that the thread does "
2542 "not currently have)."
2543 msgstr ""
2544 "新しい許可セットは、既存の許可セットの部分集合でなければならない (つまり、そ"
2545 "のスレッドが現在持っていない許可ケーパビリティを 獲得することはできない)。"
2546
2547 #. type: Plain text
2548 #: build/C/man7/capabilities.7:917
2549 msgid "The new effective set must be a subset of the new permitted set."
2550 msgstr ""
2551 "新しい実効ケーパビリティセットは新しい許可ケーパビリティセットの 部分集合に"
2552 "なっていなければならない。"
2553
2554 #. type: SS
2555 #: build/C/man7/capabilities.7:917
2556 #, no-wrap
2557 msgid "The \"securebits\" flags: establishing a capabilities-only environment"
2558 msgstr "securebits フラグ: ケーパビリティだけの環境を構築する"
2559
2560 #.  For some background:
2561 #.        see http://lwn.net/Articles/280279/ and
2562 #.        http://article.gmane.org/gmane.linux.kernel.lsm/5476/
2563 #. type: Plain text
2564 #: build/C/man7/capabilities.7:928
2565 msgid ""
2566 "Starting with kernel 2.6.26, and with a kernel in which file capabilities "
2567 "are enabled, Linux implements a set of per-thread I<securebits> flags that "
2568 "can be used to disable special handling of capabilities for UID 0 "
2569 "(I<root>).  These flags are as follows:"
2570 msgstr ""
2571 "カーネル 2.6.26 以降で、 ファイルケーパビリティが有効になったカーネルでは、 "
2572 "スレッド単位の I<securebits> フラグが実装されており、このフラグを使うと UID "
2573 "0 (I<root>)  に対するケーパビリティの特別扱いを無効することができる。 以下の"
2574 "ようなフラグがある。"
2575
2576 #. type: TP
2577 #: build/C/man7/capabilities.7:928
2578 #, no-wrap
2579 msgid "B<SECBIT_KEEP_CAPS>"
2580 msgstr "B<SECBIT_KEEP_CAPS>"
2581
2582 #. type: Plain text
2583 #: build/C/man7/capabilities.7:940
2584 msgid ""
2585 "Setting this flag allows a thread that has one or more 0 UIDs to retain its "
2586 "capabilities when it switches all of its UIDs to a nonzero value.  If this "
2587 "flag is not set, then such a UID switch causes the thread to lose all "
2588 "capabilities.  This flag is always cleared on an B<execve>(2).  (This flag "
2589 "provides the same functionality as the older B<prctl>(2)  B<PR_SET_KEEPCAPS> "
2590 "operation.)"
2591 msgstr ""
2592 "このフラグをセットされている場合、UID が 0 のスレッドの UID が 0 以外の値に "
2593 "切り替わる際に、そのスレッドはケーパビリティを維持することができる。 このフラ"
2594 "グがセットされていない場合には、UID が 0 から 0 以外の値に 切り替わると、その"
2595 "スレッドは全てのケーパビリティを失う。 このフラグは B<execve>(2)  時には全て"
2596 "クリアされる (このフラグは、以前の B<prctl>(2)  の B<PR_SET_KEEPCAPS> 操作と"
2597 "同じ機能を提供するものである)。"
2598
2599 #. type: TP
2600 #: build/C/man7/capabilities.7:940
2601 #, no-wrap
2602 msgid "B<SECBIT_NO_SETUID_FIXUP>"
2603 msgstr "B<SECBIT_NO_SETUID_FIXUP>"
2604
2605 #. type: Plain text
2606 #: build/C/man7/capabilities.7:947
2607 msgid ""
2608 "Setting this flag stops the kernel from adjusting capability sets when the "
2609 "threads's effective and file system UIDs are switched between zero and "
2610 "nonzero values.  (See the subsection I<Effect of User ID Changes on "
2611 "Capabilities>.)"
2612 msgstr ""
2613 "このフラグをセットすると、スレッドの実効 UID とファイルシステム UID が 0 と "
2614 "0 以外の間で切り替わった場合に、 カーネルはケーパビリティセットの調整を行わな"
2615 "くなる (「ユーザ ID 変更のケーパビリティへの影響」の節を参照)。"
2616
2617 #. type: TP
2618 #: build/C/man7/capabilities.7:947
2619 #, no-wrap
2620 msgid "B<SECBIT_NOROOT>"
2621 msgstr "B<SECBIT_NOROOT>"
2622
2623 #. type: Plain text
2624 #: build/C/man7/capabilities.7:955
2625 msgid ""
2626 "If this bit is set, then the kernel does not grant capabilities when a set-"
2627 "user-ID-root program is executed, or when a process with an effective or "
2628 "real UID of 0 calls B<execve>(2).  (See the subsection I<Capabilities and "
2629 "execution of programs by root>.)"
2630 msgstr ""
2631 "このビットがセットされている場合、 set-user-ID-root プログラムの実行時や、 実"
2632 "効 UID か 実 UID が 0 のプロセスが B<execve>(2)  を呼び出した時に、カーネルは"
2633 "ケーパビリティを許可しない (「ケーパビリティと、ルートによるプログラムの実"
2634 "行」の節を参照)。"
2635
2636 #. type: Plain text
2637 #: build/C/man7/capabilities.7:965
2638 msgid ""
2639 "Each of the above \"base\" flags has a companion \"locked\" flag.  Setting "
2640 "any of the \"locked\" flags is irreversible, and has the effect of "
2641 "preventing further changes to the corresponding \"base\" flag.  The locked "
2642 "flags are: B<SECBIT_KEEP_CAPS_LOCKED>, B<SECBIT_NO_SETUID_FIXUP_LOCKED>, and "
2643 "B<SECBIT_NOROOT_LOCKED>."
2644 msgstr ""
2645 "上記の \"base\" フラグの各々には対応する \"locked\" フラグが存在する。 いずれ"
2646 "の \"locked\" フラグも一度セットされると戻すことはできず、 それ以降は対応す"
2647 "る \"base\" フラグを変更することができなくなる。 \"locked\" フラグは "
2648 "B<SECBIT_KEEP_CAPS_LOCKED>, B<SECBIT_NO_SETUID_FIXUP_LOCKED>, "
2649 "B<SECBIT_NOROOT_LOCKED> という名前である。"
2650
2651 #. type: Plain text
2652 #: build/C/man7/capabilities.7:977
2653 msgid ""
2654 "The I<securebits> flags can be modified and retrieved using the B<prctl>(2)  "
2655 "B<PR_SET_SECUREBITS> and B<PR_GET_SECUREBITS> operations.  The "
2656 "B<CAP_SETPCAP> capability is required to modify the flags."
2657 msgstr ""
2658 "I<securebits> フラグは、 B<prctl>(2)  の操作 B<PR_SET_SECUREBITS> や "
2659 "B<PR_GET_SECUREBITS> を使うことで変更したり取得したりできる。 フラグを変更す"
2660 "るには B<CAP_SETPCAP> ケーパビリティが必要である。"
2661
2662 #. type: Plain text
2663 #: build/C/man7/capabilities.7:986
2664 msgid ""
2665 "The I<securebits> flags are inherited by child processes.  During an "
2666 "B<execve>(2), all of the flags are preserved, except B<SECBIT_KEEP_CAPS> "
2667 "which is always cleared."
2668 msgstr ""
2669 "I<securebits> フラグは子プロセスに継承される。 B<execve>(2) においては、\n"
2670 "B<SECBIT_KEEP_CAPS> が常にクリアされる以外は、全てのフラグが保持される。"
2671
2672 #. type: Plain text
2673 #: build/C/man7/capabilities.7:991
2674 msgid ""
2675 "An application can use the following call to lock itself, and all of its "
2676 "descendants, into an environment where the only way of gaining capabilities "
2677 "is by executing a program with associated file capabilities:"
2678 msgstr ""
2679 "アプリケーションは、以下の呼び出しを行うことにより、 自分自身および子孫となる"
2680 "プロセス全てに対して、 必要なファイルケーパビリティを持ったプログラムを実行し"
2681 "ない限り、 対応するケーパビリティを獲得できないような状況に閉じこめることがで"
2682 "きる。"
2683
2684 #. type: Plain text
2685 #: build/C/man7/capabilities.7:1000
2686 #, no-wrap
2687 msgid ""
2688 "prctl(PR_SET_SECUREBITS,\n"
2689 "        SECBIT_KEEP_CAPS_LOCKED |\n"
2690 "        SECBIT_NO_SETUID_FIXUP |\n"
2691 "        SECBIT_NO_SETUID_FIXUP_LOCKED |\n"
2692 "        SECBIT_NOROOT |\n"
2693 "        SECBIT_NOROOT_LOCKED);\n"
2694 msgstr ""
2695 "prctl(PR_SET_SECUREBITS,\n"
2696 "        SECBIT_KEEP_CAPS_LOCKED |\n"
2697 "        SECBIT_NO_SETUID_FIXUP |\n"
2698 "        SECBIT_NO_SETUID_FIXUP_LOCKED |\n"
2699 "        SECBIT_NOROOT |\n"
2700 "        SECBIT_NOROOT_LOCKED);\n"
2701
2702 #. type: Plain text
2703 #: build/C/man7/capabilities.7:1007
2704 msgid ""
2705 "No standards govern capabilities, but the Linux capability implementation is "
2706 "based on the withdrawn POSIX.1e draft standard; see I<http://wt.xpilot.org/"
2707 "publications/posix.1e/>."
2708 msgstr ""
2709 "ケーパビリティに関する標準はないが、 Linux のケーパビリティは廃案になった "
2710 "POSIX.1e 草案に基づいて実装されている。 I<http://wt.xpilot.org/publications/"
2711 "posix.1e/> を参照。"
2712
2713 #. type: Plain text
2714 #: build/C/man7/capabilities.7:1011
2715 msgid ""
2716 "Since kernel 2.5.27, capabilities are an optional kernel component, and can "
2717 "be enabled/disabled via the CONFIG_SECURITY_CAPABILITIES kernel "
2718 "configuration option."
2719 msgstr ""
2720 "カーネル 2.5.27 以降、ケーパビリティは選択式のカーネルコンポーネント となって"
2721 "おり、カーネル設定オプション CONFIG_SECURITY_CAPABILITIES により有効/無効を切"
2722 "り替えることができる。"
2723
2724 #. type: Plain text
2725 #: build/C/man7/capabilities.7:1018
2726 msgid ""
2727 "The I</proc/PID/task/TID/status> file can be used to view the capability "
2728 "sets of a thread.  The I</proc/PID/status> file shows the capability sets of "
2729 "a process's main thread."
2730 msgstr ""
2731 "I</proc/PID/task/TID/status> ファイルを使うと、スレッドのケーパビリティセット"
2732 "を見ることができる。 I</proc/PID/status> ファイルには、プロセスのメインスレッ"
2733 "ドのケーパビリティセットが表示される。"
2734
2735 #. type: Plain text
2736 #: build/C/man7/capabilities.7:1033
2737 msgid ""
2738 "The I<libcap> package provides a suite of routines for setting and getting "
2739 "capabilities that is more comfortable and less likely to change than the "
2740 "interface provided by B<capset>(2)  and B<capget>(2).  This package also "
2741 "provides the B<setcap>(8)  and B<getcap>(8)  programs.  It can be found at"
2742 msgstr ""
2743 "I<libcap> パッケージは、ケーパビリティを設定・取得するための ルーチン群を提供"
2744 "している。これらのインタフェースは、 B<capset>(2)  と B<capget>(2)  が提供す"
2745 "るインターフェースと比べて、より使いやすく、変更される可能性が少ない。 この"
2746 "パッケージでは、 B<setcap>(8), B<getcap>(8)  というプログラムも提供されてい"
2747 "る。 パッケージは以下で入手できる。"
2748
2749 #. type: Plain text
2750 #: build/C/man7/capabilities.7:1035
2751 msgid "I<http://www.kernel.org/pub/linux/libs/security/linux-privs>."
2752 msgstr "I<http://www.kernel.org/pub/linux/libs/security/linux-privs>"
2753
2754 #. type: Plain text
2755 #: build/C/man7/capabilities.7:1044
2756 msgid ""
2757 "Before kernel 2.6.24, and since kernel 2.6.24 if file capabilities are not "
2758 "enabled, a thread with the B<CAP_SETPCAP> capability can manipulate the "
2759 "capabilities of threads other than itself.  However, this is only "
2760 "theoretically possible, since no thread ever has B<CAP_SETPCAP> in either of "
2761 "these cases:"
2762 msgstr ""
2763 "バージョン 2.6.24 より前、およびファイルケーパビリティが 有効になっていない"
2764 "2.6.24 以降のカーネルでは、 B<CAP_SETPCAP> ケーパビリティを持ったスレッドは自"
2765 "分以外のスレッドの ケーパビリティを操作できる。 しかしながら、これは理論的に"
2766 "可能というだけである。 以下のいずれかの場合においても、どのスレッドも "
2767 "B<CAP_SETPCAP> ケーパビリティを持つことはないからである。"
2768
2769 #. type: Plain text
2770 #: build/C/man7/capabilities.7:1049
2771 msgid ""
2772 "In the pre-2.6.25 implementation the system-wide capability bounding set, I</"
2773 "proc/sys/kernel/cap-bound>, always masks out this capability, and this can "
2774 "not be changed without modifying the kernel source and rebuilding."
2775 msgstr ""
2776 "2.6.25 より前の実装では、システム共通のケーパビリティ・バウンディングセット "
2777 "I</proc/sys/kernel/cap-bound> ではこのケーパビリティは常に無効になっており、 "
2778 "ソースを変更してカーネルを再コンパイルしない限り、 これを変更することはできな"
2779 "い。"
2780
2781 #. type: Plain text
2782 #: build/C/man7/capabilities.7:1055
2783 msgid ""
2784 "If file capabilities are disabled in the current implementation, then "
2785 "B<init> starts out with this capability removed from its per-process "
2786 "bounding set, and that bounding set is inherited by all other processes "
2787 "created on the system."
2788 msgstr ""
2789 "現在の実装ではファイルケーパビリティが無効になっている場合、 プロセス毎のバウ"
2790 "ンディングセットからこのケーパビリティを抜いて B<init> は開始され、 システム"
2791 "上で生成される他の全てのプロセスでこのバウンディングセットが 継承される。"
2792
2793 #. type: Plain text
2794 #: build/C/man7/capabilities.7:1072
2795 msgid ""
2796 "B<capget>(2), B<prctl>(2), B<setfsuid>(2), B<cap_clear>(3), B<cap_copy_ext>"
2797 "(3), B<cap_from_text>(3), B<cap_get_file>(3), B<cap_get_proc>(3), B<cap_init>"
2798 "(3), B<capgetp>(3), B<capsetp>(3), B<libcap>(3), B<credentials>(7), "
2799 "B<pthreads>(7), B<getcap>(8), B<setcap>(8)"
2800 msgstr ""
2801 "B<capget>(2), B<prctl>(2), B<setfsuid>(2), B<cap_clear>(3),\n"
2802 "B<cap_copy_ext>(3), B<cap_from_text>(3), B<cap_get_file>(3),\n"
2803 "B<cap_get_proc>(3), B<cap_init>(3), B<capgetp>(3), B<capsetp>(3),\n"
2804 "B<libcap>(3), B<credentials>(7), B<pthreads>(7), B<getcap>(8), B<setcap>(8)"
2805
2806 #. type: Plain text
2807 #: build/C/man7/capabilities.7:1076
2808 msgid ""
2809 "Comments on the purposes of various capabilities in I<include/linux/"
2810 "capability.h> in the kernel source"
2811 msgstr ""
2812 "カーネルソース内の I<include/linux/capability.h> に\n"
2813 "各種のケーパビリティの目的についてのコメント"
2814
2815 #. type: TH
2816 #: build/C/man2/capget.2:11
2817 #, no-wrap
2818 msgid "CAPGET"
2819 msgstr "CAPGET"
2820
2821 #. type: TH
2822 #: build/C/man2/capget.2:11
2823 #, no-wrap
2824 msgid "2010-09-20"
2825 msgstr "2010-09-20"
2826
2827 #. type: Plain text
2828 #: build/C/man2/capget.2:14
2829 msgid "capget, capset - set/get capabilities of thread(s)"
2830 msgstr "capget, capset - スレッドのケーパビリティを設定/取得する"
2831
2832 #. type: Plain text
2833 #: build/C/man2/capget.2:16
2834 msgid "B<#include E<lt>sys/capability.hE<gt>>"
2835 msgstr "B<#include E<lt>sys/capability.hE<gt>>"
2836
2837 #. type: Plain text
2838 #: build/C/man2/capget.2:18
2839 msgid ""
2840 "B<int capget(cap_user_header_t >I<hdrp>B<, cap_user_data_t >I<datap>B<);>"
2841 msgstr ""
2842 "B<int capget(cap_user_header_t >I<hdrp>B<, cap_user_data_t >I<datap>B<);>"
2843
2844 #. type: Plain text
2845 #: build/C/man2/capget.2:20
2846 msgid ""
2847 "B<int capset(cap_user_header_t >I<hdrp>B<, const cap_user_data_t "
2848 ">I<datap>B<);>"
2849 msgstr ""
2850 "B<int capset(cap_user_header_t >I<hdrp>B<, const cap_user_data_t "
2851 ">I<datap>B<);>"
2852
2853 #. type: Plain text
2854 #: build/C/man2/capget.2:31
2855 msgid ""
2856 "As of Linux 2.2, the power of the superuser (root) has been partitioned into "
2857 "a set of discrete capabilities.  Each thread has a set of effective "
2858 "capabilities identifying which capabilities (if any) it may currently "
2859 "exercise.  Each thread also has a set of inheritable capabilities that may "
2860 "be passed through an B<execve>(2)  call, and a set of permitted capabilities "
2861 "that it can make effective or inheritable."
2862 msgstr ""
2863 "Linux 2.2 で、スーパーユーザー (root) の権限は、個別のケーパビリティ "
2864 "(capabilities) へと分割され、その集合として表現されるようになった。 各スレッ"
2865 "ドは「実効ケーパビリティ (effective capability) の集合」を持ち、 それによって"
2866 "現在どの操作が実行可能かを識別できる。 また、各スレッドは、 「継承可能ケーパ"
2867 "ビリティ (inheritable capability) の集合」と 「許可ケーパビリティ (permitted "
2868 "capability) の集合」を持つ。 「継承可能ケーパビリティの集合」は B<execve>"
2869 "(2)  を通じて渡すことができるケーパビリティの集合であり、 「許可ケーパビリ"
2870 "ティ (permitted capability) の集合」は 実効ケーパビリティや継承可能ケーパビリ"
2871 "ティとして有効にできる ケーパビリティを規定するものである。"
2872
2873 #. type: Plain text
2874 #: build/C/man2/capget.2:40
2875 msgid ""
2876 "These two functions are the raw kernel interface for getting and setting "
2877 "thread capabilities.  Not only are these system calls specific to Linux, but "
2878 "the kernel API is likely to change and use of these functions (in particular "
2879 "the format of the I<cap_user_*_t> types) is subject to extension with each "
2880 "kernel revision, but old programs will keep working."
2881 msgstr ""
2882 "この二つの関数はスレッドのケーパビリティを取得したり設定したりするための 生の"
2883 "カーネルインターフェースである。 これらのシステムコールは Linux 特有であると"
2884 "いうだけでなく、 カーネル API は変更されるかもしれず、これらの 関数の使用法 "
2885 "(特に I<cap_user_*_t> 型という書式) はカーネルのリビジョン毎に拡張されるかも"
2886 "しれないが、 以前のプログラムはそのまま動作する。"
2887
2888 #. type: Plain text
2889 #: build/C/man2/capget.2:51
2890 msgid ""
2891 "The portable interfaces are B<cap_set_proc>(3)  and B<cap_get_proc>(3); if "
2892 "possible you should use those interfaces in applications.  If you wish to "
2893 "use the Linux extensions in applications, you should use the easier-to-use "
2894 "interfaces B<capsetp>(3)  and B<capgetp>(3)."
2895 msgstr ""
2896 "移植性のあるインターフェースは B<cap_set_proc>(3)  と B<cap_get_proc>(3)  で"
2897 "ある。 可能ならばアプリケーションはこれらの関数を使用すべきである。 アプリ"
2898 "ケーションに Linux 拡張を使用したい場合には、より簡単に 使えるインターフェー"
2899 "スである B<capsetp>(3)  と B<capgetp>(3)  を使用すべきである。"
2900
2901 #. type: SS
2902 #: build/C/man2/capget.2:51
2903 #, no-wrap
2904 msgid "Current details"
2905 msgstr "現在の詳細"
2906
2907 #. type: Plain text
2908 #: build/C/man2/capget.2:54
2909 msgid ""
2910 "Now that you have been warned, some current kernel details.  The structures "
2911 "are defined as follows."
2912 msgstr ""
2913 "現在のカーネルの詳細について注意を述べておく。 構造体は以下のように定義され"
2914 "る。"
2915
2916 #. type: Plain text
2917 #: build/C/man2/capget.2:59
2918 #, no-wrap
2919 msgid ""
2920 "#define _LINUX_CAPABILITY_VERSION_1  0x19980330\n"
2921 "#define _LINUX_CAPABILITY_U32S_1     1\n"
2922 msgstr ""
2923 "#define _LINUX_CAPABILITY_VERSION_1  0x19980330\n"
2924 "#define _LINUX_CAPABILITY_U32S_1     1\n"
2925
2926 #. type: Plain text
2927 #: build/C/man2/capget.2:62
2928 #, no-wrap
2929 msgid ""
2930 "#define _LINUX_CAPABILITY_VERSION_2  0x20071026\n"
2931 "#define _LINUX_CAPABILITY_U32S_2     2\n"
2932 msgstr ""
2933 "#define _LINUX_CAPABILITY_VERSION_2  0x20071026\n"
2934 "#define _LINUX_CAPABILITY_U32S_2     2\n"
2935
2936 #. type: Plain text
2937 #: build/C/man2/capget.2:67
2938 #, no-wrap
2939 msgid ""
2940 "typedef struct __user_cap_header_struct {\n"
2941 "   __u32 version;\n"
2942 "   int pid;\n"
2943 "} *cap_user_header_t;\n"
2944 msgstr ""
2945 "typedef struct __user_cap_header_struct {\n"
2946 "   __u32 version;\n"
2947 "   int pid;\n"
2948 "} *cap_user_header_t;\n"
2949
2950 #. type: Plain text
2951 #: build/C/man2/capget.2:73
2952 #, no-wrap
2953 msgid ""
2954 "typedef struct __user_cap_data_struct {\n"
2955 "   __u32 effective;\n"
2956 "   __u32 permitted;\n"
2957 "   __u32 inheritable;\n"
2958 "} *cap_user_data_t;\n"
2959 msgstr ""
2960 "typedef struct __user_cap_data_struct {\n"
2961 "   __u32 effective;\n"
2962 "   __u32 permitted;\n"
2963 "   __u32 inheritable;\n"
2964 "} *cap_user_data_t;\n"
2965
2966 #. type: Plain text
2967 #: build/C/man2/capget.2:88
2968 msgid ""
2969 "I<effective, permitted, inheritable> are bitmasks of the capabilities "
2970 "defined in I<capability(7).> Note the I<CAP_*> values are bit indexes and "
2971 "need to be bit-shifted before ORing into the bit fields.  To define the "
2972 "structures for passing to the system call you have to use the I<struct "
2973 "__user_cap_header_struct> and I<struct __user_cap_data_struct> names because "
2974 "the typedefs are only pointers."
2975 msgstr ""
2976 "I<effective, permitted, inheritable> は、 B<capability>(7)  で定義されるケー"
2977 "パビリティのビットマスクである。 I<CAP_*> はビット番号を表すインデックス値で"
2978 "あり、 ビットフィールドに OR を行う前に I<CAP_*> の値の分だけビットシフトを行"
2979 "う必要がある。 typedef の方はポインタなので、 このシステムコールに渡す構造体"
2980 "を定義するには、 I<struct __user_cap_header_struct> と I<struct "
2981 "__user_cap_data_struct> という名前を使用しなければならない。"
2982
2983 #. type: Plain text
2984 #: build/C/man2/capget.2:100
2985 msgid ""
2986 "Kernels prior to 2.6.25 prefer 32-bit capabilities with version "
2987 "B<_LINUX_CAPABILITY_VERSION_1>, and kernels 2.6.25+ prefer 64-bit "
2988 "capabilities with version B<_LINUX_CAPABILITY_VERSION_2>.  Note, 64-bit "
2989 "capabilities use I<datap>[0] and I<datap>[1], whereas 32-bit capabilities "
2990 "use only I<datap>[0]."
2991 msgstr ""
2992 "カーネル 2.6.25 より前では、バージョン B<_LINUX_CAPABILITY_VERSION_1> の 32 "
2993 "ビットケーパビリティが推奨である。 カーネル 2.6.25 以降では、バージョン "
2994 "B<_LINUX_CAPABILITY_VERSION_2> の 64 ビットケーパビリティが推奨である。 64 "
2995 "ビットケーパビリティでは I<datap>[0] と I<datap>[1] が使用されるのに対し、 "
2996 "32 ビットケーパビリティでは I<datap>[0] だけが使用される。"
2997
2998 #. type: Plain text
2999 #: build/C/man2/capget.2:104
3000 msgid ""
3001 "Another change affecting the behavior of these system calls is kernel "
3002 "support for file capabilities (VFS capability support).  This support is "
3003 "currently a compile time option (added in kernel 2.6.24)."
3004 msgstr ""
3005 "これらのシステムコールの挙動に影響があるもう一つの変更点は、 ファイルケーパビ"
3006 "リティ (file capabilities) のカーネルによるサポート (VFS ケーパビリティのサ"
3007 "ポート) である。 VFS ケーパビリティのサポートは現在のところコンパイル時のオプ"
3008 "ションである (カーネル 2.6.24 で追加された)。"
3009
3010 #. type: Plain text
3011 #: build/C/man2/capget.2:111
3012 msgid ""
3013 "For B<capget>()  calls, one can probe the capabilities of any process by "
3014 "specifying its process ID with the I<hdrp-E<gt>pid> field value."
3015 msgstr ""
3016 "B<capget>()  では、 I<hdrp-E<gt>pid> のフィールド値にケーパビリティを知りたい"
3017 "プロセスのプロセス ID を 指定することで、任意のプロセスのケーパビリティを調べ"
3018 "ることができる。"
3019
3020 #. type: SS
3021 #: build/C/man2/capget.2:111
3022 #, no-wrap
3023 msgid "With VFS Capability Support"
3024 msgstr "VFS ケーパビリティがサポートされている場合"
3025
3026 #. type: Plain text
3027 #: build/C/man2/capget.2:123
3028 msgid ""
3029 "VFS Capability support creates a file-attribute method for adding "
3030 "capabilities to privileged executables.  This privilege model obsoletes "
3031 "kernel support for one process asynchronously setting the capabilities of "
3032 "another.  That is, with VFS support, for B<capset>()  calls the only "
3033 "permitted values for I<hdrp-E<gt>pid> are 0 or B<getpid>(2), which are "
3034 "equivalent."
3035 msgstr ""
3036 "VFS ケーパビリティのサポートでは、特権実行ファイルにケーパビリティを 追加する"
3037 "ためのファイル属性メソッドが作成された。 この特権モデルの導入により、あるプロ"
3038 "セスにより別のプロセスのケーパビリティ を非同期に設定する機能のカーネルによる"
3039 "サポートは廃止される。 つまり、VFS サポートでは、 B<capset>()  を呼び出す際"
3040 "に I<hdrp-E<gt>pid> の値として許されるのは 0 と B<getpid>(2)  が返す値だけと"
3041 "なる (どちらの値でも等価である)。"
3042
3043 #. type: SS
3044 #: build/C/man2/capget.2:123
3045 #, no-wrap
3046 msgid "Without VFS Capability Support"
3047 msgstr "VFS ケーパビリティがサポートされていない場合"
3048
3049 #. type: Plain text
3050 #: build/C/man2/capget.2:149
3051 msgid ""
3052 "When the kernel does not support VFS capabilities, B<capset>()  calls can "
3053 "operate on the capabilities of the thread specified by the I<pid> field of "
3054 "I<hdrp> when that is nonzero, or on the capabilities of the calling thread "
3055 "if I<pid> is 0.  If I<pid> refers to a single-threaded process, then I<pid> "
3056 "can be specified as a traditional process ID; operating on a thread of a "
3057 "multithreaded process requires a thread ID of the type returned by B<gettid>"
3058 "(2).  For B<capset>(), I<pid> can also be: -1, meaning perform the change on "
3059 "all threads except the caller and B<init>(8); or a value less than -1, in "
3060 "which case the change is applied to all members of the process group whose "
3061 "ID is -I<pid>."
3062 msgstr ""
3063 "カーネルが VFS ケーパビリティをサポートしていない場合、 I<hdrp> の I<pid> "
3064 "フィールドが 0 以外であれば、 B<capset>()  の操作対象は I<pid> で指定されたス"
3065 "レッドのケーパビリティになる。 I<pid> が 0 の場合は呼び出し元のスレッドのケー"
3066 "パビリティが操作対象となる。 I<pid> がシングルスレッド・プロセスを参照してい"
3067 "る場合、 I<pid> は以前から使われているプロセスID を使って指定できる。 マルチ"
3068 "スレッド・プロセス内のあるスレッドを対象にする場合は、 B<gettid>(2)  が返すス"
3069 "レッドID を用いて指定する必要がある。 また、 B<capset>()  では -1 や -1 より"
3070 "小さな値を指定することもできる。 -1 は呼び出し元と B<init>(8)  を除く全てのス"
3071 "レッドを対象として変更を行うことを、 -1 より小さな値は ID が -I<pid> のプロセ"
3072 "スグループの全メンバ を対象として変更を行うことを意味する。"
3073
3074 #. type: Plain text
3075 #: build/C/man2/capget.2:152
3076 msgid "For details on the data, see B<capabilities>(7)."
3077 msgstr "このデータの詳細は B<capabilities>(7)  を参照すること。"
3078
3079 #. type: Plain text
3080 #: build/C/man2/capget.2:171
3081 msgid ""
3082 "The calls will fail with the error B<EINVAL>, and set the I<version> field "
3083 "of I<hdrp> to the kernel preferred value of B<_LINUX_CAPABILITY_VERSION_?> "
3084 "when an unsupported I<version> value is specified.  In this way, one can "
3085 "probe what the current preferred capability revision is."
3086 msgstr ""
3087 "I<hdrp> のフィールド I<version> にサポートされていない値が指定された場合、 呼"
3088 "び出しはエラー B<EINVAL> で失敗し、 I<version> にカーネル推奨の "
3089 "B<_LINUX_CAPABILITY_VERSION_?> を設定する。 このようにして、現在の推奨ケーパ"
3090 "ビリティ・リビジョンが何かを 調べることができる。"
3091
3092 #. type: Plain text
3093 #: build/C/man2/capget.2:180
3094 msgid ""
3095 "Bad memory address.  I<hdrp> must not be NULL.  I<datap> may be NULL only "
3096 "when the user is trying to determine the preferred capability version format "
3097 "supported by the kernel."
3098 msgstr ""
3099 "不正なメモリアドレス。 I<hdrp> は NULL であってはならない。 I<datap> に NULL "
3100 "を指定してよいのは、ユーザがカーネルがサポートしている 推奨のケーパビリティ・"
3101 "バージョンを判定しようとしているときだけである。"
3102
3103 #. type: TP
3104 #: build/C/man2/capget.2:180 build/C/man7/cpuset.7:1179
3105 #: build/C/man7/cpuset.7:1188 build/C/man7/cpuset.7:1197
3106 #: build/C/man7/cpuset.7:1207 build/C/man7/cpuset.7:1216
3107 #: build/C/man7/cpuset.7:1223 build/C/man7/cpuset.7:1230
3108 #: build/C/man2/getgroups.2:114 build/C/man2/getgroups.2:121
3109 #: build/C/man2/getpriority.2:119 build/C/man2/getrlimit.2:440
3110 #: build/C/man2/getrusage.2:190 build/C/man2/iopl.2:71
3111 #: build/C/man2/ioprio_set.2:160 build/C/man2/setpgid.2:200
3112 #, no-wrap
3113 msgid "B<EINVAL>"
3114 msgstr "B<EINVAL>"
3115
3116 #. type: Plain text
3117 #: build/C/man2/capget.2:183
3118 msgid "One of the arguments was invalid."
3119 msgstr "引き数のどれかが無効である。"
3120
3121 #. type: Plain text
3122 #: build/C/man2/capget.2:188
3123 msgid ""
3124 "An attempt was made to add a capability to the Permitted set, or to set a "
3125 "capability in the Effective or Inheritable sets that is not in the Permitted "
3126 "set."
3127 msgstr ""
3128 "「許可ケーパビリティセット」にケーパビリティを追加しようとしているか、 もしく"
3129 "は「許可ケーパビリティセット」に含まれないケーパビリティを 「実効ケーパビリ"
3130 "ティセット」や「継承可能ケーパビリティセット」に セットしようとしている。"
3131
3132 #. type: Plain text
3133 #: build/C/man2/capget.2:207
3134 msgid ""
3135 "The caller attempted to use B<capset>()  to modify the capabilities of a "
3136 "thread other than itself, but lacked sufficient privilege.  For kernels "
3137 "supporting VFS capabilities, this is never permitted.  For kernels lacking "
3138 "VFS support, the B<CAP_SETPCAP> capability is required.  (A bug in kernels "
3139 "before 2.6.11 meant that this error could also occur if a thread without "
3140 "this capability tried to change its own capabilities by specifying the "
3141 "I<pid> field as a nonzero value (i.e., the value returned by B<getpid>(2))  "
3142 "instead of 0.)"
3143 msgstr ""
3144 "呼び出し元が自分以外のスレッドのケーパビリティを B<capset>()  を使って修正し"
3145 "ようとしたが、十分な特権がなかった。 VFS ケーパビリティをサポートしているカー"
3146 "ネルでは、 この操作が許可されることは決してない。 VFS ケーパビリティをサポー"
3147 "トしていないカーネルでは、 B<CAP_SETPCAP> ケーパビリティが必要である。 (バー"
3148 "ジョン 2.6.11 より前のカーネルには、 このケーパビリティを持たないスレッドが "
3149 "I<pid> フィールドに 0 でない値 (つまり、0 の代わりに B<getpid>(2)  が返す値) "
3150 "を指定して自分自身のケーパビリティを変更しようとした場合にも、 このエラーが発"
3151 "生するというバグがあった。)"
3152
3153 #. type: TP
3154 #: build/C/man2/capget.2:207 build/C/man7/cpuset.7:1329
3155 #: build/C/man2/getpriority.2:127 build/C/man2/getrlimit.2:464
3156 #: build/C/man2/getsid.2:69 build/C/man2/ioprio_set.2:177
3157 #: build/C/man2/setpgid.2:215
3158 #, no-wrap
3159 msgid "B<ESRCH>"
3160 msgstr "B<ESRCH>"
3161
3162 #. type: Plain text
3163 #: build/C/man2/capget.2:210
3164 msgid "No such thread."
3165 msgstr "そのようなスレッドが存在しない。"
3166
3167 #. type: Plain text
3168 #: build/C/man2/capget.2:212 build/C/man2/ioprio_set.2:188
3169 msgid "These system calls are Linux-specific."
3170 msgstr "これらのシステムコールは Linux 独自である。"
3171
3172 #. type: Plain text
3173 #: build/C/man2/capget.2:217
3174 msgid ""
3175 "The portable interface to the capability querying and setting functions is "
3176 "provided by the I<libcap> library and is available here:"
3177 msgstr ""
3178 "ケーパビリティを設定したり取得したりする機能のための移植性ある インターフェー"
3179 "スは I<libcap> ライブラリによって提供される。 このライブラリは以下から入手で"
3180 "きる:"
3181
3182 #. type: Plain text
3183 #: build/C/man2/capget.2:219
3184 msgid "http://www.kernel.org/pub/linux/libs/security/linux-privs"
3185 msgstr "http://www.kernel.org/pub/linux/libs/security/linux-privs"
3186
3187 #. type: Plain text
3188 #: build/C/man2/capget.2:223
3189 msgid "B<clone>(2), B<gettid>(2), B<capabilities>(7)"
3190 msgstr "B<clone>(2), B<gettid>(2), B<capabilities>(7)"
3191
3192 #. type: TH
3193 #: build/C/man7/cpuset.7:24
3194 #, no-wrap
3195 msgid "CPUSET"
3196 msgstr "CPUSET"
3197
3198 #. type: TH
3199 #: build/C/man7/cpuset.7:24
3200 #, no-wrap
3201 msgid "2008-11-12"
3202 msgstr "2008-11-12"
3203
3204 #. type: Plain text
3205 #: build/C/man7/cpuset.7:27
3206 msgid "cpuset - confine processes to processor and memory node subsets"
3207 msgstr ""
3208
3209 #. type: Plain text
3210 #: build/C/man7/cpuset.7:34
3211 msgid ""
3212 "The cpuset file system is a pseudo-file-system interface to the kernel "
3213 "cpuset mechanism, which is used to control the processor placement and "
3214 "memory placement of processes.  It is commonly mounted at I</dev/cpuset>."
3215 msgstr ""
3216
3217 #. type: Plain text
3218 #: build/C/man7/cpuset.7:51
3219 msgid ""
3220 "On systems with kernels compiled with built in support for cpusets, all "
3221 "processes are attached to a cpuset, and cpusets are always present.  If a "
3222 "system supports cpusets, then it will have the entry B<nodev cpuset> in the "
3223 "file I</proc/filesystems>.  By mounting the cpuset file system (see the "
3224 "B<EXAMPLE> section below), the administrator can configure the cpusets on a "
3225 "system to control the processor and memory placement of processes on that "
3226 "system.  By default, if the cpuset configuration on a system is not modified "
3227 "or if the cpuset file system is not even mounted, then the cpuset mechanism, "
3228 "though present, has no affect on the system's behavior."
3229 msgstr ""
3230
3231 #. type: Plain text
3232 #: build/C/man7/cpuset.7:53
3233 msgid "A cpuset defines a list of CPUs and memory nodes."
3234 msgstr ""
3235
3236 #. type: Plain text
3237 #: build/C/man7/cpuset.7:62
3238 msgid ""
3239 "The CPUs of a system include all the logical processing units on which a "
3240 "process can execute, including, if present, multiple processor cores within "
3241 "a package and Hyper-Threads within a processor core.  Memory nodes include "
3242 "all distinct banks of main memory; small and SMP systems typically have just "
3243 "one memory node that contains all the system's main memory, while NUMA (non-"
3244 "uniform memory access) systems have multiple memory nodes."
3245 msgstr ""
3246
3247 #. type: Plain text
3248 #: build/C/man7/cpuset.7:72
3249 msgid ""
3250 "Cpusets are represented as directories in a hierarchical pseudo-file system, "
3251 "where the top directory in the hierarchy (I</dev/cpuset>)  represents the "
3252 "entire system (all online CPUs and memory nodes)  and any cpuset that is the "
3253 "child (descendant) of another parent cpuset contains a subset of that "
3254 "parent's CPUs and memory nodes.  The directories and files representing "
3255 "cpusets have normal file-system permissions."
3256 msgstr ""
3257
3258 #. type: Plain text
3259 #: build/C/man7/cpuset.7:83
3260 msgid ""
3261 "Every process in the system belongs to exactly one cpuset.  A process is "
3262 "confined to only run on the CPUs in the cpuset it belongs to, and to "
3263 "allocate memory only on the memory nodes in that cpuset.  When a process "
3264 "B<fork>(2)s, the child process is placed in the same cpuset as its parent.  "
3265 "With sufficient privilege, a process may be moved from one cpuset to another "
3266 "and the allowed CPUs and memory nodes of an existing cpuset may be changed."
3267 msgstr ""
3268
3269 #. type: Plain text
3270 #: build/C/man7/cpuset.7:91
3271 msgid ""
3272 "When the system begins booting, a single cpuset is defined that includes all "
3273 "CPUs and memory nodes on the system, and all processes are in that cpuset.  "
3274 "During the boot process, or later during normal system operation, other "
3275 "cpusets may be created, as subdirectories of this top cpuset, under the "
3276 "control of the system administrator, and processes may be placed in these "
3277 "other cpusets."
3278 msgstr ""
3279
3280 #. type: Plain text
3281 #: build/C/man7/cpuset.7:113
3282 msgid ""
3283 "Cpusets are integrated with the B<sched_setaffinity>(2)  scheduling affinity "
3284 "mechanism and the B<mbind>(2)  and B<set_mempolicy>(2)  memory-placement "
3285 "mechanisms in the kernel.  Neither of these mechanisms let a process make "
3286 "use of a CPU or memory node that is not allowed by that process's cpuset.  "
3287 "If changes to a process's cpuset placement conflict with these other "
3288 "mechanisms, then cpuset placement is enforced even if it means overriding "
3289 "these other mechanisms.  The kernel accomplishes this overriding by silently "
3290 "restricting the CPUs and memory nodes requested by these other mechanisms to "
3291 "those allowed by the invoking process's cpuset.  This can result in these "
3292 "other calls returning an error, if for example, such a call ends up "
3293 "requesting an empty set of CPUs or memory nodes, after that request is "
3294 "restricted to the invoking process's cpuset."
3295 msgstr ""
3296
3297 #. type: Plain text
3298 #: build/C/man7/cpuset.7:119
3299 msgid ""
3300 "Typically, a cpuset is used to manage the CPU and memory-node confinement "
3301 "for a set of cooperating processes such as a batch scheduler job, and these "
3302 "other mechanisms are used to manage the placement of individual processes or "
3303 "memory regions within that set or job."
3304 msgstr ""
3305
3306 #. type: SH
3307 #: build/C/man7/cpuset.7:119
3308 #, no-wrap
3309 msgid "FILES"
3310 msgstr ""
3311
3312 #. type: Plain text
3313 #: build/C/man7/cpuset.7:124
3314 msgid ""
3315 "Each directory below I</dev/cpuset> represents a cpuset and contains a fixed "
3316 "set of pseudo-files describing the state of that cpuset."
3317 msgstr ""
3318
3319 #. type: Plain text
3320 #: build/C/man7/cpuset.7:134
3321 msgid ""
3322 "New cpusets are created using the B<mkdir>(2)  system call or the B<mkdir>"
3323 "(1)  command.  The properties of a cpuset, such as its flags, allowed CPUs "
3324 "and memory nodes, and attached processes, are queried and modified by "
3325 "reading or writing to the appropriate file in that cpuset's directory, as "
3326 "listed below."
3327 msgstr ""
3328
3329 #. type: Plain text
3330 #: build/C/man7/cpuset.7:140
3331 msgid ""
3332 "The pseudo-files in each cpuset directory are automatically created when the "
3333 "cpuset is created, as a result of the B<mkdir>(2)  invocation.  It is not "
3334 "possible to directly add or remove these pseudo-files."
3335 msgstr ""
3336
3337 #. type: Plain text
3338 #: build/C/man7/cpuset.7:148
3339 msgid ""
3340 "A cpuset directory that contains no child cpuset directories, and has no "
3341 "attached processes, can be removed using B<rmdir>(2)  or B<rmdir>(1).  It is "
3342 "not necessary, or possible, to remove the pseudo-files inside the directory "
3343 "before removing it."
3344 msgstr ""
3345
3346 #. type: Plain text
3347 #: build/C/man7/cpuset.7:162
3348 msgid ""
3349 "The pseudo-files in each cpuset directory are small text files that may be "
3350 "read and written using traditional shell utilities such as B<cat>(1), and "
3351 "B<echo>(1), or from a program by using file I/O library functions or system "
3352 "calls, such as B<open>(2), B<read>(2), B<write>(2), and B<close>(2)."
3353 msgstr ""
3354
3355 #.  ====================== tasks ======================
3356 #. type: Plain text
3357 #: build/C/man7/cpuset.7:167
3358 msgid ""
3359 "The pseudo-files in a cpuset directory represent internal kernel state and "
3360 "do not have any persistent image on disk.  Each of these per-cpuset files is "
3361 "listed and described below."
3362 msgstr ""
3363
3364 #. type: TP
3365 #: build/C/man7/cpuset.7:167
3366 #, no-wrap
3367 msgid "I<tasks>"
3368 msgstr "I<tasks>"
3369
3370 #. type: Plain text
3371 #: build/C/man7/cpuset.7:177
3372 msgid ""
3373 "List of the process IDs (PIDs) of the processes in that cpuset.  The list is "
3374 "formatted as a series of ASCII decimal numbers, each followed by a newline.  "
3375 "A process may be added to a cpuset (automatically removing it from the "
3376 "cpuset that previously contained it) by writing its PID to that cpuset's "
3377 "I<tasks> file (with or without a trailing newline.)"
3378 msgstr ""
3379
3380 #.  =================== notify_on_release ===================
3381 #. type: Plain text
3382 #: build/C/man7/cpuset.7:185
3383 msgid ""
3384 "B<Warning:> only one PID may be written to the I<tasks> file at a time.  If "
3385 "a string is written that contains more than one PID, only the first one will "
3386 "be used."
3387 msgstr ""
3388
3389 #. type: TP
3390 #: build/C/man7/cpuset.7:185
3391 #, no-wrap
3392 msgid "I<notify_on_release>"
3393 msgstr "I<notify_on_release>"
3394
3395 #.  ====================== cpus ======================
3396 #. type: Plain text
3397 #: build/C/man7/cpuset.7:194
3398 msgid ""
3399 "Flag (0 or 1).  If set (1), that cpuset will receive special handling after "
3400 "it is released, that is, after all processes cease using it (i.e., terminate "
3401 "or are moved to a different cpuset)  and all child cpuset directories have "
3402 "been removed.  See the B<Notify On Release> section, below."
3403 msgstr ""
3404
3405 #. type: TP
3406 #: build/C/man7/cpuset.7:194
3407 #, no-wrap
3408 msgid "I<cpus>"
3409 msgstr "I<cpus>"
3410
3411 #. type: Plain text
3412 #: build/C/man7/cpuset.7:201
3413 msgid ""
3414 "List of the physical numbers of the CPUs on which processes in that cpuset "
3415 "are allowed to execute.  See B<List Format> below for a description of the "
3416 "format of I<cpus>."
3417 msgstr ""
3418
3419 #.  ==================== cpu_exclusive ====================
3420 #. type: Plain text
3421 #: build/C/man7/cpuset.7:207
3422 msgid ""
3423 "The CPUs allowed to a cpuset may be changed by writing a new list to its "
3424 "I<cpus> file."
3425 msgstr ""
3426
3427 #. type: TP
3428 #: build/C/man7/cpuset.7:207
3429 #, no-wrap
3430 msgid "I<cpu_exclusive>"
3431 msgstr "I<cpu_exclusive>"
3432
3433 #. type: Plain text
3434 #: build/C/man7/cpuset.7:214
3435 msgid ""
3436 "Flag (0 or 1).  If set (1), the cpuset has exclusive use of its CPUs (no "
3437 "sibling or cousin cpuset may overlap CPUs).  By default this is off (0).  "
3438 "Newly created cpusets also initially default this to off (0)."
3439 msgstr ""
3440
3441 #.  ====================== mems ======================
3442 #. type: Plain text
3443 #: build/C/man7/cpuset.7:236
3444 msgid ""
3445 "Two cpusets are I<sibling> cpusets if they share the same parent cpuset in "
3446 "the I</dev/cpuset> hierarchy.  Two cpusets are I<cousin> cpusets if neither "
3447 "is the ancestor of the other.  Regardless of the I<cpu_exclusive> setting, "
3448 "if one cpuset is the ancestor of another, and if both of these cpusets have "
3449 "nonempty I<cpus>, then their I<cpus> must overlap, because the I<cpus> of "
3450 "any cpuset are always a subset of the I<cpus> of its parent cpuset."
3451 msgstr ""
3452
3453 #. type: TP
3454 #: build/C/man7/cpuset.7:236
3455 #, no-wrap
3456 msgid "I<mems>"
3457 msgstr "I<mems>"
3458
3459 #.  ==================== mem_exclusive ====================
3460 #. type: Plain text
3461 #: build/C/man7/cpuset.7:244
3462 msgid ""
3463 "List of memory nodes on which processes in this cpuset are allowed to "
3464 "allocate memory.  See B<List Format> below for a description of the format "
3465 "of I<mems>."
3466 msgstr ""
3467
3468 #. type: TP
3469 #: build/C/man7/cpuset.7:244
3470 #, no-wrap
3471 msgid "I<mem_exclusive>"
3472 msgstr "I<mem_exclusive>"
3473
3474 #. type: Plain text
3475 #: build/C/man7/cpuset.7:252
3476 msgid ""
3477 "Flag (0 or 1).  If set (1), the cpuset has exclusive use of its memory nodes "
3478 "(no sibling or cousin may overlap).  Also if set (1), the cpuset is a "
3479 "B<Hardwall> cpuset (see below.)  By default this is off (0).  Newly created "
3480 "cpusets also initially default this to off (0)."
3481 msgstr ""
3482
3483 #.  ==================== mem_hardwall ====================
3484 #. type: Plain text
3485 #: build/C/man7/cpuset.7:260
3486 msgid ""
3487 "Regardless of the I<mem_exclusive> setting, if one cpuset is the ancestor of "
3488 "another, then their memory nodes must overlap, because the memory nodes of "
3489 "any cpuset are always a subset of the memory nodes of that cpuset's parent "
3490 "cpuset."
3491 msgstr ""
3492
3493 #. type: TP
3494 #: build/C/man7/cpuset.7:260
3495 #, no-wrap
3496 msgid "I<mem_hardwall> (since Linux 2.6.26)"
3497 msgstr ""
3498
3499 #.  ==================== memory_migrate ====================
3500 #. type: Plain text
3501 #: build/C/man7/cpuset.7:271
3502 msgid ""
3503 "Flag (0 or 1).  If set (1), the cpuset is a B<Hardwall> cpuset (see below.)  "
3504 "Unlike B<mem_exclusive>, there is no constraint on whether cpusets marked "
3505 "B<mem_hardwall> may have overlapping memory nodes with sibling or cousin "
3506 "cpusets.  By default this is off (0).  Newly created cpusets also initially "
3507 "default this to off (0)."
3508 msgstr ""
3509
3510 #. type: TP
3511 #: build/C/man7/cpuset.7:271
3512 #, no-wrap
3513 msgid "I<memory_migrate> (since Linux 2.6.16)"
3514 msgstr ""
3515
3516 #.  ==================== memory_pressure ====================
3517 #. type: Plain text
3518 #: build/C/man7/cpuset.7:278
3519 msgid ""
3520 "Flag (0 or 1).  If set (1), then memory migration is enabled.  By default "
3521 "this is off (0).  See the B<Memory Migration> section, below."
3522 msgstr ""
3523
3524 #. type: TP
3525 #: build/C/man7/cpuset.7:278
3526 #, no-wrap
3527 msgid "I<memory_pressure> (since Linux 2.6.16)"
3528 msgstr ""
3529
3530 #.  ================= memory_pressure_enabled =================
3531 #. type: Plain text
3532 #: build/C/man7/cpuset.7:291
3533 msgid ""
3534 "A measure of how much memory pressure the processes in this cpuset are "
3535 "causing.  See the B<Memory Pressure> section, below.  Unless "
3536 "I<memory_pressure_enabled> is enabled, always has value zero (0).  This file "
3537 "is read-only.  See the B<WARNINGS> section, below."
3538 msgstr ""
3539
3540 #. type: TP
3541 #: build/C/man7/cpuset.7:291
3542 #, no-wrap
3543 msgid "I<memory_pressure_enabled> (since Linux 2.6.16)"
3544 msgstr ""
3545
3546 #.  ================== memory_spread_page ==================
3547 #. type: Plain text
3548 #: build/C/man7/cpuset.7:303
3549 msgid ""
3550 "Flag (0 or 1).  This file is only present in the root cpuset, normally I</"
3551 "dev/cpuset>.  If set (1), the I<memory_pressure> calculations are enabled "
3552 "for all cpusets in the system.  By default this is off (0).  See the "
3553 "B<Memory Pressure> section, below."
3554 msgstr ""
3555
3556 #. type: TP
3557 #: build/C/man7/cpuset.7:303
3558 #, no-wrap
3559 msgid "I<memory_spread_page> (since Linux 2.6.17)"
3560 msgstr ""
3561
3562 #.  ================== memory_spread_slab ==================
3563 #. type: Plain text
3564 #: build/C/man7/cpuset.7:313
3565 msgid ""
3566 "Flag (0 or 1).  If set (1), pages in the kernel page cache (file-system "
3567 "buffers) are uniformly spread across the cpuset.  By default this is off (0) "
3568 "in the top cpuset, and inherited from the parent cpuset in newly created "
3569 "cpusets.  See the B<Memory Spread> section, below."
3570 msgstr ""
3571
3572 #. type: TP
3573 #: build/C/man7/cpuset.7:313
3574 #, no-wrap
3575 msgid "I<memory_spread_slab> (since Linux 2.6.17)"
3576 msgstr ""
3577
3578 #.  ================== sched_load_balance ==================
3579 #. type: Plain text
3580 #: build/C/man7/cpuset.7:324
3581 msgid ""
3582 "Flag (0 or 1).  If set (1), the kernel slab caches for file I/O (directory "
3583 "and inode structures) are uniformly spread across the cpuset.  By default "
3584 "this is off (0) in the top cpuset, and inherited from the parent cpuset in "
3585 "newly created cpusets.  See the B<Memory Spread> section, below."
3586 msgstr ""
3587
3588 #. type: TP
3589 #: build/C/man7/cpuset.7:324
3590 #, no-wrap
3591 msgid "I<sched_load_balance> (since Linux 2.6.24)"
3592 msgstr ""
3593
3594 #.  ================== sched_relax_domain_level ==================
3595 #. type: Plain text
3596 #: build/C/man7/cpuset.7:338
3597 msgid ""
3598 "Flag (0 or 1).  If set (1, the default) the kernel will automatically load "
3599 "balance processes in that cpuset over the allowed CPUs in that cpuset.  If "
3600 "cleared (0) the kernel will avoid load balancing processes in this cpuset, "
3601 "I<unless> some other cpuset with overlapping CPUs has its "
3602 "I<sched_load_balance> flag set.  See B<Scheduler Load Balancing>, below, for "
3603 "further details."
3604 msgstr ""
3605
3606 #. type: TP
3607 #: build/C/man7/cpuset.7:338
3608 #, no-wrap
3609 msgid "I<sched_relax_domain_level> (since Linux 2.6.26)"
3610 msgstr ""
3611
3612 #.  ================== proc cpuset ==================
3613 #. type: Plain text
3614 #: build/C/man7/cpuset.7:358
3615 msgid ""
3616 "Integer, between -1 and a small positive value.  The "
3617 "I<sched_relax_domain_level> controls the width of the range of CPUs over "
3618 "which the kernel scheduler performs immediate rebalancing of runnable tasks "
3619 "across CPUs.  If I<sched_load_balance> is disabled, then the setting of "
3620 "I<sched_relax_domain_level> does not matter, as no such load balancing is "
3621 "done.  If I<sched_load_balance> is enabled, then the higher the value of the "
3622 "I<sched_relax_domain_level>, the wider the range of CPUs over which "
3623 "immediate load balancing is attempted.  See B<Scheduler Relax Domain Level>, "
3624 "below, for further details."
3625 msgstr ""
3626
3627 #.  ================== proc status ==================
3628 #. type: Plain text
3629 #: build/C/man7/cpuset.7:366
3630 msgid ""
3631 "In addition to the above pseudo-files in each directory below I</dev/"
3632 "cpuset>, each process has a pseudo-file, I</proc/E<lt>pidE<gt>/cpuset>, that "
3633 "displays the path of the process's cpuset directory relative to the root of "
3634 "the cpuset file system."
3635 msgstr ""
3636
3637 #. type: Plain text
3638 #: build/C/man7/cpuset.7:377
3639 msgid ""
3640 "Also the I</proc/E<lt>pidE<gt>/status> file for each process has four added "
3641 "lines, displaying the process's I<Cpus_allowed> (on which CPUs it may be "
3642 "scheduled) and I<Mems_allowed> (on which memory nodes it may obtain memory), "
3643 "in the two formats B<Mask Format> and B<List Format> (see below)  as shown "
3644 "in the following example:"
3645 msgstr ""
3646
3647 #. type: Plain text
3648 #: build/C/man7/cpuset.7:384
3649 #, no-wrap
3650 msgid ""
3651 "Cpus_allowed:   ffffffff,ffffffff,ffffffff,ffffffff\n"
3652 "Cpus_allowed_list:     0-127\n"
3653 "Mems_allowed:   ffffffff,ffffffff\n"
3654 "Mems_allowed_list:     0-63\n"
3655 msgstr ""
3656 "Cpus_allowed:   ffffffff,ffffffff,ffffffff,ffffffff\n"
3657 "Cpus_allowed_list:     0-127\n"
3658 "Mems_allowed:   ffffffff,ffffffff\n"
3659 "Mems_allowed_list:     0-63\n"
3660
3661 #.  ================== EXTENDED CAPABILITIES ==================
3662 #. type: Plain text
3663 #: build/C/man7/cpuset.7:390
3664 msgid ""
3665 "The \"allowed\" fields were added in Linux 2.6.24; the \"allowed_list\" "
3666 "fields were added in Linux 2.6.26."
3667 msgstr ""
3668
3669 #. type: SH
3670 #: build/C/man7/cpuset.7:390
3671 #, no-wrap
3672 msgid "EXTENDED CAPABILITIES"
3673 msgstr ""
3674
3675 #.  ================== Exclusive Cpusets ==================
3676 #. type: Plain text
3677 #: build/C/man7/cpuset.7:398
3678 msgid ""
3679 "In addition to controlling which I<cpus> and I<mems> a process is allowed to "
3680 "use, cpusets provide the following extended capabilities."
3681 msgstr ""
3682
3683 #. type: SS
3684 #: build/C/man7/cpuset.7:398
3685 #, no-wrap
3686 msgid "Exclusive Cpusets"
3687 msgstr ""
3688
3689 #. type: Plain text
3690 #: build/C/man7/cpuset.7:405
3691 msgid ""
3692 "If a cpuset is marked I<cpu_exclusive> or I<mem_exclusive>, no other cpuset, "
3693 "other than a direct ancestor or descendant, may share any of the same CPUs "
3694 "or memory nodes."
3695 msgstr ""
3696
3697 #.  ================== Hardwall ==================
3698 #. type: Plain text
3699 #: build/C/man7/cpuset.7:431
3700 msgid ""
3701 "A cpuset that is I<mem_exclusive> restricts kernel allocations for buffer "
3702 "cache pages and other internal kernel data pages commonly shared by the "
3703 "kernel across multiple users.  All cpusets, whether I<mem_exclusive> or not, "
3704 "restrict allocations of memory for user space.  This enables configuring a "
3705 "system so that several independent jobs can share common kernel data, while "
3706 "isolating each job's user allocation in its own cpuset.  To do this, "
3707 "construct a large I<mem_exclusive> cpuset to hold all the jobs, and "
3708 "construct child, non-I<mem_exclusive> cpusets for each individual job.  Only "
3709 "a small amount of kernel memory, such as requests from interrupt handlers, "
3710 "is allowed to be placed on memory nodes outside even a I<mem_exclusive> "
3711 "cpuset."
3712 msgstr ""
3713
3714 #. type: SS
3715 #: build/C/man7/cpuset.7:431
3716 #, no-wrap
3717 msgid "Hardwall"
3718 msgstr ""
3719
3720 #. type: Plain text
3721 #: build/C/man7/cpuset.7:446
3722 msgid ""
3723 "A cpuset that has I<mem_exclusive> or I<mem_hardwall> set is a I<hardwall> "
3724 "cpuset.  A I<hardwall> cpuset restricts kernel allocations for page, buffer, "
3725 "and other data commonly shared by the kernel across multiple users.  All "
3726 "cpusets, whether I<hardwall> or not, restrict allocations of memory for user "
3727 "space."
3728 msgstr ""
3729
3730 #. type: Plain text
3731 #: build/C/man7/cpuset.7:457
3732 msgid ""
3733 "This enables configuring a system so that several independent jobs can share "
3734 "common kernel data, such as file system pages, while isolating each job's "
3735 "user allocation in its own cpuset.  To do this, construct a large "
3736 "I<hardwall> cpuset to hold all the jobs, and construct child cpusets for "
3737 "each individual job which are not I<hardwall> cpusets."
3738 msgstr ""
3739
3740 #.  ================== Notify On Release ==================
3741 #. type: Plain text
3742 #: build/C/man7/cpuset.7:463
3743 msgid ""
3744 "Only a small amount of kernel memory, such as requests from interrupt "
3745 "handlers, is allowed to be taken outside even a I<hardwall> cpuset."
3746 msgstr ""
3747
3748 #. type: SS
3749 #: build/C/man7/cpuset.7:463
3750 #, no-wrap
3751 msgid "Notify On Release"
3752 msgstr ""
3753
3754 #. type: Plain text
3755 #: build/C/man7/cpuset.7:475
3756 msgid ""
3757 "If the I<notify_on_release> flag is enabled (1) in a cpuset, then whenever "
3758 "the last process in the cpuset leaves (exits or attaches to some other "
3759 "cpuset)  and the last child cpuset of that cpuset is removed, the kernel "
3760 "will run the command I</sbin/cpuset_release_agent>, supplying the pathname "
3761 "(relative to the mount point of the cpuset file system) of the abandoned "
3762 "cpuset.  This enables automatic removal of abandoned cpusets."
3763 msgstr ""
3764
3765 #. type: Plain text
3766 #: build/C/man7/cpuset.7:483
3767 msgid ""
3768 "The default value of I<notify_on_release> in the root cpuset at system boot "
3769 "is disabled (0).  The default value of other cpusets at creation is the "
3770 "current value of their parent's I<notify_on_release> setting."
3771 msgstr ""
3772
3773 #. type: Plain text
3774 #: build/C/man7/cpuset.7:491
3775 msgid ""
3776 "The command I</sbin/cpuset_release_agent> is invoked, with the name (I</dev/"
3777 "cpuset> relative path)  of the to-be-released cpuset in I<argv[1]>."
3778 msgstr ""
3779
3780 #. type: Plain text
3781 #: build/C/man7/cpuset.7:495
3782 msgid ""
3783 "The usual contents of the command I</sbin/cpuset_release_agent> is simply "
3784 "the shell script:"
3785 msgstr ""
3786
3787 #. type: Plain text
3788 #: build/C/man7/cpuset.7:500
3789 #, no-wrap
3790 msgid ""
3791 "#!/bin/sh\n"
3792 "rmdir /dev/cpuset/$1\n"
3793 msgstr ""
3794 "#!/bin/sh\n"
3795 "rmdir /dev/cpuset/$1\n"
3796
3797 #.  ================== Memory Pressure ==================
3798 #. type: Plain text
3799 #: build/C/man7/cpuset.7:508
3800 msgid ""
3801 "As with other flag values below, this flag can be changed by writing an "
3802 "ASCII number 0 or 1 (with optional trailing newline)  into the file, to "
3803 "clear or set the flag, respectively."
3804 msgstr ""
3805
3806 #. type: SS
3807 #: build/C/man7/cpuset.7:508
3808 #, no-wrap
3809 msgid "Memory Pressure"
3810 msgstr ""
3811
3812 #. type: Plain text
3813 #: build/C/man7/cpuset.7:514
3814 msgid ""
3815 "The I<memory_pressure> of a cpuset provides a simple per-cpuset running "
3816 "average of the rate that the processes in a cpuset are attempting to free up "
3817 "in-use memory on the nodes of the cpuset to satisfy additional memory "
3818 "requests."
3819 msgstr ""
3820
3821 #. type: Plain text
3822 #: build/C/man7/cpuset.7:518
3823 msgid ""
3824 "This enables batch managers that are monitoring jobs running in dedicated "
3825 "cpusets to efficiently detect what level of memory pressure that job is "
3826 "causing."
3827 msgstr ""
3828
3829 #. type: Plain text
3830 #: build/C/man7/cpuset.7:525
3831 msgid ""
3832 "This is useful both on tightly managed systems running a wide mix of "
3833 "submitted jobs, which may choose to terminate or reprioritize jobs that are "
3834 "trying to use more memory than allowed on the nodes assigned them, and with "
3835 "tightly coupled, long-running, massively parallel scientific computing jobs "
3836 "that will dramatically fail to meet required performance goals if they start "
3837 "to use more memory than allowed to them."
3838 msgstr ""
3839
3840 #. type: Plain text
3841 #: build/C/man7/cpuset.7:530
3842 msgid ""
3843 "This mechanism provides a very economical way for the batch manager to "
3844 "monitor a cpuset for signs of memory pressure.  It's up to the batch manager "
3845 "or other user code to decide what action to take if it detects signs of "
3846 "memory pressure."
3847 msgstr ""
3848
3849 #. type: Plain text
3850 #: build/C/man7/cpuset.7:537
3851 msgid ""
3852 "Unless memory pressure calculation is enabled by setting the pseudo-file I</"
3853 "dev/cpuset/memory_pressure_enabled>, it is not computed for any cpuset, and "
3854 "reads from any I<memory_pressure> always return zero, as represented by the "
3855 "ASCII string \"0\\en\".  See the B<WARNINGS> section, below."
3856 msgstr ""
3857
3858 #. type: Plain text
3859 #: build/C/man7/cpuset.7:539
3860 msgid "A per-cpuset, running average is employed for the following reasons:"
3861 msgstr ""
3862
3863 #. type: Plain text
3864 #: build/C/man7/cpuset.7:544
3865 msgid ""
3866 "Because this meter is per-cpuset rather than per-process or per virtual "
3867 "memory region, the system load imposed by a batch scheduler monitoring this "
3868 "metric is sharply reduced on large systems, because a scan of the tasklist "
3869 "can be avoided on each set of queries."
3870 msgstr ""
3871
3872 #. type: Plain text
3873 #: build/C/man7/cpuset.7:549
3874 msgid ""
3875 "Because this meter is a running average rather than an accumulating counter, "
3876 "a batch scheduler can detect memory pressure with a single read, instead of "
3877 "having to read and accumulate results for a period of time."
3878 msgstr ""
3879
3880 #. type: Plain text
3881 #: build/C/man7/cpuset.7:555
3882 msgid ""
3883 "Because this meter is per-cpuset rather than per-process, the batch "
3884 "scheduler can obtain the key information\\(emmemory pressure in a cpuset"
3885 "\\(emwith a single read, rather than having to query and accumulate results "
3886 "over all the (dynamically changing)  set of processes in the cpuset."
3887 msgstr ""
3888
3889 #. type: Plain text
3890 #: build/C/man7/cpuset.7:563
3891 msgid ""
3892 "The I<memory_pressure> of a cpuset is calculated using a per-cpuset simple "
3893 "digital filter that is kept within the kernel.  For each cpuset, this filter "
3894 "tracks the recent rate at which processes attached to that cpuset enter the "
3895 "kernel direct reclaim code."
3896 msgstr ""
3897
3898 #. type: Plain text
3899 #: build/C/man7/cpuset.7:572
3900 msgid ""
3901 "The kernel direct reclaim code is entered whenever a process has to satisfy "
3902 "a memory page request by first finding some other page to repurpose, due to "
3903 "lack of any readily available already free pages.  Dirty file system pages "
3904 "are repurposed by first writing them to disk.  Unmodified file system buffer "
3905 "pages are repurposed by simply dropping them, though if that page is needed "
3906 "again, it will have to be reread from disk."
3907 msgstr ""
3908
3909 #.  ================== Memory Spread ==================
3910 #. type: Plain text
3911 #: build/C/man7/cpuset.7:580
3912 msgid ""
3913 "The I<memory_pressure> file provides an integer number representing the "
3914 "recent (half-life of 10 seconds) rate of entries to the direct reclaim code "
3915 "caused by any process in the cpuset, in units of reclaims attempted per "
3916 "second, times 1000."
3917 msgstr ""
3918
3919 #. type: SS
3920 #: build/C/man7/cpuset.7:580
3921 #, no-wrap
3922 msgid "Memory Spread"
3923 msgstr ""
3924
3925 #. type: Plain text
3926 #: build/C/man7/cpuset.7:588
3927 msgid ""
3928 "There are two Boolean flag files per cpuset that control where the kernel "
3929 "allocates pages for the file-system buffers and related in-kernel data "
3930 "structures.  They are called I<memory_spread_page> and I<memory_spread_slab>."
3931 msgstr ""
3932
3933 #. type: Plain text
3934 #: build/C/man7/cpuset.7:595
3935 msgid ""
3936 "If the per-cpuset Boolean flag file I<memory_spread_page> is set, then the "
3937 "kernel will spread the file-system buffers (page cache) evenly over all the "
3938 "nodes that the faulting process is allowed to use, instead of preferring to "
3939 "put those pages on the node where the process is running."
3940 msgstr ""
3941
3942 #. type: Plain text
3943 #: build/C/man7/cpuset.7:603
3944 msgid ""
3945 "If the per-cpuset Boolean flag file I<memory_spread_slab> is set, then the "
3946 "kernel will spread some file-system-related slab caches, such as those for "
3947 "inodes and directory entries, evenly over all the nodes that the faulting "
3948 "process is allowed to use, instead of preferring to put those pages on the "
3949 "node where the process is running."
3950 msgstr ""
3951
3952 #. type: Plain text
3953 #: build/C/man7/cpuset.7:608
3954 msgid ""
3955 "The setting of these flags does not affect the data segment (see B<brk>(2))  "
3956 "or stack segment pages of a process."
3957 msgstr ""
3958
3959 #. type: Plain text
3960 #: build/C/man7/cpuset.7:616
3961 msgid ""
3962 "By default, both kinds of memory spreading are off and the kernel prefers to "
3963 "allocate memory pages on the node local to where the requesting process is "
3964 "running.  If that node is not allowed by the process's NUMA memory policy or "
3965 "cpuset configuration or if there are insufficient free memory pages on that "
3966 "node, then the kernel looks for the nearest node that is allowed and has "
3967 "sufficient free memory."
3968 msgstr ""
3969
3970 #. type: Plain text
3971 #: build/C/man7/cpuset.7:619
3972 msgid ""
3973 "When new cpusets are created, they inherit the memory spread settings of "
3974 "their parent."
3975 msgstr ""
3976
3977 #. type: Plain text
3978 #: build/C/man7/cpuset.7:634
3979 msgid ""
3980 "Setting memory spreading causes allocations for the affected page or slab "
3981 "caches to ignore the process's NUMA memory policy and be spread instead.  "
3982 "However, the effect of these changes in memory placement caused by cpuset-"
3983 "specified memory spreading is hidden from the B<mbind>(2)  or "
3984 "B<set_mempolicy>(2)  calls.  These two NUMA memory policy calls always "
3985 "appear to behave as if no cpuset-specified memory spreading is in effect, "
3986 "even if it is.  If cpuset memory spreading is subsequently turned off, the "
3987 "NUMA memory policy most recently specified by these calls is automatically "
3988 "reapplied."
3989 msgstr ""
3990
3991 #. type: Plain text
3992 #: build/C/man7/cpuset.7:643
3993 msgid ""
3994 "Both I<memory_spread_page> and I<memory_spread_slab> are Boolean flag "
3995 "files.  By default they contain \"0\", meaning that the feature is off for "
3996 "that cpuset.  If a \"1\" is written to that file, that turns the named "
3997 "feature on."
3998 msgstr ""
3999
4000 #. type: Plain text
4001 #: build/C/man7/cpuset.7:646
4002 msgid ""
4003 "Cpuset-specified memory spreading behaves similarly to what is known (in "
4004 "other contexts) as round-robin or interleave memory placement."
4005 msgstr ""
4006
4007 #. type: Plain text
4008 #: build/C/man7/cpuset.7:649
4009 msgid ""
4010 "Cpuset-specified memory spreading can provide substantial performance "
4011 "improvements for jobs that:"
4012 msgstr ""
4013
4014 #. type: IP
4015 #: build/C/man7/cpuset.7:649
4016 #, no-wrap
4017 msgid "a)"
4018 msgstr "a)"
4019
4020 #. type: Plain text
4021 #: build/C/man7/cpuset.7:653
4022 msgid ""
4023 "need to place thread-local data on memory nodes close to the CPUs which are "
4024 "running the threads that most frequently access that data; but also"
4025 msgstr ""
4026
4027 #. type: IP
4028 #: build/C/man7/cpuset.7:653
4029 #, no-wrap
4030 msgid "b)"
4031 msgstr "b)"
4032
4033 #. type: Plain text
4034 #: build/C/man7/cpuset.7:656
4035 msgid ""
4036 "need to access large file-system data sets that must to be spread across the "
4037 "several nodes in the job's cpuset in order to fit."
4038 msgstr ""
4039
4040 #.  ================== Memory Migration ==================
4041 #. type: Plain text
4042 #: build/C/man7/cpuset.7:663
4043 msgid ""
4044 "Without this policy, the memory allocation across the nodes in the job's "
4045 "cpuset can become very uneven, especially for jobs that might have just a "
4046 "single thread initializing or reading in the data set."
4047 msgstr ""
4048
4049 #. type: SS
4050 #: build/C/man7/cpuset.7:663
4051 #, no-wrap
4052 msgid "Memory Migration"
4053 msgstr ""
4054
4055 #. type: Plain text
4056 #: build/C/man7/cpuset.7:672
4057 msgid ""
4058 "Normally, under the default setting (disabled) of I<memory_migrate>, once a "
4059 "page is allocated (given a physical page of main memory) then that page "
4060 "stays on whatever node it was allocated, so long as it remains allocated, "
4061 "even if the cpuset's memory-placement policy I<mems> subsequently changes."
4062 msgstr ""
4063
4064 #. type: Plain text
4065 #: build/C/man7/cpuset.7:678
4066 msgid ""
4067 "When memory migration is enabled in a cpuset, if the I<mems> setting of the "
4068 "cpuset is changed, then any memory page in use by any process in the cpuset "
4069 "that is on a memory node that is no longer allowed will be migrated to a "
4070 "memory node that is allowed."
4071 msgstr ""
4072
4073 #. type: Plain text
4074 #: build/C/man7/cpuset.7:684
4075 msgid ""
4076 "Furthermore, if a process is moved into a cpuset with I<memory_migrate> "
4077 "enabled, any memory pages it uses that were on memory nodes allowed in its "
4078 "previous cpuset, but which are not allowed in its new cpuset, will be "
4079 "migrated to a memory node allowed in the new cpuset."
4080 msgstr ""
4081
4082 #.  ================== Scheduler Load Balancing ==================
4083 #. type: Plain text
4084 #: build/C/man7/cpuset.7:692
4085 msgid ""
4086 "The relative placement of a migrated page within the cpuset is preserved "
4087 "during these migration operations if possible.  For example, if the page was "
4088 "on the second valid node of the prior cpuset, then the page will be placed "
4089 "on the second valid node of the new cpuset, if possible."
4090 msgstr ""
4091
4092 #. type: SS
4093 #: build/C/man7/cpuset.7:692
4094 #, no-wrap
4095 msgid "Scheduler Load Balancing"
4096 msgstr ""
4097
4098 #. type: Plain text
4099 #: build/C/man7/cpuset.7:699
4100 msgid ""
4101 "The kernel scheduler automatically load balances processes.  If one CPU is "
4102 "underutilized, the kernel will look for processes on other more overloaded "
4103 "CPUs and move those processes to the underutilized CPU, within the "
4104 "constraints of such placement mechanisms as cpusets and B<sched_setaffinity>"
4105 "(2)."
4106 msgstr ""
4107
4108 #. type: Plain text
4109 #: build/C/man7/cpuset.7:712
4110 msgid ""
4111 "The algorithmic cost of load balancing and its impact on key shared kernel "
4112 "data structures such as the process list increases more than linearly with "
4113 "the number of CPUs being balanced.  For example, it costs more to load "
4114 "balance across one large set of CPUs than it does to balance across two "
4115 "smaller sets of CPUs, each of half the size of the larger set.  (The precise "
4116 "relationship between the number of CPUs being balanced and the cost of load "
4117 "balancing depends on implementation details of the kernel process scheduler, "
4118 "which is subject to change over time, as improved kernel scheduler "
4119 "algorithms are implemented.)"
4120 msgstr ""
4121
4122 #. type: Plain text
4123 #: build/C/man7/cpuset.7:718
4124 msgid ""
4125 "The per-cpuset flag I<sched_load_balance> provides a mechanism to suppress "
4126 "this automatic scheduler load balancing in cases where it is not needed and "
4127 "suppressing it would have worthwhile performance benefits."
4128 msgstr ""
4129
4130 #. type: Plain text
4131 #: build/C/man7/cpuset.7:722
4132 msgid ""
4133 "By default, load balancing is done across all CPUs, except those marked "
4134 "isolated using the kernel boot time \"isolcpus=\" argument.  (See "
4135 "B<Scheduler Relax Domain Level>, below, to change this default.)"
4136 msgstr ""
4137
4138 #. type: Plain text
4139 #: build/C/man7/cpuset.7:725
4140 msgid ""
4141 "This default load balancing across all CPUs is not well suited to the "
4142 "following two situations:"
4143 msgstr ""
4144
4145 #. type: Plain text
4146 #: build/C/man7/cpuset.7:729
4147 msgid ""
4148 "On large systems, load balancing across many CPUs is expensive.  If the "
4149 "system is managed using cpusets to place independent jobs on separate sets "
4150 "of CPUs, full load balancing is unnecessary."
4151 msgstr ""
4152
4153 #. type: Plain text
4154 #: build/C/man7/cpuset.7:733
4155 msgid ""
4156 "Systems supporting real-time on some CPUs need to minimize system overhead "
4157 "on those CPUs, including avoiding process load balancing if that is not "
4158 "needed."
4159 msgstr ""
4160
4161 #. type: Plain text
4162 #: build/C/man7/cpuset.7:743
4163 msgid ""
4164 "When the per-cpuset flag I<sched_load_balance> is enabled (the default "
4165 "setting), it requests load balancing across all the CPUs in that cpuset's "
4166 "allowed CPUs, ensuring that load balancing can move a process (not otherwise "
4167 "pinned, as by B<sched_setaffinity>(2))  from any CPU in that cpuset to any "
4168 "other."
4169 msgstr ""
4170
4171 #. type: Plain text
4172 #: build/C/man7/cpuset.7:752
4173 msgid ""
4174 "When the per-cpuset flag I<sched_load_balance> is disabled, then the "
4175 "scheduler will avoid load balancing across the CPUs in that cpuset, "
4176 "I<except> in so far as is necessary because some overlapping cpuset has "
4177 "I<sched_load_balance> enabled."
4178 msgstr ""
4179
4180 #. type: Plain text
4181 #: build/C/man7/cpuset.7:760
4182 msgid ""
4183 "So, for example, if the top cpuset has the flag I<sched_load_balance> "
4184 "enabled, then the scheduler will load balance across all CPUs, and the "
4185 "setting of the I<sched_load_balance> flag in other cpusets has no effect, as "
4186 "we're already fully load balancing."
4187 msgstr ""
4188
4189 #. type: Plain text
4190 #: build/C/man7/cpuset.7:765
4191 msgid ""
4192 "Therefore in the above two situations, the flag I<sched_load_balance> should "
4193 "be disabled in the top cpuset, and only some of the smaller, child cpusets "
4194 "would have this flag enabled."
4195 msgstr ""
4196
4197 #. type: Plain text
4198 #: build/C/man7/cpuset.7:773
4199 msgid ""
4200 "When doing this, you don't usually want to leave any unpinned processes in "
4201 "the top cpuset that might use nontrivial amounts of CPU, as such processes "
4202 "may be artificially constrained to some subset of CPUs, depending on the "
4203 "particulars of this flag setting in descendant cpusets.  Even if such a "
4204 "process could use spare CPU cycles in some other CPUs, the kernel scheduler "
4205 "might not consider the possibility of load balancing that process to the "
4206 "underused CPU."
4207 msgstr ""
4208
4209 #.  ================== Scheduler Relax Domain Level ==================
4210 #. type: Plain text
4211 #: build/C/man7/cpuset.7:779
4212 msgid ""
4213 "Of course, processes pinned to a particular CPU can be left in a cpuset that "
4214 "disables I<sched_load_balance> as those processes aren't going anywhere else "
4215 "anyway."
4216 msgstr ""
4217
4218 #. type: SS
4219 #: build/C/man7/cpuset.7:779
4220 #, no-wrap
4221 msgid "Scheduler Relax Domain Level"
4222 msgstr ""
4223
4224 #. type: Plain text
4225 #: build/C/man7/cpuset.7:800
4226 msgid ""
4227 "The kernel scheduler performs immediate load balancing whenever a CPU "
4228 "becomes free or another task becomes runnable.  This load balancing works to "
4229 "ensure that as many CPUs as possible are usefully employed running tasks.  "
4230 "The kernel also performs periodic load balancing off the software clock "
4231 "described in I<time>(7).  The setting of I<sched_relax_domain_level> only "
4232 "applies to immediate load balancing.  Regardless of the "
4233 "I<sched_relax_domain_level> setting, periodic load balancing is attempted "
4234 "over all CPUs (unless disabled by turning off I<sched_load_balance>.)  In "
4235 "any case, of course, tasks will only be scheduled to run on CPUs allowed by "
4236 "their cpuset, as modified by B<sched_setaffinity>(2)  system calls."
4237 msgstr ""
4238
4239 #. type: Plain text
4240 #: build/C/man7/cpuset.7:808
4241 msgid ""
4242 "On small systems, such as those with just a few CPUs, immediate load "
4243 "balancing is useful to improve system interactivity and to minimize wasteful "
4244 "idle CPU cycles.  But on large systems, attempting immediate load balancing "
4245 "across a large number of CPUs can be more costly than it is worth, depending "
4246 "on the particular performance characteristics of the job mix and the "
4247 "hardware."
4248 msgstr ""
4249
4250 #. type: Plain text
4251 #: build/C/man7/cpuset.7:816
4252 msgid ""
4253 "The exact meaning of the small integer values of I<sched_relax_domain_level> "
4254 "will depend on internal implementation details of the kernel scheduler code "
4255 "and on the non-uniform architecture of the hardware.  Both of these will "
4256 "evolve over time and vary by system architecture and kernel version."
4257 msgstr ""
4258
4259 #. type: Plain text
4260 #: build/C/man7/cpuset.7:821
4261 msgid ""
4262 "As of this writing, when this capability was introduced in Linux 2.6.26, on "
4263 "certain popular architectures, the positive values of "
4264 "I<sched_relax_domain_level> have the following meanings."
4265 msgstr ""
4266
4267 #. type: IP
4268 #: build/C/man7/cpuset.7:823
4269 #, no-wrap
4270 msgid "B<(1)>"
4271 msgstr "B<(1)>"
4272
4273 #. type: Plain text
4274 #: build/C/man7/cpuset.7:826
4275 msgid ""
4276 "Perform immediate load balancing across Hyper-Thread siblings on the same "
4277 "core."
4278 msgstr ""
4279
4280 #. type: IP
4281 #: build/C/man7/cpuset.7:826
4282 #, no-wrap
4283 msgid "B<(2)>"
4284 msgstr "B<(2)>"
4285
4286 #. type: Plain text
4287 #: build/C/man7/cpuset.7:828
4288 msgid ""
4289 "Perform immediate load balancing across other cores in the same package."
4290 msgstr ""
4291
4292 #. type: IP
4293 #: build/C/man7/cpuset.7:828
4294 #, no-wrap
4295 msgid "B<(3)>"
4296 msgstr "B<(3)>"
4297
4298 #. type: Plain text
4299 #: build/C/man7/cpuset.7:831
4300 msgid ""
4301 "Perform immediate load balancing across other CPUs on the same node or blade."
4302 msgstr ""
4303
4304 #. type: IP
4305 #: build/C/man7/cpuset.7:831
4306 #, no-wrap
4307 msgid "B<(4)>"
4308 msgstr "B<(4)>"
4309
4310 #. type: Plain text
4311 #: build/C/man7/cpuset.7:834
4312 msgid ""
4313 "Perform immediate load balancing across over several (implementation detail) "
4314 "nodes [On NUMA systems]."
4315 msgstr ""
4316
4317 #. type: IP
4318 #: build/C/man7/cpuset.7:834
4319 #, no-wrap
4320 msgid "B<(5)>"
4321 msgstr "B<(5)>"
4322
4323 #. type: Plain text
4324 #: build/C/man7/cpuset.7:837
4325 msgid ""
4326 "Perform immediate load balancing across over all CPUs in system [On NUMA "
4327 "systems]."
4328 msgstr ""
4329
4330 #. type: Plain text
4331 #: build/C/man7/cpuset.7:846
4332 msgid ""
4333 "The I<sched_relax_domain_level> value of zero (0) always means don't perform "
4334 "immediate load balancing, hence that load balancing is only done "
4335 "periodically, not immediately when a CPU becomes available or another task "
4336 "becomes runnable."
4337 msgstr ""
4338
4339 #. type: Plain text
4340 #: build/C/man7/cpuset.7:854
4341 msgid ""
4342 "The I<sched_relax_domain_level> value of minus one (-1)  always means use "
4343 "the system default value.  The system default value can vary by architecture "
4344 "and kernel version.  This system default value can be changed by kernel boot-"
4345 "time \"relax_domain_level=\" argument."
4346 msgstr ""
4347
4348 #. type: Plain text
4349 #: build/C/man7/cpuset.7:862
4350 msgid ""
4351 "In the case of multiple overlapping cpusets which have conflicting "
4352 "I<sched_relax_domain_level> values, then the highest such value applies to "
4353 "all CPUs in any of the overlapping cpusets.  In such cases, the value "
4354 "B<minus one (-1)> is the lowest value, overridden by any other value, and "
4355 "the value B<zero (0)> is the next lowest value."
4356 msgstr ""
4357
4358 #. type: SH
4359 #: build/C/man7/cpuset.7:862
4360 #, no-wrap
4361 msgid "FORMATS"
4362 msgstr ""
4363
4364 #.  ================== Mask Format ==================
4365 #. type: Plain text
4366 #: build/C/man7/cpuset.7:866
4367 msgid ""
4368 "The following formats are used to represent sets of CPUs and memory nodes."
4369 msgstr ""
4370
4371 #. type: SS
4372 #: build/C/man7/cpuset.7:866
4373 #, no-wrap
4374 msgid "Mask Format"
4375 msgstr ""
4376
4377 #. type: Plain text
4378 #: build/C/man7/cpuset.7:871
4379 msgid ""
4380 "The B<Mask Format> is used to represent CPU and memory-node bitmasks in the "
4381 "I</proc/E<lt>pidE<gt>/status> file."
4382 msgstr ""
4383
4384 #. type: Plain text
4385 #: build/C/man7/cpuset.7:879
4386 msgid ""
4387 "This format displays each 32-bit word in hexadecimal (using ASCII characters "
4388 "\"0\" - \"9\" and \"a\" - \"f\"); words are filled with leading zeros, if "
4389 "required.  For masks longer than one word, a comma separator is used between "
4390 "words.  Words are displayed in big-endian order, which has the most "
4391 "significant bit first.  The hex digits within a word are also in big-endian "
4392 "order."
4393 msgstr ""
4394
4395 #. type: Plain text
4396 #: build/C/man7/cpuset.7:882
4397 msgid ""
4398 "The number of 32-bit words displayed is the minimum number needed to display "
4399 "all bits of the bitmask, based on the size of the bitmask."
4400 msgstr ""
4401
4402 #. type: Plain text
4403 #: build/C/man7/cpuset.7:884
4404 msgid "Examples of the B<Mask Format>:"
4405 msgstr ""
4406
4407 #. type: Plain text
4408 #: build/C/man7/cpuset.7:892
4409 #, no-wrap
4410 msgid ""
4411 "00000001                        # just bit 0 set\n"
4412 "40000000,00000000,00000000      # just bit 94 set\n"
4413 "00000001,00000000,00000000      # just bit 64 set\n"
4414 "000000ff,00000000               # bits 32-39 set\n"
4415 "00000000,000E3862               # 1,5,6,11-13,17-19 set\n"
4416 msgstr ""
4417 "00000001                        # just bit 0 set\n"
4418 "40000000,00000000,00000000      # just bit 94 set\n"
4419 "00000001,00000000,00000000      # just bit 64 set\n"
4420 "000000ff,00000000               # bits 32-39 set\n"
4421 "00000000,000E3862               # 1,5,6,11-13,17-19 set\n"
4422
4423 #. type: Plain text
4424 #: build/C/man7/cpuset.7:896
4425 msgid "A mask with bits 0, 1, 2, 4, 8, 16, 32, and 64 set displays as:"
4426 msgstr ""
4427
4428 #. type: Plain text
4429 #: build/C/man7/cpuset.7:900
4430 #, no-wrap
4431 msgid "00000001,00000001,00010117\n"
4432 msgstr "00000001,00000001,00010117\n"
4433
4434 #.  ================== List Format ==================
4435 #. type: Plain text
4436 #: build/C/man7/cpuset.7:907
4437 msgid ""
4438 "The first \"1\" is for bit 64, the second for bit 32, the third for bit 16, "
4439 "the fourth for bit 8, the fifth for bit 4, and the \"7\" is for bits 2, 1, "
4440 "and 0."
4441 msgstr ""
4442
4443 #. type: SS
4444 #: build/C/man7/cpuset.7:907
4445 #, no-wrap
4446 msgid "List Format"
4447 msgstr ""
4448
4449 #. type: Plain text
4450 #: build/C/man7/cpuset.7:914
4451 msgid ""
4452 "The B<List Format> for I<cpus> and I<mems> is a comma-separated list of CPU "
4453 "or memory-node numbers and ranges of numbers, in ASCII decimal."
4454 msgstr ""
4455
4456 #. type: Plain text
4457 #: build/C/man7/cpuset.7:916
4458 msgid "Examples of the B<List Format>:"
4459 msgstr ""
4460
4461 #. type: Plain text
4462 #: build/C/man7/cpuset.7:921
4463 #, no-wrap
4464 msgid ""
4465 "0-4,9           # bits 0, 1, 2, 3, 4, and 9 set\n"
4466 "0-2,7,12-14     # bits 0, 1, 2, 7, 12, 13, and 14 set\n"
4467 msgstr ""
4468 "0-4,9           # bits 0, 1, 2, 3, 4, and 9 set\n"
4469 "0-2,7,12-14     # bits 0, 1, 2, 7, 12, 13, and 14 set\n"
4470
4471 #.  ================== RULES ==================
4472 #. type: SH
4473 #: build/C/man7/cpuset.7:924
4474 #, no-wrap
4475 msgid "RULES"
4476 msgstr ""
4477
4478 #. type: Plain text
4479 #: build/C/man7/cpuset.7:926
4480 msgid "The following rules apply to each cpuset:"
4481 msgstr ""
4482
4483 #. type: Plain text
4484 #: build/C/man7/cpuset.7:929
4485 msgid ""
4486 "Its CPUs and memory nodes must be a (possibly equal)  subset of its parent's."
4487 msgstr ""
4488
4489 #. type: Plain text
4490 #: build/C/man7/cpuset.7:933
4491 msgid "It can only be marked I<cpu_exclusive> if its parent is."
4492 msgstr ""
4493
4494 #. type: Plain text
4495 #: build/C/man7/cpuset.7:937
4496 msgid "It can only be marked I<mem_exclusive> if its parent is."
4497 msgstr ""
4498
4499 #. type: Plain text
4500 #: build/C/man7/cpuset.7:941
4501 msgid "If it is I<cpu_exclusive>, its CPUs may not overlap any sibling."
4502 msgstr ""
4503
4504 #.  ================== PERMISSIONS ==================
4505 #. type: Plain text
4506 #: build/C/man7/cpuset.7:946
4507 msgid ""
4508 "If it is I<memory_exclusive>, its memory nodes may not overlap any sibling."
4509 msgstr ""
4510
4511 #. type: SH
4512 #: build/C/man7/cpuset.7:946
4513 #, no-wrap
4514 msgid "PERMISSIONS"
4515 msgstr ""
4516
4517 #. type: Plain text
4518 #: build/C/man7/cpuset.7:951
4519 msgid ""
4520 "The permissions of a cpuset are determined by the permissions of the "
4521 "directories and pseudo-files in the cpuset file system, normally mounted at "
4522 "I</dev/cpuset>."
4523 msgstr ""
4524
4525 #. type: Plain text
4526 #: build/C/man7/cpuset.7:960
4527 msgid ""
4528 "For instance, a process can put itself in some other cpuset (than its "
4529 "current one) if it can write the I<tasks> file for that cpuset.  This "
4530 "requires execute permission on the encompassing directories and write "
4531 "permission on the I<tasks> file."
4532 msgstr ""
4533
4534 #. type: Plain text
4535 #: build/C/man7/cpuset.7:967
4536 msgid ""
4537 "An additional constraint is applied to requests to place some other process "
4538 "in a cpuset.  One process may not attach another to a cpuset unless it would "
4539 "have permission to send that process a signal (see B<kill>(2))."
4540 msgstr ""
4541
4542 #. type: Plain text
4543 #: build/C/man7/cpuset.7:978
4544 msgid ""
4545 "A process may create a child cpuset if it can access and write the parent "
4546 "cpuset directory.  It can modify the CPUs or memory nodes in a cpuset if it "
4547 "can access that cpuset's directory (execute permissions on the each of the "
4548 "parent directories) and write the corresponding I<cpus> or I<mems> file."
4549 msgstr ""
4550
4551 #. type: Plain text
4552 #: build/C/man7/cpuset.7:999
4553 msgid ""
4554 "There is one minor difference between the manner in which these permissions "
4555 "are evaluated and the manner in which normal file-system operation "
4556 "permissions are evaluated.  The kernel interprets relative pathnames "
4557 "starting at a process's current working directory.  Even if one is operating "
4558 "on a cpuset file, relative pathnames are interpreted relative to the "
4559 "process's current working directory, not relative to the process's current "
4560 "cpuset.  The only ways that cpuset paths relative to a process's current "
4561 "cpuset can be used are if either the process's current working directory is "
4562 "its cpuset (it first did a B<cd> or B<chdir>(2)  to its cpuset directory "
4563 "beneath I</dev/cpuset>, which is a bit unusual)  or if some user code "
4564 "converts the relative cpuset path to a full file-system path."
4565 msgstr ""
4566
4567 #.  ================== WARNINGS ==================
4568 #. type: Plain text
4569 #: build/C/man7/cpuset.7:1014
4570 msgid ""
4571 "In theory, this means that user code should specify cpusets using absolute "
4572 "pathnames, which requires knowing the mount point of the cpuset file system "
4573 "(usually, but not necessarily, I</dev/cpuset>).  In practice, all user level "
4574 "code that this author is aware of simply assumes that if the cpuset file "
4575 "system is mounted, then it is mounted at I</dev/cpuset>.  Furthermore, it is "
4576 "common practice for carefully written user code to verify the presence of "
4577 "the pseudo-file I</dev/cpuset/tasks> in order to verify that the cpuset "
4578 "pseudo-file system is currently mounted."
4579 msgstr ""
4580
4581 #. type: SH
4582 #: build/C/man7/cpuset.7:1014
4583 #, no-wrap
4584 msgid "WARNINGS"
4585 msgstr ""
4586
4587 #. type: SS
4588 #: build/C/man7/cpuset.7:1015
4589 #, no-wrap
4590 msgid "Enabling memory_pressure"
4591 msgstr ""
4592
4593 #. type: Plain text
4594 #: build/C/man7/cpuset.7:1024
4595 msgid ""
4596 "By default, the per-cpuset file I<memory_pressure> always contains zero "
4597 "(0).  Unless this feature is enabled by writing \"1\" to the pseudo-file I</"
4598 "dev/cpuset/memory_pressure_enabled>, the kernel does not compute per-cpuset "
4599 "I<memory_pressure>."
4600 msgstr ""
4601
4602 #. type: SS
4603 #: build/C/man7/cpuset.7:1024
4604 #, no-wrap
4605 msgid "Using the echo command"
4606 msgstr ""
4607
4608 #.  Gack!  csh(1)'s echo does this
4609 #. type: Plain text
4610 #: build/C/man7/cpuset.7:1035
4611 msgid ""
4612 "When using the B<echo> command at the shell prompt to change the values of "
4613 "cpuset files, beware that the built-in B<echo> command in some shells does "
4614 "not display an error message if the B<write>(2)  system call fails.  For "
4615 "example, if the command:"
4616 msgstr ""
4617
4618 #. type: Plain text
4619 #: build/C/man7/cpuset.7:1039
4620 #, no-wrap
4621 msgid "echo 19 E<gt> mems\n"
4622 msgstr "echo 19 E<gt> mems\n"
4623
4624 #. type: Plain text
4625 #: build/C/man7/cpuset.7:1052
4626 msgid ""
4627 "failed because memory node 19 was not allowed (perhaps the current system "
4628 "does not have a memory node 19), then the B<echo> command might not display "
4629 "any error.  It is better to use the B</bin/echo> external command to change "
4630 "cpuset file settings, as this command will display B<write>(2)  errors, as "
4631 "in the example:"
4632 msgstr ""
4633
4634 #. type: Plain text
4635 #: build/C/man7/cpuset.7:1057
4636 #, no-wrap
4637 msgid ""
4638 "/bin/echo 19 E<gt> mems\n"
4639 "/bin/echo: write error: Invalid argument\n"
4640 msgstr ""
4641 "/bin/echo 19 E<gt> mems\n"
4642 "/bin/echo: write error: Invalid argument\n"
4643
4644 #.  ================== EXCEPTIONS ==================
4645 #. type: SH
4646 #: build/C/man7/cpuset.7:1060
4647 #, no-wrap
4648 msgid "EXCEPTIONS"
4649 msgstr ""
4650
4651 #. type: SS
4652 #: build/C/man7/cpuset.7:1061
4653 #, no-wrap
4654 msgid "Memory placement"
4655 msgstr ""
4656
4657 #. type: Plain text
4658 #: build/C/man7/cpuset.7:1064
4659 msgid ""
4660 "Not all allocations of system memory are constrained by cpusets, for the "
4661 "following reasons."
4662 msgstr ""
4663
4664 #. type: Plain text
4665 #: build/C/man7/cpuset.7:1079
4666 msgid ""
4667 "If hot-plug functionality is used to remove all the CPUs that are currently "
4668 "assigned to a cpuset, then the kernel will automatically update the "
4669 "I<cpus_allowed> of all processes attached to CPUs in that cpuset to allow "
4670 "all CPUs.  When memory hot-plug functionality for removing memory nodes is "
4671 "available, a similar exception is expected to apply there as well.  In "
4672 "general, the kernel prefers to violate cpuset placement, rather than "
4673 "starving a process that has had all its allowed CPUs or memory nodes taken "
4674 "offline.  User code should reconfigure cpusets to only refer to online CPUs "
4675 "and memory nodes when using hot-plug to add or remove such resources."
4676 msgstr ""
4677
4678 #. type: Plain text
4679 #: build/C/man7/cpuset.7:1087
4680 msgid ""
4681 "A few kernel-critical, internal memory-allocation requests, marked "
4682 "GFP_ATOMIC, must be satisfied immediately.  The kernel may drop some request "
4683 "or malfunction if one of these allocations fail.  If such a request cannot "
4684 "be satisfied within the current process's cpuset, then we relax the cpuset, "
4685 "and look for memory anywhere we can find it.  It's better to violate the "
4686 "cpuset than stress the kernel."
4687 msgstr ""
4688
4689 #. type: Plain text
4690 #: build/C/man7/cpuset.7:1091
4691 msgid ""
4692 "Allocations of memory requested by kernel drivers while processing an "
4693 "interrupt lack any relevant process context, and are not confined by cpusets."
4694 msgstr ""
4695
4696 #. type: SS
4697 #: build/C/man7/cpuset.7:1091
4698 #, no-wrap
4699 msgid "Renaming cpusets"
4700 msgstr ""
4701
4702 #.  ================== ERRORS ==================
4703 #. type: Plain text
4704 #: build/C/man7/cpuset.7:1099
4705 msgid ""
4706 "You can use the B<rename>(2)  system call to rename cpusets.  Only simple "
4707 "renaming is supported; that is, changing the name of a cpuset directory is "
4708 "permitted, but moving a directory into a different directory is not "
4709 "permitted."
4710 msgstr ""
4711
4712 #. type: Plain text
4713 #: build/C/man7/cpuset.7:1103
4714 msgid ""
4715 "The Linux kernel implementation of cpusets sets I<errno> to specify the "
4716 "reason for a failed system call affecting cpusets."
4717 msgstr ""
4718
4719 #. type: Plain text
4720 #: build/C/man7/cpuset.7:1108
4721 msgid ""
4722 "The possible I<errno> settings and their meaning when set on a failed cpuset "
4723 "call are as listed below."
4724 msgstr ""
4725
4726 #. type: TP
4727 #: build/C/man7/cpuset.7:1108
4728 #, no-wrap
4729 msgid "B<E2BIG>"
4730 msgstr "B<E2BIG>"
4731
4732 #. type: Plain text
4733 #: build/C/man7/cpuset.7:1115
4734 msgid ""
4735 "Attempted a B<write>(2)  on a special cpuset file with a length larger than "
4736 "some kernel-determined upper limit on the length of such writes."
4737 msgstr ""
4738
4739 #. type: Plain text
4740 #: build/C/man7/cpuset.7:1122
4741 msgid ""
4742 "Attempted to B<write>(2)  the process ID (PID) of a process to a cpuset "
4743 "I<tasks> file when one lacks permission to move that process."
4744 msgstr ""
4745
4746 #. type: Plain text
4747 #: build/C/man7/cpuset.7:1128
4748 msgid ""
4749 "Attempted to add, using B<write>(2), a CPU or memory node to a cpuset, when "
4750 "that CPU or memory node was not already in its parent."
4751 msgstr ""
4752
4753 #. type: Plain text
4754 #: build/C/man7/cpuset.7:1136
4755 msgid ""
4756 "Attempted to set, using B<write>(2), I<cpu_exclusive> or I<mem_exclusive> on "
4757 "a cpuset whose parent lacks the same setting."
4758 msgstr ""
4759
4760 #. type: Plain text
4761 #: build/C/man7/cpuset.7:1143
4762 msgid "Attempted to B<write>(2)  a I<memory_pressure> file."
4763 msgstr ""
4764
4765 #. type: Plain text
4766 #: build/C/man7/cpuset.7:1146
4767 msgid "Attempted to create a file in a cpuset directory."
4768 msgstr ""
4769
4770 #. type: TP
4771 #: build/C/man7/cpuset.7:1146 build/C/man7/cpuset.7:1151
4772 #: build/C/man7/cpuset.7:1156
4773 #, no-wrap
4774 msgid "B<EBUSY>"
4775 msgstr "B<EBUSY>"
4776
4777 #. type: Plain text
4778 #: build/C/man7/cpuset.7:1151
4779 msgid ""
4780 "Attempted to remove, using B<rmdir>(2), a cpuset with attached processes."
4781 msgstr ""
4782
4783 #. type: Plain text
4784 #: build/C/man7/cpuset.7:1156
4785 msgid "Attempted to remove, using B<rmdir>(2), a cpuset with child cpusets."
4786 msgstr ""
4787
4788 #. type: Plain text
4789 #: build/C/man7/cpuset.7:1161
4790 msgid ""
4791 "Attempted to remove a CPU or memory node from a cpuset that is also in a "
4792 "child of that cpuset."
4793 msgstr ""
4794
4795 #. type: TP
4796 #: build/C/man7/cpuset.7:1161 build/C/man7/cpuset.7:1166
4797 #, no-wrap
4798 msgid "B<EEXIST>"
4799 msgstr "B<EEXIST>"
4800
4801 #. type: Plain text
4802 #: build/C/man7/cpuset.7:1166
4803 msgid "Attempted to create, using B<mkdir>(2), a cpuset that already exists."
4804 msgstr ""
4805
4806 #. type: Plain text
4807 #: build/C/man7/cpuset.7:1171
4808 msgid "Attempted to B<rename>(2)  a cpuset to a name that already exists."
4809 msgstr ""
4810
4811 #. type: Plain text
4812 #: build/C/man7/cpuset.7:1179
4813 msgid ""
4814 "Attempted to B<read>(2)  or B<write>(2)  a cpuset file using a buffer that "
4815 "is outside the writing processes accessible address space."
4816 msgstr ""
4817
4818 #. type: Plain text
4819 #: build/C/man7/cpuset.7:1188
4820 msgid ""
4821 "Attempted to change a cpuset, using B<write>(2), in a way that would violate "
4822 "a I<cpu_exclusive> or I<mem_exclusive> attribute of that cpuset or any of "
4823 "its siblings."
4824 msgstr ""
4825
4826 #. type: Plain text
4827 #: build/C/man7/cpuset.7:1197
4828 msgid ""
4829 "Attempted to B<write>(2)  an empty I<cpus> or I<mems> list to a cpuset which "
4830 "has attached processes or child cpusets."
4831 msgstr ""
4832
4833 #. type: Plain text
4834 #: build/C/man7/cpuset.7:1207
4835 msgid ""
4836 "Attempted to B<write>(2)  a I<cpus> or I<mems> list which included a range "
4837 "with the second number smaller than the first number."
4838 msgstr ""
4839
4840 #. type: Plain text
4841 #: build/C/man7/cpuset.7:1216
4842 msgid ""
4843 "Attempted to B<write>(2)  a I<cpus> or I<mems> list which included an "
4844 "invalid character in the string."
4845 msgstr ""
4846
4847 #. type: Plain text
4848 #: build/C/man7/cpuset.7:1223
4849 msgid ""
4850 "Attempted to B<write>(2)  a list to a I<cpus> file that did not include any "
4851 "online CPUs."
4852 msgstr ""
4853
4854 #. type: Plain text
4855 #: build/C/man7/cpuset.7:1230
4856 msgid ""
4857 "Attempted to B<write>(2)  a list to a I<mems> file that did not include any "
4858 "online memory nodes."
4859 msgstr ""
4860
4861 #. type: Plain text
4862 #: build/C/man7/cpuset.7:1237
4863 msgid ""
4864 "Attempted to B<write>(2)  a list to a I<mems> file that included a node that "
4865 "held no memory."
4866 msgstr ""
4867
4868 #. type: Plain text
4869 #: build/C/man7/cpuset.7:1245
4870 msgid ""
4871 "Attempted to B<write>(2)  a string to a cpuset I<tasks> file that does not "
4872 "begin with an ASCII decimal integer."
4873 msgstr ""
4874
4875 #. type: Plain text
4876 #: build/C/man7/cpuset.7:1250
4877 msgid "Attempted to B<rename>(2)  a cpuset into a different directory."
4878 msgstr ""
4879
4880 #. type: Plain text
4881 #: build/C/man7/cpuset.7:1257
4882 msgid ""
4883 "Attempted to B<read>(2)  a I</proc/E<lt>pidE<gt>/cpuset> file for a cpuset "
4884 "path that is longer than the kernel page size."
4885 msgstr ""
4886
4887 #. type: Plain text
4888 #: build/C/man7/cpuset.7:1262
4889 msgid ""
4890 "Attempted to create, using B<mkdir>(2), a cpuset whose base directory name "
4891 "is longer than 255 characters."
4892 msgstr ""
4893
4894 #. type: Plain text
4895 #: build/C/man7/cpuset.7:1269
4896 msgid ""
4897 "Attempted to create, using B<mkdir>(2), a cpuset whose full pathname, "
4898 "including the mount point (typically \"/dev/cpuset/\") prefix, is longer "
4899 "than 4095 characters."
4900 msgstr ""
4901
4902 #. type: TP
4903 #: build/C/man7/cpuset.7:1269
4904 #, no-wrap
4905 msgid "B<ENODEV>"
4906 msgstr "B<ENODEV>"
4907
4908 #. type: Plain text
4909 #: build/C/man7/cpuset.7:1274
4910 msgid ""
4911 "The cpuset was removed by another process at the same time as a B<write>(2)  "
4912 "was attempted on one of the pseudo-files in the cpuset directory."
4913 msgstr ""
4914
4915 #. type: Plain text
4916 #: build/C/man7/cpuset.7:1279
4917 msgid ""
4918 "Attempted to create, using B<mkdir>(2), a cpuset in a parent cpuset that "
4919 "doesn't exist."
4920 msgstr ""
4921
4922 #. type: Plain text
4923 #: build/C/man7/cpuset.7:1286
4924 msgid ""
4925 "Attempted to B<access>(2)  or B<open>(2)  a nonexistent file in a cpuset "
4926 "directory."
4927 msgstr ""
4928
4929 #. type: Plain text
4930 #: build/C/man7/cpuset.7:1291
4931 msgid ""
4932 "Insufficient memory is available within the kernel; can occur on a variety "
4933 "of system calls affecting cpusets, but only if the system is extremely short "
4934 "of memory."
4935 msgstr ""
4936
4937 #. type: TP
4938 #: build/C/man7/cpuset.7:1291 build/C/man7/cpuset.7:1303
4939 #, no-wrap
4940 msgid "B<ENOSPC>"
4941 msgstr "B<ENOSPC>"
4942
4943 #. type: Plain text
4944 #: build/C/man7/cpuset.7:1303
4945 msgid ""
4946 "Attempted to B<write>(2)  the process ID (PID)  of a process to a cpuset "
4947 "I<tasks> file when the cpuset had an empty I<cpus> or empty I<mems> setting."
4948 msgstr ""
4949
4950 #. type: Plain text
4951 #: build/C/man7/cpuset.7:1313
4952 msgid ""
4953 "Attempted to B<write>(2)  an empty I<cpus> or I<mems> setting to a cpuset "
4954 "that has tasks attached."
4955 msgstr ""
4956
4957 #. type: Plain text
4958 #: build/C/man7/cpuset.7:1318
4959 msgid "Attempted to B<rename>(2)  a nonexistent cpuset."
4960 msgstr ""
4961
4962 #. type: Plain text
4963 #: build/C/man7/cpuset.7:1321
4964 msgid "Attempted to remove a file from a cpuset directory."
4965 msgstr ""
4966
4967 #. type: TP
4968 #: build/C/man7/cpuset.7:1321
4969 #, no-wrap
4970 msgid "B<ERANGE>"
4971 msgstr "B<ERANGE>"
4972
4973 #. type: Plain text
4974 #: build/C/man7/cpuset.7:1329
4975 msgid ""
4976 "Specified a I<cpus> or I<mems> list to the kernel which included a number "
4977 "too large for the kernel to set in its bitmasks."
4978 msgstr ""
4979
4980 #.  ================== VERSIONS ==================
4981 #. type: Plain text
4982 #: build/C/man7/cpuset.7:1337
4983 msgid ""
4984 "Attempted to B<write>(2)  the process ID (PID) of a nonexistent process to a "
4985 "cpuset I<tasks> file."
4986 msgstr ""
4987
4988 #.  ================== NOTES ==================
4989 #. type: Plain text
4990 #: build/C/man7/cpuset.7:1340
4991 msgid "Cpusets appeared in version 2.6.12 of the Linux kernel."
4992 msgstr ""
4993
4994 #.  ================== BUGS ==================
4995 #. type: Plain text
4996 #: build/C/man7/cpuset.7:1351
4997 msgid ""
4998 "Despite its name, the I<pid> parameter is actually a thread ID, and each "
4999 "thread in a threaded group can be attached to a different cpuset.  The value "
5000 "returned from a call to B<gettid>(2)  can be passed in the argument I<pid>."
5001 msgstr ""
5002
5003 #. type: SH
5004 #: build/C/man7/cpuset.7:1351 build/C/man2/getrlimit.2:576
5005 #: build/C/man2/ioprio_set.2:308 build/C/man2/setfsgid.2:102
5006 #: build/C/man2/setfsuid.2:102
5007 #, no-wrap
5008 msgid "BUGS"
5009 msgstr "バグ"
5010
5011 #.  ================== EXAMPLE ==================
5012 #. type: Plain text
5013 #: build/C/man7/cpuset.7:1364
5014 msgid ""
5015 "I<memory_pressure> cpuset files can be opened for writing, creation, or "
5016 "truncation, but then the B<write>(2)  fails with I<errno> set to B<EACCES>, "
5017 "and the creation and truncation options on B<open>(2)  have no effect."
5018 msgstr ""
5019
5020 #. type: SH
5021 #: build/C/man7/cpuset.7:1364 build/C/man2/getrlimit.2:520
5022 #, no-wrap
5023 msgid "EXAMPLE"
5024 msgstr "例"
5025
5026 #. type: Plain text
5027 #: build/C/man7/cpuset.7:1367
5028 msgid ""
5029 "The following examples demonstrate querying and setting cpuset options using "
5030 "shell commands."
5031 msgstr ""
5032
5033 #. type: SS
5034 #: build/C/man7/cpuset.7:1367
5035 #, no-wrap
5036 msgid "Creating and attaching to a cpuset."
5037 msgstr ""
5038
5039 #. type: Plain text
5040 #: build/C/man7/cpuset.7:1370
5041 msgid ""
5042 "To create a new cpuset and attach the current command shell to it, the steps "
5043 "are:"
5044 msgstr ""
5045
5046 #. type: IP
5047 #: build/C/man7/cpuset.7:1372 build/C/man7/cpuset.7:1411
5048 #, no-wrap
5049 msgid "1)"
5050 msgstr "1)"
5051
5052 #. type: Plain text
5053 #: build/C/man7/cpuset.7:1374
5054 msgid "mkdir /dev/cpuset (if not already done)"
5055 msgstr ""
5056
5057 #. type: IP
5058 #: build/C/man7/cpuset.7:1374 build/C/man7/cpuset.7:1417
5059 #, no-wrap
5060 msgid "2)"
5061 msgstr "2)"
5062
5063 #. type: Plain text
5064 #: build/C/man7/cpuset.7:1376
5065 msgid "mount -t cpuset none /dev/cpuset (if not already done)"
5066 msgstr ""
5067
5068 #. type: IP
5069 #: build/C/man7/cpuset.7:1376 build/C/man7/cpuset.7:1420
5070 #, no-wrap
5071 msgid "3)"
5072 msgstr "3)"
5073
5074 #. type: Plain text
5075 #: build/C/man7/cpuset.7:1379
5076 msgid "Create the new cpuset using B<mkdir>(1)."
5077 msgstr ""
5078
5079 #. type: IP
5080 #: build/C/man7/cpuset.7:1379 build/C/man7/cpuset.7:1423
5081 #, no-wrap
5082 msgid "4)"
5083 msgstr "4)"
5084
5085 #. type: Plain text
5086 #: build/C/man7/cpuset.7:1381
5087 msgid "Assign CPUs and memory nodes to the new cpuset."
5088 msgstr ""
5089
5090 #. type: IP
5091 #: build/C/man7/cpuset.7:1381 build/C/man7/cpuset.7:1428
5092 #, no-wrap
5093 msgid "5)"
5094 msgstr "5)"
5095
5096 #. type: Plain text
5097 #: build/C/man7/cpuset.7:1383
5098 msgid "Attach the shell to the new cpuset."
5099 msgstr ""
5100
5101 #. type: Plain text
5102 #: build/C/man7/cpuset.7:1388
5103 msgid ""
5104 "For example, the following sequence of commands will set up a cpuset named "
5105 "\"Charlie\", containing just CPUs 2 and 3, and memory node 1, and then "
5106 "attach the current shell to that cpuset."
5107 msgstr ""
5108
5109 #. type: Plain text
5110 #: build/C/man7/cpuset.7:1402
5111 #, no-wrap
5112 msgid ""
5113 "$B< mkdir /dev/cpuset>\n"
5114 "$B< mount -t cpuset cpuset /dev/cpuset>\n"
5115 "$B< cd /dev/cpuset>\n"
5116 "$B< mkdir Charlie>\n"
5117 "$B< cd Charlie>\n"
5118 "$B< /bin/echo 2-3 E<gt> cpus>\n"
5119 "$B< /bin/echo 1 E<gt> mems>\n"
5120 "$B< /bin/echo $$ E<gt> tasks>\n"
5121 "# The current shell is now running in cpuset Charlie\n"
5122 "# The next line should display '/Charlie'\n"
5123 "$B< cat /proc/self/cpuset>\n"
5124 msgstr ""
5125 "$B< mkdir /dev/cpuset>\n"
5126 "$B< mount -t cpuset cpuset /dev/cpuset>\n"
5127 "$B< cd /dev/cpuset>\n"
5128 "$B< mkdir Charlie>\n"
5129 "$B< cd Charlie>\n"
5130 "$B< /bin/echo 2-3 E<gt> cpus>\n"
5131 "$B< /bin/echo 1 E<gt> mems>\n"
5132 "$B< /bin/echo $$ E<gt> tasks>\n"
5133 "# The current shell is now running in cpuset Charlie\n"
5134 "# The next line should display '/Charlie'\n"
5135 "$B< cat /proc/self/cpuset>\n"
5136
5137 #. type: SS
5138 #: build/C/man7/cpuset.7:1404
5139 #, no-wrap
5140 msgid "Migrating a job to different memory nodes."
5141 msgstr ""
5142
5143 #. type: Plain text
5144 #: build/C/man7/cpuset.7:1409
5145 msgid ""
5146 "To migrate a job (the set of processes attached to a cpuset)  to different "
5147 "CPUs and memory nodes in the system, including moving the memory pages "
5148 "currently allocated to that job, perform the following steps."
5149 msgstr ""
5150
5151 #. type: Plain text
5152 #: build/C/man7/cpuset.7:1417
5153 msgid ""
5154 "Let's say we want to move the job in cpuset I<alpha> (CPUs 4-7 and memory "
5155 "nodes 2-3) to a new cpuset I<beta> (CPUs 16-19 and memory nodes 8-9)."
5156 msgstr ""
5157
5158 #. type: Plain text
5159 #: build/C/man7/cpuset.7:1420
5160 msgid "First create the new cpuset I<beta>."
5161 msgstr ""
5162
5163 #. type: Plain text
5164 #: build/C/man7/cpuset.7:1423
5165 msgid "Then allow CPUs 16-19 and memory nodes 8-9 in I<beta>."
5166 msgstr ""
5167
5168 #. type: Plain text
5169 #: build/C/man7/cpuset.7:1428
5170 msgid "Then enable I<memory_migration> in I<beta>."
5171 msgstr ""
5172
5173 #. type: Plain text
5174 #: build/C/man7/cpuset.7:1433
5175 msgid "Then move each process from I<alpha> to I<beta>."
5176 msgstr ""
5177
5178 #. type: Plain text
5179 #: build/C/man7/cpuset.7:1436
5180 msgid "The following sequence of commands accomplishes this."
5181 msgstr ""
5182
5183 #. type: Plain text
5184 #: build/C/man7/cpuset.7:1446
5185 #, no-wrap
5186 msgid ""
5187 "$B< cd /dev/cpuset>\n"
5188 "$B< mkdir beta>\n"
5189 "$B< cd beta>\n"
5190 "$B< /bin/echo 16-19 E<gt> cpus>\n"
5191 "$B< /bin/echo 8-9 E<gt> mems>\n"
5192 "$B< /bin/echo 1 E<gt> memory_migrate>\n"
5193 "$B< while read i; do /bin/echo $i; done E<lt> ../alpha/tasks E<gt> tasks>\n"
5194 msgstr ""
5195 "$B< cd /dev/cpuset>\n"
5196 "$B< mkdir beta>\n"
5197 "$B< cd beta>\n"
5198 "$B< /bin/echo 16-19 E<gt> cpus>\n"
5199 "$B< /bin/echo 8-9 E<gt> mems>\n"
5200 "$B< /bin/echo 1 E<gt> memory_migrate>\n"
5201 "$B< while read i; do /bin/echo $i; done E<lt> ../alpha/tasks E<gt> tasks>\n"
5202
5203 #. type: Plain text
5204 #: build/C/man7/cpuset.7:1455
5205 msgid ""
5206 "The above should move any processes in I<alpha> to I<beta>, and any memory "
5207 "held by these processes on memory nodes 2-3 to memory nodes 8-9, "
5208 "respectively."
5209 msgstr ""
5210
5211 #. type: Plain text
5212 #: build/C/man7/cpuset.7:1457
5213 msgid "Notice that the last step of the above sequence did not do:"
5214 msgstr ""
5215
5216 #. type: Plain text
5217 #: build/C/man7/cpuset.7:1461
5218 #, no-wrap
5219 msgid "$B< cp ../alpha/tasks tasks>\n"
5220 msgstr "$B< cp ../alpha/tasks tasks>\n"
5221
5222 #. type: Plain text
5223 #: build/C/man7/cpuset.7:1472
5224 msgid ""
5225 "The I<while> loop, rather than the seemingly easier use of the B<cp>(1)  "
5226 "command, was necessary because only one process PID at a time may be written "
5227 "to the I<tasks> file."
5228 msgstr ""
5229
5230 #. type: Plain text
5231 #: build/C/man7/cpuset.7:1480
5232 msgid ""
5233 "The same effect (writing one PID at a time) as the I<while> loop can be "
5234 "accomplished more efficiently, in fewer keystrokes and in syntax that works "
5235 "on any shell, but alas more obscurely, by using the B<-u> (unbuffered) "
5236 "option of B<sed>(1):"
5237 msgstr ""
5238
5239 #. type: Plain text
5240 #: build/C/man7/cpuset.7:1484
5241 #, no-wrap
5242 msgid "$B< sed -un p E<lt> ../alpha/tasks E<gt> tasks>\n"
5243 msgstr "$B< sed -un p E<lt> ../alpha/tasks E<gt> tasks>\n"
5244
5245 #. type: Plain text
5246 #: build/C/man7/cpuset.7:1501
5247 msgid ""
5248 "B<taskset>(1), B<get_mempolicy>(2), B<getcpu>(2), B<mbind>(2), "
5249 "B<sched_getaffinity>(2), B<sched_setaffinity>(2), B<sched_setscheduler>(2), "
5250 "B<set_mempolicy>(2), B<CPU_SET>(3), B<proc>(5), B<numa>(7), B<migratepages>"
5251 "(8), B<numactl>(8)"
5252 msgstr ""
5253 "B<taskset>(1), B<get_mempolicy>(2), B<getcpu>(2), B<mbind>(2), "
5254 "B<sched_getaffinity>(2), B<sched_setaffinity>(2), B<sched_setscheduler>(2), "
5255 "B<set_mempolicy>(2), B<CPU_SET>(3), B<proc>(5), B<numa>(7), B<migratepages>"
5256 "(8), B<numactl>(8)"
5257
5258 #. type: Plain text
5259 #: build/C/man7/cpuset.7:1504
5260 msgid "The kernel source file I<Documentation/cpusets.txt>."
5261 msgstr ""
5262
5263 #. type: TH
5264 #: build/C/man7/credentials.7:25
5265 #, no-wrap
5266 msgid "CREDENTIALS"
5267 msgstr "CREDENTIALS"
5268
5269 #. type: TH
5270 #: build/C/man7/credentials.7:25
5271 #, no-wrap
5272 msgid "2008-06-03"
5273 msgstr "2008-06-03"
5274
5275 #. type: Plain text
5276 #: build/C/man7/credentials.7:28
5277 msgid "credentials - process identifiers"
5278 msgstr "credentials - 認証に用いられるプロセスの識別子"
5279
5280 #. type: SS
5281 #: build/C/man7/credentials.7:29
5282 #, no-wrap
5283 msgid "Process ID (PID)"
5284 msgstr "プロセスID (PID)"
5285
5286 #. type: Plain text
5287 #: build/C/man7/credentials.7:39
5288 msgid ""
5289 "Each process has a unique nonnegative integer identifier that is assigned "
5290 "when the process is created using B<fork>(2).  A process can obtain its PID "
5291 "using B<getpid>(2).  A PID is represented using the type I<pid_t> (defined "
5292 "in I<E<lt>sys/types.hE<gt>>)."
5293 msgstr ""
5294 "各プロセスは、負でない整数の一意な識別子を持つ。 この識別子は B<fork>(2)  を"
5295 "使ってプロセスが生成される際に割り当てられる。 プロセスは B<getpid>(2)  を"
5296 "使って自分の PID を取得できる。 PID は I<pid_t> 型で表現される (I<pid_t> は "
5297 "I<E<lt>sys/types.hE<gt>> で定義されている)。"
5298
5299 #.  .BR sched_rr_get_interval (2),
5300 #.  .BR sched_getaffinity (2),
5301 #.  .BR sched_setaffinity (2),
5302 #.  .BR sched_getparam (2),
5303 #.  .BR sched_setparam (2),
5304 #.  .BR sched_setscheduler (2),
5305 #.  .BR sched_getscheduler (2),
5306 #.  .BR getsid (2),
5307 #.  .BR waitid (2),
5308 #.  .BR wait4 (2),
5309 #. type: Plain text
5310 #: build/C/man7/credentials.7:60
5311 msgid ""
5312 "PIDs are used in a range of system calls to identify the process affected by "
5313 "the call, for example: B<kill>(2), B<ptrace>(2), B<setpriority>(2)  "
5314 "B<setpgid>(2), B<setsid>(2), B<sigqueue>(3), and B<waitpid>(2)."
5315 msgstr ""
5316 "PID は各種のシステムコールでそのシステムコールが作用するプロセスを 特定するた"
5317 "めに使用される。以下に例を挙げる: B<kill>(2), B<ptrace>(2), B<setpriority>"
5318 "(2), B<setpgid>(2), B<setsid>(2), B<sigqueue>(3), B<waitpid>(2)."
5319
5320 #. type: Plain text
5321 #: build/C/man7/credentials.7:63
5322 msgid "A process's PID is preserved across an B<execve>(2)."
5323 msgstr "プロセスの PID は B<execve>(2)  の前後で不変である。"
5324
5325 #. type: SS
5326 #: build/C/man7/credentials.7:63
5327 #, no-wrap
5328 msgid "Parent Process ID (PPID)"
5329 msgstr "親プロセス ID (PPID)"
5330
5331 #. type: Plain text
5332 #: build/C/man7/credentials.7:71
5333 msgid ""
5334 "A process's parent process ID identifies the process that created this "
5335 "process using B<fork>(2).  A process can obtain its PPID using B<getppid>"
5336 "(2).  A PPID is represented using the type I<pid_t>."
5337 msgstr ""
5338 "プロセスの親プロセスの ID は、 B<fork>(2)  を使ってそのプロセスを生成したプロ"
5339 "セスを示す。 プロセスは B<getppid>(2)  を使って自分の PPID を取得できる。 "
5340 "PPID は I<pid_t> 型で表現される。"
5341
5342 #. type: Plain text
5343 #: build/C/man7/credentials.7:74
5344 msgid "A process's PPID is preserved across an B<execve>(2)."
5345 msgstr "プロセスの PPID は B<execve>(2)  の前後で不変である。"
5346
5347 #. type: SS
5348 #: build/C/man7/credentials.7:74
5349 #, no-wrap
5350 msgid "Process Group ID and Session ID"
5351 msgstr "プロセスグループ ID とセッション ID"
5352
5353 #. type: Plain text
5354 #: build/C/man7/credentials.7:82
5355 msgid ""
5356 "Each process has a session ID and a process group ID, both represented using "
5357 "the type I<pid_t>.  A process can obtain its session ID using B<getsid>(2), "
5358 "and its process group ID using B<getpgrp>(2)."
5359 msgstr ""
5360 "各プロセスはセッション ID とプロセスグループ ID を持つ。 これらの ID はどちら"
5361 "も I<pid_t> 型で表現される。 プロセスは、それぞれ B<getsid>(2), B<getpgrp>"
5362 "(2)  を使って自分のセッション ID、プロセスグループ ID を取得できる。"
5363
5364 #. type: Plain text
5365 #: build/C/man7/credentials.7:88
5366 msgid ""
5367 "A child created by B<fork>(2)  inherits its parent's session ID and process "
5368 "group ID.  A process's session ID and process group ID are preserved across "
5369 "an B<execve>(2)."
5370 msgstr ""
5371 "B<fork>(2)  で生成された子プロセスは親プロセスのセッション ID とプロセスグ"
5372 "ループ ID を継承する。プロセスのセッション ID とプロセスグループ ID は "
5373 "B<execve>(2)  の前後で不変である。"
5374
5375 #. type: Plain text
5376 #: build/C/man7/credentials.7:101
5377 msgid ""
5378 "Sessions and process groups are abstractions devised to support shell job "
5379 "control.  A process group (sometimes called a \"job\") is a collection of "
5380 "processes that share the same process group ID; the shell creates a new "
5381 "process group for the process(es) used to execute single command or pipeline "
5382 "(e.g., the two processes created to execute the command \"ls\\ |\\ wc\" are "
5383 "placed in the same process group).  A process's group membership can be set "
5384 "using B<setpgid>(2).  The process whose process ID is the same as its "
5385 "process group ID is the I<process group leader> for that group."
5386 msgstr ""
5387 "セッションとプロセスグループの概念は、シェルのジョブ制御を行うために 考案され"
5388 "たものである。 プロセスグループ (時には「ジョブ」と呼ばれることもある) は、 "
5389 "同じプロセスグループ ID を共有するプロセスの集まりである。 シェルは、一つのコ"
5390 "マンドもしくはパイプラインの実行に使われるプロセス群に 対して一つのプロセスグ"
5391 "ループを生成する (例えば、コマンド \"ls\\ |\\ wc\" を実行するために生成される"
5392 "二つのプロセスは 同じプロセスグループに置かれる)。 所属するプロセスグループ"
5393 "は B<setpgid>(2)  を使って設定できる。 自身のプロセス ID がプロセスグループ "
5394 "ID と同じプロセスは、 そのグループの「プロセスグループ・リーダー」である。"
5395
5396 #. type: Plain text
5397 #: build/C/man7/credentials.7:113
5398 msgid ""
5399 "A session is a collection of processes that share the same session ID.  All "
5400 "of the members of a process group also have the same session ID (i.e., all "
5401 "of the members of a process group always belong to the same session, so that "
5402 "sessions and process groups form a strict two-level hierarchy of "
5403 "processes.)  A new session is created when a process calls B<setsid>(2), "
5404 "which creates a new session whose session ID is the same as the PID of the "
5405 "process that called B<setsid>(2).  The creator of the session is called the "
5406 "I<session leader>."
5407 msgstr ""
5408 "セッションは、同じセッション ID を共有するプロセスの集まりである。 ある一つの"
5409 "プロセスグループの全メンバーは同じセッション ID を持つ (つまり、一つのプロセ"
5410 "スグループのメンバーは全て同じセッションに所属し、 これにより、セッションとプ"
5411 "ロセスグループで二階層のプロセス階層が形成できる)。 新たなセッションの生成は"
5412 "プロセスが B<setsid>(2)  を呼び出すことで行う。 B<setsid>(2)  は、 B<setsid>"
5413 "(2)  を呼び出したプロセスの PID と同じ値のセッション ID を持つ 新たなセッショ"
5414 "ンを生成する。 セッションの生成者は「セッション・リーダー」と呼ばれる。"
5415
5416 #. type: SS
5417 #: build/C/man7/credentials.7:113
5418 #, no-wrap
5419 msgid "User and Group Identifiers"
5420 msgstr "ユーザ ID とグループ ID"
5421
5422 #. type: Plain text
5423 #: build/C/man7/credentials.7:121
5424 msgid ""
5425 "Each process has various associated user and groups IDs.  These IDs are "
5426 "integers, respectively represented using the types I<uid_t> and I<gid_t> "
5427 "(defined in I<E<lt>sys/types.hE<gt>>)."
5428 msgstr ""
5429 "各プロセスは、数種類のユーザ ID とグループ ID を持つ。 ユーザ ID、グループ "
5430 "ID は整数で、それぞれ I<uid_t>, I<gid_t> 型で表現される (これらは I<E<lt>sys/"
5431 "types.hE<gt>> で定義されている)。"
5432
5433 #. type: Plain text
5434 #: build/C/man7/credentials.7:123
5435 msgid "On Linux, each process has the following user and group identifiers:"
5436 msgstr ""
5437 "Linux では、各プロセスは以下のような種類のユーザ ID とグループ ID を持つ。"
5438
5439 #. type: Plain text
5440 #: build/C/man7/credentials.7:129
5441 msgid ""
5442 "Real user ID and real group ID.  These IDs determine who owns the process.  "
5443 "A process can obtain its real user (group) ID using B<getuid>(2)  (B<getgid>"
5444 "(2))."
5445 msgstr ""
5446 "実ユーザ ID と実グループ ID。 これらの ID によりプロセスの所有者が決定され"
5447 "る。 プロセスが自分の実ユーザ ID、実グループ ID を取得するには、それぞれ "
5448 "B<getuid>(2), B<getgid>(2)  を使用する。"
5449
5450 #. type: Plain text
5451 #: build/C/man7/credentials.7:141
5452 msgid ""
5453 "Effective user ID and effective group ID.  These IDs are used by the kernel "
5454 "to determine the permissions that the process will have when accessing "
5455 "shared resources such as message queues, shared memory, and semaphores.  On "
5456 "most UNIX systems, these IDs also determine the permissions when accessing "
5457 "files.  However, Linux uses the file system IDs described below for this "
5458 "task.  A process can obtain its effective user (group) ID using B<geteuid>"
5459 "(2)  (B<getegid>(2))."
5460 msgstr ""
5461 "実効ユーザ ID と実効グループ ID。 これらの ID は、メッセージキュー、共有メモ"
5462 "リ、セマフォなどの 共有リソースにアクセスしようとした際にそのプロセスがアクセ"
5463 "ス許可を 持っているかをカーネルが判定するのに使用される。 ほとんどの UNIX シ"
5464 "ステムでは、これらの ID はファイルへのアクセス時の アクセス許可の判定にも使用"
5465 "される。 しかしながら、Linux ではファイルへのアクセス許可の判定には 後述の"
5466 "ファイルシステム ID が使用される。 プロセスが自分の実効ユーザ ID、実効グルー"
5467 "プ ID を取得するには、それぞれ B<geteuid>(2), B<getegid>(2)  を使用する。"
5468
5469 #. type: Plain text
5470 #: build/C/man7/credentials.7:163
5471 msgid ""
5472 "Saved set-user-ID and saved set-group-ID.  These IDs are used in set-user-ID "
5473 "and set-group-ID programs to save a copy of the corresponding effective IDs "
5474 "that were set when the program was executed (see B<execve>(2)).  A set-user-"
5475 "ID program can assume and drop privileges by switching its effective user ID "
5476 "back and forth between the values in its real user ID and saved set-user-"
5477 "ID.  This switching is done via calls to B<seteuid>(2), B<setreuid>(2), or "
5478 "B<setresuid>(2).  A set-group-ID program performs the analogous tasks using "
5479 "B<setegid>(2), B<setregid>(2), or B<setresgid>(2).  A process can obtain its "
5480 "saved set-user-ID (set-group-ID) using B<getresuid>(2)  (B<getresgid>(2))."
5481 msgstr ""
5482 "保存 (saved) set-user-ID と保存 set-group-ID。 これらの ID は、set-user-ID "
5483 "や set-group-ID されたプログラムにおいて、 プログラムの実行時に設定された実"
5484 "効 ID のコピーを保存するために 使用される (B<execve>(2)  参照)。 set-user-ID "
5485 "プログラムは、実効ユーザ ID を実ユーザID と保存 set-user-ID の間で行ったり来"
5486 "たり切り替えることで、特権を得たり落としたりできる。 この切り替えは "
5487 "B<seteuid>(2), B<setreuid>(2), B<setresuid>(2)  を呼び出すことで実行できる。 "
5488 "set-group-ID プログラムは、 B<setegid>(2), B<setregid>(2), B<setresgid>(2)  "
5489 "を使って同様のことができる。 プロセスが自分の保存 set-user-ID、保存 set-"
5490 "group-ID を取得するには、 B<getresuid(2),> B<getresgids>(2)  をそれぞれ使用す"
5491 "る。"
5492
5493 #. type: Plain text
5494 #: build/C/man7/credentials.7:180
5495 msgid ""
5496 "File system user ID and file system group ID (Linux-specific).  These IDs, "
5497 "in conjunction with the supplementary group IDs described below, are used to "
5498 "determine permissions for accessing files; see B<path_resolution>(7)  for "
5499 "details.  Whenever a process's effective user (group) ID is changed, the "
5500 "kernel also automatically changes the file system user (group) ID to the "
5501 "same value.  Consequently, the file system IDs normally have the same values "
5502 "as the corresponding effective ID, and the semantics for file-permission "
5503 "checks are thus the same on Linux as on other UNIX systems.  The file system "
5504 "IDs can be made to differ from the effective IDs by calling B<setfsuid>(2)  "
5505 "and B<setfsgid>(2)."
5506 msgstr ""
5507 "ファイルシステム・ユーザ ID とファイルシステム・グループ ID (Linux 固有)。 こ"
5508 "れらの ID は、後述の補助グループ ID と組み合わせて使用され、 ファイルへのアク"
5509 "セス権の決定に利用される。詳細は B<path_resolution>(7)  を参照。 プロセスの実"
5510 "効 ID (ユーザ ID や グループ ID) が変更されるたびに、 カーネルは自動的に対応"
5511 "するファイルシステム ID を同じ値に変更する。 その結果、ファイルシステム ID は"
5512 "通常は対応する実効 ID と同じ値となり、 ファイルのアクセス権のチェック方法は "
5513 "Linux と他の UNIX システムで同じである。 ファイルシステム ID は実効 ID とは異"
5514 "なる値にすることができ、 変更は B<setfsuid>(2)  と B<setfsgid>(2)  を呼び出し"
5515 "て行う。"
5516
5517 #.  Since kernel 2.6.4, the limit is visible via the read-only file
5518 #.  /proc/sys/kernel/ngroups_max.
5519 #.  As at 2.6.22-rc2, this file is still read-only.
5520 #. type: Plain text
5521 #: build/C/man7/credentials.7:199
5522 msgid ""
5523 "Supplementary group IDs.  This is a set of additional group IDs that are "
5524 "used for permission checks when accessing files and other shared resources.  "
5525 "On Linux kernels before 2.6.4, a process can be a member of up to 32 "
5526 "supplementary groups; since kernel 2.6.4, a process can be a member of up to "
5527 "65536 supplementary groups.  The call I<sysconf(_SC_NGROUPS_MAX)> can be "
5528 "used to determine the number of supplementary groups of which a process may "
5529 "be a member.  A process can obtain its set of supplementary group IDs using "
5530 "B<getgroups>(2), and can modify the set using B<setgroups>(2)."
5531 msgstr ""
5532 "補助グループ ID。 この ID は、ファイルや他の共有リソースへのアクセス時にアク"
5533 "セス許可の チェックに使用される、追加のグループ ID の集合である。 カーネル "
5534 "2.6.4 より前の Linux では、一つのプロセスあたりの 補助グループのメンバー数は"
5535 "最大で 32 である。 カーネル 2.6.4 以降では、一つのプロセスあたりの 補助グルー"
5536 "プのメンバー数は最大で 65536 である。 I<sysconf(_SC_NGROUPS_MAX)> を呼び出す"
5537 "ことで、あるプロセスがメンバーとなることができる可能性のある 補助グループ数を"
5538 "知ることができる。 プロセスは、自分の補助グループ ID の集合を B<getgroups>"
5539 "(2)  で取得でき、 B<setgroups>(2)  で集合を変更できる。"
5540
5541 #. type: Plain text
5542 #: build/C/man7/credentials.7:209
5543 msgid ""
5544 "A child process created by B<fork>(2)  inherits copies of its parent's user "
5545 "and groups IDs.  During an B<execve>(2), a process's real user and group ID "
5546 "and supplementary group IDs are preserved; the effective and saved set IDs "
5547 "may be changed, as described in B<execve>(2)."
5548 msgstr ""
5549 "B<fork>(2)  で生成された子プロセスは親プロセスのユーザ ID とグループ ID を継"
5550 "承する。 B<execve>(2)  の間、プロセスの実ユーザ/グループ ID と補助グループ "
5551 "ID 集合は不変である。 実効 ID と保存セット ID は変更される可能性がある "
5552 "(B<execve>(2)  で説明されている)。"
5553
5554 #. type: Plain text
5555 #: build/C/man7/credentials.7:212
5556 msgid ""
5557 "Aside from the purposes noted above, a process's user IDs are also employed "
5558 "in a number of other contexts:"
5559 msgstr "上記の目的以外にも、プロセスのユーザ ID は他の様々な場面で利用される。"
5560
5561 #. type: Plain text
5562 #: build/C/man7/credentials.7:215
5563 msgid ""
5564 "when determining the permissions for sending signals\\(emsee B<kill>(2);"
5565 msgstr "シグナルを送る許可の判定時\\(em B<kill>(2)  参照。"
5566
5567 #. type: Plain text
5568 #: build/C/man7/credentials.7:225
5569 msgid ""
5570 "when determining the permissions for setting process-scheduling parameters "
5571 "(nice value, real time scheduling policy and priority, CPU affinity, I/O "
5572 "priority) using B<setpriority>(2), B<sched_setaffinity>(2), "
5573 "B<sched_setscheduler>(2), B<sched_setparam>(2), and B<ioprio_set>(2);"
5574 msgstr ""
5575 "プロセスのスケジューリング関連のパラメータ (nice 値、 リアルタイム・スケ"
5576 "ジューリングポリシーや優先度、CPU affinity、 入出力優先度) の設定許可の判定"
5577 "時。 スケジューリング関連のパラメータ設定には B<setpriority>(2), "
5578 "B<sched_setaffinity>(2), B<sched_setscheduler>(2), B<sched_setparam>(2), "
5579 "B<ioprio_set>(2)  が使用される。"
5580
5581 #. type: Plain text
5582 #: build/C/man7/credentials.7:228
5583 msgid "when checking resource limits; see B<getrlimit>(2);"
5584 msgstr "リソース上限のチェック時。 B<getrlimit>(2)  参照。"
5585
5586 #. type: Plain text
5587 #: build/C/man7/credentials.7:232
5588 msgid ""
5589 "when checking the limit on the number of inotify instances that the process "
5590 "may create; see B<inotify>(7)."
5591 msgstr ""
5592 "プロセスが生成できる inotify インスタンス数の上限のチェック時。 B<inotify>"
5593 "(7)  参照。"
5594
5595 #. type: Plain text
5596 #: build/C/man7/credentials.7:238
5597 msgid ""
5598 "Process IDs, parent process IDs, process group IDs, and session IDs are "
5599 "specified in POSIX.1-2001.  The real, effective, and saved set user and "
5600 "groups IDs, and the supplementary group IDs, are specified in POSIX.1-2001.  "
5601 "The file system user and group IDs are a Linux extension."
5602 msgstr ""
5603 "プロセス ID、親プロセス ID、プロセスグループ ID、セッション ID は "
5604 "POSIX.1-2001 で規定されている。 実 ID、実効 ID、保存セット ID のユーザ ID / "
5605 "グループ ID および 補助グループ ID は POSIX.1-2001 で規定されている。 ファイ"
5606 "ルシステム・ユーザ ID / グループ ID は Linux による拡張である。"
5607
5608 #. type: Plain text
5609 #: build/C/man7/credentials.7:249
5610 msgid ""
5611 "The POSIX threads specification requires that credentials are shared by all "
5612 "of the threads in a process.  However, at the kernel level, Linux maintains "
5613 "separate user and group credentials for each thread.  The NPTL threading "
5614 "implementation does some work to ensure that any change to user or group "
5615 "credentials (e.g., calls to B<setuid>(2), B<setresuid>(2))  is carried "
5616 "through to all of the POSIX threads in a process."
5617 msgstr ""
5618 "POSIX のスレッド仕様では、これらの識別子がプロセス内の全スレッドで 共有される"
5619 "ことを求めている。 しかしながら、カーネルのレベルでは、Linux はスレッド毎に"
5620 "別々の ユーザとグループに関する識別子を管理している。 NPTL スレッド実装が、"
5621 "(例えば B<setuid>(2), B<setresuid>(2)  などの呼び出しによる) ユーザやグループ"
5622 "に関する識別子に対する変更が プロセス内の全ての POSIX スレッドに対して反映さ"
5623 "れることを保証する ための処理を行っている。"
5624
5625 #. type: Plain text
5626 #: build/C/man7/credentials.7:280
5627 msgid ""
5628 "B<bash>(1), B<csh>(1), B<ps>(1), B<access>(2), B<execve>(2), B<faccessat>"
5629 "(2), B<fork>(2), B<getpgrp>(2), B<getpid>(2), B<getppid>(2), B<getsid>(2), "
5630 "B<kill>(2), B<killpg>(2), B<setegid>(2), B<seteuid>(2), B<setfsgid>(2), "
5631 "B<setfsuid>(2), B<setgid>(2), B<setgroups>(2), B<setresgid>(2), B<setresuid>"
5632 "(2), B<setuid>(2), B<waitpid>(2), B<euidaccess>(3), B<initgroups>(3), "
5633 "B<tcgetpgrp>(3), B<tcsetpgrp>(3), B<capabilities>(7), B<path_resolution>(7), "
5634 "B<unix>(7)"
5635 msgstr ""
5636 "B<bash>(1), B<csh>(1), B<ps>(1), B<access>(2), B<execve>(2), B<faccessat>"
5637 "(2), B<fork>(2), B<getpgrp>(2), B<getpid>(2), B<getppid>(2), B<getsid>(2), "
5638 "B<kill>(2), B<killpg>(2), B<setegid>(2), B<seteuid>(2), B<setfsgid>(2), "
5639 "B<setfsuid>(2), B<setgid>(2), B<setgroups>(2), B<setresgid>(2), B<setresuid>"
5640 "(2), B<setuid>(2), B<waitpid>(2), B<euidaccess>(3), B<initgroups>(3), "
5641 "B<tcgetpgrp>(3), B<tcsetpgrp>(3), B<capabilities>(7), B<path_resolution>(7), "
5642 "B<unix>(7)"
5643
5644 #. type: TH
5645 #: build/C/man2/getgid.2:25
5646 #, no-wrap
5647 msgid "GETGID"
5648 msgstr "GETGID"
5649
5650 #. type: TH
5651 #: build/C/man2/getgid.2:25 build/C/man2/getgroups.2:31
5652 #: build/C/man2/getresuid.2:27 build/C/man2/getuid.2:26
5653 #: build/C/man2/setfsgid.2:29 build/C/man2/setfsuid.2:29
5654 #: build/C/man2/setgid.2:27 build/C/man2/setresuid.2:26
5655 #: build/C/man2/setreuid.2:43 build/C/man2/setuid.2:28
5656 #, no-wrap
5657 msgid "2010-11-22"
5658 msgstr "2010-11-22"
5659
5660 #. type: Plain text
5661 #: build/C/man2/getgid.2:28
5662 msgid "getgid, getegid - get group identity"
5663 msgstr "getgid, getegid - グループ ID を得る"
5664
5665 #. type: Plain text
5666 #: build/C/man2/getgid.2:30 build/C/man2/getgroups.2:38
5667 #: build/C/man2/getpid.2:30 build/C/man2/getresuid.2:34
5668 #: build/C/man2/getsid.2:30 build/C/man2/getuid.2:31 build/C/man2/seteuid.2:34
5669 #: build/C/man2/setgid.2:34 build/C/man2/setpgid.2:51
5670 #: build/C/man2/setresuid.2:33 build/C/man2/setreuid.2:50
5671 #: build/C/man2/setsid.2:35 build/C/man2/setuid.2:35
5672 msgid "B<#include E<lt>unistd.hE<gt>>"
5673 msgstr "B<#include E<lt>unistd.hE<gt>>"
5674
5675 #. type: Plain text
5676 #: build/C/man2/getgid.2:32 build/C/man2/getgroups.2:36
5677 #: build/C/man2/getpid.2:28 build/C/man2/getuid.2:33 build/C/man2/seteuid.2:32
5678 #: build/C/man2/setgid.2:32 build/C/man2/setreuid.2:48
5679 #: build/C/man2/setuid.2:33
5680 msgid "B<#include E<lt>sys/types.hE<gt>>"
5681 msgstr "B<#include E<lt>sys/types.hE<gt>>"
5682
5683 #. type: Plain text
5684 #: build/C/man2/getgid.2:34
5685 msgid "B<gid_t getgid(void);>"
5686 msgstr "B<gid_t getgid(void);>"
5687
5688 #. type: Plain text
5689 #: build/C/man2/getgid.2:36
5690 msgid "B<gid_t getegid(void);>"
5691 msgstr "B<gid_t getegid(void);>"
5692
5693 #. type: Plain text
5694 #: build/C/man2/getgid.2:39
5695 msgid "B<getgid>()  returns the real group ID of the calling process."
5696 msgstr "B<getgid>()  は呼び出し元のプロセスの実グループ ID を返す。"
5697
5698 #. type: Plain text
5699 #: build/C/man2/getgid.2:42
5700 msgid "B<getegid>()  returns the effective group ID of the calling process."
5701 msgstr "B<getegid>()  は呼び出し元のプロセスの実効グループ ID を返す。"
5702
5703 #. type: Plain text
5704 #: build/C/man2/getgid.2:44 build/C/man2/getpid.2:44 build/C/man2/getuid.2:45
5705 msgid "These functions are always successful."
5706 msgstr "これらの関数は常に成功する。"
5707
5708 #. type: Plain text
5709 #: build/C/man2/getgid.2:46 build/C/man2/getuid.2:47
5710 msgid "POSIX.1-2001, 4.3BSD."
5711 msgstr "POSIX.1-2001, 4.3BSD."
5712
5713 #. type: Plain text
5714 #: build/C/man2/getgid.2:62
5715 msgid ""
5716 "The original Linux B<getgid>()  and B<getegid>()  system calls supported "
5717 "only 16-bit group IDs.  Subsequently, Linux 2.4 added B<getgid32>()  and "
5718 "B<getegid32>(), supporting 32-bit IDs.  The glibc B<getgid>()  and B<getegid>"
5719 "()  wrapper functions transparently deal with the variations across kernel "
5720 "versions."
5721 msgstr ""
5722 "元々の Linux の B<getgid>() と B<getegid>() システムコールは\n"
5723 "16 ビットのグループ ID だけに対応していた。\n"
5724 "その後、Linux 2.4 で、32 ビットの ID に対応した\n"
5725 "B<getgid32>() と B<getegid32>() が追加された。\n"
5726 "glibc の B<getgid>() と B<getegid>() のラッパー関数は\n"
5727 "カーネルバージョンによるこの違いを吸収している。"
5728
5729 #. type: Plain text
5730 #: build/C/man2/getgid.2:67
5731 msgid "B<getresgid>(2), B<setgid>(2), B<setregid>(2), B<credentials>(7)"
5732 msgstr "B<getresgid>(2), B<setgid>(2), B<setregid>(2), B<credentials>(7)"
5733
5734 #. type: TH
5735 #: build/C/man2/getgroups.2:31
5736 #, no-wrap
5737 msgid "GETGROUPS"
5738 msgstr "GETGROUPS"
5739
5740 #. type: Plain text
5741 #: build/C/man2/getgroups.2:34
5742 msgid "getgroups, setgroups - get/set list of supplementary group IDs"
5743 msgstr "getgroups, setgroups - 補助グループ ID のリストを取得/設定する"
5744
5745 #. type: Plain text
5746 #: build/C/man2/getgroups.2:40
5747 msgid "B<int getgroups(int >I<size>B<, gid_t >I<list>B<[]);>"
5748 msgstr "B<int getgroups(int >I<size>B<, gid_t >I<list>B<[]);>"
5749
5750 #. type: Plain text
5751 #: build/C/man2/getgroups.2:42
5752 msgid "B<#include E<lt>grp.hE<gt>>"
5753 msgstr "B<#include E<lt>grp.hE<gt>>"
5754
5755 #. type: Plain text
5756 #: build/C/man2/getgroups.2:44
5757 msgid "B<int setgroups(size_t >I<size>B<, const gid_t *>I<list>B<);>"
5758 msgstr "B<int setgroups(size_t >I<size>B<, const gid_t *>I<list>B<);>"
5759
5760 #. type: Plain text
5761 #: build/C/man2/getgroups.2:52
5762 msgid "B<setgroups>(): _BSD_SOURCE"
5763 msgstr "B<setgroups>(): _BSD_SOURCE"
5764
5765 #. type: Plain text
5766 #: build/C/man2/getgroups.2:70
5767 msgid ""
5768 "B<getgroups>()  returns the supplementary group IDs of the calling process "
5769 "in I<list>.  The argument I<size> should be set to the maximum number of "
5770 "items that can be stored in the buffer pointed to by I<list>.  If the "
5771 "calling process is a member of more than I<size> supplementary groups, then "
5772 "an error results.  It is unspecified whether the effective group ID of the "
5773 "calling process is included in the returned list.  (Thus, an application "
5774 "should also call B<getegid>(2)  and add or remove the resulting value.)"
5775 msgstr ""
5776 "B<getgroups>()  は呼び出し元プロセスの補助グループ (supplementary group) ID "
5777 "を I<list> に返す。 I<size> 引き数には、 I<list> により参照されるバッファに格"
5778 "納できる要素の最大数を設定すべきである。 呼び出し元プロセスが I<size> 個より"
5779 "多くの補助グループのメンバの場合には、エラーとなる。 この関数を呼び出したプロ"
5780 "セスの実効グループ ID が、 返されるリストに含まれるかどうかは規定されていな"
5781 "い (したがって、アプリケーションは B<getegid>(2)  を呼び出し、その結果の値を"
5782 "追加・削除すべきである)。"
5783
5784 #. type: Plain text
5785 #: build/C/man2/getgroups.2:81
5786 msgid ""
5787 "If I<size> is zero, I<list> is not modified, but the total number of "
5788 "supplementary group IDs for the process is returned.  This allows the caller "
5789 "to determine the size of a dynamically allocated I<list> to be used in a "
5790 "further call to B<getgroups>()."
5791 msgstr ""
5792 "I<size> が 0 ならば、 I<list> は修正されないが、そのプロセスの補助グループ "
5793 "ID の合計数が返される。 これを使うことで、それ以降の B<getgroups>()  の呼び出"
5794 "しで必要となる動的割り当てバッファ I<list> のサイズを、呼び出し元が決定するこ"
5795 "とができる。"
5796
5797 #. type: Plain text
5798 #: build/C/man2/getgroups.2:92
5799 msgid ""
5800 "B<setgroups>()  sets the supplementary group IDs for the calling process.  "
5801 "Appropriate privileges (Linux: the B<CAP_SETGID> capability) are required.  "
5802 "The I<size> argument specifies the number of supplementary group IDs in the "
5803 "buffer pointed to by I<list>."
5804 msgstr ""
5805 "B<setgroups>()  は、呼び出し元プロセスの補助グループ ID を設定する。 適切な特"
5806 "権 (Linux では B<CAP_SETGID> ケーパビリティ (capability)) が必要である。 "
5807 "I<size> 引き数には、 I<list> により参照されるバッファに格納された補助グルー"
5808 "プ ID の数を指定する。"
5809
5810 #. type: Plain text
5811 #: build/C/man2/getgroups.2:99
5812 msgid ""
5813 "On success, B<getgroups>()  returns the number of supplementary group IDs.  "
5814 "On error, -1 is returned, and I<errno> is set appropriately."
5815 msgstr ""
5816 "B<getgroups>()  は、成功すると補助グループ ID の数を返す。 エラーの場合 -1 を"
5817 "返し、 I<errno> を適切に設定する。"
5818
5819 #. type: Plain text
5820 #: build/C/man2/getgroups.2:106
5821 msgid ""
5822 "On success, B<setgroups>()  returns 0.  On error, -1 is returned, and "
5823 "I<errno> is set appropriately."
5824 msgstr ""
5825 "B<setgroups>()  は、成功すると 0 を返す。 エラーの場合 -1 を返し、 I<errno> "
5826 "を適切に設定する。"
5827
5828 #. type: Plain text
5829 #: build/C/man2/getgroups.2:111
5830 msgid "I<list> has an invalid address."
5831 msgstr "I<list> が不正なアドレスである。"
5832
5833 #. type: Plain text
5834 #: build/C/man2/getgroups.2:114
5835 msgid "B<getgroups>()  can additionally fail with the following error:"
5836 msgstr "B<getgroups>()  は、上記に加えて以下のエラーで失敗する可能性がある。"
5837
5838 #. type: Plain text
5839 #: build/C/man2/getgroups.2:118
5840 msgid ""
5841 "I<size> is less than the number of supplementary group IDs, but is not zero."
5842 msgstr "I<size> が補助グループ ID の数より小さいが 0 でない。"
5843
5844 #. type: Plain text
5845 #: build/C/man2/getgroups.2:121
5846 msgid "B<setgroups>()  can additionally fail with the following errors:"
5847 msgstr "B<setgroups>()  は、上記に加えて以下のエラーで失敗する可能性がある。"
5848
5849 #. type: Plain text
5850 #: build/C/man2/getgroups.2:127
5851 msgid ""
5852 "I<size> is greater than B<NGROUPS_MAX> (32 before Linux 2.6.4; 65536 since "
5853 "Linux 2.6.4)."
5854 msgstr ""
5855 "I<size> が B<NGROUPS_MAX> より大きい (B<NGROUPS_MAX> は Linux 2.6.4 より前で"
5856 "は 32、Linux 2.6.4 以降では 65536)。"
5857
5858 #. type: Plain text
5859 #: build/C/man2/getgroups.2:133
5860 msgid "The calling process has insufficient privilege."
5861 msgstr "呼び出し元プロセスが十分な特権を持っていない。"
5862
5863 #. type: Plain text
5864 #: build/C/man2/getgroups.2:141
5865 msgid ""
5866 "SVr4, 4.3BSD.  The B<getgroups>()  function is in POSIX.1-2001.  Since "
5867 "B<setgroups>()  requires privilege, it is not covered by POSIX.1-2001."
5868 msgstr ""
5869 "SVr4, 4.3BSD.  B<getgroups>()  関数は POSIX.1-2001 に準拠している。 "
5870 "B<setgroups>()  は特権を必要とするため、POSIX.1-2001 に従っていない。"
5871
5872 #. type: Plain text
5873 #: build/C/man2/getgroups.2:149
5874 msgid ""
5875 "A process can have up to B<NGROUPS_MAX> supplementary group IDs in addition "
5876 "to the effective group ID.  The set of supplementary group IDs is inherited "
5877 "from the parent process, and preserved across an B<execve>(2)."
5878 msgstr ""
5879 "プロセスは、実効グループ ID に加え、最大 B<NGROUPS_MAX> までの補助グループ "
5880 "ID を持つことができる。 補助グループ ID の集合は親プロセスから継承され、 "
5881 "B<execve>(2)  の前後で保持される。"
5882
5883 #. type: Plain text
5884 #: build/C/man2/getgroups.2:152
5885 msgid ""
5886 "The maximum number of supplementary group IDs can be found using B<sysconf>"
5887 "(3):"
5888 msgstr ""
5889 "補助グループ ID の最大数は B<sysconf>(3)  を使って以下のようにして調べること"
5890 "ができる:"
5891
5892 #. type: Plain text
5893 #: build/C/man2/getgroups.2:156
5894 #, no-wrap
5895 msgid ""
5896 "    long ngroups_max;\n"
5897 "    ngroups_max = sysconf(_SC_NGROUPS_MAX);\n"
5898 msgstr ""
5899 "    long ngroups_max;\n"
5900 "    ngroups_max = sysconf(_SC_NGROUPS_MAX);\n"
5901
5902 #. type: Plain text
5903 #: build/C/man2/getgroups.2:161
5904 msgid ""
5905 "The maximum return value of B<getgroups>()  cannot be larger than one more "
5906 "than this value."
5907 msgstr ""
5908 "B<getgroups>()  の返り値の最大値は、この値より 1 大きい値より大きくなることは"
5909 "ない。"
5910
5911 #. type: Plain text
5912 #: build/C/man2/getgroups.2:171
5913 msgid ""
5914 "The original Linux B<getgroups>()  system call supported only 16-bit group "
5915 "IDs.  Subsequently, Linux 2.4 added B<getgroups32>(), supporting 32-bit "
5916 "IDs.  The glibc B<getgroups>()  wrapper function transparently deals with "
5917 "the variation across kernel versions."
5918 msgstr ""
5919 "元々の Linux の B<getgroups>() システムコールは 16 ビットのグループ ID だけ\n"
5920 "に対応していた。その後、Linux 2.4 で、32 ビットの ID に対応した\n"
5921 "B<getgroups>() が追加された。glibc の B<getgroups> のラッパー関数はカーネル\n"
5922 "バージョンによるこの違いを吸収している。"
5923
5924 #. type: Plain text
5925 #: build/C/man2/getgroups.2:178
5926 msgid ""
5927 "B<getgid>(2), B<setgid>(2), B<getgrouplist>(3), B<initgroups>(3), "
5928 "B<capabilities>(7), B<credentials>(7)"
5929 msgstr ""
5930 "B<getgid>(2), B<setgid>(2), B<getgrouplist>(3), B<initgroups>(3), "
5931 "B<capabilities>(7), B<credentials>(7)"
5932
5933 #. type: TH
5934 #: build/C/man2/getpid.2:23
5935 #, no-wrap
5936 msgid "GETPID"
5937 msgstr "GETPID"
5938
5939 #. type: TH
5940 #: build/C/man2/getpid.2:23
5941 #, no-wrap
5942 msgid "2008-09-23"
5943 msgstr "2008-09-23"
5944
5945 #. type: Plain text
5946 #: build/C/man2/getpid.2:26
5947 msgid "getpid, getppid - get process identification"
5948 msgstr "getpid, getppid - プロセス ID を得る"
5949
5950 #. type: Plain text
5951 #: build/C/man2/getpid.2:32
5952 msgid "B<pid_t getpid(void);>"
5953 msgstr "B<pid_t getpid(void);>"
5954
5955 #. type: Plain text
5956 #: build/C/man2/getpid.2:34
5957 msgid "B<pid_t getppid(void);>"
5958 msgstr "B<pid_t getppid(void);>"
5959
5960 #. type: Plain text
5961 #: build/C/man2/getpid.2:39
5962 msgid ""
5963 "B<getpid>()  returns the process ID of the calling process.  (This is often "
5964 "used by routines that generate unique temporary filenames.)"
5965 msgstr ""
5966 "B<getpid>()  は呼び出し元のプロセスのプロセス ID を返す。(テンポラリ用のファ"
5967 "イル名として 他と重ならない名前を生成するルーチンでしばしば使用される。)"
5968
5969 #. type: Plain text
5970 #: build/C/man2/getpid.2:42
5971 msgid ""
5972 "B<getppid>()  returns the process ID of the parent of the calling process."
5973 msgstr "B<getppid>()  は呼び出し元のプロセスの親プロセスのプロセス ID を返す。"
5974
5975 #. type: Plain text
5976 #: build/C/man2/getpid.2:46
5977 msgid "POSIX.1-2001, 4.3BSD, SVr4."
5978 msgstr "POSIX.1-2001, 4.3BSD, SVr4."
5979
5980 #.  The following program demonstrates this "feature":
5981 #.  #define _GNU_SOURCE
5982 #.  #include <sys/syscall.h>
5983 #.  #include <sys/wait.h>
5984 #.  #include <stdio.h>
5985 #.  #include <stdlib.h>
5986 #.  #include <unistd.h>
5987 #.  int
5988 #.  main(int argc, char *argv[])
5989 #.  {
5990 #.     /* The following statement fills the getpid() cache */
5991 #.     printf("parent PID = %ld
5992 #. ", (long) getpid());
5993 #.     if (syscall(SYS_fork) == 0) {
5994 #.         if (getpid() != syscall(SYS_getpid))
5995 #.             printf("child getpid() mismatch: getpid()=%ld; "
5996 #.                     "syscall(SYS_getpid)=%ld
5997 #. ",
5998 #.                     (long) getpid(), (long) syscall(SYS_getpid));
5999 #.         exit(EXIT_SUCCESS);
6000 #.     }
6001 #.     wait(NULL);
6002 #. }
6003 #. type: Plain text
6004 #: build/C/man2/getpid.2:98
6005 msgid ""
6006 "Since glibc version 2.3.4, the glibc wrapper function for B<getpid>()  "
6007 "caches PIDs, so as to avoid additional system calls when a process calls "
6008 "B<getpid>()  repeatedly.  Normally this caching is invisible, but its "
6009 "correct operation relies on support in the wrapper functions for B<fork>(2), "
6010 "B<vfork>(2), and B<clone>(2): if an application bypasses the glibc wrappers "
6011 "for these system calls by using B<syscall>(2), then a call to B<getpid>()  "
6012 "in the child will return the wrong value (to be precise: it will return the "
6013 "PID of the parent process).  See also B<clone>(2)  for discussion of a case "
6014 "where B<getpid>()  may return the wrong value even when invoking B<clone>"
6015 "(2)  via the glibc wrapper function."
6016 msgstr ""
6017 "glibc バージョン 2.3.4 以降では、 glibc の B<getpid>()  のラッパー関数は PID "
6018 "をキャッシュする。 これは、プロセスが繰り返し B<getpid>()  を呼び出した場合に"
6019 "その都度システムコールを呼ぶのを避けるためである。 通常は、このキャッシュ処理"
6020 "が見えることはないが、 キャッシュ処理が正しく働くためには B<fork>(2), "
6021 "B<vfork>(2), B<clone>(2)  のラッパー関数でのサポートが必要である。 アプリケー"
6022 "ションがこれらのシステムコールを呼び出す際に、 glibc のラッパー関数を経由せず"
6023 "に B<syscall>(2)  を使った場合には、子プロセスで B<getpid>()  を呼び出すと間"
6024 "違った値が返ることだろう (正確にいうと、親プロセスの PID が返される)。 "
6025 "B<clone>(2)  を glibc のラッパー関数経由で起動した際にも B<getpid>()  が間"
6026 "違った値を返す場合があり、これに関する議論は B<clone>(2)  も参照してほしい。"
6027
6028 #. type: Plain text
6029 #: build/C/man2/getpid.2:108
6030 msgid ""
6031 "B<clone>(2), B<fork>(2), B<kill>(2), B<exec>(3), B<mkstemp>(3), B<tempnam>"
6032 "(3), B<tmpfile>(3), B<tmpnam>(3), B<credentials>(7)"
6033 msgstr ""
6034 "B<clone>(2), B<fork>(2), B<kill>(2), B<exec>(3), B<mkstemp>(3), B<tempnam>"
6035 "(3), B<tmpfile>(3), B<tmpnam>(3), B<credentials>(7)"
6036
6037 #. type: TH
6038 #: build/C/man2/getpriority.2:46
6039 #, no-wrap
6040 msgid "GETPRIORITY"
6041 msgstr "GETPRIORITY"
6042
6043 #. type: TH
6044 #: build/C/man2/getpriority.2:46
6045 #, no-wrap
6046 msgid "2008-05-29"
6047 msgstr "2008-05-29"
6048
6049 #. type: Plain text
6050 #: build/C/man2/getpriority.2:49
6051 msgid "getpriority, setpriority - get/set program scheduling priority"
6052 msgstr ""
6053 "getpriority, setpriority - プログラムのスケジューリングの優先度を取得/設定す"
6054 "る"
6055
6056 #. type: Plain text
6057 #: build/C/man2/getpriority.2:51 build/C/man2/getrlimit.2:69
6058 #: build/C/man2/getrusage.2:44
6059 msgid "B<#include E<lt>sys/time.hE<gt>>"
6060 msgstr "B<#include E<lt>sys/time.hE<gt>>"
6061
6062 #. type: Plain text
6063 #: build/C/man2/getpriority.2:53 build/C/man2/getrlimit.2:71
6064 #: build/C/man2/getrusage.2:46
6065 msgid "B<#include E<lt>sys/resource.hE<gt>>"
6066 msgstr "B<#include E<lt>sys/resource.hE<gt>>"
6067
6068 #. type: Plain text
6069 #: build/C/man2/getpriority.2:55
6070 msgid "B<int getpriority(int >I<which>B<, int >I<who>B<);>"
6071 msgstr "B<int getpriority(int >I<which>B<, int >I<who>B<);>"
6072
6073 #. type: Plain text
6074 #: build/C/man2/getpriority.2:57
6075 msgid "B<int setpriority(int >I<which>B<, int >I<who>B<, int >I<prio>B<);>"
6076 msgstr "B<int setpriority(int >I<which>B<, int >I<who>B<, int >I<prio>B<);>"
6077
6078 #. type: Plain text
6079 #: build/C/man2/getpriority.2:68
6080 msgid ""
6081 "The scheduling priority of the process, process group, or user, as indicated "
6082 "by I<which> and I<who> is obtained with the B<getpriority>()  call and set "
6083 "with the B<setpriority>()  call."
6084 msgstr ""
6085 "システムコール B<getpriority>()  や B<setpriority>()  は、 I<which> と "
6086 "I<who> で指定されたプロセス、プロセスグループ、ユーザーの スケジューリング優"
6087 "先度 (scheduling priority) の 取得や設定をそれぞれ行う。"
6088
6089 #. type: Plain text
6090 #: build/C/man2/getpriority.2:95
6091 msgid ""
6092 "The value I<which> is one of B<PRIO_PROCESS>, B<PRIO_PGRP>, or B<PRIO_USER>, "
6093 "and I<who> is interpreted relative to I<which> (a process identifier for "
6094 "B<PRIO_PROCESS>, process group identifier for B<PRIO_PGRP>, and a user ID "
6095 "for B<PRIO_USER>).  A zero value for I<who> denotes (respectively) the "
6096 "calling process, the process group of the calling process, or the real user "
6097 "ID of the calling process.  I<Prio> is a value in the range -20 to 19 (but "
6098 "see the Notes below).  The default priority is 0; lower priorities cause "
6099 "more favorable scheduling."
6100 msgstr ""
6101 "I<which> の値は B<PRIO_PROCESS>, B<PRIO_PGRP>, B<PRIO_USER>, のどれか一つ"
6102 "で、 I<who> は I<which> に応じて解釈される (B<PRIO_PROCESS> だとプロセス識別"
6103 "子、 B<PRIO_PGRP> だとプロセスグループ識別子、 B<PRIO_USER> だと UID (ユーザ"
6104 "ID) と解釈される)。 I<who> がゼロならば、(それぞれ)呼び出したプロセス、 呼び"
6105 "出したプロセスのプロセスグループ、 呼び出したプロセスの実UID を意味する。 "
6106 "I<prio> は -20 から 19 の範囲の値で (但し以下の注意の項を参照のこと)、 デフォ"
6107 "ルトの優先度は 0 である; 小さな数字ほど、有利なスケジューリングとなる。"
6108
6109 #. type: Plain text
6110 #: build/C/man2/getpriority.2:105
6111 msgid ""
6112 "The B<getpriority>()  call returns the highest priority (lowest numerical "
6113 "value)  enjoyed by any of the specified processes.  The B<setpriority>()  "
6114 "call sets the priorities of all of the specified processes to the specified "
6115 "value.  Only the superuser may lower priorities."
6116 msgstr ""
6117 "B<getpriority>()  コールは指定したプロセスの中の最も高い優先度 (数値的には最"
6118 "小の値) を返す。 B<setpriority>()  コールは指定したプロセス全ての優先度を指定"
6119 "した値に設定する。 優先度を今より小さい値に設定できるのはスーパーユーザーだけ"
6120 "である。"
6121
6122 #. type: Plain text
6123 #: build/C/man2/getpriority.2:118
6124 msgid ""
6125 "Since B<getpriority>()  can legitimately return the value -1, it is "
6126 "necessary to clear the external variable I<errno> prior to the call, then "
6127 "check it afterward to determine if -1 is an error or a legitimate value.  "
6128 "The B<setpriority>()  call returns 0 if there is no error, or -1 if there is."
6129 msgstr ""
6130 "B<getpriority>()  は成功した場合にも -1 の値を返す可能性があるので、 呼び出し"
6131 "の前に外部変数の I<errno> をクリアし、呼び出しの後に返り値の -1 が正当な値か "
6132 "エラーかを判別する必要がある。 B<setpriority>()  コールはエラーがなければ 0 "
6133 "を返し、エラーがあれば -1 を返す。"
6134
6135 #. type: Plain text
6136 #: build/C/man2/getpriority.2:127
6137 msgid "I<which> was not one of B<PRIO_PROCESS>, B<PRIO_PGRP>, or B<PRIO_USER>."
6138 msgstr ""
6139 "I<which> が B<PRIO_PROCESS>, B<PRIO_PGRP>, B<PRIO_USER> のいずれでもない。"
6140
6141 #. type: Plain text
6142 #: build/C/man2/getpriority.2:134
6143 msgid "No process was located using the I<which> and I<who> values specified."
6144 msgstr "I<which> と I<who> で指定されたプロセスが存在しない。"
6145
6146 #. type: Plain text
6147 #: build/C/man2/getpriority.2:138
6148 msgid ""
6149 "In addition to the errors indicated above, B<setpriority>()  may fail if:"
6150 msgstr "上記のものに加えて B<setpriority>()  では以下のエラーがある:"
6151
6152 #. type: Plain text
6153 #: build/C/man2/getpriority.2:150
6154 msgid ""
6155 "The caller attempted to lower a process priority, but did not have the "
6156 "required privilege (on Linux: did not have the B<CAP_SYS_NICE> capability).  "
6157 "Since Linux 2.6.12, this error only occurs if the caller attempts to set a "
6158 "process priority outside the range of the B<RLIMIT_NICE> soft resource limit "
6159 "of the target process; see B<getrlimit>(2)  for details."
6160 msgstr ""
6161 "呼び出し元がプロセスの優先度を下げようとしたが、必要な特権を 持っていなかっ"
6162 "た (Linux の場合、 B<CAP_SYS_NICE> ケーパビリティがなかった)。 Linux 2.6.12 "
6163 "以降では、呼び出し元が、あるプロセスの優先度を、 変更対象のプロセスのリソー"
6164 "ス B<RLIMIT_NICE> のソフトリミットの範囲外に設定しようとした場合にのみ、 この"
6165 "エラーが発生する。詳細は B<getrlimit>(2)  を参照。"
6166
6167 #. type: Plain text
6168 #: build/C/man2/getpriority.2:158
6169 msgid ""
6170 "A process was located, but its effective user ID did not match either the "
6171 "effective or the real user ID of the caller, and was not privileged (on "
6172 "Linux: did not have the B<CAP_SYS_NICE> capability).  But see NOTES below."
6173 msgstr ""
6174 "プロセスは見つかったが、そのプロセスの実効 (effective) UID が 呼び出し元の実"
6175 "効UID にも実 (real) UID にも一致せず、 呼び出し元が特権も持っていなかった "
6176 "(Linux の場合、 B<CAP_SYS_NICE> ケーパビリティがなかった)。 以下の「注意」も"
6177 "参照のこと。"
6178
6179 #. type: Plain text
6180 #: build/C/man2/getpriority.2:161
6181 msgid ""
6182 "SVr4, 4.4BSD (these function calls first appeared in 4.2BSD), POSIX.1-2001."
6183 msgstr "SVr4, 4.4BSD (これらの関数は 4.2BSD で最初に登場した), POSIX.1-2001."
6184
6185 #. type: Plain text
6186 #: build/C/man2/getpriority.2:167
6187 msgid ""
6188 "A child created by B<fork>(2)  inherits its parent's nice value.  The nice "
6189 "value is preserved across B<execve>(2)."
6190 msgstr ""
6191 "B<fork>(2)  で作成された子プロセスは、 親プロセスの nice 値を継承する。 "
6192 "B<execve>(2)  の前後で nice 値は保存される。"
6193
6194 #. type: Plain text
6195 #: build/C/man2/getpriority.2:178
6196 msgid ""
6197 "The degree to which their relative nice value affects the scheduling of "
6198 "processes varies across UNIX systems, and, on Linux, across kernel "
6199 "versions.  Starting with kernel 2.6.23, Linux adopted an algorithm that "
6200 "causes relative differences in nice values to have a much stronger effect.  "
6201 "This causes very low nice values (+19) to truly provide little CPU to a "
6202 "process whenever there is any other higher priority load on the system, and "
6203 "makes high nice values (-20) deliver most of the CPU to applications that "
6204 "require it (e.g., some audio applications)."
6205 msgstr ""
6206 "相対的な nice 値の違いがプロセス間のスケジューリングにどの程度影響を与えるか "
6207 "は、UNIX システム間で異なり、Linux ではカーネルバージョンにより異なる。 "
6208 "Linux は、カーネル 2.6.23 以降で、nice 値の相対的な違いが、非常に強い影響を "
6209 "与えるアルゴリズムを採用した。このアルゴリズムでは、 他に優先度の高いものがシ"
6210 "ステムに存在する時には、 非常に低い nice 値 (+19) ではプロセスに本当にほとん"
6211 "ど CPU が割り当てられない。 また、高い nice 値 (-20) では CPU を必要とするア"
6212 "プリケーション (例えば オーディオアプリケーション) に CPU のほとんどが割り当"
6213 "てられる。"
6214
6215 #. type: Plain text
6216 #: build/C/man2/getpriority.2:193
6217 msgid ""
6218 "The details on the condition for B<EPERM> depend on the system.  The above "
6219 "description is what POSIX.1-2001 says, and seems to be followed on all "
6220 "System V-like systems.  Linux kernels before 2.6.12 required the real or "
6221 "effective user ID of the caller to match the real user of the process I<who> "
6222 "(instead of its effective user ID).  Linux 2.6.12 and later require the "
6223 "effective user ID of the caller to match the real or effective user ID of "
6224 "the process I<who>.  All BSD-like systems (SunOS 4.1.3, Ultrix 4.2, 4.3BSD, "
6225 "FreeBSD 4.3, OpenBSD-2.5, ...) behave in the same manner as Linux 2.6.12 and "
6226 "later."
6227 msgstr ""
6228 "B<EPERM> が発生する条件の詳細はシステムに依存する。 上記の説明は "
6229 "POSIX.1-2001 のものであり、全ての System V 風システムは これに従っているよう"
6230 "である。 2.6.12 より前の Linux カーネルでは、呼び出し元の実 UID または 実効 "
6231 "UID がプロセス I<who> の (実効 UID でなく)  実 UID に一致する必要がある。 "
6232 "Linux 2.6.12 以降では、呼び出し元の実行 UID がプロセス I<who> の実 UID か実"
6233 "効 UID のいずれかと一致する必要がある。 全ての BSD 風システム (SunOS 4.1.3, "
6234 "Ultrix 4.2, 4.3BSD, FreeBSD 4.3, OpenBSD-2.5等) は、 Linux 2.6.12 以降と同じ"
6235 "動作をする。"
6236
6237 #. type: Plain text
6238 #: build/C/man2/getpriority.2:209
6239 msgid ""
6240 "The actual priority range varies between kernel versions.  Linux before "
6241 "1.3.36 had -infinity..15.  Since kernel 1.3.43 Linux has the range -20..19.  "
6242 "Within the kernel, nice values are actually represented using the "
6243 "corresponding range 40..1 (since negative numbers are error codes) and these "
6244 "are the values employed by the B<setpriority>()  and B<getpriority>()  "
6245 "system calls.  The glibc wrapper functions for these system calls handle the "
6246 "translations between the user-land and kernel representations of the nice "
6247 "value according to the formula I<unice\\ =\\ 20\\ -\\ knice>."
6248 msgstr ""
6249 "実際の優先度の値の範囲はカーネルのバージョンによって異なる。 1.3.36 より前の "
6250 "Linux では、優先度の範囲は負の無限大 〜 15 である。 1.3.43 以降の Linux で"
6251 "は、優先度の範囲は -20 〜 19 である。 カーネル内部では、nice 値は実際には 40 "
6252 "〜 1 の範囲を使って 表現されており (負の値はエラーコードとなるため)、こちらの"
6253 "値が システムコール B<setpriority>()  と B<getpriority>()  で使用されてい"
6254 "る。 glibc のこれらのシステムコールのラッパー関数において、nice 値の ユーザ領"
6255 "域 (user-land) とカーネル表現の間の変換が行われる。 変換式は以下の通り: "
6256 "I<unice\\ =\\ 20\\ -\\ knice>"
6257
6258 #. type: Plain text
6259 #: build/C/man2/getpriority.2:211
6260 msgid "On some systems, the range of nice values is -20..20."
6261 msgstr "いくつかのシステムでは、nice 値の範囲は \\20 〜 20 である。"
6262
6263 #. type: Plain text
6264 #: build/C/man2/getpriority.2:223
6265 msgid ""
6266 "Including I<E<lt>sys/time.hE<gt>> is not required these days, but increases "
6267 "portability.  (Indeed, I<E<lt>sys/resource.hE<gt>> defines the I<rusage> "
6268 "structure with fields of type I<struct timeval> defined in I<E<lt>sys/time."
6269 "hE<gt>>.)"
6270 msgstr ""
6271 "現在では I<E<lt>sys/time.hE<gt>> をインクルードする必要はないが、インクルード"
6272 "すれば移植性を高めることができる (実際には I<E<lt>sys/resource.hE<gt>> で "
6273 "I<rusage> 構造体が定義されているが、そのフィールドで使用されている I<struct "
6274 "timeval> 型は I<E<lt>sys/time.hE<gt>> で定義されている)。"
6275
6276 #. type: Plain text
6277 #: build/C/man2/getpriority.2:228
6278 msgid "B<nice>(1), B<renice>(1), B<fork>(2), B<capabilities>(7)"
6279 msgstr "B<nice>(1), B<renice>(1), B<fork>(2), B<capabilities>(7)"
6280
6281 #. type: Plain text
6282 #: build/C/man2/getpriority.2:231
6283 msgid ""
6284 "I<Documentation/scheduler/sched-nice-design.txt> in the kernel source tree "
6285 "(since Linux 2.6.23)."
6286 msgstr ""
6287 "(Linux 2.6.23 以降の) カーネルのソースツリー内の I<Documentation/scheduler/"
6288 "sched-nice-design.txt>"
6289
6290 #. type: TH
6291 #: build/C/man2/getresuid.2:27
6292 #, no-wrap
6293 msgid "GETRESUID"
6294 msgstr "GETRESUID"
6295
6296 #. type: Plain text
6297 #: build/C/man2/getresuid.2:30
6298 msgid "getresuid, getresgid - get real, effective and saved user/group IDs"
6299 msgstr ""
6300 "getresuid, getresgid - 実、実効、保存、ユーザー ID / グループ ID を取得する"
6301
6302 #. type: Plain text
6303 #: build/C/man2/getresuid.2:32 build/C/man2/setresuid.2:31
6304 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
6305 msgstr "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */"
6306
6307 #. type: Plain text
6308 #: build/C/man2/getresuid.2:36
6309 msgid ""
6310 "B<int getresuid(uid_t *>I<ruid>B<, uid_t *>I<euid>B<, uid_t *>I<suid>B<);>"
6311 msgstr ""
6312 "B<int getresuid(uid_t *>I<ruid>B<, uid_t *>I<euid>B<, uid_t *>I<suid>B<);>"
6313
6314 #. type: Plain text
6315 #: build/C/man2/getresuid.2:38
6316 msgid ""
6317 "B<int getresgid(gid_t *>I<rgid>B<, gid_t *>I<egid>B<, gid_t *>I<sgid>B<);>"
6318 msgstr ""
6319 "B<int getresgid(gid_t *>I<rgid>B<, gid_t *>I<egid>B<, gid_t *>I<sgid>B<);>"
6320
6321 #. type: Plain text
6322 #: build/C/man2/getresuid.2:49
6323 msgid ""
6324 "B<getresuid>()  returns the real UID, the effective UID, and the saved set-"
6325 "user-ID of the calling process, in the arguments I<ruid>, I<euid>, and "
6326 "I<suid>, respectively.  B<getresgid>()  performs the analogous task for the "
6327 "process's group IDs."
6328 msgstr ""
6329 "B<getresuid>()  は、呼び出したプロセスの実 (real) UID、実効 (effective) "
6330 "UID、 保存 (saved) set-user-ID (B<getresgid> の場合はグループ ID) を、 それぞ"
6331 "れ引き数 I<ruid>, I<euid>, I<suid> に格納して返す。 B<getresgid>()  は、呼び"
6332 "出したプロセスのグループ ID について同様の処理を行う。"
6333
6334 #. type: Plain text
6335 #: build/C/man2/getresuid.2:59
6336 msgid ""
6337 "One of the arguments specified an address outside the calling program's "
6338 "address space."
6339 msgstr ""
6340 "指定した引き数のどれかが、呼び出したプログラムのアドレス空間の外の アドレスで"
6341 "ある。"
6342
6343 #. type: Plain text
6344 #: build/C/man2/getresuid.2:61
6345 msgid "These system calls appeared on Linux starting with kernel 2.1.44."
6346 msgstr "これらのシステムコールはカーネル 2.1.44 から Linux に登場した。"
6347
6348 #. type: Plain text
6349 #: build/C/man2/getresuid.2:66
6350 msgid ""
6351 "The prototypes are given by glibc since version 2.3.2, provided "
6352 "B<_GNU_SOURCE> is defined."
6353 msgstr ""
6354 "プロトタイプ宣言は 2.3.2 以降の glibc では B<_GNU_SOURCE> を定義していると得"
6355 "られる。"
6356
6357 #. type: Plain text
6358 #: build/C/man2/getresuid.2:69 build/C/man2/setresuid.2:86
6359 msgid ""
6360 "These calls are nonstandard; they also appear on HP-UX and some of the BSDs."
6361 msgstr "これらのコールは非標準である。 HP-UX や BSD 系のいくつかにも存在する。"
6362
6363 #. type: Plain text
6364 #: build/C/man2/getresuid.2:85
6365 msgid ""
6366 "The original Linux B<getresuid>()  and B<getresgid>()  system calls "
6367 "supported only 16-bit user and group IDs.  Subsequently, Linux 2.4 added "
6368 "B<getresuid32>()  and B<getresgid32>(), supporting 32-bit IDs.  The glibc "
6369 "B<getresuid>()  and B<getresgid>()  wrapper functions transparently deal "
6370 "with the variations across kernel versions."
6371 msgstr ""
6372 "元々の Linux の B<getresuid>() と B<getresgid>() システムコールは\n"
6373 "16 ビットのグループ ID だけに対応していた。\n"
6374 "その後、Linux 2.4 で、32 ビットの ID に対応した\n"
6375 "B<getresuid32>() と B<getresgid32>() が追加された。\n"
6376 "glibc の B<getresuid>() と B<getresgid>() のラッパー関数は\n"
6377 "カーネルバージョンによるこの違いを吸収している。"
6378
6379 #. type: Plain text
6380 #: build/C/man2/getresuid.2:91
6381 msgid ""
6382 "B<getuid>(2), B<setresuid>(2), B<setreuid>(2), B<setuid>(2), B<credentials>"
6383 "(7)"
6384 msgstr ""
6385 "B<getuid>(2), B<setresuid>(2), B<setreuid>(2), B<setuid>(2), B<credentials>"
6386 "(7)"
6387
6388 #. type: TH
6389 #: build/C/man2/getrlimit.2:64
6390 #, no-wrap
6391 msgid "GETRLIMIT"
6392 msgstr "GETRLIMIT"
6393
6394 #. type: TH
6395 #: build/C/man2/getrlimit.2:64
6396 #, no-wrap
6397 msgid "2011-09-10"
6398 msgstr "2011-09-10"
6399
6400 #. type: Plain text
6401 #: build/C/man2/getrlimit.2:67
6402 msgid "getrlimit, setrlimit, prlimit - get/set resource limits"
6403 msgstr "getrlimit, setrlimit, prlimit - 資源の制限を取得/設定する"
6404
6405 #. type: Plain text
6406 #: build/C/man2/getrlimit.2:73
6407 msgid "B<int getrlimit(int >I<resource>B<, struct rlimit *>I<rlim>B<);>"
6408 msgstr "B<int getrlimit(int >I<resource>B<, struct rlimit *>I<rlim>B<);>"
6409
6410 #. type: Plain text
6411 #: build/C/man2/getrlimit.2:75
6412 msgid "B<int setrlimit(int >I<resource>B<, const struct rlimit *>I<rlim>B<);>"
6413 msgstr "B<int setrlimit(int >I<resource>B<, const struct rlimit *>I<rlim>B<);>"
6414
6415 #. type: Plain text
6416 #: build/C/man2/getrlimit.2:78
6417 msgid ""
6418 "B<int prlimit(pid_t >I<pid>B<, int >I<resource>B<, const struct rlimit "
6419 "*>I<new_limit>B<,>"
6420 msgstr ""
6421 "B<int prlimit(pid_t >I<pid>B<, int >I<resource>B<, const struct rlimit "
6422 "*>I<new_limit>B<,>"
6423
6424 #. type: Plain text
6425 #: build/C/man2/getrlimit.2:80
6426 msgid "B< struct rlimit *>I<old_limit>B<);>"
6427 msgstr "B< struct rlimit *>I<old_limit>B<);>"
6428
6429 #. type: Plain text
6430 #: build/C/man2/getrlimit.2:88
6431 msgid "B<prlimit>(): _GNU_SOURCE && _FILE_OFFSET_BITS == 64"
6432 msgstr ""
6433
6434 #. type: Plain text
6435 #: build/C/man2/getrlimit.2:97
6436 msgid ""
6437 "The B<getrlimit>()  and B<setrlimit>()  system calls get and set resource "
6438 "limits respectively.  Each resource has an associated soft and hard limit, "
6439 "as defined by the I<rlimit> structure:"
6440 msgstr ""
6441 "B<getrlimit>() と B<setrlimit>() はそれぞれ資源 (resource) の制限\n"
6442 "(limit) の設定と取得を行う。 各リソースには、それに対応するソフトリミッ\n"
6443 "トとハードリミットがあり、 I<rlimit> 構造体で定義される:"
6444
6445 #. type: Plain text
6446 #: build/C/man2/getrlimit.2:104
6447 #, no-wrap
6448 msgid ""
6449 "struct rlimit {\n"
6450 "    rlim_t rlim_cur;  /* Soft limit */\n"
6451 "    rlim_t rlim_max;  /* Hard limit (ceiling for rlim_cur) */\n"
6452 "};\n"
6453 msgstr ""
6454 "struct rlimit {\n"
6455 "    rlim_t rlim_cur;  /* ソフトリミット */\n"
6456 "    rlim_t rlim_max;  /* ハードリミット\n"
6457 "                         (rlim_cur より小さくない) */\n"
6458 "};\n"
6459
6460 #. type: Plain text
6461 #: build/C/man2/getrlimit.2:115
6462 msgid ""
6463 "The soft limit is the value that the kernel enforces for the corresponding "
6464 "resource.  The hard limit acts as a ceiling for the soft limit: an "
6465 "unprivileged process may only set its soft limit to a value in the range "
6466 "from 0 up to the hard limit, and (irreversibly) lower its hard limit.  A "
6467 "privileged process (under Linux: one with the B<CAP_SYS_RESOURCE> "
6468 "capability) may make arbitrary changes to either limit value."
6469 msgstr ""
6470 "ソフトリミットは、カーネルが対応するリソースに対して課す制限値である。 ハード"
6471 "リミットはソフトリミットの上限として働く。 特権を持たないプロセスは、ソフトリ"
6472 "ミットの値を 0 からハードリミットの範囲に設定することと、 ハードリミットを下"
6473 "げることのみができる (一度下げたハードリミットは上げられない)。 特権プロセス "
6474 "(Linux では B<CAP_SYS_RESOURCE> ケーパビリティ (capability) を持つプロセス) "
6475 "は ソフトリミットとハードリミットを自由に変更できる。"
6476
6477 #. type: Plain text
6478 #: build/C/man2/getrlimit.2:122
6479 msgid ""
6480 "The value B<RLIM_INFINITY> denotes no limit on a resource (both in the "
6481 "structure returned by B<getrlimit>()  and in the structure passed to "
6482 "B<setrlimit>())."
6483 msgstr ""
6484 "値 B<RLIM_INFINITY> はリソースに制限がないことを表す (この値は B<getrlimit>"
6485 "()  が返す構造体と B<setrlimit>()  に渡す構造体の両方で使用される)。"
6486
6487 #. type: Plain text
6488 #: build/C/man2/getrlimit.2:126
6489 msgid "The I<resource> argument must be one of:"
6490 msgstr "I<resource> 引き数は次のいずれか 1 つである。"
6491
6492 #. type: TP
6493 #: build/C/man2/getrlimit.2:126
6494 #, no-wrap
6495 msgid "B<RLIMIT_AS>"
6496 msgstr "B<RLIMIT_AS>"
6497
6498 #.  since 2.0.27 / 2.1.12
6499 #. type: Plain text
6500 #: build/C/man2/getrlimit.2:146
6501 msgid ""
6502 "The maximum size of the process's virtual memory (address space) in bytes.  "
6503 "This limit affects calls to B<brk>(2), B<mmap>(2)  and B<mremap>(2), which "
6504 "fail with the error B<ENOMEM> upon exceeding this limit.  Also automatic "
6505 "stack expansion will fail (and generate a B<SIGSEGV> that kills the process "
6506 "if no alternate stack has been made available via B<sigaltstack>(2)).  Since "
6507 "the value is a I<long>, on machines with a 32-bit I<long> either this limit "
6508 "is at most 2 GiB, or this resource is unlimited."
6509 msgstr ""
6510 "プロセスの仮想メモリ (アドレス空間) の最大サイズ (バイト単位)。 この制限は "
6511 "B<brk>(2), B<mmap>(2), B<mremap>(2)  の呼び出しに影響し、この制限を超えた場合"
6512 "は エラー B<ENOMEM> で失敗する。 また自動的なスタック拡張にも失敗する (さら"
6513 "に B<sigaltstack>(2)  を使った代替スタックを利用可能にしていなかった場合に"
6514 "は、 B<SIGSEGV> を生成してそのプロセスを kill する)。 この値は I<long> 型なの"
6515 "で、32 ビットの I<long> 型を持つマシンでは、 この制限は最大で 2 GiB になる"
6516 "か、この資源が無制限になる。"
6517
6518 #. type: TP
6519 #: build/C/man2/getrlimit.2:146
6520 #, no-wrap
6521 msgid "B<RLIMIT_CORE>"
6522 msgstr "B<RLIMIT_CORE>"
6523
6524 #. type: Plain text
6525 #: build/C/man2/getrlimit.2:153
6526 msgid ""
6527 "Maximum size of I<core> file.  When 0 no core dump files are created.  When "
6528 "nonzero, larger dumps are truncated to this size."
6529 msgstr ""
6530 "I<core> ファイルの最大サイズ。 0 の場合、core ファイルは生成されない。 0 以外"
6531 "の場合、このサイズより大きいダンプは切り詰められる。"
6532
6533 #. type: TP
6534 #: build/C/man2/getrlimit.2:153
6535 #, no-wrap
6536 msgid "B<RLIMIT_CPU>"
6537 msgstr "B<RLIMIT_CPU>"
6538
6539 #. type: Plain text
6540 #: build/C/man2/getrlimit.2:173
6541 msgid ""
6542 "CPU time limit in seconds.  When the process reaches the soft limit, it is "
6543 "sent a B<SIGXCPU> signal.  The default action for this signal is to "
6544 "terminate the process.  However, the signal can be caught, and the handler "
6545 "can return control to the main program.  If the process continues to consume "
6546 "CPU time, it will be sent B<SIGXCPU> once per second until the hard limit is "
6547 "reached, at which time it is sent B<SIGKILL>.  (This latter point describes "
6548 "Linux behavior.  Implementations vary in how they treat processes which "
6549 "continue to consume CPU time after reaching the soft limit.  Portable "
6550 "applications that need to catch this signal should perform an orderly "
6551 "termination upon first receipt of B<SIGXCPU>.)"
6552 msgstr ""
6553 "CPU 時間の上限 (秒数)。プロセスがソフトリミットに達した場合に、\n"
6554 "B<SIGXCPU> シグナルを送る。このシグナルに対するデフォルトの動作は、\n"
6555 "プロセスの終了である。ただし、シグナルをキャッチして、ハンドラがメイン\n"
6556 "プログラムに制御を返すこともできる。プロセスが CPU 時間を使い続けた\n"
6557 "場合は、ハードリミットに達するまで 1 秒毎にプロセスに B<SIGXCPU> を送り、\n"
6558 "ハードリミットに達すると B<SIGKILL> を送る。\n"
6559 "(ソフトリミットを超過したときの動作は、 Linux における動作である。ソフ\n"
6560 "トリミットを超えて CPU 時間を使い続けるプロセスの扱い方についての実装は\n"
6561 "変化してきている。 このシグナルをキャッチする必要のある 移植性を考えた\n"
6562 "アプリケーションでは、 最初に B<SIGXCPU> を受け取った時点で正しく終了\n"
6563 "すべきである。)"
6564
6565 #. type: TP
6566 #: build/C/man2/getrlimit.2:173
6567 #, no-wrap
6568 msgid "B<RLIMIT_DATA>"
6569 msgstr "B<RLIMIT_DATA>"
6570
6571 #. type: Plain text
6572 #: build/C/man2/getrlimit.2:184
6573 msgid ""
6574 "The maximum size of the process's data segment (initialized data, "
6575 "uninitialized data, and heap).  This limit affects calls to B<brk>(2)  and "
6576 "B<sbrk>(2), which fail with the error B<ENOMEM> upon encountering the soft "
6577 "limit of this resource."
6578 msgstr ""
6579 "プロセスのデータセグメント (初期化されたデータ・初期化されていないデータ・"
6580 "ヒープ) の最大値。 このリミットは B<brk>(2)  と B<sbrk>(2)  の呼び出しに影響"
6581 "する。 これらの関数は、このリソースのソフトリミットに達すると、 エラー "
6582 "B<ENOMEM> で失敗する。"
6583
6584 #. type: TP
6585 #: build/C/man2/getrlimit.2:184
6586 #, no-wrap
6587 msgid "B<RLIMIT_FSIZE>"
6588 msgstr "B<RLIMIT_FSIZE>"
6589
6590 #. type: Plain text
6591 #: build/C/man2/getrlimit.2:196
6592 msgid ""
6593 "The maximum size of files that the process may create.  Attempts to extend a "
6594 "file beyond this limit result in delivery of a B<SIGXFSZ> signal.  By "
6595 "default, this signal terminates a process, but a process can catch this "
6596 "signal instead, in which case the relevant system call (e.g., B<write>(2), "
6597 "B<truncate>(2))  fails with the error B<EFBIG>."
6598 msgstr ""
6599 "プロセスが作成できるファイルサイズの最大値。 このサイズを超えてファイルを拡張"
6600 "すると、 B<SIGXFSZ> シグナルを送る。 デフォルトでは、このシグナルはプロセスを"
6601 "終了する。 プロセスをキャッチすることもできるが、 関連するシステムコール "
6602 "(B<write>(2), B<truncate>(2)  など) はエラー B<EFBIG> で失敗する。"
6603
6604 #. type: TP
6605 #: build/C/man2/getrlimit.2:196
6606 #, no-wrap
6607 msgid "B<RLIMIT_LOCKS> (Early Linux 2.4 only)"
6608 msgstr "B<RLIMIT_LOCKS> (初期の Linux 2.4 のみ)"
6609
6610 #.  to be precise: Linux 2.4.0-test9; no longer in 2.4.25 / 2.5.65
6611 #. type: Plain text
6612 #: build/C/man2/getrlimit.2:204
6613 msgid ""
6614 "A limit on the combined number of B<flock>(2)  locks and B<fcntl>(2)  leases "
6615 "that this process may establish."
6616 msgstr ""
6617 "このプロセスが実行できる B<flock>(2)  ロック数と B<fcntl>(2)  リース数の合計"
6618 "値を制限する。"
6619
6620 #. type: TP
6621 #: build/C/man2/getrlimit.2:204
6622 #, no-wrap
6623 msgid "B<RLIMIT_MEMLOCK>"
6624 msgstr "B<RLIMIT_MEMLOCK>"
6625
6626 #. type: Plain text
6627 #: build/C/man2/getrlimit.2:242
6628 msgid ""
6629 "The maximum number of bytes of memory that may be locked into RAM.  In "
6630 "effect this limit is rounded down to the nearest multiple of the system page "
6631 "size.  This limit affects B<mlock>(2)  and B<mlockall>(2)  and the B<mmap>"
6632 "(2)  B<MAP_LOCKED> operation.  Since Linux 2.6.9 it also affects the "
6633 "B<shmctl>(2)  B<SHM_LOCK> operation, where it sets a maximum on the total "
6634 "bytes in shared memory segments (see B<shmget>(2))  that may be locked by "
6635 "the real user ID of the calling process.  The B<shmctl>(2)  B<SHM_LOCK> "
6636 "locks are accounted for separately from the per-process memory locks "
6637 "established by B<mlock>(2), B<mlockall>(2), and B<mmap>(2)  B<MAP_LOCKED>; a "
6638 "process can lock bytes up to this limit in each of these two categories.  In "
6639 "Linux kernels before 2.6.9, this limit controlled the amount of memory that "
6640 "could be locked by a privileged process.  Since Linux 2.6.9, no limits are "
6641 "placed on the amount of memory that a privileged process may lock, and this "
6642 "limit instead governs the amount of memory that an unprivileged process may "
6643 "lock."
6644 msgstr ""
6645 "RAM 内にロックできるメモリの最大バイト数。 実際には、この制限はシステムページ"
6646 "サイズの最も近い倍数に 切り捨てて丸められる。 この制限は B<mlock>(2), "
6647 "B<mlockall>(2), B<mmap>(2)  の B<MAP_LOCKED> 操作に影響する。 Linux 2.6.9 以"
6648 "降では B<shmctl>(2)  B<SHM_LOCK> 操作にも影響する。 この操作は呼び出し元プロ"
6649 "セスの実 (real) ユーザー ID にロックされる 共有メモリセグメント (B<shmget>"
6650 "(2)  を参照) の合計バイト数の最大値を設定する。 B<shmctl>(2)  B<SHM_LOCK> に"
6651 "よるロックは、 B<mlock>(2), B<mlockall>(2), B<mmap>(2)  の B<MAP_LOCKED> に"
6652 "よって確立されるプロセス毎のメモリロックとは分けて数える。 1 つのプロセスはこ"
6653 "の制限までのバイトをロックできる。 この制限には 2 つの種類がある。 2.6.9 より"
6654 "前の Linux カーネル では、 この制限は特権プロセスによってロックされるメモリの"
6655 "合計を制御していた。 Linux 2.6.9 以降では、特権プロセスがロックするメモリの合"
6656 "計に制限はなく、 代わりにこの制限は非特権プロセスがロックするメモリの合計に "
6657 "適用されるようになった。"
6658
6659 #. type: TP
6660 #: build/C/man2/getrlimit.2:242
6661 #, no-wrap
6662 msgid "B<RLIMIT_MSGQUEUE> (Since Linux 2.6.8)"
6663 msgstr "B<RLIMIT_MSGQUEUE> (Linux 2.6.8 以降)"
6664
6665 #. type: Plain text
6666 #: build/C/man2/getrlimit.2:250
6667 msgid ""
6668 "Specifies the limit on the number of bytes that can be allocated for POSIX "
6669 "message queues for the real user ID of the calling process.  This limit is "
6670 "enforced for B<mq_open>(3).  Each message queue that the user creates counts "
6671 "(until it is removed)  against this limit according to the formula:"
6672 msgstr ""
6673 "呼び出し元プロセスの実ユーザー ID に対して、 POSIX メッセージキューのために確"
6674 "保できるバイト数の制限を指定する。 この制限は B<mq_open>(3)  に対して適用され"
6675 "る。 ユーザが作成した各々のメッセージキューのバイト数は 以下の式により計算さ"
6676 "れ、(そのキューが削除されるまでの間)  この制限の計算対象に含められる。"
6677
6678 #. type: Plain text
6679 #: build/C/man2/getrlimit.2:254
6680 #, no-wrap
6681 msgid ""
6682 "    bytes = attr.mq_maxmsg * sizeof(struct msg_msg *) +\n"
6683 "            attr.mq_maxmsg * attr.mq_msgsize\n"
6684 msgstr ""
6685 "    bytes = attr.mq_maxmsg * sizeof(struct msg_msg *) +\n"
6686 "            attr.mq_maxmsg * attr.mq_msgsize\n"
6687
6688 #. type: Plain text
6689 #: build/C/man2/getrlimit.2:262
6690 msgid ""
6691 "where I<attr> is the I<mq_attr> structure specified as the fourth argument "
6692 "to B<mq_open>(3)."
6693 msgstr ""
6694 "ここで I<attr> は I<mq_attr> 構造体であり、 B<mq_open>(3)  の第 4 引き数とし"
6695 "て指定される。"
6696
6697 #. type: Plain text
6698 #: build/C/man2/getrlimit.2:268
6699 msgid ""
6700 "The first addend in the formula, which includes I<sizeof(struct msg_msg *)> "
6701 "(4 bytes on Linux/i386), ensures that the user cannot create an unlimited "
6702 "number of zero-length messages (such messages nevertheless each consume some "
6703 "system memory for bookkeeping overhead)."
6704 msgstr ""
6705 "I<sizeof(struct msg_msg *)> (Linux/i386 では 4 バイト) を含む最初の加数は、 "
6706 "ユーザーが長さ 0 のメッセージを無制限に作れないこと保証している (このような"
6707 "メッセージであっても、 記録のためのオーバーヘッドでシステムメモリを消費す"
6708 "る)。"
6709
6710 #. type: TP
6711 #: build/C/man2/getrlimit.2:268
6712 #, no-wrap
6713 msgid "B<RLIMIT_NICE> (since Linux 2.6.12, but see BUGS below)"
6714 msgstr "B<RLIMIT_NICE> (Linux 2.6.12 以降, 下記の「バグ」の節も参照)"
6715
6716 #. type: Plain text
6717 #: build/C/man2/getrlimit.2:281
6718 msgid ""
6719 "Specifies a ceiling to which the process's nice value can be raised using "
6720 "B<setpriority>(2)  or B<nice>(2).  The actual ceiling for the nice value is "
6721 "calculated as I<20\\ -\\ rlim_cur>.  (This strangeness occurs because "
6722 "negative numbers cannot be specified as resource limit values, since they "
6723 "typically have special meanings.  For example, B<RLIM_INFINITY> typically is "
6724 "the same as -1.)"
6725 msgstr ""
6726 "B<setpriority>(2)  や B<nice>(2)  を使って引き上げられるプロセスの nice 値の"
6727 "上限を指定する。 nice 値の実際の上限は I<20\\ -\\ rlim_cur> で計算される (こ"
6728 "のような変な状況は、リソース制限値として負の数を指定できないため 発生する。通"
6729 "常、負の値は特別な意味を持っているからである。 例えば、通常は "
6730 "B<RLIM_INFINITY> の値は -1 である)。"
6731
6732 #. type: TP
6733 #: build/C/man2/getrlimit.2:281
6734 #, no-wrap
6735 msgid "B<RLIMIT_NOFILE>"
6736 msgstr "B<RLIMIT_NOFILE>"
6737
6738 #. type: Plain text
6739 #: build/C/man2/getrlimit.2:295
6740 msgid ""
6741 "Specifies a value one greater than the maximum file descriptor number that "
6742 "can be opened by this process.  Attempts (B<open>(2), B<pipe>(2), B<dup>(2), "
6743 "etc.)  to exceed this limit yield the error B<EMFILE>.  (Historically, this "
6744 "limit was named B<RLIMIT_OFILE> on BSD.)"
6745 msgstr ""
6746 "このプロセスがオープンできるファイルディスクリプタ数の最大値より 1 大きい値を"
6747 "指定する。 (B<open>(2), B<pipe>(2), B<dup>(2)  などにより) この上限を超えよう"
6748 "とした場合、エラー B<EMFILE> が発生する (歴史的に、BSD ではこの上限は "
6749 "B<RLIMIT_OFILE> という名前となっている)。"
6750
6751 #. type: TP
6752 #: build/C/man2/getrlimit.2:295
6753 #, no-wrap
6754 msgid "B<RLIMIT_NPROC>"
6755 msgstr "B<RLIMIT_NPROC>"
6756
6757 #. type: Plain text
6758 #: build/C/man2/getrlimit.2:303
6759 msgid ""
6760 "The maximum number of processes (or, more precisely on Linux, threads)  that "
6761 "can be created for the real user ID of the calling process.  Upon "
6762 "encountering this limit, B<fork>(2)  fails with the error B<EAGAIN>."
6763 msgstr ""
6764 "呼び出したプロセスの実ユーザー ID で作成できる最大プロセス数 (より正確には "
6765 "Linux ではスレッド数)。 この上限に達すると、 B<fork>(2)  はエラー B<EAGAIN> "
6766 "で失敗する。"
6767
6768 #. type: TP
6769 #: build/C/man2/getrlimit.2:303
6770 #, no-wrap
6771 msgid "B<RLIMIT_RSS>"
6772 msgstr "B<RLIMIT_RSS>"
6773
6774 #.  As at kernel 2.6.12, this limit still does nothing in 2.6 though
6775 #.  talk of making it do something has surfaced from time to time in LKML
6776 #.        -- MTK, Jul 05
6777 #. type: Plain text
6778 #: build/C/man2/getrlimit.2:315
6779 msgid ""
6780 "Specifies the limit (in pages) of the process's resident set (the number of "
6781 "virtual pages resident in RAM).  This limit only has effect in Linux 2.4.x, "
6782 "x E<lt> 30, and there only affects calls to B<madvise>(2)  specifying "
6783 "B<MADV_WILLNEED>."
6784 msgstr ""
6785 "プロセスの resident set (RAM 上に存在する仮想ページの数) の 上限を (ページ数"
6786 "で) 指定する。 この制限は 2.4.30 より前でしか影響がなく、 B<madvise>(2)  に "
6787 "B<MADV_WILLNEED> を指定した関数コールにしか影響しない。"
6788
6789 #. type: TP
6790 #: build/C/man2/getrlimit.2:315
6791 #, no-wrap
6792 msgid "B<RLIMIT_RTPRIO> (Since Linux 2.6.12, but see BUGS)"
6793 msgstr "B<RLIMIT_RTPRIO> (Linux 2.6.12 以降, バグの節も参照)"
6794
6795 #. type: Plain text
6796 #: build/C/man2/getrlimit.2:322
6797 msgid ""
6798 "Specifies a ceiling on the real-time priority that may be set for this "
6799 "process using B<sched_setscheduler>(2)  and B<sched_setparam>(2)."
6800 msgstr ""
6801 "B<sched_setscheduler>(2)  や B<sched_setparam>(2)  を使って設定できる、そのプ"
6802 "ロセスのリアルタイム優先度の上限を指定する。"
6803
6804 #. type: TP
6805 #: build/C/man2/getrlimit.2:322
6806 #, no-wrap
6807 msgid "B<RLIMIT_RTTIME> (Since Linux 2.6.25)"
6808 msgstr "B<RLIMIT_RTTIME> (Linux 2.6.25 以降)"
6809
6810 #. type: Plain text
6811 #: build/C/man2/getrlimit.2:334
6812 msgid ""
6813 "Specifies a limit (in microseconds)  on the amount of CPU time that a "
6814 "process scheduled under a real-time scheduling policy may consume without "
6815 "making a blocking system call.  For the purpose of this limit, each time a "
6816 "process makes a blocking system call, the count of its consumed CPU time is "
6817 "reset to zero.  The CPU time count is not reset if the process continues "
6818 "trying to use the CPU but is preempted, its time slice expires, or it calls "
6819 "B<sched_yield>(2)."
6820 msgstr ""
6821 "リアルタイムスケジューリング方針でスケジューリングされるプロセスが ブロッキン"
6822 "グ型のシステムコールを呼び出さずに消費することのできる CPU 時間の合計について"
6823 "の上限を (マイクロ秒単位で) 指定する。 この上限の目的のため、プロセスがブロッ"
6824 "キング型のシステムコールを 呼び出す度に、消費された CPU 時間のカウントは 0 に"
6825 "リセットされる。 プロセスが CPU を使い続けようとしたが他のプロセスに置き換え"
6826 "られた (preempted) 場合や、そのプロセスのタイムスライスが満了した場合、 その"
6827 "プロセスが B<sched_yield>(2)  を呼び出した場合は、CPU 時間のカウントはリセッ"
6828 "トされない。"
6829
6830 #. type: Plain text
6831 #: build/C/man2/getrlimit.2:345
6832 msgid ""
6833 "Upon reaching the soft limit, the process is sent a B<SIGXCPU> signal.  If "
6834 "the process catches or ignores this signal and continues consuming CPU time, "
6835 "then B<SIGXCPU> will be generated once each second until the hard limit is "
6836 "reached, at which point the process is sent a B<SIGKILL> signal."
6837 msgstr ""
6838 "ソフトリミットに達すると、そのプロセスに B<SIGXCPU> シグナルが送られる。その"
6839 "プロセスがこのシグナルを捕捉するか 無視して、CPU 時間を消費し続けた場合に"
6840 "は、 ハードリミットに達するまで 1 秒に 1 回 B<SIGXCPU> が生成され続けることに"
6841 "なる。 ハードリミットに達した時点で、そのプロセスには B<SIGKILL> シグナルが送"
6842 "られる。"
6843
6844 #. type: Plain text
6845 #: build/C/man2/getrlimit.2:348
6846 msgid ""
6847 "The intended use of this limit is to stop a runaway real-time process from "
6848 "locking up the system."
6849 msgstr ""
6850 "この上限を意図的に使用するのは、暴走したリアルタイムプロセスを 停止して、シス"
6851 "テムが動かなくなるのを避ける場合である。"
6852
6853 #. type: TP
6854 #: build/C/man2/getrlimit.2:348
6855 #, no-wrap
6856 msgid "B<RLIMIT_SIGPENDING> (Since Linux 2.6.8)"
6857 msgstr "B<RLIMIT_SIGPENDING> (Linux 2.6.8 以降)"
6858
6859 #.  This replaces the /proc/sys/kernel/rtsig-max system-wide limit
6860 #.  that was present in kernels <= 2.6.7.  MTK Dec 04
6861 #. type: Plain text
6862 #: build/C/man2/getrlimit.2:362
6863 msgid ""
6864 "Specifies the limit on the number of signals that may be queued for the real "
6865 "user ID of the calling process.  Both standard and real-time signals are "
6866 "counted for the purpose of checking this limit.  However, the limit is only "
6867 "enforced for B<sigqueue>(3); it is always possible to use B<kill>(2)  to "
6868 "queue one instance of any of the signals that are not already queued to the "
6869 "process."
6870 msgstr ""
6871 "呼び出し元プロセスの実ユーザー ID に対して キューに入れられるシグナルの\n"
6872 "数の制限を指定する。この制限をチェックするため、標準シグナルとリアルタ\n"
6873 "イムシグナルの両方がカウントされる。しかし、この制限は B<sigqueue>(3)\n"
6874 "に対してしか強制されず、 B<kill>(2) 使うことで、そのプロセスに対してま\n"
6875 "だキューに入れられていない シグナルのインスタンスをキューに入れることが\n"
6876 "できる。"
6877
6878 #. type: TP
6879 #: build/C/man2/getrlimit.2:362
6880 #, no-wrap
6881 msgid "B<RLIMIT_STACK>"
6882 msgstr "B<RLIMIT_STACK>"
6883
6884 #. type: Plain text
6885 #: build/C/man2/getrlimit.2:370
6886 msgid ""
6887 "The maximum size of the process stack, in bytes.  Upon reaching this limit, "
6888 "a B<SIGSEGV> signal is generated.  To handle this signal, a process must "
6889 "employ an alternate signal stack (B<sigaltstack>(2))."
6890 msgstr ""
6891 "プロセススタックの最大サイズをバイト単位で指定する。 この上限に達すると、 "
6892 "B<SIGSEGV> シグナルが生成される。 このシグナルを扱うためには、 プロセスは代り"
6893 "のシグナルスタック (B<sigaltstack>(2))  を使用しなければならない。"
6894
6895 #. type: Plain text
6896 #: build/C/man2/getrlimit.2:375
6897 msgid ""
6898 "Since Linux 2.6.23, this limit also determines the amount of space used for "
6899 "the process's command-line arguments and environment variables; for details, "
6900 "see B<execve>(2)."
6901 msgstr ""
6902 "Linux 2.6.23 以降では、この制限はプロセスのコマンドライン引き数と環境変数 に"
6903 "使用される空間の合計サイズの上限の決定にも使用される。詳細については "
6904 "B<execve>(2)  を参照。"
6905
6906 #. type: SS
6907 #: build/C/man2/getrlimit.2:375
6908 #, no-wrap
6909 msgid "prlimit()"
6910 msgstr ""
6911
6912 #.  commit c022a0acad534fd5f5d5f17280f6d4d135e74e81
6913 #.  Author: Jiri Slaby <jslaby@suse.cz>
6914 #.  Date:   Tue May 4 18:03:50 2010 +0200
6915 #. type: Plain text
6916 #: build/C/man2/getrlimit.2:386
6917 msgid ""
6918 "The Linux-specific B<prlimit>()  system call combines and extends the "
6919 "functionality of B<setrlimit>()  and B<getrlimit>().  It can be used to both "
6920 "set and get the resource limits of an arbitrary process."
6921 msgstr ""
6922
6923 #. type: Plain text
6924 #: build/C/man2/getrlimit.2:393
6925 msgid ""
6926 "The I<resource> argument has the same meaning as for B<setrlimit>()  and "
6927 "B<getrlimit>()."
6928 msgstr ""
6929
6930 #. type: Plain text
6931 #: build/C/man2/getrlimit.2:411
6932 msgid ""
6933 "If the I<new_limit> argument is a not NULL, then the I<rlimit> structure to "
6934 "which it points is used to set new values for the soft and hard limits for "
6935 "I<resource>.  If the I<old_limit> argument is a not NULL, then a successful "
6936 "call to B<prlimit>()  places the previous soft and hard limits for "
6937 "I<resource> in the I<rlimit> structure pointed to by I<old_limit>."
6938 msgstr ""
6939
6940 #.  FIXME this permission check is strange
6941 #.  Asked about this on LKML, 7 Nov 2010
6942 #.      "Inconsistent credential checking in prlimit() syscall"
6943 #. type: Plain text
6944 #: build/C/man2/getrlimit.2:430
6945 msgid ""
6946 "The I<pid> argument specifies the ID of the process on which the call is to "
6947 "operate.  If I<pid> is 0, then the call applies to the calling process.  To "
6948 "set or get the resources of a process other than itself, the caller must "
6949 "have the B<CAP_SYS_RESOURCE> capability, or the real, effective, and saved "
6950 "set user IDs of the target process must match the real user ID of the caller "
6951 "I<and> the real, effective, and saved set group IDs of the target process "
6952 "must match the real group ID of the caller."
6953 msgstr ""
6954
6955 #. type: Plain text
6956 #: build/C/man2/getrlimit.2:435
6957 msgid ""
6958 "On success, these system calls return 0.  On error, -1 is returned, and "
6959 "I<errno> is set appropriately."
6960 msgstr ""
6961 "成功した場合、これらのシステムコールは 0 を返す。\n"
6962 "エラーの場合は -1 が返され、 I<errno> が適切に設定される。"
6963
6964 #. type: Plain text
6965 #: build/C/man2/getrlimit.2:440
6966 msgid ""
6967 "A pointer argument points to a location outside the accessible address space."
6968 msgstr "場所を指すポインタ引き数がアクセス可能なアドレス空間外を指している。"
6969
6970 #. type: Plain text
6971 #: build/C/man2/getrlimit.2:452
6972 msgid ""
6973 "The value specified in I<resource> is not valid; or, for B<setrlimit>()  or "
6974 "B<prlimit>(): I<rlim-E<gt>rlim_cur> was greater than I<rlim-E<gt>rlim_max>."
6975 msgstr ""
6976 "I<resource> で指定された値が有効でない。\n"
6977 "または、 B<setrlimit>() や B<prlimit>() で、\n"
6978 "I<rlim-E<gt>rlim_cur> が I<rlim-E<gt>rlim_max> よりも大きかった。"
6979
6980 #. type: Plain text
6981 #: build/C/man2/getrlimit.2:464
6982 msgid ""
6983 "An unprivileged process tried to raise the hard limit; the "
6984 "B<CAP_SYS_RESOURCE> capability is required to do this.  Or, the caller tried "
6985 "to increase the hard B<RLIMIT_NOFILE> limit above the current kernel maximum "
6986 "(B<NR_OPEN>).  Or, the calling process did not have permission to set limits "
6987 "for the process specified by I<pid>."
6988 msgstr ""
6989 "特権のないプロセスがハードリミットを上げようとした。\n"
6990 "これを行うためには B<CAP_SYS_RESOURCE> ケーパビリティが必要である。\n"
6991 "または、特権のないプロセスが B<RLIMIT_NOFILE> ハードリミットを\n"
6992 "現在のカーネルの最大値 (B<NR_OPEN>) 以上に増やそうとした。\n"
6993 "または、呼び出したプロセスが I<pid> で指定されたプロセスのリミットを\n"
6994 "設定する許可を持っていなかった。"
6995
6996 #. type: Plain text
6997 #: build/C/man2/getrlimit.2:468
6998 msgid "Could not find a process with the ID specified in I<pid>."
6999 msgstr ""
7000
7001 #. type: Plain text
7002 #: build/C/man2/getrlimit.2:473
7003 msgid ""
7004 "The B<prlimit>()  system call is available since Linux 2.6.36.  Library "
7005 "support is available since glibc 2.13."
7006 msgstr ""
7007
7008 #. type: Plain text
7009 #: build/C/man2/getrlimit.2:477
7010 msgid "B<getrlimit>(), B<setrlimit>(): SVr4, 4.3BSD, POSIX.1-2001."
7011 msgstr ""
7012
7013 #. type: Plain text
7014 #: build/C/man2/getrlimit.2:480
7015 msgid "B<prlimit>(): Linux-specific."
7016 msgstr ""
7017
7018 #. type: Plain text
7019 #: build/C/man2/getrlimit.2:496
7020 msgid ""
7021 "B<RLIMIT_MEMLOCK> and B<RLIMIT_NPROC> derive from BSD and are not specified "
7022 "in POSIX.1-2001; they are present on the BSDs and Linux, but on few other "
7023 "implementations.  B<RLIMIT_RSS> derives from BSD and is not specified in "
7024 "POSIX.1-2001; it is nevertheless present on most implementations.  "
7025 "B<RLIMIT_MSGQUEUE>, B<RLIMIT_NICE>, B<RLIMIT_RTPRIO>, B<RLIMIT_RTTIME>, and "
7026 "B<RLIMIT_SIGPENDING> are Linux-specific."
7027 msgstr ""
7028 "B<RLIMIT_MEMLOCK> と B<RLIMIT_NPROC> は BSD から派生し、\n"
7029 "POSIX.1-2001 には指定されていない。\n"
7030 "これらは BSD 系と Linux に存在するが、他の実装は少ない。\n"
7031 "B<RLIMIT_RSS> は BSD から派生し、POSIX.1-2001 には指定されていない。\n"
7032 "それにも関わらず多くの実装で存在する。\n"
7033 "B<RLIMIT_MSGQUEUE>, B<RLIMIT_NICE>, B<RLIMIT_RTPRIO>, B<RLIMIT_RTTIME>,\n"
7034 "B<RLIMIT_SIGPENDING> は Linux 固有のものである。"
7035
7036 #. type: Plain text
7037 #: build/C/man2/getrlimit.2:502
7038 msgid ""
7039 "A child process created via B<fork>(2)  inherits its parent's resource "
7040 "limits.  Resource limits are preserved across B<execve>(2)."
7041 msgstr ""
7042 "B<fork>(2)  で作成された作成された子プロセスは、 親プロセスのリソース制限を継"
7043 "承する。 B<execve>(2)  の前後でリソース制限は保存される。"
7044
7045 #. type: Plain text
7046 #: build/C/man2/getrlimit.2:511
7047 msgid ""
7048 "One can set the resource limits of the shell using the built-in I<ulimit> "
7049 "command (I<limit> in B<csh>(1)).  The shell's resource limits are inherited "
7050 "by the processes that it creates to execute commands."
7051 msgstr ""
7052 "シェルのリソース制限は、シェルの組み込みコマンドである I<ulimit> (B<csh>(1)  "
7053 "では I<limit )> を使って設定することができる。 このシェルのリソース制限は、コ"
7054 "マンドを実行してシェルが生成するプロセス に引き継がれる。"
7055
7056 #. type: Plain text
7057 #: build/C/man2/getrlimit.2:520
7058 msgid ""
7059 "Ancient systems provided a B<vlimit>()  function with a similar purpose to "
7060 "B<setrlimit>().  For backward compatibility, glibc also provides B<vlimit>"
7061 "().  All new applications should be written using B<setrlimit>()."
7062 msgstr ""
7063 "古いシステムでは、 B<setrlimit>()  と同様の目的を持つ関数 B<vlimit>()  が提供"
7064 "されていた。 後方互換性のため、glibc でも B<vlimit>()  を提供している。 全て"
7065 "の新しいアプリケーションでは、 B<setrlimit>()  を使用すべきである。"
7066
7067 #. type: Plain text
7068 #: build/C/man2/getrlimit.2:523
7069 msgid "The program below demonstrates the use of B<prlimit>()."
7070 msgstr ""
7071
7072 #. type: Plain text
7073 #: build/C/man2/getrlimit.2:532
7074 #, no-wrap
7075 msgid ""
7076 "#define _GNU_SOURCE\n"
7077 "#define _FILE_OFFSET_BITS 64\n"
7078 "#include E<lt>stdio.hE<gt>\n"
7079 "#include E<lt>time.hE<gt>\n"
7080 "#include E<lt>stdlib.hE<gt>\n"
7081 "#include E<lt>unistd.hE<gt>\n"
7082 "#include E<lt>sys/resource.hE<gt>\n"
7083 msgstr ""
7084 "#define _GNU_SOURCE\n"
7085 "#define _FILE_OFFSET_BITS 64\n"
7086 "#include E<lt>stdio.hE<gt>\n"
7087 "#include E<lt>time.hE<gt>\n"
7088 "#include E<lt>stdlib.hE<gt>\n"
7089 "#include E<lt>unistd.hE<gt>\n"
7090 "#include E<lt>sys/resource.hE<gt>\n"
7091
7092 #. type: Plain text
7093 #: build/C/man2/getrlimit.2:535
7094 #, no-wrap
7095 msgid ""
7096 "#define errExit(msg) \tdo { perror(msg); exit(EXIT_FAILURE); \\e\n"
7097 "                        } while (0)\n"
7098 msgstr ""
7099 "#define errExit(msg) \tdo { perror(msg); exit(EXIT_FAILURE); \\e\n"
7100 "                        } while (0)\n"
7101
7102 #. type: Plain text
7103 #: build/C/man2/getrlimit.2:542
7104 #, no-wrap
7105 msgid ""
7106 "int\n"
7107 "main(int argc, char *argv[])\n"
7108 "{\n"
7109 "    struct rlimit old, new;\n"
7110 "    struct rlimit *newp;\n"
7111 "    pid_t pid;\n"
7112 msgstr ""
7113 "int\n"
7114 "main(int argc, char *argv[])\n"
7115 "{\n"
7116 "    struct rlimit old, new;\n"
7117 "    struct rlimit *newp;\n"
7118 "    pid_t pid;\n"
7119
7120 #. type: Plain text
7121 #: build/C/man2/getrlimit.2:548
7122 #, no-wrap
7123 msgid ""
7124 "    if (!(argc == 2 || argc == 4)) {\n"
7125 "        fprintf(stderr, \"Usage: %s E<lt>pidE<gt> [E<lt>new-soft-limitE<gt> \"\n"
7126 "                \"E<lt>new-hard-limitE<gt>]\\en\", argv[0]);\n"
7127 "        exit(EXIT_FAILURE);\n"
7128 "    }\n"
7129 msgstr ""
7130 "    if (!(argc == 2 || argc == 4)) {\n"
7131 "        fprintf(stderr, \"Usage: %s E<lt>pidE<gt> [E<lt>new-soft-limitE<gt> \"\n"
7132 "                \"E<lt>new-hard-limitE<gt>]\\en\", argv[0]);\n"
7133 "        exit(EXIT_FAILURE);\n"
7134 "    }\n"
7135
7136 #. type: Plain text
7137 #: build/C/man2/getrlimit.2:550
7138 #, no-wrap
7139 msgid "    pid = atoi(argv[1]);        /* PID of target process */\n"
7140 msgstr "    pid = atoi(argv[1]);        /* PID of target process */\n"
7141
7142 #. type: Plain text
7143 #: build/C/man2/getrlimit.2:557
7144 #, no-wrap
7145 msgid ""
7146 "    newp = NULL;\n"
7147 "    if (argc == 4) {\n"
7148 "        new.rlim_cur = atoi(argv[2]);\n"
7149 "        new.rlim_max = atoi(argv[3]);\n"
7150 "        newp = &new;\n"
7151 "    }\n"
7152 msgstr ""
7153 "    newp = NULL;\n"
7154 "    if (argc == 4) {\n"
7155 "        new.rlim_cur = atoi(argv[2]);\n"
7156 "        new.rlim_max = atoi(argv[3]);\n"
7157 "        newp = &new;\n"
7158 "    }\n"
7159
7160 #. type: Plain text
7161 #: build/C/man2/getrlimit.2:560
7162 #, no-wrap
7163 msgid ""
7164 "    /* Set CPU time limit of target process; retrieve and display\n"
7165 "       previous limit */\n"
7166 msgstr ""
7167 "    /* Set CPU time limit of target process; retrieve and display\n"
7168 "       previous limit */\n"
7169
7170 #. type: Plain text
7171 #: build/C/man2/getrlimit.2:565
7172 #, no-wrap
7173 msgid ""
7174 "    if (prlimit(pid, RLIMIT_CPU, newp, &old) == -1)\n"
7175 "        errExit(\"prlimit-1\");\n"
7176 "    printf(\"Previous limits: soft=%lld; hard=%lld\\en\",\n"
7177 "            (long long) old.rlim_cur, (long long) old.rlim_max);\n"
7178 msgstr ""
7179 "    if (prlimit(pid, RLIMIT_CPU, newp, &old) == -1)\n"
7180 "        errExit(\"prlimit-1\");\n"
7181 "    printf(\"Previous limits: soft=%lld; hard=%lld\\en\",\n"
7182 "            (long long) old.rlim_cur, (long long) old.rlim_max);\n"
7183
7184 #. type: Plain text
7185 #: build/C/man2/getrlimit.2:567
7186 #, no-wrap
7187 msgid "    /* Retrieve and display new CPU time limit */\n"
7188 msgstr "    /* Retrieve and display new CPU time limit */\n"
7189
7190 #. type: Plain text
7191 #: build/C/man2/getrlimit.2:572
7192 #, no-wrap
7193 msgid ""
7194 "    if (prlimit(pid, RLIMIT_CPU, NULL, &old) == -1)\n"
7195 "        errExit(\"prlimit-2\");\n"
7196 "    printf(\"New limits: soft=%lld; hard=%lld\\en\",\n"
7197 "            (long long) old.rlim_cur, (long long) old.rlim_max);\n"
7198 msgstr ""
7199 "    if (prlimit(pid, RLIMIT_CPU, NULL, &old) == -1)\n"
7200 "        errExit(\"prlimit-2\");\n"
7201 "    printf(\"New limits: soft=%lld; hard=%lld\\en\",\n"
7202 "            (long long) old.rlim_cur, (long long) old.rlim_max);\n"
7203
7204 #. type: Plain text
7205 #: build/C/man2/getrlimit.2:575
7206 #, no-wrap
7207 msgid ""
7208 "    exit(EXIT_FAILURE);\n"
7209 "}\n"
7210 msgstr ""
7211 "    exit(EXIT_FAILURE);\n"
7212 "}\n"
7213
7214 #.  FIXME prlimit() does not suffer
7215 #.  https://bugzilla.kernel.org/show_bug.cgi?id=5042
7216 #.  http://sources.redhat.com/bugzilla/show_bug.cgi?id=12201
7217 #. type: Plain text
7218 #: build/C/man2/getrlimit.2:588
7219 msgid ""
7220 "In older Linux kernels, the B<SIGXCPU> and B<SIGKILL> signals delivered when "
7221 "a process encountered the soft and hard B<RLIMIT_CPU> limits were delivered "
7222 "one (CPU) second later than they should have been.  This was fixed in kernel "
7223 "2.6.8."
7224 msgstr ""
7225 "以前の Linux カーネルでは、プロセスがソフトまたはハード B<RLIMIT_CPU> リミッ"
7226 "トに達した場合に送られる B<SIGXCPU> と B<SIGKILL> シグナルが、本来送られるべ"
7227 "き時点の 1 (CPU) 秒後に送られてしまう。 これはカーネル 2.6.8 で修正された。"
7228
7229 #.  see http://marc.theaimsgroup.com/?l=linux-kernel&m=114008066530167&w=2
7230 #. type: Plain text
7231 #: build/C/man2/getrlimit.2:596
7232 msgid ""
7233 "In 2.6.x kernels before 2.6.17, a B<RLIMIT_CPU> limit of 0 is wrongly "
7234 "treated as \"no limit\" (like B<RLIM_INFINITY>).  Since Linux 2.6.17, "
7235 "setting a limit of 0 does have an effect, but is actually treated as a limit "
7236 "of 1 second."
7237 msgstr ""
7238 "2.6.17 より前の 2.6.x カーネルでは、 B<RLIMIT_CPU> リミットが 0 の場合、 "
7239 "(B<RLIM_INFINITY> と同じように) 「制限なし」と間違って解釈されていた。 Linux "
7240 "2.6.17 以降では、リミットを 0 に設定した場合にも 効果を持つようになっている"
7241 "が、実際にはリミットの値は 1 秒となる。"
7242
7243 #. type: Plain text
7244 #: build/C/man2/getrlimit.2:600
7245 msgid ""
7246 "A kernel bug means that B<RLIMIT_RTPRIO> does not work in kernel 2.6.12; the "
7247 "problem is fixed in kernel 2.6.13."
7248 msgstr ""
7249 "カーネル 2.6.12 には、 B<RLIMIT_RTPRIO> が動作しないというバグがある。この問"
7250 "題はカーネル 2.6.13 で修正されている。"
7251
7252 #.  see http://marc.theaimsgroup.com/?l=linux-kernel&m=112256338703880&w=2
7253 #. type: Plain text
7254 #: build/C/man2/getrlimit.2:611
7255 msgid ""
7256 "In kernel 2.6.12, there was an off-by-one mismatch between the priority "
7257 "ranges returned by B<getpriority>(2)  and B<RLIMIT_NICE>.  This had the "
7258 "effect that the actual ceiling for the nice value was calculated as I<19\\ -"
7259 "\\ rlim_cur>.  This was fixed in kernel 2.6.13."
7260 msgstr ""
7261 "カーネル 2.6.12 では、 B<getpriority>(2)  と B<RLIMIT_NICE> が返す優先度の範"
7262 "囲が一つずれていた。このため、nice 値の実際の上限が I<19\\ -\\ rlim_cur> に"
7263 "なってしまうという影響があった。これはカーネル 2.6.13 で修正された。"
7264
7265 #. type: Plain text
7266 #: build/C/man2/getrlimit.2:620
7267 msgid ""
7268 "Kernels before 2.4.22 did not diagnose the error B<EINVAL> for B<setrlimit>"
7269 "()  when I<rlim-E<gt>rlim_cur> was greater than I<rlim-E<gt>rlim_max>."
7270 msgstr ""
7271 "2.4.22 より前のカーネルでは、 I<rlim-E<gt>rlim_cur> が I<rlim-E<gt>rlim_max> "
7272 "より大きかった場合、 B<setrlimit>()  での B<EINVAL> エラーを検出できない。"
7273
7274 #. type: Plain text
7275 #: build/C/man2/getrlimit.2:637
7276 msgid ""
7277 "B<dup>(2), B<fcntl>(2), B<fork>(2), B<getrusage>(2), B<mlock>(2), B<mmap>"
7278 "(2), B<open>(2), B<quotactl>(2), B<sbrk>(2), B<shmctl>(2), B<malloc>(3), "
7279 "B<sigqueue>(3), B<ulimit>(3), B<core>(5), B<capabilities>(7), B<signal>(7)"
7280 msgstr ""
7281 "B<dup>(2), B<fcntl>(2), B<fork>(2), B<getrusage>(2), B<mlock>(2), B<mmap>"
7282 "(2), B<open>(2), B<quotactl>(2), B<sbrk>(2), B<shmctl>(2), B<malloc>(3), "
7283 "B<sigqueue>(3), B<ulimit>(3), B<core>(5), B<capabilities>(7), B<signal>(7)"
7284
7285 #. type: TH
7286 #: build/C/man2/getrusage.2:39
7287 #, no-wrap
7288 msgid "GETRUSAGE"
7289 msgstr "GETRUSAGE"
7290
7291 #. type: TH
7292 #: build/C/man2/getrusage.2:39 build/C/man2/getsid.2:25
7293 #: build/C/man2/setpgid.2:46
7294 #, no-wrap
7295 msgid "2010-09-26"
7296 msgstr "2010-09-26"
7297
7298 #. type: Plain text
7299 #: build/C/man2/getrusage.2:42
7300 msgid "getrusage - get resource usage"
7301 msgstr "getrusage - 資源の使用量を取得する"
7302
7303 #. type: Plain text
7304 #: build/C/man2/getrusage.2:48
7305 msgid "B<int getrusage(int >I<who>B<, struct rusage *>I<usage>B<);>"
7306 msgstr "B<int getrusage(int >I<who>B<, struct rusage *>I<usage>B<);>"
7307
7308 #. type: Plain text
7309 #: build/C/man2/getrusage.2:54
7310 msgid ""
7311 "B<getrusage>()  returns resource usage measures for I<who>, which can be one "
7312 "of the following:"
7313 msgstr ""
7314 "B<getrusage>()  は I<who> の資源 (resource) の使用量を返す。 I<who> には以下"
7315 "のいずれか一つを指定できる。"
7316
7317 #. type: TP
7318 #: build/C/man2/getrusage.2:54
7319 #, no-wrap
7320 msgid "B<RUSAGE_SELF>"
7321 msgstr "B<RUSAGE_SELF>"
7322
7323 #. type: Plain text
7324 #: build/C/man2/getrusage.2:58
7325 msgid ""
7326 "Return resource usage statistics for the calling process, which is the sum "
7327 "of resources used by all threads in the process."
7328 msgstr ""
7329 "呼び出したプロセスの資源使用量、 そのプロセス内の全スレッドが使用している資源"
7330 "の合計を返す。"
7331
7332 #. type: TP
7333 #: build/C/man2/getrusage.2:58
7334 #, no-wrap
7335 msgid "B<RUSAGE_CHILDREN>"
7336 msgstr "B<RUSAGE_CHILDREN>"
7337
7338 #. type: Plain text
7339 #: build/C/man2/getrusage.2:65
7340 msgid ""
7341 "Return resource usage statistics for all children of the calling process "
7342 "that have terminated and been waited for.  These statistics will include the "
7343 "resources used by grandchildren, and further removed descendants, if all of "
7344 "the intervening descendants waited on their terminated children."
7345 msgstr ""
7346 "呼び出したプロセスの子プロセスのうち、 終了して待ち状態にある全プロセスが使用"
7347 "している資源使用量の統計を返す。 これらの統計情報には、孫プロセスやその子孫の"
7348 "プロセスのうち、 削除待ちのものが使用している資源も含まれる。"
7349
7350 #. type: TP
7351 #: build/C/man2/getrusage.2:65
7352 #, no-wrap
7353 msgid "B<RUSAGE_THREAD> (since Linux 2.6.26)"
7354 msgstr "B<RUSAGE_THREAD> (Linux 2.6.26 以降)"
7355
7356 #. type: Plain text
7357 #: build/C/man2/getrusage.2:68
7358 msgid "Return resource usage statistics for the calling thread."
7359 msgstr "呼び出したスレッドに関する資源使用量の統計を返す。"
7360
7361 #. type: Plain text
7362 #: build/C/man2/getrusage.2:72
7363 msgid ""
7364 "The resource usages are returned in the structure pointed to by I<usage>, "
7365 "which has the following form:"
7366 msgstr ""
7367 "資源使用量は I<usage> が指す構造体に格納されて返される。 構造体は以下の形式で"
7368 "ある。"
7369
7370 #. type: Plain text
7371 #: build/C/man2/getrusage.2:93
7372 #, no-wrap
7373 msgid ""
7374 "struct rusage {\n"
7375 "    struct timeval ru_utime; /* user CPU time used */\n"
7376 "    struct timeval ru_stime; /* system CPU time used */\n"
7377 "    long   ru_maxrss;        /* maximum resident set size */\n"
7378 "    long   ru_ixrss;         /* integral shared memory size */\n"
7379 "    long   ru_idrss;         /* integral unshared data size */\n"
7380 "    long   ru_isrss;         /* integral unshared stack size */\n"
7381 "    long   ru_minflt;        /* page reclaims (soft page faults) */\n"
7382 "    long   ru_majflt;        /* page faults (hard page faults) */\n"
7383 "    long   ru_nswap;         /* swaps */\n"
7384 "    long   ru_inblock;       /* block input operations */\n"
7385 "    long   ru_oublock;       /* block output operations */\n"
7386 "    long   ru_msgsnd;        /* IPC messages sent */\n"
7387 "    long   ru_msgrcv;        /* IPC messages received */\n"
7388 "    long   ru_nsignals;      /* signals received */\n"
7389 "    long   ru_nvcsw;         /* voluntary context switches */\n"
7390 "    long   ru_nivcsw;        /* involuntary context switches */\n"
7391 "};\n"
7392 msgstr ""
7393 "struct rusage {\n"
7394 "    struct timeval ru_utime; /* 使用されたユーザー CPU 時間 */\n"
7395 "    struct timeval ru_stime; /* 使用されたシステム CPU 時間 */\n"
7396 "    long   ru_maxrss;        /* RAM 上に存在する仮想ページのサイズ\n"
7397 "                               (resident set size) の最大値 */\n"
7398 "    long   ru_ixrss;         /* 共有メモリの合計サイズ */\n"
7399 "    long   ru_idrss;         /* 非共有データの合計サイズ */\n"
7400 "    long   ru_isrss;         /* 非共有スタックの合計サイズ */\n"
7401 "    long   ru_minflt;        /* ページの再利用 (ソフトページフォルト) */\n"
7402 "    long   ru_majflt;        /* ページフォールト (ハードページフォルト) */\n"
7403 "    long   ru_nswap;         /* スワップ */\n"
7404 "    long   ru_inblock;       /* ブロック入力操作 */\n"
7405 "    long   ru_oublock;       /* ブロック出力操作 */\n"
7406 "    long   ru_msgsnd;        /* 送信された IPC メッセージ */\n"
7407 "    long   ru_msgrcv;        /* 受信された IPC メッセージ */\n"
7408 "    long   ru_nsignals;      /* 受信されたシグナル */\n"
7409 "    long   ru_nvcsw;         /* 意図したコンテキスト切り替え */\n"
7410 "    long   ru_nivcsw;        /* 意図しないコンテキスト切り替え */\n"
7411 "};\n"
7412
7413 #. type: Plain text
7414 #: build/C/man2/getrusage.2:101
7415 msgid ""
7416 "Not all fields are completed; unmaintained fields are set to zero by the "
7417 "kernel.  (The unmaintained fields are provided for compatibility with other "
7418 "systems, and because they may one day be supported on Linux.)  The fields "
7419 "are interpreted as follows:"
7420 msgstr ""
7421
7422 #. type: TP
7423 #: build/C/man2/getrusage.2:101
7424 #, no-wrap
7425 msgid "I<ru_utime>"
7426 msgstr "I<ru_utime>"
7427
7428 #. type: Plain text
7429 #: build/C/man2/getrusage.2:107
7430 msgid ""
7431 "This is the total amount of time spent executing in user mode, expressed in "
7432 "a I<timeval> structure (seconds plus microseconds)."
7433 msgstr ""
7434
7435 #. type: TP
7436 #: build/C/man2/getrusage.2:107
7437 #, no-wrap
7438 msgid "I<ru_stime>"
7439 msgstr "I<ru_stime>"
7440
7441 #. type: Plain text
7442 #: build/C/man2/getrusage.2:113
7443 msgid ""
7444 "This is the total amount of time spent executing in kernel mode, expressed "
7445 "in a I<timeval> structure (seconds plus microseconds)."
7446 msgstr ""
7447
7448 #. type: TP
7449 #: build/C/man2/getrusage.2:113
7450 #, no-wrap
7451 msgid "I<ru_maxrss> (since Linux 2.6.32)"
7452 msgstr "I<ru_maxrss> (Linux 2.6.32 以降)"
7453
7454 #. type: Plain text
7455 #: build/C/man2/getrusage.2:119
7456 msgid ""
7457 "This is the maximum resident set size used (in kilobytes). For "
7458 "B<RUSAGE_CHILDREN>, this is the resident set size of the largest child, not "
7459 "the maximum resident set size of the process tree."
7460 msgstr ""
7461
7462 #. type: TP
7463 #: build/C/man2/getrusage.2:119
7464 #, no-wrap
7465 msgid "I<ru_ixrss> (unmaintained)"
7466 msgstr ""
7467
7468 #.  On some systems, this field records the number of signals received.
7469 #. type: Plain text
7470 #: build/C/man2/getrusage.2:125 build/C/man2/getrusage.2:130
7471 #: build/C/man2/getrusage.2:135 build/C/man2/getrusage.2:147
7472 #: build/C/man2/getrusage.2:159 build/C/man2/getrusage.2:165
7473 #: build/C/man2/getrusage.2:169
7474 msgid "This field is currently unused on Linux."
7475 msgstr ""
7476
7477 #. type: TP
7478 #: build/C/man2/getrusage.2:125
7479 #, no-wrap
7480 msgid "I<ru_idrss> (unmaintained)"
7481 msgstr ""
7482
7483 #. type: TP
7484 #: build/C/man2/getrusage.2:130
7485 #, no-wrap
7486 msgid "I<ru_isrss> (unmaintained)"
7487 msgstr ""
7488
7489 #. type: TP
7490 #: build/C/man2/getrusage.2:135
7491 #, no-wrap
7492 msgid "I<ru_minflt>"
7493 msgstr "I<ru_minflt>"
7494
7495 #. type: Plain text
7496 #: build/C/man2/getrusage.2:140
7497 msgid ""
7498 "The number of page faults serviced without any I/O activity; here I/O "
7499 "activity is avoided by ``reclaiming'' a page frame from the list of pages "
7500 "awaiting reallocation."
7501 msgstr ""
7502
7503 #. type: TP
7504 #: build/C/man2/getrusage.2:140
7505 #, no-wrap
7506 msgid "I<ru_majflt>"
7507 msgstr "I<ru_majflt>"
7508
7509 #. type: Plain text
7510 #: build/C/man2/getrusage.2:143
7511 msgid "The number of page faults serviced that required I/O activity."
7512 msgstr ""
7513
7514 #. type: TP
7515 #: build/C/man2/getrusage.2:143
7516 #, no-wrap
7517 msgid "I<ru_nswap> (unmaintained)"
7518 msgstr ""
7519
7520 #. type: TP
7521 #: build/C/man2/getrusage.2:147
7522 #, no-wrap
7523 msgid "I<ru_inblock> (since Linux 2.6.22)"
7524 msgstr "I<ru_inblock> (Linux 2.6.22 以降)"
7525
7526 #. type: Plain text
7527 #: build/C/man2/getrusage.2:150
7528 msgid "The number of times the file system had to perform input."
7529 msgstr ""
7530
7531 #. type: TP
7532 #: build/C/man2/getrusage.2:150
7533 #, no-wrap
7534 msgid "I<ru_oublock> (since Linux 2.6.22)"
7535 msgstr "I<ru_oublock> (Linux 2.6.22 以降)"
7536
7537 #. type: Plain text
7538 #: build/C/man2/getrusage.2:153
7539 msgid "The number of times the file system had to perform output."
7540 msgstr ""
7541
7542 #. type: TP
7543 #: build/C/man2/getrusage.2:153
7544 #, no-wrap
7545 msgid "I<ru_msgsnd> (unmaintained)"
7546 msgstr ""
7547
7548 #. type: TP
7549 #: build/C/man2/getrusage.2:159
7550 #, no-wrap
7551 msgid "I<ru_msgrcv> (unmaintained)"
7552 msgstr ""
7553
7554 #. type: TP
7555 #: build/C/man2/getrusage.2:165
7556 #, no-wrap
7557 msgid "I<ru_nsignals> (unmaintained)"
7558 msgstr ""
7559
7560 #. type: TP
7561 #: build/C/man2/getrusage.2:169
7562 #, no-wrap
7563 msgid "I<ru_nvcsw> (since Linux 2.6)"
7564 msgstr "I<ru_nvcsw> (Linux 2.6 以降)"
7565
7566 #. type: Plain text
7567 #: build/C/man2/getrusage.2:174
7568 msgid ""
7569 "The number of times a context switch resulted due to a process voluntarily "
7570 "giving up the processor before its time slice was completed (usually to "
7571 "await availability of a resource)."
7572 msgstr ""
7573
7574 #. type: TP
7575 #: build/C/man2/getrusage.2:174
7576 #, no-wrap
7577 msgid "I<ru_nivcsw> (since Linux 2.6)"
7578 msgstr "I<memory_migrate> (Linux 2.6.16 以降)"
7579
7580 #. type: Plain text
7581 #: build/C/man2/getrusage.2:179
7582 msgid ""
7583 "The number of times a context switch resulted due to a higher priority "
7584 "process becoming runnable or because the current process exceeded its time "
7585 "slice."
7586 msgstr ""
7587
7588 #. type: Plain text
7589 #: build/C/man2/getrusage.2:190
7590 msgid "I<usage> points outside the accessible address space."
7591 msgstr "I<usage> がアクセス可能なアドレス空間の外を指している。"
7592
7593 #. type: Plain text
7594 #: build/C/man2/getrusage.2:194
7595 msgid "I<who> is invalid."
7596 msgstr "I<who> が無効である。"
7597
7598 #. type: Plain text
7599 #: build/C/man2/getrusage.2:202
7600 msgid ""
7601 "SVr4, 4.3BSD.  POSIX.1-2001 specifies B<getrusage>(), but only specifies the "
7602 "fields I<ru_utime> and I<ru_stime>."
7603 msgstr ""
7604 "SVr4, 4.3BSD.  POSIX.1-2001 は B<getrusage>()  を規定しているが、規定している"
7605 "フィールドは I<ru_utime> と I<ru_stime> だけである。"
7606
7607 #. type: Plain text
7608 #: build/C/man2/getrusage.2:205
7609 msgid "B<RUSAGE_THREAD> is Linux-specific."
7610 msgstr "B<RUSAGE_THREAD> は Linux 固有である。"
7611
7612 #. type: Plain text
7613 #: build/C/man2/getrusage.2:208
7614 msgid "Resource usage metrics are preserved across an B<execve>(2)."
7615 msgstr "B<execve>(2)  の前後でリソース使用量の指標は保持される。"
7616
7617 #. type: Plain text
7618 #: build/C/man2/getrusage.2:216
7619 msgid ""
7620 "Including I<E<lt>sys/time.hE<gt>> is not required these days, but increases "
7621 "portability.  (Indeed, I<struct timeval> is defined in I<E<lt>sys/time."
7622 "hE<gt>>.)"
7623 msgstr ""
7624 "今日では I<E<lt>sys/time.hE<gt>> をインクルードする必要はないが、 インクルー"
7625 "ドしておけば移植性が増す。 (実際 I<struct timeval> は I<E<lt>sys/time."
7626 "hE<gt>> で定義されている。)"
7627
7628 #.  See the description of getrusage() in XSH.
7629 #.  A similar statement was also in SUSv2.
7630 #. type: Plain text
7631 #: build/C/man2/getrusage.2:228
7632 msgid ""
7633 "In Linux kernel versions before 2.6.9, if the disposition of B<SIGCHLD> is "
7634 "set to B<SIG_IGN> then the resource usages of child processes are "
7635 "automatically included in the value returned by B<RUSAGE_CHILDREN>, although "
7636 "POSIX.1-2001 explicitly prohibits this.  This nonconformance is rectified in "
7637 "Linux 2.6.9 and later."
7638 msgstr ""
7639 "2.6.9 より前のバージョンの Linux カーネルでは、 B<SIGCHLD> の処理が "
7640 "B<SIG_IGN> に設定されていると、 子プロセスのリソース使用量が "
7641 "B<RUSAGE_CHILDREN> で返される値に自動的に含められる。 しかし POSIX.1-2001 で"
7642 "は、これを明確に禁止している。 この準拠していなかった点は、Linux 2.6.9 以降で"
7643 "改正された。"
7644
7645 #. type: Plain text
7646 #: build/C/man2/getrusage.2:231
7647 msgid ""
7648 "The structure definition shown at the start of this page was taken from "
7649 "4.3BSD Reno."
7650 msgstr ""
7651
7652 #. type: Plain text
7653 #: build/C/man2/getrusage.2:240
7654 msgid ""
7655 "Ancient systems provided a B<vtimes>()  function with a similar purpose to "
7656 "B<getrusage>().  For backward compatibility, glibc also provides B<vtimes>"
7657 "().  All new applications should be written using B<getrusage>()."
7658 msgstr ""
7659 "古いシステムでは、 B<getrusage>() と同様の目的を持つ関数 B<vtimes>() が提供\n"
7660 "されていた。後方互換性のため、glibc でも B<vtimes>() を提供している。\n"
7661 "全ての新しいアプリケーションでは B<getrusage>() を使用すべきである。"
7662
7663 #. type: Plain text
7664 #: build/C/man2/getrusage.2:245
7665 msgid "See also the description of I</proc/PID/stat> in B<proc>(5)."
7666 msgstr "B<proc>(5)  にある I</proc/PID/stat> の説明も参照のこと。"
7667
7668 #. type: Plain text
7669 #: build/C/man2/getrusage.2:252
7670 msgid ""
7671 "B<clock_gettime>(2), B<getrlimit>(2), B<times>(2), B<wait>(2), B<wait4>(2), "
7672 "B<clock>(3)"
7673 msgstr ""
7674 "B<clock_gettime>(2), B<getrlimit>(2), B<times>(2), B<wait>(2), B<wait4>(2), "
7675 "B<clock>(3)"
7676
7677 #. type: TH
7678 #: build/C/man2/getsid.2:25
7679 #, no-wrap
7680 msgid "GETSID"
7681 msgstr "GETSID"
7682
7683 #. type: Plain text
7684 #: build/C/man2/getsid.2:28
7685 msgid "getsid - get session ID"
7686 msgstr "getsid - セッション ID を取得する。"
7687
7688 #. type: Plain text
7689 #: build/C/man2/getsid.2:32
7690 msgid "B<pid_t getsid(pid_t>I< pid>B<);>"
7691 msgstr "B<pid_t getsid(pid_t>I< pid>B<);>"
7692
7693 #. type: Plain text
7694 #: build/C/man2/getsid.2:41
7695 msgid "B<getsid>():"
7696 msgstr "B<getsid>():"
7697
7698 #. type: Plain text
7699 #: build/C/man2/getsid.2:44 build/C/man2/setpgid.2:77
7700 msgid ""
7701 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
7702 msgstr ""
7703 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
7704
7705 #. type: Plain text
7706 #: build/C/man2/getsid.2:46 build/C/man2/setpgid.2:79
7707 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
7708 msgstr "|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
7709
7710 #. type: Plain text
7711 #: build/C/man2/getsid.2:57
7712 msgid ""
7713 "I<getsid(0)> returns the session ID of the calling process.  I<getsid(p)> "
7714 "returns the session ID of the process with process ID I<p>.  (The session ID "
7715 "of a process is the process group ID of the session leader.)"
7716 msgstr ""
7717 "I<getsid(0)> は呼び出し元のプロセスのセッション ID を返す。 I<getsid(p)> はプ"
7718 "ロセス ID I<p> を持つプロセスのセッション ID を返す (プロセスのセッション ID "
7719 "は セッションリーダーのプロセスグループ ID である)。"
7720
7721 #. type: Plain text
7722 #: build/C/man2/getsid.2:62
7723 msgid ""
7724 "On success, a session ID is returned.  On error, I<(pid_t)\\ -1> will be "
7725 "returned, and I<errno> is set appropriately."
7726 msgstr ""
7727 "成功すると、セッション ID が返される。 エラーの場合、I<(pid_t) -1> が返さ"
7728 "れ、 I<errno> が適切に設定される。"
7729
7730 #. type: Plain text
7731 #: build/C/man2/getsid.2:69
7732 msgid ""
7733 "A process with process ID I<p> exists, but it is not in the same session as "
7734 "the calling process, and the implementation considers this an error."
7735 msgstr ""
7736 "プロセス ID I<p> のプロセスは存在するが、呼び出し元のプロセスと同じセッション"
7737 "ではなく、 さらに実装がこの状態をエラーと判断した場合。"
7738
7739 #. type: Plain text
7740 #: build/C/man2/getsid.2:74
7741 msgid "No process with process ID I<p> was found."
7742 msgstr "プロセス ID が I<p> のプロセスがない。"
7743
7744 #.  Linux has this system call since Linux 1.3.44.
7745 #.  There is libc support since libc 5.2.19.
7746 #. type: Plain text
7747 #: build/C/man2/getsid.2:78
7748 msgid "This system call is available on Linux since version 2.0."
7749 msgstr "このシステムコールは Linux バージョン 2.0 以降で利用可能である。"
7750
7751 #. type: Plain text
7752 #: build/C/man2/getsid.2:80 build/C/man2/setgid.2:76 build/C/man2/setsid.2:66
7753 msgid "SVr4, POSIX.1-2001."
7754 msgstr "SVr4, POSIX.1-2001."
7755
7756 #. type: Plain text
7757 #: build/C/man2/getsid.2:83
7758 msgid "Linux does not return B<EPERM>."
7759 msgstr "Linux は B<EPERM> を返さない。"
7760
7761 #. type: Plain text
7762 #: build/C/man2/getsid.2:87
7763 msgid "B<getpgid>(2), B<setsid>(2), B<credentials>(7)"
7764 msgstr "B<getpgid>(2), B<setsid>(2), B<credentials>(7)"
7765
7766 #. type: TH
7767 #: build/C/man2/getuid.2:26
7768 #, no-wrap
7769 msgid "GETUID"
7770 msgstr "GETUID"
7771
7772 #. type: Plain text
7773 #: build/C/man2/getuid.2:29
7774 msgid "getuid, geteuid - get user identity"
7775 msgstr "getuid, geteuid - ユーザー ID を得る"
7776
7777 #. type: Plain text
7778 #: build/C/man2/getuid.2:35
7779 msgid "B<uid_t getuid(void);>"
7780 msgstr "B<uid_t getuid(void);>"
7781
7782 #. type: Plain text
7783 #: build/C/man2/getuid.2:37
7784 msgid "B<uid_t geteuid(void);>"
7785 msgstr "B<uid_t geteuid(void);>"
7786
7787 #. type: Plain text
7788 #: build/C/man2/getuid.2:40
7789 msgid "B<getuid>()  returns the real user ID of the calling process."
7790 msgstr "B<getuid>()  は呼び出し元のプロセスの実ユーザー ID を返す。"
7791
7792 #. type: Plain text
7793 #: build/C/man2/getuid.2:43
7794 msgid "B<geteuid>()  returns the effective user ID of the calling process."
7795 msgstr "B<geteuid>()  は呼び出し元のプロセスの実効ユーザー ID を返す。"
7796
7797 #. type: SS
7798 #: build/C/man2/getuid.2:48
7799 #, no-wrap
7800 msgid "History"
7801 msgstr "歴史"
7802
7803 #. type: Plain text
7804 #: build/C/man2/getuid.2:57
7805 msgid ""
7806 "In UNIX V6 the B<getuid>()  call returned I<(euid E<lt>E<lt> 8) + uid>.  "
7807 "UNIX V7 introduced separate calls B<getuid>()  and B<geteuid>()."
7808 msgstr ""
7809 "UNIX V6 では B<getuid>()  コールは I<(euid E<lt>E<lt> 8) + uid> を返してい"
7810 "た。 UNIX V7 では B<getuid>()  と B<geteuid>()  という別々のコールが導入され"
7811 "た。"
7812
7813 #. type: Plain text
7814 #: build/C/man2/getuid.2:73
7815 msgid ""
7816 "The original Linux B<getuid>()  and B<geteuid>()  system calls supported "
7817 "only 16-bit user IDs.  Subsequently, Linux 2.4 added B<getuid32>()  and "
7818 "B<geteuid32>(), supporting 32-bit IDs.  The glibc B<getuid>()  and B<geteuid>"
7819 "()  wrapper functions transparently deal with the variations across kernel "
7820 "versions."
7821 msgstr ""
7822 "元々の Linux の B<getuid>() と B<geteuid>() システムコールは\n"
7823 "16 ビットのグループ ID だけに対応していた。\n"
7824 "その後、Linux 2.4 で、32 ビットの ID に対応した\n"
7825 "B<getuid32>() と B<geteuid32>() が追加された。\n"
7826 "glibc の B<getuid>() と B<geteuid>() のラッパー関数は\n"
7827 "カーネルバージョンによるこの違いを吸収している。"
7828
7829 #. type: Plain text
7830 #: build/C/man2/getuid.2:78
7831 msgid "B<getresuid>(2), B<setreuid>(2), B<setuid>(2), B<credentials>(7)"
7832 msgstr "B<getresuid>(2), B<setreuid>(2), B<setuid>(2), B<credentials>(7)"
7833
7834 #. type: TH
7835 #: build/C/man2/iopl.2:33
7836 #, no-wrap
7837 msgid "IOPL"
7838 msgstr "IOPL"
7839
7840 #. type: TH
7841 #: build/C/man2/iopl.2:33
7842 #, no-wrap
7843 msgid "2004-05-27"
7844 msgstr "2004-05-27"
7845
7846 #. type: Plain text
7847 #: build/C/man2/iopl.2:36
7848 msgid "iopl - change I/O privilege level"
7849 msgstr "iopl - I/O 特権レベルを変更する"
7850
7851 #. type: Plain text
7852 #: build/C/man2/iopl.2:38
7853 msgid "B<#include E<lt>sys/io.hE<gt>>"
7854 msgstr "B<#include E<lt>sys/io.hE<gt>>"
7855
7856 #. type: Plain text
7857 #: build/C/man2/iopl.2:40
7858 msgid "B<int iopl(int >I<level>B<);>"
7859 msgstr "B<int iopl(int >I<level>B<);>"
7860
7861 #. type: Plain text
7862 #: build/C/man2/iopl.2:44
7863 msgid ""
7864 "B<iopl>()  changes the I/O privilege level of the calling process, as "
7865 "specified in I<level>."
7866 msgstr ""
7867 "B<iopl>()  は呼び出し元のプロセスの I/O 特権レベルを I<level> で指定した値に"
7868 "変更する。"
7869
7870 #. type: Plain text
7871 #: build/C/man2/iopl.2:50
7872 msgid ""
7873 "This call is necessary to allow 8514-compatible X servers to run under "
7874 "Linux.  Since these X servers require access to all 65536 I/O ports, the "
7875 "B<ioperm>(2)  call is not sufficient."
7876 msgstr ""
7877 "この関数は 8514 互換の X サーバを Linux で動作させるために必要である。 なぜな"
7878 "らこの X サーバは 65536 個の I/O ポート全てへのアクセスを要求するので "
7879 "B<ioperm>(2)  関数では不十分だからである。"
7880
7881 #. type: Plain text
7882 #: build/C/man2/iopl.2:54
7883 msgid ""
7884 "In addition to granting unrestricted I/O port access, running at a higher I/"
7885 "O privilege level also allows the process to disable interrupts.  This will "
7886 "probably crash the system, and is not recommended."
7887 msgstr ""
7888 "より高い I/O 特権レベルでの動作をさせることによって I/O ポートアクセスの制限"
7889 "を解除することに加えて、プロセスが割り込みを 無効にすることもできるようにな"
7890 "る。この機能は時としてシステムの破壊を もたらすので勧められない。"
7891
7892 #. type: Plain text
7893 #: build/C/man2/iopl.2:59
7894 msgid "Permissions are inherited by B<fork>(2)  and B<execve>(2)."
7895 msgstr "B<fork>(2)  や B<exec>(2)  を行った場合、特権は継承される。"
7896
7897 #. type: Plain text
7898 #: build/C/man2/iopl.2:61
7899 msgid "The I/O privilege level for a normal process is 0."
7900 msgstr "通常のプロセスの I/O 特権レベルは 0 である。"
7901
7902 #. type: Plain text
7903 #: build/C/man2/iopl.2:65
7904 msgid ""
7905 "This call is mostly for the i386 architecture.  On many other architectures "
7906 "it does not exist or will always return an error."
7907 msgstr ""
7908 "このシステムコールはほとんど i386 アーキテクチャのためだけのものである。 その"
7909 "他の多くのアーキテクチャでは存在しないか、常にエラーを返す。"
7910
7911 #. type: Plain text
7912 #: build/C/man2/iopl.2:75
7913 msgid "I<level> is greater than 3."
7914 msgstr "引き数 I<level> が 3 より大きい。"
7915
7916 #. type: Plain text
7917 #: build/C/man2/iopl.2:78
7918 msgid "This call is unimplemented."
7919 msgstr "このシステムコールは実装されていない。"
7920
7921 #. type: Plain text
7922 #: build/C/man2/iopl.2:85
7923 msgid ""
7924 "The calling process has insufficient privilege to call B<iopl>(); the "
7925 "B<CAP_SYS_RAWIO> capability is required."
7926 msgstr ""
7927 "呼び出し元プロセスに B<iopl>()  を呼び出すのに十分な権限がなかった。 B<iopl>"
7928 "()  を呼び出すには B<CAP_SYS_RAWIO> ケーパビリティが必要である。"
7929
7930 #. type: Plain text
7931 #: build/C/man2/iopl.2:89
7932 msgid ""
7933 "B<iopl>()  is Linux-specific and should not be used in processes intended to "
7934 "be portable."
7935 msgstr ""
7936 "B<iopl>()  は Linux 特有の関数であり、移植を意図したプログラムで 使用してはな"
7937 "らない。"
7938
7939 #. type: Plain text
7940 #: build/C/man2/iopl.2:98
7941 msgid ""
7942 "Libc5 treats it as a system call and has a prototype in I<E<lt>unistd."
7943 "hE<gt>>.  Glibc1 does not have a prototype.  Glibc2 has a prototype both in "
7944 "I<E<lt>sys/io.hE<gt>> and in I<E<lt>sys/perm.hE<gt>>.  Avoid the latter, it "
7945 "is available on i386 only."
7946 msgstr ""
7947 "libc5 ではシステムコールとして扱い I<E<lt>unistd.hE<gt>> にプロトタイプが存在"
7948 "している。 glibc1 にはプロトタイプは存在していない。 glibc2 は I<E<lt>sys/io."
7949 "hE<gt>> と I<E<lt>sys/perm.hE<gt>> の両方にプロトタイプを持っている。 後者は "
7950 "i386 のみで利用可能なので、使用すべきではない。"
7951
7952 #. type: Plain text
7953 #: build/C/man2/iopl.2:101
7954 msgid "B<ioperm>(2), B<capabilities>(7)"
7955 msgstr "B<ioperm>(2), B<capabilities>(7)"
7956
7957 #. type: TH
7958 #: build/C/man2/ioprio_set.2:25
7959 #, no-wrap
7960 msgid "IOPRIO_SET"
7961 msgstr "IOPRIO_SET"
7962
7963 #. type: TH
7964 #: build/C/man2/ioprio_set.2:25
7965 #, no-wrap
7966 msgid "2008-07-09"
7967 msgstr "2008-07-09"
7968
7969 #. type: Plain text
7970 #: build/C/man2/ioprio_set.2:28
7971 msgid "ioprio_get, ioprio_set - get/set I/O scheduling class and priority"
7972 msgstr "ioprio_get, ioprio_set - I/O スケジューリングクラスと優先度の設定/取得"
7973
7974 #. type: Plain text
7975 #: build/C/man2/ioprio_set.2:32
7976 #, no-wrap
7977 msgid ""
7978 "B<int ioprio_get(int >I<which>B<, int >I<who>B<);>\n"
7979 "B<int ioprio_set(int >I<which>B<, int >I<who>B<, int >I<ioprio>B<);>\n"
7980 msgstr ""
7981 "B<int ioprio_get(int >I<which>B<, int >I<who>B<);>\n"
7982 "B<int ioprio_set(int >I<which>B<, int >I<who>B<, int >I<ioprio>B<);>\n"
7983
7984 #. type: Plain text
7985 #: build/C/man2/ioprio_set.2:40
7986 msgid ""
7987 "The B<ioprio_get>()  and B<ioprio_set>()  system calls respectively get and "
7988 "set the I/O scheduling class and priority of one or more processes."
7989 msgstr ""
7990 "システムコール B<ioprio_get>()  / B<ioprio_set>()  は、(1つ以上の) プロセス"
7991 "の I/O スケジューリングクラスと 優先度の取得/設定を行う。"
7992
7993 #. type: Plain text
7994 #: build/C/man2/ioprio_set.2:52
7995 msgid ""
7996 "The I<which> and I<who> arguments identify the process(es) on which the "
7997 "system calls operate.  The I<which> argument determines how I<who> is "
7998 "interpreted, and has one of the following values:"
7999 msgstr ""
8000 "I<which> と I<who> 引き数でシステムコールの操作対象となるプロセスを指示す"
8001 "る。 I<which> 引き数は、 I<who> をどのように解釈するかを決めるもので、以下の"
8002 "いずれか一つを指定する。"
8003
8004 #. type: TP
8005 #: build/C/man2/ioprio_set.2:52
8006 #, no-wrap
8007 msgid "B<IOPRIO_WHO_PROCESS>"
8008 msgstr "B<IOPRIO_WHO_PROCESS>"
8009
8010 #. type: Plain text
8011 #: build/C/man2/ioprio_set.2:56
8012 msgid "I<who> is a process ID identifying a single process."
8013 msgstr "I<who> はプロセスID であり、指定された 1 プロセスが対象となる。"
8014
8015 #. type: TP
8016 #: build/C/man2/ioprio_set.2:56
8017 #, no-wrap
8018 msgid "B<IOPRIO_WHO_PGRP>"
8019 msgstr "B<IOPRIO_WHO_PGRP>"
8020
8021 #. type: Plain text
8022 #: build/C/man2/ioprio_set.2:60
8023 msgid ""
8024 "I<who> is a process group ID identifying all the members of a process group."
8025 msgstr ""
8026 "I<who> はプロセスグループID であり、プロセスグループの全メンバが対象となる。"
8027
8028 #. type: TP
8029 #: build/C/man2/ioprio_set.2:60
8030 #, no-wrap
8031 msgid "B<IOPRIO_WHO_USER>"
8032 msgstr "B<IOPRIO_WHO_USER>"
8033
8034 #. type: Plain text
8035 #: build/C/man2/ioprio_set.2:65
8036 msgid ""
8037 "I<who> is a user ID identifying all of the processes that have a matching "
8038 "real UID."
8039 msgstr "I<who> はユーザID であり、実 UID に一致する全プロセスが対象となる。"
8040
8041 #. type: Plain text
8042 #: build/C/man2/ioprio_set.2:88
8043 msgid ""
8044 "If I<which> is specified as B<IOPRIO_WHO_PGRP> or B<IOPRIO_WHO_USER> when "
8045 "calling B<ioprio_get>(), and more than one process matches I<who>, then the "
8046 "returned priority will be the highest one found among all of the matching "
8047 "processes.  One priority is said to be higher than another one if it belongs "
8048 "to a higher priority class (B<IOPRIO_CLASS_RT> is the highest priority "
8049 "class; B<IOPRIO_CLASS_IDLE> is the lowest)  or if it belongs to the same "
8050 "priority class as the other process but has a higher priority level (a lower "
8051 "priority number means a higher priority level)."
8052 msgstr ""
8053 "B<ioprio_get>()  の呼び出し時に I<which> に B<IOPRIO_WHO_PGRP> か "
8054 "B<IOPRIO_WHO_USER> が指定され、 I<who> に一致するプロセスが複数あった場合、 "
8055 "一致するプロセス全体の中で最も高い優先度が返される。 優先度が高いとは、より高"
8056 "い優先度クラスに属している (B<IOPRIO_CLASS_RT> が最も高い優先度クラスで、 "
8057 "B<IOPRIO_CLASS_IDLE> が最も低い)、もしくは 同じ優先度クラスに属しているが優先"
8058 "度レベルが高い (優先度番号が小さい方が優先度レベルが高いことを意味する)、 と"
8059 "いうことである。"
8060
8061 #. type: Plain text
8062 #: build/C/man2/ioprio_set.2:98
8063 msgid ""
8064 "The I<ioprio> argument given to B<ioprio_set>()  is a bit mask that "
8065 "specifies both the scheduling class and the priority to be assigned to the "
8066 "target process(es).  The following macros are used for assembling and "
8067 "dissecting I<ioprio> values:"
8068 msgstr ""
8069 "B<ioprio_set>()  に渡す I<ioprio> 引き数は、対象となるプロセスに割り当てるス"
8070 "ケジューリングクラスと 優先度の両方を指定するビットマスクである。 I<ioprio> "
8071 "の値を組み立てたり解釈するのに、以下のマクロが利用できる。"
8072
8073 #. type: TP
8074 #: build/C/man2/ioprio_set.2:98
8075 #, no-wrap
8076 msgid "B<IOPRIO_PRIO_VALUE(>I<class>B<, >I<data>B<)>"
8077 msgstr "B<IOPRIO_PRIO_VALUE(>I<class>B<, >I<data>B<)>"
8078
8079 #. type: Plain text
8080 #: build/C/man2/ioprio_set.2:107
8081 msgid ""
8082 "Given a scheduling I<class> and priority (I<data>), this macro combines the "
8083 "two values to produce an I<ioprio> value, which is returned as the result of "
8084 "the macro."
8085 msgstr ""
8086 "スケジューリングクラス I<class> と優先度 (I<data>)  を与えると、このマクロは "
8087 "2つの値を組み合わせて、 I<ioprio> 値を生成し、マクロの結果として返す。"
8088
8089 #. type: TP
8090 #: build/C/man2/ioprio_set.2:107
8091 #, no-wrap
8092 msgid "B<IOPRIO_PRIO_CLASS(>I<mask>B<)>"
8093 msgstr "B<IOPRIO_PRIO_CLASS(>I<mask>B<)>"
8094
8095 #. type: Plain text
8096 #: build/C/man2/ioprio_set.2:119
8097 msgid ""
8098 "Given I<mask> (an I<ioprio> value), this macro returns its I/O class "
8099 "component, that is, one of the values B<IOPRIO_CLASS_RT>, "
8100 "B<IOPRIO_CLASS_BE>, or B<IOPRIO_CLASS_IDLE>."
8101 msgstr ""
8102 "I<mask> (I<ioprio> 値) を与えると、このマクロは I/O クラス要素、つまり "
8103 "B<IOPRIO_CLASS_RT>, B<IOPRIO_CLASS_BE>, B<IOPRIO_CLASS_IDLE> のいずれか一つの"
8104 "値を返す。"
8105
8106 #. type: TP
8107 #: build/C/man2/ioprio_set.2:119
8108 #, no-wrap
8109 msgid "B<IOPRIO_PRIO_DATA(>I<mask>B<)>"
8110 msgstr "B<IOPRIO_PRIO_DATA(>I<mask>B<)>"
8111
8112 #. type: Plain text
8113 #: build/C/man2/ioprio_set.2:128
8114 msgid ""
8115 "Given I<mask> (an I<ioprio> value), this macro returns its priority "
8116 "(I<data>)  component."
8117 msgstr ""
8118 "I<mask> (I<ioprio> 値) を与えると、このマクロは優先度 (I<data>)  要素を返す。"
8119
8120 #. type: Plain text
8121 #: build/C/man2/ioprio_set.2:131
8122 msgid ""
8123 "See the NOTES section for more information on scheduling classes and "
8124 "priorities."
8125 msgstr ""
8126 "スケジューリングクラスと優先度に関する詳しい情報は、 「備考」の節を参照のこ"
8127 "と。"
8128
8129 #. type: Plain text
8130 #: build/C/man2/ioprio_set.2:139
8131 msgid ""
8132 "I/O priorities are supported for reads and for synchronous (B<O_DIRECT>, "
8133 "B<O_SYNC>)  writes.  I/O priorities are not supported for asynchronous "
8134 "writes because they are issued outside the context of the program dirtying "
8135 "the memory, and thus program-specific priorities do not apply."
8136 msgstr ""
8137 "I/O 優先度は読み出しと同期書き込み (B<O_DIRECT>, B<O_SYNC>)  に対応してい"
8138 "る。 I/O 優先度は非同期書き込みには対応していない。なぜなら、 非同期書き込み"
8139 "はメモリ書き換えを行うプログラムの動作 (context) とは 関係なく発行され、その"
8140 "ためプログラム単位の優先度は適用されないから である。"
8141
8142 #. type: Plain text
8143 #: build/C/man2/ioprio_set.2:152
8144 msgid ""
8145 "On success, B<ioprio_get>()  returns the I<ioprio> value of the process with "
8146 "highest I/O priority of any of the processes that match the criteria "
8147 "specified in I<which> and I<who>.  On error, -1 is returned, and I<errno> is "
8148 "set to indicate the error."
8149 msgstr ""
8150 "成功すると、 B<ioprio_get>()  は、 I<which> と I<who> で指定された基準に合致"
8151 "した全プロセスで最も高い I/O 優先度を持つプロセスの I<ioprio> 値を返す。 エ"
8152 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
8153
8154 #. type: Plain text
8155 #: build/C/man2/ioprio_set.2:159
8156 msgid ""
8157 "On success, B<ioprio_set>()  returns 0.  On error, -1 is returned, and "
8158 "I<errno> is set to indicate the error."
8159 msgstr ""
8160 "成功すると、 B<ioprio_set>()  は 0 を返す。 エラーの場合、-1 を返し、 "
8161 "I<errno> にエラーを示す値を設定する。"
8162
8163 #. type: Plain text
8164 #: build/C/man2/ioprio_set.2:169
8165 msgid ""
8166 "Invalid value for I<which> or I<ioprio>.  Refer to the NOTES section for "
8167 "available scheduler classes and priority levels for I<ioprio>."
8168 msgstr ""
8169 "I<which> か I<ioprio> の値が不正である。 I<ioprio> 用に指定可能なスケジューラ"
8170 "クラスと優先度レベルについては 「備考」を参照のこと。"
8171
8172 #. type: Plain text
8173 #: build/C/man2/ioprio_set.2:177
8174 msgid ""
8175 "The calling process does not have the privilege needed to assign this "
8176 "I<ioprio> to the specified process(es).  See the NOTES section for more "
8177 "information on required privileges for B<ioprio_set>()."
8178 msgstr ""
8179 "呼び出し元プロセスが、指定されたプロセスに I<ioprio> を割り当てるのに必要な権"
8180 "限を持っていない。 B<ioprio_set>()  に必要な権限についての詳しい情報は「備"
8181 "考」の節を参照のこと。"
8182
8183 #. type: Plain text
8184 #: build/C/man2/ioprio_set.2:183
8185 msgid ""
8186 "No process(es) could be found that matched the specification in I<which> and "
8187 "I<who>."
8188 msgstr ""
8189 "I<which> と I<who> で指定された基準に合致するプロセスが見つからなかった。"
8190
8191 #. type: Plain text
8192 #: build/C/man2/ioprio_set.2:186
8193 msgid "These system calls have been available on Linux since kernel 2.6.13."
8194 msgstr ""
8195 "これらのシステムコールはカーネル 2.6.13 以降の Linux で利用可能である。"
8196
8197 #. type: Plain text
8198 #: build/C/man2/ioprio_set.2:191
8199 msgid ""
8200 "Glibc does not provide wrapper for these system calls; call them using "
8201 "B<syscall>(2)."
8202 msgstr ""
8203 "glibc はこれらのシステムコールに対するラッパー関数を提供していない。 "
8204 "B<syscall>(2)  を使って呼び出すこと。"
8205
8206 #. type: Plain text
8207 #: build/C/man2/ioprio_set.2:196
8208 msgid ""
8209 "These system calls only have an effect when used in conjunction with an I/O "
8210 "scheduler that supports I/O priorities.  As at kernel 2.6.17 the only such "
8211 "scheduler is the Completely Fair Queuing (CFQ) I/O scheduler."
8212 msgstr ""
8213 "これらのシステムコールは、I/O 優先度に対応した I/O スケジューラと 組み合わせ"
8214 "て使用された場合にのみ効果を持つ。 カーネル 2.6.17 では、この条件を満たすスケ"
8215 "ジューラは Completely Fair Queuing (CFQ) I/O スケジューラだけである。"
8216
8217 #. type: SS
8218 #: build/C/man2/ioprio_set.2:196
8219 #, no-wrap
8220 msgid "Selecting an I/O Scheduler"
8221 msgstr "I/O スケジューラの選択"
8222
8223 #. type: Plain text
8224 #: build/C/man2/ioprio_set.2:200
8225 msgid ""
8226 "I/O Schedulers are selected on a per-device basis via the special file I</"
8227 "sys/block/E<lt>deviceE<gt>/queue/scheduler>."
8228 msgstr ""
8229 "I/O スケジューラの選択はデバイス単位に行われ、その選択は スペシャルファイル "
8230 "I</sys/block/E<lt>deviceE<gt>/queue/scheduler> 経由で行われる。"
8231
8232 #. type: Plain text
8233 #: build/C/man2/ioprio_set.2:206
8234 msgid ""
8235 "One can view the current I/O scheduler via the I</sys> file system.  For "
8236 "example, the following command displays a list of all schedulers currently "
8237 "loaded in the kernel:"
8238 msgstr ""
8239 "現在の I/O スケジューラは I</sys> ファイルシステム経由で参照できる。例えば、"
8240 "以下のコマンドを実行すると、 現在カーネルでロードされているスケジューラの全リ"
8241 "ストが表示される。"
8242
8243 #. type: Plain text
8244 #: build/C/man2/ioprio_set.2:211
8245 #, no-wrap
8246 msgid ""
8247 "$B< cat /sys/block/hda/queue/scheduler>\n"
8248 "noop anticipatory deadline [cfq]\n"
8249 msgstr ""
8250 "$B< cat /sys/block/hda/queue/scheduler>\n"
8251 "noop anticipatory deadline [cfq]\n"
8252
8253 #. type: Plain text
8254 #: build/C/man2/ioprio_set.2:225
8255 msgid ""
8256 "The scheduler surrounded by brackets is the one actually in use for the "
8257 "device (I<hda> in the example).  Setting another scheduler is done by "
8258 "writing the name of the new scheduler to this file.  For example, the "
8259 "following command will set the scheduler for the I<hda> device to I<cfq>:"
8260 msgstr ""
8261 "括弧で囲まれたスケジューラがそのデバイス (上の例では I<hda>)  について実際に"
8262 "使用されているスケジューラである。 別のスケジューラを設定するには、このファイ"
8263 "ルに新しいスケジューラ名を 書き込めばよい。例えば、以下のコマンドを実行する"
8264 "と、デバイス I<hda> のスケジューラとして I<cfq> が設定される。"
8265
8266 #. type: Plain text
8267 #: build/C/man2/ioprio_set.2:231
8268 #, no-wrap
8269 msgid ""
8270 "$B< su>\n"
8271 "Password:\n"
8272 "#B< echo cfq E<gt> /sys/block/hda/queue/scheduler>\n"
8273 msgstr ""
8274 "$B< su>\n"
8275 "Password:\n"
8276 "#B< echo cfq E<gt> /sys/block/hda/queue/scheduler>\n"
8277
8278 #. type: SS
8279 #: build/C/man2/ioprio_set.2:233
8280 #, no-wrap
8281 msgid "The Completely Fair Queuing (CFQ) I/O Scheduler"
8282 msgstr "Completely Fair Queuing (CFQ) I/O スケジューラ"
8283
8284 #. type: Plain text
8285 #: build/C/man2/ioprio_set.2:239
8286 msgid ""
8287 "Since v3 (aka CFQ Time Sliced) CFQ implements I/O nice levels similar to "
8288 "those of CPU scheduling.  These nice levels are grouped in three scheduling "
8289 "classes each one containing one or more priority levels:"
8290 msgstr ""
8291 "バージョン 3 (別名 CFQ Time Sliced) 以降、 CPU スケジューリングと同様の I/O "
8292 "nice レベルが CFQ に実装されている。 これらの nice レベルは 3つのスケジューリ"
8293 "ングクラスに分類でき、 各スケジューリングクラスにつき 1つ以上の優先度レベルが"
8294 "定義されている。"
8295
8296 #. type: TP
8297 #: build/C/man2/ioprio_set.2:239
8298 #, no-wrap
8299 msgid "B<IOPRIO_CLASS_RT> (1)"
8300 msgstr "B<IOPRIO_CLASS_RT> (1)"
8301
8302 #. type: Plain text
8303 #: build/C/man2/ioprio_set.2:254
8304 msgid ""
8305 "This is the real-time I/O class.  This scheduling class is given higher "
8306 "priority than any other class: processes from this class are given first "
8307 "access to the disk every time.  Thus this I/O class needs to be used with "
8308 "some care: one I/O real-time process can starve the entire system.  Within "
8309 "the real-time class, there are 8 levels of class data (priority) that "
8310 "determine exactly how much time this process needs the disk for on each "
8311 "service.  The highest real-time priority level is 0; the lowest is 7.  In "
8312 "the future this might change to be more directly mappable to performance, by "
8313 "passing in a desired data rate instead."
8314 msgstr ""
8315 "これはリアルタイム I/O クラスである。 このスケジューリングクラスには他のクラ"
8316 "スよりも高い優先度が与えられる。 このクラスのプロセスには、常にディスクへのア"
8317 "クセスが優先して 割り当てられる。そのため、この I/O クラスを使う際には、 たっ"
8318 "た一つの リアルタイム I/O クラスのプロセスにより システム全体のディスクアクセ"
8319 "スができなくなってしまうことがある という点に、注意を払う必要がある。 このク"
8320 "ラスには、8 段階の class data (優先度レベル) がある。 この値は、そのプロセス"
8321 "が 1回のディスクアクセスにどれだけの 時間が必要かを正確に決めるためのものであ"
8322 "る。 最高のリアルタイム優先度レベルは 0 で、最低は 7 である。 将来的には、優"
8323 "先度レベルは、希望するデータレートを渡すなど、 より直接的に性能条件を反映でき"
8324 "るように変更されるかもしれない。"
8325
8326 #. type: TP
8327 #: build/C/man2/ioprio_set.2:254
8328 #, no-wrap
8329 msgid "B<IOPRIO_CLASS_BE> (2)"
8330 msgstr "B<IOPRIO_CLASS_BE> (2)"
8331
8332 #. type: Plain text
8333 #: build/C/man2/ioprio_set.2:267
8334 msgid ""
8335 "This is the best-effort scheduling class, which is the default for any "
8336 "process that hasn't set a specific I/O priority.  The class data (priority) "
8337 "determines how much I/O bandwidth the process will get.  Best-effort "
8338 "priority levels are analogous to CPU nice values (see B<getpriority>(2)).  "
8339 "The priority level determines a priority relative to other processes in the "
8340 "best-effort scheduling class.  Priority levels range from 0 (highest) to 7 "
8341 "(lowest)."
8342 msgstr ""
8343 "これは ベストエフォート・スケジューリングクラスである。 このクラスは、特定の "
8344 "I/O 優先度を設定していないプロセスの デフォルト値である。 class data (優先度"
8345 "レベル) により、そのプロセスがどの程度の I/O 帯域を得られるかが決定される。 "
8346 "ベストエフォート・優先度レベルは、CPU の nice 値 (B<getpriority>(2)  参照) と"
8347 "同様のものである。 優先度レベルは、ベストエフォート・スケジューリングクラスの"
8348 "中で 他のプロセスとの相対的な優先度を決定する。 優先度レベルの値の範囲は 0 "
8349 "(最高) から 7 (最低) である。"
8350
8351 #. type: TP
8352 #: build/C/man2/ioprio_set.2:267
8353 #, no-wrap
8354 msgid "B<IOPRIO_CLASS_IDLE> (3)"
8355 msgstr "B<IOPRIO_CLASS_IDLE> (3)"
8356
8357 #. type: Plain text
8358 #: build/C/man2/ioprio_set.2:276
8359 msgid ""
8360 "This is the idle scheduling class.  Processes running at this level only get "
8361 "I/O time when no-one else needs the disk.  The idle class has no class "
8362 "data.  Attention is required when assigning this priority class to a "
8363 "process, since it may become starved if higher priority processes are "
8364 "constantly accessing the disk."
8365 msgstr ""
8366 "これは idle スケジューリングクラスである。 このレベルで動作するプロセスは他に"
8367 "ディスクアクセスをしようとする プロセスがない場合にのみ I/O 時間を取得する。 "
8368 "idle クラスには class data (優先度) は用意されていない。 プロセスにこの優先度"
8369 "を割り当てる際には注意が必要である。 なぜなら、優先度の高いプロセスが常にディ"
8370 "スクにアクセスしている場合には ディスクにアクセスできなくなる可能性があるから"
8371 "だ。"
8372
8373 #. type: Plain text
8374 #: build/C/man2/ioprio_set.2:280
8375 msgid ""
8376 "Refer to I<Documentation/block/ioprio.txt> for more information on the CFQ I/"
8377 "O Scheduler and an example program."
8378 msgstr ""
8379 "CFQ I/O スケジューラの更なる情報とサンプルプログラムについては "
8380 "I<Documentation/block/ioprio.txt> を参照のこと。"
8381
8382 #. type: SS
8383 #: build/C/man2/ioprio_set.2:280
8384 #, no-wrap
8385 msgid "Required permissions to set I/O priorities"
8386 msgstr "I/O 優先度の設定に必要な許可"
8387
8388 #. type: Plain text
8389 #: build/C/man2/ioprio_set.2:283
8390 msgid ""
8391 "Permission to change a process's priority is granted or denied based on two "
8392 "assertions:"
8393 msgstr ""
8394 "プロセスの優先度を変更する許可が得られるかどうかは 以下の 2つの条件に基いて決"
8395 "定される。"
8396
8397 #. type: TP
8398 #: build/C/man2/ioprio_set.2:283
8399 #, no-wrap
8400 msgid "B<Process ownership>"
8401 msgstr "B<プロセスの所有権>"
8402
8403 #. type: Plain text
8404 #: build/C/man2/ioprio_set.2:291
8405 msgid ""
8406 "An unprivileged process may only set the I/O priority of a process whose "
8407 "real UID matches the real or effective UID of the calling process.  A "
8408 "process which has the B<CAP_SYS_NICE> capability can change the priority of "
8409 "any process."
8410 msgstr ""
8411 "非特権プロセスは、プロセスの実 UID が呼び出し元プロセスの実 UID もしくは 実"
8412 "効 UID と一致するプロセスの I/O 優先度のみを設定できる。 B<CAP_SYS_NICE> ケー"
8413 "パビリティを持つプロセスは、どのプロセスの優先度でも変更できる。"
8414
8415 #. type: TP
8416 #: build/C/man2/ioprio_set.2:291
8417 #, no-wrap
8418 msgid "B<What is the desired priority>"
8419 msgstr "B<どの優先度に設定しようとしているか>"
8420
8421 #. type: Plain text
8422 #: build/C/man2/ioprio_set.2:303
8423 msgid ""
8424 "Attempts to set very high priorities (B<IOPRIO_CLASS_RT>)  require the "
8425 "B<CAP_SYS_ADMIN> capability.  Kernel versions up to 2.6.24 also required "
8426 "B<CAP_SYS_ADMIN> to set a very low priority (B<IOPRIO_CLASS_IDLE>), but "
8427 "since Linux 2.6.25, this is no longer required."
8428 msgstr ""
8429 "非常に高い優先度 (B<IOPRIO_CLASS_RT>)  を設定しようとする場合、 "
8430 "B<CAP_SYS_ADMIN> ケーパビリティが必要である。 カーネル 2.6.24 以前では、非常"
8431 "に低い優先度 (B<IOPRIO_CLASS_IDLE>)  を設定するためにも B<CAP_SYS_ADMIN> ケー"
8432 "パビリティが必要であったが、 Linux 2.6.25 以降ではもはや必要なくなった。"
8433
8434 #. type: Plain text
8435 #: build/C/man2/ioprio_set.2:308
8436 msgid ""
8437 "A call to B<ioprio_set>()  must follow both rules, or the call will fail "
8438 "with the error B<EPERM>."
8439 msgstr ""
8440 "B<ioprio_set>()  はこの両方のルールに従い、条件を満たさない場合、エラー "
8441 "B<EPERM> で失敗する。"
8442
8443 #.  6 May 07: Bug report raised:
8444 #.  http://sources.redhat.com/bugzilla/show_bug.cgi?id=4464
8445 #.  Ulrich Drepper replied that he wasn't going to add these
8446 #.  to glibc.
8447 #. type: Plain text
8448 #: build/C/man2/ioprio_set.2:317
8449 msgid ""
8450 "Glibc does not yet provide a suitable header file defining the function "
8451 "prototypes and macros described on this page.  Suitable definitions can be "
8452 "found in I<linux/ioprio.h>."
8453 msgstr ""
8454 "glibc は、このページに記載された関数プロトタイプやマクロを定義する 適切なヘッ"
8455 "ダファイルをまだ提供していない。 必要な定義については I<linux/ioprio.h> を見"
8456 "ればよい。"
8457
8458 #. type: Plain text
8459 #: build/C/man2/ioprio_set.2:321
8460 msgid "B<getpriority>(2), B<open>(2), B<capabilities>(7)"
8461 msgstr "B<getpriority>(2), B<open>(2), B<capabilities>(7)"
8462
8463 #. type: Plain text
8464 #: build/C/man2/ioprio_set.2:323
8465 msgid "Documentation/block/ioprio.txt in the kernel source tree."
8466 msgstr "カーネルソース内の Documentation/block/ioprio.txt"
8467
8468 #. type: TH
8469 #: build/C/man2/ipc.2:26
8470 #, no-wrap
8471 msgid "IPC"
8472 msgstr "IPC"
8473
8474 #. type: TH
8475 #: build/C/man2/ipc.2:26
8476 #, no-wrap
8477 msgid "2007-06-28"
8478 msgstr "2007-06-28"
8479
8480 #. type: Plain text
8481 #: build/C/man2/ipc.2:29
8482 msgid "ipc - System V IPC system calls"
8483 msgstr "ipc - System V IPC システムコール"
8484
8485 #. type: Plain text
8486 #: build/C/man2/ipc.2:34
8487 #, no-wrap
8488 msgid ""
8489 "B<int ipc(unsigned int >I<call>B<, int >I<first>B<, int >I<second>B<, int >I<third>B<,>\n"
8490 "B<        void *>I<ptr>B<, long >I<fifth>B<);>\n"
8491 msgstr ""
8492 "B<int ipc(unsigned int >I<call>B<, int >I<first>B<, int >I<second>B<, int >I<third>B<,>\n"
8493 "B<        void *>I<ptr>B<, long >I<fifth>B<);>\n"
8494
8495 #. type: Plain text
8496 #: build/C/man2/ipc.2:42
8497 msgid ""
8498 "B<ipc>()  is a common kernel entry point for the System V IPC calls for "
8499 "messages, semaphores, and shared memory.  I<call> determines which IPC "
8500 "function to invoke; the other arguments are passed through to the "
8501 "appropriate call."
8502 msgstr ""
8503 "B<ipc>()  は メッセージ、セマフォー、共有メモリに関する System V IPC コール"
8504 "の 共通のカーネルへのエントリポイントである。 I<call> はどの IPC 関数を呼び出"
8505 "すかを決め; 他の引き数は適切なコールへと渡される。"
8506
8507 #. type: Plain text
8508 #: build/C/man2/ipc.2:46
8509 msgid ""
8510 "User programs should call the appropriate functions by their usual names.  "
8511 "Only standard library implementors and kernel hackers need to know about "
8512 "B<ipc>()."
8513 msgstr ""
8514 "ユーザープログラムは通常の名前で適切な関数を呼び出すべきである。 標準ライブラ"
8515 "リの実装者やカーネルハッカーのみが B<ipc>()  について知る必要がある。"
8516
8517 #. type: Plain text
8518 #: build/C/man2/ipc.2:50
8519 msgid ""
8520 "B<ipc>()  is Linux-specific, and should not be used in programs intended to "
8521 "be portable."
8522 msgstr ""
8523 "B<ipc>()  は Linux 特有であり、 移植を意図したプログラムでは 使用してはいけな"
8524 "い。"
8525
8526 #. type: Plain text
8527 #: build/C/man2/ipc.2:58
8528 msgid ""
8529 "On a few architectures, for example ia64, there is no B<ipc>()  system call; "
8530 "instead B<msgctl>(2), B<semctl>(2), B<shmctl>(2), and so on really are "
8531 "implemented as separate system calls."
8532 msgstr ""
8533 "ia64 などのいくつかのアーキテクチャでは、システムコール B<ipc>()  が存在しな"
8534 "い。実際には、その代わりに B<msgctl>(2), B<semctl>(2), B<shmctl>(2)  などが独"
8535 "立したシステムコールとして実装されている。"
8536
8537 #. type: Plain text
8538 #: build/C/man2/ipc.2:71
8539 msgid ""
8540 "B<msgctl>(2), B<msgget>(2), B<msgrcv>(2), B<msgsnd>(2), B<semctl>(2), "
8541 "B<semget>(2), B<semop>(2), B<semtimedop>(2), B<shmat>(2), B<shmctl>(2), "
8542 "B<shmdt>(2), B<shmget>(2)"
8543 msgstr ""
8544 "B<msgctl>(2), B<msgget>(2), B<msgrcv>(2), B<msgsnd>(2), B<semctl>(2), "
8545 "B<semget>(2), B<semop>(2), B<shmat>(2), B<shmctl>(2), B<shmdt>(2), B<shmget>"
8546 "(2)"
8547
8548 #. type: TH
8549 #: build/C/man2/seteuid.2:27
8550 #, no-wrap
8551 msgid "SETEUID"
8552 msgstr "SETEUID"
8553
8554 #. type: TH
8555 #: build/C/man2/seteuid.2:27
8556 #, no-wrap
8557 msgid "2009-10-17"
8558 msgstr "2009-10-17"
8559
8560 #. type: Plain text
8561 #: build/C/man2/seteuid.2:30
8562 msgid "seteuid, setegid - set effective user or group ID"
8563 msgstr "seteuid, setegid - 実効ユーザー ID や 実効グループ ID を設定する"
8564
8565 #. type: Plain text
8566 #: build/C/man2/seteuid.2:36
8567 msgid "B<int seteuid(uid_t >I<euid>B<);>"
8568 msgstr "B<int seteuid(uid_t >I<euid>B<);>"
8569
8570 #. type: Plain text
8571 #: build/C/man2/seteuid.2:38
8572 msgid "B<int setegid(gid_t >I<egid>B<);>"
8573 msgstr "B<int setegid(gid_t >I<egid>B<);>"
8574
8575 #. type: Plain text
8576 #: build/C/man2/seteuid.2:47
8577 msgid "B<seteuid>(), B<setegid>():"
8578 msgstr "B<seteuid>(), B<setegid>():"
8579
8580 #. type: Plain text
8581 #: build/C/man2/seteuid.2:49
8582 msgid ""
8583 "_BSD_SOURCE || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>="
8584 "\\ 600"
8585 msgstr ""
8586 "_BSD_SOURCE || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>="
8587 "\\ 600"
8588
8589 #. type: Plain text
8590 #: build/C/man2/seteuid.2:56
8591 msgid ""
8592 "B<seteuid>()  sets the effective user ID of the calling process.  "
8593 "Unprivileged user processes may only set the effective user ID to the real "
8594 "user ID, the effective user ID or the saved set-user-ID."
8595 msgstr ""
8596 "B<seteuid>()  は呼び出し元のプロセスの実効ユーザー ID を設定する。 非特権ユー"
8597 "ザーのプロセスの場合、実効ユーザー ID に設定できるのは、 実ユーザー ID・実効"
8598 "ユーザー ID・保存 set-user-ID のいずれかだけである。"
8599
8600 #.  When
8601 #.  .I euid
8602 #.  equals \-1, nothing is changed.
8603 #.  (This is an artifact of the implementation in glibc of seteuid()
8604 #.  using setresuid(2).)
8605 #. type: Plain text
8606 #: build/C/man2/seteuid.2:65
8607 msgid ""
8608 "Precisely the same holds for B<setegid>()  with \"group\" instead of \"user"
8609 "\"."
8610 msgstr ""
8611 "B<setegid>()  は「ユーザー」ではなく「グループ」に対して全く同じことを行う。"
8612
8613 #. type: Plain text
8614 #: build/C/man2/seteuid.2:89
8615 msgid ""
8616 "The calling process is not privileged (Linux: does not have the "
8617 "B<CAP_SETUID> capability in the case of B<seteuid>(), or the B<CAP_SETGID> "
8618 "capability in the case of B<setegid>())  and I<euid> (respectively, "
8619 "I<egid>)  is not the real user (group) ID, the effective user (group) ID, or "
8620 "the saved set-user-ID (saved set-group-ID)."
8621 msgstr ""
8622 "呼び出し元のプロセスに特権がなく、 I<euid> (I<egid>)  が実ユーザー (グルー"
8623 "プ) ID、または実効ユーザー (グループ) ID、 保存 set-user-ID (保存 set-group-"
8624 "ID) のいずれでもではない (Linux においては、 B<seteuid>()  では "
8625 "B<CAP_SETUID> ケーパビリティ (capability) が、 B<setegid>()  では "
8626 "B<CAP_SETGID> ケーパビリティがない場合に、特権がないと判断される)。"
8627
8628 #. type: Plain text
8629 #: build/C/man2/seteuid.2:91
8630 msgid "4.3BSD, POSIX.1-2001."
8631 msgstr "4.3BSD, POSIX.1-2001."
8632
8633 #. type: Plain text
8634 #: build/C/man2/seteuid.2:97
8635 msgid ""
8636 "Setting the effective user (group) ID to the saved set-user-ID (saved set-"
8637 "group-ID) is possible since Linux 1.1.37 (1.1.38).  On an arbitrary system "
8638 "one should check B<_POSIX_SAVED_IDS>."
8639 msgstr ""
8640 "実効ユーザー (グループ) ID を保存 set-user-ID (保存 set-group-ID) に 設定でき"
8641 "るのは、Linux 1.1.37 (1.1.38) 以降である。 全てのシステムにおいて "
8642 "B<_POSIX_SAVED_IDS> をチェックすべきである。"
8643
8644 #. type: Plain text
8645 #: build/C/man2/seteuid.2:108
8646 msgid ""
8647 "Under libc4, libc5 and glibc 2.0 B<seteuid(>I<euid>B<)> is equivalent to "
8648 "B<setreuid(-1,>I< euid>B<)> and hence may change the saved set-user-ID.  "
8649 "Under glibc 2.1 and later it is equivalent to B<setresuid(-1,>I< euid>B<, -1)"
8650 "> and hence does not change the saved set-user-ID.  Similar remarks hold for "
8651 "B<setegid>()."
8652 msgstr ""
8653 "libc4, libc5, glibc 2.0 では、 B<seteuid(>I<euid>B<)> は B<setreuid(-1,>I< "
8654 "euid>B<)> と等価であり、保存 set-user-ID を変更するかもしれない。 glibc 2.1 "
8655 "では、 B<setresuid(-1,>I< euid>B<, -1)> と等価であり、保存 set-user-ID 変更し"
8656 "ない。 同様のことが B<setegid>()  にも言える。"
8657
8658 #. type: Plain text
8659 #: build/C/man2/seteuid.2:117
8660 msgid ""
8661 "According to POSIX.1, B<seteuid>()  (B<setegid>())  need not permit I<euid> "
8662 "(I<egid>)  to be the same value as the current effective user (group) ID, "
8663 "and some implementations do not permit this."
8664 msgstr ""
8665 "POSIX.1 では、 B<seteuid>()  (B<setegid>())  で、 I<euid> (I<egid>)  として現"
8666 "在の実効ユーザ (グループ) ID と同じ値を指定可能である 必要はないとされてお"
8667 "り、いくつかの実装では I<euid> (I<egid>)  として現在の実効ユーザ (グループ) "
8668 "ID と同じ値を 指定することができない。"
8669
8670 #. type: Plain text
8671 #: build/C/man2/seteuid.2:124
8672 msgid ""
8673 "B<geteuid>(2), B<setresuid>(2), B<setreuid>(2), B<setuid>(2), B<capabilities>"
8674 "(7), B<credentials>(7)"
8675 msgstr ""
8676 "B<geteuid>(2), B<setresuid>(2), B<setreuid>(2), B<setuid>(2), B<capabilities>"
8677 "(7), B<credentials>(7)"
8678
8679 #. type: TH
8680 #: build/C/man2/setfsgid.2:29
8681 #, no-wrap
8682 msgid "SETFSGID"
8683 msgstr "SETFSGID"
8684
8685 #. type: Plain text
8686 #: build/C/man2/setfsgid.2:32
8687 msgid "setfsgid - set group identity used for file system checks"
8688 msgstr ""
8689 "setfsgid - ファイルシステムのチェックに用いられるグループ ID を設定する"
8690
8691 #. type: Plain text
8692 #: build/C/man2/setfsgid.2:35 build/C/man2/setfsuid.2:35
8693 msgid "B<#include E<lt>unistd.hE<gt>> /* glibc uses E<lt>sys/fsuid.hE<gt> */"
8694 msgstr "B<#include E<lt>unistd.hE<gt>> /* glibc では E<lt>sys/fsuid.hE<gt> */"
8695
8696 #. type: Plain text
8697 #: build/C/man2/setfsgid.2:37
8698 msgid "B<int setfsgid(uid_t >I<fsgid>B<);>"
8699 msgstr "B<int setfsgid(uid_t >I<fsgid>B<);>"
8700
8701 #. type: Plain text
8702 #: build/C/man2/setfsgid.2:49
8703 msgid ""
8704 "The system call B<setfsgid>()  sets the group ID that the Linux kernel uses "
8705 "to check for all accesses to the file system.  Normally, the value of "
8706 "I<fsgid> will shadow the value of the effective group ID.  In fact, whenever "
8707 "the effective group ID is changed, I<fsgid> will also be changed to the new "
8708 "value of the effective group ID."
8709 msgstr ""
8710 "システムコール B<setfsgid>()  は Linux カーネルがファイルシステムに対する 全"
8711 "てのアクセスのチェックに使用するグループ IDを設定する。通常は I<fsgid> の値は"
8712 "実効 (effective) グループID と同じになる。実際、 実効グループ ID が変更される"
8713 "度に I<fsgid> もまた新しい実効グループID の値に変更される。"
8714
8715 #. type: Plain text
8716 #: build/C/man2/setfsgid.2:60
8717 msgid ""
8718 "Explicit calls to B<setfsuid>(2)  and B<setfsgid>()  are usually only used "
8719 "by programs such as the Linux NFS server that need to change what user and "
8720 "group ID is used for file access without a corresponding change in the real "
8721 "and effective user and group IDs.  A change in the normal user IDs for a "
8722 "program such as the NFS server is a security hole that can expose it to "
8723 "unwanted signals.  (But see below.)"
8724 msgstr ""
8725 "通常、 B<setfsuid>()  や B<setfsgid>()  が明示的に呼び出されるのは、Linux "
8726 "NFS サーバー のように、 ファイルアクセスに用いるユーザID / グループID を変更"
8727 "しなければならないが、 対応する実(real)/実効(effective) ユーザID / グループ"
8728 "ID は変更したくないような プログラムに限られる。 NFS サーバーのようなプログラ"
8729 "ムで、通常のユーザID を変更すると、 プロセスを望まないシグナルにさらす可能性"
8730 "があり、 セキュリティホールになる。(下記参照)"
8731
8732 #. type: Plain text
8733 #: build/C/man2/setfsgid.2:67
8734 msgid ""
8735 "B<setfsgid>()  will only succeed if the caller is the superuser or if "
8736 "I<fsgid> matches either the real group ID, effective group ID, saved set-"
8737 "group-ID, or the current value of I<fsgid>."
8738 msgstr ""
8739 "B<setfsgid>()  は、スーパーユーザによって呼び出された場合か、 I<fsgid> が実グ"
8740 "ループID、実効グループID、 保存セットグループID (saved set-group-ID)、現在の "
8741 "I<fsgid> の値のいずれかに一致する場合にのみ成功する。"
8742
8743 #. type: Plain text
8744 #: build/C/man2/setfsgid.2:74
8745 msgid ""
8746 "On success, the previous value of I<fsgid> is returned.  On error, the "
8747 "current value of I<fsgid> is returned."
8748 msgstr ""
8749 "成功した場合、 I<fsgid> の以前の値を返す。エラーの場合は I<fsgid> の現在の値"
8750 "を返す。"
8751
8752 #.  This system call is present since Linux 1.1.44
8753 #.  and in libc since libc 4.7.6.
8754 #. type: Plain text
8755 #: build/C/man2/setfsgid.2:78 build/C/man2/setfsuid.2:78
8756 msgid "This system call is present in Linux since version 1.2."
8757 msgstr "このシステムコールはバージョン 1.2 以降の Linux に存在する。"
8758
8759 #. type: Plain text
8760 #: build/C/man2/setfsgid.2:82
8761 msgid ""
8762 "B<setfsgid>()  is Linux-specific and should not be used in programs intended "
8763 "to be portable."
8764 msgstr ""
8765 "B<setfsgid>()  は Linux 特有であり、移植を想定したプログラムで使用してはいけ"
8766 "ない。"
8767
8768 #. type: Plain text
8769 #: build/C/man2/setfsgid.2:88
8770 msgid ""
8771 "When glibc determines that the argument is not a valid group ID, it will "
8772 "return -1 and set I<errno> to B<EINVAL> without attempting the system call."
8773 msgstr ""
8774 "glibc が引き数がグループID として不正だと判断した場合は、 システムコールを行"
8775 "わず I<errno> に B<EINVAL> を設定して -1 が返される。"
8776
8777 #. type: Plain text
8778 #: build/C/man2/setfsgid.2:92 build/C/man2/setfsuid.2:92
8779 msgid ""
8780 "Note that at the time this system call was introduced, a process could send "
8781 "a signal to a process with the same effective user ID.  Today signal "
8782 "permission handling is slightly different."
8783 msgstr ""
8784 "このシステムコールが導入された当時、プロセスは 同じ実効ユーザIDのプロセスへシ"
8785 "グナルを送ることができた。 今日では、シグナル送信権限の扱いはかなり違うものに"
8786 "なっている。"
8787
8788 #. type: Plain text
8789 #: build/C/man2/setfsgid.2:102
8790 msgid ""
8791 "The original Linux B<setfsgid>()  system call supported only 16-bit group "
8792 "IDs.  Subsequently, Linux 2.4 added B<setfsgid32>()  supporting 32-bit IDs.  "
8793 "The glibc B<setfsgid>()  wrapper function transparently deals with the "
8794 "variation across kernel versions."
8795 msgstr ""
8796 "元々の Linux の B<setfsgid>() システムコールは\n"
8797 "16 ビットのグループ ID だけに対応していた。\n"
8798 "その後、Linux 2.4 で、32 ビットの ID に対応した\n"
8799 "B<setfsgid32>() が追加された。\n"
8800 "glibc の B<setfsgid>() のラッパー関数は\n"
8801 "カーネルバージョンによるこの違いを吸収している。"
8802
8803 #. type: Plain text
8804 #: build/C/man2/setfsgid.2:110
8805 msgid ""
8806 "No error messages of any kind are returned to the caller.  At the very "
8807 "least, B<EPERM> should be returned when the call fails (because the caller "
8808 "lacks the B<CAP_SETGID> capability)."
8809 msgstr ""
8810 "いかなる種類のエラーメッセージも返さない。 失敗した場合は (呼び出し元には "
8811 "B<CAP_SETGID> ケーパビリティがなかったのだから) 最低でも B<EPERM> くらいは返"
8812 "すべきである。"
8813
8814 #. type: Plain text
8815 #: build/C/man2/setfsgid.2:115
8816 msgid "B<kill>(2), B<setfsuid>(2), B<capabilities>(7), B<credentials>(7)"
8817 msgstr "B<kill>(2), B<setfsuid>(2), B<capabilities>(7), B<credentials>(7)"
8818
8819 #. type: TH
8820 #: build/C/man2/setfsuid.2:29
8821 #, no-wrap
8822 msgid "SETFSUID"
8823 msgstr "SETFSUID"
8824
8825 #. type: Plain text
8826 #: build/C/man2/setfsuid.2:32
8827 msgid "setfsuid - set user identity used for file system checks"
8828 msgstr "setfsuid - ファイルシステムのチェックに用いられるユーザ ID を設定する"
8829
8830 #. type: Plain text
8831 #: build/C/man2/setfsuid.2:37
8832 msgid "B<int setfsuid(uid_t >I<fsuid>B<);>"
8833 msgstr "B<int setfsuid(uid_t >I<fsuid>B<);>"
8834
8835 #. type: Plain text
8836 #: build/C/man2/setfsuid.2:49
8837 msgid ""
8838 "The system call B<setfsuid>()  sets the user ID that the Linux kernel uses "
8839 "to check for all accesses to the file system.  Normally, the value of "
8840 "I<fsuid> will shadow the value of the effective user ID.  In fact, whenever "
8841 "the effective user ID is changed, I<fsuid> will also be changed to the new "
8842 "value of the effective user ID."
8843 msgstr ""
8844 "B<setfsuid>()  は Linux カーネルがファイルシステムに対する 全てのアクセスの"
8845 "チェックに使用するユーザID を設定する。通常は I<fsuid> の値は実効 "
8846 "(effective) ユーザID と同じになる。実際、 実効ユーザID が変更される度に "
8847 "I<fsuid> もまた新しい実効ユーザID の値に変更される。"
8848
8849 #. type: Plain text
8850 #: build/C/man2/setfsuid.2:60
8851 msgid ""
8852 "Explicit calls to B<setfsuid>()  and B<setfsgid>(2)  are usually only used "
8853 "by programs such as the Linux NFS server that need to change what user and "
8854 "group ID is used for file access without a corresponding change in the real "
8855 "and effective user and group IDs.  A change in the normal user IDs for a "
8856 "program such as the NFS server is a security hole that can expose it to "
8857 "unwanted signals.  (But see below.)"
8858 msgstr ""
8859 "通常、 B<setfsuid>()  や B<setfsgid>()  が明示的に呼び出されるのは、Linux "
8860 "NFS サーバー のように、 ファイルアクセスに用いるユーザID / グループID を変更"
8861 "しなければならないが、 対応する実(real)/実効(effective) ユーザID / グループ"
8862 "ID は変更したくないような プログラムに限られる。 NFS サーバーのようなプログラ"
8863 "ムで、通常のユーザID を変更すると、 プロセスを望まないシグナルにさらす可能性"
8864 "があり、 セキュリティホールになる。(下記参照)"
8865
8866 #. type: Plain text
8867 #: build/C/man2/setfsuid.2:67
8868 msgid ""
8869 "B<setfsuid>()  will only succeed if the caller is the superuser or if "
8870 "I<fsuid> matches either the real user ID, effective user ID, saved set-user-"
8871 "ID, or the current value of I<fsuid>."
8872 msgstr ""
8873 "B<setfsuid>()  は、スーパーユーザによって呼び出された場合か、 I<fsuid> が実"
8874 "ユーザID、実効ユーザID、 保存セットユーザID (saved set-user-ID)、現在の "
8875 "I<fsuid> の値のいずれかに一致する場合にのみ成功する。"
8876
8877 #. type: Plain text
8878 #: build/C/man2/setfsuid.2:74
8879 msgid ""
8880 "On success, the previous value of I<fsuid> is returned.  On error, the "
8881 "current value of I<fsuid> is returned."
8882 msgstr ""
8883 "成功した場合、 I<fsuid> の以前の値を返す。エラーの場合は I<fsuid> の現在の値"
8884 "を返す。"
8885
8886 #. type: Plain text
8887 #: build/C/man2/setfsuid.2:82
8888 msgid ""
8889 "B<setfsuid>()  is Linux-specific and should not be used in programs intended "
8890 "to be portable."
8891 msgstr ""
8892 "B<setfsuid>()  は Linux 特有であり、移植を想定したプログラムで使用してはいけ"
8893 "ない。"
8894
8895 #. type: Plain text
8896 #: build/C/man2/setfsuid.2:88
8897 msgid ""
8898 "When glibc determines that the argument is not a valid user ID, it will "
8899 "return -1 and set I<errno> to B<EINVAL> without attempting the system call."
8900 msgstr ""
8901 "glibc が引き数がユーザID として不正だと判断した場合は、 システムコールを行わ"
8902 "ず I<errno> に B<EINVAL> を設定して -1 が返される。"
8903
8904 #. type: Plain text
8905 #: build/C/man2/setfsuid.2:102
8906 msgid ""
8907 "The original Linux B<setfsuid>()  system call supported only 16-bit user "
8908 "IDs.  Subsequently, Linux 2.4 added B<setfsuid32>()  supporting 32-bit IDs.  "
8909 "The glibc B<setfsuid>()  wrapper function transparently deals with the "
8910 "variation across kernel versions."
8911 msgstr ""
8912 "元々の Linux の B<setfsuid>() システムコールは\n"
8913 "16 ビットのグループ ID だけに対応していた。\n"
8914 "その後、Linux 2.4 で、32 ビットの ID に対応した\n"
8915 "B<setfsuid32>() が追加された。\n"
8916 "glibc の B<setfsuid>() のラッパー関数は\n"
8917 "カーネルバージョンによるこの違いを吸収している。"
8918
8919 #. type: Plain text
8920 #: build/C/man2/setfsuid.2:110
8921 msgid ""
8922 "No error messages of any kind are returned to the caller.  At the very "
8923 "least, B<EPERM> should be returned when the call fails (because the caller "
8924 "lacks the B<CAP_SETUID> capability)."
8925 msgstr ""
8926 "いかなる種類のエラーメッセージも呼び出し元に返さない。 失敗した場合は (呼び出"
8927 "し元には B<CAP_SETUID> ケーパビリティがなかったのだから) 最低でも B<EPERM> く"
8928 "らいは返すべきである。"
8929
8930 #. type: Plain text
8931 #: build/C/man2/setfsuid.2:115
8932 msgid "B<kill>(2), B<setfsgid>(2), B<capabilities>(7), B<credentials>(7)"
8933 msgstr "B<kill>(2), B<setfsgid>(2), B<capabilities>(7), B<credentials>(7)"
8934
8935 #. type: TH
8936 #: build/C/man2/setgid.2:27
8937 #, no-wrap
8938 msgid "SETGID"
8939 msgstr "SETGID"
8940
8941 #. type: Plain text
8942 #: build/C/man2/setgid.2:30
8943 msgid "setgid - set group identity"
8944 msgstr "setgid - グループ識別(identity)を設定する"
8945
8946 #. type: Plain text
8947 #: build/C/man2/setgid.2:36
8948 msgid "B<int setgid(gid_t >I<gid>B<);>"
8949 msgstr "B<int setgid(gid_t >I<gid>B<);>"
8950
8951 #. type: Plain text
8952 #: build/C/man2/setgid.2:41
8953 msgid ""
8954 "B<setgid>()  sets the effective group ID of the calling process.  If the "
8955 "caller is the superuser, the real GID and saved set-group-ID are also set."
8956 msgstr ""
8957 "B<setgid>()  は呼び出し元のプロセスの実効 (effective) グループID を設定す"
8958 "る。 もしスーパーユーザーによって呼び出された場合は、 実 (real) グループID と"
8959 "保存 (saved) set-group-ID も設定される。"
8960
8961 #. type: Plain text
8962 #: build/C/man2/setgid.2:51
8963 msgid ""
8964 "Under Linux, B<setgid>()  is implemented like the POSIX version with the "
8965 "B<_POSIX_SAVED_IDS> feature.  This allows a set-group-ID program that is not "
8966 "set-user-ID-root to drop all of its group privileges, do some un-privileged "
8967 "work, and then reengage the original effective group ID in a secure manner."
8968 msgstr ""
8969 "Linux において、 B<setgid>()  は B<_POSIX_SAVED_IDS> をもった POSIX 版のよう"
8970 "に実装されている。 これは set-user-ID-root でない set-group-ID プログラムにそ"
8971 "のグループの 特権の全て落とし、特権の必要ない仕事をし、本来の実効グループID "
8972 "に 安全な方法で再び戻すことを許す。"
8973
8974 #. type: Plain text
8975 #: build/C/man2/setgid.2:64
8976 msgid ""
8977 "The calling process is not privileged (does not have the B<CAP_SETGID> "
8978 "capability), and I<gid> does not match the real group ID or saved set-group-"
8979 "ID of the calling process."
8980 msgstr ""
8981 "呼び出し元のプロセスに権限がなく (B<CAP_SETGID> ケーパビリティがなく)、かつ "
8982 "I<gid> が呼び出し元のプロセスの実グループID と保存セットグループID のどちらと"
8983 "も一致しない。"
8984
8985 #. type: Plain text
8986 #: build/C/man2/setgid.2:74
8987 msgid ""
8988 "The original Linux B<setgid>()  system call supported only 16-bit group "
8989 "IDs.  Subsequently, Linux 2.4 added B<setgid32>()  supporting 32-bit IDs.  "
8990 "The glibc B<setgid>()  wrapper function transparently deals with the "
8991 "variation across kernel versions."
8992 msgstr ""
8993 "元々の Linux の B<setgid>() システムコールは\n"
8994 "16 ビットのグループ ID だけに対応していた。\n"
8995 "その後、Linux 2.4 で、32 ビットの ID に対応した\n"
8996 "B<setgid32>() が追加された。\n"
8997 "glibc の B<setgid>() のラッパー関数は\n"
8998 "カーネルバージョンによるこの違いを吸収している。"
8999
9000 #. type: Plain text
9001 #: build/C/man2/setgid.2:82
9002 msgid ""
9003 "B<getgid>(2), B<setegid>(2), B<setregid>(2), B<capabilities>(7), "
9004 "B<credentials>(7)"
9005 msgstr ""
9006 "B<getgid>(2), B<setegid>(2), B<setregid>(2), B<capabilities>(7), "
9007 "B<credentials>(7)"
9008
9009 #. type: TH
9010 #: build/C/man2/setpgid.2:46
9011 #, no-wrap
9012 msgid "SETPGID"
9013 msgstr "SETPGID"
9014
9015 #. type: Plain text
9016 #: build/C/man2/setpgid.2:49
9017 msgid "setpgid, getpgid, setpgrp, getpgrp - set/get process group"
9018 msgstr "setpgid, getpgid, setpgrp, getpgrp - プロセスグループの設定/取得を行う"
9019
9020 #. type: Plain text
9021 #: build/C/man2/setpgid.2:53
9022 msgid "B<int setpgid(pid_t >I<pid>B<, pid_t >I<pgid>B<);>"
9023 msgstr "B<int setpgid(pid_t >I<pid>B<, pid_t >I<pgid>B<);>"
9024
9025 #. type: Plain text
9026 #: build/C/man2/setpgid.2:55
9027 msgid "B<pid_t getpgid(pid_t >I<pid>B<);>"
9028 msgstr "B<pid_t getpgid(pid_t >I<pid>B<);>"
9029
9030 #. type: Plain text
9031 #: build/C/man2/setpgid.2:57
9032 msgid "B<pid_t getpgrp(void);> /* POSIX.1 version */"
9033 msgstr "B<pid_t getpgrp(void);> /* POSIX.1 version */"
9034
9035 #. type: Plain text
9036 #: build/C/man2/setpgid.2:60
9037 msgid ""
9038 "B<pid_t getpgrp(pid_t >I<pid>B<);\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ > /* BSD "
9039 "version */"
9040 msgstr ""
9041 "B<pid_t getpgrp(pid_t >I<pid>B<);\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ > /* BSD "
9042 "version */"
9043
9044 #. type: Plain text
9045 #: build/C/man2/setpgid.2:62
9046 msgid "B<int setpgrp(void);> /* System V version */"
9047 msgstr "B<int setpgrp(void);> /* System V version */"
9048
9049 #. type: Plain text
9050 #: build/C/man2/setpgid.2:65
9051 msgid "B<int setpgrp(pid_t >I<pid>B<, pid_t >I<pgid>B<);\\ > /* BSD version */"
9052 msgstr ""
9053 "B<int setpgrp(pid_t >I<pid>B<, pid_t >I<pgid>B<);\\ > /* BSD version */"
9054
9055 #. type: Plain text
9056 #: build/C/man2/setpgid.2:74
9057 msgid "B<getpgid>():"
9058 msgstr "B<getpgid>():"
9059
9060 #. type: Plain text
9061 #: build/C/man2/setpgid.2:82
9062 msgid "B<setpgrp>() (POSIX.1):"
9063 msgstr "B<setpgrp>() (POSIX.1):"
9064
9065 #. type: Plain text
9066 #: build/C/man2/setpgid.2:85
9067 #, no-wrap
9068 msgid ""
9069 "    _SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 ||\n"
9070 "    _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED\n"
9071 msgstr ""
9072 "    _SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 ||\n"
9073 "    _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED\n"
9074
9075 #. type: Plain text
9076 #: build/C/man2/setpgid.2:89
9077 msgid "B<setpgrp>()\\ (BSD), B<getpgrp>()\\ (BSD):"
9078 msgstr "B<setpgrp>()\\ (BSD), B<getpgrp>()\\ (BSD):"
9079
9080 #. type: Plain text
9081 #: build/C/man2/setpgid.2:93
9082 #, no-wrap
9083 msgid ""
9084 "    _BSD_SOURCE &&\n"
9085 "        !\\ (_POSIX_SOURCE || _POSIX_C_SOURCE || _XOPEN_SOURCE ||\n"
9086 "           _XOPEN_SOURCE_EXTENDED || _GNU_SOURCE || _SVID_SOURCE)\n"
9087 msgstr ""
9088 "    _BSD_SOURCE &&\n"
9089 "        !\\ (_POSIX_SOURCE || _POSIX_C_SOURCE || _XOPEN_SOURCE ||\n"
9090 "           _XOPEN_SOURCE_EXTENDED || _GNU_SOURCE || _SVID_SOURCE)\n"
9091
9092 #. type: Plain text
9093 #: build/C/man2/setpgid.2:105
9094 msgid ""
9095 "All of these interfaces are available on Linux, and are used for getting and "
9096 "setting the process group ID (PGID) of a process.  The preferred, POSIX.1-"
9097 "specified ways of doing this are: B<getpgrp>(void), for retrieving the "
9098 "calling process's PGID; and B<setpgid>(), for setting a process's PGID."
9099 msgstr ""
9100 "これらのインタフェースすべてが Linux で利用可能で、 これらを使ってプロセスの"
9101 "プロセスグループ ID (PGID) の 取得や設定ができる。 推奨の、POSIX.1 で規定され"
9102 "た方法では、 B<getpgrp>(void)  で呼び出し元プロセスの PGID を取得し、 "
9103 "B<setpgid>()  で設定する。"
9104
9105 #. type: Plain text
9106 #: build/C/man2/setpgid.2:130
9107 msgid ""
9108 "B<setpgid>()  sets the PGID of the process specified by I<pid> to I<pgid>.  "
9109 "If I<pid> is zero, then the process ID of the calling process is used.  If "
9110 "I<pgid> is zero, then the PGID of the process specified by I<pid> is made "
9111 "the same as its process ID.  If B<setpgid>()  is used to move a process from "
9112 "one process group to another (as is done by some shells when creating "
9113 "pipelines), both process groups must be part of the same session (see "
9114 "B<setsid>(2)  and B<credentials>(7)).  In this case, the I<pgid> specifies "
9115 "an existing process group to be joined and the session ID of that group must "
9116 "match the session ID of the joining process."
9117 msgstr ""
9118 "B<setpgid>()  は I<pid> で指定したプロセスの PGID に I<pgid> を設定する。 "
9119 "I<pid> がゼロならば、呼び出し元プロセスのプロセス ID が pid として使用され"
9120 "る。 I<pgid> がゼロならば、 I<pid> で指定されたプロセスの PGID がそのプロセス"
9121 "のプロセス ID と 同じに設定される。 B<setpgid>()  をプロセスをあるプロセスグ"
9122 "ループから別のグループへ 移動するために使用する場合は (一部のシェルはパイプラ"
9123 "インを生成 する時にこれを行う)、両方のプロセスグループは同じセッションの 一部"
9124 "でなければならない (B<setsid>(2)  と B<credentials>(7)  参照)。この場合は "
9125 "I<pgid> は参加すべき既存の プロセスグループを指定し、そのセッション ID は参加"
9126 "するプロセスの セッション ID に一致しなければならない。"
9127
9128 #. type: Plain text
9129 #: build/C/man2/setpgid.2:135
9130 msgid ""
9131 "The POSIX.1 version of B<getpgrp>(), which takes no arguments, returns the "
9132 "PGID of the calling process."
9133 msgstr ""
9134 "POSIX.1 バージョンの B<getpgrp>()  は引き数を一つもとらず、 呼び出し元プロセ"
9135 "スの PGID を返す。"
9136
9137 #. type: Plain text
9138 #: build/C/man2/setpgid.2:146
9139 msgid ""
9140 "B<getpgid>()  returns the PGID of the process specified by I<pid>.  If "
9141 "I<pid> is zero, the process ID of the calling process is used.  (Retrieving "
9142 "the PGID of a process other than the caller is rarely necessary, and the "
9143 "POSIX.1 B<getpgrp>()  is preferred for that task.)"
9144 msgstr ""
9145 "B<getpgid>()  は I<pid> で指定されたプロセスの PGID を返す。 I<pid> がゼロな"
9146 "らば、呼び出し元プロセスのプロセス ID が pid として使用される。 (呼び出し元プ"
9147 "ロセス以外のプロセスの PGID の取得が必要になることは めったになく、呼び出し元"
9148 "プロセスの PGID を取得するには POSIX.1 バージョンの B<getpgrp>()  を使うのが"
9149 "望ましい。)"
9150
9151 #. type: Plain text
9152 #: build/C/man2/setpgid.2:151
9153 msgid ""
9154 "The System V-style B<setpgrp>(), which takes no arguments, is equivalent to "
9155 "I<setpgid(0,\\ 0)>."
9156 msgstr ""
9157 "System V バージョンの B<setpgrp>()  は引き数を一つもとらず、 I<setpgid(0,\\ "
9158 "0)> と等価である。"
9159
9160 #.  The true BSD setpgrp() system call differs in allowing the PGID
9161 #.  to be set to arbitrary values, rather than being restricted to
9162 #.  PGIDs in the same session.
9163 #. type: Plain text
9164 #: build/C/man2/setpgid.2:163
9165 msgid ""
9166 "The BSD-specific B<setpgrp>()  call, which takes arguments I<pid> and "
9167 "I<pgid>, is equivalent to I<setpgid(pid, pgid)>."
9168 msgstr ""
9169 "BSD 仕様の B<setpgrp>()  は I<pid> と I<pgid> を引き数にとり、 I<setpgid"
9170 "(pid, pgid)> と等価である。"
9171
9172 #. type: Plain text
9173 #: build/C/man2/setpgid.2:170
9174 msgid ""
9175 "The BSD-specific B<getpgrp>()  call, which takes a single I<pid> argument, "
9176 "is equivalent to I<getpgid(pid)>."
9177 msgstr ""
9178 "BSD 仕様の B<getpgrp>()  は I<pid> だけを引き数にとり、 I<getpgid(pid)> と等"
9179 "価である。"
9180
9181 #. type: Plain text
9182 #: build/C/man2/setpgid.2:179
9183 msgid ""
9184 "On success, B<setpgid>()  and B<setpgrp>()  return zero.  On error, -1 is "
9185 "returned, and I<errno> is set appropriately."
9186 msgstr ""
9187 "B<setpgid>()  と B<setpgrp>()  は成功した場合、ゼロを返す。エラーの場合は -1 "
9188 "を返し、 I<errno> が適切に設定される。"
9189
9190 #. type: Plain text
9191 #: build/C/man2/setpgid.2:183
9192 msgid "The POSIX.1 B<getpgrp>()  always returns the PGID of the caller."
9193 msgstr ""
9194 "POSIX.1 バージョンの B<getpgrp>()  は常に呼び出しプロセスの PGID を返す。"
9195
9196 #. type: Plain text
9197 #: build/C/man2/setpgid.2:191
9198 msgid ""
9199 "B<getpgid>(), and the BSD-specific B<getpgrp>()  return a process group on "
9200 "success.  On error, -1 is returned, and I<errno> is set appropriately."
9201 msgstr ""
9202 "B<getpgid>()  と BSD 仕様の B<getpgrp>()  は成功した場合プロセスグループを返"
9203 "す。 エラーの場合は -1 を返し、 I<errno> が適切に設定される。"
9204
9205 #. type: Plain text
9206 #: build/C/man2/setpgid.2:200
9207 msgid ""
9208 "An attempt was made to change the process group ID of one of the children of "
9209 "the calling process and the child had already performed an B<execve>(2)  "
9210 "(B<setpgid>(), B<setpgrp>())."
9211 msgstr ""
9212 "呼び出し元プロセスの子プロセスのプロセスグループ ID を変更しようとしたが、 す"
9213 "でにその子プロセスは B<execve>(2)  を実行していた。 (B<setpgid>(), B<setpgrp>"
9214 "())"
9215
9216 #. type: Plain text
9217 #: build/C/man2/setpgid.2:206
9218 msgid "I<pgid> is less than 0 (B<setpgid>(), B<setpgrp>())."
9219 msgstr "I<pgid> が 0 より小さい。 (B<setpgid>(), B<setpgrp>())"
9220
9221 #. type: Plain text
9222 #: build/C/man2/setpgid.2:215
9223 msgid ""
9224 "An attempt was made to move a process into a process group in a different "
9225 "session, or to change the process group ID of one of the children of the "
9226 "calling process and the child was in a different session, or to change the "
9227 "process group ID of a session leader (B<setpgid>(), B<setpgrp>())."
9228 msgstr ""
9229 "プロセスを異なるセッションのプロセスグループに移動させようとした。 または呼び"
9230 "出し元プロセスの子プロセスのプロセスグループ ID を変更しようと したが、その子"
9231 "プロセスは別のセッションだった。 またはセッションリーダーのプロセスグループ "
9232 "ID を変更しようとした。 (B<setpgid>(), B<setpgrp>())"
9233
9234 #. type: Plain text
9235 #: build/C/man2/setpgid.2:225
9236 msgid ""
9237 "For B<getpgid>(): I<pid> does not match any process.  For B<setpgid>(): "
9238 "I<pid> is not the calling process and not a child of the calling process."
9239 msgstr ""
9240 "B<getpgid>()  の場合: I<pid> がどのプロセスにも一致しない。 B<setpgid>()  の"
9241 "場合: I<pid> が呼び出し元のプロセスではなく、呼び出し元のプロセスの子プロセス"
9242 "でもない。"
9243
9244 #. type: Plain text
9245 #: build/C/man2/setpgid.2:231
9246 msgid ""
9247 "B<setpgid>()  and the version of B<getpgrp>()  with no arguments conform to "
9248 "POSIX.1-2001."
9249 msgstr ""
9250 "B<setpgid>()  と、引き数なしバージョンの B<getpgrp>()  は POSIX.1-2001 に準拠"
9251 "している。"
9252
9253 #. type: Plain text
9254 #: build/C/man2/setpgid.2:240
9255 msgid ""
9256 "POSIX.1-2001 also specifies B<getpgid>()  and the version of B<setpgrp>()  "
9257 "that takes no arguments.  (POSIX.1-2008 marks this B<setpgrp>()  "
9258 "specification as obsolete.)"
9259 msgstr ""
9260 "POSIX.1-2001 は、 B<getpgid>()  と、引き数なしバージョンの B<setpgrp>()  も規"
9261 "定している。 POSIX.1-2008 は、この B<setpgrp>()  の仕様を廃止予定としている。"
9262
9263 #. type: Plain text
9264 #: build/C/man2/setpgid.2:247
9265 msgid ""
9266 "The version of B<getpgrp>()  with one argument and the version of B<setpgrp>"
9267 "()  that takes two arguments derive from 4.2BSD, and are not specified by "
9268 "POSIX.1."
9269 msgstr ""
9270 "引き数 1 個バージョンの B<getpgrp>()  と引き数 2 個バージョンの B<setpgrp>"
9271 "()  は 4.2BSD に由来し、 POSIX.1 では規定されていない。"
9272
9273 #. type: Plain text
9274 #: build/C/man2/setpgid.2:253
9275 msgid ""
9276 "A child created via B<fork>(2)  inherits its parent's process group ID.  The "
9277 "PGID is preserved across an B<execve>(2)."
9278 msgstr ""
9279 "B<fork>(2)  で作成された子プロセスは、親プロセスの PGID を継承する。 "
9280 "B<execve>(2)  の前後で PGID は保存される。"
9281
9282 #. type: Plain text
9283 #: build/C/man2/setpgid.2:256
9284 msgid ""
9285 "Each process group is a member of a session and each process is a member of "
9286 "the session of which its process group is a member."
9287 msgstr ""
9288 "各プロセスグループはセッションのメンバーであり、各プロセスは そのプロセスグ"
9289 "ループが所属しているセッションのメンバーである。"
9290
9291 #. type: Plain text
9292 #: build/C/man2/setpgid.2:283
9293 msgid ""
9294 "A session can have a controlling terminal.  At any time, one (and only one) "
9295 "of the process groups in the session can be the foreground process group for "
9296 "the terminal; the remaining process groups are in the background.  If a "
9297 "signal is generated from the terminal (e.g., typing the interrupt key to "
9298 "generate B<SIGINT>), that signal is sent to the foreground process group.  "
9299 "(See B<termios>(3)  for a description of the characters that generate "
9300 "signals.)  Only the foreground process group may B<read>(2)  from the "
9301 "terminal; if a background process group tries to B<read>(2)  from the "
9302 "terminal, then the group is sent a B<SIGTSTP> signal, which suspends it.  "
9303 "The B<tcgetpgrp>(3)  and B<tcsetpgrp>(3)  functions are used to get/set the "
9304 "foreground process group of the controlling terminal."
9305 msgstr ""
9306 "セッションは制御端末 (controlling terminal) を持つことができる。 いつでも、"
9307 "セッションに所属するプロセスグループの一つ (だけ) が 端末のフォアグランドのプ"
9308 "ロセスグループになることができ、 残りのプロセスグループはバックグラウンドにな"
9309 "る。 端末からシグナルが生成された場合 (例えば、中断キーを叩いて B<SIGINT> が"
9310 "生成されるなど)、そのシグナルはフォアグラウンドのプロセスグループ に送られる "
9311 "(シグナルを生成する文字の説明は B<termios>(3)  を参照)。 フォアグラウンドのプ"
9312 "ロセスグループだけが端末からの B<read>(2)  ができる。 バックグラウンドのプロ"
9313 "セスグループが端末からの B<read>(2)  を行おうとした場合、そのプロセスグループ"
9314 "にはシグナル B<SIGTSTP> が送られ、そのプロセスグループは一時停止 (suspend) す"
9315 "る。 関数 B<tcgetpgrp>(3)  と B<tcsetpgrp>(3)  を使うと、制御端末のフォアグラ"
9316 "ウンドのプロセスグループを 取得/設定できる。"
9317
9318 #. type: Plain text
9319 #: build/C/man2/setpgid.2:291
9320 msgid ""
9321 "The B<setpgid>()  and B<getpgrp>()  calls are used by programs such as "
9322 "B<bash>(1)  to create process groups in order to implement shell job control."
9323 msgstr ""
9324 "B<setpgid>()  と B<getpgrp>()  は、 B<bash>(1)  のようなプログラムで、シェル"
9325 "のジョブ制御 (job control) の実装のための プロセスグループを作成するのに使わ"
9326 "れる。"
9327
9328 #. type: Plain text
9329 #: build/C/man2/setpgid.2:301
9330 msgid ""
9331 "If a session has a controlling terminal, and the B<CLOCAL> flag for that "
9332 "terminal is not set, and a terminal hangup occurs, then the session leader "
9333 "is sent a B<SIGHUP>.  If the session leader exits, then a B<SIGHUP> signal "
9334 "will also be sent to each process in the foreground process group of the "
9335 "controlling terminal."
9336 msgstr ""
9337 "セッションが制御端末を持っていて、その端末に対して B<CLOCAL> フラグが設定され"
9338 "ておらず、端末のハングアップが起きた場合、 セッション・リーダーに B<SIGHUP> "
9339 "が送られる。 セッション・リーダーが終了した場合には、その制御端末の フォアグ"
9340 "ランドのプロセスグループに所属する各プロセスにも B<SIGHUP> シグナルが送られ"
9341 "る。"
9342
9343 #.  exit.3 refers to the following text:
9344 #. type: Plain text
9345 #: build/C/man2/setpgid.2:315
9346 msgid ""
9347 "If the exit of the process causes a process group to become orphaned, and if "
9348 "any member of the newly orphaned process group is stopped, then a B<SIGHUP> "
9349 "signal followed by a B<SIGCONT> signal will be sent to each process in the "
9350 "newly orphaned process group.  An orphaned process group is one in which the "
9351 "parent of every member of process group is either itself also a member of "
9352 "the process group or is a member of a process group in a different session "
9353 "(see also B<credentials>(7))."
9354 msgstr ""
9355 "プロセスの終了によってプロセスグループが孤児 (orphaned) になった際に、 その新"
9356 "たに孤児になったプロセスグループに停止しているメンバーがいれば、 その孤児に"
9357 "なったプロセスグループに属す全てのプロセスに B<SIGHUP> シグナルに続けて "
9358 "B<SIGCONT> シグナルが送られる。 孤児になった (orphaned) プロセスグループと"
9359 "は、 そのプロセスグループの全てのメンバーについて、メンバーの親プロセスが、 "
9360 "親プロセス自身もそのプロセスグループのメンバーか、 別のセッションに属すプロセ"
9361 "スグループのメンバーのいずれかであるような、 プロセスグループのことである。"
9362
9363 #. type: Plain text
9364 #: build/C/man2/setpgid.2:322
9365 msgid ""
9366 "B<getuid>(2), B<setsid>(2), B<tcgetpgrp>(3), B<tcsetpgrp>(3), B<termios>(3), "
9367 "B<credentials>(7)"
9368 msgstr ""
9369 "B<getuid>(2), B<setsid>(2), B<tcgetpgrp>(3), B<tcsetpgrp>(3), B<termios>(3), "
9370 "B<credentials>(7)"
9371
9372 #. type: TH
9373 #: build/C/man2/setresuid.2:26
9374 #, no-wrap
9375 msgid "SETRESUID"
9376 msgstr "SETRESUID"
9377
9378 #. type: Plain text
9379 #: build/C/man2/setresuid.2:29
9380 msgid "setresuid, setresgid - set real, effective and saved user or group ID"
9381 msgstr "setresuid, setresgid - ユーザやグループの 実、実効、保存 ID を設定する"
9382
9383 #. type: Plain text
9384 #: build/C/man2/setresuid.2:35
9385 msgid "B<int setresuid(uid_t >I<ruid>B<, uid_t >I<euid>B<, uid_t >I<suid>B<);>"
9386 msgstr ""
9387 "B<int setresuid(uid_t >I<ruid>B<, uid_t >I<euid>B<, uid_t >I<suid>B<);>"
9388
9389 #. type: Plain text
9390 #: build/C/man2/setresuid.2:37
9391 msgid "B<int setresgid(gid_t >I<rgid>B<, gid_t >I<egid>B<, gid_t >I<sgid>B<);>"
9392 msgstr ""
9393 "B<int setresgid(gid_t >I<rgid>B<, gid_t >I<egid>B<, gid_t >I<sgid>B<);>"
9394
9395 #. type: Plain text
9396 #: build/C/man2/setresuid.2:41
9397 msgid ""
9398 "B<setresuid>()  sets the real user ID, the effective user ID, and the saved "
9399 "set-user-ID of the calling process."
9400 msgstr ""
9401 "B<setresuid>()  は呼び出し元のプロセスの実 (real) ユーザーID、実効 "
9402 "(effective) ユーザーID、 保存 set-user-ID を設定する。"
9403
9404 #. type: Plain text
9405 #: build/C/man2/setresuid.2:47
9406 msgid ""
9407 "Unprivileged user processes may change the real UID, effective UID, and "
9408 "saved set-user-ID, each to one of: the current real UID, the current "
9409 "effective UID or the current saved set-user-ID."
9410 msgstr ""
9411 "非特権ユーザーのプロセスは、その実 UID、実効 UID、保存 set-user-ID を、 現在"
9412 "の実 UID、現在の実効 UID、現在の保存 set-user-ID のどれかに変更することができ"
9413 "る:"
9414
9415 #. type: Plain text
9416 #: build/C/man2/setresuid.2:51
9417 msgid ""
9418 "Privileged processes (on Linux, those having the B<CAP_SETUID> capability)  "
9419 "may set the real UID, effective UID, and saved set-user-ID to arbitrary "
9420 "values."
9421 msgstr ""
9422 "特権プロセス (Linux では B<CAP_SETUID> ケーパビリティ (capability) を持つ プ"
9423 "ロセス) は、実 UID、実効 UID、保存 set-user-ID を任意の値に設定できる。"
9424
9425 #. type: Plain text
9426 #: build/C/man2/setresuid.2:53
9427 msgid ""
9428 "If one of the arguments equals -1, the corresponding value is not changed."
9429 msgstr "引き数のどれかが -1 の場合はその値は変更されずに残される。"
9430
9431 #. type: Plain text
9432 #: build/C/man2/setresuid.2:57
9433 msgid ""
9434 "Regardless of what changes are made to the real UID, effective UID, and "
9435 "saved set-user-ID, the file system UID is always set to the same value as "
9436 "the (possibly new) effective UID."
9437 msgstr ""
9438 "実 UID、実効 UID、保存 set-user-ID にどんな変更が行われたかに関わらず、 ファ"
9439 "イルシステム UID は常に実効 UID (可能であれば変更後の新しい実効 UID)  と同じ"
9440 "値に設定される。"
9441
9442 #. type: Plain text
9443 #: build/C/man2/setresuid.2:64
9444 msgid ""
9445 "Completely analogously, B<setresgid>()  sets the real GID, effective GID, "
9446 "and saved set-group-ID of the calling process (and always modifies the file "
9447 "system GID to be the same as the effective GID), with the same restrictions "
9448 "for unprivileged processes."
9449 msgstr ""
9450 "全く同じように、 B<setresgid>()  は呼び出し元のプロセスの実 GID、実効 GID、保"
9451 "存 set-group-ID を設定する (さらにファイルシステム GID を実効 GID と同じ値に"
9452 "修正する)。 非特権プロセスは同様の制限を受ける。"
9453
9454 #. type: TP
9455 #: build/C/man2/setresuid.2:70 build/C/man2/setuid.2:74
9456 #, no-wrap
9457 msgid "B<EAGAIN>"
9458 msgstr "B<EAGAIN>"
9459
9460 #. type: Plain text
9461 #: build/C/man2/setresuid.2:77
9462 msgid ""
9463 "I<uid> does not match the current UID and this call would bring that user ID "
9464 "over its B<RLIMIT_NPROC> resource limit."
9465 msgstr ""
9466 "I<uid> が現在のユーザー ID と違う値で、 この呼び出しにより ユーザー ID が リ"
9467 "ソース上限 B<RLIMIT_NPROC> を超えてしまう。"
9468
9469 #. type: Plain text
9470 #: build/C/man2/setresuid.2:81
9471 msgid ""
9472 "The calling process is not privileged (did not have the B<CAP_SETUID> "
9473 "capability) and tried to change the IDs to values that are not permitted."
9474 msgstr ""
9475 "呼び出したプロセスが特権を持たないのに (B<CAP_SETUID> ケーパビリティを持たな"
9476 "いのに)、 ID を許されていない値に変更しようとした。"
9477
9478 #. type: Plain text
9479 #: build/C/man2/setresuid.2:83
9480 msgid "These calls are available under Linux since Linux 2.1.44."
9481 msgstr "Linux ではバージョン 2.1.44 より利用可能になった。"
9482
9483 #. type: Plain text
9484 #: build/C/man2/setresuid.2:90
9485 msgid ""
9486 "Under HP-UX and FreeBSD, the prototype is found in I<E<lt>unistd.hE<gt>>.  "
9487 "Under Linux the prototype is provided by glibc since version 2.3.2."
9488 msgstr ""
9489 "HP-UX や FreeBSD では I<E<lt>unistd.hE<gt>> にプロトタイプが存在する。 \n"
9490 "Linux では、glibc 2.3.2 以降で プロトタイプが提供されている。"
9491
9492 #. type: Plain text
9493 #: build/C/man2/setresuid.2:106
9494 msgid ""
9495 "The original Linux B<setresuid>()  and B<setresgid>()  system calls "
9496 "supported only 16-bit user and group IDs.  Subsequently, Linux 2.4 added "
9497 "B<setresuid32>()  and B<setresgid32>(), supporting 32-bit IDs.  The glibc "
9498 "B<setresuid>()  and B<setresgid>()  wrapper functions transparently deal "
9499 "with the variations across kernel versions."
9500 msgstr ""
9501 "元々の Linux の B<setresuid>() と B<setresgid>() システムコールは\n"
9502 "16 ビットのグループ ID だけに対応していた。\n"
9503 "その後、Linux 2.4 で、32 ビットの ID に対応した\n"
9504 "B<setresuid32>() と B<setresgid32>() が追加された。\n"
9505 "glibc の B<setresuid>() と B<setresgid>() のラッパー関数は\n"
9506 "カーネルバージョンによるこの違いを吸収している。"
9507
9508 #. type: Plain text
9509 #: build/C/man2/setresuid.2:115
9510 msgid ""
9511 "B<getresuid>(2), B<getuid>(2), B<setfsgid>(2), B<setfsuid>(2), B<setreuid>"
9512 "(2), B<setuid>(2), B<capabilities>(7), B<credentials>(7)"
9513 msgstr ""
9514 "B<getresuid>(2), B<getuid>(2), B<setfsgid>(2), B<setfsuid>(2), B<setreuid>"
9515 "(2), B<setuid>(2), B<capabilities>(7), B<credentials>(7)"
9516
9517 #. type: TH
9518 #: build/C/man2/setreuid.2:43
9519 #, no-wrap
9520 msgid "SETREUID"
9521 msgstr "SETREUID"
9522
9523 #. type: Plain text
9524 #: build/C/man2/setreuid.2:46
9525 msgid "setreuid, setregid - set real and/or effective user or group ID"
9526 msgstr ""
9527 "setreuid, setregid - 実 (real) と実効 (effective) ユーザー (グループ) ID を設"
9528 "定する"
9529
9530 #. type: Plain text
9531 #: build/C/man2/setreuid.2:52
9532 msgid "B<int setreuid(uid_t >I<ruid>B<, uid_t >I<euid>B<);>"
9533 msgstr "B<int setreuid(uid_t >I<ruid>B<, uid_t >I<euid>B<);>"
9534
9535 #. type: Plain text
9536 #: build/C/man2/setreuid.2:54
9537 msgid "B<int setregid(gid_t >I<rgid>B<, gid_t >I<egid>B<);>"
9538 msgstr "B<int setregid(gid_t >I<rgid>B<, gid_t >I<egid>B<);>"
9539
9540 #. type: Plain text
9541 #: build/C/man2/setreuid.2:62
9542 msgid "B<setreuid>(), B<setregid>():"
9543 msgstr "B<setreuid>(), B<setregid>():"
9544
9545 #. type: Plain text
9546 #: build/C/man2/setreuid.2:66
9547 msgid ""
9548 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
9549 "_XOPEN_SOURCE_EXTENDED"
9550 msgstr ""
9551 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
9552 "_XOPEN_SOURCE_EXTENDED"
9553
9554 #. type: Plain text
9555 #: build/C/man2/setreuid.2:71
9556 msgid "B<setreuid>()  sets real and effective user IDs of the calling process."
9557 msgstr ""
9558 "B<setreuid>()  は呼び出し元のプロセスの実 (real) ユーザー ID と 実効 "
9559 "(effective) ユーザー ID を設定する。"
9560
9561 #. type: Plain text
9562 #: build/C/man2/setreuid.2:74
9563 msgid ""
9564 "Supplying a value of -1 for either the real or effective user ID forces the "
9565 "system to leave that ID unchanged."
9566 msgstr ""
9567 "実ユーザー ID や実効ユーザー ID に -1 を与えた場合、 システムはその ID を変更"
9568 "しない。"
9569
9570 #. type: Plain text
9571 #: build/C/man2/setreuid.2:77
9572 msgid ""
9573 "Unprivileged processes may only set the effective user ID to the real user "
9574 "ID, the effective user ID, or the saved set-user-ID."
9575 msgstr ""
9576 "非特権プロセスは実効ユーザー ID を実ユーザー ID または実効ユーザー ID または "
9577 "保存 set-user-ID にしか設定できない。"
9578
9579 #. type: Plain text
9580 #: build/C/man2/setreuid.2:80
9581 msgid ""
9582 "Unprivileged users may only set the real user ID to the real user ID or the "
9583 "effective user ID."
9584 msgstr ""
9585 "非特権ユーザーは、実ユーザー ID を実ユーザー ID または 実効ユーザー ID にしか"
9586 "設定できない。"
9587
9588 #. type: Plain text
9589 #: build/C/man2/setreuid.2:84
9590 msgid ""
9591 "If the real user ID is set or the effective user ID is set to a value not "
9592 "equal to the previous real user ID, the saved set-user-ID will be set to the "
9593 "new effective user ID."
9594 msgstr ""
9595 "実ユーザーID が設定されたり、実効ユーザーID が前の実ユーザーID と 異った値に"
9596 "設定された場合、保存 set-user-ID には新しい実効ユーザーID の値が設定される。"
9597
9598 #. type: Plain text
9599 #: build/C/man2/setreuid.2:89
9600 msgid ""
9601 "Completely analogously, B<setregid>()  sets real and effective group ID's of "
9602 "the calling process, and all of the above holds with \"group\" instead of "
9603 "\"user\"."
9604 msgstr ""
9605 "これと全く同様に、 B<setregid>()  は呼び出し元のプロセスの実グループ ID と実"
9606 "効グループ ID を設定し、 上記の説明で「ユーザー」を「グループ」に読み替えたこ"
9607 "とが成り立つ。"
9608
9609 #. type: Plain text
9610 #: build/C/man2/setreuid.2:111
9611 msgid ""
9612 "The calling process is not privileged (Linux: does not have the "
9613 "B<CAP_SETUID> capability in the case of B<setreuid>(), or the B<CAP_SETGID> "
9614 "capability in the case of B<setregid>())  and a change other than (i)  "
9615 "swapping the effective user (group) ID with the real user (group) ID, or "
9616 "(ii) setting one to the value of the other or (iii) setting the effective "
9617 "user (group) ID to the value of the saved set-user-ID (saved set-group-ID) "
9618 "was specified."
9619 msgstr ""
9620 "呼び出し元のプロセスに特権がなく (Linux では B<setreuid>()  の場合に "
9621 "B<CAP_SETUID> ケーパビリティ (capability) がなく、 B<setregid>()  の場合に "
9622 "B<CAP_SETGID> ケーパビリティがない)、 以下のいずれでもない変更が指定された: "
9623 "(i) 実効ユーザー (グループ) ID と実ユーザー (グループ) ID を入れ換える。 "
9624 "(ii) 片方の値を他方に設定する。 (iii) 実効ユーザー (グループ) ID に保存 set-"
9625 "user-ID (保存 set-group-ID)  の値を設定する。"
9626
9627 #. type: Plain text
9628 #: build/C/man2/setreuid.2:117
9629 msgid ""
9630 "POSIX.1-2001, 4.3BSD (the B<setreuid>()  and B<setregid>()  function calls "
9631 "first appeared in 4.2BSD)."
9632 msgstr ""
9633 "POSIX.1-2001, 4.3BSD (B<setreuid>()  と B<setregid>()  関数コールは 4.2BSD で"
9634 "登場した)。"
9635
9636 #. type: Plain text
9637 #: build/C/man2/setreuid.2:121
9638 msgid ""
9639 "Setting the effective user (group) ID to the saved set-user-ID (saved set-"
9640 "group-ID) is possible since Linux 1.1.37 (1.1.38)."
9641 msgstr ""
9642 "実効ユーザー (グループ) ID を保存ユーザー (グループ) ID に 設定することが、"
9643 "Linux 1.1.37 (1.1.38) から可能になった。"
9644
9645 #. type: Plain text
9646 #: build/C/man2/setreuid.2:138
9647 msgid ""
9648 "POSIX.1 does not specify all of possible ID changes that are permitted on "
9649 "Linux for an unprivileged process.  For B<setreuid>(), the effective user ID "
9650 "can be made the same as the real user ID or the save set-user-ID, and it is "
9651 "unspecified whether unprivileged processes may set the real user ID to the "
9652 "real user ID, the effective user ID, or the saved set-user-ID.  For "
9653 "B<setregid>(), the real group ID can be changed to the value of the saved "
9654 "set-group-ID, and the effective group ID can be changed to the value of the "
9655 "real group ID or the saved set-group-ID.  The precise details of what ID "
9656 "changes are permitted vary across implementations."
9657 msgstr ""
9658 "POSIX.1 では、非特権プロセスに対して Linux 上で認められている ID の変更の 全"
9659 "パターンを規定しているわけではない。 B<setreuid>()  では、実効ユーザ ID を実"
9660 "ユーザ ID もしくは保存 set-user-ID と 同じ値にすることができるが、 非特権プロ"
9661 "セスが実ユーザ ID を実ユーザ ID、実効ユーザ ID、 保存 set-user-ID のどの値に"
9662 "も設定できるかは規定されていない。 B<setregid>()  では、実グループ ID を保存 "
9663 "set-group-ID と同じ値に変更でき、 実効グループ ID を実グループ ID や保存 set-"
9664 "group-ID と同じ値に変更できる。 どのような ID の変更が認められているかの正確"
9665 "な詳細は 実装ごとに異なる。"
9666
9667 #. type: Plain text
9668 #: build/C/man2/setreuid.2:141
9669 msgid ""
9670 "POSIX.1 makes no specification about the effect of these calls on the saved "
9671 "set-user-ID and saved set-group-ID."
9672 msgstr ""
9673 "POSIX.1 では、これらのシステムコールが保存 set-user-ID や 保存 set-group-ID "
9674 "に与える影響については規定していない。"
9675
9676 #. type: Plain text
9677 #: build/C/man2/setreuid.2:157
9678 msgid ""
9679 "The original Linux B<setreuid>()  and B<setregid>()  system calls supported "
9680 "only 16-bit user and group IDs.  Subsequently, Linux 2.4 added B<setreuid32>"
9681 "()  and B<setregid32>(), supporting 32-bit IDs.  The glibc B<setreuid>()  "
9682 "and B<setregid>()  wrapper functions transparently deal with the variations "
9683 "across kernel versions."
9684 msgstr ""
9685 "元々の Linux の B<setreuid>() と B<setregid>() システムコールは\n"
9686 "16 ビットのグループ ID だけに対応していた。\n"
9687 "その後、Linux 2.4 で、32 ビットの ID に対応した\n"
9688 "B<setreuid32>() と B<setregid32>() が追加された。\n"
9689 "glibc の B<setreuid>() と B<setregid>() のラッパー関数は\n"
9690 "カーネルバージョンによるこの違いを吸収している。"
9691
9692 #. type: Plain text
9693 #: build/C/man2/setreuid.2:165
9694 msgid ""
9695 "B<getgid>(2), B<getuid>(2), B<seteuid>(2), B<setgid>(2), B<setresuid>(2), "
9696 "B<setuid>(2), B<capabilities>(7)"
9697 msgstr ""
9698 "B<getgid>(2), B<getuid>(2), B<seteuid>(2), B<setgid>(2), B<setresuid>(2), "
9699 "B<setuid>(2), B<capabilities>(7)"
9700
9701 #. type: TH
9702 #: build/C/man2/setsid.2:29
9703 #, no-wrap
9704 msgid "SETSID"
9705 msgstr "SETSID"
9706
9707 #. type: TH
9708 #: build/C/man2/setsid.2:29
9709 #, no-wrap
9710 msgid "2008-12-03"
9711 msgstr "2008-12-03"
9712
9713 #. type: Plain text
9714 #: build/C/man2/setsid.2:32
9715 msgid "setsid - creates a session and sets the process group ID"
9716 msgstr "setsid - セッション (session) を作成し、プロセスグループ ID を設定する"
9717
9718 #. type: Plain text
9719 #: build/C/man2/setsid.2:37
9720 msgid "B<pid_t setsid(void);>"
9721 msgstr "B<pid_t setsid(void);>"
9722
9723 #. type: Plain text
9724 #: build/C/man2/setsid.2:50
9725 msgid ""
9726 "B<setsid>()  creates a new session if the calling process is not a process "
9727 "group leader.  The calling process is the leader of the new session, the "
9728 "process group leader of the new process group, and has no controlling tty.  "
9729 "The process group ID and session ID of the calling process are set to the "
9730 "PID of the calling process.  The calling process will be the only process in "
9731 "this new process group and in this new session."
9732 msgstr ""
9733 "B<setsid>()  は呼び出したプロセスがプロセスグループ・リーダー (process group "
9734 "leader) でなければ、新しいセッションを作成する。 呼び出したプロセスは新しい"
9735 "セッションのリーダー、新しいプロセスグループの プロセスグループ・リーダーとな"
9736 "り、tty の制御を持たない。 呼び出したプロセスのプロセスグループ ID とセッショ"
9737 "ン ID には、 呼び出したプロセスの PID が設定される。呼び出したプロセスはこの "
9738 "新しいプロセスグループ、この新しいセッションの唯一のプロセスとなる。"
9739
9740 #. type: Plain text
9741 #: build/C/man2/setsid.2:57
9742 msgid ""
9743 "On success, the (new) session ID of the calling process is returned.  On "
9744 "error, I<(pid_t)\\ -1> is returned, and I<errno> is set to indicate the "
9745 "error."
9746 msgstr ""
9747 "成功すると、呼び出したプロセスの (新しい) セッション ID が返される。 エラーの"
9748 "場合は、 I<(pid_t)\\ -1> が返され、 I<error> にエラーを示す値が設定される。"
9749
9750 #. type: Plain text
9751 #: build/C/man2/setsid.2:64
9752 msgid ""
9753 "The process group ID of any process equals the PID of the calling process.  "
9754 "Thus, in particular, B<setsid>()  fails if the calling process is already a "
9755 "process group leader."
9756 msgstr ""
9757 "いずれかのプロセスのプロセスグループ ID が、 呼び出したプロセスの PID と等し"
9758 "い。 これは、呼び出したプロセスが既にプロセスリーダーの場合には B<setsid>()  "
9759 "は失敗することを意味する。"
9760
9761 #. type: Plain text
9762 #: build/C/man2/setsid.2:72
9763 msgid ""
9764 "A child created via B<fork>(2)  inherits its parent's session ID.  The "
9765 "session ID is preserved across an B<execve>(2)."
9766 msgstr ""
9767 "B<fork>(2)  で作成された子プロセスは、親プロセスのセッション ID を継承する。 "
9768 "B<execve>(2)  の前後でセッション ID は保存される。"
9769
9770 #. type: Plain text
9771 #: build/C/man2/setsid.2:83
9772 msgid ""
9773 "A process group leader is a process with process group ID equal to its PID.  "
9774 "In order to be sure that B<setsid>()  will succeed, B<fork>(2)  and B<_exit>"
9775 "(2), and have the child do B<setsid>()."
9776 msgstr ""
9777 "プロセスグループ・リーダーとは、そのプロセスのプロセスグループ ID が その "
9778 "PID に等しいプロセスである。 B<setsid>()  を確実に成功させるためには、 "
9779 "B<fork>(2)  して B<exit>(2)  し、子プロセスで B<setsid>()  を行なえば良い。"
9780
9781 #. type: Plain text
9782 #: build/C/man2/setsid.2:89
9783 msgid ""
9784 "B<getsid>(2), B<setpgid>(2), B<setpgrp>(2), B<tcgetsid>(3), B<credentials>(7)"
9785 msgstr ""
9786 "B<getsid>(2), B<setpgid>(2), B<setpgrp>(2), B<tcgetsid>(3), B<credentials>(7)"
9787
9788 #. type: TH
9789 #: build/C/man2/setuid.2:28
9790 #, no-wrap
9791 msgid "SETUID"
9792 msgstr "SETUID"
9793
9794 #. type: Plain text
9795 #: build/C/man2/setuid.2:31
9796 msgid "setuid - set user identity"
9797 msgstr "setuid - ユーザー識別 (identity) を設定する"
9798
9799 #. type: Plain text
9800 #: build/C/man2/setuid.2:37
9801 msgid "B<int setuid(uid_t >I<uid>B<);>"
9802 msgstr "B<int setuid(uid_t >I<uid>B<);>"
9803
9804 #. type: Plain text
9805 #: build/C/man2/setuid.2:42
9806 msgid ""
9807 "B<setuid>()  sets the effective user ID of the calling process.  If the "
9808 "effective UID of the caller is root, the real UID and saved set-user-ID are "
9809 "also set."
9810 msgstr ""
9811 "B<setuid>()  は呼び出し元のプロセスの実効 (effective) ユーザー ID を設定す"
9812 "る。 もし呼び出し元プロセスの実効 UID が root ならば、 実 (real) UID と保存 "
9813 "(saved) set-user-ID も設定される。"
9814
9815 #. type: Plain text
9816 #: build/C/man2/setuid.2:51
9817 msgid ""
9818 "Under Linux, B<setuid>()  is implemented like the POSIX version with the "
9819 "B<_POSIX_SAVED_IDS> feature.  This allows a set-user-ID (other than root) "
9820 "program to drop all of its user privileges, do some un-privileged work, and "
9821 "then reengage the original effective user ID in a secure manner."
9822 msgstr ""
9823 "Linux では、 B<setuid>()  は B<_POSIX_SAVED_IDS> をもった POSIX 版のように実"
9824 "装されている。 これは (ルート以外の) set-user-ID プログラムにそのユーザーの特"
9825 "権を 全て与え、特権の必要ない仕事をし、本来の実効ユーザー ID に 安全な方法で"
9826 "再び戻すことを許す。"
9827
9828 #. type: Plain text
9829 #: build/C/man2/setuid.2:61
9830 msgid ""
9831 "If the user is root or the program is set-user-ID-root, special care must be "
9832 "taken.  The B<setuid>()  function checks the effective user ID of the caller "
9833 "and if it is the superuser, all process-related user ID's are set to "
9834 "I<uid>.  After this has occurred, it is impossible for the program to regain "
9835 "root privileges."
9836 msgstr ""
9837 "ユーザーが root またはプログラムが root に set-user-ID されているならば、 特"
9838 "別の注意が払われる。 B<setuid>()  関数は呼び出し者の実効ユーザー ID をチェッ"
9839 "クし、 それがスーパーユーザーならば、 プロセスに関連する全てのユーザー ID に "
9840 "I<uid> を設定する。 これが行なわれた後にはプログラムが再びルートの特権を得る"
9841 "ことはできない。"
9842
9843 #. type: Plain text
9844 #: build/C/man2/setuid.2:68
9845 msgid ""
9846 "Thus, a set-user-ID-root program wishing to temporarily drop root "
9847 "privileges, assume the identity of an unprivileged user, and then regain "
9848 "root privileges afterward cannot use B<setuid>().  You can accomplish this "
9849 "with B<seteuid>(2)."
9850 msgstr ""
9851 "したがって、set-user-ID-root プログラムで、一時的にルート特権を解除し、 非特"
9852 "権ユーザであるかのように振舞い、後でルート権限をもう一度得ようと する場合に"
9853 "は、 B<setuid>()  を使うことができない。その場合には、 B<seteuid>(2)  を使う"
9854 "必要がある。"
9855
9856 #. type: Plain text
9857 #: build/C/man2/setuid.2:83
9858 msgid ""
9859 "The I<uid> does not match the current uid and I<uid> brings process over its "
9860 "B<RLIMIT_NPROC> resource limit."
9861 msgstr ""
9862 "I<uid> が現在のユーザー ID とマッチせず、この I<uid> によってプロセスがリソー"
9863 "ス上限 B<RLIMIT_NPROC> を超えた。"
9864
9865 #. type: Plain text
9866 #: build/C/man2/setuid.2:90
9867 msgid ""
9868 "The user is not privileged (Linux: does not have the B<CAP_SETUID> "
9869 "capability) and I<uid> does not match the real UID or saved set-user-ID of "
9870 "the calling process."
9871 msgstr ""
9872 "ユーザーが特権を持たず (Linux では B<CAP_SETUID> ケーパビリティ (capability) "
9873 "を持たず)、 I<uid> が呼び出し元プロセスの実 UID または保存 set-user-ID と一致"
9874 "しない。"
9875
9876 #.  SVr4 documents an additional EINVAL error condition.
9877 #. type: Plain text
9878 #: build/C/man2/setuid.2:95
9879 msgid ""
9880 "SVr4, POSIX.1-2001.  Not quite compatible with the 4.4BSD call, which sets "
9881 "all of the real, saved, and effective user IDs."
9882 msgstr ""
9883 "SVr4, POSIX.1-2001.  4.4BSD のコールとは完全な互換性はない、 BSD のコールは"
9884 "実 (real)、保存 (saved)、実効 (effective) ID の全てを設定する。"
9885
9886 #. type: Plain text
9887 #: build/C/man2/setuid.2:103
9888 msgid ""
9889 "Linux has the concept of the file system user ID, normally equal to the "
9890 "effective user ID.  The B<setuid>()  call also sets the file system user ID "
9891 "of the calling process.  See B<setfsuid>(2)."
9892 msgstr ""
9893 "Linux はファイルシステム・ユーザー ID の概念を持つ。\n"
9894 "通常、これは実効ユーザー ID に等しい。 \n"
9895 "B<setuid>()  コールは呼び出し元のプロセスの\n"
9896 "ファイルシステム・ユーザー ID も設定する。 \n"
9897 "B<setfsuid>(2) も参照すること。"
9898
9899 #. type: Plain text
9900 #: build/C/man2/setuid.2:108
9901 msgid ""
9902 "If I<uid> is different from the old effective UID, the process will be "
9903 "forbidden from leaving core dumps."
9904 msgstr ""
9905 "I<uid> が前の実効 UID と異っていた場合、\n"
9906 "プロセスはコアダンプすることを禁止される。"
9907
9908 #. type: Plain text
9909 #: build/C/man2/setuid.2:118
9910 msgid ""
9911 "The original Linux B<setuid>()  system call supported only 16-bit user IDs.  "
9912 "Subsequently, Linux 2.4 added B<setuid32>()  supporting 32-bit IDs.  The "
9913 "glibc B<setuid>()  wrapper function transparently deals with the variation "
9914 "across kernel versions."
9915 msgstr ""
9916 "元々の Linux の B<setuid>() システムコールは\n"
9917 "16 ビットのグループ ID だけに対応していた。\n"
9918 "その後、Linux 2.4 で、32 ビットの ID に対応した\n"
9919 "B<setuid32>() が追加された。\n"
9920 "glibc の B<setuid>() のラッパー関数は\n"
9921 "カーネルバージョンによるこの違いを吸収している。"
9922
9923 #. type: Plain text
9924 #: build/C/man2/setuid.2:125
9925 msgid ""
9926 "B<getuid>(2), B<seteuid>(2), B<setfsuid>(2), B<setreuid>(2), B<capabilities>"
9927 "(7), B<credentials>(7)"
9928 msgstr ""
9929 "B<getuid>(2), B<seteuid>(2), B<setfsuid>(2), B<setreuid>(2), B<capabilities>"
9930 "(7), B<credentials>(7)"
9931
9932 #. type: TH
9933 #: build/C/man7/svipc.7:25
9934 #, no-wrap
9935 msgid "SVIPC"
9936 msgstr "SVIPC"
9937
9938 #. type: TH
9939 #: build/C/man7/svipc.7:25
9940 #, no-wrap
9941 msgid "2009-01-26"
9942 msgstr "2009-01-26"
9943
9944 #. type: Plain text
9945 #: build/C/man7/svipc.7:28
9946 msgid "svipc - System V interprocess communication mechanisms"
9947 msgstr "svipc - System V プロセス間通信機構"
9948
9949 #. type: Plain text
9950 #: build/C/man7/svipc.7:35
9951 #, no-wrap
9952 msgid ""
9953 "B<#include E<lt>sys/types.hE<gt>>\n"
9954 "B<#include E<lt>sys/ipc.hE<gt>>\n"
9955 "B<#include E<lt>sys/msg.hE<gt>>\n"
9956 "B<#include E<lt>sys/sem.hE<gt>>\n"
9957 "B<#include E<lt>sys/shm.hE<gt>>\n"
9958 msgstr ""
9959 "B<#include E<lt>sys/types.hE<gt>>\n"
9960 "B<#include E<lt>sys/ipc.hE<gt>>\n"
9961 "B<#include E<lt>sys/msg.hE<gt>>\n"
9962 "B<#include E<lt>sys/sem.hE<gt>>\n"
9963 "B<#include E<lt>sys/shm.hE<gt>>\n"
9964
9965 #. type: Plain text
9966 #: build/C/man7/svipc.7:43
9967 msgid ""
9968 "This manual page refers to the Linux implementation of the System V "
9969 "interprocess communication (IPC) mechanisms: message queues, semaphore sets, "
9970 "and shared memory segments.  In the following, the word I<resource> means an "
9971 "instantiation of one among such mechanisms."
9972 msgstr ""
9973 "このマニュアルページは System V プロセス間通信 (interprocess communication; "
9974 "IPC) 機構の Linux に おける実装を説明する。 このプロセス間通信機構には、 メッ"
9975 "セージキュー (message queue)、セマフォー集合 (semaphore set)、 共有メモリセグ"
9976 "メント (shared memory segment) などがある。以下で I<資源 (resource)> という用"
9977 "語を使用した場合にはこれらの機構のどれかを意味する。"
9978
9979 #. type: SS
9980 #: build/C/man7/svipc.7:43
9981 #, no-wrap
9982 msgid "Resource Access Permissions"
9983 msgstr "資源へのアクセス許可"
9984
9985 #. type: Plain text
9986 #: build/C/man7/svipc.7:53
9987 msgid ""
9988 "For each resource, the system uses a common structure of type I<struct "
9989 "ipc_perm> to store information needed in determining permissions to perform "
9990 "an IPC operation.  The I<ipc_perm> structure, defined by the I<E<lt>sys/ipc."
9991 "hE<gt>> system header file, includes the following members:"
9992 msgstr ""
9993 "システムのそれぞれの資源は、IPC への操作を許可するかどうかを決定する ための情"
9994 "報を共通の構造体 I<struct ipc_perm> に格納して使用する。 I<ipc_perm> 構造体"
9995 "は、ヘッダーファイルの I<E<lt>sys/ipc.hE<gt>> に定義されており、以下のメン"
9996 "バーが含まれている:"
9997
9998 #. type: Plain text
9999 #: build/C/man7/svipc.7:63
10000 #, no-wrap
10001 msgid ""
10002 "struct ipc_perm {\n"
10003 "    uid_t          cuid;   /* creator user ID */\n"
10004 "    gid_t          cgid;   /* creator group ID */\n"
10005 "    uid_t          uid;    /* owner user ID */\n"
10006 "    gid_t          gid;    /* owner group ID */\n"
10007 "    unsigned short mode;   /* r/w permissions */\n"
10008 "};\n"
10009 msgstr ""
10010 "struct ipc_perm {\n"
10011 "    uid_t          cuid;   /* 作成者のユーザーID */\n"
10012 "    gid_t          cgid;   /* 作成者のグループID */\n"
10013 "    uid_t          uid;    /* 所有者のユーザーID */\n"
10014 "    gid_t          gid;    /* 所有者のグループID */\n"
10015 "    unsigned short mode;   /* 読み書きの許可 */\n"
10016 "};\n"
10017
10018 #. type: Plain text
10019 #: build/C/man7/svipc.7:73
10020 msgid ""
10021 "The I<mode> member of the I<ipc_perm> structure defines, with its lower 9 "
10022 "bits, the access permissions to the resource for a process executing an IPC "
10023 "system call.  The permissions are interpreted as follows:"
10024 msgstr ""
10025 "I<ipc_perm> 構造体の I<mode> メンバーは以下の 9 ビットで、プロセスの IPC シス"
10026 "テムコール による資源へのアクセス許可を定義する。 許可は以下のように解釈され"
10027 "る:"
10028
10029 #. type: Plain text
10030 #: build/C/man7/svipc.7:77
10031 #, no-wrap
10032 msgid ""
10033 "    0400    Read by user.\n"
10034 "    0200    Write by user.\n"
10035 msgstr ""
10036 "    0400    ユーザーによる読み込み。\n"
10037 "    0200    ユーザーによる書き込み。\n"
10038
10039 #. type: Plain text
10040 #: build/C/man7/svipc.7:80
10041 #, no-wrap
10042 msgid ""
10043 "    0040    Read by group.\n"
10044 "    0020    Write by group.\n"
10045 msgstr ""
10046 "    0040    グループによる読み込み。\n"
10047 "    0020    グループによる書き込み。\n"
10048
10049 #. type: Plain text
10050 #: build/C/man7/svipc.7:83
10051 #, no-wrap
10052 msgid ""
10053 "    0004    Read by others.\n"
10054 "    0002    Write by others.\n"
10055 msgstr ""
10056 "    0004    他人による読み込み。\n"
10057 "    0002    他人による書き込み。\n"
10058
10059 #. type: Plain text
10060 #: build/C/man7/svipc.7:91
10061 msgid ""
10062 "Bits 0100, 0010, and 0001 (the execute bits) are unused by the system.  "
10063 "Furthermore, \"write\" effectively means \"alter\" for a semaphore set."
10064 msgstr ""
10065 "システムはビット 0100, 0010, 0001 (実行ビット) は使用しない。 さらに、セマ"
10066 "フォーの場合には \"書き込み(write)\" は実際には \"変更(alter)\" を意味する。"
10067
10068 #. type: Plain text
10069 #: build/C/man7/svipc.7:94
10070 msgid ""
10071 "The same system header file also defines the following symbolic constants:"
10072 msgstr "同じヘッダーファイルには以下のシンボルの定義が含まれている:"
10073
10074 #. type: TP
10075 #: build/C/man7/svipc.7:94
10076 #, no-wrap
10077 msgid "B<IPC_CREAT>"
10078 msgstr "B<IPC_CREAT>"
10079
10080 #. type: Plain text
10081 #: build/C/man7/svipc.7:97
10082 msgid "Create entry if key doesn't exist."
10083 msgstr "キー(key)が存在しない場合には新たなエントリを作成する。"
10084
10085 #. type: TP
10086 #: build/C/man7/svipc.7:97
10087 #, no-wrap
10088 msgid "B<IPC_EXCL>"
10089 msgstr "B<IPC_EXCL>"
10090
10091 #. type: Plain text
10092 #: build/C/man7/svipc.7:100
10093 msgid "Fail if key exists."
10094 msgstr "キー(key)が存在する場合には失敗する。"
10095
10096 #. type: TP
10097 #: build/C/man7/svipc.7:100
10098 #, no-wrap
10099 msgid "B<IPC_NOWAIT>"
10100 msgstr "B<IPC_NOWAIT>"
10101
10102 #. type: Plain text
10103 #: build/C/man7/svipc.7:103
10104 msgid "Error if request must wait."
10105 msgstr "要求が待たされる場合にはエラーになる。"
10106
10107 #. type: TP
10108 #: build/C/man7/svipc.7:103
10109 #, no-wrap
10110 msgid "B<IPC_PRIVATE>"
10111 msgstr "B<IPC_PRIVATE>"
10112
10113 #. type: Plain text
10114 #: build/C/man7/svipc.7:106
10115 msgid "Private key."
10116 msgstr "プライベートキー。"
10117
10118 #. type: TP
10119 #: build/C/man7/svipc.7:106
10120 #, no-wrap
10121 msgid "B<IPC_RMID>"
10122 msgstr "B<IPC_RMID>"
10123
10124 #. type: Plain text
10125 #: build/C/man7/svipc.7:109
10126 msgid "Remove resource."
10127 msgstr "資源を削除する。"
10128
10129 #. type: TP
10130 #: build/C/man7/svipc.7:109
10131 #, no-wrap
10132 msgid "B<IPC_SET>"
10133 msgstr "B<IPC_SET>"
10134
10135 #. type: Plain text
10136 #: build/C/man7/svipc.7:112
10137 msgid "Set resource options."
10138 msgstr "資源にオプションを設定する。"
10139
10140 #. type: TP
10141 #: build/C/man7/svipc.7:112
10142 #, no-wrap
10143 msgid "B<IPC_STAT>"
10144 msgstr "B<IPC_STAT>"
10145
10146 #. type: Plain text
10147 #: build/C/man7/svipc.7:115
10148 msgid "Get resource options."
10149 msgstr "資源のオプションを取得する。"
10150
10151 #. type: Plain text
10152 #: build/C/man7/svipc.7:124
10153 msgid ""
10154 "Note that B<IPC_PRIVATE> is a I<key_t> type, while all the other symbolic "
10155 "constants are flag fields and can be OR'ed into an I<int> type variable."
10156 msgstr ""
10157 "B<IPC_PRIVATE> は I<key_t> 型である。その他の全てのシンボルはフラグフィールド"
10158 "として I<int> 変数に OR 演算で格納することができる。"
10159
10160 #. type: SS
10161 #: build/C/man7/svipc.7:124
10162 #, no-wrap
10163 msgid "Message Queues"
10164 msgstr "メッセージキュー"
10165
10166 #. type: Plain text
10167 #: build/C/man7/svipc.7:132
10168 msgid ""
10169 "A message queue is uniquely identified by a positive integer (its I<msqid>)  "
10170 "and has an associated data structure of type I<struct msqid_ds>, defined in "
10171 "I<E<lt>sys/msg.hE<gt>>, containing the following members:"
10172 msgstr ""
10173 "メッセージキューは正の整数 (I<msqid>)  によって識別され、 I<E<lt>sys/msg."
10174 "hE<gt>> に定義されている構造体 I<struct msqid_ds> に結びつけられている。 この"
10175 "構造体は以下のメンバーを含んでいる:"
10176
10177 #. type: Plain text
10178 #: build/C/man7/svipc.7:145
10179 #, no-wrap
10180 msgid ""
10181 "struct msqid_ds {\n"
10182 "    struct ipc_perm msg_perm;\n"
10183 "    msgqnum_t       msg_qnum;    /* no of messages on queue */\n"
10184 "    msglen_t        msg_qbytes;  /* bytes max on a queue */\n"
10185 "    pid_t           msg_lspid;   /* PID of last msgsnd(2) call */\n"
10186 "    pid_t           msg_lrpid;   /* PID of last msgrcv(2) call */\n"
10187 "    time_t          msg_stime;   /* last msgsnd(2) time */\n"
10188 "    time_t          msg_rtime;   /* last msgrcv(2) time */\n"
10189 "    time_t          msg_ctime;   /* last change time */\n"
10190 "};\n"
10191 msgstr ""
10192 "struct msqid_ds {\n"
10193 "    struct ipc_perm msg_perm;\n"
10194 "    msgqnum_t       msg_qnum;    /* キューにあるメッセージの数 */\n"
10195 "    msglen_t        msg_qbytes;  /* キューの最大バイト数 */\n"
10196 "    pid_t           msg_lspid;   /* 最後に msgsnd(2) をした PID */\n"
10197 "    pid_t           msg_lrpid;   /* 最後に msgrcv(2) をした PID */\n"
10198 "    time_t          msg_stime;   /* 最後に msgsnd(2) をした時間 */\n"
10199 "    time_t          msg_rtime;   /* 最後に msgrcv(2) をした時間 */\n"
10200 "    time_t          msg_ctime;   /* 最後に変更された時間 */\n"
10201 "};\n"
10202
10203 #. type: TP
10204 #: build/C/man7/svipc.7:147
10205 #, no-wrap
10206 msgid "I<msg_perm>"
10207 msgstr "I<msg_perm>"
10208
10209 #. type: Plain text
10210 #: build/C/man7/svipc.7:152
10211 msgid ""
10212 "I<ipc_perm> structure that specifies the access permissions on the message "
10213 "queue."
10214 msgstr "メッセージキューへのアクセス許可を指定する I<ipc_perm> 構造体。"
10215
10216 #. type: TP
10217 #: build/C/man7/svipc.7:152
10218 #, no-wrap
10219 msgid "I<msg_qnum>"
10220 msgstr "I<msg_qnum>"
10221
10222 #. type: Plain text
10223 #: build/C/man7/svipc.7:155
10224 msgid "Number of messages currently on the message queue."
10225 msgstr "現在、このメッセージキューにあるメッセージの数。"
10226
10227 #. type: TP
10228 #: build/C/man7/svipc.7:155
10229 #, no-wrap
10230 msgid "I<msg_qbytes>"
10231 msgstr "I<msg_qbytes>"
10232
10233 #. type: Plain text
10234 #: build/C/man7/svipc.7:159
10235 msgid "Maximum number of bytes of message text allowed on the message queue."
10236 msgstr "メッセージキューに入れることができるメッセージの最大バイト数。"
10237
10238 #. type: TP
10239 #: build/C/man7/svipc.7:159
10240 #, no-wrap
10241 msgid "I<msg_lspid>"
10242 msgstr "I<msg_lspid>"
10243
10244 #. type: Plain text
10245 #: build/C/man7/svipc.7:164
10246 msgid "ID of the process that performed the last B<msgsnd>(2)  system call."
10247 msgstr "最後に B<msgsnd>(2)  システムコールを行なったプロセスの ID。"
10248
10249 #. type: TP
10250 #: build/C/man7/svipc.7:164
10251 #, no-wrap
10252 msgid "I<msg_lrpid>"
10253 msgstr "I<msg_lrpid>"
10254
10255 #. type: Plain text
10256 #: build/C/man7/svipc.7:169
10257 msgid "ID of the process that performed the last B<msgrcv>(2)  system call."
10258 msgstr "最後に B<msgrcv>(2)  システムコールを行なったプロセスの ID。"
10259
10260 #. type: TP
10261 #: build/C/man7/svipc.7:169
10262 #, no-wrap
10263 msgid "I<msg_stime>"
10264 msgstr "I<msg_stime>"
10265
10266 #. type: Plain text
10267 #: build/C/man7/svipc.7:174
10268 msgid "Time of the last B<msgsnd>(2)  system call."
10269 msgstr "最後に B<msgsnd>(2)  システムコールを行なった時間。"
10270
10271 #. type: TP
10272 #: build/C/man7/svipc.7:174
10273 #, no-wrap
10274 msgid "I<msg_rtime>"
10275 msgstr "I<msg_rtime>"
10276
10277 #. type: Plain text
10278 #: build/C/man7/svipc.7:179
10279 msgid "Time of the last B<msgrcv>(2)  system call."
10280 msgstr "最後に B<msgrcv>(2)  を行なった時間。"
10281
10282 #. type: TP
10283 #: build/C/man7/svipc.7:179
10284 #, no-wrap
10285 msgid "I<msg_ctime>"
10286 msgstr "I<msg_ctime>"
10287
10288 #. type: Plain text
10289 #: build/C/man7/svipc.7:185
10290 msgid ""
10291 "Time of the last system call that changed a member of the I<msqid_ds> "
10292 "structure."
10293 msgstr "最後に I<msqid_ds> 構造体のメンバーが変更された時間。"
10294
10295 #. type: SS
10296 #: build/C/man7/svipc.7:185
10297 #, no-wrap
10298 msgid "Semaphore Sets"
10299 msgstr "セマフォー集合"
10300
10301 #. type: Plain text
10302 #: build/C/man7/svipc.7:193
10303 msgid ""
10304 "A semaphore set is uniquely identified by a positive integer (its I<semid>)  "
10305 "and has an associated data structure of type I<struct semid_ds>, defined in "
10306 "I<E<lt>sys/sem.hE<gt>>, containing the following members:"
10307 msgstr ""
10308 "セマフォー集合は正の整数 (I<semid>)  によって識別され、 I<E<lt>sys/sem."
10309 "hE<gt>> に定義されている構造体 I<struct semid_ds> に結びつけられている。 この"
10310 "構造体は以下のメンバーを含んでいる:"
10311
10312 #. type: Plain text
10313 #: build/C/man7/svipc.7:202
10314 #, no-wrap
10315 msgid ""
10316 "struct semid_ds {\n"
10317 "    struct ipc_perm sem_perm;\n"
10318 "    time_t          sem_otime;   /* last operation time */\n"
10319 "    time_t          sem_ctime;   /* last change time */\n"
10320 "    unsigned long   sem_nsems;   /* count of sems in set */\n"
10321 "};\n"
10322 msgstr ""
10323 "struct semid_ds {\n"
10324 "    struct ipc_perm sem_perm;\n"
10325 "    time_t          sem_otime;   /* 最後に操作した時間 */\n"
10326 "    time_t          sem_ctime;   /* 最後に変更した時間 */\n"
10327 "    unsigned long   sem_nsems;   /* 集合の中にあるセマフォー数 */\n"
10328 "};\n"
10329
10330 #. type: TP
10331 #: build/C/man7/svipc.7:204
10332 #, no-wrap
10333 msgid "I<sem_perm>"
10334 msgstr "I<sem_perm>"
10335
10336 #. type: Plain text
10337 #: build/C/man7/svipc.7:209
10338 msgid ""
10339 "I<ipc_perm> structure that specifies the access permissions on the semaphore "
10340 "set."
10341 msgstr "セマフォー集合へのアクセス許可を指定する I<ipc_perm> 構造体。"
10342
10343 #. type: TP
10344 #: build/C/man7/svipc.7:209
10345 #, no-wrap
10346 msgid "I<sem_otime>"
10347 msgstr "I<sem_otime>"
10348
10349 #. type: Plain text
10350 #: build/C/man7/svipc.7:214
10351 msgid "Time of last B<semop>(2)  system call."
10352 msgstr "最後に B<semop>(2)  システムコールを行なった時間。"
10353
10354 #. type: TP
10355 #: build/C/man7/svipc.7:214
10356 #, no-wrap
10357 msgid "I<sem_ctime>"
10358 msgstr "I<sem_ctime>"
10359
10360 #. type: Plain text
10361 #: build/C/man7/svipc.7:220
10362 msgid ""
10363 "Time of last B<semctl>(2)  system call that changed a member of the above "
10364 "structure or of one semaphore belonging to the set."
10365 msgstr ""
10366 "最後に B<semctl>(2)  を行なって上記の構造体のメンバーを変更するか、セマフォー"
10367 "集合に属する セマフォーを変更した時間。"
10368
10369 #. type: TP
10370 #: build/C/man7/svipc.7:220
10371 #, no-wrap
10372 msgid "I<sem_nsems>"
10373 msgstr "I<sem_nsems>"
10374
10375 #. type: Plain text
10376 #: build/C/man7/svipc.7:228
10377 msgid ""
10378 "Number of semaphores in the set.  Each semaphore of the set is referenced by "
10379 "a nonnegative integer ranging from B<0> to I<sem_nsems-1>."
10380 msgstr ""
10381 "セマフォー集合の中にあるセマフォーの数。 集合の中にあるそれぞれのセマフォーは"
10382 "負でない整数によって参照され、 B<0> から I<sem_nsems-1> までの番号を持つ。"
10383
10384 #. type: Plain text
10385 #: build/C/man7/svipc.7:232
10386 msgid ""
10387 "A semaphore is a data structure of type I<struct sem> containing the "
10388 "following members:"
10389 msgstr ""
10390 "セマフォーは I<struct sem> 型のデータ構造体であり、以下のメンバーを含んでい"
10391 "る:"
10392
10393 #.     unsigned short semncnt; /* nr awaiting semval to increase */
10394 #.     unsigned short semzcnt; /* nr awaiting semval = 0 */
10395 #. type: Plain text
10396 #: build/C/man7/svipc.7:241
10397 #, no-wrap
10398 msgid ""
10399 "struct sem {\n"
10400 "    int semval;  /* semaphore value */\n"
10401 "    int sempid;  /* PID for last operation */\n"
10402 "};\n"
10403 msgstr ""
10404 "struct sem {\n"
10405 "    int semval;  /* セマフォーの値 */\n"
10406 "    int sempid;  /* 最後に操作したプロセス ID */\n"
10407 "};\n"
10408
10409 #. type: TP
10410 #: build/C/man7/svipc.7:243
10411 #, no-wrap
10412 msgid "I<semval>"
10413 msgstr "I<semval>"
10414
10415 #. type: Plain text
10416 #: build/C/man7/svipc.7:246
10417 msgid "Semaphore value: a nonnegative integer."
10418 msgstr "セマフォー値: 負でない整数。"
10419
10420 #. type: TP
10421 #: build/C/man7/svipc.7:246
10422 #, no-wrap
10423 msgid "I<sempid>"
10424 msgstr "I<sempid>"
10425
10426 #. .TP
10427 #. .I semncnt
10428 #. Number of processes suspended awaiting for
10429 #. .I semval
10430 #. to increase.
10431 #. .TP
10432 #. .I semznt
10433 #. Number of processes suspended awaiting for
10434 #. .I semval
10435 #. to become zero.
10436 #. type: Plain text
10437 #: build/C/man7/svipc.7:260
10438 msgid ""
10439 "ID of the last process that performed a semaphore operation on this "
10440 "semaphore."
10441 msgstr "このセマフォーを最後に操作したプロセスの ID。"
10442
10443 #. type: SS
10444 #: build/C/man7/svipc.7:260
10445 #, no-wrap
10446 msgid "Shared Memory Segments"
10447 msgstr "共有メモリセグメント"
10448
10449 #. type: Plain text
10450 #: build/C/man7/svipc.7:268
10451 msgid ""
10452 "A shared memory segment is uniquely identified by a positive integer (its "
10453 "I<shmid>)  and has an associated data structure of type I<struct shmid_ds>, "
10454 "defined in I<E<lt>sys/shm.hE<gt>>, containing the following members:"
10455 msgstr ""
10456 "共有メモリセグメントは正の整数 (I<shmid>)  によって識別され、 I<E<lt>sys/shm."
10457 "hE<gt>> に定義されている I<struct shmid_ds> 構造体に結びつけられている。 この"
10458 "構造体は以下のメンバーを含んでいる:"
10459
10460 #. type: Plain text
10461 #: build/C/man7/svipc.7:281
10462 #, no-wrap
10463 msgid ""
10464 "struct shmid_ds {\n"
10465 "    struct ipc_perm shm_perm;\n"
10466 "    size_t          shm_segsz;   /* size of segment */\n"
10467 "    pid_t           shm_cpid;    /* PID of creator */\n"
10468 "    pid_t           shm_lpid;    /* PID, last operation */\n"
10469 "    shmatt_t        shm_nattch;  /* no. of current attaches */\n"
10470 "    time_t          shm_atime;   /* time of last attach */\n"
10471 "    time_t          shm_dtime;   /* time of last detach */\n"
10472 "    time_t          shm_ctime;   /* time of last change */\n"
10473 "};\n"
10474 msgstr ""
10475 "struct shmid_ds {\n"
10476 "    struct ipc_perm shm_perm;\n"
10477 "    size_t          shm_segsz;   /* セグメントのサイズ */\n"
10478 "    pid_t           shm_cpid;    /* 作成者のプロセス ID */\n"
10479 "    pid_t           shm_lpid;    /* 最後に操作したプロセス ID */\n"
10480 "    shmatt_t        shm_nattch;  /* 現在、付加している数 */\n"
10481 "    time_t          shm_atime;   /* 最後に付加した時間 */\n"
10482 "    time_t          shm_dtime;   /* 最後に分離した時間 */\n"
10483 "    time_t          shm_ctime;   /* 最後に変更した時間 */\n"
10484 "};\n"
10485
10486 #. type: TP
10487 #: build/C/man7/svipc.7:283
10488 #, no-wrap
10489 msgid "I<shm_perm>"
10490 msgstr "I<shm_perm>"
10491
10492 #. type: Plain text
10493 #: build/C/man7/svipc.7:288
10494 msgid ""
10495 "I<ipc_perm> structure that specifies the access permissions on the shared "
10496 "memory segment."
10497 msgstr "共有メモリセグメントへのアクセス許可を指定した I<ipc_perm> 構造体。"
10498
10499 #. type: TP
10500 #: build/C/man7/svipc.7:288
10501 #, no-wrap
10502 msgid "I<shm_segsz>"
10503 msgstr "I<shm_segsz>"
10504
10505 #. type: Plain text
10506 #: build/C/man7/svipc.7:291
10507 msgid "Size in bytes of the shared memory segment."
10508 msgstr "共有メモリセグメントのバイト数。"
10509
10510 #. type: TP
10511 #: build/C/man7/svipc.7:291
10512 #, no-wrap
10513 msgid "I<shm_cpid>"
10514 msgstr "I<shm_cpid>"
10515
10516 #. type: Plain text
10517 #: build/C/man7/svipc.7:294
10518 msgid "ID of the process that created the shared memory segment."
10519 msgstr "共有メモリセグメントを作成したプロセスの ID。"
10520
10521 #. type: TP
10522 #: build/C/man7/svipc.7:294
10523 #, no-wrap
10524 msgid "I<shm_lpid>"
10525 msgstr "I<shm_lpid>"
10526
10527 #. type: Plain text
10528 #: build/C/man7/svipc.7:301
10529 msgid ""
10530 "ID of the last process that executed a B<shmat>(2)  or B<shmdt>(2)  system "
10531 "call."
10532 msgstr ""
10533 "最後に B<shmat>(2)  または B<shmdt>(2)  システムコールを実行したプロセスの "
10534 "ID。"
10535
10536 #. type: TP
10537 #: build/C/man7/svipc.7:301
10538 #, no-wrap
10539 msgid "I<shm_nattch>"
10540 msgstr "I<shm_nattch>"
10541
10542 #. type: Plain text
10543 #: build/C/man7/svipc.7:304
10544 msgid "Number of current alive attaches for this shared memory segment."
10545 msgstr "この共有メモリセグメントをメモリに付加 (attach) しているプロセスの数。"
10546
10547 #. type: TP
10548 #: build/C/man7/svipc.7:304
10549 #, no-wrap
10550 msgid "I<shm_atime>"
10551 msgstr "I<shm_atime>"
10552
10553 #. type: Plain text
10554 #: build/C/man7/svipc.7:309
10555 msgid "Time of the last B<shmat>(2)  system call."
10556 msgstr "最後に B<shmat>(2)  システムコールを行なった時間。"
10557
10558 #. type: TP
10559 #: build/C/man7/svipc.7:309
10560 #, no-wrap
10561 msgid "I<shm_dtime>"
10562 msgstr "I<shm_dtime>"
10563
10564 #. type: Plain text
10565 #: build/C/man7/svipc.7:314
10566 msgid "Time of the last B<shmdt>(2)  system call."
10567 msgstr "最後に B<shmdt>(2)  システムコールを行なった時間。"
10568
10569 #. type: TP
10570 #: build/C/man7/svipc.7:314
10571 #, no-wrap
10572 msgid "I<shm_ctime>"
10573 msgstr "I<shm_ctime>"
10574
10575 #. type: Plain text
10576 #: build/C/man7/svipc.7:320
10577 msgid "Time of the last B<shmctl>(2)  system call that changed I<shmid_ds>."
10578 msgstr ""
10579 "最後に B<shmctl>(2)  システムコールを行なって、 I<shmid_ds> 構造体を変更した"
10580 "時間。"
10581
10582 #. type: Plain text
10583 #: build/C/man7/svipc.7:334
10584 msgid ""
10585 "B<ipc>(2), B<msgctl>(2), B<msgget>(2), B<msgrcv>(2), B<msgsnd>(2), B<semctl>"
10586 "(2), B<semget>(2), B<semop>(2), B<shmat>(2), B<shmctl>(2), B<shmdt>(2), "
10587 "B<shmget>(2), B<ftok>(3)"
10588 msgstr ""
10589 "B<ipc>(2), B<msgctl>(2), B<msgget>(2), B<msgrcv>(2), B<msgsnd>(2), B<semctl>"
10590 "(2), B<semget>(2), B<semop>(2), B<shmat>(2), B<shmctl>(2), B<shmdt>(2), "
10591 "B<shmget>(2), B<ftok>(3)"
10592
10593 #. type: TH
10594 #: build/C/man3/ulimit.3:27
10595 #, no-wrap
10596 msgid "ULIMIT"
10597 msgstr "ULIMIT"
10598
10599 #. type: TH
10600 #: build/C/man3/ulimit.3:27
10601 #, no-wrap
10602 msgid "2008-08-06"
10603 msgstr "2008-08-06"
10604
10605 #. type: Plain text
10606 #: build/C/man3/ulimit.3:30
10607 msgid "ulimit - get and set user limits"
10608 msgstr "ulimit - ユーザー制限を取得・設定する"
10609
10610 #. type: Plain text
10611 #: build/C/man3/ulimit.3:32
10612 msgid "B<#include E<lt>ulimit.hE<gt>>"
10613 msgstr "B<#include E<lt>ulimit.hE<gt>>"
10614
10615 #. type: Plain text
10616 #: build/C/man3/ulimit.3:34
10617 msgid "B<long ulimit(int >I<cmd>B<, long >I<newlimit>B<);>"
10618 msgstr "B<long ulimit(int >I<cmd>B<, long >I<newlimit>B<);>"
10619
10620 #. type: Plain text
10621 #: build/C/man3/ulimit.3:46
10622 msgid ""
10623 "Warning: This routine is obsolete.  Use B<getrlimit>(2), B<setrlimit>(2), "
10624 "and B<sysconf>(3)  instead.  For the shell command B<ulimit>(), see B<bash>"
10625 "(1)."
10626 msgstr ""
10627 "注意: このルーチンは古い。 代わりに B<getrlimit>(2), B<setrlimit>(2), "
10628 "B<sysconf>(3)  などを用いること。 シェルコマンドとしての B<ulimit>()  につい"
10629 "ては、 B<bash>(1)  を見ること。"
10630
10631 #. type: Plain text
10632 #: build/C/man3/ulimit.3:53
10633 msgid ""
10634 "The B<ulimit>()  call will get or set some limit for the calling process.  "
10635 "The I<cmd> argument can have one of the following values."
10636 msgstr ""
10637 "B<ulimit>()  は呼び出し元のプロセスに関する制限のいくつかを取得・設定する。 "
10638 "I<cmd> 引き数には、以下の値のうちのどれか一つを与えることができる。"
10639
10640 #. type: TP
10641 #: build/C/man3/ulimit.3:53
10642 #, no-wrap
10643 msgid "B<UL_GETFSIZE>"
10644 msgstr "B<UL_GETFSIZE>"
10645
10646 #. type: Plain text
10647 #: build/C/man3/ulimit.3:56
10648 msgid "Return the limit on the size of a file, in units of 512 bytes."
10649 msgstr "ファイルサイズに関する制限を返す。単位は 512 バイト。"
10650
10651 #. type: TP
10652 #: build/C/man3/ulimit.3:56
10653 #, no-wrap
10654 msgid "B<UL_SETFSIZE>"
10655 msgstr "B<UL_SETFSIZE>"
10656
10657 #. type: Plain text
10658 #: build/C/man3/ulimit.3:59
10659 msgid "Set the limit on the size of a file."
10660 msgstr "ファイルサイズに関する制限を設定する。"
10661
10662 #. type: TP
10663 #: build/C/man3/ulimit.3:59
10664 #, no-wrap
10665 msgid "B<3>"
10666 msgstr "B<3>"
10667
10668 #. type: Plain text
10669 #: build/C/man3/ulimit.3:63
10670 msgid ""
10671 "(Not implemented for Linux.)  Return the maximum possible address of the "
10672 "data segment."
10673 msgstr ""
10674 "(Linux では実装されていない)  データセグメントで指定できるアドレスの最大値を"
10675 "返す。"
10676
10677 #. type: TP
10678 #: build/C/man3/ulimit.3:63
10679 #, no-wrap
10680 msgid "B<4>"
10681 msgstr "B<4>"
10682
10683 #. type: Plain text
10684 #: build/C/man3/ulimit.3:67
10685 msgid ""
10686 "(Implemented but no symbolic constant provided.)  Return the maximum number "
10687 "of files that the calling process can open."
10688 msgstr ""
10689 "(実装されているが、対応するシンボリックな定数は存在しない)  プロセスがオープ"
10690 "ンできるファイル数の最大値を返す。"
10691
10692 #. type: Plain text
10693 #: build/C/man3/ulimit.3:74
10694 msgid ""
10695 "On success, B<ulimit>()  returns a nonnegative value.  On error, -1 is "
10696 "returned, and I<errno> is set appropriately."
10697 msgstr ""
10698 "成功すると B<ulimit>()  は 0 または正の値を返す。 エラーが生じると -1 を返"
10699 "し、 I<errno> を適切な値に設定する。"
10700
10701 #. type: Plain text
10702 #: build/C/man3/ulimit.3:78
10703 msgid "A unprivileged process tried to increase a limit."
10704 msgstr "非特権プロセスが制限値を増加させようとした。"
10705
10706 #. type: Plain text
10707 #: build/C/man3/ulimit.3:83
10708 msgid "SVr4, POSIX.1-2001.  POSIX.1-2008 marks B<ulimit>()  as obsolete."
10709 msgstr ""
10710 "SVr4, POSIX.1-2001.  POSIX.1-2008 は B<ulimit>()  を廃止予定としている。"
10711
10712 #. type: Plain text
10713 #: build/C/man3/ulimit.3:88
10714 msgid "B<bash>(1), B<getrlimit>(2), B<setrlimit>(2), B<sysconf>(3)"
10715 msgstr "B<bash>(1), B<getrlimit>(2), B<setrlimit>(2), B<sysconf>(3)"
10716
10717 #~ msgid ""
10718 #~ "Perform various network-related operations (e.g., setting privileged "
10719 #~ "socket options, enabling multicasting, interface configuration, modifying "
10720 #~ "routing tables)."
10721 #~ msgstr ""
10722 #~ "各種のネットワーク関連の操作を実行する。 (例えば、特権が必要なソケットオプ"
10723 #~ "ションを設定する、マルチキャストを有効にする、 インターフェースを設定す"
10724 #~ "る、ルーティングテーブルを変更するなど)"
10725
10726 #~ msgid "Use B<vhangup>(2)."
10727 #~ msgstr "B<vhangup>(2)  を呼び出す。"
10728
10729 #~ msgid "I<rlim> points outside the accessible address space."
10730 #~ msgstr "I<rlim> がアクセス可能なアドレス空間の外を指している。"
10731
10732 #~ msgid ""
10733 #~ "The structure definition shown at the start of this page was taken from "
10734 #~ "4.3BSD Reno.  Not all fields are meaningful under Linux.  In Linux 2.4 "
10735 #~ "only the fields I<ru_utime>, I<ru_stime>, I<ru_minflt>, and I<ru_majflt> "
10736 #~ "are maintained.  Since Linux 2.6, I<ru_nvcsw> and I<ru_nivcsw> are also "
10737 #~ "maintained.  Since Linux 2.6.22, I<ru_inblock> and I<ru_oublock> are also "
10738 #~ "maintained."
10739 #~ msgstr ""
10740 #~ "このページの最初で示した構造体の定義は 4.3BSD Reno のものを採用した。 "
10741 #~ "Linux では全てのフィールドが意味を持つというわけではない。 Linux 2.4 で"
10742 #~ "は、フィールド I<ru_utime>, I<ru_stime>, I<ru_minflt>, I<ru_majflt> のみが"
10743 #~ "メンテナンスされている。 Linux 2.6 以降では I<ru_nvcsw>, I<ru_nivcsw> もメ"
10744 #~ "ンテナンスされている。 Linux 2.6.22 以降では I<ru_inblock>, I<ru_oublock> "
10745 #~ "もメンテナンスされている。"
10746
10747 #~ msgid "Linux Notes"
10748 #~ msgstr "Linux での注意"