OSDN Git Service

(split) LDP: Snapshot prctl.2
[linuxjm/LDP_man-pages.git] / po4a / signal / 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: 2014-04-24 00:51+0900\n"
10 "PO-Revision-Date: 2014-04-30 00:56+0900\n"
11 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12 "Language-Team: LANGUAGE <LL@li.org>\n"
13 "Language: \n"
14 "MIME-Version: 1.0\n"
15 "Content-Type: text/plain; charset=UTF-8\n"
16 "Content-Transfer-Encoding: 8bit\n"
17
18 #. type: TH
19 #: build/C/man3/bsd_signal.3:25
20 #, no-wrap
21 msgid "BSD_SIGNAL"
22 msgstr "BSD_SIGNAL"
23
24 #. type: TH
25 #: build/C/man3/bsd_signal.3:25
26 #, no-wrap
27 msgid "2013-10-22"
28 msgstr "2013-10-22"
29
30 #. type: TH
31 #: build/C/man3/bsd_signal.3:25 build/C/man2/eventfd.2:22
32 #: build/C/man2/getitimer.2:12 build/C/man3/gsignal.3:27
33 #: build/C/man2/kill.2:44 build/C/man2/killpg.2:42 build/C/man2/pause.2:30
34 #: build/C/man2/prctl.2:52 build/C/man3/profil.3:28 build/C/man3/psignal.3:30
35 #: build/C/man3/raise.3:29 build/C/man2/restart_syscall.2:33
36 #: build/C/man2/rt_sigqueueinfo.2:25 build/C/man2/s390_runtime_instr.2:25
37 #: build/C/man2/sgetmask.2:26 build/C/man2/sigaction.2:47
38 #: build/C/man2/sigaltstack.2:27 build/C/man7/sigevent.7:26
39 #: build/C/man3/siginterrupt.3:31 build/C/man2/signal.2:36
40 #: build/C/man7/signal.7:46 build/C/man2/signalfd.2:20
41 #: build/C/man3/sigpause.3:25 build/C/man2/sigpending.2:29
42 #: build/C/man2/sigprocmask.2:29 build/C/man3/sigqueue.3:28
43 #: build/C/man2/sigreturn.2:29 build/C/man3/sigset.3:26
44 #: build/C/man3/sigsetops.3:31 build/C/man2/sigsuspend.2:29
45 #: build/C/man3/sigvec.3:26 build/C/man3/sigwait.3:26
46 #: build/C/man2/sigwaitinfo.2:25 build/C/man3/sysv_signal.3:25
47 #: build/C/man2/timer_create.2:31 build/C/man2/timer_delete.2:26
48 #: build/C/man2/timer_getoverrun.2:26 build/C/man2/timer_settime.2:26
49 #: build/C/man2/timerfd_create.2:21 build/C/man2/tkill.2:29
50 #: build/C/man2/wait.2:49 build/C/man2/wait4.2:33
51 #, no-wrap
52 msgid "Linux Programmer's Manual"
53 msgstr "Linux Programmer's Manual"
54
55 #. type: SH
56 #: build/C/man3/bsd_signal.3:26 build/C/man2/eventfd.2:23
57 #: build/C/man2/getitimer.2:13 build/C/man3/gsignal.3:28
58 #: build/C/man2/kill.2:45 build/C/man2/killpg.2:43 build/C/man2/pause.2:31
59 #: build/C/man2/prctl.2:53 build/C/man3/profil.3:29 build/C/man3/psignal.3:31
60 #: build/C/man3/raise.3:30 build/C/man2/restart_syscall.2:34
61 #: build/C/man2/rt_sigqueueinfo.2:26 build/C/man2/s390_runtime_instr.2:26
62 #: build/C/man2/sgetmask.2:27 build/C/man2/sigaction.2:48
63 #: build/C/man2/sigaltstack.2:28 build/C/man7/sigevent.7:27
64 #: build/C/man3/siginterrupt.3:32 build/C/man2/signal.2:37
65 #: build/C/man7/signal.7:47 build/C/man2/signalfd.2:21
66 #: build/C/man3/sigpause.3:26 build/C/man2/sigpending.2:30
67 #: build/C/man2/sigprocmask.2:30 build/C/man3/sigqueue.3:29
68 #: build/C/man2/sigreturn.2:30 build/C/man3/sigset.3:27
69 #: build/C/man3/sigsetops.3:32 build/C/man2/sigsuspend.2:30
70 #: build/C/man3/sigvec.3:27 build/C/man3/sigwait.3:27
71 #: build/C/man2/sigwaitinfo.2:26 build/C/man3/sysv_signal.3:26
72 #: build/C/man2/timer_create.2:32 build/C/man2/timer_delete.2:27
73 #: build/C/man2/timer_getoverrun.2:27 build/C/man2/timer_settime.2:27
74 #: build/C/man2/timerfd_create.2:22 build/C/man2/tkill.2:30
75 #: build/C/man2/wait.2:50 build/C/man2/wait4.2:34
76 #, no-wrap
77 msgid "NAME"
78 msgstr "名前"
79
80 #. type: Plain text
81 #: build/C/man3/bsd_signal.3:28
82 msgid "bsd_signal - signal handling with BSD semantics"
83 msgstr "bsd_signal - BSD 方式のシグナル処理"
84
85 #. type: SH
86 #: build/C/man3/bsd_signal.3:28 build/C/man2/eventfd.2:25
87 #: build/C/man2/getitimer.2:15 build/C/man3/gsignal.3:30
88 #: build/C/man2/kill.2:47 build/C/man2/killpg.2:45 build/C/man2/pause.2:33
89 #: build/C/man2/prctl.2:55 build/C/man3/profil.3:31 build/C/man3/psignal.3:33
90 #: build/C/man3/raise.3:32 build/C/man2/restart_syscall.2:36
91 #: build/C/man2/rt_sigqueueinfo.2:28 build/C/man2/s390_runtime_instr.2:28
92 #: build/C/man2/sgetmask.2:29 build/C/man2/sigaction.2:50
93 #: build/C/man2/sigaltstack.2:30 build/C/man7/sigevent.7:29
94 #: build/C/man3/siginterrupt.3:34 build/C/man2/signal.2:39
95 #: build/C/man2/signalfd.2:23 build/C/man3/sigpause.3:28
96 #: build/C/man2/sigpending.2:32 build/C/man2/sigprocmask.2:32
97 #: build/C/man3/sigqueue.3:31 build/C/man2/sigreturn.2:32
98 #: build/C/man3/sigset.3:29 build/C/man3/sigsetops.3:35
99 #: build/C/man2/sigsuspend.2:32 build/C/man3/sigvec.3:29
100 #: build/C/man3/sigwait.3:29 build/C/man2/sigwaitinfo.2:28
101 #: build/C/man3/sysv_signal.3:28 build/C/man2/timer_create.2:34
102 #: build/C/man2/timer_delete.2:29 build/C/man2/timer_getoverrun.2:29
103 #: build/C/man2/timer_settime.2:30 build/C/man2/timerfd_create.2:25
104 #: build/C/man2/tkill.2:32 build/C/man2/wait.2:52 build/C/man2/wait4.2:36
105 #, no-wrap
106 msgid "SYNOPSIS"
107 msgstr "書式"
108
109 #. type: Plain text
110 #: build/C/man3/bsd_signal.3:30
111 msgid "B<#define _XOPEN_SOURCE> /* See feature_test_macros(7) */"
112 msgstr "B<#define _XOPEN_SOURCE> /* feature_test_macros(7) 参照 */"
113
114 #. type: Plain text
115 #: build/C/man3/bsd_signal.3:32 build/C/man2/killpg.2:47
116 #: build/C/man2/sigaltstack.2:32 build/C/man2/signal.2:41
117 #: build/C/man2/sigpending.2:34 build/C/man2/sigprocmask.2:34
118 #: build/C/man3/sigqueue.3:33 build/C/man3/sigset.3:31
119 #: build/C/man3/sigsetops.3:37 build/C/man2/sigsuspend.2:34
120 #: build/C/man3/sigvec.3:31 build/C/man3/sysv_signal.3:32
121 msgid "B<#include E<lt>signal.hE<gt>>"
122 msgstr "B<#include E<lt>signal.hE<gt>>"
123
124 #. type: Plain text
125 #: build/C/man3/bsd_signal.3:34 build/C/man2/signal.2:43
126 #: build/C/man3/sigset.3:33 build/C/man3/sysv_signal.3:34
127 msgid "B<typedef void (*sighandler_t)(int);>"
128 msgstr "B<typedef void (*sighandler_t)(int);>"
129
130 #. type: Plain text
131 #: build/C/man3/bsd_signal.3:36
132 msgid ""
133 "B<sighandler_t bsd_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
134 msgstr ""
135 "B<sighandler_t bsd_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
136
137 #. type: SH
138 #: build/C/man3/bsd_signal.3:36 build/C/man2/eventfd.2:29
139 #: build/C/man2/getitimer.2:24 build/C/man3/gsignal.3:49
140 #: build/C/man2/kill.2:65 build/C/man2/killpg.2:60 build/C/man2/pause.2:37
141 #: build/C/man2/prctl.2:62 build/C/man3/profil.3:46 build/C/man3/psignal.3:56
142 #: build/C/man3/raise.3:38 build/C/man2/restart_syscall.2:41
143 #: build/C/man2/rt_sigqueueinfo.2:38 build/C/man2/s390_runtime_instr.2:34
144 #: build/C/man2/sgetmask.2:36 build/C/man2/sigaction.2:70
145 #: build/C/man2/sigaltstack.2:51 build/C/man7/sigevent.7:52
146 #: build/C/man3/siginterrupt.3:55 build/C/man2/signal.2:45
147 #: build/C/man7/signal.7:49 build/C/man2/signalfd.2:27
148 #: build/C/man3/sigpause.3:36 build/C/man2/sigpending.2:46
149 #: build/C/man2/sigprocmask.2:47 build/C/man3/sigqueue.3:43
150 #: build/C/man2/sigreturn.2:34 build/C/man3/sigset.3:58
151 #: build/C/man3/sigsetops.3:63 build/C/man2/sigsuspend.2:46
152 #: build/C/man3/sigvec.3:49 build/C/man3/sigwait.3:45
153 #: build/C/man2/sigwaitinfo.2:46 build/C/man3/sysv_signal.3:36
154 #: build/C/man2/timer_create.2:52 build/C/man2/timer_delete.2:45
155 #: build/C/man2/timer_getoverrun.2:45 build/C/man2/timer_settime.2:50
156 #: build/C/man2/timerfd_create.2:37 build/C/man2/tkill.2:41
157 #: build/C/man2/wait.2:83 build/C/man2/wait4.2:67
158 #, no-wrap
159 msgid "DESCRIPTION"
160 msgstr "説明"
161
162 #. type: Plain text
163 #: build/C/man3/bsd_signal.3:41
164 msgid ""
165 "The B<bsd_signal>()  function takes the same arguments, and performs the "
166 "same task, as B<signal>(2)."
167 msgstr ""
168 "B<bsd_signal>()  関数は B<signal>(2)  と同じ引き数をとり、同じ処理を実行す"
169 "る。"
170
171 #. type: Plain text
172 #: build/C/man3/bsd_signal.3:54
173 msgid ""
174 "The difference between the two is that B<bsd_signal>()  is guaranteed to "
175 "provide reliable signal semantics, that is: a) the disposition of the signal "
176 "is not reset to the default when the handler is invoked; b) delivery of "
177 "further instances of the signal is blocked while the signal handler is "
178 "executing; and c) if the handler interrupts a blocking system call, then the "
179 "system call is automatically restarted.  A portable application cannot rely "
180 "on B<signal>(2)  to provide these guarantees."
181 msgstr ""
182 "両者の違いは、 B<bsd_signal>()  では信頼性のあるシグナル処理方式の提供が保証"
183 "されていることである。 信頼性のあるシグナル処理方式は以下の特徴を持つ。 a) ハ"
184 "ンドラが起動された場合に、シグナルの処理方法 (disposition) が デフォルトにリ"
185 "セットされない、 b) シグナルハンドラの実行中は、それ以降に発生した同じシグナ"
186 "ルの配送が ブロックされない、 c) ハンドラが停止中の (blocking している) シス"
187 "テムコールを 中断した場合、そのシステムコールが自動的に再開される。 移植性が"
188 "必要なアプリケーションでは、 B<signal>(2)  でこれらが保証されることを前提にす"
189 "べきではない。"
190
191 #. type: SH
192 #: build/C/man3/bsd_signal.3:54 build/C/man2/eventfd.2:222
193 #: build/C/man2/getitimer.2:122 build/C/man2/kill.2:100
194 #: build/C/man2/killpg.2:89 build/C/man2/pause.2:42 build/C/man2/prctl.2:802
195 #: build/C/man3/profil.3:68 build/C/man3/psignal.3:89 build/C/man3/raise.3:61
196 #: build/C/man2/restart_syscall.2:84 build/C/man2/rt_sigqueueinfo.2:129
197 #: build/C/man2/s390_runtime_instr.2:54 build/C/man2/sgetmask.2:59
198 #: build/C/man2/sigaction.2:660 build/C/man2/sigaltstack.2:133
199 #: build/C/man3/siginterrupt.3:73 build/C/man2/signal.2:97
200 #: build/C/man2/signalfd.2:251 build/C/man3/sigpause.3:48
201 #: build/C/man2/sigpending.2:53 build/C/man2/sigprocmask.2:93
202 #: build/C/man3/sigqueue.3:83 build/C/man2/sigreturn.2:53
203 #: build/C/man3/sigset.3:129 build/C/man3/sigsetops.3:107
204 #: build/C/man2/sigsuspend.2:70 build/C/man3/sigvec.3:199
205 #: build/C/man3/sigwait.3:69 build/C/man2/sigwaitinfo.2:105
206 #: build/C/man3/sysv_signal.3:51 build/C/man2/timer_create.2:167
207 #: build/C/man2/timer_delete.2:53 build/C/man2/timer_getoverrun.2:82
208 #: build/C/man2/timer_settime.2:173 build/C/man2/timerfd_create.2:287
209 #: build/C/man2/tkill.2:95 build/C/man2/wait.2:355 build/C/man2/wait4.2:132
210 #, no-wrap
211 msgid "RETURN VALUE"
212 msgstr "返り値"
213
214 #. type: Plain text
215 #: build/C/man3/bsd_signal.3:60
216 msgid ""
217 "The B<bsd_signal>()  function returns the previous value of the signal "
218 "handler, or B<SIG_ERR> on error."
219 msgstr ""
220 "B<bsd_signal>()  関数はシグナルハンドラの直前の値を返す。 エラーの場合、 "
221 "B<SIG_ERR> を返す。"
222
223 #. type: SH
224 #: build/C/man3/bsd_signal.3:60 build/C/man2/eventfd.2:229
225 #: build/C/man2/getitimer.2:127 build/C/man2/kill.2:105
226 #: build/C/man2/killpg.2:94 build/C/man2/pause.2:53 build/C/man2/prctl.2:822
227 #: build/C/man2/restart_syscall.2:88 build/C/man2/rt_sigqueueinfo.2:134
228 #: build/C/man2/s390_runtime_instr.2:65 build/C/man2/sgetmask.2:64
229 #: build/C/man2/sigaction.2:665 build/C/man2/sigaltstack.2:137
230 #: build/C/man3/siginterrupt.3:83 build/C/man2/signal.2:105
231 #: build/C/man2/signalfd.2:265 build/C/man2/sigpending.2:59
232 #: build/C/man2/sigprocmask.2:99 build/C/man3/sigqueue.3:91
233 #: build/C/man3/sigset.3:154 build/C/man3/sigsetops.3:126
234 #: build/C/man2/sigsuspend.2:76 build/C/man3/sigvec.3:216
235 #: build/C/man3/sigwait.3:74 build/C/man2/sigwaitinfo.2:114
236 #: build/C/man3/sysv_signal.3:57 build/C/man2/timer_create.2:175
237 #: build/C/man2/timer_delete.2:60 build/C/man2/timer_getoverrun.2:90
238 #: build/C/man2/timer_settime.2:182 build/C/man2/timerfd_create.2:302
239 #: build/C/man2/tkill.2:99 build/C/man2/wait.2:384 build/C/man2/wait4.2:135
240 #, no-wrap
241 msgid "ERRORS"
242 msgstr "エラー"
243
244 #. type: Plain text
245 #: build/C/man3/bsd_signal.3:63 build/C/man3/sysv_signal.3:60
246 msgid "As for B<signal>(2)."
247 msgstr "B<signal>(2)  と同じ。"
248
249 #. type: SH
250 #: build/C/man3/bsd_signal.3:63 build/C/man3/raise.3:64
251 #: build/C/man3/sigpause.3:56 build/C/man3/sigqueue.3:114
252 #: build/C/man3/sigsetops.3:131 build/C/man3/sigvec.3:221
253 #: build/C/man3/sigwait.3:80 build/C/man3/sysv_signal.3:60
254 #, no-wrap
255 msgid "ATTRIBUTES"
256 msgstr "属性"
257
258 #. type: SS
259 #: build/C/man3/bsd_signal.3:64 build/C/man3/raise.3:65
260 #: build/C/man3/sigpause.3:57 build/C/man3/sigqueue.3:115
261 #: build/C/man3/sigsetops.3:132 build/C/man3/sigvec.3:222
262 #: build/C/man3/sigwait.3:81 build/C/man3/sysv_signal.3:61
263 #, no-wrap
264 msgid "Multithreading (see pthreads(7))"
265 msgstr "マルチスレッディング (pthreads(7) 参照)"
266
267 #. type: Plain text
268 #: build/C/man3/bsd_signal.3:68
269 msgid "The B<bsd_signal>()  function is thread-safe."
270 msgstr "B<bsd_signal>()  関数はスレッドセーフである。"
271
272 #. type: SH
273 #: build/C/man3/bsd_signal.3:68 build/C/man2/eventfd.2:266
274 #: build/C/man2/getitimer.2:148 build/C/man3/gsignal.3:95
275 #: build/C/man2/kill.2:121 build/C/man2/killpg.2:111 build/C/man2/pause.2:57
276 #: build/C/man2/prctl.2:1066 build/C/man3/profil.3:70
277 #: build/C/man3/psignal.3:99 build/C/man3/raise.3:69
278 #: build/C/man2/restart_syscall.2:96 build/C/man2/rt_sigqueueinfo.2:176
279 #: build/C/man2/s390_runtime_instr.2:81 build/C/man2/sgetmask.2:66
280 #: build/C/man2/sigaction.2:677 build/C/man2/sigaltstack.2:156
281 #: build/C/man7/sigevent.7:130 build/C/man3/siginterrupt.3:87
282 #: build/C/man2/signal.2:110 build/C/man7/signal.7:838
283 #: build/C/man2/signalfd.2:307 build/C/man3/sigpause.3:61
284 #: build/C/man2/sigpending.2:64 build/C/man2/sigprocmask.2:112
285 #: build/C/man3/sigqueue.3:119 build/C/man2/sigreturn.2:60
286 #: build/C/man3/sigset.3:173 build/C/man3/sigsetops.3:144
287 #: build/C/man2/sigsuspend.2:84 build/C/man3/sigvec.3:234
288 #: build/C/man3/sigwait.3:85 build/C/man2/sigwaitinfo.2:133
289 #: build/C/man3/sysv_signal.3:65 build/C/man2/timer_create.2:193
290 #: build/C/man2/timer_delete.2:67 build/C/man2/timer_getoverrun.2:97
291 #: build/C/man2/timer_settime.2:207 build/C/man2/timerfd_create.2:371
292 #: build/C/man2/tkill.2:116 build/C/man2/wait.2:422 build/C/man2/wait4.2:138
293 #, no-wrap
294 msgid "CONFORMING TO"
295 msgstr "準拠"
296
297 #. type: Plain text
298 #: build/C/man3/bsd_signal.3:75
299 msgid ""
300 "4.2BSD, POSIX.1-2001.  POSIX.1-2008 removes the specification of "
301 "B<bsd_signal>(), recommending the use of B<sigaction>(2)  instead."
302 msgstr ""
303 "4.2BSD, POSIX.1-2001.  POSIX.1-2008 では B<bsd_signal>()  の仕様が削除されて"
304 "いる。 代わりに、 B<sigaction>(2)  の使用が推奨されている。"
305
306 #. type: SH
307 #: build/C/man3/bsd_signal.3:75 build/C/man2/eventfd.2:271
308 #: build/C/man2/getitimer.2:158 build/C/man2/kill.2:123
309 #: build/C/man2/killpg.2:115 build/C/man3/raise.3:71
310 #: build/C/man2/restart_syscall.2:98 build/C/man2/rt_sigqueueinfo.2:178
311 #: build/C/man2/s390_runtime_instr.2:84 build/C/man2/sgetmask.2:68
312 #: build/C/man2/sigaction.2:680 build/C/man2/sigaltstack.2:158
313 #: build/C/man2/signal.2:112 build/C/man2/signalfd.2:312
314 #: build/C/man3/sigpause.3:65 build/C/man2/sigpending.2:66
315 #: build/C/man2/sigprocmask.2:114 build/C/man3/sigqueue.3:121
316 #: build/C/man2/sigreturn.2:64 build/C/man3/sigset.3:190
317 #: build/C/man3/sigsetops.3:146 build/C/man2/sigsuspend.2:86
318 #: build/C/man3/sigvec.3:240 build/C/man3/sigwait.3:87
319 #: build/C/man2/sigwaitinfo.2:135 build/C/man3/sysv_signal.3:67
320 #: build/C/man2/timer_create.2:195 build/C/man2/timer_getoverrun.2:99
321 #: build/C/man2/tkill.2:122 build/C/man2/wait.2:424 build/C/man2/wait4.2:147
322 #, no-wrap
323 msgid "NOTES"
324 msgstr "注意"
325
326 #. type: Plain text
327 #: build/C/man3/bsd_signal.3:81
328 msgid ""
329 "Use of B<bsd_signal>()  should be avoided; use B<sigaction>(2)  instead."
330 msgstr ""
331 "B<bsd_signal>()  の使用は避けるべきである。代わりに B<sigaction>(2)  を使うこ"
332 "と。"
333
334 #. type: Plain text
335 #: build/C/man3/bsd_signal.3:92
336 msgid ""
337 "On modern Linux systems, B<bsd_signal>()  and B<signal>(2)  are equivalent.  "
338 "But on older systems, B<signal>(2)  provided unreliable signal semantics; "
339 "see B<signal>(2)  for details."
340 msgstr ""
341 "最近の Linux システムでは、 B<bsd_signal>()  と B<signal>(2)  は等価である。"
342 "しかし、以前のシステムでは、 B<signal>(2)  は信頼性に欠けるシグナル処理方式を"
343 "提供していた。 詳細は B<signal>(2)  を参照。"
344
345 #. type: Plain text
346 #: build/C/man3/bsd_signal.3:99 build/C/man3/sysv_signal.3:92
347 msgid ""
348 "The use of I<sighandler_t> is a GNU extension; this type is defined only if "
349 "the B<_GNU_SOURCE> feature test macro is defined."
350 msgstr ""
351 "I<sighandler_t> を使っているのは GNU による拡張である。 この型は機能検査マク"
352 "ロ B<_GNU_SOURCE> を定義した場合にのみ定義される。"
353
354 #. type: SH
355 #: build/C/man3/bsd_signal.3:99 build/C/man2/eventfd.2:417
356 #: build/C/man2/getitimer.2:239 build/C/man3/gsignal.3:103
357 #: build/C/man2/kill.2:171 build/C/man2/killpg.2:134 build/C/man2/pause.2:59
358 #: build/C/man2/prctl.2:1080 build/C/man3/profil.3:81
359 #: build/C/man3/psignal.3:113 build/C/man3/raise.3:82
360 #: build/C/man2/restart_syscall.2:123 build/C/man2/rt_sigqueueinfo.2:188
361 #: build/C/man2/s390_runtime_instr.2:88 build/C/man2/sgetmask.2:82
362 #: build/C/man2/sigaction.2:793 build/C/man2/sigaltstack.2:232
363 #: build/C/man7/sigevent.7:132 build/C/man3/siginterrupt.3:96
364 #: build/C/man2/signal.2:278 build/C/man7/signal.7:850
365 #: build/C/man2/signalfd.2:433 build/C/man3/sigpause.3:111
366 #: build/C/man2/sigpending.2:91 build/C/man2/sigprocmask.2:144
367 #: build/C/man3/sigqueue.3:154 build/C/man2/sigreturn.2:74
368 #: build/C/man3/sigset.3:266 build/C/man3/sigsetops.3:185
369 #: build/C/man2/sigsuspend.2:108 build/C/man3/sigvec.3:265
370 #: build/C/man3/sigwait.3:94 build/C/man2/sigwaitinfo.2:187
371 #: build/C/man3/sysv_signal.3:92 build/C/man2/timer_create.2:407
372 #: build/C/man2/timer_delete.2:69 build/C/man2/timer_getoverrun.2:131
373 #: build/C/man2/timer_settime.2:212 build/C/man2/timerfd_create.2:541
374 #: build/C/man2/tkill.2:131 build/C/man2/wait.2:633 build/C/man2/wait4.2:165
375 #, no-wrap
376 msgid "SEE ALSO"
377 msgstr "関連項目"
378
379 #. type: Plain text
380 #: build/C/man3/bsd_signal.3:104
381 msgid "B<sigaction>(2), B<signal>(2), B<sysv_signal>(3), B<signal>(7)"
382 msgstr "B<sigaction>(2), B<signal>(2), B<sysv_signal>(3), B<signal>(7)"
383
384 #. type: SH
385 #: build/C/man3/bsd_signal.3:104 build/C/man2/eventfd.2:428
386 #: build/C/man2/getitimer.2:246 build/C/man3/gsignal.3:107
387 #: build/C/man2/kill.2:181 build/C/man2/killpg.2:140 build/C/man2/pause.2:64
388 #: build/C/man2/prctl.2:1083 build/C/man3/profil.3:86
389 #: build/C/man3/psignal.3:118 build/C/man3/raise.3:89
390 #: build/C/man2/restart_syscall.2:131 build/C/man2/rt_sigqueueinfo.2:196
391 #: build/C/man2/s390_runtime_instr.2:91 build/C/man2/sgetmask.2:85
392 #: build/C/man2/sigaction.2:813 build/C/man2/sigaltstack.2:239
393 #: build/C/man7/sigevent.7:142 build/C/man3/siginterrupt.3:98
394 #: build/C/man2/signal.2:297 build/C/man7/signal.7:884
395 #: build/C/man2/signalfd.2:446 build/C/man3/sigpause.3:119
396 #: build/C/man2/sigpending.2:99 build/C/man2/sigprocmask.2:155
397 #: build/C/man3/sigqueue.3:162 build/C/man2/sigreturn.2:80
398 #: build/C/man3/sigset.3:276 build/C/man3/sigsetops.3:190
399 #: build/C/man2/sigsuspend.2:118 build/C/man3/sigvec.3:275
400 #: build/C/man3/sigwait.3:102 build/C/man2/sigwaitinfo.2:199
401 #: build/C/man3/sysv_signal.3:97 build/C/man2/timer_create.2:422
402 #: build/C/man2/timer_delete.2:75 build/C/man2/timer_getoverrun.2:141
403 #: build/C/man2/timer_settime.2:216 build/C/man2/timerfd_create.2:553
404 #: build/C/man2/tkill.2:136 build/C/man2/wait.2:645 build/C/man2/wait4.2:172
405 #, no-wrap
406 msgid "COLOPHON"
407 msgstr "この文書について"
408
409 #. type: Plain text
410 #: build/C/man3/bsd_signal.3:111 build/C/man2/eventfd.2:435
411 #: build/C/man2/getitimer.2:253 build/C/man3/gsignal.3:114
412 #: build/C/man2/kill.2:188 build/C/man2/killpg.2:147 build/C/man2/pause.2:71
413 #: build/C/man2/prctl.2:1090 build/C/man3/profil.3:93
414 #: build/C/man3/psignal.3:125 build/C/man3/raise.3:96
415 #: build/C/man2/restart_syscall.2:138 build/C/man2/rt_sigqueueinfo.2:203
416 #: build/C/man2/s390_runtime_instr.2:98 build/C/man2/sgetmask.2:92
417 #: build/C/man2/sigaction.2:820 build/C/man2/sigaltstack.2:246
418 #: build/C/man7/sigevent.7:149 build/C/man3/siginterrupt.3:105
419 #: build/C/man2/signal.2:304 build/C/man7/signal.7:891
420 #: build/C/man2/signalfd.2:453 build/C/man3/sigpause.3:126
421 #: build/C/man2/sigpending.2:106 build/C/man2/sigprocmask.2:162
422 #: build/C/man3/sigqueue.3:169 build/C/man2/sigreturn.2:87
423 #: build/C/man3/sigset.3:283 build/C/man3/sigsetops.3:197
424 #: build/C/man2/sigsuspend.2:125 build/C/man3/sigvec.3:282
425 #: build/C/man3/sigwait.3:109 build/C/man2/sigwaitinfo.2:206
426 #: build/C/man3/sysv_signal.3:104 build/C/man2/timer_create.2:429
427 #: build/C/man2/timer_delete.2:82 build/C/man2/timer_getoverrun.2:148
428 #: build/C/man2/timer_settime.2:223 build/C/man2/timerfd_create.2:560
429 #: build/C/man2/tkill.2:143 build/C/man2/wait.2:652 build/C/man2/wait4.2:179
430 msgid ""
431 "This page is part of release 3.65 of the Linux I<man-pages> project.  A "
432 "description of the project, and information about reporting bugs, can be "
433 "found at \\%http://www.kernel.org/doc/man-pages/."
434 msgstr "この man ページは Linux I<man-pages> プロジェクトのリリース 3.65 の一部である。 プロジェクトの説明とバグ報告に関する情報は \\%http://www.kernel.org/doc/man-pages/ に書かれている。"
435
436 #. type: TH
437 #: build/C/man2/eventfd.2:22
438 #, no-wrap
439 msgid "EVENTFD"
440 msgstr "EVENTFD"
441
442 #. type: TH
443 #: build/C/man2/eventfd.2:22
444 #, no-wrap
445 msgid "2010-08-30"
446 msgstr "2010-08-30"
447
448 #. type: TH
449 #: build/C/man2/eventfd.2:22 build/C/man2/getitimer.2:12
450 #: build/C/man2/kill.2:44 build/C/man2/killpg.2:42 build/C/man2/pause.2:30
451 #: build/C/man2/prctl.2:52 build/C/man3/profil.3:28
452 #: build/C/man2/restart_syscall.2:33 build/C/man2/rt_sigqueueinfo.2:25
453 #: build/C/man2/sgetmask.2:26 build/C/man2/sigaction.2:47
454 #: build/C/man2/sigaltstack.2:27 build/C/man2/signal.2:36
455 #: build/C/man7/signal.7:46 build/C/man2/signalfd.2:20
456 #: build/C/man3/sigpause.3:25 build/C/man2/sigpending.2:29
457 #: build/C/man2/sigprocmask.2:29 build/C/man3/sigqueue.3:28
458 #: build/C/man2/sigreturn.2:29 build/C/man3/sigset.3:26
459 #: build/C/man3/sigsetops.3:31 build/C/man2/sigsuspend.2:29
460 #: build/C/man3/sigvec.3:26 build/C/man3/sigwait.3:26
461 #: build/C/man2/sigwaitinfo.2:25 build/C/man2/timer_create.2:31
462 #: build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26
463 #: build/C/man2/timer_settime.2:26 build/C/man2/timerfd_create.2:21
464 #: build/C/man2/tkill.2:29 build/C/man2/wait.2:49 build/C/man2/wait4.2:33
465 #, no-wrap
466 msgid "Linux"
467 msgstr "Linux"
468
469 #. type: Plain text
470 #: build/C/man2/eventfd.2:25
471 msgid "eventfd - create a file descriptor for event notification"
472 msgstr "eventfd - イベント通知用のファイルディスクリプタを生成する"
473
474 #. type: Plain text
475 #: build/C/man2/eventfd.2:27
476 msgid "B<#include E<lt>sys/eventfd.hE<gt>>"
477 msgstr "B<#include E<lt>sys/eventfd.hE<gt>>"
478
479 #. type: Plain text
480 #: build/C/man2/eventfd.2:29
481 msgid "B<int eventfd(unsigned int >I<initval>B<, int >I<flags>B<);>"
482 msgstr "B<int eventfd(unsigned int >I<initval>B<, int >I<flags>B<);>"
483
484 #. type: Plain text
485 #: build/C/man2/eventfd.2:39
486 msgid ""
487 "B<eventfd>()  creates an \"eventfd object\" that can be used as an event "
488 "wait/notify mechanism by user-space applications, and by the kernel to "
489 "notify user-space applications of events.  The object contains an unsigned "
490 "64-bit integer (I<uint64_t>)  counter that is maintained by the kernel.  "
491 "This counter is initialized with the value specified in the argument "
492 "I<initval>."
493 msgstr ""
494 "B<eventfd>()  は \"eventfd オブジェクト\" を生成する。 eventfd オブジェクトは"
495 "ユーザ空間アプリケーションがイベント待ち受け/通知用の 仕組みとして使うことが"
496 "できる。また、カーネルがユーザ空間アプリケーションに イベントを通知するために"
497 "も使うことができる。 このオブジェクトには、unsigned の 64 ビット整数 "
498 "(I<uint64_t>)  型のカウンタが含まれており、このカウンタはカーネルにより管理さ"
499 "れる。 このカウンタは I<initval> 引き数で指定された値で初期化される。"
500
501 #. type: Plain text
502 #: build/C/man2/eventfd.2:44
503 msgid ""
504 "The following values may be bitwise ORed in I<flags> to change the behaviour "
505 "of B<eventfd>():"
506 msgstr "以下の値のいくつかをビット単位の論理和 (OR) で指定することで、 B<eventfd>() の振舞いを変更することができる。"
507
508 #. type: TP
509 #: build/C/man2/eventfd.2:44
510 #, no-wrap
511 msgid "B<EFD_CLOEXEC> (since Linux 2.6.27)"
512 msgstr "B<EFD_CLOEXEC> (Linux 2.6.27 以降)"
513
514 #. type: Plain text
515 #: build/C/man2/eventfd.2:54 build/C/man2/signalfd.2:95
516 #: build/C/man2/timerfd_create.2:103
517 msgid ""
518 "Set the close-on-exec (B<FD_CLOEXEC>)  flag on the new file descriptor.  See "
519 "the description of the B<O_CLOEXEC> flag in B<open>(2)  for reasons why this "
520 "may be useful."
521 msgstr ""
522 "新しいファイルディスクリプタに対して close-on-exec (B<FD_CLOEXEC>)  フラグを"
523 "セットする。 このフラグが役に立つ理由については、 B<open>(2)  の "
524 "B<O_CLOEXEC> フラグの説明を参照のこと。"
525
526 #. type: TP
527 #: build/C/man2/eventfd.2:54
528 #, no-wrap
529 msgid "B<EFD_NONBLOCK> (since Linux 2.6.27)"
530 msgstr "B<EFD_NONBLOCK> (Linux 2.6.27 以降)"
531
532 #. type: Plain text
533 #: build/C/man2/eventfd.2:62 build/C/man2/signalfd.2:85
534 #: build/C/man2/timerfd_create.2:93
535 msgid ""
536 "Set the B<O_NONBLOCK> file status flag on the new open file description.  "
537 "Using this flag saves extra calls to B<fcntl>(2)  to achieve the same result."
538 msgstr ""
539 "新しく生成されるオープンファイル記述 (open file description) の "
540 "B<O_NONBLOCK> ファイルステータスフラグをセットする。 このフラグを使うこと"
541 "で、 B<O_NONBLOCK> をセットするために B<fcntl>(2)  を追加で呼び出す必要がなく"
542 "なる。"
543
544 #. type: TP
545 #: build/C/man2/eventfd.2:62
546 #, no-wrap
547 msgid "B<EFD_SEMAPHORE> (since Linux 2.6.30)"
548 msgstr "B<EFD_SEMAPHORE> (Linux 2.6.30 以降)"
549
550 #. type: Plain text
551 #: build/C/man2/eventfd.2:66
552 msgid ""
553 "Provide semaphore-like semantics for reads from the new file descriptor.  "
554 "See below."
555 msgstr "新しいファイルディスクリプタからの読み出しにおいて、セマフォ風の動作を行う。 下記参照。"
556
557 #. type: Plain text
558 #: build/C/man2/eventfd.2:70 build/C/man2/signalfd.2:99
559 msgid ""
560 "In Linux up to version 2.6.26, the I<flags> argument is unused, and must be "
561 "specified as zero."
562 msgstr ""
563 "バージョン 2.6.26 以前の Linux では、 I<flags> 引き数は未使用であり、0 を指定"
564 "しなければならない。"
565
566 #. type: Plain text
567 #: build/C/man2/eventfd.2:76
568 msgid ""
569 "As its return value, B<eventfd>()  returns a new file descriptor that can be "
570 "used to refer to the eventfd object.  The following operations can be "
571 "performed on the file descriptor:"
572 msgstr ""
573 "B<eventfd>()  は eventfd オブジェクトを参照するのに使用できる新しいファイル"
574 "ディスクリプタ を返す。返されたファイルディスクリプタに対しては以下の操作を実"
575 "行できる。"
576
577 #. type: TP
578 #: build/C/man2/eventfd.2:76 build/C/man2/signalfd.2:102
579 #: build/C/man2/timerfd_create.2:211
580 #, no-wrap
581 msgid "B<read>(2)"
582 msgstr "B<read>(2)"
583
584 #. type: Plain text
585 #: build/C/man2/eventfd.2:86
586 msgid ""
587 "Each successful B<read>(2)  returns an 8-byte integer.  A B<read>(2)  will "
588 "fail with the error B<EINVAL> if the size of the supplied buffer is less "
589 "than 8 bytes."
590 msgstr "B<read>(2) は成功すると、8 バイトの整数を返す。 渡されたバッファの大きさが 8 バイト未満の場合、 B<read>(2)  はエラー B<EINVAL> で失敗する。"
591
592 #. type: Plain text
593 #: build/C/man2/eventfd.2:91
594 msgid ""
595 "The value returned by B<read>(2)  is in host byte order\\(emthat is, the "
596 "native byte order for integers on the host machine."
597 msgstr "B<read>(2) が返す値は、ホストバイトオーダ、つまり、そのホストマシンにおける整数の通常のバイトオーダである。"
598
599 #. type: Plain text
600 #: build/C/man2/eventfd.2:98
601 msgid ""
602 "The semantics of B<read>(2)  depend on whether the eventfd counter currently "
603 "has a nonzero value and whether the B<EFD_SEMAPHORE> flag was specified when "
604 "creating the eventfd file descriptor:"
605 msgstr "B<read>(2) の動作は、 eventfd カウンタの現在の値が 0 以外であるかと、 eventfd ファイルディスクリプタを作成する際に B<EFD_SEMAPHORE> フラグが指定されたか、により変化する。"
606
607 #. type: IP
608 #: build/C/man2/eventfd.2:99 build/C/man2/eventfd.2:106
609 #: build/C/man2/eventfd.2:113 build/C/man2/eventfd.2:158
610 #: build/C/man2/eventfd.2:168 build/C/man2/eventfd.2:178
611 #: build/C/man2/prctl.2:865 build/C/man2/prctl.2:870 build/C/man2/prctl.2:875
612 #: build/C/man2/prctl.2:885 build/C/man3/psignal.3:105
613 #: build/C/man3/psignal.3:109 build/C/man2/sigaction.2:298
614 #: build/C/man2/sigaction.2:313 build/C/man2/sigaction.2:329
615 #: build/C/man2/sigaction.2:344 build/C/man2/sigaction.2:391
616 #: build/C/man2/sigaction.2:427 build/C/man2/signal.2:68
617 #: build/C/man2/signal.2:73 build/C/man2/signal.2:80 build/C/man2/signal.2:224
618 #: build/C/man2/signal.2:228 build/C/man2/signal.2:267
619 #: build/C/man7/signal.7:149 build/C/man7/signal.7:157
620 #: build/C/man7/signal.7:615 build/C/man7/signal.7:617
621 #: build/C/man7/signal.7:638 build/C/man7/signal.7:653
622 #: build/C/man7/signal.7:657 build/C/man7/signal.7:664
623 #: build/C/man7/signal.7:680 build/C/man7/signal.7:686
624 #: build/C/man7/signal.7:693 build/C/man7/signal.7:698
625 #: build/C/man7/signal.7:717 build/C/man7/signal.7:736
626 #: build/C/man7/signal.7:743 build/C/man7/signal.7:752
627 #: build/C/man7/signal.7:760 build/C/man7/signal.7:766
628 #: build/C/man7/signal.7:771 build/C/man7/signal.7:791
629 #: build/C/man7/signal.7:810 build/C/man7/signal.7:813
630 #: build/C/man7/signal.7:816 build/C/man7/signal.7:819
631 #: build/C/man7/signal.7:824 build/C/man7/signal.7:830
632 #: build/C/man7/signal.7:834 build/C/man3/sigwait.3:62
633 #: build/C/man3/sigwait.3:67 build/C/man2/timer_create.2:216
634 #: build/C/man2/timer_create.2:219 build/C/man2/timer_create.2:222
635 #: build/C/man2/timer_create.2:226 build/C/man2/timer_create.2:229
636 #: build/C/man2/timer_create.2:235 build/C/man2/timer_create.2:239
637 #, no-wrap
638 msgid "*"
639 msgstr "*"
640
641 #. type: Plain text
642 #: build/C/man2/eventfd.2:106
643 msgid ""
644 "If B<EFD_SEMAPHORE> was not specified and the eventfd counter has a nonzero "
645 "value, then a B<read>(2)  returns 8 bytes containing that value, and the "
646 "counter's value is reset to zero."
647 msgstr "B<EFD_SEMAPHORE> が指定されておらず、eventfd カウンタが 0 以外の値の場合、 B<read>(2) はカウンタ値を格納した 8 バイトの値を返し、 カウンタ値は 0 にリセットされる。"
648
649 #. type: Plain text
650 #: build/C/man2/eventfd.2:113
651 msgid ""
652 "If B<EFD_SEMAPHORE> was specified and the eventfd counter has a nonzero "
653 "value, then a B<read>(2)  returns 8 bytes containing the value 1, and the "
654 "counter's value is decremented by 1."
655 msgstr "B<EFD_SEMAPHORE> が指定されていて eventfd カウンタが 0 以外の値の場合、 B<read>(2) は値 1 の 8 バイト値を返し、カウンタ値は 1 減算される。"
656
657 #. type: Plain text
658 #: build/C/man2/eventfd.2:123
659 msgid ""
660 "If the eventfd counter is zero at the time of the call to B<read>(2), then "
661 "the call either blocks until the counter becomes nonzero (at which time, the "
662 "B<read>(2)  proceeds as described above)  or fails with the error B<EAGAIN> "
663 "if the file descriptor has been made nonblocking."
664 msgstr "B<read>(2) を呼び出した時点で eventfd カウンタが 0 の場合、 B<read>(2) はカウンタが 0 以外になるまで停止 (block) する (0 以外になった時点で B<read>(2) は上記で述べた通り実行を再開する)、 もしくはファイルディスクリプタが非停止 (nonblocking) に設定されている場合はエラー B<EAGAIN> で失敗する。"
665
666 #. type: TP
667 #: build/C/man2/eventfd.2:124
668 #, no-wrap
669 msgid "B<write>(2)"
670 msgstr "B<write>(2)"
671
672 #. type: Plain text
673 #: build/C/man2/eventfd.2:141
674 msgid ""
675 "A B<write>(2)  call adds the 8-byte integer value supplied in its buffer to "
676 "the counter.  The maximum value that may be stored in the counter is the "
677 "largest unsigned 64-bit value minus 1 (i.e., 0xfffffffffffffffe).  If the "
678 "addition would cause the counter's value to exceed the maximum, then the "
679 "B<write>(2)  either blocks until a B<read>(2)  is performed on the file "
680 "descriptor, or fails with the error B<EAGAIN> if the file descriptor has "
681 "been made nonblocking."
682 msgstr ""
683 "B<write>(2)  は、引き数のバッファで渡された 8 バイトの整数値をカウンタに加算"
684 "する。 カウンタに格納可能な最大値は unsigned の 64 ビット整数の最大値から 1 "
685 "を引いた値 (すなわち 0xfffffffffffffffe) である。 加算を行うとカウンタ値が最"
686 "大値を超過する場合には、 そのファイルディスクリプタに対して B<read>(2)  が実"
687 "行されるまで、 B<write>(2)  は停止 (block) する、 もしくはファイルディスクリ"
688 "プタが非停止 (nonblocking)  に設定されている場合はエラー B<EAGAIN> で失敗す"
689 "る。"
690
691 #. type: Plain text
692 #: build/C/man2/eventfd.2:148
693 msgid ""
694 "A B<write>(2)  will fail with the error B<EINVAL> if the size of the "
695 "supplied buffer is less than 8 bytes, or if an attempt is made to write the "
696 "value 0xffffffffffffffff."
697 msgstr ""
698 "渡されたバッファの大きさが 8 バイト未満の場合、もしくは 値 "
699 "0xffffffffffffffff を書き込もうとした場合、 B<write>(2)  はエラー B<EINVAL> "
700 "で失敗する。"
701
702 #. type: TP
703 #: build/C/man2/eventfd.2:148 build/C/man2/signalfd.2:140
704 #: build/C/man2/timerfd_create.2:244
705 #, no-wrap
706 msgid "B<poll>(2), B<select>(2) (and similar)"
707 msgstr "B<poll>(2), B<select>(2) (と同様の操作)"
708
709 #. type: Plain text
710 #: build/C/man2/eventfd.2:157
711 msgid ""
712 "The returned file descriptor supports B<poll>(2)  (and analogously B<epoll>"
713 "(7))  and B<select>(2), as follows:"
714 msgstr ""
715 "返されたファイルディスクリプタは、 B<poll>(2)  (B<epoll>(7)  も同じ) や "
716 "B<select>(2)  をサポートしており、以下のような動作をする。"
717
718 #. type: Plain text
719 #: build/C/man2/eventfd.2:168
720 msgid ""
721 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
722 "B<poll>(2)  B<POLLIN> flag)  if the counter has a value greater than 0."
723 msgstr ""
724 "カウンタが 0 より大きい値の場合、 ファイルディスクリプタは読み出し可能となる "
725 "(B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
726
727 #. type: Plain text
728 #: build/C/man2/eventfd.2:178
729 msgid ""
730 "The file descriptor is writable (the B<select>(2)  I<writefds> argument; the "
731 "B<poll>(2)  B<POLLOUT> flag)  if it is possible to write a value of at least "
732 "\"1\" without blocking."
733 msgstr ""
734 "少なくとも値 \"1\" を、停止 (block) を伴わずに書き込める場合、 ファイルディス"
735 "クリプタは書き込み可能となる (B<select>(2)  の I<writefds> 引き数や B<poll>"
736 "(2)  の B<POLLOUT> フラグ)。"
737
738 #. type: Plain text
739 #: build/C/man2/eventfd.2:198
740 msgid ""
741 "If an overflow of the counter value was detected, then B<select>(2)  "
742 "indicates the file descriptor as being both readable and writable, and "
743 "B<poll>(2)  returns a B<POLLERR> event.  As noted above, B<write>(2)  can "
744 "never overflow the counter.  However an overflow can occur if 2^64 eventfd "
745 "\"signal posts\" were performed by the KAIO subsystem (theoretically "
746 "possible, but practically unlikely).  If an overflow has occurred, then "
747 "B<read>(2)  will return that maximum I<uint64_t> value (i.e., "
748 "0xffffffffffffffff)."
749 msgstr ""
750 "カウンタ値のオーバーフローが検出された場合、 B<select>(2)  はファイルディスク"
751 "リプタは読み出し可能と書き込み可能の両方を通知し、 B<poll>(2)  は B<POLLERR> "
752 "イベントを返す。 上述の通り、 B<write>(2)  でカウンタがオーバーフローすること"
753 "は決してない。 しかしながら、 KAIO サブシステムによって 2^64 回の eventfd "
754 "\"signal posts\" が 実行された場合にはオーバーフローが起こり得る (理論的には"
755 "あり得るが、実用的にはあり得ない)。 オーバーフローが発生した場合、 B<read>"
756 "(2)  は I<uint64_t> の最大値 (すなわち 0xffffffffffffffff) を返す。"
757
758 #. type: Plain text
759 #: build/C/man2/eventfd.2:205
760 msgid ""
761 "The eventfd file descriptor also supports the other file-descriptor "
762 "multiplexing APIs: B<pselect>(2)  and B<ppoll>(2)."
763 msgstr ""
764 "eventfd ファイルディスクリプタは、これ以外のファイルディスクリプタ 多重 API "
765 "である B<pselect>(2) と B<ppoll>(2) もサポートしている。"
766
767 #. type: TP
768 #: build/C/man2/eventfd.2:205 build/C/man2/signalfd.2:160
769 #: build/C/man2/timerfd_create.2:262
770 #, no-wrap
771 msgid "B<close>(2)"
772 msgstr "B<close>(2)"
773
774 #. type: Plain text
775 #: build/C/man2/eventfd.2:210
776 msgid ""
777 "When the file descriptor is no longer required it should be closed.  When "
778 "all file descriptors associated with the same eventfd object have been "
779 "closed, the resources for object are freed by the kernel."
780 msgstr ""
781 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
782 "る。 同じ eventfd オブジェクトに関連付けられたファイルディスクリプタが全て ク"
783 "ローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
784
785 #. type: Plain text
786 #: build/C/man2/eventfd.2:222
787 msgid ""
788 "A copy of the file descriptor created by B<eventfd>()  is inherited by the "
789 "child produced by B<fork>(2).  The duplicate file descriptor is associated "
790 "with the same eventfd object.  File descriptors created by B<eventfd>()  are "
791 "preserved across B<execve>(2), unless the close-on-exec flag has been set."
792 msgstr "B<fork>(2) で生成された子プロセスは、 B<eventfd>() で生成されたファイルディスクリプタのコピーを継承する。 複製されたファイルディスクリプタは同じ eventfd オブジェクトに関連付けられる。 close-on-exec フラグが設定されていない場合、 B<execve>(2) の前後で B<eventfd>() で生成されたファイルディスクリプタは保持される。"
793
794 #. type: Plain text
795 #: build/C/man2/eventfd.2:229
796 msgid ""
797 "On success, B<eventfd>()  returns a new eventfd file descriptor.  On error, "
798 "-1 is returned and I<errno> is set to indicate the error."
799 msgstr ""
800 "成功すると、 B<eventfd>()  は新規の eventfd ファイルディスクリプタを返す。 エ"
801 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
802
803 #. type: TP
804 #: build/C/man2/eventfd.2:230 build/C/man2/getitimer.2:135
805 #: build/C/man2/kill.2:106 build/C/man2/killpg.2:95 build/C/man2/prctl.2:827
806 #: build/C/man2/prctl.2:832 build/C/man2/prctl.2:844 build/C/man2/prctl.2:849
807 #: build/C/man2/prctl.2:858 build/C/man2/prctl.2:898 build/C/man2/prctl.2:908
808 #: build/C/man2/prctl.2:916 build/C/man2/prctl.2:927 build/C/man2/prctl.2:936
809 #: build/C/man2/prctl.2:950 build/C/man2/prctl.2:962 build/C/man2/prctl.2:972
810 #: build/C/man2/rt_sigqueueinfo.2:141 build/C/man2/s390_runtime_instr.2:66
811 #: build/C/man2/sigaction.2:670 build/C/man2/sigaltstack.2:142
812 #: build/C/man3/siginterrupt.3:84 build/C/man2/signal.2:106
813 #: build/C/man2/signalfd.2:271 build/C/man2/signalfd.2:279
814 #: build/C/man2/sigprocmask.2:107 build/C/man3/sigqueue.3:98
815 #: build/C/man3/sigsetops.3:127 build/C/man3/sigwait.3:75
816 #: build/C/man2/sigwaitinfo.2:129 build/C/man2/timer_create.2:179
817 #: build/C/man2/timer_delete.2:61 build/C/man2/timer_getoverrun.2:91
818 #: build/C/man2/timer_settime.2:191 build/C/man2/timer_settime.2:199
819 #: build/C/man2/timerfd_create.2:305 build/C/man2/timerfd_create.2:313
820 #: build/C/man2/timerfd_create.2:349 build/C/man2/timerfd_create.2:356
821 #: build/C/man2/timerfd_create.2:362 build/C/man2/tkill.2:100
822 #: build/C/man2/wait.2:417
823 #, no-wrap
824 msgid "B<EINVAL>"
825 msgstr "B<EINVAL>"
826
827 #. type: Plain text
828 #: build/C/man2/eventfd.2:234
829 msgid "An unsupported value was specified in I<flags>."
830 msgstr "I<flags> にサポートされていない値が指定された。"
831
832 #. type: TP
833 #: build/C/man2/eventfd.2:234 build/C/man2/signalfd.2:286
834 #: build/C/man2/timerfd_create.2:320
835 #, no-wrap
836 msgid "B<EMFILE>"
837 msgstr "B<EMFILE>"
838
839 #. type: Plain text
840 #: build/C/man2/eventfd.2:237
841 msgid "The per-process limit on open file descriptors has been reached."
842 msgstr ""
843 "オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。"
844
845 #. type: TP
846 #: build/C/man2/eventfd.2:237 build/C/man2/signalfd.2:289
847 #: build/C/man2/timerfd_create.2:323
848 #, no-wrap
849 msgid "B<ENFILE>"
850 msgstr "B<ENFILE>"
851
852 #. type: Plain text
853 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
854 #: build/C/man2/timerfd_create.2:327
855 msgid ""
856 "The system-wide limit on the total number of open files has been reached."
857 msgstr "オープン済みのファイル総数がシステム全体の上限に達していた。"
858
859 #. type: TP
860 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
861 #: build/C/man2/timerfd_create.2:327
862 #, no-wrap
863 msgid "B<ENODEV>"
864 msgstr "B<ENODEV>"
865
866 #. type: Plain text
867 #: build/C/man2/eventfd.2:249 build/C/man2/signalfd.2:296
868 #: build/C/man2/timerfd_create.2:330
869 msgid "Could not mount (internal) anonymous inode device."
870 msgstr "(カーネル内の) 無名 inode デバイスをマウントできなかった。"
871
872 #. type: TP
873 #: build/C/man2/eventfd.2:249 build/C/man2/s390_runtime_instr.2:73
874 #: build/C/man2/sigaltstack.2:147 build/C/man2/signalfd.2:296
875 #: build/C/man2/timer_create.2:187 build/C/man2/timerfd_create.2:330
876 #, no-wrap
877 msgid "B<ENOMEM>"
878 msgstr "B<ENOMEM>"
879
880 #. type: Plain text
881 #: build/C/man2/eventfd.2:253
882 msgid "There was insufficient memory to create a new eventfd file descriptor."
883 msgstr ""
884 "新しい eventfd ファイルディスクリプタを生成するのに十分なメモリがなかった。"
885
886 #. type: SH
887 #: build/C/man2/eventfd.2:253 build/C/man2/prctl.2:1061
888 #: build/C/man3/psignal.3:95 build/C/man2/restart_syscall.2:92
889 #: build/C/man2/rt_sigqueueinfo.2:169 build/C/man2/s390_runtime_instr.2:79
890 #: build/C/man2/signalfd.2:299 build/C/man3/sigqueue.3:112
891 #: build/C/man2/timer_create.2:191 build/C/man2/timer_delete.2:65
892 #: build/C/man2/timer_getoverrun.2:95 build/C/man2/timer_settime.2:205
893 #: build/C/man2/timerfd_create.2:368 build/C/man2/tkill.2:111
894 #, no-wrap
895 msgid "VERSIONS"
896 msgstr "バージョン"
897
898 #.  eventfd() is in glibc 2.7, but reportedly does not build
899 #. type: Plain text
900 #: build/C/man2/eventfd.2:266
901 msgid ""
902 "B<eventfd>()  is available on Linux since kernel 2.6.22.  Working support is "
903 "provided in glibc since version 2.8.  The B<eventfd2>()  system call (see "
904 "NOTES) is available on Linux since kernel 2.6.27.  Since version 2.9, the "
905 "glibc B<eventfd>()  wrapper will employ the B<eventfd2>()  system call, if "
906 "it is supported by the kernel."
907 msgstr ""
908 "B<eventfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
909 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<eventfd2>()  "
910 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
911 "る。 バージョン 2.9 以降では、glibc の B<eventfd>()  のラッパー関数は、カーネ"
912 "ルが対応していれば B<eventfd2>()  システムコールを利用する。"
913
914 #. type: Plain text
915 #: build/C/man2/eventfd.2:271
916 msgid "B<eventfd>()  and B<eventfd2>()  are Linux-specific."
917 msgstr "B<eventfd>()  と B<eventfd2>()  は Linux 固有である。"
918
919 #. type: Plain text
920 #: build/C/man2/eventfd.2:279
921 msgid ""
922 "Applications can use an eventfd file descriptor instead of a pipe (see "
923 "B<pipe>(2))  in all cases where a pipe is used simply to signal events.  The "
924 "kernel overhead of an eventfd file descriptor is much lower than that of a "
925 "pipe, and only one file descriptor is required (versus the two required for "
926 "a pipe)."
927 msgstr ""
928 "アプリケーションは、パイプをイベントを通知するためだけに使用している 全ての場"
929 "面において、パイプの代わりに eventfd ファイルディスクリプタを 使用することが"
930 "できる。 eventfd ファイルディスクリプタを使う方が、パイプを使う場合に比べて "
931 "カーネルでのオーバヘッドは比べるとずっと小さく、ファイルディスクリプタも 一つ"
932 "しか必要としない (パイプの場合は二つ必要である)。"
933
934 #.  or eventually syslets/threadlets
935 #. type: Plain text
936 #: build/C/man2/eventfd.2:285
937 msgid ""
938 "When used in the kernel, an eventfd file descriptor can provide a bridge "
939 "from kernel to user space, allowing, for example, functionalities like KAIO "
940 "(kernel AIO)  to signal to a file descriptor that some operation is complete."
941 msgstr ""
942 "カーネル内で使用すると、eventfd ファイルディスクリプタはカーネル空間からユー"
943 "ザ空間へのブリッジ機能を提供することができ、 例えば KAIO (kernel AIO)  のよう"
944 "な機能が、あるファイルディスクリプタに何らかの操作が完了したことを 通知するこ"
945 "とができる。"
946
947 #. type: Plain text
948 #: build/C/man2/eventfd.2:302
949 msgid ""
950 "A key point about an eventfd file descriptor is that it can be monitored "
951 "just like any other file descriptor using B<select>(2), B<poll>(2), or "
952 "B<epoll>(7).  This means that an application can simultaneously monitor the "
953 "readiness of \"traditional\" files and the readiness of other kernel "
954 "mechanisms that support the eventfd interface.  (Without the B<eventfd>()  "
955 "interface, these mechanisms could not be multiplexed via B<select>(2), "
956 "B<poll>(2), or B<epoll>(7).)"
957 msgstr ""
958 "eventfd ファイルディスクリプタの重要な点は、 eventfd ファイルディスクリプタ"
959 "が B<select>(2), B<poll>(2), B<epoll>(7)  を使って他のファイルディスクリプタ"
960 "と全く同様に監視できる点である。 このことは、アプリケーションは「従来の "
961 "(traditional)」 ファイルの状態変化と eventfd インタフェースをサポートする他の"
962 "カーネル機構の状態変化を同時に監視 できることを意味する (B<eventfd>()  インタ"
963 "フェースがない時には、これらのカーネル機構は B<select>(2), B<poll>(2), "
964 "B<epoll>(7)  経由で多重することはできなかった)。"
965
966 #. type: SS
967 #: build/C/man2/eventfd.2:302 build/C/man2/signalfd.2:336
968 #, no-wrap
969 msgid "Underlying Linux system calls"
970 msgstr "下層にある Linux のシステムコール"
971
972 #. type: Plain text
973 #: build/C/man2/eventfd.2:316
974 msgid ""
975 "There are two underlying Linux system calls: B<eventfd>()  and the more "
976 "recent B<eventfd2>().  The former system call does not implement a I<flags> "
977 "argument.  The latter system call implements the I<flags> values described "
978 "above.  The glibc wrapper function will use B<eventfd2>()  where it is "
979 "available."
980 msgstr ""
981 "下層にある Linux システムコールは二種類あり、 B<eventfd>()  と、もっと新しい "
982 "B<eventfd2>()  である。 B<eventfd>()  は I<flags> 引き数を実装していない。 "
983 "B<eventfd2>()  では上記の値の I<flags> が実装されている。 glibc のラッパー関"
984 "数は、 B<eventfd2>()  が利用可能であれば、これを使用する。"
985
986 #. type: SS
987 #: build/C/man2/eventfd.2:316
988 #, no-wrap
989 msgid "Additional glibc features"
990 msgstr "glibc の追加機能"
991
992 #. type: Plain text
993 #: build/C/man2/eventfd.2:320
994 msgid ""
995 "The GNU C library defines an additional type, and two functions that attempt "
996 "to abstract some of the details of reading and writing on an eventfd file "
997 "descriptor:"
998 msgstr ""
999 "GNU C ライブラリは、eventfd ファイルディスクリプタの読み出しと書き込みに を関"
1000 "する詳細のいくつか抽象化するために、一つの型と、二つの関数を追加で 定義してい"
1001 "る。"
1002
1003 #. type: Plain text
1004 #: build/C/man2/eventfd.2:324
1005 #, no-wrap
1006 msgid "typedef uint64_t eventfd_t;\n"
1007 msgstr "typedef uint64_t eventfd_t;\n"
1008
1009 #. type: Plain text
1010 #: build/C/man2/eventfd.2:327
1011 #, no-wrap
1012 msgid ""
1013 "int eventfd_read(int fd, eventfd_t *value);\n"
1014 "int eventfd_write(int fd, eventfd_t value);\n"
1015 msgstr ""
1016 "int eventfd_read(int fd, eventfd_t *value);\n"
1017 "int eventfd_write(int fd, eventfd_t value);\n"
1018
1019 #. type: Plain text
1020 #: build/C/man2/eventfd.2:334
1021 msgid ""
1022 "The functions perform the read and write operations on an eventfd file "
1023 "descriptor, returning 0 if the correct number of bytes was transferred, or "
1024 "-1 otherwise."
1025 msgstr ""
1026 "これらの関数は、eventfd ファイルディスクリプタに対する読み出しと 書き込みの操"
1027 "作を実行し、正しいバイト数が転送された場合には 0 を返し、そうでない場合は -1 "
1028 "を返す。"
1029
1030 #. type: SH
1031 #: build/C/man2/eventfd.2:334 build/C/man2/sigaction.2:790
1032 #: build/C/man2/sigaltstack.2:215 build/C/man2/signalfd.2:360
1033 #: build/C/man3/sigwait.3:91 build/C/man2/timer_create.2:261
1034 #: build/C/man2/timer_getoverrun.2:128 build/C/man2/timer_settime.2:209
1035 #: build/C/man2/timerfd_create.2:379 build/C/man2/wait.2:550
1036 #, no-wrap
1037 msgid "EXAMPLE"
1038 msgstr "例"
1039
1040 #. type: Plain text
1041 #: build/C/man2/eventfd.2:343
1042 msgid ""
1043 "The following program creates an eventfd file descriptor and then forks to "
1044 "create a child process.  While the parent briefly sleeps, the child writes "
1045 "each of the integers supplied in the program's command-line arguments to the "
1046 "eventfd file descriptor.  When the parent has finished sleeping, it reads "
1047 "from the eventfd file descriptor."
1048 msgstr ""
1049 "以下のプログラムは eventfd ファイルディスクリプタを生成し、 その後 fork を実"
1050 "行して子プロセスを生成する。 親プロセスが少しの間 sleep する間に、子プロセス"
1051 "は プログラムのコマンドライン引き数で指定された整数(列)をそれぞれ eventfd "
1052 "ファイルディスクリプタに書き込む。 親プロセスは sleep を完了すると eventfd "
1053 "ファイルディスクリプタから 読み出しを行う。"
1054
1055 #. type: Plain text
1056 #: build/C/man2/eventfd.2:345
1057 msgid "The following shell session shows a sample run of the program:"
1058 msgstr "以下に示すシェルセッションにこのプログラムの使い方を示す。"
1059
1060 #. type: Plain text
1061 #: build/C/man2/eventfd.2:357
1062 #, no-wrap
1063 msgid ""
1064 "$B< ./a.out 1 2 4 7 14>\n"
1065 "Child writing 1 to efd\n"
1066 "Child writing 2 to efd\n"
1067 "Child writing 4 to efd\n"
1068 "Child writing 7 to efd\n"
1069 "Child writing 14 to efd\n"
1070 "Child completed write loop\n"
1071 "Parent about to read\n"
1072 "Parent read 28 (0x1c) from efd\n"
1073 msgstr ""
1074 "$B< ./a.out 1 2 4 7 14>\n"
1075 "Child writing 1 to efd\n"
1076 "Child writing 2 to efd\n"
1077 "Child writing 4 to efd\n"
1078 "Child writing 7 to efd\n"
1079 "Child writing 14 to efd\n"
1080 "Child completed write loop\n"
1081 "Parent about to read\n"
1082 "Parent read 28 (0x1c) from efd\n"
1083
1084 #. type: SS
1085 #: build/C/man2/eventfd.2:359 build/C/man2/signalfd.2:383
1086 #: build/C/man2/timer_create.2:292 build/C/man2/timerfd_create.2:407
1087 #: build/C/man2/wait.2:585
1088 #, no-wrap
1089 msgid "Program source"
1090 msgstr "プログラムのソース"
1091
1092 #. type: Plain text
1093 #: build/C/man2/eventfd.2:367
1094 #, no-wrap
1095 msgid ""
1096 "#include E<lt>sys/eventfd.hE<gt>\n"
1097 "#include E<lt>unistd.hE<gt>\n"
1098 "#include E<lt>stdlib.hE<gt>\n"
1099 "#include E<lt>stdio.hE<gt>\n"
1100 "#include E<lt>stdint.hE<gt>             /* Definition of uint64_t */\n"
1101 msgstr ""
1102 "#include E<lt>sys/eventfd.hE<gt>\n"
1103 "#include E<lt>unistd.hE<gt>\n"
1104 "#include E<lt>stdlib.hE<gt>\n"
1105 "#include E<lt>stdio.hE<gt>\n"
1106 "#include E<lt>stdint.hE<gt>             /* Definition of uint64_t */\n"
1107
1108 #. type: Plain text
1109 #: build/C/man2/eventfd.2:370 build/C/man2/signalfd.2:394
1110 #, no-wrap
1111 msgid ""
1112 "#define handle_error(msg) \\e\n"
1113 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1114 msgstr ""
1115 "#define handle_error(msg) \\e\n"
1116 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1117
1118 #. type: Plain text
1119 #: build/C/man2/eventfd.2:377
1120 #, no-wrap
1121 msgid ""
1122 "int\n"
1123 "main(int argc, char *argv[])\n"
1124 "{\n"
1125 "    int efd, j;\n"
1126 "    uint64_t u;\n"
1127 "    ssize_t s;\n"
1128 msgstr ""
1129 "int\n"
1130 "main(int argc, char *argv[])\n"
1131 "{\n"
1132 "    int efd, j;\n"
1133 "    uint64_t u;\n"
1134 "    ssize_t s;\n"
1135
1136 #. type: Plain text
1137 #: build/C/man2/eventfd.2:382
1138 #, no-wrap
1139 msgid ""
1140 "    if (argc E<lt> 2) {\n"
1141 "        fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n"
1142 "        exit(EXIT_FAILURE);\n"
1143 "    }\n"
1144 msgstr ""
1145 "    if (argc E<lt> 2) {\n"
1146 "        fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n"
1147 "        exit(EXIT_FAILURE);\n"
1148 "    }\n"
1149
1150 #. type: Plain text
1151 #: build/C/man2/eventfd.2:386
1152 #, no-wrap
1153 msgid ""
1154 "    efd = eventfd(0, 0);\n"
1155 "    if (efd == -1)\n"
1156 "        handle_error(\"eventfd\");\n"
1157 msgstr ""
1158 "    efd = eventfd(0, 0);\n"
1159 "    if (efd == -1)\n"
1160 "        handle_error(\"eventfd\");\n"
1161
1162 #. type: Plain text
1163 #: build/C/man2/eventfd.2:398
1164 #, no-wrap
1165 msgid ""
1166 "    switch (fork()) {\n"
1167 "    case 0:\n"
1168 "        for (j = 1; j E<lt> argc; j++) {\n"
1169 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1170 "            u = strtoull(argv[j], NULL, 0);\n"
1171 "                    /* strtoull() allows various bases */\n"
1172 "            s = write(efd, &u, sizeof(uint64_t));\n"
1173 "            if (s != sizeof(uint64_t))\n"
1174 "                handle_error(\"write\");\n"
1175 "        }\n"
1176 "        printf(\"Child completed write loop\\en\");\n"
1177 msgstr ""
1178 "    switch (fork()) {\n"
1179 "    case 0:\n"
1180 "        for (j = 1; j E<lt> argc; j++) {\n"
1181 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1182 "            u = strtoull(argv[j], NULL, 0);\n"
1183 "                    /* strtoull() allows various bases */\n"
1184 "            s = write(efd, &u, sizeof(uint64_t));\n"
1185 "            if (s != sizeof(uint64_t))\n"
1186 "                handle_error(\"write\");\n"
1187 "        }\n"
1188 "        printf(\"Child completed write loop\\en\");\n"
1189
1190 #. type: Plain text
1191 #: build/C/man2/eventfd.2:400
1192 #, no-wrap
1193 msgid "        exit(EXIT_SUCCESS);\n"
1194 msgstr "        exit(EXIT_SUCCESS);\n"
1195
1196 #. type: Plain text
1197 #: build/C/man2/eventfd.2:403
1198 #, no-wrap
1199 msgid ""
1200 "    default:\n"
1201 "        sleep(2);\n"
1202 msgstr ""
1203 "    default:\n"
1204 "        sleep(2);\n"
1205
1206 #. type: Plain text
1207 #: build/C/man2/eventfd.2:411
1208 #, no-wrap
1209 msgid ""
1210 "        printf(\"Parent about to read\\en\");\n"
1211 "        s = read(efd, &u, sizeof(uint64_t));\n"
1212 "        if (s != sizeof(uint64_t))\n"
1213 "            handle_error(\"read\");\n"
1214 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1215 "                (unsigned long long) u, (unsigned long long) u);\n"
1216 "        exit(EXIT_SUCCESS);\n"
1217 msgstr ""
1218 "        printf(\"Parent about to read\\en\");\n"
1219 "        s = read(efd, &u, sizeof(uint64_t));\n"
1220 "        if (s != sizeof(uint64_t))\n"
1221 "            handle_error(\"read\");\n"
1222 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1223 "                (unsigned long long) u, (unsigned long long) u);\n"
1224 "        exit(EXIT_SUCCESS);\n"
1225
1226 #. type: Plain text
1227 #: build/C/man2/eventfd.2:416
1228 #, no-wrap
1229 msgid ""
1230 "    case -1:\n"
1231 "        handle_error(\"fork\");\n"
1232 "    }\n"
1233 "}\n"
1234 msgstr ""
1235 "    case -1:\n"
1236 "        handle_error(\"fork\");\n"
1237 "    }\n"
1238 "}\n"
1239
1240 #. type: Plain text
1241 #: build/C/man2/eventfd.2:428
1242 msgid ""
1243 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), B<signalfd>"
1244 "(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), B<sem_overview>(7)"
1245 msgstr ""
1246 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), B<signalfd>"
1247 "(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), B<sem_overview>(7)"
1248
1249 #. type: TH
1250 #: build/C/man2/getitimer.2:12
1251 #, no-wrap
1252 msgid "GETITIMER"
1253 msgstr "GETITIMER"
1254
1255 #. type: TH
1256 #: build/C/man2/getitimer.2:12
1257 #, no-wrap
1258 msgid "2012-10-01"
1259 msgstr "2012-10-01"
1260
1261 #. type: Plain text
1262 #: build/C/man2/getitimer.2:15
1263 msgid "getitimer, setitimer - get or set value of an interval timer"
1264 msgstr "getitimer, setitimer - インターバル・タイマーの値を取得または設定する"
1265
1266 #. type: Plain text
1267 #: build/C/man2/getitimer.2:18
1268 #, no-wrap
1269 msgid "B<#include E<lt>sys/time.hE<gt>>\n"
1270 msgstr "B<#include E<lt>sys/time.hE<gt>>\n"
1271
1272 #. type: Plain text
1273 #: build/C/man2/getitimer.2:20
1274 #, no-wrap
1275 msgid "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1276 msgstr "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1277
1278 #. type: Plain text
1279 #: build/C/man2/getitimer.2:23
1280 #, no-wrap
1281 msgid ""
1282 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1283 "B<              struct itimerval *>I<old_value>B<);>\n"
1284 msgstr ""
1285 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1286 "B<              struct itimerval *>I<old_value>B<);>\n"
1287
1288 #. type: Plain text
1289 #: build/C/man2/getitimer.2:29
1290 msgid ""
1291 "The system provides each process with three interval timers, each "
1292 "decrementing in a distinct time domain.  When any timer expires, a signal is "
1293 "sent to the process, and the timer (potentially) restarts."
1294 msgstr ""
1295 "システムは 1 個のプロセスにつき 3 個のインターバル・タイマーを提供する。 それ"
1296 "ぞれのタイマーは別々の時間領域で減少する。 どのタイマーも満了するとプロセスに"
1297 "シグナルが送られ、 タイマーは (設定によっては) 再び開始される。"
1298
1299 #. type: TP
1300 #: build/C/man2/getitimer.2:29
1301 #, no-wrap
1302 msgid "B<ITIMER_REAL>"
1303 msgstr "B<ITIMER_REAL>"
1304
1305 #. type: Plain text
1306 #: build/C/man2/getitimer.2:34
1307 msgid "decrements in real time, and delivers B<SIGALRM> upon expiration."
1308 msgstr "実時間 (real time) で減少し、満了すると B<SIGALRM> が送られる。"
1309
1310 #. type: TP
1311 #: build/C/man2/getitimer.2:34
1312 #, no-wrap
1313 msgid "B<ITIMER_VIRTUAL>"
1314 msgstr "B<ITIMER_VIRTUAL>"
1315
1316 #. type: Plain text
1317 #: build/C/man2/getitimer.2:39
1318 msgid ""
1319 "decrements only when the process is executing, and delivers B<SIGVTALRM> "
1320 "upon expiration."
1321 msgstr ""
1322 "プロセスが実行されている間のみ減少し、満了すると B<SIGVTALRM> が送られる。"
1323
1324 #. type: TP
1325 #: build/C/man2/getitimer.2:39
1326 #, no-wrap
1327 msgid "B<ITIMER_PROF>"
1328 msgstr "B<ITIMER_PROF>"
1329
1330 #. type: Plain text
1331 #: build/C/man2/getitimer.2:49
1332 msgid ""
1333 "decrements both when the process executes and when the system is executing "
1334 "on behalf of the process.  Coupled with B<ITIMER_VIRTUAL>, this timer is "
1335 "usually used to profile the time spent by the application in user and kernel "
1336 "space.  B<SIGPROF> is delivered upon expiration."
1337 msgstr ""
1338 "プロセスが実行されていて、 かつシステムがそのプロセスのために処理を行なってい"
1339 "る間に減少する。 多くの場合、このタイマーは B<ITIMER_VIRTUAL> と組み合わされ"
1340 "て、アプリケーションがカーネル空間とユーザー空間で どれだけの時間を過ごしたか"
1341 "をプロファイルするのに使用される。 満了すると B<SIGPROF> が送られる。"
1342
1343 #. type: Plain text
1344 #: build/C/man2/getitimer.2:51
1345 msgid "Timer values are defined by the following structures:"
1346 msgstr "タイマーの値は以下の構造体によって定義される:"
1347
1348 #. type: Plain text
1349 #: build/C/man2/getitimer.2:59
1350 #, no-wrap
1351 msgid ""
1352 "struct itimerval {\n"
1353 "    struct timeval it_interval; /* next value */\n"
1354 "    struct timeval it_value;    /* current value */\n"
1355 "};\n"
1356 msgstr ""
1357 "struct itimerval {\n"
1358 "    struct timeval it_interval; /* next value */\n"
1359 "    struct timeval it_value;    /* current value */\n"
1360 "};\n"
1361
1362 #. type: Plain text
1363 #: build/C/man2/getitimer.2:64
1364 #, no-wrap
1365 msgid ""
1366 "struct timeval {\n"
1367 "    time_t      tv_sec;         /* seconds */\n"
1368 "    suseconds_t tv_usec;        /* microseconds */\n"
1369 "};\n"
1370 msgstr ""
1371 "struct timeval {\n"
1372 "    time_t      tv_sec;         /* seconds */\n"
1373 "    suseconds_t tv_usec;        /* microseconds */\n"
1374 "};\n"
1375
1376 #. type: Plain text
1377 #: build/C/man2/getitimer.2:86
1378 msgid ""
1379 "The function B<getitimer>()  fills the structure pointed to by I<curr_value> "
1380 "with the current setting for the timer specified by I<which> (one of "
1381 "B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>).  The element "
1382 "I<it_value> is set to the amount of time remaining on the timer, or zero if "
1383 "the timer is disabled.  Similarly, I<it_interval> is set to the reset value."
1384 msgstr ""
1385 "B<getitimer>()  関数は、 I<which> で指定されたタイマー (B<ITIMER_REAL>, "
1386 "B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれか) の現在の設定を、 I<curr_value> で"
1387 "指定された構造体に格納する。 I<it_value> 要素にはタイマーの残り時間が設定され"
1388 "る。タイマーがオフの場合は ゼロが設定される。同様に I<it_interval> には初期値"
1389 "が設定される。"
1390
1391 #. type: Plain text
1392 #: build/C/man2/getitimer.2:94
1393 msgid ""
1394 "The function B<setitimer>()  sets the specified timer to the value in "
1395 "I<new_value>.  If I<old_value> is non-NULL, the old value of the timer is "
1396 "stored there."
1397 msgstr ""
1398 "B<setitimer>()  関数は指定されたタイマーに I<new_value> の値を設定する。 "
1399 "I<old_value> が NULL 以外の場合、タイマーの古い値が I<old_value> に格納され"
1400 "る。"
1401
1402 #. type: Plain text
1403 #: build/C/man2/getitimer.2:104
1404 msgid ""
1405 "Timers decrement from I<it_value> to zero, generate a signal, and reset to "
1406 "I<it_interval>.  A timer which is set to zero (I<it_value> is zero or the "
1407 "timer expires and I<it_interval> is zero) stops."
1408 msgstr ""
1409 "タイマーは I<it_value> からゼロへ向けて減っていき、シグナルを生成し、 "
1410 "I<it_interval> に初期化される。 タイマーがゼロに設定された場合 (I<it_value> "
1411 "がゼロか、タイマーが満了した時に I<it_interval> がゼロの場合) は停止する。"
1412
1413 #. type: Plain text
1414 #: build/C/man2/getitimer.2:110
1415 msgid ""
1416 "Both I<tv_sec> and I<tv_usec> are significant in determining the duration of "
1417 "a timer."
1418 msgstr "タイマーの期間は I<tv_sec> と I<tv_usec> の両方により決定される。"
1419
1420 #. type: Plain text
1421 #: build/C/man2/getitimer.2:122
1422 msgid ""
1423 "Timers will never expire before the requested time, but may expire some "
1424 "(short) time afterward, which depends on the system timer resolution and on "
1425 "the system load; see B<time>(7).  (But see BUGS below.)  Upon expiration, a "
1426 "signal will be generated and the timer reset.  If the timer expires while "
1427 "the process is active (always true for B<ITIMER_VIRTUAL>), the signal will "
1428 "be delivered immediately when generated.  Otherwise the delivery will be "
1429 "offset by a small time dependent on the system loading."
1430 msgstr ""
1431 "要求した時間がくる前にタイマーが満了することはないが、 逆にある (短い) 時間だ"
1432 "け満了が遅れることはある。 どれだけ遅れるかはシステムの時間分解能とシステムの"
1433 "負荷に依存する (B<time>(7)  参照; 但し、バグの項も参照のこと)。 タイマーが満"
1434 "了するとシグナルが生成され、タイマーは初期化される。 プロセスがアクティブな"
1435 "時 (B<ITIMER_VIRTUAL> の場合には常にそうである) にタイマーが満了した場合、生"
1436 "成されたシグナルは すぐに配送される。それ以外の場合は、システムの負荷により少"
1437 "しの時間だけ 遅れて配送される。"
1438
1439 #. type: Plain text
1440 #: build/C/man2/getitimer.2:127 build/C/man2/killpg.2:94
1441 #: build/C/man2/tkill.2:99
1442 msgid ""
1443 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
1444 "appropriately."
1445 msgstr ""
1446 "成功した場合、0 が返される。エラーが発生した場合、-1 が返され、 I<errno> が適"
1447 "切に設定される。"
1448
1449 #. type: TP
1450 #: build/C/man2/getitimer.2:128 build/C/man2/prctl.2:823
1451 #: build/C/man2/sigaction.2:666 build/C/man2/sigaltstack.2:138
1452 #: build/C/man2/sigpending.2:60 build/C/man2/sigprocmask.2:100
1453 #: build/C/man2/sigsuspend.2:77 build/C/man2/timer_settime.2:184
1454 #: build/C/man2/timerfd_create.2:342
1455 #, no-wrap
1456 msgid "B<EFAULT>"
1457 msgstr "B<EFAULT>"
1458
1459 #. type: Plain text
1460 #: build/C/man2/getitimer.2:135 build/C/man2/timerfd_create.2:349
1461 msgid "I<new_value>, I<old_value>, or I<curr_value> is not valid a pointer."
1462 msgstr "I<new_value>, I<old_value>, I<curr_value> が有効なポインタではない。"
1463
1464 #. type: Plain text
1465 #: build/C/man2/getitimer.2:148
1466 msgid ""
1467 "I<which> is not one of B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>; "
1468 "or (since Linux 2.6.22) one of the I<tv_usec> fields in the structure "
1469 "pointed to by I<new_value> contains a value outside the range 0 to 999999."
1470 msgstr ""
1471 "I<which> が B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれでもな"
1472 "い。 または (Linux 2.6.22 以降で)  I<new_value> で指定された構造体の "
1473 "I<tv_usec> フィールドの一つが 0 以上 999999 以下の範囲に入らない値である。"
1474
1475 #. type: Plain text
1476 #: build/C/man2/getitimer.2:158
1477 msgid ""
1478 "POSIX.1-2001, SVr4, 4.4BSD (this call first appeared in 4.2BSD).  "
1479 "POSIX.1-2008 marks B<getitimer>()  and B<setitimer>()  obsolete, "
1480 "recommending the use of the POSIX timers API (B<timer_gettime>(2), "
1481 "B<timer_settime>(2), etc.) instead."
1482 msgstr ""
1483 "POSIX.1-2001, SVr4, 4.4BSD (このコールは 4.2BSD で始めて現われた).  "
1484 "POSIX.1-2008 では、 B<getitimer>()  と B<setitimer>()  は廃止予定とされてお"
1485 "り、 代わりに POSIX タイマー API (B<timer_gettime>(2), B<timer_settime>(2)  "
1486 "など) を使うことが推奨されている。"
1487
1488 #. type: Plain text
1489 #: build/C/man2/getitimer.2:164
1490 msgid ""
1491 "A child created via B<fork>(2)  does not inherit its parent's interval "
1492 "timers.  Interval timers are preserved across an B<execve>(2)."
1493 msgstr ""
1494 "B<fork>(2)  で作成された子プロセスは、 親プロセスのインターバル・タイマーを継"
1495 "承しない。 B<execve>(2)  の前後ではインターバル・タイマーは保存される。"
1496
1497 #. type: Plain text
1498 #: build/C/man2/getitimer.2:174
1499 msgid ""
1500 "POSIX.1 leaves the interaction between B<setitimer>()  and the three "
1501 "interfaces B<alarm>(2), B<sleep>(3), and B<usleep>(3)  unspecified."
1502 msgstr ""
1503 "POSIX.1 では、 B<setitimer>()  と、 B<alarm>(2), B<sleep>(3), B<usleep>(3)  "
1504 "という 3 つのインタフェースとの相互の影響については規定していない。"
1505
1506 #. type: Plain text
1507 #: build/C/man2/getitimer.2:176
1508 msgid "The standards are silent on the meaning of the call:"
1509 msgstr "標準では、次の呼び出しの意味については規定されていない。"
1510
1511 #. type: Plain text
1512 #: build/C/man2/getitimer.2:178
1513 #, no-wrap
1514 msgid "    setitimer(which, NULL, &old_value);\n"
1515 msgstr "    setitimer(which, NULL, &old_value);\n"
1516
1517 #. type: Plain text
1518 #: build/C/man2/getitimer.2:181
1519 msgid ""
1520 "Many systems (Solaris, the BSDs, and perhaps others)  treat this as "
1521 "equivalent to:"
1522 msgstr "(Solaris, BSD 系やおそらく他のシステムもそうだが) 多くのシステムでは、この呼び出しは以下と等価である。"
1523
1524 #. type: Plain text
1525 #: build/C/man2/getitimer.2:183
1526 #, no-wrap
1527 msgid "    getitimer(which, &old_value);\n"
1528 msgstr "    getitimer(which, &old_value);\n"
1529
1530 #. type: Plain text
1531 #: build/C/man2/getitimer.2:189
1532 msgid ""
1533 "In Linux, this is treated as being equivalent to a call in which the "
1534 "I<new_value> fields are zero; that is, the timer is disabled.  I<Don't use "
1535 "this Linux misfeature>: it is nonportable and unnecessary."
1536 msgstr ""
1537 "Linux では、この呼び出しは I<new_value> フィールドが 0 の呼び出しと等価なもの"
1538 "と扱われる。 つまり、タイマーが無効になる。 I<Linux のこの間違った機能を使用"
1539 "しないこと>。移植性もなく、不必要な機能である。"
1540
1541 #. type: SH
1542 #: build/C/man2/getitimer.2:189 build/C/man2/kill.2:161
1543 #: build/C/man3/profil.3:72 build/C/man3/psignal.3:101
1544 #: build/C/man2/sigaction.2:781 build/C/man2/signalfd.2:352
1545 #: build/C/man2/sigpending.2:85 build/C/man3/sigset.3:232
1546 #: build/C/man2/timer_getoverrun.2:115 build/C/man2/timerfd_create.2:373
1547 #: build/C/man2/wait.2:535
1548 #, no-wrap
1549 msgid "BUGS"
1550 msgstr "バグ"
1551
1552 #. type: Plain text
1553 #: build/C/man2/getitimer.2:198
1554 msgid ""
1555 "The generation and delivery of a signal are distinct, and only one instance "
1556 "of each of the signals listed above may be pending for a process.  Under "
1557 "very heavy loading, an B<ITIMER_REAL> timer may expire before the signal "
1558 "from a previous expiration has been delivered.  The second signal in such an "
1559 "event will be lost."
1560 msgstr ""
1561 "シグナルの生成と配送は別個のものであり、 前述のシグナルのそれぞれについて一つ"
1562 "だけがプロセスのために 待機する。 非常に重い負荷の下では、 B<ITIMER_REAL> タ"
1563 "イマーでは、時間切れにより生成された一つ前のシグナルが配送される前に、 次の時"
1564 "間切れが起こる場合がある。 そのような場合、 2 個めのイベントに対するシグナル"
1565 "は失われてしまう。"
1566
1567 #. type: Plain text
1568 #: build/C/man2/getitimer.2:213
1569 msgid ""
1570 "On Linux kernels before 2.6.16, timer values are represented in jiffies.  If "
1571 "a request is made set a timer with a value whose jiffies representation "
1572 "exceeds B<MAX_SEC_IN_JIFFIES> (defined in I<include/linux/jiffies.h>), then "
1573 "the timer is silently truncated to this ceiling value.  On Linux/i386 "
1574 "(where, since Linux 2.6.13, the default jiffy is 0.004 seconds), this means "
1575 "that the ceiling value for a timer is approximately 99.42 days.  Since Linux "
1576 "2.6.16, the kernel uses a different internal representation for times, and "
1577 "this ceiling is removed."
1578 msgstr ""
1579 "バージョン 2.6.16 より前の Linux カーネルでは、 タイマーの値は jiffy で表現さ"
1580 "れる。 要求が jiffy 表現で (I<include/linux/jiffies.h> で定義されている)  "
1581 "B<MAX_SEC_IN_JIFFIES> を越える値をタイマーに設定しようとするものの場合、 タイ"
1582 "マーは暗黙にこの上限値に切り詰められる。 Linux/i386 の場合 (Linux 2.6.13 以降"
1583 "では jiffy は 0.004 秒) の場合、 これはタイマーの上限値がおよそ 99.42 日にな"
1584 "ることを意味する。 Linux 2.6.16 以降では、カーネルは時間に関する内部表現とし"
1585 "て 異なる表現を使うようになっており、この上限はなくなった。"
1586
1587 #.  4 Jul 2005: It looks like this bug may remain in 2.4.x.
1588 #.      http://lkml.org/lkml/2005/7/1/165
1589 #. type: Plain text
1590 #: build/C/man2/getitimer.2:220
1591 msgid ""
1592 "On certain systems (including i386), Linux kernels before version 2.6.12 "
1593 "have a bug which will produce premature timer expirations of up to one jiffy "
1594 "under some circumstances.  This bug is fixed in kernel 2.6.12."
1595 msgstr ""
1596 "(i386 を含む) いくつかのシステムでは、 バージョン 2.6.12 以前の Linux カーネ"
1597 "ルは ある種の状況では 1 jiffy 早くタイマーが終了してしまうというバグがあっ"
1598 "た。 このバグはカーネル 2.6.12 で修正された。"
1599
1600 #.  Bugzilla report 25 Apr 2006:
1601 #.  http://bugzilla.kernel.org/show_bug.cgi?id=6443
1602 #.  "setitimer() should reject noncanonical arguments"
1603 #. type: Plain text
1604 #: build/C/man2/getitimer.2:239
1605 msgid ""
1606 "POSIX.1-2001 says that B<setitimer>()  should fail if a I<tv_usec> value is "
1607 "specified that is outside of the range 0 to 999999.  However, in kernels up "
1608 "to and including 2.6.21, Linux does not give an error, but instead silently "
1609 "adjusts the corresponding seconds value for the timer.  From kernel 2.6.22 "
1610 "onward, this nonconformance has been repaired: an improper I<tv_usec> value "
1611 "results in an B<EINVAL> error."
1612 msgstr ""
1613 "POSIX.1-2001 では B<setitimer>()  は I<tv_usec> の値が 0 から 999999 の範囲外"
1614 "である場合には失敗するべきだとしている。 しかし、2.6.21 以前のカーネルの "
1615 "Linux ではエラーにならず、 対応する秒数の分だけそのタイマーの秒の値が暗黙に調"
1616 "整される。 カーネル 2.6.22 以降では、この標準非準拠の動作は修正され、 "
1617 "I<tv_usec> の値が不適切な場合には B<EINVAL> エラーとなる。"
1618
1619 #. type: Plain text
1620 #: build/C/man2/getitimer.2:246
1621 msgid ""
1622 "B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
1623 "B<timerfd_create>(2), B<time>(7)"
1624 msgstr ""
1625 "B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
1626 "B<timerfd_create>(2), B<time>(7)"
1627
1628 #. type: TH
1629 #: build/C/man3/gsignal.3:27
1630 #, no-wrap
1631 msgid "GSIGNAL"
1632 msgstr "GSIGNAL"
1633
1634 #. type: TH
1635 #: build/C/man3/gsignal.3:27 build/C/man3/profil.3:28
1636 #, no-wrap
1637 msgid "2007-07-26"
1638 msgstr "2007-07-26"
1639
1640 #. type: Plain text
1641 #: build/C/man3/gsignal.3:30
1642 msgid "gsignal, ssignal - software signal facility"
1643 msgstr "gsignal, ssignal - ソフトウェア・シグナル機能"
1644
1645 #. type: Plain text
1646 #: build/C/man3/gsignal.3:33 build/C/man2/kill.2:52 build/C/man3/psignal.3:36
1647 #: build/C/man3/raise.3:35 build/C/man2/sigaction.2:53
1648 #: build/C/man3/siginterrupt.3:37 build/C/man3/sigpause.3:31
1649 #: build/C/man3/sigwait.3:32 build/C/man2/sigwaitinfo.2:31
1650 #, no-wrap
1651 msgid "B<#include E<lt>signal.hE<gt>>\n"
1652 msgstr "B<#include E<lt>signal.hE<gt>>\n"
1653
1654 #. type: Plain text
1655 #: build/C/man3/gsignal.3:35
1656 #, no-wrap
1657 msgid "B<typedef void (*sighandler_t)(int);>\n"
1658 msgstr "B<typedef void (*sighandler_t)(int);>\n"
1659
1660 #. type: Plain text
1661 #: build/C/man3/gsignal.3:37
1662 #, no-wrap
1663 msgid "B<int gsignal(int >I<signum>B<);>\n"
1664 msgstr "B<int gsignal(int >I<signum>B<);>\n"
1665
1666 #. type: Plain text
1667 #: build/C/man3/gsignal.3:39
1668 #, no-wrap
1669 msgid "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
1670 msgstr "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
1671
1672 #. type: Plain text
1673 #: build/C/man3/gsignal.3:44 build/C/man2/kill.2:59 build/C/man2/killpg.2:53
1674 #: build/C/man3/profil.3:42 build/C/man3/psignal.3:46
1675 #: build/C/man2/sigaction.2:61 build/C/man2/sigaltstack.2:38
1676 #: build/C/man3/siginterrupt.3:44 build/C/man2/sigpending.2:40
1677 #: build/C/man2/sigprocmask.2:41 build/C/man3/sigqueue.3:39
1678 #: build/C/man3/sigset.3:45 build/C/man3/sigsetops.3:51
1679 #: build/C/man2/sigsuspend.2:40 build/C/man3/sigvec.3:45
1680 #: build/C/man3/sigwait.3:39 build/C/man2/sigwaitinfo.2:41
1681 #: build/C/man2/timer_create.2:48 build/C/man2/timer_delete.2:41
1682 #: build/C/man2/timer_getoverrun.2:41 build/C/man2/timer_settime.2:45
1683 #: build/C/man2/wait.2:69 build/C/man2/wait4.2:53
1684 msgid ""
1685 "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
1686 msgstr "glibc 向けの機能検査マクロの要件 (B<feature_test_macros>(7)  参照):"
1687
1688 #. type: Plain text
1689 #: build/C/man3/gsignal.3:49
1690 msgid "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
1691 msgstr "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
1692
1693 #. type: Plain text
1694 #: build/C/man3/gsignal.3:57
1695 msgid ""
1696 "Don't use these functions under Linux.  Due to a historical mistake, under "
1697 "Linux these functions are aliases for B<raise>(3)  and B<signal>(2), "
1698 "respectively."
1699 msgstr ""
1700 "Linux ではこれらの関数を使用しないこと。 過去に間違いがあり、Linux では "
1701 "B<gsignal>()  と B<ssignal>()  はそれぞれ B<raise>(3)  と B<signal>(2)  の別"
1702 "名になっている。"
1703
1704 #. type: Plain text
1705 #: build/C/man3/gsignal.3:95
1706 msgid ""
1707 "Elsewhere, on System V-like systems, these functions implement software "
1708 "signaling, entirely independent of the classical B<signal>(2)  and B<kill>"
1709 "(2)  functions.  The function B<ssignal>()  defines the action to take when "
1710 "the software signal with number I<signum> is raised using the function "
1711 "B<gsignal>(), and returns the previous such action or B<SIG_DFL>.  The "
1712 "function B<gsignal>()  does the following: if no action (or the action "
1713 "B<SIG_DFL>)  was specified for I<signum>, then it does nothing and returns "
1714 "0.  If the action B<SIG_IGN> was specified for I<signum>, then it does "
1715 "nothing and returns 1.  Otherwise, it resets the action to B<SIG_DFL> and "
1716 "calls the action function with argument I<signum>, and returns the value "
1717 "returned by that function.  The range of possible values I<signum> varies "
1718 "(often 1-15 or 1-17)."
1719 msgstr ""
1720 "一方、System V 風のシステムでは、これらの関数で、 従来の B<signal>(2)  や "
1721 "B<kill>(2)  の関数群とは完全に独立な、 ソフトウェア・シグナリングを実現してい"
1722 "る。 B<ssignal>()  関数は、番号 I<signum> のソフトウェア・シグナルが "
1723 "B<gsignal>()  関数を使って発生された時にとるべきアクションを定義する。 "
1724 "B<gsignal>()  の返り値は、一つ前に指定されていたアクション、もしくは "
1725 "B<SIG_DFL> である。 B<gsignal>()  は以下のような動作を行う: I<signum> に対し"
1726 "てアクションが指定されていないか、アクション B<SIG_DFL> が指定されていた場"
1727 "合、何もせずに 0 を返す。 I<signum> に対して アクション B<SIG_IGN> が指定され"
1728 "ていた場合、何もせずに 1 を返す。 それ以外の場合、アクションを B<SIG_DFL> に"
1729 "リセットし、引き数に I<signum> を指定してアクション関数を呼び出して、アクショ"
1730 "ン関数の返り値を返す。 I<signum> がとり得る値の範囲は実装により異なる (多くの"
1731 "場合 1〜15 か 1〜17 である)。"
1732
1733 #. type: Plain text
1734 #: build/C/man3/gsignal.3:103
1735 msgid ""
1736 "These functions are available under AIX, DG/UX, HP-UX, SCO, Solaris, Tru64.  "
1737 "They are called obsolete under most of these systems, and are broken under "
1738 "Linux libc and glibc.  Some systems also have B<gsignal_r>()  and "
1739 "B<ssignal_r>()."
1740 msgstr ""
1741 "これらの関数は、AIX, DG/UX, HP-UX, SCO, Solaris, Tru64 で使用可能である。 こ"
1742 "れらのシステムのほとんどで廃止されたことになっており、 Linux の libc および "
1743 "glibc では正しく実装されていない。 B<gsignal_r>()  と B<ssignal_r>()  が実装"
1744 "されているシステムもある。"
1745
1746 #. type: Plain text
1747 #: build/C/man3/gsignal.3:107
1748 msgid "B<kill>(2), B<signal>(2), B<raise>(3)"
1749 msgstr "B<kill>(2), B<signal>(2), B<raise>(3)"
1750
1751 #. type: TH
1752 #: build/C/man2/kill.2:44
1753 #, no-wrap
1754 msgid "KILL"
1755 msgstr "KILL"
1756
1757 #. type: TH
1758 #: build/C/man2/kill.2:44
1759 #, no-wrap
1760 msgid "2013-09-17"
1761 msgstr "2013-09-17"
1762
1763 #. type: Plain text
1764 #: build/C/man2/kill.2:47
1765 msgid "kill - send signal to a process"
1766 msgstr "kill - プロセスにシグナルを送る"
1767
1768 #. type: Plain text
1769 #: build/C/man2/kill.2:50
1770 #, no-wrap
1771 msgid "B<#include E<lt>sys/types.hE<gt>>\n"
1772 msgstr "B<#include E<lt>sys/types.hE<gt>>\n"
1773
1774 #. type: Plain text
1775 #: build/C/man2/kill.2:54
1776 #, no-wrap
1777 msgid "B<int kill(pid_t >I<pid>B<, int >I<sig>B<);>\n"
1778 msgstr "B<int kill(pid_t >I<pid>B<, int >I<sig>B<);>\n"
1779
1780 #. type: Plain text
1781 #: build/C/man2/kill.2:64
1782 msgid ""
1783 "B<kill>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1784 msgstr ""
1785 "B<kill>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1786
1787 #. type: Plain text
1788 #: build/C/man2/kill.2:70
1789 msgid ""
1790 "The B<kill>()  system call can be used to send any signal to any process "
1791 "group or process."
1792 msgstr ""
1793 "システムコールの B<kill>()  は、任意のプロセス・グループもしくはプロセスにシ"
1794 "グナルを 送るのに使われる。"
1795
1796 #. type: Plain text
1797 #: build/C/man2/kill.2:73
1798 msgid ""
1799 "If I<pid> is positive, then signal I<sig> is sent to the process with the ID "
1800 "specified by I<pid>."
1801 msgstr ""
1802 "I<pid> に正の値を指定した場合、シグナル I<sig> が I<pid> で指定された ID を持"
1803 "つプロセスに送られる。"
1804
1805 #. type: Plain text
1806 #: build/C/man2/kill.2:76
1807 msgid ""
1808 "If I<pid> equals 0, then I<sig> is sent to every process in the process "
1809 "group of the calling process."
1810 msgstr ""
1811 "I<pid> に 0 を指定した場合、 呼び出し元のプロセスのプロセス・グループに属する"
1812 "すべてのプロセスに I<sig> で指定したシグナルが送られる。"
1813
1814 #. type: Plain text
1815 #: build/C/man2/kill.2:80
1816 msgid ""
1817 "If I<pid> equals -1, then I<sig> is sent to every process for which the "
1818 "calling process has permission to send signals, except for process 1 "
1819 "(I<init>), but see below."
1820 msgstr ""
1821 "I<pid> に -1 を指定した場合、 I<sig> で指定したシグナルが、 呼び出し元のプロ"
1822 "セスがシグナルを送る許可を持つ全てのプロセスに 送られる。但し、プロセス番号 "
1823 "1 (I<init>) へはシグナルは送られない。 以下の関連部分も参照のこと。"
1824
1825 #. type: Plain text
1826 #: build/C/man2/kill.2:83
1827 msgid ""
1828 "If I<pid> is less than -1, then I<sig> is sent to every process in the "
1829 "process group whose ID is I<-pid>."
1830 msgstr ""
1831 "I<pid> に -1 より小さな値を指定した場合、 ID が I<-pid> のプロセス・グループ"
1832 "に属するすべてのプロセスに I<sig> で指定したシグナルが送られる。"
1833
1834 #. type: Plain text
1835 #: build/C/man2/kill.2:88
1836 msgid ""
1837 "If I<sig> is 0, then no signal is sent, but error checking is still "
1838 "performed; this can be used to check for the existence of a process ID or "
1839 "process group ID."
1840 msgstr ""
1841 "I<sig> に 0 を指定した場合、シグナルは送られないが、 エラーのチェックは行われ"
1842 "る。これを使って、プロセス ID や プロセスグループ ID の存在確認を行うことがで"
1843 "きる。"
1844
1845 #. type: Plain text
1846 #: build/C/man2/kill.2:100
1847 msgid ""
1848 "For a process to have permission to send a signal it must either be "
1849 "privileged (under Linux: have the B<CAP_KILL> capability), or the real or "
1850 "effective user ID of the sending process must equal the real or saved set-"
1851 "user-ID of the target process.  In the case of B<SIGCONT> it suffices when "
1852 "the sending and receiving processes belong to the same session.  "
1853 "(Historically, the rules were different; see NOTES.)"
1854 msgstr ""
1855 "プロセスがシグナルを送信する許可を持つためには、 プロセスが特権 (Linux では "
1856 "B<CAP_KILL> ケーパビリティ (capability)) を持つか、 送信元プロセスの実ユー"
1857 "ザー ID または実効ユーザー ID が 送信先プロセスの実 set-user-ID または保存 "
1858 "set-user-ID と 等しくなければならない。 B<SIGCONT> の場合、送信プロセスと受信"
1859 "プロセスが 同じセッションに属していれば十分である。 (過去には、 ルールは違っ"
1860 "ていた; 「注意」の節を参照。)"
1861
1862 #. type: Plain text
1863 #: build/C/man2/kill.2:105
1864 msgid ""
1865 "On success (at least one signal was sent), zero is returned.  On error, -1 "
1866 "is returned, and I<errno> is set appropriately."
1867 msgstr ""
1868 "成功した場合 (少なくとも一つのシグナルが送信された場合)、 0 が返される。エ"
1869 "ラーの場合 -1 が返され、 I<errno> が適切に設定される。"
1870
1871 #. type: Plain text
1872 #: build/C/man2/kill.2:109
1873 msgid "An invalid signal was specified."
1874 msgstr "無効なシグナルを指定した。"
1875
1876 #. type: TP
1877 #: build/C/man2/kill.2:109 build/C/man2/killpg.2:99 build/C/man2/prctl.2:983
1878 #: build/C/man2/prctl.2:995 build/C/man2/prctl.2:1005
1879 #: build/C/man2/prctl.2:1013 build/C/man2/rt_sigqueueinfo.2:148
1880 #: build/C/man2/sigaltstack.2:151 build/C/man3/sigqueue.3:102
1881 #: build/C/man2/tkill.2:103
1882 #, no-wrap
1883 msgid "B<EPERM>"
1884 msgstr "B<EPERM>"
1885
1886 #. type: Plain text
1887 #: build/C/man2/kill.2:113 build/C/man2/killpg.2:103
1888 msgid ""
1889 "The process does not have permission to send the signal to any of the target "
1890 "processes."
1891 msgstr ""
1892 "プロセスが、受信するプロセスのいずれに対しても シグナルを送る許可を持っていな"
1893 "い。"
1894
1895 #. type: TP
1896 #: build/C/man2/kill.2:113 build/C/man2/killpg.2:103 build/C/man2/killpg.2:107
1897 #: build/C/man2/rt_sigqueueinfo.2:156 build/C/man3/sigqueue.3:108
1898 #: build/C/man2/tkill.2:108
1899 #, no-wrap
1900 msgid "B<ESRCH>"
1901 msgstr "B<ESRCH>"
1902
1903 #. type: Plain text
1904 #: build/C/man2/kill.2:121
1905 msgid ""
1906 "The pid or process group does not exist.  Note that an existing process "
1907 "might be a zombie, a process which already committed termination, but has "
1908 "not yet been B<wait>(2)ed for."
1909 msgstr ""
1910 "指定したプロセスまたはプロセス・グループが存在しなかった。 ゾンビプロセスは存"
1911 "在するプロセスとしてみなされる。 ゾンビプロセスとはすでに処理は終了している"
1912 "が、親プロセスによる B<wait>()  処理が行われていないプロセスのことである。"
1913
1914 #. type: Plain text
1915 #: build/C/man2/kill.2:123 build/C/man2/pause.2:59 build/C/man2/wait.2:424
1916 msgid "SVr4, 4.3BSD, POSIX.1-2001."
1917 msgstr "SVr4, 4.3BSD, POSIX.1-2001."
1918
1919 #. type: Plain text
1920 #: build/C/man2/kill.2:131
1921 msgid ""
1922 "The only signals that can be sent to process ID 1, the I<init> process, are "
1923 "those for which I<init> has explicitly installed signal handlers.  This is "
1924 "done to assure the system is not brought down accidentally."
1925 msgstr ""
1926 "プロセス番号 1 の I<init> プロセスに送ることができるシグナルは、 I<init> が明"
1927 "示的にシグナルハンドラを設定したシグナルだけである。 こうなっているのは、誤っ"
1928 "てシステムをダウンさせないようにするためである。"
1929
1930 #. type: Plain text
1931 #: build/C/man2/kill.2:137
1932 msgid ""
1933 "POSIX.1-2001 requires that I<kill(-1,sig)> send I<sig> to all processes that "
1934 "the calling process may send signals to, except possibly for some "
1935 "implementation-defined system processes.  Linux allows a process to signal "
1936 "itself, but on Linux the call I<kill(-1,sig)> does not signal the calling "
1937 "process."
1938 msgstr ""
1939 "POSIX.1-2001 では、 I<kill(-1,sig)> が 呼び出し元のプロセスがシグナルを送るこ"
1940 "とが出来るプロセス全てに I<sig> を送ることを要求している。 但し、システム実装"
1941 "時に定められたシステムプロセスは シグナルの送信対象から除外される。 Linux で"
1942 "は、プロセスが自分自身にシグナルを送れるようになっているが、 Linux の I<kill"
1943 "(-1,sig)> は呼び出し元のプロセスにはシグナルを送らない。"
1944
1945 #. type: Plain text
1946 #: build/C/man2/kill.2:147
1947 msgid ""
1948 "POSIX.1-2001 requires that if a process sends a signal to itself, and the "
1949 "sending thread does not have the signal blocked, and no other thread has it "
1950 "unblocked or is waiting for it in B<sigwait>(3), at least one unblocked "
1951 "signal must be delivered to the sending thread before the B<kill>()  returns."
1952 msgstr ""
1953 "POSIX.1-2001 では以下の動作になることを要求している。 自分自身にシグナルを送"
1954 "ると、シグナルを送ったスレッドがそのシグナルをブロック しておらず、他のどのス"
1955 "レッドもそのシグナルを受ける状態にもなく B<sigwait>(3)  でそのシグナルを待っ"
1956 "てもいない場合、 B<kill>()  が返る前に少なくとも一つのブロックされていない シ"
1957 "グナルがシグナルを送ったスレッドに配送されなければならない。"
1958
1959 #. type: SS
1960 #: build/C/man2/kill.2:147 build/C/man3/sigpause.3:82 build/C/man2/wait.2:478
1961 #, no-wrap
1962 msgid "Linux notes"
1963 msgstr "Linux での注意"
1964
1965 #.  In the 0.* kernels things chopped and changed quite
1966 #.  a bit - MTK, 24 Jul 02
1967 #. type: Plain text
1968 #: build/C/man2/kill.2:161
1969 msgid ""
1970 "Across different kernel versions, Linux has enforced different rules for the "
1971 "permissions required for an unprivileged process to send a signal to another "
1972 "process.  In kernels 1.0 to 1.2.2, a signal could be sent if the effective "
1973 "user ID of the sender matched effective user ID of the target, or the real "
1974 "user ID of the sender matched the real user ID of the target.  From kernel "
1975 "1.2.3 until 1.3.77, a signal could be sent if the effective user ID of the "
1976 "sender matched either the real or effective user ID of the target.  The "
1977 "current rules, which conform to POSIX.1-2001, were adopted in kernel 1.3.78."
1978 msgstr ""
1979 "Linux では、特権のないプロセスが他のプロセスにシグナルを送信するために必要な"
1980 "権限についてのルールが、カーネルバージョンにより違っている。 カーネル 1.0 か"
1981 "ら 1.2.2 では、送信側の実効ユーザー ID が送信対象の実効ユーザー ID と一致する"
1982 "か、 送信側の実ユーザー ID が送信対象の実ユーザー ID と一致すれば、 シグナル"
1983 "を送信できた。 カーネル 1.2.3 から 1.3.77では、送信側の実効ユーザー ID が送信"
1984 "対象の実ユーザー ID か実効ユーザー ID のいずれかと一致すればシグナルを送信で"
1985 "きた。 現在のルールは、POSIX.1-2001 に準拠しており、カーネル 1.3.78 以降で 適"
1986 "用されている。"
1987
1988 #. type: Plain text
1989 #: build/C/man2/kill.2:171
1990 msgid ""
1991 "In 2.6 kernels up to and including 2.6.7, there was a bug that meant that "
1992 "when sending signals to a process group, B<kill>()  failed with the error "
1993 "B<EPERM> if the caller did not have permission to send the signal to I<any> "
1994 "(rather than I<all>) of the members of the process group.  Notwithstanding "
1995 "this error return, the signal was still delivered to all of the processes "
1996 "for which the caller had permission to signal."
1997 msgstr ""
1998 "バージョン 2.6.7 以前の 2.6 系のカーネルには、 プロセスグループにシグナルを"
1999 "送ったときに、 呼び出し元のプロセスがプロセスグループの (全メンバーではなく) "
2000 "一部のメンバーに対してのみシグナルを送る許可を持っていない場合に、 B<kill>"
2001 "()  がエラー B<EPERM> で失敗するというバグがある。 このエラーが返るにもかかわ"
2002 "らず、そのシグナルは呼び出し元が シグナルを送る許可を持つ全てのプロセスへ送ら"
2003 "れる。"
2004
2005 #. type: Plain text
2006 #: build/C/man2/kill.2:181
2007 msgid ""
2008 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), B<sigqueue>"
2009 "(3), B<capabilities>(7), B<credentials>(7), B<signal>(7)"
2010 msgstr ""
2011 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), B<sigqueue>"
2012 "(3), B<credentials>(7), B<capabilities>(7), B<signal>(7)"
2013
2014 #. type: TH
2015 #: build/C/man2/killpg.2:42
2016 #, no-wrap
2017 msgid "KILLPG"
2018 msgstr "KILLPG"
2019
2020 #. type: TH
2021 #: build/C/man2/killpg.2:42 build/C/man3/sigset.3:26
2022 #, no-wrap
2023 msgid "2010-09-20"
2024 msgstr "2010-09-20"
2025
2026 #. type: Plain text
2027 #: build/C/man2/killpg.2:45
2028 msgid "killpg - send signal to a process group"
2029 msgstr "killpg - シグナルをプロセス・グループに送る"
2030
2031 #. type: Plain text
2032 #: build/C/man2/killpg.2:49
2033 msgid "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2034 msgstr "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2035
2036 #. type: TP
2037 #: build/C/man2/killpg.2:55
2038 #, no-wrap
2039 msgid "B<killpg>():"
2040 msgstr "B<killpg>():"
2041
2042 #. type: Plain text
2043 #: build/C/man2/killpg.2:59 build/C/man2/sigaltstack.2:46
2044 #: build/C/man3/siginterrupt.3:51 build/C/man2/wait4.2:60
2045 msgid ""
2046 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2047 "_XOPEN_SOURCE_EXTENDED"
2048 msgstr ""
2049 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2050 "_XOPEN_SOURCE_EXTENDED"
2051
2052 #. type: Plain text
2053 #: build/C/man2/killpg.2:69
2054 msgid ""
2055 "B<killpg>()  sends the signal I<sig> to the process group I<pgrp>.  See "
2056 "B<signal>(7)  for a list of signals."
2057 msgstr ""
2058 "B<killpg>()  は I<sig> で指定したシグナルを I<pgrp> で指定したプロセス・グ"
2059 "ループに送る。 シグナルの定義の一覧は B<signal>(7)  を参照のこと。"
2060
2061 #. type: Plain text
2062 #: build/C/man2/killpg.2:78
2063 msgid ""
2064 "If I<pgrp> is 0, B<killpg>()  sends the signal to the calling process's "
2065 "process group.  (POSIX says: If I<pgrp> is less than or equal to 1, the "
2066 "behavior is undefined.)"
2067 msgstr ""
2068 "引き数 I<pgrp> に 0 を指定した場合には B<killpg>()  は呼び出し元のプロセスが"
2069 "属しているプロセス・グループに対してシグナルを送る。 (POSIX では以下のように"
2070 "記述されている: I<pgrp> が 1 以下である場合、動作は未定義である。)"
2071
2072 #. type: Plain text
2073 #: build/C/man2/killpg.2:89
2074 msgid ""
2075 "For a process to have permission to send a signal it must either be "
2076 "privileged (under Linux: have the B<CAP_KILL> capability), or the real or "
2077 "effective user ID of the sending process must equal the real or saved set-"
2078 "user-ID of the target process.  In the case of B<SIGCONT> it suffices when "
2079 "the sending and receiving processes belong to the same session."
2080 msgstr ""
2081 "プロセスがシグナルを送信する許可を持つためには、 プロセスが特権 (Linux では "
2082 "B<CAP_KILL> ケーパビリティ (capability)) を持つか、 送信元プロセスの実ユー"
2083 "ザー ID または実効ユーザー ID が 送信先プロセスの実 set-user-ID または保存 "
2084 "set-user-ID と 等しくなければならない。 B<SIGCONT> の場合、送信プロセスと受信"
2085 "プロセスが 同じセッションに属していれば十分である。"
2086
2087 #. type: Plain text
2088 #: build/C/man2/killpg.2:99
2089 msgid "I<sig> is not a valid signal number."
2090 msgstr "I<sig> で指定された値は無効なシグナル番号である。"
2091
2092 #. type: Plain text
2093 #: build/C/man2/killpg.2:107
2094 msgid "No process can be found in the process group specified by I<pgrp>."
2095 msgstr ""
2096 "I<pgrp> で指定されたプロセス・グループに属するプロセスが存在しなかった。"
2097
2098 #. type: Plain text
2099 #: build/C/man2/killpg.2:111
2100 msgid ""
2101 "The process group was given as 0 but the sending process does not have a "
2102 "process group."
2103 msgstr ""
2104 "プロセス・グループとして 0 が指定されたが、送信プロセスは プロセス・グループ"
2105 "を持っていない。"
2106
2107 #. type: Plain text
2108 #: build/C/man2/killpg.2:115
2109 msgid ""
2110 "SVr4, 4.4BSD (the B<killpg>()  function call first appeared in 4BSD), "
2111 "POSIX.1-2001."
2112 msgstr "SVr4, 4.4BSD (B<killpg>()  は 4BSD で初めて追加された), POSIX.1-2001。"
2113
2114 #. type: Plain text
2115 #: build/C/man2/killpg.2:129
2116 msgid ""
2117 "There are various differences between the permission checking in BSD-type "
2118 "systems and System V-type systems.  See the POSIX rationale for B<kill>().  "
2119 "A difference not mentioned by POSIX concerns the return value B<EPERM>: BSD "
2120 "documents that no signal is sent and B<EPERM> returned when the permission "
2121 "check failed for at least one target process, while POSIX documents B<EPERM> "
2122 "only when the permission check failed for all target processes."
2123 msgstr ""
2124 "BSD 系システムと System V 系システムでは、 許可のチェックに様々な違いがあ"
2125 "る。 B<kill>(2)  についての POSIX の原理 (rationale) を参照すること。 POSIX "
2126 "で記述されていない違いとしては、返り値 B<EPERM> がある。 BSD では「送信先プロ"
2127 "セスの許可のチェックが 1 つでも失敗した場合は、 シグナルが送信されず、 "
2128 "B<EPERM> が返される」と記述されている。 POSIX では「送信先プロセスの許可の"
2129 "チェックが全て失敗した場合にのみ、 B<EPERM> が返される」と記述されている。"
2130
2131 #. type: Plain text
2132 #: build/C/man2/killpg.2:134
2133 msgid ""
2134 "On Linux, B<killpg>()  is implemented as a library function that makes the "
2135 "call I<kill(-pgrp,\\ sig)>."
2136 msgstr ""
2137 "Linux では、 B<killpg>()  はライブラリ関数として実装されており、 I<kill(-"
2138 "pgrp,\\ sig)> の呼び出しが行われる。"
2139
2140 #. type: Plain text
2141 #: build/C/man2/killpg.2:140
2142 msgid ""
2143 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<capabilities>(7), B<credentials>"
2144 "(7)"
2145 msgstr ""
2146 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<credentials>(7), B<capabilities>"
2147 "(7)"
2148
2149 #. type: TH
2150 #: build/C/man2/pause.2:30
2151 #, no-wrap
2152 msgid "PAUSE"
2153 msgstr "PAUSE"
2154
2155 #. type: TH
2156 #: build/C/man2/pause.2:30
2157 #, no-wrap
2158 msgid "2008-10-06"
2159 msgstr "2008-10-06"
2160
2161 #. type: Plain text
2162 #: build/C/man2/pause.2:33
2163 msgid "pause - wait for signal"
2164 msgstr "pause - シグナルを待つ"
2165
2166 #. type: Plain text
2167 #: build/C/man2/pause.2:35
2168 msgid "B<#include E<lt>unistd.hE<gt>>"
2169 msgstr "B<#include E<lt>unistd.hE<gt>>"
2170
2171 #. type: Plain text
2172 #: build/C/man2/pause.2:37
2173 msgid "B<int pause(void);>"
2174 msgstr "B<int pause(void);>"
2175
2176 #. type: Plain text
2177 #: build/C/man2/pause.2:42
2178 msgid ""
2179 "B<pause>()  causes the calling process (or thread) to sleep until a signal "
2180 "is delivered that either terminates the process or causes the invocation of "
2181 "a signal-catching function."
2182 msgstr ""
2183 "B<pause>()  は、呼び出したプロセス (またはスレッド) を、 そのプロセスを終了さ"
2184 "せたり、シグナル捕捉関数が起動されるような シグナルが配送されるまで、スリープ"
2185 "させる。"
2186
2187 #.  .BR ERESTARTNOHAND .
2188 #. type: Plain text
2189 #: build/C/man2/pause.2:53
2190 msgid ""
2191 "B<pause>()  returns only when a signal was caught and the signal-catching "
2192 "function returned.  In this case, B<pause>()  returns -1, and I<errno> is "
2193 "set to B<EINTR>."
2194 msgstr ""
2195 "B<pause>()  が返るのは、シグナルを受け取りシグナル捕獲関数から返った場合だけ"
2196 "である。 この場合は B<pause>()  は -1 を返し、 I<errno> に B<EINTR> が設定さ"
2197 "れる。"
2198
2199 #. type: TP
2200 #: build/C/man2/pause.2:54 build/C/man2/sigsuspend.2:81
2201 #: build/C/man2/sigwaitinfo.2:123 build/C/man2/wait.2:410
2202 #, no-wrap
2203 msgid "B<EINTR>"
2204 msgstr "B<EINTR>"
2205
2206 #. type: Plain text
2207 #: build/C/man2/pause.2:57
2208 msgid "a signal was caught and the signal-catching function returned."
2209 msgstr "シグナルを受け取り、シグナル捕獲関数から帰ってきた。"
2210
2211 #. type: Plain text
2212 #: build/C/man2/pause.2:64
2213 msgid "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2214 msgstr "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2215
2216 #. type: TH
2217 #: build/C/man2/prctl.2:52
2218 #, no-wrap
2219 msgid "PRCTL"
2220 msgstr "PRCTL"
2221
2222 #. type: TH
2223 #: build/C/man2/prctl.2:52 build/C/man3/sigsetops.3:31
2224 #, no-wrap
2225 msgid "2014-04-14"
2226 msgstr "2014-04-14"
2227
2228 #. type: Plain text
2229 #: build/C/man2/prctl.2:55
2230 msgid "prctl - operations on a process"
2231 msgstr "prctl - プロセスの操作を行なう"
2232
2233 #. type: Plain text
2234 #: build/C/man2/prctl.2:58
2235 #, no-wrap
2236 msgid "B<#include E<lt>sys/prctl.hE<gt>>\n"
2237 msgstr "B<#include E<lt>sys/prctl.hE<gt>>\n"
2238
2239 #. type: Plain text
2240 #: build/C/man2/prctl.2:61
2241 #, no-wrap
2242 msgid ""
2243 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2244 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2245 msgstr ""
2246 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2247 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2248
2249 #. type: Plain text
2250 #: build/C/man2/prctl.2:68
2251 msgid ""
2252 "B<prctl>()  is called with a first argument describing what to do (with "
2253 "values defined in I<E<lt>linux/prctl.hE<gt>>), and further arguments with a "
2254 "significance depending on the first one.  The first argument can be:"
2255 msgstr ""
2256 "B<prctl>()  の動作は最初の引き数によって決定される (この値は I<E<lt>linux/"
2257 "prctl.hE<gt>> に定義されている)。 残りの引き数は最初の引き数によって変化す"
2258 "る。 一番目の引き数として以下のものを指定できる:"
2259
2260 #. type: TP
2261 #: build/C/man2/prctl.2:68
2262 #, no-wrap
2263 msgid "B<PR_CAPBSET_READ> (since Linux 2.6.25)"
2264 msgstr "B<PR_CAPBSET_READ> (Linux 2.6.25 以降)"
2265
2266 #. type: Plain text
2267 #: build/C/man2/prctl.2:80
2268 msgid ""
2269 "Return (as the function result) 1 if the capability specified in I<arg2> is "
2270 "in the calling thread's capability bounding set, or 0 if it is not.  (The "
2271 "capability constants are defined in I<E<lt>linux/capability.hE<gt>>.)  The "
2272 "capability bounding set dictates whether the process can receive the "
2273 "capability through a file's permitted capability set on a subsequent call to "
2274 "B<execve>(2)."
2275 msgstr ""
2276 "で指定されたケーパビリティが呼び出したスレッドのケーパビリティ バインディング"
2277 "セット (capability bounding set) に含まれている場合、 (関数の結果として) 1 を"
2278 "返し、そうでない場合 0 を返す (ケーパビリティ定数は I<E<lt>linux/capability."
2279 "hE<gt>> で定義されている)。 ケーパビリティバウンディングセットは、 B<execve>"
2280 "(2)  を呼び出した際に、ファイルの許可 (permitted) ケーパビリティの中で そのプ"
2281 "ロセスが獲得できるケーパビリティを指示するものである。"
2282
2283 #. type: Plain text
2284 #: build/C/man2/prctl.2:85
2285 msgid ""
2286 "If the capability specified in I<arg2> is not valid, then the call fails "
2287 "with the error B<EINVAL>."
2288 msgstr ""
2289 "I<arg2> に指定されたケーパビリティが有効でない場合、 呼び出しはエラー "
2290 "B<EINVAL> で失敗する。"
2291
2292 #. type: TP
2293 #: build/C/man2/prctl.2:85
2294 #, no-wrap
2295 msgid "B<PR_CAPBSET_DROP> (since Linux 2.6.25)"
2296 msgstr "B<PR_CAPBSET_DROP> (Linux 2.6.25 以降)"
2297
2298 #. type: Plain text
2299 #: build/C/man2/prctl.2:94
2300 msgid ""
2301 "If the calling thread has the B<CAP_SETPCAP> capability, then drop the "
2302 "capability specified by I<arg2> from the calling thread's capability "
2303 "bounding set.  Any children of the calling thread will inherit the newly "
2304 "reduced bounding set."
2305 msgstr ""
2306 "呼び出したスレッドがケーパビリティ B<CAP_SETPCAP> を持っている場合、 呼び出し"
2307 "たスレッドのケーパビリティバウンディングセットから I<arg2> で指定されたケーパ"
2308 "ビリティを外す。 呼び出したスレッドの子プロセスは変更後のバウンディングセット"
2309 "を 継承する。"
2310
2311 #. type: Plain text
2312 #: build/C/man2/prctl.2:106
2313 msgid ""
2314 "The call fails with the error: B<EPERM> if the calling thread does not have "
2315 "the B<CAP_SETPCAP>; B<EINVAL> if I<arg2> does not represent a valid "
2316 "capability; or B<EINVAL> if file capabilities are not enabled in the kernel, "
2317 "in which case bounding sets are not supported."
2318 msgstr ""
2319 "呼び出したスレッドが B<CAP_SETPCAP> を持っていない場合、呼び出しはエラー "
2320 "B<EPERM> で失敗する。 I<arg2> に指定されたケーパビリティが有効でない場合、 "
2321 "B<EINVAL> で失敗する。 ファイルケーパビリティがカーネルで有効になっていない場"
2322 "合 (この場合にはバウンディングセットがサポートされない)、 B<EINVAL> で失敗す"
2323 "る。"
2324
2325 #. type: TP
2326 #: build/C/man2/prctl.2:106
2327 #, no-wrap
2328 msgid "B<PR_SET_CHILD_SUBREAPER> (since Linux 3.4)"
2329 msgstr "B<PR_SET_CHILD_SUBREAPER> (Linux 3.4 以降)"
2330
2331 #.  commit ebec18a6d3aa1e7d84aab16225e87fd25170ec2b
2332 #. type: Plain text
2333 #: build/C/man2/prctl.2:131
2334 msgid ""
2335 "If I<arg2> is nonzero, set the \"child subreaper\" attribute of the calling "
2336 "process; if I<arg2> is zero, unset the attribute.  When a process is marked "
2337 "as a child subreaper, all of the children that it creates, and their "
2338 "descendants, will be marked as having a subreaper.  In effect, a subreaper "
2339 "fulfills the role of B<init>(1)  for its descendant processes.  Upon "
2340 "termination of a process that is orphaned (i.e., its immediate parent has "
2341 "already terminated)  and marked as having a subreaper, the nearest still "
2342 "living ancestor subreaper will receive a B<SIGCHLD> signal and be able to "
2343 "B<wait>(2)  on the process to discover its termination status."
2344 msgstr ""
2345
2346 #. type: TP
2347 #: build/C/man2/prctl.2:131
2348 #, no-wrap
2349 msgid "B<PR_GET_CHILD_SUBREAPER> (since Linux 3.4)"
2350 msgstr "B<PR_GET_CHILD_SUBREAPER> (Linux 3.4 以降)"
2351
2352 #. type: Plain text
2353 #: build/C/man2/prctl.2:136
2354 msgid ""
2355 "Return the \"child subreaper\" setting of the caller, in the location "
2356 "pointed to by I<(int\\ *) arg2>."
2357 msgstr ""
2358
2359 #. type: TP
2360 #: build/C/man2/prctl.2:136
2361 #, no-wrap
2362 msgid "B<PR_SET_DUMPABLE> (since Linux 2.3.20)"
2363 msgstr "B<PR_SET_DUMPABLE> (Linux 2.3.20 以降)"
2364
2365 #.  See http://marc.theaimsgroup.com/?l=linux-kernel&m=115270289030630&w=2
2366 #.  Subject:    Fix prctl privilege escalation (CVE-2006-2451)
2367 #.  From:       Marcel Holtmann <marcel () holtmann ! org>
2368 #.  Date:       2006-07-12 11:12:00
2369 #. type: Plain text
2370 #: build/C/man2/prctl.2:162
2371 msgid ""
2372 "Set the state of the flag determining whether core dumps are produced for "
2373 "the calling process upon delivery of a signal whose default behavior is to "
2374 "produce a core dump.  (Normally, this flag is set for a process by default, "
2375 "but it is cleared when a set-user-ID or set-group-ID program is executed and "
2376 "also by various system calls that manipulate process UIDs and GIDs).  In "
2377 "kernels up to and including 2.6.12, I<arg2> must be either 0 (process is not "
2378 "dumpable) or 1 (process is dumpable).  Between kernels 2.6.13 and 2.6.17, "
2379 "the value 2 was also permitted, which caused any binary which normally would "
2380 "not be dumped to be dumped readable by root only; for security reasons, this "
2381 "feature has been removed.  (See also the description of I</proc/sys/fs/"
2382 "suid_dumpable> in B<proc>(5).)  Processes that are not dumpable can not be "
2383 "attached via B<ptrace>(2)  B<PTRACE_ATTACH>."
2384 msgstr "(Linux 2.3.20 以降) デフォルトの振る舞いではコアダンプを引き起こすようなシグナルを受信したときに、呼び出し元のプロセスでコアダンプを生成するかどうかを決定するフラグを設定する (通常このフラグは、デフォルトではセットされているが、 set-user-ID あるいは set-group-ID プログラムが実行されたり、 さまざまなシステムコールによってプロセスの UID や GID が操作されたときに クリアされる)。 2.6.12 以前のカーネルでは、 I<arg2> は 0 (プロセスはダンプ不可) あるいは 1 (プロセスはダンプ可能) の どちらかでなければならない。 2.6.13 から 2.6.17 までのカーネルでは、値 2 も認められていた。 この値を指定すると、通常はダンプされないバイナリが root だけが 読み込み可能な形でダンプされた。 セキュリティ上の理由から、この機能は削除された (B<proc>(5) の I</proc/sys/fs/suid_dumpable> の説明も参照)。 ダンプ不可のプロセスを B<ptrace>(2) B<PTRACE_ATTACH> 経由で接続することはできない。"
2385
2386 #. type: TP
2387 #: build/C/man2/prctl.2:162
2388 #, no-wrap
2389 msgid "B<PR_GET_DUMPABLE> (since Linux 2.3.20)"
2390 msgstr "B<PR_GET_DUMPABLE> (Linux 2.3.20 以降)"
2391
2392 #.  Since Linux 2.6.13, the dumpable flag can have the value 2,
2393 #.  but in 2.6.13 PR_GET_DUMPABLE simply returns 1 if the dumpable
2394 #.  flags has a nonzero value.  This was fixed in 2.6.14.
2395 #. type: Plain text
2396 #: build/C/man2/prctl.2:169
2397 msgid ""
2398 "Return (as the function result) the current state of the calling process's "
2399 "dumpable flag."
2400 msgstr ""
2401 "(Linux 2.3.20 以降)  呼び出し元プロセスにおけるダンプ可能フラグの 現在の状態"
2402 "を (関数の結果として) 返す。"
2403
2404 #. type: TP
2405 #: build/C/man2/prctl.2:169
2406 #, no-wrap
2407 msgid "B<PR_SET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2408 msgstr "B<PR_SET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2409
2410 #.  Respectively 0, 1, 2
2411 #. type: Plain text
2412 #: build/C/man2/prctl.2:179
2413 msgid ""
2414 "Set the endian-ness of the calling process to the value given in I<arg2>, "
2415 "which should be one of the following: B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2416 "or B<PR_ENDIAN_PPC_LITTLE> (PowerPC pseudo little endian)."
2417 msgstr ""
2418 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<arg2> で指定された値"
2419 "に設定する。 指定できる値は B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2420 "B<PR_ENDIAN_PPC_LITTLE> (PowerPC 擬似リトルエンディアン)  のいずれか一つであ"
2421 "る。"
2422
2423 #. type: TP
2424 #: build/C/man2/prctl.2:179
2425 #, no-wrap
2426 msgid "B<PR_GET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2427 msgstr "B<PR_GET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2428
2429 #. type: Plain text
2430 #: build/C/man2/prctl.2:184
2431 msgid ""
2432 "Return the endian-ness of the calling process, in the location pointed to by "
2433 "I<(int\\ *) arg2>."
2434 msgstr ""
2435 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<(int\\ *) arg2> が指"
2436 "す場所に格納して返す。"
2437
2438 #. type: TP
2439 #: build/C/man2/prctl.2:184
2440 #, no-wrap
2441 msgid "B<PR_SET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2442 msgstr "B<PR_SET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2443
2444 #. type: Plain text
2445 #: build/C/man2/prctl.2:191
2446 msgid ""
2447 "Set floating-point emulation control bits to I<arg2>.  Pass "
2448 "B<PR_FPEMU_NOPRINT> to silently emulate fp operations accesses, or "
2449 "B<PR_FPEMU_SIGFPE> to not emulate fp operations and send B<SIGFPE> instead."
2450 msgstr ""
2451 "浮動小数点エミュレーション (floating-point emulation) 制御ビットを I<arg2> で"
2452 "指定された値に設定する。 指定できる値は B<PR_FPEMU_NOPRINT> (浮動小数点命令ア"
2453 "クセスを黙って エミュレートする) か B<PR_FPEMU_SIGFPE> (浮動小数点命令をエ"
2454 "ミュレートせず、 代わりに B<SIGFPE> を送る) である。"
2455
2456 #. type: TP
2457 #: build/C/man2/prctl.2:191
2458 #, no-wrap
2459 msgid "B<PR_GET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2460 msgstr "B<PR_GET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2461
2462 #. type: Plain text
2463 #: build/C/man2/prctl.2:196
2464 msgid ""
2465 "Return floating-point emulation control bits, in the location pointed to by "
2466 "I<(int\\ *) arg2>."
2467 msgstr ""
2468 "浮動小数点エミュレーション制御ビットの値を I<(int\\ *) arg2> が指す場所に格納"
2469 "して返す。"
2470
2471 #. type: TP
2472 #: build/C/man2/prctl.2:196
2473 #, no-wrap
2474 msgid "B<PR_SET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2475 msgstr "B<PR_SET_FPEXC> (Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2476
2477 #. type: Plain text
2478 #: build/C/man2/prctl.2:209
2479 msgid ""
2480 "Set floating-point exception mode to I<arg2>.  Pass B<PR_FP_EXC_SW_ENABLE> "
2481 "to use FPEXC for FP exception enables, B<PR_FP_EXC_DIV> for floating-point "
2482 "divide by zero, B<PR_FP_EXC_OVF> for floating-point overflow, "
2483 "B<PR_FP_EXC_UND> for floating-point underflow, B<PR_FP_EXC_RES> for floating-"
2484 "point inexact result, B<PR_FP_EXC_INV> for floating-point invalid operation, "
2485 "B<PR_FP_EXC_DISABLED> for FP exceptions disabled, B<PR_FP_EXC_NONRECOV> for "
2486 "async nonrecoverable exception mode, B<PR_FP_EXC_ASYNC> for async "
2487 "recoverable exception mode, B<PR_FP_EXC_PRECISE> for precise exception mode."
2488 msgstr ""
2489 "浮動小数点例外モード (floating-point exception mode) を I<arg2> で指定された"
2490 "値に設定する。 指定できるのは以下の値である: B<PR_FP_EXC_SW_ENABLE> (FPEXC で"
2491 "浮動小数点例外を有効にする)、 B<PR_FP_EXC_DIV> (0 除算)、 B<PR_FP_EXC_OVF> "
2492 "(オーバーフロー)、 B<PR_FP_EXC_UND> (アンダーフロー)、 B<PR_FP_EXC_RES> (不正"
2493 "確な結果 (inexact result))、 B<PR_FP_EXC_INV> (不正な命令 (invalid "
2494 "operation))、 B<PR_FP_EXC_DISABLED> (浮動小数点例外を無効にする)、 "
2495 "B<PR_FP_EXC_NONRECOV> (async nonrecoverable exception mode)、 "
2496 "B<PR_FP_EXC_ASYNC> (async recoverable exception mode)、 B<PR_FP_EXC_PRECISE> "
2497 "(precise exception mode)。"
2498
2499 #. type: TP
2500 #: build/C/man2/prctl.2:209
2501 #, no-wrap
2502 msgid "B<PR_GET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2503 msgstr "B<PR_GET_FPEXC>(Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2504
2505 #. type: Plain text
2506 #: build/C/man2/prctl.2:214
2507 msgid ""
2508 "Return floating-point exception mode, in the location pointed to by I<(int\\ "
2509 "*) arg2>."
2510 msgstr ""
2511 "浮動小数点例外モードの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
2512
2513 #. type: TP
2514 #: build/C/man2/prctl.2:214
2515 #, no-wrap
2516 msgid "B<PR_SET_KEEPCAPS> (since Linux 2.2.18)"
2517 msgstr "B<PR_SET_KEEPCAPS> (Linux 2.2.18 以降)"
2518
2519 #. type: Plain text
2520 #: build/C/man2/prctl.2:232
2521 msgid ""
2522 "Set the state of the thread's \"keep capabilities\" flag, which determines "
2523 "whether the threads's permitted capability set is cleared when a change is "
2524 "made to the threads's user IDs such that the threads's real UID, effective "
2525 "UID, and saved set-user-ID all become nonzero when at least one of them "
2526 "previously had the value 0.  By default, the permitted capability set is "
2527 "cleared when such a change is made; setting the \"keep capabilities\" flag "
2528 "prevents it from being cleared.  I<arg2> must be either 0 (permitted "
2529 "capabilities are cleared)  or 1 (permitted capabilities are kept).  (A "
2530 "thread's I<effective> capability set is always cleared when such a "
2531 "credential change is made, regardless of the setting of the \"keep "
2532 "capabilities\" flag.)  The \"keep capabilities\" value will be reset to 0 on "
2533 "subsequent calls to B<execve>(2)."
2534 msgstr "スレッドの「ケーパビリティ保持」フラグを設定する。 このフラグは、スレッドの実 UID、実効 UID、保存 set-user-ID のうち少なくとも一つが 0 であった状態から、これら全てが 0 以外に変更されたとき、 スレッドの許可ケーパビリティ集合がクリアされるかどうかを決定する。 デフォルトでは、このような変更が行われた場合、許可ケーパビリティセットはクリアされる。「ケーパビリティ保持」フラグを設定すると、許可ケーパビリティセットはクリアされなくなる。 I<arg2> は 0 (許可ケーパビリティをクリアする) か 1 (許可ケーパビリティを保持する) の どちらかでなければならない。 (このような ID の変更が行われた場合、「ケーパビリティ保持」フラグの設定に関わらず、スレッドのI<実効>ケーパビリティセットは常にクリアされる。) B<execve>(2) が呼び出されると、「ケーパビリティ保持」フラグは 0 にリセットされる。"
2535
2536 #. type: TP
2537 #: build/C/man2/prctl.2:232
2538 #, no-wrap
2539 msgid "B<PR_GET_KEEPCAPS> (since Linux 2.2.18)"
2540 msgstr "B<PR_GET_KEEPCAPS> (Linux 2.2.18 以降)"
2541
2542 #. type: Plain text
2543 #: build/C/man2/prctl.2:236
2544 msgid ""
2545 "Return (as the function result) the current state of the calling threads's "
2546 "\"keep capabilities\" flag."
2547 msgstr ""
2548 "呼び出し元スレッドにおける「ケーパビリティ保持」フラグの 現在の状態を (関数の"
2549 "結果として) 返す。"
2550
2551 #. type: TP
2552 #: build/C/man2/prctl.2:236
2553 #, no-wrap
2554 msgid "B<PR_SET_NAME> (since Linux 2.6.9)"
2555 msgstr "B<PR_SET_NAME> (Linux 2.6.9 以降)"
2556
2557 #.  TASK_COMM_LEN in include/linux/sched.h
2558 #. type: Plain text
2559 #: build/C/man2/prctl.2:253
2560 msgid ""
2561 "Set the name of the calling thread, using the value in the location pointed "
2562 "to by I<(char\\ *) arg2>.  The name can be up to 16 bytes long, and should "
2563 "be null-terminated if it contains fewer bytes.  This is the same attribute "
2564 "that can be set via B<pthread_setname_np>(3)  and retrieved using "
2565 "B<pthread_getname_np>(3).  The attribute is likewise accessible via I</proc/"
2566 "self/task/[tid]/comm>, where I<tid> is the name of the calling thread."
2567 msgstr ""
2568 "呼び出し元スレッドのプロセス名を I<(char\\ *) arg2> が指す場所に格納された値"
2569 "を使って設定する。 名前は最大で 16 バイトであり、 それより少ないバイト数の場"
2570 "合はヌルで終端すべきである。 これは、 B<pthread_setname_np>(3) で設定で"
2571 "き、 B<pthread_getname_np>(3) で取得できるのと同じ属性である。 同様に、 "
2572 "I<tid> が呼び出し元スレッドの ID の場合、 この属性は I</proc/self/task/[tid]/"
2573 "comm> 経由でもアクセス可能である。"
2574
2575 #. type: TP
2576 #: build/C/man2/prctl.2:253
2577 #, no-wrap
2578 msgid "B<PR_GET_NAME> (since Linux 2.6.11)"
2579 msgstr "B<PR_GET_NAME> (Linux 2.6.11 以降)"
2580
2581 #. type: Plain text
2582 #: build/C/man2/prctl.2:260
2583 msgid ""
2584 "Return the name of the calling thread, in the buffer pointed to by I<(char\\ "
2585 "*) arg2>.  The buffer should allow space for up to 16 bytes; the returned "
2586 "string will be null-terminated if it is shorter than that."
2587 msgstr ""
2588 "呼び出し元スレッドの名前を I<(char\\ *) arg2> が指す場所に格納して返す。 バッ"
2589 "ファは最大で 16 バイトを格納できるようにすべきである。 返される文字列は、長さ"
2590 "が 16 バイトより短い場合はヌル終端される。"
2591
2592 #. type: TP
2593 #: build/C/man2/prctl.2:260
2594 #, no-wrap
2595 msgid "B<PR_SET_NO_NEW_PRIVS> (since Linux 3.5)"
2596 msgstr "B<PR_SET_NO_NEW_PRIVS> (Linux 3.5 以降)"
2597
2598 #. type: Plain text
2599 #: build/C/man2/prctl.2:283
2600 msgid ""
2601 "Set the calling process's I<no_new_privs> bit to the value in I<arg2>.  With "
2602 "I<no_new_privs> set to 1, B<execve>(2)  promises not to grant privileges to "
2603 "do anything that could not have been done without the B<execve>(2)  call "
2604 "(for example, rendering the set-user-ID and set-group-ID permission bits, "
2605 "and file capabilities non-functional).  Once set, this bit cannot be unset.  "
2606 "The setting of this bit is inherited by children created by B<fork>(2)  and "
2607 "B<clone>(2), and preserved across B<execve>(2)."
2608 msgstr ""
2609
2610 #. type: Plain text
2611 #: build/C/man2/prctl.2:286
2612 msgid ""
2613 "For more information, see the kernel source file I<Documentation/prctl/"
2614 "no_new_privs.txt>."
2615 msgstr "詳しい情報は、カーネルソースファイル I<Documentation/prctl/no_new_privs.txt> を参照。"
2616
2617 #. type: TP
2618 #: build/C/man2/prctl.2:286
2619 #, no-wrap
2620 msgid "B<PR_GET_NO_NEW_PRIVS> (since Linux 3.5)"
2621 msgstr "B<PR_GET_NO_NEW_PRIVS> (Linux 3.5 以降)"
2622
2623 #. type: Plain text
2624 #: build/C/man2/prctl.2:297
2625 msgid ""
2626 "Return (as the function result) the value of the I<no_new_privs> bit for the "
2627 "current process.  A value of 0 indicates the regular B<execve>(2)  "
2628 "behavior.  A value of 1 indicates B<execve>(2)  will operate in the "
2629 "privilege-restricting mode described above."
2630 msgstr ""
2631
2632 #. type: TP
2633 #: build/C/man2/prctl.2:297
2634 #, no-wrap
2635 msgid "B<PR_SET_PDEATHSIG> (since Linux 2.1.57)"
2636 msgstr "B<PR_SET_PDEATHSIG> (Linux 2.1.57 以降)"
2637
2638 #. type: Plain text
2639 #: build/C/man2/prctl.2:310
2640 msgid ""
2641 "Set the parent process death signal of the calling process to I<arg2> "
2642 "(either a signal value in the range 1..maxsig, or 0 to clear).  This is the "
2643 "signal that the calling process will get when its parent dies.  This value "
2644 "is cleared for the child of a B<fork>(2)  and (since Linux 2.4.36 / 2.6.23)  "
2645 "when executing a set-user-ID or set-group-ID binary.  This value is "
2646 "preserved across B<execve>(2)."
2647 msgstr ""
2648 "親プロセス死亡シグナル (parent process death signal) を I<arg2> に設定する "
2649 "(設定できるシグナル値の範囲は 1..maxsig であり、0 は通知の解除である)。 呼び"
2650 "出し元プロセスの親プロセスが死んだ際に、ここで設定した値が シグナルとして通知"
2651 "される。この値は B<fork>(2) の子プロセスでは解除される。 (Linux 2.4.36 以降お"
2652 "よび 2.6.23 以降では) set-user-ID もしくは set-group-ID されたバイナリを実行"
2653 "した場合にも、このフラグは解除される。この値は B<execve>(2) の前後で保持され"
2654 "る。"
2655
2656 #. type: TP
2657 #: build/C/man2/prctl.2:310
2658 #, no-wrap
2659 msgid "B<PR_GET_PDEATHSIG> (since Linux 2.3.15)"
2660 msgstr "B<PR_GET_PDEATHSIG> (Linux 2.3.15 以降)"
2661
2662 #. type: Plain text
2663 #: build/C/man2/prctl.2:315
2664 msgid ""
2665 "Return the current value of the parent process death signal, in the location "
2666 "pointed to by I<(int\\ *) arg2>."
2667 msgstr ""
2668 "親プロセス死亡シグナルの現在の値を I<(int\\ *) arg2> が指す場所に格納して返"
2669 "す。"
2670
2671 #. type: TP
2672 #: build/C/man2/prctl.2:315
2673 #, no-wrap
2674 msgid "B<PR_SET_PTRACER> (since Linux 3.4)"
2675 msgstr "B<PR_SET_PTRACER> (Linux 3.4 以降)"
2676
2677 #.  commit 2d514487faf188938a4ee4fb3464eeecfbdcf8eb
2678 #.  commit bf06189e4d14641c0148bea16e9dd24943862215
2679 #. type: Plain text
2680 #: build/C/man2/prctl.2:340
2681 msgid ""
2682 "This is meaningful only when the Yama LSM is enabled and in mode 1 "
2683 "(\"restricted ptrace\", visible via I</proc/sys/kernel/yama/ptrace_scope>).  "
2684 "When a \"ptracer process ID\" is passed in I<arg2>, the caller is declaring "
2685 "that the ptracer process can B<ptrace>(2)  the calling process as if it were "
2686 "a direct process ancestor.  Each B<PR_SET_PTRACER> operation replaces the "
2687 "previous \"ptracer process ID\".  Employing B<PR_SET_PTRACER> with I<arg2> "
2688 "set to 0 clears the caller's \"ptracer process ID\".  If I<arg2> is "
2689 "B<PR_SET_PTRACER_ANY>, the ptrace restrictions introduced by Yama are "
2690 "effectively disabled for the calling process."
2691 msgstr ""
2692
2693 #. type: Plain text
2694 #: build/C/man2/prctl.2:343
2695 msgid ""
2696 "For further information, see the kernel source file I<Documentation/security/"
2697 "Yama.txt>."
2698 msgstr "詳しい情報は、カーネルソースファイル I<Documentation/security/Yama.txt> を参照。"
2699
2700 #. type: TP
2701 #: build/C/man2/prctl.2:343
2702 #, no-wrap
2703 msgid "B<PR_SET_SECCOMP> (since Linux 2.6.23)"
2704 msgstr "B<PR_SET_SECCOMP> (Linux 2.6.23 以降)"
2705
2706 #.  See http://thread.gmane.org/gmane.linux.kernel/542632
2707 #.  [PATCH 0 of 2] seccomp updates
2708 #.  andrea@cpushare.com
2709 #. type: Plain text
2710 #: build/C/man2/prctl.2:354
2711 msgid ""
2712 "Set the secure computing (seccomp) mode for the calling thread, to limit the "
2713 "available system calls.  The seccomp mode is selected via I<arg2>.  (The "
2714 "seccomp constants are defined in I<E<lt>linux/seccomp.hE<gt>>.)"
2715 msgstr "呼び出したスレッドのセキュアコンピューティング (seccomp) モードを設定する。 seccomp モードは利用できるシステムコールを制限するものである。 seccomp モードは I<arg2> で指定できる (seccomp 定数は I<E<lt>linux/seccomp.hE<gt>> で定義されている)。"
2716
2717 #. type: Plain text
2718 #: build/C/man2/prctl.2:375
2719 msgid ""
2720 "With I<arg2> set to B<SECCOMP_MODE_STRICT> the only system calls that the "
2721 "thread is permitted to make are B<read>(2), B<write>(2), B<_exit>(2), and "
2722 "B<sigreturn>(2).  Other system calls result in the delivery of a B<SIGKILL> "
2723 "signal.  Strict secure computing mode is useful for number-crunching "
2724 "applications that may need to execute untrusted byte code, perhaps obtained "
2725 "by reading from a pipe or socket.  This operation is available only if the "
2726 "kernel is configured with B<CONFIG_SECCOMP> enabled."
2727 msgstr ""
2728 "I<arg2> を B<SECCOMP_MODE_STRICT> に設定すると、 そのスレッドが呼び出しを許可"
2729 "されるシステムコールは B<read>(2), B<write>(2), B<_exit>(2), B<sigreturn>(2) "
2730 "だけになる。 それ以外のシステムコールを呼び出すと、シグナル B<SIGKILL> が配送"
2731 "される。 パイプやソケットから読み込んだ、 信頼できないバイトコードを実行する"
2732 "必要がある大量の演算を行うアプリケーションにおいて、 strict secure computing "
2733 "モードは役立つ。 この操作は利用できるのは、 カーネルが B<CONFIG_SECCOMP> を有"
2734 "効にして作成されている場合だけである。"
2735
2736 #. type: Plain text
2737 #: build/C/man2/prctl.2:390
2738 msgid ""
2739 "With I<arg2> set to B<SECCOMP_MODE_FILTER> (since Linux 3.5)  the system "
2740 "calls allowed are defined by a pointer to a Berkeley Packet Filter passed in "
2741 "I<arg3>.  This argument is a pointer to I<struct sock_fprog>; it can be "
2742 "designed to filter arbitrary system calls and system call arguments.  This "
2743 "mode is available only if the kernel is configured with "
2744 "B<CONFIG_SECCOMP_FILTER> enabled."
2745 msgstr "I<arg2> を B<SECCOMP_MODE_FILTER> (Linux 3.5 以降) に設定すると、 許可されるシステムコールは I<arg3> で渡された Berkeley Packet Filter へのポインターで定義される。 この引き数は I<struct sock_fprog> へのポインターである。 これは任意のシステムコールやシステムコール引き数をフィルタリングするために設計された。 このモードはカーネルで B<CONFIG_SECCOMP_FILTER> が有効になっている場合にのみ利用可能である。"
2746
2747 #. type: Plain text
2748 #: build/C/man2/prctl.2:405
2749 msgid ""
2750 "If B<SECCOMP_MODE_FILTER> filters permit B<fork>(2), then the seccomp mode "
2751 "is inherited by children created by B<fork>(2); if B<execve>(2)  is "
2752 "permitted, then the seccomp mode is preserved across B<execve>(2).  If the "
2753 "filters permit B<prctl>()  calls, then additional filters can be added; they "
2754 "are run in order until the first non-allow result is seen."
2755 msgstr "B<SECCOMP_MODE_FILTER> フィルターで B<fork>(2) が許可されている場合、 seccomp モードは B<fork>(2) で作成された子プロセスに継承される。 B<execve>(2) が許可されている場合、 seccomp モードは B<execve>(2) の前後で維持される。 フィルターで B<prctl>() コールが許可されている場合、 追加でフィルターが定義され、 これらのフィルターは許可されないものが見つかるまで指定された順序で実行される。"
2756
2757 #. type: Plain text
2758 #: build/C/man2/prctl.2:408
2759 msgid ""
2760 "For further information, see the kernel source file I<Documentation/prctl/"
2761 "seccomp_filter.txt>."
2762 msgstr "詳しい情報は、カーネルソースファイル I<Documentation/prctl/seccomp_filter.txt> を参照。"
2763
2764 #. type: TP
2765 #: build/C/man2/prctl.2:408
2766 #, no-wrap
2767 msgid "B<PR_GET_SECCOMP> (since Linux 2.6.23)"
2768 msgstr "B<PR_GET_SECCOMP> (Linux 2.6.23 以降)"
2769
2770 #. type: Plain text
2771 #: build/C/man2/prctl.2:424
2772 msgid ""
2773 "Return (as the function result)  the secure computing mode of the calling "
2774 "thread.  If the caller is not in secure computing mode, this operation "
2775 "returns 0; if the caller is in strict secure computing mode, then the "
2776 "B<prctl>()  call will cause a B<SIGKILL> signal to be sent to the process.  "
2777 "If the caller is in filter mode, and this system call is allowed by the "
2778 "seccomp filters, it returns 2.  This operation is available only if the "
2779 "kernel is configured with B<CONFIG_SECCOMP> enabled."
2780 msgstr ""
2781 "呼び出したスレッドの secure computing モードを (関数の結果として) 返す。 呼び"
2782 "出したスレッドが secure computing モードでなかった場合、 この操作は 0 を返"
2783 "す。 呼び出したスレッドが secure computing モードの場合、 B<prctl>()  を呼び"
2784 "出すとシグナル B<SIGKILL> がそのプロセスに送信される。 呼び出したスレッドが"
2785 "フィルタモードで、 このシステムコールが seccomp フィルタにより許可されている"
2786 "場合、 2 を返す。 この操作が利用できるのは、カーネルが B<CONFIG_SECCOMP> を有"
2787 "効にして作成されている場合だけである。"
2788
2789 #. type: TP
2790 #: build/C/man2/prctl.2:424
2791 #, no-wrap
2792 msgid "B<PR_SET_SECUREBITS> (since Linux 2.6.26)"
2793 msgstr "B<PR_SET_SECUREBITS> (Linux 2.6.26 以降)"
2794
2795 #. type: Plain text
2796 #: build/C/man2/prctl.2:430
2797 msgid ""
2798 "Set the \"securebits\" flags of the calling thread to the value supplied in "
2799 "I<arg2>.  See B<capabilities>(7)."
2800 msgstr ""
2801 "呼び出したスレッドの \"securebits\" フラグを I<arg2> で渡された値に設定す"
2802 "る。 B<capabilities>(7)  参照。"
2803
2804 #. type: TP
2805 #: build/C/man2/prctl.2:430
2806 #, no-wrap
2807 msgid "B<PR_GET_SECUREBITS> (since Linux 2.6.26)"
2808 msgstr "B<PR_GET_SECUREBITS> (Linux 2.6.26 以降)"
2809
2810 #. type: Plain text
2811 #: build/C/man2/prctl.2:436
2812 msgid ""
2813 "Return (as the function result)  the \"securebits\" flags of the calling "
2814 "thread.  See B<capabilities>(7)."
2815 msgstr ""
2816 "呼び出したスレッドの \"securebits\" フラグを (関数の結果として) 返す。 "
2817 "B<capabilities>(7)  参照。"
2818
2819 #. type: TP
2820 #: build/C/man2/prctl.2:436
2821 #, no-wrap
2822 msgid "B<PR_SET_THP_DISABLE> (since Linux 3.15)"
2823 msgstr "B<PR_SET_THP_DISABLE> (Linux 3.15 以降)"
2824
2825 #.  commit a0715cc22601e8830ace98366c0c2bd8da52af52
2826 #. type: Plain text
2827 #: build/C/man2/prctl.2:452
2828 msgid ""
2829 "Set the state of the \"THP disable\" flag for the calling thread.  If "
2830 "I<arg2> has a nonzero value, the flag is set, otherwise it is cleared.  "
2831 "Setting this flag provides a method for disabling transparent huge pages for "
2832 "jobs where the code cannot be modified, and using a malloc hook with "
2833 "B<madvise>(2)  is not an option (i.e., statically allocated data).  The "
2834 "setting of the \"THP disable\" flag is inherited by a child created via "
2835 "B<fork>(2)  and is preserved across B<execve>(2)."
2836 msgstr "呼び出したスレッドの \"THP disable\" (THP 無効) フラグの状態を設定する。 I<arg2> が 0 以外の場合、フラグは有効になり、そうでない場合はクリーンされる。 このフラグを設定する方法により、 コードを変更できなかったり B<madvise>(2) の malloc hook をが有効ではないジョブ (この方法は静的に割り当てられたデータには有効ではない)に対して、 transparent huge pages を無効にする手段が提供される。 \"THP disable\" フラグの設定は B<fork>(2) で作成された子プロセスに継承され、 B<execve> の前後で維持される。"
2837
2838 #. type: TP
2839 #: build/C/man2/prctl.2:452
2840 #, no-wrap
2841 msgid "B<PR_GET_THP_DISABLE> (since Linux 3.15)"
2842 msgstr "B<PR_GET_THP_DISABLE> (Linux 3.15 以降)"
2843
2844 #. type: Plain text
2845 #: build/C/man2/prctl.2:457
2846 msgid ""
2847 "Return (via the function result) the current setting of the \"THP disable\" "
2848 "flag for the calling thread: either 1, if the flag is set, or 0, if it is "
2849 "not."
2850 msgstr "呼び出し元スレッドの \"THP disable\" フラグの現在の設定を (関数の結果として) 返す。フラグがセットされている場合は 1 が、セットされていない場合は 0 が返る。"
2851
2852 #. type: TP
2853 #: build/C/man2/prctl.2:457
2854 #, no-wrap
2855 msgid "B<PR_GET_TID_ADDRESS> (since Linux 3.5)"
2856 msgstr "B<PR_GET_TID_ADDRESS> (Linux 3.5 以降)"
2857
2858 #.  commit 300f786b2683f8bb1ec0afb6e1851183a479c86d
2859 #. type: Plain text
2860 #: build/C/man2/prctl.2:472
2861 msgid ""
2862 "Retrieve the I<clear_child_tid> address set by B<set_tid_address>(2)  and "
2863 "the B<clone>(2)  B<CLONE_CHILD_CLEARTID> flag, in the location pointed to by "
2864 "I<(int\\ **)\\ arg2>.  This feature is available only if the kernel is built "
2865 "with the B<CONFIG_CHECKPOINT_RESTORE> option enabled."
2866 msgstr "B<set_tid_address>(2) や B<clone>(2) B<CLONE_CHILD_CLEARTID> フラグで設定された I<clear_child_tid> を取得し、 I<(int\\ **)\\ arg2> が指す場所に格納して返す。 この機能はカーネルが B<CONFIG_CHECKPOINT_RESTORE> オプションを有効にして作成されている場合にのみ利用できる。"
2867
2868 #. type: TP
2869 #: build/C/man2/prctl.2:472
2870 #, no-wrap
2871 msgid "B<PR_SET_TIMERSLACK> (since Linux 2.6.28)"
2872 msgstr "B<PR_SET_TIMERSLACK> (Linux 2.6.28 以降)"
2873
2874 #.  See https://lwn.net/Articles/369549/
2875 #.  commit 6976675d94042fbd446231d1bd8b7de71a980ada
2876 #.  It seems that it's not possible to set the timer slack to zero;
2877 #.  The minimum value is 1? Seems a little strange.
2878 #. type: Plain text
2879 #: build/C/man2/prctl.2:491
2880 msgid ""
2881 "Set the current timer slack for the calling thread to the nanosecond value "
2882 "supplied in I<arg2>.  If I<arg2> is less than or equal to zero, reset the "
2883 "current timer slack to the thread's default timer slack value.  The timer "
2884 "slack is used by the kernel to group timer expirations for the calling "
2885 "thread that are close to one another; as a consequence, timer expirations "
2886 "for the thread may be up to the specified number of nanoseconds late (but "
2887 "will never expire early).  Grouping timer expirations can help reduce system "
2888 "power consumption by minimizing CPU wake-ups."
2889 msgstr ""
2890
2891 #.  List obtained by grepping for futex usage in glibc source
2892 #. type: Plain text
2893 #: build/C/man2/prctl.2:511
2894 msgid ""
2895 "The timer expirations affected by timer slack are those set by B<select>(2), "
2896 "B<pselect>(2), B<poll>(2), B<ppoll>(2), B<epoll_wait>(2), B<epoll_pwait>(2), "
2897 "B<clock_nanosleep>(2), B<nanosleep>(2), and B<futex>(2)  (and thus the "
2898 "library functions implemented via futexes, including "
2899 "B<pthread_cond_timedwait>(3), B<pthread_mutex_timedlock>(3), "
2900 "B<pthread_rwlock_timedrdlock>(3), B<pthread_rwlock_timedwrlock>(3), and "
2901 "B<sem_timedwait>(3))."
2902 msgstr ""
2903
2904 #. type: Plain text
2905 #: build/C/man2/prctl.2:515
2906 msgid ""
2907 "Timer slack is not applied to threads that are scheduled under a real-time "
2908 "scheduling policy (see B<sched_setscheduler>(2))."
2909 msgstr ""
2910
2911 #. type: Plain text
2912 #: build/C/man2/prctl.2:532
2913 msgid ""
2914 "Each thread has two associated timer slack values: a \"default\" value, and "
2915 "a \"current\" value.  The current value is the one that governs grouping of "
2916 "timer expirations.  When a new thread is created, the two timer slack values "
2917 "are made the same as the current value of the creating thread.  Thereafter, "
2918 "a thread can adjust its current timer slack value via B<PR_SET_TIMERSLACK> "
2919 "(the default value can't be changed).  The timer slack values of I<init> "
2920 "(PID 1), the ancestor of all processes, are 50,000 nanoseconds (50 "
2921 "microseconds).  The timer slack values are preserved across B<execve>(2)."
2922 msgstr ""
2923
2924 #. type: TP
2925 #: build/C/man2/prctl.2:532
2926 #, no-wrap
2927 msgid "B<PR_GET_TIMERSLACK> (since Linux 2.6.28)"
2928 msgstr "B<PR_GET_TIMERSLACK> (Linux 2.6.28 以降)"
2929
2930 #. type: Plain text
2931 #: build/C/man2/prctl.2:536
2932 msgid ""
2933 "Return (as the function result)  the current timer slack value of the "
2934 "calling thread."
2935 msgstr ""
2936 "呼び出し元スレッドの現在のタイマーのスラック値を (関数の結果として) 返す。"
2937
2938 #. type: TP
2939 #: build/C/man2/prctl.2:536
2940 #, no-wrap
2941 msgid "B<PR_SET_TIMING> (since Linux 2.6.0-test4)"
2942 msgstr "B<PR_SET_TIMING> (Linux 2.6.0-test4 以降)"
2943
2944 #.  0
2945 #.  1
2946 #.  PR_TIMING_TIMESTAMP doesn't do anything in 2.6.26-rc8,
2947 #.  and looking at the patch history, it appears
2948 #.  that it never did anything.
2949 #. type: Plain text
2950 #: build/C/man2/prctl.2:553
2951 msgid ""
2952 "Set whether to use (normal, traditional) statistical process timing or "
2953 "accurate timestamp-based process timing, by passing B<PR_TIMING_STATISTICAL> "
2954 "or B<PR_TIMING_TIMESTAMP> to I<arg2>.  B<PR_TIMING_TIMESTAMP> is not "
2955 "currently implemented (attempting to set this mode will yield the error "
2956 "B<EINVAL>)."
2957 msgstr "(通常の、伝統的に使われてきた) 統計的なプロセスタイミングを使用するか、 正確なタイムスタンプに基づくプロセスタイミングを使用するかを設定する。 I<arg2> に指定できる値は B<PR_TIMING_STATISTICAL> か B<PR_TIMING_TIMESTAMP> である。 B<PR_TIMING_TIMESTAMP> は現在のところ実装されていない (このモードに設定しようとするとエラー B<EINVAL> が起こることだろう)。"
2958
2959 #. type: TP
2960 #: build/C/man2/prctl.2:553
2961 #, no-wrap
2962 msgid "B<PR_GET_TIMING> (since Linux 2.6.0-test4)"
2963 msgstr "B<PR_GET_TIMING> (Linux 2.6.0-test4 以降)"
2964
2965 #. type: Plain text
2966 #: build/C/man2/prctl.2:557
2967 msgid ""
2968 "Return (as the function result) which process timing method is currently in "
2969 "use."
2970 msgstr "現在使用中のプロセスタイミングを決める方法を (関数の結果として) 返す。"
2971
2972 #. type: TP
2973 #: build/C/man2/prctl.2:557
2974 #, no-wrap
2975 msgid "B<PR_TASK_PERF_EVENTS_DISABLE> (since Linux 2.6.31)"
2976 msgstr "B<PR_TASK_PERF_EVENTS_DISABLE> (Linux 2.6.31 以降)"
2977
2978 #. type: Plain text
2979 #: build/C/man2/prctl.2:566
2980 msgid ""
2981 "Disable all performance counters attached to the calling process, regardless "
2982 "of whether the counters were created by this process or another process.  "
2983 "Performance counters created by the calling process for other processes are "
2984 "unaffected.  For more information on performance counters, see the Linux "
2985 "kernel source file I<tools/perf/design.txt>."
2986 msgstr "呼び出したプロセスに接続されたすべての性能カウンターを無効にする。 カウンターがこのプロセスにより作成されたか他のプロセスにより作成されたかは関係ない。 呼び出したプロセスが他のプロセス用に作成した性能カウンターは影響を受けない。 性能カウンターの詳細については Linux カーネルソースの I<tools/perf/design.txt> を参照。"
2987
2988 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
2989 #. type: Plain text
2990 #: build/C/man2/prctl.2:572
2991 msgid ""
2992 "Originally called B<PR_TASK_PERF_COUNTERS_DISABLE>; renamed (with same "
2993 "numerical value)  in Linux 2.6.32."
2994 msgstr "以前は B<PR_TASK_PERF_COUNTERS_DISABLE> と呼ばれていた。 Linux 2.6.32 で名前が変更された (数値は同じままである)。"
2995
2996 #. type: TP
2997 #: build/C/man2/prctl.2:572
2998 #, no-wrap
2999 msgid "B<PR_TASK_PERF_EVENTS_ENABLE> (since Linux 2.6.31)"
3000 msgstr "B<PR_TASK_PERF_EVENTS_ENABLE> (Linux 2.6.31 以降)"
3001
3002 #. type: Plain text
3003 #: build/C/man2/prctl.2:577
3004 msgid ""
3005 "The converse of B<PR_TASK_PERF_EVENTS_DISABLE>; enable performance counters "
3006 "attached to the calling process."
3007 msgstr "B<PR_TASK_PERF_EVENTS_DISABLE> の逆。 呼び出したプロセスに接続された性能カウンターを有効にする。"
3008
3009 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
3010 #.  commit cdd6c482c9ff9c55475ee7392ec8f672eddb7be6
3011 #. type: Plain text
3012 #: build/C/man2/prctl.2:584
3013 msgid ""
3014 "Originally called B<PR_TASK_PERF_COUNTERS_ENABLE>; renamed in Linux 2.6.32."
3015 msgstr "以前は B<PR_TASK_PERF_COUNTERS_ENABLE> と呼ばれていた。 Linux 2.6.32 で名前が変更された。"
3016
3017 #. type: TP
3018 #: build/C/man2/prctl.2:584
3019 #, no-wrap
3020 msgid "B<PR_SET_TSC> (since Linux 2.6.26, x86 only)"
3021 msgstr "B<PR_SET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3022
3023 #. type: Plain text
3024 #: build/C/man2/prctl.2:597
3025 msgid ""
3026 "Set the state of the flag determining whether the timestamp counter can be "
3027 "read by the process.  Pass B<PR_TSC_ENABLE> to I<arg2> to allow it to be "
3028 "read, or B<PR_TSC_SIGSEGV> to generate a B<SIGSEGV> when the process tries "
3029 "to read the timestamp counter."
3030 msgstr ""
3031 "そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する フラグの状態を"
3032 "設定する。 読み出しを許可する場合は I<arg2> に B<PR_TSC_ENABLE> を、そのプロ"
3033 "セスがタイムスタンプ・カウンタを読み出そうとした際に B<SIGSEGV> を発生させる"
3034 "場合には B<PR_TSC_SIGSEGV> を渡す。"
3035
3036 #. type: TP
3037 #: build/C/man2/prctl.2:597
3038 #, no-wrap
3039 msgid "B<PR_GET_TSC> (since Linux 2.6.26, x86 only)"
3040 msgstr "B<PR_GET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3041
3042 #. type: Plain text
3043 #: build/C/man2/prctl.2:603
3044 msgid ""
3045 "Return the state of the flag determining whether the timestamp counter can "
3046 "be read, in the location pointed to by I<(int\\ *) arg2>."
3047 msgstr ""
3048 "そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する フラグの状態"
3049 "を I<(int\\ *) arg2> が指す場所に格納して返す。"
3050
3051 #. type: TP
3052 #: build/C/man2/prctl.2:603
3053 #, no-wrap
3054 msgid "B<PR_SET_UNALIGN>"
3055 msgstr "B<PR_SET_UNALIGN>"
3056
3057 #. type: Plain text
3058 #: build/C/man2/prctl.2:613
3059 msgid ""
3060 "(Only on: ia64, since Linux 2.3.48; parisc, since Linux 2.6.15; PowerPC, "
3061 "since Linux 2.6.18; Alpha, since Linux 2.6.22)  Set unaligned access control "
3062 "bits to I<arg2>.  Pass B<PR_UNALIGN_NOPRINT> to silently fix up unaligned "
3063 "user accesses, or B<PR_UNALIGN_SIGBUS> to generate B<SIGBUS> on unaligned "
3064 "user access."
3065 msgstr ""
3066 "(ia64 では Linux 2.3.48 以降; parisc では Linux 2.6.15 以降; PowerPC では "
3067 "Linux 2.6.18 以降; Alpha では Linux 2.6.22 以降; これらのアーキテクチャの"
3068 "み)  unaligned アクセス制御ビットを I<arg2> で指定された値に設定する。 指定で"
3069 "きる値は B<PR_UNALIGN_NOPRINT> (unaligned なユーザアクセスを黙って 修正する) "
3070 "か B<PR_UNALIGN_SIGBUS> (unaligned なユーザアクセスがあった場合 B<SIGBUS> を"
3071 "生成する) である。"
3072
3073 #. type: TP
3074 #: build/C/man2/prctl.2:613
3075 #, no-wrap
3076 msgid "B<PR_GET_UNALIGN>"
3077 msgstr "B<PR_GET_UNALIGN>"
3078
3079 #. type: Plain text
3080 #: build/C/man2/prctl.2:620
3081 msgid ""
3082 "(see B<PR_SET_UNALIGN> for information on versions and architectures)  "
3083 "Return unaligned access control bits, in the location pointed to by I<(int\\ "
3084 "*) arg2>."
3085 msgstr ""
3086 "(バージョンとアーキテクチャの情報は B<PR_SET_UNALIGN> 参照)  unaligned アクセ"
3087 "ス制御ビットの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
3088
3089 #. type: TP
3090 #: build/C/man2/prctl.2:620
3091 #, no-wrap
3092 msgid "B<PR_MCE_KILL> (since Linux 2.6.32)"
3093 msgstr "B<PR_MCE_KILL> (Linux 2.6.32 以降)"
3094
3095 #. type: Plain text
3096 #: build/C/man2/prctl.2:660
3097 msgid ""
3098 "Set the machine check memory corruption kill policy for the current thread.  "
3099 "If I<arg2> is B<PR_MCE_KILL_CLEAR>, clear the thread memory corruption kill "
3100 "policy and use the system-wide default.  (The system-wide default is defined "
3101 "by I</proc/sys/vm/memory_failure_early_kill>; see B<proc>(5).)  If I<arg2> "
3102 "is B<PR_MCE_KILL_SET>, use a thread-specific memory corruption kill policy.  "
3103 "In this case, I<arg3> defines whether the policy is I<early kill> "
3104 "(B<PR_MCE_KILL_EARLY>), I<late kill> (B<PR_MCE_KILL_LATE>), or the system-"
3105 "wide default (B<PR_MCE_KILL_DEFAULT>).  Early kill means that the thread "
3106 "receives a B<SIGBUS> signal as soon as hardware memory corruption is "
3107 "detected inside its address space.  In late kill mode, the process is killed "
3108 "only when it accesses a corrupted page.  See B<sigaction>(2)  for more "
3109 "information on the B<SIGBUS> signal.  The policy is inherited by children.  "
3110 "The remaining unused B<prctl>()  arguments must be zero for future "
3111 "compatibility."
3112 msgstr ""
3113
3114 #. type: TP
3115 #: build/C/man2/prctl.2:660
3116 #, no-wrap
3117 msgid "B<PR_MCE_KILL_GET> (since Linux 2.6.32)"
3118 msgstr "B<PR_MCE_KILL_GET> (Linux 2.6.32 以降)"
3119
3120 #. type: Plain text
3121 #: build/C/man2/prctl.2:666
3122 msgid ""
3123 "Return the current per-process machine check kill policy.  All unused "
3124 "B<prctl>()  arguments must be zero."
3125 msgstr ""
3126
3127 #. type: TP
3128 #: build/C/man2/prctl.2:666
3129 #, no-wrap
3130 msgid "B<PR_SET_MM> (since Linux 3.3)"
3131 msgstr "B<PR_SET_MM> (Linux 3.3 以降)"
3132
3133 #.  commit 028ee4be34a09a6d48bdf30ab991ae933a7bc036
3134 #. type: Plain text
3135 #: build/C/man2/prctl.2:687
3136 msgid ""
3137 "Modify certain kernel memory map descriptor fields of the calling process.  "
3138 "Usually these fields are set by the kernel and dynamic loader (see B<ld.so>"
3139 "(8)  for more information) and a regular application should not use this "
3140 "feature.  However, there are cases, such as self-modifying programs, where a "
3141 "program might find it useful to change its own memory map.  This feature is "
3142 "available only if the kernel is built with the B<CONFIG_CHECKPOINT_RESTORE> "
3143 "option enabled.  The calling process must have the B<CAP_SYS_RESOURCE> "
3144 "capability.  The value in I<arg2> is one of the options below, while I<arg3> "
3145 "provides a new value for the option."
3146 msgstr "呼び出したプロセスのカーネルメモリマップディスクリプタのフィールドを変更する。 これらのフィールドは通常カーネルと動的リンカーにより設定される (詳しい情報は B<ld.so> を参照)。 通常のアプリケーションはこの機能を利用すべきではない。 しかしながら、自分を書き換えるプログラムなど、 プログラムが自分自身のメモリマップを変更するのが有用な場面もある。 この機能はカーネルが B<CONFIG_CHECKPOINT_RESTORE> オプションを有効にして作成されている場合にのみ利用できる。 呼び出したプロセスは B<CAP_SYS_RESOURCE> ケーパビリティを持っていなければならない。 I<arg2> の値には以下のいずれかを指定し、 I<arg3> でそのオプションの新しい値を指定する。"
3147
3148 #. type: TP
3149 #: build/C/man2/prctl.2:688
3150 #, no-wrap
3151 msgid "B<PR_SET_MM_START_CODE>"
3152 msgstr "B<PR_SET_MM_START_CODE>"
3153
3154 #. type: Plain text
3155 #: build/C/man2/prctl.2:697
3156 msgid ""
3157 "Set the address above which the program text can run.  The corresponding "
3158 "memory area must be readable and executable, but not writable or sharable "
3159 "(see B<mprotect>(2)  and B<mmap>(2)  for more information)."
3160 msgstr "プログラムテキストを実行できるアドレスの上限を設定する。 対応するメモリ領域は読み出し可能で実行可能でなければならないが、 書き込み可能だったり共有可能だったりしてはならない (詳しい情報は B<mprotect>(2) と B<mmap>(2) 参照)。"
3161
3162 #. type: TP
3163 #: build/C/man2/prctl.2:697
3164 #, no-wrap
3165 msgid "B<PR_SET_MM_END_CODE>"
3166 msgstr "B<PR_SET_MM_END_CODE>"
3167
3168 #. type: Plain text
3169 #: build/C/man2/prctl.2:702
3170 msgid ""
3171 "Set the address below which the program text can run.  The corresponding "
3172 "memory area must be readable and executable, but not writable or sharable."
3173 msgstr "プログラムテキストを実行できるアドレスの下限を設定する。 対応するメモリ領域は読み出し可能で実行可能でなければならないが、 書き込み可能だったり共有可能だったりしてはならない。"
3174
3175 #. type: TP
3176 #: build/C/man2/prctl.2:702
3177 #, no-wrap
3178 msgid "B<PR_SET_MM_START_DATA>"
3179 msgstr "B<PR_SET_MM_START_DATA>"
3180
3181 #. type: Plain text
3182 #: build/C/man2/prctl.2:708
3183 msgid ""
3184 "Set the address above which initialized and uninitialized (bss) data are "
3185 "placed.  The corresponding memory area must be readable and writable, but "
3186 "not executable or sharable."
3187 msgstr "初期化済データや未初期化 (bss) データを配置する領域のアドレス上限を指定する。 対応するメモリ領域は読み書き可能でなければならないが、 実行可能だったり共有可能だったりしてはならない。"
3188
3189 #. type: TP
3190 #: build/C/man2/prctl.2:708
3191 #, no-wrap
3192 msgid "B<PR_SET_MM_END_DATA>"
3193 msgstr "B<PR_SET_MM_END_DATA>"
3194
3195 #. type: Plain text
3196 #: build/C/man2/prctl.2:714
3197 msgid ""
3198 "Set the address below which initialized and uninitialized (bss) data are "
3199 "placed.  The corresponding memory area must be readable and writable, but "
3200 "not executable or sharable."
3201 msgstr "初期化済データや未初期化 (bss) データを配置する領域のアドレス下限を指定する。 対応するメモリ領域は読み書き可能でなければならないが、 実行可能だったり共有可能だったりしてはならない。"
3202
3203 #. type: TP
3204 #: build/C/man2/prctl.2:714
3205 #, no-wrap
3206 msgid "B<PR_SET_MM_START_STACK>"
3207 msgstr "B<PR_SET_MM_START_STACK>"
3208
3209 #. type: Plain text
3210 #: build/C/man2/prctl.2:718
3211 msgid ""
3212 "Set the start address of the stack.  The corresponding memory area must be "
3213 "readable and writable."
3214 msgstr "スタックの開始アドレスを設定する。 対応するメモリ領域は読み書き可能でなければならない。"
3215
3216 #. type: TP
3217 #: build/C/man2/prctl.2:718
3218 #, no-wrap
3219 msgid "B<PR_SET_MM_START_BRK>"
3220 msgstr "B<PR_SET_MM_START_BRK>"
3221
3222 #. type: Plain text
3223 #: build/C/man2/prctl.2:730
3224 msgid ""
3225 "Set the address above which the program heap can be expanded with B<brk>(2)  "
3226 "call.  The address must be greater than the ending address of the current "
3227 "program data segment.  In addition, the combined size of the resulting heap "
3228 "and the size of the data segment can't exceed the B<RLIMIT_DATA> resource "
3229 "limit (see B<setrlimit>(2))."
3230 msgstr "B<brk>(2) コールで拡張できるプログラムのヒープ領域のアドレス上限を設定する。 このアドレスは、プログラムの現在のデータセグメントの最終アドレスより大きくなければならない。 また、 変更後のヒープとデータセグメントのサイズを合わせたサイズが B<RLIMIT_DATA> リソースリミットを超えることはできない (B<setrlimit>(2) 参照)。"
3231
3232 #. type: TP
3233 #: build/C/man2/prctl.2:730
3234 #, no-wrap
3235 msgid "B<PR_SET_MM_BRK>"
3236 msgstr "B<PR_SET_MM_BRK>"
3237
3238 #. type: Plain text
3239 #: build/C/man2/prctl.2:738
3240 msgid ""
3241 "Set the current B<brk>(2)  value.  The requirements for the address are the "
3242 "same as for the B<PR_SET_MM_START_BRK> option."
3243 msgstr "現在の B<brk>(2) 値を設定する。 このアドレスの要件は B<PR_SET_MM_START_BRK> オプションと同じである。"
3244
3245 #.  commit fe8c7f5cbf91124987106faa3bdf0c8b955c4cf7
3246 #. type: Plain text
3247 #: build/C/man2/prctl.2:741
3248 msgid "The following options are available since Linux 3.5."
3249 msgstr "以下のオプションは Linux 3.5 以降で利用できる。"
3250
3251 #. type: TP
3252 #: build/C/man2/prctl.2:741
3253 #, no-wrap
3254 msgid "B<PR_SET_MM_ARG_START>"
3255 msgstr "B<PR_SET_MM_ARG_START>"
3256
3257 #. type: Plain text
3258 #: build/C/man2/prctl.2:744
3259 msgid "Set the address above which the program command line is placed."
3260 msgstr "プログラムのコマンドラインを配置するアドレスの上限を設定する。"
3261
3262 #. type: TP
3263 #: build/C/man2/prctl.2:744
3264 #, no-wrap
3265 msgid "B<PR_SET_MM_ARG_END>"
3266 msgstr "B<PR_SET_MM_ARG_END>"
3267
3268 #. type: Plain text
3269 #: build/C/man2/prctl.2:747
3270 msgid "Set the address below which the program command line is placed."
3271 msgstr "プログラムのコマンドラインを配置するアドレスの下限を設定する。"
3272
3273 #. type: TP
3274 #: build/C/man2/prctl.2:747
3275 #, no-wrap
3276 msgid "B<PR_SET_MM_ENV_START>"
3277 msgstr "B<PR_SET_MM_ENV_START>"
3278
3279 #. type: Plain text
3280 #: build/C/man2/prctl.2:750
3281 msgid "Set the address above which the program environment is placed."
3282 msgstr "プログラムの環境情報 (environment) を配置するアドレスの上限を設定する。"
3283
3284 #. type: TP
3285 #: build/C/man2/prctl.2:750
3286 #, no-wrap
3287 msgid "B<PR_SET_MM_ENV_END>"
3288 msgstr "B<PR_SET_MM_ENV_END>"
3289
3290 #. type: Plain text
3291 #: build/C/man2/prctl.2:753
3292 msgid "Set the address below which the program environment is placed."
3293 msgstr "プログラムの環境情報 (environment) を配置するアドレスの下限を設定する。"
3294
3295 #. type: Plain text
3296 #: build/C/man2/prctl.2:766
3297 msgid ""
3298 "The address passed with B<PR_SET_MM_ARG_START>, B<PR_SET_MM_ARG_END>, "
3299 "B<PR_SET_MM_ENV_START>, and B<PR_SET_MM_ENV_END> should belong to a process "
3300 "stack area.  Thus, the corresponding memory area must be readable, writable, "
3301 "and (depending on the kernel configuration) have the B<MAP_GROWSDOWN> "
3302 "attribute set (see B<mmap>(2))."
3303 msgstr "B<PR_SET_MM_ARG_START>, B<PR_SET_MM_ARG_END>, B<PR_SET_MM_ENV_START>, B<PR_SET_MM_ENV_END> で指定されるアドレスはプロセスのスタック領域に属している必要がある。 したがって、これらのメモリ領域は読み書き可能でなければならない。 また、 (カーネル設定によっては) B<MAP_GROWSDOWN> 属性がセットされていなければならない (B<mmap>(2) 参照)。"
3304
3305 #. type: TP
3306 #: build/C/man2/prctl.2:766
3307 #, no-wrap
3308 msgid "B<PR_SET_MM_AUXV>"
3309 msgstr "B<PR_SET_MM_AUXV>"
3310
3311 #. type: Plain text
3312 #: build/C/man2/prctl.2:775
3313 msgid ""
3314 "Set a new auxiliary vector.  The I<arg3> argument should provide the address "
3315 "of the vector.  The I<arg4> is the size of the vector."
3316 msgstr "新しい補助ベクトル (auxiliary vector) を設定する。 I<arg3> 引き数はベクトルのアドレスを指定し、 I<arg4> はベクトルのサイズを指定する。"
3317
3318 #. type: TP
3319 #: build/C/man2/prctl.2:775
3320 #, no-wrap
3321 msgid "B<PR_SET_MM_EXE_FILE>"
3322 msgstr "B<PR_SET_MM_EXE_FILE>"
3323
3324 #.  commit b32dfe377102ce668775f8b6b1461f7ad428f8b6
3325 #. type: Plain text
3326 #: build/C/man2/prctl.2:787
3327 msgid ""
3328 "Supersede the I</proc/pid/exe> symbolic link with a new one pointing to a "
3329 "new executable file identified by the file descriptor provided in I<arg3> "
3330 "argument.  The file descriptor should be obtained with a regular B<open>(2)  "
3331 "call."
3332 msgstr "I</proc/pid/exe> シンボリックリンクを I<arg3> 引き数で渡された新しい実行可能なファイルディスクリプタを指すシンボリックリンクで置き換える。 ファイルディスクリプタは通常の B<open>(2) コールで取得すべきである。"
3333
3334 #. type: Plain text
3335 #: build/C/man2/prctl.2:794
3336 msgid ""
3337 "To change the symbolic link, one needs to unmap all existing executable "
3338 "memory areas, including those created by the kernel itself (for example the "
3339 "kernel usually creates at least one executable memory area for the ELF I<."
3340 "text> section)."
3341 msgstr "シンボリックリンクを変更するには、 既存の実行可能なメモリ領域のすべてをアンマップする必要がある。これにはカーネル自身が作成した領域も含まれる (例えば、カーネルは通常 ELF I<.text> セクションに少なくとも一つの実行可能なメモリ領域を作成する)。"
3342
3343 #. type: Plain text
3344 #: build/C/man2/prctl.2:800
3345 msgid ""
3346 "The second limitation is that such transitions can be done only once in a "
3347 "process life time.  Any further attempts will be rejected.  This should help "
3348 "system administrators monitor unusual symbolic-link transitions over all "
3349 "processes running on a system."
3350 msgstr "二つ目の制限は、このような変更はプロセスの生存期間で一度だけ行うことができるという点である。 一度変更を行った後で変更を行おうとすると拒否される。 この動作は、 システム管理者が、 システムで動作するすべてのプロセスが行う、 普通でないシンボリックリンクの変更を監視するのを楽にする。"
3351
3352 #. type: Plain text
3353 #: build/C/man2/prctl.2:822
3354 msgid ""
3355 "On success, B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, B<PR_GET_NO_NEW_PRIVS>, "
3356 "B<PR_GET_THP_DISABLE>, B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, "
3357 "B<PR_GET_TIMERSLACK>, B<PR_GET_SECUREBITS>, B<PR_MCE_KILL_GET>, and (if it "
3358 "returns)  B<PR_GET_SECCOMP> return the nonnegative values described above.  "
3359 "All other I<option> values return 0 on success.  On error, -1 is returned, "
3360 "and I<errno> is set appropriately."
3361 msgstr "成功すると、 B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, B<PR_GET_NO_NEW_PRIVS>, B<PR_GET_THP_DISABLE>, B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, B<PR_GET_TIMERSLACK>, B<PR_GET_SECUREBITS>, B<PR_MCE_KILL_GET>, B<PR_GET_SECCOMP> は上述の負でない値を返す (なお、B<PR_GET_SECCOMP> は返らない場合もある)。 I<option> が他の値の場合は成功時に 0 を返す。 エラーの場合、-1 を返し、 I<errno> に適切な値を設定する。"
3362
3363 #. type: Plain text
3364 #: build/C/man2/prctl.2:827
3365 msgid "I<arg2> is an invalid address."
3366 msgstr "I<arg2> が不正なアドレスである。"
3367
3368 #. type: Plain text
3369 #: build/C/man2/prctl.2:832
3370 msgid "The value of I<option> is not recognized."
3371 msgstr "I<option> の値が理解できない。"
3372
3373 #. type: Plain text
3374 #: build/C/man2/prctl.2:844
3375 msgid ""
3376 "I<option> is B<PR_MCE_KILL> or B<PR_MCE_KILL_GET> or B<PR_SET_MM>, and "
3377 "unused B<prctl>()  arguments were not specified as zero."
3378 msgstr "I<option> が B<PR_MCE_KILL>, B<PR_MCE_KILL_GET>, B<PR_SET_MM> のいずれかで、かつ未使用の B<prctl>() 引き数に 0 が指定されていなかった。"
3379
3380 #. type: Plain text
3381 #: build/C/man2/prctl.2:849
3382 msgid "I<arg2> is not valid value for this I<option>."
3383 msgstr "I<arg2> が指定された I<option> で有効な値ではない。"
3384
3385 #. type: Plain text
3386 #: build/C/man2/prctl.2:858
3387 msgid ""
3388 "I<option> is B<PR_SET_SECCOMP> or B<PR_GET_SECCOMP>, and the kernel was not "
3389 "configured with B<CONFIG_SECCOMP>."
3390 msgstr ""
3391 "I<option> が B<PR_SET_SECCOMP> か B<PR_GET_SECCOMP> だが、カーネルが "
3392 "B<CONFIG_SECCOMP> を有効にして作成されていなかった。"
3393
3394 #. type: Plain text
3395 #: build/C/man2/prctl.2:864
3396 msgid "I<option> is B<PR_SET_MM>, and one of the following is true"
3397 msgstr "I<option> が B<PR_SET_MM> で、以下のいずれかが真である。"
3398
3399 #. type: Plain text
3400 #: build/C/man2/prctl.2:870
3401 msgid "I<arg4> or I<arg5> is nonzero;"
3402 msgstr "I<arg4> が I<arg5> で 0 以外である。"
3403
3404 #. type: Plain text
3405 #: build/C/man2/prctl.2:875
3406 msgid ""
3407 "I<arg3> is greater than B<TASK_SIZE> (the limit on the size of the user "
3408 "address space for this architecture);"
3409 msgstr "I<arg3> が B<TASK_SIZE> よりも大きい  (B<TASK_SIZE> はこのアーキテクチャーでユーザー空間アドレススペースの最大サイズである)。"
3410
3411 #. type: Plain text
3412 #: build/C/man2/prctl.2:885
3413 msgid ""
3414 "I<arg2> is B<PR_SET_MM_START_CODE>, B<PR_SET_MM_END_CODE>, "
3415 "B<PR_SET_MM_START_DATA>, B<PR_SET_MM_END_DATA>, or B<PR_SET_MM_START_STACK>, "
3416 "and the permissions of the corresponding memory area are not as required;"
3417 msgstr "I<arg2> が B<PR_SET_MM_START_CODE>, B<PR_SET_MM_END_CODE>, B<PR_SET_MM_START_DATA>, B<PR_SET_MM_END_DATA>, B<PR_SET_MM_START_STACK> のどれかで、対応するメモリ領域のアクセス許可が要件を満たしていない。"
3418
3419 #. type: Plain text
3420 #: build/C/man2/prctl.2:897
3421 msgid ""
3422 "I<arg2> is B<PR_SET_MM_START_BRK> or B<PR_SET_MM_BRK>, and I<arg3> is less "
3423 "than or equal to the end of the data segment or specifies a value that would "
3424 "cause the B<RLIMIT_DATA> resource limit to be exceeded."
3425 msgstr "I<arg2> が B<PR_SET_MM_START_BRK> か B<PR_SET_MM_BRK> で、 I<arg3> データセグメントの末尾と同じかそれより前か、 I<arg3> に B<RLIMIT_DATA> リソースリミットを超えてしまうような値が指定されている。"
3426
3427 #. type: Plain text
3428 #: build/C/man2/prctl.2:908
3429 msgid ""
3430 "I<option> is B<PR_SET_PTRACER> and I<arg2> is not 0, B<PR_SET_PTRACER_ANY>, "
3431 "or the PID of an existing process."
3432 msgstr "I<option> が B<PR_SET_PTRACER> で I<arg2> が 0, B<PR_SET_PTRACER_ANY>, 既存プロセスの PID のいずれでもない。"
3433
3434 #. type: Plain text
3435 #: build/C/man2/prctl.2:916
3436 msgid ""
3437 "I<option> is B<PR_SET_PDEATHSIG> and I<arg2> is not a valid signal number."
3438 msgstr "I<option> が B<PR_SET_PDEATHSIG> で、 I<arg2> で指定された値は無効なシグナル番号である。"
3439
3440 #. type: Plain text
3441 #: build/C/man2/prctl.2:927
3442 msgid ""
3443 "I<option> is B<PR_SET_DUMPABLE> and I<arg2> is neither B<SUID_DUMP_DISABLE> "
3444 "nor B<SUID_DUMP_USER>."
3445 msgstr "I<option> が B<PR_SET_DUMPABLE> で、 I<arg2> が B<SUID_DUMP_DISABLE> でも B<SUID_DUMP_USER> でもない。"
3446
3447 #. type: Plain text
3448 #: build/C/man2/prctl.2:936
3449 msgid ""
3450 "I<option> is B<PR_SET_TIMING> and I<arg2> is not B<PR_TIMING_STATISTICAL>."
3451 msgstr "I<option> が B<PR_SET_TIMING> で、 I<arg2> が B<PR_TIMING_STATISTICAL> ではない。"
3452
3453 #. type: Plain text
3454 #: build/C/man2/prctl.2:950
3455 msgid ""
3456 "I<option> is B<PR_SET_NO_NEW_PRIVS> and I<arg2> is not equal to 1 or "
3457 "I<arg3>, I<arg4>, or I<arg5> is nonzero."
3458 msgstr "I<option> が B<PR_SET_NO_NEW_PRIVS> で、 I<arg2> が 1 以外か、 I<arg3>, I<arg4>, I<arg5> のどれかが 0 ではない。"
3459
3460 #. type: Plain text
3461 #: build/C/man2/prctl.2:962
3462 msgid ""
3463 "I<option> is B<PR_GET_NO_NEW_PRIVS> and I<arg2>, I<arg3>, I<arg4>, or "
3464 "I<arg5> is nonzero."
3465 msgstr "I<option> が B<PR_GET_NO_NEW_PRIVS> で、 I<arg2>, I<arg3>, I<arg4>, I<arg5> のどれかが 0 ではない。"
3466
3467 #. type: Plain text
3468 #: build/C/man2/prctl.2:972
3469 msgid ""
3470 "I<option> is PR_SET_THP_DISABLE and I<arg3>, I<arg4>, or I<arg5> is nonzero."
3471 msgstr "I<option> が B<PR_SET_THP_DISABLE> で I<arg3>, I<arg4>, I<arg5> のどれかが 0 ではない。"
3472
3473 #. type: Plain text
3474 #: build/C/man2/prctl.2:983
3475 msgid ""
3476 "I<option> is PR_GET_THP_DISABLE and I<arg2>, I<arg3>, I<arg4>, or I<arg5> is "
3477 "nonzero."
3478 msgstr "I<option> が B<PR_GET_THP_DISABLE> で I<arg2>, I<arg3>, I<arg4>, I<arg5> のいずれが 0 ではない。"
3479
3480 #. type: Plain text
3481 #: build/C/man2/prctl.2:995
3482 msgid ""
3483 "I<option> is B<PR_SET_SECUREBITS>, and the caller does not have the "
3484 "B<CAP_SETPCAP> capability, or tried to unset a \"locked\" flag, or tried to "
3485 "set a flag whose corresponding locked flag was set (see B<capabilities>(7))."
3486 msgstr ""
3487 "I<option> が B<PR_SET_SECUREBITS> で、呼び出し元がケーパビリティ "
3488 "B<CAP_SETPCAP> を持っていない。 または、\"locked\" フラグを解除しようとし"
3489 "た。 または、locked フラグがセットされているフラグをセットしようとした "
3490 "(B<capabilities>(7)  参照)。"
3491
3492 #. type: Plain text
3493 #: build/C/man2/prctl.2:1005
3494 msgid ""
3495 "I<option> is B<PR_SET_KEEPCAPS>, and the callers's "
3496 "B<SECURE_KEEP_CAPS_LOCKED> flag is set (see B<capabilities>(7))."
3497 msgstr ""
3498 "I<option> が B<PR_SET_KEEPCAPS> で、呼び出し元のフラグ "
3499 "B<SECURE_KEEP_CAPS_LOCKED> がセットされている (B<capabilities>(7)  参照)。"
3500
3501 #. type: Plain text
3502 #: build/C/man2/prctl.2:1013
3503 msgid ""
3504 "I<option> is B<PR_CAPBSET_DROP>, and the caller does not have the "
3505 "B<CAP_SETPCAP> capability."
3506 msgstr ""
3507 "I<option> が B<PR_CAPBSET_DROP> で、呼び出し元がケーパビリティ "
3508 "B<CAP_SETPCAP> を持っていない。"
3509
3510 #. type: Plain text
3511 #: build/C/man2/prctl.2:1021
3512 msgid ""
3513 "I<option> is B<PR_SET_MM>, and the caller does not have the "
3514 "B<CAP_SYS_RESOURCE> capability."
3515 msgstr "I<option> が B<PR_SET_MM> で、呼び出し元がケーパビリティ B<CAP_SYS_RESOURCE> を持っていない。"
3516
3517 #. type: TP
3518 #: build/C/man2/prctl.2:1021
3519 #, no-wrap
3520 msgid "B<EACCES>"
3521 msgstr "B<EACCES>"
3522
3523 #. type: Plain text
3524 #: build/C/man2/prctl.2:1031
3525 msgid ""
3526 "I<option> is B<PR_SET_MM>, and I<arg3> is B<PR_SET_MM_EXE_FILE>, the file is "
3527 "not executable."
3528 msgstr "I<option> が B<PR_SET_MM>、かつ I<arg3> が B<PR_SET_MM_EXE_FILE> で、ファイルが実行可能ではない。"
3529
3530 #. type: TP
3531 #: build/C/man2/prctl.2:1031
3532 #, no-wrap
3533 msgid "B<EBUSY>"
3534 msgstr "B<EBUSY>"
3535
3536 #. type: Plain text
3537 #: build/C/man2/prctl.2:1042
3538 msgid ""
3539 "I<option> is B<PR_SET_MM>, I<arg3> is B<PR_SET_MM_EXE_FILE>, and this the "
3540 "second attempt to change the I</proc/pid/exe> symbolic link, which is "
3541 "prohibited."
3542 msgstr "I<option> が B<PR_SET_MM> で、 I<arg3> が B<PR_SET_MM_EXE_FILE> で、 I</proc/pid/exe> シンボリックリンクを変更しようとしたが、 禁止されている。"
3543
3544 #. type: TP
3545 #: build/C/man2/prctl.2:1042 build/C/man2/signalfd.2:266
3546 #: build/C/man2/timerfd_create.2:338
3547 #, no-wrap
3548 msgid "B<EBADF>"
3549 msgstr "B<EBADF>"
3550
3551 #.  The following can't actually happen, because prctl() in
3552 #.  seccomp mode will cause SIGKILL.
3553 #.  .TP
3554 #.  .B EPERM
3555 #.  .I option
3556 #.  is
3557 #.  .BR PR_SET_SECCOMP ,
3558 #.  and secure computing mode is already 1.
3559 #. type: Plain text
3560 #: build/C/man2/prctl.2:1061
3561 msgid ""
3562 "I<option> is B<PR_SET_MM>, I<arg3> is B<PR_SET_MM_EXE_FILE>, and the file "
3563 "descriptor passed in I<arg4> is not valid."
3564 msgstr "I<option> が B<PR_SET_MM> で、 I<arg3> が B<PR_SET_MM_EXE_FILE> で、 I<arg4> で渡されたファイルディスクリプタが有効ではない。"
3565
3566 #.  The library interface was added in glibc 2.0.6
3567 #. type: Plain text
3568 #: build/C/man2/prctl.2:1066
3569 msgid "The B<prctl>()  system call was introduced in Linux 2.1.57."
3570 msgstr "B<prctl>()  システムコールは Linux 2.1.57 で導入された。"
3571
3572 #. type: Plain text
3573 #: build/C/man2/prctl.2:1073
3574 msgid ""
3575 "This call is Linux-specific.  IRIX has a B<prctl>()  system call (also "
3576 "introduced in Linux 2.1.44 as irix_prctl on the MIPS architecture), with "
3577 "prototype"
3578 msgstr ""
3579 "このコールは Linux 特有である。 IRIX には B<prctl>()  システム・コールがある"
3580 "が (MIPS アーキテクチャにおいて irix_prctl として Linux 2.1.44 で同様に導入さ"
3581 "れた)、 そのプロトタイプは"
3582
3583 #. type: Plain text
3584 #: build/C/man2/prctl.2:1075
3585 msgid "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
3586 msgstr "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
3587
3588 #. type: Plain text
3589 #: build/C/man2/prctl.2:1080
3590 msgid ""
3591 "and options to get the maximum number of processes per user, get the maximum "
3592 "number of processors the calling process can use, find out whether a "
3593 "specified process is currently blocked, get or set the maximum stack size, "
3594 "and so on."
3595 msgstr ""
3596 "である。ユーザー当りのプロセス最大数を取得するオプション、 プロセスの使用でき"
3597 "る最大プロッサー数を取得するオプション、 現在特定のプロセスが停止(block)させ"
3598 "られているかどうか調べるオプション、 スタックサイズの最大値の取得や設定を行な"
3599 "うオプションなどがある。"
3600
3601 #. type: Plain text
3602 #: build/C/man2/prctl.2:1083
3603 msgid "B<signal>(2), B<core>(5)"
3604 msgstr "B<signal>(2), B<core>(5)"
3605
3606 #. type: TH
3607 #: build/C/man3/profil.3:28
3608 #, no-wrap
3609 msgid "PROFIL"
3610 msgstr "PROFIL"
3611
3612 #. type: Plain text
3613 #: build/C/man3/profil.3:31
3614 msgid "profil - execution time profile"
3615 msgstr "profil - 実行時間プロファイル (profile)"
3616
3617 #. type: Plain text
3618 #: build/C/man3/profil.3:34
3619 #, no-wrap
3620 msgid "B<#include E<lt>unistd.hE<gt>>\n"
3621 msgstr "B<#include E<lt>unistd.hE<gt>>\n"
3622
3623 #. type: Plain text
3624 #: build/C/man3/profil.3:37
3625 #, no-wrap
3626 msgid ""
3627 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<,>\n"
3628 "B<           size_t >I<offset>B<, unsigned int >I<scale>B<);>\n"
3629 msgstr ""
3630 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<,>\n"
3631 "B<           size_t >I<offset>B<, unsigned int >I<scale>B<);>\n"
3632
3633 #. type: Plain text
3634 #: build/C/man3/profil.3:46
3635 msgid ""
3636 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
3637 msgstr ""
3638 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
3639
3640 #. type: Plain text
3641 #: build/C/man3/profil.3:68
3642 msgid ""
3643 "This routine provides a means to find out in what areas your program spends "
3644 "most of its time.  The argument I<buf> points to I<bufsiz> bytes of core.  "
3645 "Every virtual 10 milliseconds, the user's program counter (PC)  is examined: "
3646 "I<offset> is subtracted and the result is multiplied by I<scale> and divided "
3647 "by 65536.  If the resulting value is less than I<bufsiz>, then the "
3648 "corresponding entry in I<buf> is incremented.  If I<buf> is NULL, profiling "
3649 "is disabled."
3650 msgstr ""
3651 "このルーティンはプログラムのどこの部分で時間を費やしているかを調べる 手段を提"
3652 "供する。引き数 I<buf> は I<bufsiz> バイトのメモリを指している。仮想の 10 ミリ"
3653 "秒ごとに、ユーザーの プログラム・カウンター (PC) が検査される: I<offset> が引"
3654 "かれ、その結果が I<scale> 倍され 65536 で割られる。 結果が I<bufsiz> より小さ"
3655 "い場合は I<buf> の対応するエントリがインクリメントされる。 I<buf> が NULL な"
3656 "らば、プロファイル (profile) は無効にされる。"
3657
3658 #. type: Plain text
3659 #: build/C/man3/profil.3:70
3660 msgid "Zero is always returned."
3661 msgstr "常に 0 が返される。"
3662
3663 #. type: Plain text
3664 #: build/C/man3/profil.3:72
3665 msgid "Similar to a call in SVr4 (but not POSIX.1-2001)."
3666 msgstr "SVr4 のコールに似ている (しかし POSIX.1-2001 ではない)。"
3667
3668 #. type: Plain text
3669 #: build/C/man3/profil.3:78
3670 msgid ""
3671 "B<profil>()  cannot be used on a program that also uses B<ITIMER_PROF> "
3672 "interval timers (see B<setitimer>(2))."
3673 msgstr ""
3674 "B<profil>()  は B<ITIMER_PROF> インターバル・タイマーも使用しているプログラム"
3675 "では使用できない (B<setitimer>(2)  参照)。"
3676
3677 #. type: Plain text
3678 #: build/C/man3/profil.3:81
3679 msgid ""
3680 "True kernel profiling provides more accurate results.  Libc 4.4 contained a "
3681 "kernel patch providing a system call profil."
3682 msgstr ""
3683 "本当のカーネル・プロファイルはより正確な結果を与える。 libc 4.4 にはシステム"
3684 "コール profil を提供するための カーネルパッチが含まれていた。"
3685
3686 #. type: Plain text
3687 #: build/C/man3/profil.3:86
3688 msgid "B<gprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
3689 msgstr "B<gprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
3690
3691 #. type: TH
3692 #: build/C/man3/psignal.3:30
3693 #, no-wrap
3694 msgid "PSIGNAL"
3695 msgstr "PSIGNAL"
3696
3697 #. type: TH
3698 #: build/C/man3/psignal.3:30
3699 #, no-wrap
3700 msgid "2010-10-06"
3701 msgstr "2010-10-06"
3702
3703 #. type: TH
3704 #: build/C/man3/psignal.3:30 build/C/man3/raise.3:29
3705 #: build/C/man7/sigevent.7:26
3706 #, no-wrap
3707 msgid "GNU"
3708 msgstr "GNU"
3709
3710 #. type: Plain text
3711 #: build/C/man3/psignal.3:33
3712 msgid "psignal, psiginfo - print signal message"
3713 msgstr "psignal, psiginfo - シグナルメッセージを表示"
3714
3715 #. type: Plain text
3716 #: build/C/man3/psignal.3:39
3717 #, no-wrap
3718 msgid ""
3719 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
3720 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
3721 msgstr ""
3722 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
3723 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
3724
3725 #. type: Plain text
3726 #: build/C/man3/psignal.3:41
3727 #, no-wrap
3728 msgid "B<extern const char *const >I<sys_siglist>B<[];>\n"
3729 msgstr "B<extern const char *const >I<sys_siglist>B<[];>\n"
3730
3731 #. type: Plain text
3732 #: build/C/man3/psignal.3:50
3733 msgid "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
3734 msgstr "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
3735
3736 #. type: Plain text
3737 #: build/C/man3/psignal.3:53
3738 msgid ""
3739 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
3740 "200809L"
3741 msgstr ""
3742 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
3743 "200809L"
3744
3745 #. type: Plain text
3746 #: build/C/man3/psignal.3:56
3747 msgid "I<sys_siglist>: _BSD_SOURCE"
3748 msgstr "I<sys_siglist>: _BSD_SOURCE"
3749
3750 #. type: Plain text
3751 #: build/C/man3/psignal.3:65
3752 msgid ""
3753 "The B<psignal>()  function displays a message on I<stderr> consisting of the "
3754 "string I<s>, a colon, a space, a string describing the signal number I<sig>, "
3755 "and a trailing newline.  If the string I<s> is NULL or empty, the colon and "
3756 "space are omitted.  If I<sig> is invalid, the message displayed will "
3757 "indicate an unknown signal."
3758 msgstr "B<psignal>() 関数は、文字列 I<s>、コロン、スペース、シグナル番号 I<sig> を説明する文字列、終端の改行から構成されるメッセージを I<stderr> に表示する。 文字列 I<s> が NULL か空の場合、コロンとスペースは省略される。 I<sig> が不正ならば、表示される メッセージは未知のシグナルを示す。"
3759
3760 #. type: Plain text
3761 #: build/C/man3/psignal.3:86
3762 msgid ""
3763 "The B<psiginfo>()  function is like B<psignal>(), except that it displays "
3764 "information about the signal described by I<pinfo>, which should point to a "
3765 "valid I<siginfo_t> structure.  As well as the signal description, B<psiginfo>"
3766 "()  displays information about the origin of the signal, and other "
3767 "information relevant to the signal (e.g., the relevant memory address for "
3768 "hardware-generated signals, the child process ID for B<SIGCHLD>, and the "
3769 "user ID and process ID of the sender, for signals set using B<kill>(2)  or "
3770 "B<sigqueue>(3))."
3771 msgstr ""
3772 "B<psiginfo>() 関数は B<psignal>() と同じだが、 I<pinfo> に書かれたシグナルの"
3773 "情報を表示する点が異なる。 I<pinfo> は有効な I<siginfo_t> 構造体を指している"
3774 "必要がある。 B<psiginfo>() は、 シグナルの説明だけでなく、 シグナルの送信元や"
3775 "そのシグナルに関連するその他の情報も表示する (例えば、ハードウェアが発生した"
3776 "シグナルの関連メモリアドレス、 B<SIGCHLD> の子プロセス ID、 I<kill>(2) や "
3777 "B<sigqueue>(3) を使って送信されたシグナルの送信元プロセスのユーザ ID とプロセ"
3778 "ス ID など)。"
3779
3780 #. type: Plain text
3781 #: build/C/man3/psignal.3:89
3782 msgid ""
3783 "The array I<sys_siglist> holds the signal description strings indexed by "
3784 "signal number."
3785 msgstr ""
3786 "配列 I<sys_siglist> はシグナルを説明する文字列を保持しており、 配列へのアクセ"
3787 "スにはシグナル番号を添え字として用いる事ができる。"
3788
3789 #. type: Plain text
3790 #: build/C/man3/psignal.3:95
3791 msgid "The B<psignal>()  and B<psiginfo>()  functions return no value."
3792 msgstr "関数 B<psignal>() と B<psiginfo>() は、値を返さない。"
3793
3794 #. type: Plain text
3795 #: build/C/man3/psignal.3:99
3796 msgid "The B<psiginfo>()  function was added to glibc in version 2.10."
3797 msgstr "B<psiginfo>() 関数は glibc バージョン 2.10 で追加された。"
3798
3799 #. type: Plain text
3800 #: build/C/man3/psignal.3:101
3801 msgid "POSIX.1-2008, 4.3BSD."
3802 msgstr "POSIX.1-2008, 4.3BSD."
3803
3804 #. type: Plain text
3805 #: build/C/man3/psignal.3:105
3806 msgid "In glibc versions up to 2.12, B<psiginfo>()  had the following bugs:"
3807 msgstr ""
3808 "バージョン 2.12 までの glibc では B<psiginfo>() には以下のバグがあった。"
3809
3810 #.  FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=12107
3811 #.  Reportedly now fixed; check glibc 2.13
3812 #. type: Plain text
3813 #: build/C/man3/psignal.3:109
3814 msgid "In some circumstances, a trailing newline is not printed."
3815 msgstr "特定の状況で、末尾の改行が出力されない。"
3816
3817 #.  FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=12108
3818 #.  Reportedly now fixed; check glibc 2.13
3819 #. type: Plain text
3820 #: build/C/man3/psignal.3:113
3821 msgid "Additional details are not displayed for real-time signals."
3822 msgstr "リアルタイムシグナルの場合に、追加の詳細情報が表示されない。"
3823
3824 #. type: Plain text
3825 #: build/C/man3/psignal.3:118
3826 msgid "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
3827 msgstr "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
3828
3829 #. type: TH
3830 #: build/C/man3/raise.3:29
3831 #, no-wrap
3832 msgid "RAISE"
3833 msgstr "RAISE"
3834
3835 #. type: TH
3836 #: build/C/man3/raise.3:29
3837 #, no-wrap
3838 msgid "2014-03-10"
3839 msgstr "2014-03-10"
3840
3841 #. type: Plain text
3842 #: build/C/man3/raise.3:32
3843 msgid "raise - send a signal to the caller"
3844 msgstr "raise - 呼び出し元にシグナルを送る"
3845
3846 #. type: Plain text
3847 #: build/C/man3/raise.3:37
3848 #, no-wrap
3849 msgid "B<int raise(int >I<sig>B<);>\n"
3850 msgstr "B<int raise(int >I<sig>B<);>\n"
3851
3852 #. type: Plain text
3853 #: build/C/man3/raise.3:43
3854 msgid ""
3855 "The B<raise>()  function sends a signal to the calling process or thread.  "
3856 "In a single-threaded program it is equivalent to"
3857 msgstr ""
3858 "B<raise>()  関数は、呼び出し元のプロセスもしくはスレッドにシグナルを送る。 シ"
3859 "ングルスレッドのプログラムでは、以下と等価である。"
3860
3861 #. type: Plain text
3862 #: build/C/man3/raise.3:47
3863 #, no-wrap
3864 msgid "kill(getpid(), sig);\n"
3865 msgstr "kill(getpid(), sig);\n"
3866
3867 #. type: Plain text
3868 #: build/C/man3/raise.3:51
3869 msgid "In a multithreaded program it is equivalent to"
3870 msgstr "マルチスレッドのプログラムでは、以下と等価である。"
3871
3872 #. type: Plain text
3873 #: build/C/man3/raise.3:55
3874 #, no-wrap
3875 msgid "pthread_kill(pthread_self(), sig);\n"
3876 msgstr "pthread_kill(pthread_self(), sig);\n"
3877
3878 #. type: Plain text
3879 #: build/C/man3/raise.3:61
3880 msgid ""
3881 "If the signal causes a handler to be called, B<raise>()  will return only "
3882 "after the signal handler has returned."
3883 msgstr ""
3884 "シグナルに起因してシグナル・ハンドラが呼び出される場合には、 B<raise>()  が返"
3885 "るのは必ずシグナル・ハンドラが返った後になる。"
3886
3887 #. type: Plain text
3888 #: build/C/man3/raise.3:64
3889 msgid "B<raise>()  returns 0 on success, and nonzero for failure."
3890 msgstr "成功した場合は 0 を、失敗した場合は 0 以外の値を返す。"
3891
3892 #. type: Plain text
3893 #: build/C/man3/raise.3:69
3894 msgid "The B<raise>()  function is thread-safe."
3895 msgstr "B<raise>() 関数はスレッドセーフである。"
3896
3897 #. type: Plain text
3898 #: build/C/man3/raise.3:71 build/C/man2/signal.2:112
3899 msgid "C89, C99, POSIX.1-2001."
3900 msgstr "C89, C99, POSIX.1-2001."
3901
3902 #.  2.3.2 used the obsolete tkill(), if available.
3903 #. type: Plain text
3904 #: build/C/man3/raise.3:82
3905 msgid ""
3906 "Since version 2.3.3, glibc implements B<raise>()  by calling B<tgkill>(2), "
3907 "if the kernel supports that system call.  Older glibc versions implemented "
3908 "B<raise>()  using B<kill>(2)."
3909 msgstr "glibc バージョン 2.3.3 以降では、カーネルが B<tgkill>(2) システムコールをサポートしている場合はB<raise>() は B<tgkill>(2) を使って実装されている。古いバージョンの glibc では、B<raise>() は B<kill>(2) を使って実装されている。"
3910
3911 #. type: Plain text
3912 #: build/C/man3/raise.3:89
3913 msgid ""
3914 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
3915 "B<signal>(7)"
3916 msgstr ""
3917 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
3918 "B<signal>(7)"
3919
3920 #. type: TH
3921 #: build/C/man2/restart_syscall.2:33
3922 #, no-wrap
3923 msgid "RESTART_SYSCALL"
3924 msgstr ""
3925
3926 #. type: TH
3927 #: build/C/man2/restart_syscall.2:33
3928 #, no-wrap
3929 msgid "2014-02-11"
3930 msgstr "2014-02-11"
3931
3932 #. type: Plain text
3933 #: build/C/man2/restart_syscall.2:36
3934 msgid ""
3935 "restart_syscall - restart a system call after interruption by a stop signal"
3936 msgstr ""
3937 "restart_syscall - 一時停止シグナルによる割り込み後にシステムコールを再開する"
3938
3939 #. type: Plain text
3940 #: build/C/man2/restart_syscall.2:38
3941 msgid "B<int restart_syscall(void);>"
3942 msgstr "B<int restart_syscall(void);>"
3943
3944 #. type: Plain text
3945 #: build/C/man2/restart_syscall.2:41
3946 msgid "I<Note>: There is no glibc wrapper for this system call; see NOTES."
3947 msgstr ""
3948 "I<注>: このシステムコールには、glibc のラッパー関数はない。「注意」の節を参"
3949 "照。"
3950
3951 #. type: Plain text
3952 #: build/C/man2/restart_syscall.2:53
3953 msgid ""
3954 "The B<restart_syscall>()  system call is used to restart certain system "
3955 "calls after a process that was stopped by a signal (e.g., B<SIGSTOP> or "
3956 "B<SIGTSTP>)  is later resumed after receiving a B<SIGCONT> signal.  This "
3957 "system call is designed only for internal use by the kernel."
3958 msgstr ""
3959
3960 #.  These system calls correspond to the special internal errno value
3961 #.  ERESTART_RESTARTBLOCK. Each of the system calls has a "restart"
3962 #.  helper function that is invoked by restart_syscall().
3963 #. type: Plain text
3964 #: build/C/man2/restart_syscall.2:84
3965 msgid ""
3966 "B<restart_syscall>()  is used for restarting only those system calls that, "
3967 "when restarted, should adjust their time-related parameters\\(emnamely "
3968 "B<poll>(2)  (since Linux 2.6.24), B<nanosleep>(2)  (since Linux 2.6), "
3969 "B<clock_nanosleep>(2)  (since Linux 2.6), and B<futex>(2), when employed "
3970 "with the B<FUTEX_WAIT> (since Linux 2.6.22)  and B<FUTEX_WAIT_BITSET> (since "
3971 "Linux 2.6.31)  operations.  B<restart_syscall>()  restarts the interrupted "
3972 "system call with a time argument that is suitably adjusted to account for "
3973 "the time that has already elapsed (including the time where the process was "
3974 "stopped by a signal).  Without the B<restart_syscall>()  mechanism, "
3975 "restarting these system calls would not correctly deduce the already elapsed "
3976 "time when the process continued execution."
3977 msgstr ""
3978
3979 #. type: Plain text
3980 #: build/C/man2/restart_syscall.2:88
3981 msgid ""
3982 "The return value of B<restart_syscall>()  is the return value of whatever "
3983 "system call is being restarted."
3984 msgstr ""
3985
3986 #. type: Plain text
3987 #: build/C/man2/restart_syscall.2:92
3988 msgid ""
3989 "I<errno> is set as per the errors for whatever system call is being "
3990 "restarted by B<restart_syscall>()."
3991 msgstr ""
3992
3993 #. type: Plain text
3994 #: build/C/man2/restart_syscall.2:96
3995 msgid "The B<restart_syscall>()  system call is present since Linux 2.6."
3996 msgstr "B<restart_syscall>() システムコールは Linux 2.6 以降に存在する。"
3997
3998 #. type: Plain text
3999 #: build/C/man2/restart_syscall.2:98
4000 msgid "This system call is Linux-specific."
4001 msgstr "このシステムコールは Linux 固有である。"
4002
4003 #. type: Plain text
4004 #: build/C/man2/restart_syscall.2:102
4005 msgid ""
4006 "There is no glibc wrapper for this system call, because it is intended for "
4007 "use only by the kernel and should never be called by applications."
4008 msgstr ""
4009
4010 #
4011 #.  FIXME
4012 #.  There is one oddness in the implementation though, with respect to
4013 #.  nanosleep() (and probably also clock_nanosleep()). The scenario
4014 #.  is as follows:
4015 #.     1. Start a nanosleep() for (say) 30 seconds,
4016 #.     2. Stop the process with (say) SIGTSTP (^Z).
4017 #.     3. Resume the process with SIGCONT,
4018 #.     4. Upon return, the 'rem' argument of nanosleep() will contain the
4019 #.        remaining unslept time **at the time when SIGTSTP was delivered**.
4020 #.  The behavior at point 4 is odd, but doesn't violate the standards, which
4021 #.  specify the treatment of 'rem' only when the system call returns with
4022 #.  the error EINTR (i.e., the call was interrupted by a signal handler).
4023 #. type: Plain text
4024 #: build/C/man2/restart_syscall.2:123
4025 msgid ""
4026 "From user space, the operation of B<restart_syscall>(2)  is largely "
4027 "invisible: to the process that made the system call that is restarted, it "
4028 "appears as though that system call executed and returned in the usual "
4029 "fashion."
4030 msgstr ""
4031
4032 #.  FIXME select(2) should probably get the restart_syscall() treatment:
4033 #.      If a select() call is suspended by stop-sig+SIGCONT, the time
4034 #.      spent suspended is *not* deducted when the select() is restarted.
4035 #.  FIXME: check whether recvmmsg() handles stop-sig+SIGCONT properly.
4036 #. type: Plain text
4037 #: build/C/man2/restart_syscall.2:131
4038 msgid "B<sigaction>(2), B<sigreturn>(2), B<signal>(7)"
4039 msgstr "B<sigaction>(2), B<sigreturn>(2), B<signal>(7)"
4040
4041 #. type: TH
4042 #: build/C/man2/rt_sigqueueinfo.2:25
4043 #, no-wrap
4044 msgid "RT_SIGQUEUEINFO"
4045 msgstr "RT_SIGQUEUEINFO"
4046
4047 #. type: TH
4048 #: build/C/man2/rt_sigqueueinfo.2:25 build/C/man2/tkill.2:29
4049 #, no-wrap
4050 msgid "2012-07-13"
4051 msgstr "2012-07-13"
4052
4053 #. type: Plain text
4054 #: build/C/man2/rt_sigqueueinfo.2:28
4055 msgid "rt_sigqueueinfo, rt_tgsigqueueinfo - queue a signal and data"
4056 msgstr ""
4057
4058 #. type: Plain text
4059 #: build/C/man2/rt_sigqueueinfo.2:31
4060 #, no-wrap
4061 msgid "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
4062 msgstr "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
4063
4064 #. type: Plain text
4065 #: build/C/man2/rt_sigqueueinfo.2:34
4066 #, no-wrap
4067 msgid ""
4068 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
4069 "B<                      siginfo_t *>I<uinfo>B<);>\n"
4070 msgstr ""
4071 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
4072 "B<                      siginfo_t *>I<uinfo>B<);>\n"
4073
4074 #. type: Plain text
4075 #: build/C/man2/rt_sigqueueinfo.2:38 build/C/man2/sgetmask.2:36
4076 #: build/C/man2/tkill.2:41
4077 msgid "I<Note>: There are no glibc wrappers for these system calls; see NOTES."
4078 msgstr ""
4079 "I<注>: これらのシステムコールには、glibc のラッパー関数はない。「注意」の節を"
4080 "参照。"
4081
4082 #. type: Plain text
4083 #: build/C/man2/rt_sigqueueinfo.2:50
4084 msgid ""
4085 "The B<rt_sigqueueinfo>()  and B<rt_tgsigqueueinfo>()  system calls are the "
4086 "low-level interfaces used to send a signal plus data to a process or "
4087 "thread.  The receiver of the signal can obtain the accompanying data by "
4088 "establishing a signal handler with the B<sigaction>(2)  B<SA_SIGINFO> flag."
4089 msgstr ""
4090
4091 #. type: Plain text
4092 #: build/C/man2/rt_sigqueueinfo.2:56
4093 msgid ""
4094 "These system calls are not intended for direct application use; they are "
4095 "provided to allow the implementation of B<sigqueue>(3)  and "
4096 "B<pthread_sigqueue>(3)."
4097 msgstr ""
4098
4099 #. type: Plain text
4100 #: build/C/man2/rt_sigqueueinfo.2:68
4101 msgid ""
4102 "The B<rt_sigqueueinfo>()  system call sends the signal I<sig> to the thread "
4103 "group with the ID I<tgid>.  (The term \"thread group\" is synonymous with "
4104 "\"process\", and I<tid> corresponds to the traditional UNIX process ID.)  "
4105 "The signal will be delivered to an arbitrary member of the thread group (i."
4106 "e., one of the threads that is not currently blocking the signal)."
4107 msgstr ""
4108
4109 #. type: Plain text
4110 #: build/C/man2/rt_sigqueueinfo.2:79
4111 msgid ""
4112 "The I<uinfo> argument specifies the data to accompany the signal.  This "
4113 "argument is a pointer to a structure of type I<siginfo_t>, described in "
4114 "B<sigaction>(2)  (and defined by including I<E<lt>sigaction.hE<gt>>).  The "
4115 "caller should set the following fields in this structure:"
4116 msgstr ""
4117
4118 #. type: TP
4119 #: build/C/man2/rt_sigqueueinfo.2:79 build/C/man7/sigevent.7:88
4120 #: build/C/man2/wait.2:316
4121 #, no-wrap
4122 msgid "I<si_code>"
4123 msgstr "I<si_code>"
4124
4125 #.  tkill(2) or
4126 #. type: Plain text
4127 #: build/C/man2/rt_sigqueueinfo.2:95
4128 msgid ""
4129 "This must be one of the B<SI_*> codes in the Linux kernel source file "
4130 "I<include/asm-generic/siginfo.h>, with the restriction that the code must be "
4131 "negative (i.e., cannot be B<SI_USER>, which is used by the kernel to "
4132 "indicate a signal sent by B<kill>(2))  and cannot (since Linux 2.6.39) be "
4133 "B<SI_TKILL> (which is used by the kernel to indicate a signal sent using "
4134 "B<tgkill>(2))."
4135 msgstr ""
4136
4137 #. type: TP
4138 #: build/C/man2/rt_sigqueueinfo.2:95 build/C/man2/wait.2:295
4139 #, no-wrap
4140 msgid "I<si_pid>"
4141 msgstr "I<si_pid>"
4142
4143 #. type: Plain text
4144 #: build/C/man2/rt_sigqueueinfo.2:99
4145 msgid ""
4146 "This should be set to a process ID, typically the process ID of the sender."
4147 msgstr ""
4148
4149 #. type: TP
4150 #: build/C/man2/rt_sigqueueinfo.2:99 build/C/man2/wait.2:298
4151 #, no-wrap
4152 msgid "I<si_uid>"
4153 msgstr "I<si_uid>"
4154
4155 #. type: Plain text
4156 #: build/C/man2/rt_sigqueueinfo.2:103
4157 msgid ""
4158 "This should be set to a user ID, typically the real user ID of the sender."
4159 msgstr ""
4160
4161 #. type: TP
4162 #: build/C/man2/rt_sigqueueinfo.2:103 build/C/man7/sigevent.7:96
4163 #, no-wrap
4164 msgid "I<si_value>"
4165 msgstr "I<si_value>"
4166
4167 #. type: Plain text
4168 #: build/C/man2/rt_sigqueueinfo.2:110
4169 msgid ""
4170 "This field contains the user data to accompany the signal.  For more "
4171 "information, see the description of the last (I<union sigval>)  argument of "
4172 "B<sigqueue>(3)."
4173 msgstr ""
4174
4175 #. type: Plain text
4176 #: build/C/man2/rt_sigqueueinfo.2:117
4177 msgid ""
4178 "Internally, the kernel sets the I<si_signo> field to the value specified in "
4179 "I<sig>, so that the receiver of the signal can also obtain the signal number "
4180 "via that field."
4181 msgstr ""
4182
4183 #. type: Plain text
4184 #: build/C/man2/rt_sigqueueinfo.2:129
4185 msgid ""
4186 "The B<rt_tgsigqueueinfo>()  system call is like B<rt_sigqueueinfo>(), but "
4187 "sends the signal and data to the single thread specified by the combination "
4188 "of I<tgid>, a thread group ID, and I<tid>, a thread in that thread group."
4189 msgstr ""
4190
4191 #. type: Plain text
4192 #: build/C/man2/rt_sigqueueinfo.2:134
4193 msgid ""
4194 "On success, these system calls return 0.  On error, they return -1 and "
4195 "I<errno> is set to indicate the error."
4196 msgstr ""
4197
4198 #. type: TP
4199 #: build/C/man2/rt_sigqueueinfo.2:135 build/C/man3/sigqueue.3:92
4200 #: build/C/man2/sigwaitinfo.2:115 build/C/man2/timer_create.2:176
4201 #, no-wrap
4202 msgid "B<EAGAIN>"
4203 msgstr "B<EAGAIN>"
4204
4205 #. type: Plain text
4206 #: build/C/man2/rt_sigqueueinfo.2:141 build/C/man3/sigqueue.3:98
4207 msgid ""
4208 "The limit of signals which may be queued has been reached.  (See B<signal>"
4209 "(7)  for further information.)"
4210 msgstr ""
4211 "待ち行列に入れられるシグナルの最大数に達した (より詳しい情報は B<signal>(7)  "
4212 "を参照すること)。"
4213
4214 #. type: Plain text
4215 #: build/C/man2/rt_sigqueueinfo.2:148
4216 msgid "I<sig>, I<tgid>, or I<tid> was invalid."
4217 msgstr ""
4218
4219 #. type: Plain text
4220 #: build/C/man2/rt_sigqueueinfo.2:156
4221 msgid ""
4222 "The caller does not have permission to send the signal to the target.  For "
4223 "the required permissions, see B<kill>(2).  Or: I<uinfo-E<gt>si_code> is "
4224 "invalid."
4225 msgstr ""
4226
4227 #. type: Plain text
4228 #: build/C/man2/rt_sigqueueinfo.2:162
4229 msgid "B<rt_sigqueueinfo>(): No thread group matching I<tgid> was found."
4230 msgstr ""
4231
4232 #. type: Plain text
4233 #: build/C/man2/rt_sigqueueinfo.2:169
4234 msgid "B<rt_tgsigqueinfo>(): No thread matching I<tgid> and I<tid> was found."
4235 msgstr ""
4236
4237 #. type: Plain text
4238 #: build/C/man2/rt_sigqueueinfo.2:176
4239 msgid ""
4240 "The B<rt_sigqueueinfo>()  system call was added to Linux in version 2.2.  "
4241 "The B<rt_tgsigqueueinfo>()  system call was added to Linux in version 2.6.31."
4242 msgstr ""
4243
4244 #. type: Plain text
4245 #: build/C/man2/rt_sigqueueinfo.2:178 build/C/man2/sgetmask.2:68
4246 #: build/C/man2/timerfd_create.2:373
4247 msgid "These system calls are Linux-specific."
4248 msgstr "これらのシステムコールは Linux 固有である。"
4249
4250 #. type: Plain text
4251 #: build/C/man2/rt_sigqueueinfo.2:183
4252 msgid ""
4253 "Since these system calls are not intended for application use, there are no "
4254 "glibc wrapper functions; use B<syscall>(2)  in the unlikely case that you "
4255 "want to call them directly."
4256 msgstr ""
4257 "これらのシステムコールはアプリケーションでの使用を目的として用意されたわけで"
4258 "はないので、 glibc のラッパー関数は存在しない。おそらくないと思うが、このシス"
4259 "テムコールを直接呼び出したい場合は B<syscall>(2) を使うこと。"
4260
4261 #. type: Plain text
4262 #: build/C/man2/rt_sigqueueinfo.2:188
4263 msgid ""
4264 "As with B<kill>(2), the null signal (0) can be used to check if the "
4265 "specified process or thread exists."
4266 msgstr ""
4267
4268 #. type: Plain text
4269 #: build/C/man2/rt_sigqueueinfo.2:196
4270 msgid ""
4271 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4272 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4273 msgstr ""
4274 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4275 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4276
4277 #. type: TH
4278 #: build/C/man2/s390_runtime_instr.2:25
4279 #, no-wrap
4280 msgid "S390_RUNTIME_INSTR"
4281 msgstr ""
4282
4283 #. type: TH
4284 #: build/C/man2/s390_runtime_instr.2:25
4285 #, no-wrap
4286 msgid "2012-12-17"
4287 msgstr "2012-12-17"
4288
4289 #. type: Plain text
4290 #: build/C/man2/s390_runtime_instr.2:28
4291 msgid "s390_runtime_instr - enable/disable s390 CPU run-time instrumentation"
4292 msgstr ""
4293
4294 #. type: Plain text
4295 #: build/C/man2/s390_runtime_instr.2:31
4296 #, no-wrap
4297 msgid "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4298 msgstr "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4299
4300 #. type: Plain text
4301 #: build/C/man2/s390_runtime_instr.2:33
4302 #, no-wrap
4303 msgid "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4304 msgstr "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4305
4306 #. type: Plain text
4307 #: build/C/man2/s390_runtime_instr.2:39
4308 msgid ""
4309 "The B<s390_runtime_instr>()  system call starts or stops CPU run-time "
4310 "instrumentation for the calling thread."
4311 msgstr ""
4312
4313 #. type: Plain text
4314 #: build/C/man2/s390_runtime_instr.2:47
4315 msgid ""
4316 "The I<command> argument controls whether run-time instrumentation is started "
4317 "(B<S390_RUNTIME_INSTR_START>, 1) or stopped (B<S390_RUNTIME_INSTR_STOP>, 2) "
4318 "for the calling thread."
4319 msgstr ""
4320
4321 #. type: Plain text
4322 #: build/C/man2/s390_runtime_instr.2:54
4323 msgid ""
4324 "The I<signum> argument specifies the number of a real-time signal.  The real-"
4325 "time signal is sent to the thread if the run-time instrumentation buffer is "
4326 "full or if the run-time-instrumentation-halted interrupt occurred."
4327 msgstr ""
4328
4329 #. type: Plain text
4330 #: build/C/man2/s390_runtime_instr.2:65
4331 msgid ""
4332 "On success, B<s390_runtime_instr>()  returns 0 and enables the thread for "
4333 "run-time instrumentation by assigning the thread a default run-time "
4334 "instrumentation control block.  The caller can then read and modify the "
4335 "control block and start the run-time instrumentation.  On error, -1 is "
4336 "returned and I<errno> is set to one of the error codes listed below."
4337 msgstr ""
4338
4339 #. type: Plain text
4340 #: build/C/man2/s390_runtime_instr.2:73
4341 msgid ""
4342 "The value specified in I<command> is not a valid command or the value "
4343 "specified in I<signum> is not a real-time signal number."
4344 msgstr ""
4345
4346 #. type: Plain text
4347 #: build/C/man2/s390_runtime_instr.2:76
4348 msgid ""
4349 "Allocating memory for the run-time instrumentation control block failed."
4350 msgstr ""
4351
4352 #. type: TP
4353 #: build/C/man2/s390_runtime_instr.2:76
4354 #, no-wrap
4355 msgid "B<EOPNOTSUPP>"
4356 msgstr ""
4357
4358 #. type: Plain text
4359 #: build/C/man2/s390_runtime_instr.2:79
4360 msgid "The run-time instrumentation facility is not available."
4361 msgstr ""
4362
4363 #. type: Plain text
4364 #: build/C/man2/s390_runtime_instr.2:81
4365 msgid "This system call is available since Linux 3.7."
4366 msgstr "このシステムコールは Linux 3.7 で初めて登場した。"
4367
4368 #. type: Plain text
4369 #: build/C/man2/s390_runtime_instr.2:84
4370 msgid ""
4371 "This Linux-specific system call is available only on the s390 architecture.  "
4372 "The run-time instrumentation facility is available beginning with System z "
4373 "EC12."
4374 msgstr ""
4375
4376 #. type: Plain text
4377 #: build/C/man2/s390_runtime_instr.2:88
4378 msgid ""
4379 "Glibc does not provide a wrapper for this system call, use B<syscall>(2)  to "
4380 "call it."
4381 msgstr ""
4382 "glibc はこのシステムコールに対するラッパー関数を提供していない。 B<syscall>"
4383 "(2) を使用すること。"
4384
4385 #. type: Plain text
4386 #: build/C/man2/s390_runtime_instr.2:91
4387 msgid "B<syscall>(2), B<signal>(7)"
4388 msgstr "B<syscall>(2), B<signal>(7)"
4389
4390 #. type: TH
4391 #: build/C/man2/sgetmask.2:26
4392 #, no-wrap
4393 msgid "SGETMASK"
4394 msgstr "SGETMASK"
4395
4396 #. type: TH
4397 #: build/C/man2/sgetmask.2:26
4398 #, no-wrap
4399 msgid "2014-02-25"
4400 msgstr "2014-02-25"
4401
4402 #. type: Plain text
4403 #: build/C/man2/sgetmask.2:29
4404 msgid "sgetmask, ssetmask - manipulation of signal mask (obsolete)"
4405 msgstr "sgetmask, ssetmask - シグナルマスクの操作 (廃止予定)"
4406
4407 #. type: Plain text
4408 #: build/C/man2/sgetmask.2:31
4409 msgid "B<long sgetmask(void);>"
4410 msgstr "B<long sgetmask(void);>"
4411
4412 #. type: Plain text
4413 #: build/C/man2/sgetmask.2:33
4414 msgid "B<long ssetmask(long >I<newmask>B<);>"
4415 msgstr "B<long ssetmask(long >I<newmask>B<);>"
4416
4417 #. type: Plain text
4418 #: build/C/man2/sgetmask.2:42
4419 msgid ""
4420 "These system calls are obsolete.  I<Do not use them>; use B<sigprocmask>(2)  "
4421 "instead."
4422 msgstr ""
4423 "これらのシステムコールは廃止予定であり、 「使用しないこと」。 代わりに "
4424 "B<sigprocmask>(2)  を使用すること。"
4425
4426 #. type: Plain text
4427 #: build/C/man2/sgetmask.2:45
4428 msgid "B<sgetmask>()  returns the signal mask of the calling process."
4429 msgstr "B<sgetmask>()  は、呼び出し元プロセスのシグナルマスクを返す。"
4430
4431 #. type: Plain text
4432 #: build/C/man2/sgetmask.2:50
4433 msgid ""
4434 "B<ssetmask>()  sets the signal mask of the calling process to the value "
4435 "given in I<newmask>.  The previous signal mask is returned."
4436 msgstr ""
4437 "B<ssetmask>()  は、呼び出し元プロセスのシグナルマスクを I<newmask> で指定され"
4438 "た値に設定し、変更前のシグナルマスクを返す。"
4439
4440 #. type: Plain text
4441 #: build/C/man2/sgetmask.2:59
4442 msgid ""
4443 "The signal masks dealt with by these two system calls are plain bit masks "
4444 "(unlike the I<sigset_t> used by B<sigprocmask>(2)); use B<sigmask>(3)  to "
4445 "create and inspect these masks."
4446 msgstr ""
4447 "これら二つのシステムコールが扱うシグナルマスクは、 単純なビットマスクである "
4448 "(この点が B<sigprocmask>(2)  で使用される I<sigset_t> と異なる)。 これらのマ"
4449 "スクを作成したり検査するには B<sigmask>(3)  を使用すること。"
4450
4451 #. type: Plain text
4452 #: build/C/man2/sgetmask.2:64
4453 msgid ""
4454 "B<sgetmask>()  always successfully returns the signal mask.  B<ssetmask>()  "
4455 "always succeeds, and returns the previous signal mask."
4456 msgstr ""
4457 "B<sgetmask>()  は常に成功し、シグナルマスクを返す。 B<ssetmask>()  は常に成功"
4458 "し、直前のシグナルマスクを返す。"
4459
4460 #. type: Plain text
4461 #: build/C/man2/sgetmask.2:66
4462 msgid "These system calls always succeed."
4463 msgstr "これらのシステムコールは常に成功する。"
4464
4465 #. type: Plain text
4466 #: build/C/man2/sgetmask.2:72
4467 msgid ""
4468 "Glibc does not provide wrappers for these obsolete system calls; in the "
4469 "unlikely event that you want to call them, use B<syscall>(2)."
4470 msgstr "glibc はこれらの古いシステムコールに対するラッパー関数を提供していない。 あまりないと思うが、これらを呼び出したい場合には B<syscall>(2) を使うこと。"
4471
4472 #. type: Plain text
4473 #: build/C/man2/sgetmask.2:75
4474 msgid ""
4475 "These system calls are unaware of signal numbers greater than 31 (i.e., real-"
4476 "time signals)."
4477 msgstr ""
4478 "これらのシステムコールは、 31 より大きいシグナル番号 (つまり、リアルタイムシ"
4479 "グナル) を扱えない。"
4480
4481 #. type: Plain text
4482 #: build/C/man2/sgetmask.2:77
4483 msgid "These system calls do not exist on x86-64."
4484 msgstr "これらのシステムコールは x86-64 には存在しない。"
4485
4486 #. type: Plain text
4487 #: build/C/man2/sgetmask.2:82
4488 msgid "It is not possible to block B<SIGSTOP> or B<SIGKILL>."
4489 msgstr "B<SIGSTOP> や B<SIGKILL> をブロックすることはできない。"
4490
4491 #. type: Plain text
4492 #: build/C/man2/sgetmask.2:85
4493 msgid "B<sigprocmask>(2), B<signal>(7)"
4494 msgstr "B<sigprocmask>(2), B<signal>(7)"
4495
4496 #. type: TH
4497 #: build/C/man2/sigaction.2:47
4498 #, no-wrap
4499 msgid "SIGACTION"
4500 msgstr "SIGACTION"
4501
4502 #. type: TH
4503 #: build/C/man2/sigaction.2:47 build/C/man7/signal.7:46
4504 #: build/C/man2/sigreturn.2:29
4505 #, no-wrap
4506 msgid "2013-07-30"
4507 msgstr "2013-07-30"
4508
4509 #. type: Plain text
4510 #: build/C/man2/sigaction.2:50
4511 msgid "sigaction - examine and change a signal action"
4512 msgstr "sigaction - シグナルの動作の確認と変更"
4513
4514 #. type: Plain text
4515 #: build/C/man2/sigaction.2:56
4516 #, no-wrap
4517 msgid ""
4518 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
4519 "B<              struct sigaction *>I<oldact>B<);>\n"
4520 msgstr ""
4521 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
4522 "B<              struct sigaction *>I<oldact>B<);>\n"
4523
4524 #. type: Plain text
4525 #: build/C/man2/sigaction.2:66
4526 msgid ""
4527 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4528 "_POSIX_SOURCE"
4529 msgstr ""
4530 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4531 "_POSIX_SOURCE"
4532
4533 #. type: Plain text
4534 #: build/C/man2/sigaction.2:69
4535 msgid "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
4536 msgstr "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
4537
4538 #. type: Plain text
4539 #: build/C/man2/sigaction.2:78
4540 msgid ""
4541 "The B<sigaction>()  system call is used to change the action taken by a "
4542 "process on receipt of a specific signal.  (See B<signal>(7)  for an overview "
4543 "of signals.)"
4544 msgstr ""
4545 "B<sigaction>()  システムコールは、特定のシグナルを受信した際の プロセスの動作"
4546 "を変更するのに使用される (シグナルの概要については B<signal>(7)  を参照)。"
4547
4548 #. type: Plain text
4549 #: build/C/man2/sigaction.2:84
4550 msgid ""
4551 "I<signum> specifies the signal and can be any valid signal except B<SIGKILL> "
4552 "and B<SIGSTOP>."
4553 msgstr ""
4554 "I<signum> には、 B<SIGKILL> と B<SIGSTOP> 以外の有効なシグナルをどれでも指定"
4555 "できる。"
4556
4557 #. type: Plain text
4558 #: build/C/man2/sigaction.2:95
4559 msgid ""
4560 "If I<act> is non-NULL, the new action for signal I<signum> is installed from "
4561 "I<act>.  If I<oldact> is non-NULL, the previous action is saved in I<oldact>."
4562 msgstr ""
4563 "I<act> が NULL 以外であれば、シグナル I<signum> の新しい動作 (action) として "
4564 "I<act> が設定される。 I<oldact> が NULL でなければ、今までの動作が I<oldact> "
4565 "に格納される。"
4566
4567 #. type: Plain text
4568 #: build/C/man2/sigaction.2:99
4569 msgid "The I<sigaction> structure is defined as something like:"
4570 msgstr "I<sigaction> 構造体は以下のような感じに定義される。"
4571
4572 #. type: Plain text
4573 #: build/C/man2/sigaction.2:109
4574 #, no-wrap
4575 msgid ""
4576 "struct sigaction {\n"
4577 "    void     (*sa_handler)(int);\n"
4578 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
4579 "    sigset_t   sa_mask;\n"
4580 "    int        sa_flags;\n"
4581 "    void     (*sa_restorer)(void);\n"
4582 "};\n"
4583 msgstr ""
4584 "struct sigaction {\n"
4585 "    void     (*sa_handler)(int);\n"
4586 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
4587 "    sigset_t   sa_mask;\n"
4588 "    int        sa_flags;\n"
4589 "    void     (*sa_restorer)(void);\n"
4590 "};\n"
4591
4592 #. type: Plain text
4593 #: build/C/man2/sigaction.2:116
4594 msgid ""
4595 "On some architectures a union is involved: do not assign to both "
4596 "I<sa_handler> and I<sa_sigaction>."
4597 msgstr ""
4598 "アーキテクチャによっては共用体 (union) が用いられており、その場合には "
4599 "I<sa_handler> と I<sa_sigaction> の両方を同時に割り当てることはできない。"
4600
4601 #. type: Plain text
4602 #: build/C/man2/sigaction.2:123
4603 msgid ""
4604 "The I<sa_restorer> element is obsolete and should not be used.  POSIX does "
4605 "not specify a I<sa_restorer> element."
4606 msgstr ""
4607 "I<sa_restorer> 要素は廃止予定であり使用すべきではない。 POSIX には "
4608 "I<sa_restorer> 要素に関する規定はない。"
4609
4610 #. type: Plain text
4611 #: build/C/man2/sigaction.2:133
4612 msgid ""
4613 "I<sa_handler> specifies the action to be associated with I<signum> and may "
4614 "be B<SIG_DFL> for the default action, B<SIG_IGN> to ignore this signal, or a "
4615 "pointer to a signal handling function.  This function receives the signal "
4616 "number as its only argument."
4617 msgstr ""
4618 "I<sa_handler> は I<signum> に対応する動作を指定するもので、 デフォルトの動作"
4619 "を行う B<SIG_DFL>、 そのシグナルを無視する B<SIG_IGN>、 シグナルハンドラ関数"
4620 "へのポインタが設定できる。 シグナルハンドラ関数の引き数は一つであり、シグナル"
4621 "番号が引き数として 渡される。"
4622
4623 #. type: Plain text
4624 #: build/C/man2/sigaction.2:155
4625 msgid ""
4626 "If B<SA_SIGINFO> is specified in I<sa_flags>, then I<sa_sigaction> (instead "
4627 "of I<sa_handler>)  specifies the signal-handling function for I<signum>.  "
4628 "This function receives the signal number as its first argument, a pointer to "
4629 "a I<siginfo_t> as its second argument and a pointer to a I<ucontext_t> (cast "
4630 "to I<void\\ *>) as its third argument.  (Commonly, the handler function "
4631 "doesn't make any use of the third argument.  See B<getcontext>(3)  for "
4632 "further information about I<ucontext_t>.)"
4633 msgstr "I<sa_flags> に B<SA_SIGINFO> が指定された場合、 (I<sa_handler> ではなく) I<sa_sigaction> により I<signum> に対応するシグナルハンドラ関数が指定される。指定される関数は、最初の引き数としてシグナル番号を、二番目の引き数として I<siginfo_t> へのポインタを、三番目の引き数として (I<void\\ *> にキャストした) I<ucontext_t> へのポインタを受けとる。 (一般的には、ハンドラ関数の三番目の引き数が使用されない。I<ucontext_t> についての詳しい情報は B<getcontext>(3) を参照。)"
4634
4635 #. type: Plain text
4636 #: build/C/man2/sigaction.2:165
4637 msgid ""
4638 "I<sa_mask> specifies a mask of signals which should be blocked (i.e., added "
4639 "to the signal mask of the thread in which the signal handler is invoked)  "
4640 "during execution of the signal handler.  In addition, the signal which "
4641 "triggered the handler will be blocked, unless the B<SA_NODEFER> flag is used."
4642 msgstr ""
4643 "I<sa_mask> は、シグナル・ハンドラ実行中に禁止 (block) すべきシグナルのマスク"
4644 "を指定する (ハンドラ実行中のシグナルの禁止は、シグナル・ハンドラが起動された"
4645 "スレッド のシグナルのマスクに追加することで行われる)。 さらに、 "
4646 "B<SA_NODEFER> フラグが指定されていない場合は、ハンドラを起動するきっかけとな"
4647 "る シグナルにも I<sa_mask> が適用される。"
4648
4649 #. type: Plain text
4650 #: build/C/man2/sigaction.2:169
4651 msgid ""
4652 "I<sa_flags> specifies a set of flags which modify the behavior of the "
4653 "signal.  It is formed by the bitwise OR of zero or more of the following:"
4654 msgstr ""
4655 "I<sa_flags> はシグナル・ハンドラの動作を変更するためのフラグの集合を指定す"
4656 "る。 I<sa_flags> には、以下に示すフラグの (0 個以上の) 論理和をとったものを指"
4657 "定する。"
4658
4659 #. type: TP
4660 #: build/C/man2/sigaction.2:170
4661 #, no-wrap
4662 msgid "B<SA_NOCLDSTOP>"
4663 msgstr "B<SA_NOCLDSTOP>"
4664
4665 #. type: Plain text
4666 #: build/C/man2/sigaction.2:187
4667 msgid ""
4668 "If I<signum> is B<SIGCHLD>, do not receive notification when child processes "
4669 "stop (i.e., when they receive one of B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN>, or "
4670 "B<SIGTTOU>)  or resume (i.e., they receive B<SIGCONT>)  (see B<wait>(2)).  "
4671 "This flag is meaningful only when establishing a handler for B<SIGCHLD>."
4672 msgstr ""
4673 "I<signum> が B<SIGCHLD> の場合、 子プロセスが停止したり (子プロセスが "
4674 "B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN>, B<SIGTTOU> を受けたとき) 再開したり (子プ"
4675 "ロセスが B<SIGCONT> を受けたとき) したときに B<SIGCHLD> の通知を受けない。 こ"
4676 "のフラグは、 B<SIGCHLD> に対してハンドラを設定する際にのみ意味を持つ。"
4677
4678 #. type: TP
4679 #: build/C/man2/sigaction.2:187
4680 #, no-wrap
4681 msgid "B<SA_NOCLDWAIT> (since Linux 2.6)"
4682 msgstr "B<SA_NOCLDWAIT> (Linux 2.6 以降)"
4683
4684 #.  To be precise: Linux 2.5.60 -- MTK
4685 #. type: Plain text
4686 #: build/C/man2/sigaction.2:201
4687 msgid ""
4688 "If I<signum> is B<SIGCHLD>, do not transform children into zombies when they "
4689 "terminate.  See also B<waitpid>(2).  This flag is meaningful only when "
4690 "establishing a handler for B<SIGCHLD>, or when setting that signal's "
4691 "disposition to B<SIG_DFL>."
4692 msgstr ""
4693 "(Linux 2.6 以降)  I<signum> が B<SIGCHLD> の場合、子プロセスが終了したときに "
4694 "子プロセスをゾンビプロセスに変化させない (B<waitpid>(2)  も参照)。 このフラグ"
4695 "は、 B<SIGCHLD> に対してハンドラを設定する際、もしくはそのシグナルの処理方法"
4696 "を B<SIG_DFL> に設定する際にのみ意味を持つ。"
4697
4698 #. type: Plain text
4699 #: build/C/man2/sigaction.2:213
4700 msgid ""
4701 "If the B<SA_NOCLDWAIT> flag is set when establishing a handler for "
4702 "B<SIGCHLD>, POSIX.1 leaves it unspecified whether a B<SIGCHLD> signal is "
4703 "generated when a child process terminates.  On Linux, a B<SIGCHLD> signal is "
4704 "generated in this case; on some other implementations, it is not."
4705 msgstr ""
4706 "B<SIGCHLD> に対してハンドラを設定する際に B<SA_NOCLDWAIT> フラグをセットした"
4707 "場合、 子プロセスが終了した際に B<SIGCHLD> シグナルが生成されるかどうかは、 "
4708 "POSIX.1 では規定されていない。 Linux では、この状況で B<SIGCHLD> シグナルは生"
4709 "成される。 いくつかの他の実装では生成されない。"
4710
4711 #. type: TP
4712 #: build/C/man2/sigaction.2:213
4713 #, no-wrap
4714 msgid "B<SA_NODEFER>"
4715 msgstr "B<SA_NODEFER>"
4716
4717 #. type: Plain text
4718 #: build/C/man2/sigaction.2:220
4719 msgid ""
4720 "Do not prevent the signal from being received from within its own signal "
4721 "handler.  This flag is meaningful only when establishing a signal handler.  "
4722 "B<SA_NOMASK> is an obsolete, nonstandard synonym for this flag."
4723 msgstr ""
4724 "それ自身のシグナル・ハンドラーの内部にいる時でも そのシグナルをマスクしないよ"
4725 "うにする。 このフラグはシグナルハンドラを設定する際にのみ意味を持つ。 "
4726 "B<SA_NOMASK> はこのフラグと同じ意味だが、廃止されており、非標準である。"
4727
4728 #. type: TP
4729 #: build/C/man2/sigaction.2:220
4730 #, no-wrap
4731 msgid "B<SA_ONSTACK>"
4732 msgstr "B<SA_ONSTACK>"
4733
4734 #. type: Plain text
4735 #: build/C/man2/sigaction.2:226
4736 msgid ""
4737 "Call the signal handler on an alternate signal stack provided by "
4738 "B<sigaltstack>(2).  If an alternate stack is not available, the default "
4739 "stack will be used.  This flag is meaningful only when establishing a signal "
4740 "handler."
4741 msgstr ""
4742 "B<sigaltstack>(2)  で提供される別のシグナル・スタックでシグナルハンドラを呼び"
4743 "出す。 別のシグナル・スタックが利用可能でなければ、デフォルトのスタックが 使"
4744 "用される。 このフラグはシグナルハンドラを設定する際にのみ意味を持つ。"
4745
4746 #. type: TP
4747 #: build/C/man2/sigaction.2:226
4748 #, no-wrap
4749 msgid "B<SA_RESETHAND>"
4750 msgstr "B<SA_RESETHAND>"
4751
4752 #. type: Plain text
4753 #: build/C/man2/sigaction.2:232
4754 msgid ""
4755 "Restore the signal action to the default upon entry to the signal handler.  "
4756 "This flag is meaningful only when establishing a signal handler.  "
4757 "B<SA_ONESHOT> is an obsolete, nonstandard synonym for this flag."
4758 msgstr ""
4759 "シグナルハンドラを設定する際に、シグナルの動作をデフォルトに戻す。 このフラグ"
4760 "はシグナルハンドラを設定する際にのみ意味を持つ。 B<SA_ONESHOT> はこのフラグと"
4761 "同じ意味だが、廃止されており、非標準である。"
4762
4763 #. type: TP
4764 #: build/C/man2/sigaction.2:232
4765 #, no-wrap
4766 msgid "B<SA_RESTART>"
4767 msgstr "B<SA_RESTART>"
4768
4769 #. type: Plain text
4770 #: build/C/man2/sigaction.2:240
4771 msgid ""
4772 "Provide behavior compatible with BSD signal semantics by making certain "
4773 "system calls restartable across signals.  This flag is meaningful only when "
4774 "establishing a signal handler.  See B<signal>(7)  for a discussion of system "
4775 "call restarting."
4776 msgstr ""
4777 "いくつかのシステムコールをシグナルの通知の前後で再開できるようにして、 BSD シ"
4778 "グナル方式 (semantics) と互換性のある動作を提供する。 このフラグはシグナルハ"
4779 "ンドラを設定する際にのみ意味を持つ。 B<signal>(7)  に書かれているシステムコー"
4780 "ルの再開に関する議論を参照のこと。"
4781
4782 #. type: TP
4783 #: build/C/man2/sigaction.2:240
4784 #, no-wrap
4785 msgid "B<SA_SIGINFO> (since Linux 2.2)"
4786 msgstr "B<SA_SIGINFO> (Linux 2.2 以降)"
4787
4788 #.  (The
4789 #.  .I sa_sigaction
4790 #.  field was added in Linux 2.1.86.)
4791 #. type: Plain text
4792 #: build/C/man2/sigaction.2:251
4793 msgid ""
4794 "The signal handler takes three arguments, not one.  In this case, "
4795 "I<sa_sigaction> should be set instead of I<sa_handler>.  This flag is "
4796 "meaningful only when establishing a signal handler."
4797 msgstr ""
4798 "シグナルハンドラは一つではなく、三つの引き数を持つ。この場合は I<sa_handler> "
4799 "のかわりに I<sa_sigaction> を設定しなければならない このフラグはシグナルハン"
4800 "ドラを設定する際にのみ意味を持つ。"
4801
4802 #. type: Plain text
4803 #: build/C/man2/sigaction.2:258
4804 msgid ""
4805 "The I<siginfo_t> argument to I<sa_sigaction> is a struct with the following "
4806 "elements:"
4807 msgstr ""
4808 "I<sa_sigaction> のパラメータ I<siginfo_t> は以下の要素を持つ構造体である:"
4809
4810 #.  FIXME
4811 #.  si_trapno seems to be only used on SPARC and Alpha;
4812 #.  this page could use a little more detail on its purpose there.
4813 #.  In the kernel: si_tid
4814 #. type: Plain text
4815 #: build/C/man2/sigaction.2:289
4816 #, no-wrap
4817 msgid ""
4818 "siginfo_t {\n"
4819 "    int      si_signo;    /* Signal number */\n"
4820 "    int      si_errno;    /* An errno value */\n"
4821 "    int      si_code;     /* Signal code */\n"
4822 "    int      si_trapno;   /* Trap number that caused\n"
4823 "                             hardware-generated signal\n"
4824 "                             (unused on most architectures) */\n"
4825 "    pid_t    si_pid;      /* Sending process ID */\n"
4826 "    uid_t    si_uid;      /* Real user ID of sending process */\n"
4827 "    int      si_status;   /* Exit value or signal */\n"
4828 "    clock_t  si_utime;    /* User time consumed */\n"
4829 "    clock_t  si_stime;    /* System time consumed */\n"
4830 "    sigval_t si_value;    /* Signal value */\n"
4831 "    int      si_int;      /* POSIX.1b signal */\n"
4832 "    void    *si_ptr;      /* POSIX.1b signal */\n"
4833 "    int      si_overrun;  /* Timer overrun count; POSIX.1b timers */\n"
4834 "    int      si_timerid;  /* Timer ID; POSIX.1b timers */\n"
4835 "    void    *si_addr;     /* Memory location which caused fault */\n"
4836 "    long     si_band;     /* Band event (was I<int> in\n"
4837 "                             glibc 2.3.2 and earlier) */\n"
4838 "    int      si_fd;       /* File descriptor */\n"
4839 "    short    si_addr_lsb; /* Least significant bit of address\n"
4840 "                             (since Linux 2.6.32) */\n"
4841 "}\n"
4842 msgstr ""
4843 "siginfo_t {\n"
4844 "    int      si_signo;    /* Signal number */\n"
4845 "    int      si_errno;    /* An errno value */\n"
4846 "    int      si_code;     /* Signal code */\n"
4847 "    int      si_trapno;   /* Trap number that caused\n"
4848 "                             hardware-generated signal\n"
4849 "                             (unused on most architectures) */\n"
4850 "    pid_t    si_pid;      /* Sending process ID */\n"
4851 "    uid_t    si_uid;      /* Real user ID of sending process */\n"
4852 "    int      si_status;   /* Exit value or signal */\n"
4853 "    clock_t  si_utime;    /* User time consumed */\n"
4854 "    clock_t  si_stime;    /* System time consumed */\n"
4855 "    sigval_t si_value;    /* Signal value */\n"
4856 "    int      si_int;      /* POSIX.1b signal */\n"
4857 "    void    *si_ptr;      /* POSIX.1b signal */\n"
4858 "    int      si_overrun;  /* Timer overrun count; POSIX.1b timers */\n"
4859 "    int      si_timerid;  /* Timer ID; POSIX.1b timers */\n"
4860 "    void    *si_addr;     /* Memory location which caused fault */\n"
4861 "    long     si_band;     /* Band event (was I<int> in\n"
4862 "                             glibc 2.3.2 and earlier) */\n"
4863 "    int      si_fd;       /* File descriptor */\n"
4864 "    short    si_addr_lsb; /* Least significant bit of address\n"
4865 "                             (since Linux 2.6.32) */\n"
4866 "}\n"
4867
4868 #. type: Plain text
4869 #: build/C/man2/sigaction.2:298
4870 msgid ""
4871 "I<si_signo>, I<si_errno> and I<si_code> are defined for all signals.  "
4872 "(I<si_errno> is generally unused on Linux.)  The rest of the struct may be a "
4873 "union, so that one should read only the fields that are meaningful for the "
4874 "given signal:"
4875 msgstr ""
4876 "I<si_signo>, I<si_errno>, I<si_code> は全てのシグナルに対して定義されている "
4877 "(I<si_errno> は Linux では一般的には使用されない)。 構造体の残りの部分は、共"
4878 "用体 (union) になっているかもしれない。 その場合は該当するシグナルにおいて意"
4879 "味のあるフィールドのみを読み込む ことができる。"
4880
4881 #. type: Plain text
4882 #: build/C/man2/sigaction.2:313
4883 msgid ""
4884 "Signals sent with B<kill>(2)  and B<sigqueue>(3)  fill in I<si_pid> and "
4885 "I<si_uid>.  In addition, signals sent with B<sigqueue>(3)  fill in I<si_int> "
4886 "and I<si_ptr> with the values specified by the sender of the signal; see "
4887 "B<sigqueue>(3)  for more details."
4888 msgstr "B<kill>(2) や B<sigqueue>(3) で送信されたシグナルでは I<si_pid> と I<si_uid> が設定される。 さらに、 B<sigqueue>(3) で送信されたシグナルでは I<si_int> と I<si_pid> にシグナルの送信者により指定された値が設定される。詳細は B<sigqueue>(3) を参照。"
4889
4890 #. type: Plain text
4891 #: build/C/man2/sigaction.2:329
4892 msgid ""
4893 "Signals sent by POSIX.1b timers (since Linux 2.6) fill in I<si_overrun> and "
4894 "I<si_timerid>.  The I<si_timerid> field is an internal ID used by the kernel "
4895 "to identify the timer; it is not the same as the timer ID returned by "
4896 "B<timer_create>(2).  The I<si_overrun> field is the timer overrun count; "
4897 "this is the same information as is obtained by a call to B<timer_getoverrun>"
4898 "(2).  These fields are nonstandard Linux extensions."
4899 msgstr "POSIX.1b タイマ (Linux 2.6 以降) は I<si_overrun> と I<si_timerid> を設定する。 I<si_timerid> フィールドはカーネルがタイマを特定するのに使用する内部 ID であり、 B<timer_create>(2) が返すタイマ ID と同じではない。 I<si_overrun> フィールドはタイマが回り切った回数である。 これは B<timer_getoverrun>(2) の呼び出しで取得できる情報と同じである。 これらのフィールドは非標準で Linux による拡張である。"
4900
4901 #. type: Plain text
4902 #: build/C/man2/sigaction.2:344
4903 msgid ""
4904 "Signals sent for message queue notification (see the description of "
4905 "B<SIGEV_SIGNAL> in B<mq_notify>(3))  fill in I<si_int>/I<si_ptr>, with the "
4906 "I<sigev_value> supplied to B<mq_notify>(3); I<si_pid>, with the process ID "
4907 "of the message sender; and I<si_uid>, with the real user ID of the message "
4908 "sender."
4909 msgstr ""
4910 "メッセージキューの通知用に送信されたシグナル (B<mq_notify>(3) の "
4911 "B<SIGEV_SIGNAL> の説明を参照) では、 I<si_int>/I<si_ptr> に B<mq_notify>(3) "
4912 "に渡された I<sigev_value> が設定される。 I<si_pid> にはメッセージ送信者のプロ"
4913 "セス ID が設定され、 I<si_uid> にはメッセージ送信者の実ユーザ ID が設定され"
4914 "る。"
4915
4916 #.  FIXME .
4917 #.  When si_utime and si_stime where originally implemented, the
4918 #.  measurement unit was HZ, which was the same as clock ticks
4919 #.  (sysconf(_SC_CLK_TCK)).  In 2.6, HZ became configurable, and
4920 #.  was *still* used as the unit to return the info these fields,
4921 #.  with the result that the field values depended on the the
4922 #.  configured HZ.  Of course, the should have been measured in
4923 #.  USER_HZ instead, so that sysconf(_SC_CLK_TCK) could be used to
4924 #.  convert to seconds.  I have a queued patch to fix this:
4925 #.  http://thread.gmane.org/gmane.linux.kernel/698061/ .
4926 #.  This patch made it into 2.6.27.
4927 #.  But note that these fields still don't return the times of
4928 #.  waited-for children (as is done by getrusage() and times()
4929 #.  and wait4()).  Solaris 8 does include child times.
4930 #. type: Plain text
4931 #: build/C/man2/sigaction.2:391
4932 msgid ""
4933 "B<SIGCHLD> fills in I<si_pid>, I<si_uid>, I<si_status>, I<si_utime>, and "
4934 "I<si_stime>, providing information about the child.  The I<si_pid> field is "
4935 "the process ID of the child; I<si_uid> is the child's real user ID.  The "
4936 "I<si_status> field contains the exit status of the child (if I<si_code> is "
4937 "B<CLD_EXITED>), or the signal number that caused the process to change "
4938 "state.  The I<si_utime> and I<si_stime> contain the user and system CPU time "
4939 "used by the child process; these fields do not include the times used by "
4940 "waited-for children (unlike B<getrusage>(2)  and B<time>(2)).  In kernels up "
4941 "to 2.6, and since 2.6.27, these fields report CPU time in units of I<sysconf"
4942 "(_SC_CLK_TCK)>.  In 2.6 kernels before 2.6.27, a bug meant that these fields "
4943 "reported time in units of the (configurable) system jiffy (see B<time>(7))."
4944 msgstr "B<SIGCHLD> は I<si_pid>, I<si_uid>, I<si_status>, I<si_utime>, I<si_stime> を設定し、子プロセスに関する情報を提供する。 I<si_pid> フィールドは子プロセスのプロセス ID で、 I<si_uid> フィールドは子プロセスの実ユーザ ID である。 I<si_stime> フィールドには、 (I<si_code> が B<CLD_EXITED> の場合は) 子プロセスの終了ステータスが、それ以外の場合は状態が変化する原因となったシグナル番号が格納される。 I<si_utime> と I<si_stime> には子プロセスが使用したユーザ CPU 時間とシステム CPU 時間がそれぞれ格納される。(B<getrusage>(2) や B<time>(2) と異なり) これらのフィールドには wait 待ちの子プロセスにより使用された時間は含まれない。 2.6 より前と 2.6.27 以降のカーネルでは、 これらのフィールドに格納される CPU 時間の単位は I<sysconf(_SC_CLK_TCK)> である。 2.6.27 より前の 2.6 系のカーネルでは、バグがあり、 これらのフィールドの CPU 時間の単位が (カーネルのコンフィグで指定される) システムの jiffy であった (B<time>(7) 参照)。"
4945
4946 #.  FIXME SIGTRAP also sets the following for ptrace_notify() ?
4947 #.      info.si_code = exit_code;
4948 #.      info.si_pid = task_pid_vnr(current);
4949 #.      info.si_uid = current_uid();  /* Real UID */
4950 #. type: Plain text
4951 #: build/C/man2/sigaction.2:427
4952 msgid ""
4953 "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, and B<SIGTRAP> fill in "
4954 "I<si_addr> with the address of the fault.  On some architectures, these "
4955 "signals also fill in the I<si_trapno> field.  Some suberrors of B<SIGBUS>, "
4956 "in particular B<BUS_MCEERR_AO> and B<BUS_MCEERR_AR>, also fill in "
4957 "I<si_addr_lsb>.  This field indicates the least significant bit of the "
4958 "reported address and therefore the extent of the corruption.  For example, "
4959 "if a full page was corrupted, I<si_addr_lsb> contains I<log2(sysconf"
4960 "(_SC_PAGESIZE))>.  B<BUS_MCERR_*> and I<si_addr_lsb> are Linux-specific "
4961 "extensions."
4962 msgstr ""
4963 "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, B<SIGTRAP> では、 I<si_addr> に "
4964 "fault が発生したアドレスが設定される。 いくつかのアーキテクチャでは、 これら"
4965 "のシグナルは I<si_trapno> フィールドにも設定される。 B<SIGBUS> が発生するエ"
4966 "ラーのいくつか、特に B<BUS_MCEERR_AO> と B<BUS_MCEERR_AR> では、 "
4967 "I<si_addr_lsb> も設定される。 このフィールドは報告されるアドレスの最下位ビッ"
4968 "トを示し、 これによりメモリ破壊の程度を知ることができる。 例えば、ページ全体"
4969 "が壊れている場合には I<si_addr_lsb> には I<log2(sysconf(_SC_PAGESIZE))> が入"
4970 "る。 B<BUS_MCERR_*> と I<si_addr_lsb> は Linux 固有の拡張である。"
4971
4972 #. type: Plain text
4973 #: build/C/man2/sigaction.2:441
4974 msgid ""
4975 "B<SIGIO>/B<SIGPOLL> (the two names are synonyms on Linux)  fills in "
4976 "I<si_band> and I<si_fd>.  The I<si_band> event is a bit mask containing the "
4977 "same values as are filled in the I<revents> field by B<poll>(2).  The "
4978 "I<si_fd> field indicates the file descriptor for which the I/O event "
4979 "occurred."
4980 msgstr ""
4981 "B<SIGIO>/B<SIGPOLL> (2 つの名前は Linux では同義語) では I<si_band> と "
4982 "I<si_fd> が設定される。 I<si_band> イベントは、 B<poll>(2) が I<revents> "
4983 "フィールドに設定するのと同じ値が入ったビットマスクである。 I<si_fd> フィール"
4984 "ドは I/O イベントが発生したファイルディスクリプタを示す。"
4985
4986 #. type: Plain text
4987 #: build/C/man2/sigaction.2:448
4988 msgid ""
4989 "I<si_code> is a value (not a bit mask)  indicating why this signal was "
4990 "sent.  The following list shows the values which can be placed in I<si_code> "
4991 "for any signal, along with reason that the signal was generated."
4992 msgstr ""
4993 "I<si_code> は、そのシグナルが送信された理由を示す値である (ビットマスクではな"
4994 "い)。 以下は、どのシグナルの場合でも I<si_code> に入りうる値のリストである。"
4995 "シグナルが生成された理由も記載している。"
4996
4997 #. type: TP
4998 #: build/C/man2/sigaction.2:449
4999 #, no-wrap
5000 msgid "B<SI_USER>"
5001 msgstr "B<SI_USER>"
5002
5003 #. type: TP
5004 #: build/C/man2/sigaction.2:452 build/C/man7/signal.7:111
5005 #, no-wrap
5006 msgid "B<kill>(2)"
5007 msgstr "B<kill>(2)"
5008
5009 #. type: TP
5010 #: build/C/man2/sigaction.2:452
5011 #, no-wrap
5012 msgid "B<SI_KERNEL>"
5013 msgstr "B<SI_KERNEL>"
5014
5015 #. type: Plain text
5016 #: build/C/man2/sigaction.2:455
5017 msgid "Sent by the kernel."
5018 msgstr "カーネルにより送信された"
5019
5020 #. type: TP
5021 #: build/C/man2/sigaction.2:455
5022 #, no-wrap
5023 msgid "B<SI_QUEUE>"
5024 msgstr "B<SI_QUEUE>"
5025
5026 #. type: TP
5027 #: build/C/man2/sigaction.2:458 build/C/man7/signal.7:128
5028 #, no-wrap
5029 msgid "B<sigqueue>(3)"
5030 msgstr "B<sigqueue>(3)"
5031
5032 #. type: TP
5033 #: build/C/man2/sigaction.2:458
5034 #, no-wrap
5035 msgid "B<SI_TIMER>"
5036 msgstr "B<SI_TIMER>"
5037
5038 #. type: Plain text
5039 #: build/C/man2/sigaction.2:461
5040 msgid "POSIX timer expired"
5041 msgstr "POSIX タイマが満了した"
5042
5043 #. type: TP
5044 #: build/C/man2/sigaction.2:461
5045 #, no-wrap
5046 msgid "B<SI_MESGQ>"
5047 msgstr "B<SI_MESGQ>"
5048
5049 #. type: Plain text
5050 #: build/C/man2/sigaction.2:465
5051 msgid ""
5052 "POSIX message queue state changed (since Linux 2.6.6); see B<mq_notify>(3)"
5053 msgstr ""
5054 "POSIX メッセージキューの状態が変化した (Linux 2.6.6 以降)。 B<mq_notify>(3)B<"
5055 "参照。>"
5056
5057 #. type: TP
5058 #: build/C/man2/sigaction.2:465
5059 #, no-wrap
5060 msgid "B<SI_ASYNCIO>"
5061 msgstr "B<SI_ASYNCIO>"
5062
5063 #. type: Plain text
5064 #: build/C/man2/sigaction.2:468
5065 msgid "AIO completed"
5066 msgstr "非同期 IO (AIO) が完了した"
5067
5068 #. type: TP
5069 #: build/C/man2/sigaction.2:468
5070 #, no-wrap
5071 msgid "B<SI_SIGIO>"
5072 msgstr "B<SI_SIGIO>"
5073
5074 #. type: Plain text
5075 #: build/C/man2/sigaction.2:477
5076 msgid ""
5077 "Queued B<SIGIO> (only in kernels up to Linux 2.2; from Linux 2.4 onward "
5078 "B<SIGIO>/B<SIGPOLL> fills in I<si_code> as described below)."
5079 msgstr ""
5080 "B<SIGIO> がキューイングされた (Linux 2.2 以下のカーネルのみ; Linux 2.4 以降で"
5081 "は以下で説明する B<SIGIO>/B<SIGPOLL> の I<si_code> が入る)。"
5082
5083 #. type: TP
5084 #: build/C/man2/sigaction.2:477
5085 #, no-wrap
5086 msgid "B<SI_TKILL>"
5087 msgstr "B<SI_TKILL>"
5088
5089 #.  SI_DETHREAD is defined in 2.6.9 sources, but isn't implemented
5090 #.  It appears to have been an idea that was tried during 2.5.6
5091 #.  through to 2.5.24 and then was backed out.
5092 #. type: Plain text
5093 #: build/C/man2/sigaction.2:486
5094 msgid "B<tkill>(2)  or B<tgkill>(2)  (since Linux 2.4.19)"
5095 msgstr "B<tkill>(2)  または B<tgkill>(2)  (Linux 2.4.19 以降)"
5096
5097 #. type: Plain text
5098 #: build/C/man2/sigaction.2:493
5099 msgid ""
5100 "The following values can be placed in I<si_code> for a B<SIGILL> signal:"
5101 msgstr "B<SIGILL> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5102
5103 #. type: TP
5104 #: build/C/man2/sigaction.2:494
5105 #, no-wrap
5106 msgid "B<ILL_ILLOPC>"
5107 msgstr "B<ILL_ILLOPC>"
5108
5109 #. type: Plain text
5110 #: build/C/man2/sigaction.2:497
5111 msgid "illegal opcode"
5112 msgstr "不正な命令コード (opcode)"
5113
5114 #. type: TP
5115 #: build/C/man2/sigaction.2:497
5116 #, no-wrap
5117 msgid "B<ILL_ILLOPN>"
5118 msgstr "B<ILL_ILLOPN>"
5119
5120 #. type: Plain text
5121 #: build/C/man2/sigaction.2:500
5122 msgid "illegal operand"
5123 msgstr "不正なオペランド"
5124
5125 #. type: TP
5126 #: build/C/man2/sigaction.2:500
5127 #, no-wrap
5128 msgid "B<ILL_ILLADR>"
5129 msgstr "B<ILL_ILLADR>"
5130
5131 #. type: Plain text
5132 #: build/C/man2/sigaction.2:503
5133 msgid "illegal addressing mode"
5134 msgstr "不正なアドレッシングモード"
5135
5136 #. type: TP
5137 #: build/C/man2/sigaction.2:503
5138 #, no-wrap
5139 msgid "B<ILL_ILLTRP>"
5140 msgstr "B<ILL_ILLTRP>"
5141
5142 #. type: Plain text
5143 #: build/C/man2/sigaction.2:506
5144 msgid "illegal trap"
5145 msgstr "不正なトラップ"
5146
5147 #. type: TP
5148 #: build/C/man2/sigaction.2:506
5149 #, no-wrap
5150 msgid "B<ILL_PRVOPC>"
5151 msgstr "B<ILL_PRVOPC>"
5152
5153 #. type: Plain text
5154 #: build/C/man2/sigaction.2:509
5155 msgid "privileged opcode"
5156 msgstr "特権が必要な命令コード (opcode)"
5157
5158 #. type: TP
5159 #: build/C/man2/sigaction.2:509
5160 #, no-wrap
5161 msgid "B<ILL_PRVREG>"
5162 msgstr "B<ILL_PRVREG>"
5163
5164 #. type: Plain text
5165 #: build/C/man2/sigaction.2:512
5166 msgid "privileged register"
5167 msgstr "特権が必要なレジスタ"
5168
5169 #. type: TP
5170 #: build/C/man2/sigaction.2:512
5171 #, no-wrap
5172 msgid "B<ILL_COPROC>"
5173 msgstr "B<ILL_COPROC>"
5174
5175 #. type: Plain text
5176 #: build/C/man2/sigaction.2:515
5177 msgid "coprocessor error"
5178 msgstr "コプロセッサのエラー"
5179
5180 #. type: TP
5181 #: build/C/man2/sigaction.2:515
5182 #, no-wrap
5183 msgid "B<ILL_BADSTK>"
5184 msgstr "B<ILL_BADSTK>"
5185
5186 #. type: Plain text
5187 #: build/C/man2/sigaction.2:518
5188 msgid "internal stack error"
5189 msgstr "内部スタックエラー"
5190
5191 #. type: Plain text
5192 #: build/C/man2/sigaction.2:525
5193 msgid ""
5194 "The following values can be placed in I<si_code> for a B<SIGFPE> signal:"
5195 msgstr "B<SIGFPE> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5196
5197 #. type: TP
5198 #: build/C/man2/sigaction.2:526
5199 #, no-wrap
5200 msgid "B<FPE_INTDIV>"
5201 msgstr "B<FPE_INTDIV>"
5202
5203 #. type: Plain text
5204 #: build/C/man2/sigaction.2:529
5205 msgid "integer divide by zero"
5206 msgstr "整数の 0 による除算"
5207
5208 #. type: TP
5209 #: build/C/man2/sigaction.2:529
5210 #, no-wrap
5211 msgid "B<FPE_INTOVF>"
5212 msgstr "B<FPE_INTOVF>"
5213
5214 #. type: Plain text
5215 #: build/C/man2/sigaction.2:532
5216 msgid "integer overflow"
5217 msgstr "整数のオーバーフロー"
5218
5219 #. type: TP
5220 #: build/C/man2/sigaction.2:532
5221 #, no-wrap
5222 msgid "B<FPE_FLTDIV>"
5223 msgstr "B<FPE_FLTDIV>"
5224
5225 #. type: Plain text
5226 #: build/C/man2/sigaction.2:535
5227 msgid "floating-point divide by zero"
5228 msgstr "浮動小数点の 0 による除算"
5229
5230 #. type: TP
5231 #: build/C/man2/sigaction.2:535
5232 #, no-wrap
5233 msgid "B<FPE_FLTOVF>"
5234 msgstr "B<FPE_FLTOVF>"
5235
5236 #. type: Plain text
5237 #: build/C/man2/sigaction.2:538
5238 msgid "floating-point overflow"
5239 msgstr "浮動小数点のオーバーフロー"
5240
5241 #. type: TP
5242 #: build/C/man2/sigaction.2:538
5243 #, no-wrap
5244 msgid "B<FPE_FLTUND>"
5245 msgstr "B<FPE_FLTUND>"
5246
5247 #. type: Plain text
5248 #: build/C/man2/sigaction.2:541
5249 msgid "floating-point underflow"
5250 msgstr "浮動小数点のアンダーフロー"
5251
5252 #. type: TP
5253 #: build/C/man2/sigaction.2:541
5254 #, no-wrap
5255 msgid "B<FPE_FLTRES>"
5256 msgstr "B<FPE_FLTRES>"
5257
5258 #. type: Plain text
5259 #: build/C/man2/sigaction.2:544
5260 msgid "floating-point inexact result"
5261 msgstr "浮動小数点の不正確な演算結果 (inexact result)"
5262
5263 #. type: TP
5264 #: build/C/man2/sigaction.2:544
5265 #, no-wrap
5266 msgid "B<FPE_FLTINV>"
5267 msgstr "B<FPE_FLTINV>"
5268
5269 #. type: Plain text
5270 #: build/C/man2/sigaction.2:547
5271 msgid "floating-point invalid operation"
5272 msgstr "浮動小数点の不正な操作"
5273
5274 #. type: TP
5275 #: build/C/man2/sigaction.2:547
5276 #, no-wrap
5277 msgid "B<FPE_FLTSUB>"
5278 msgstr "B<FPE_FLTSUB>"
5279
5280 #. type: Plain text
5281 #: build/C/man2/sigaction.2:550
5282 msgid "subscript out of range"
5283 msgstr "範囲外の添字 (subscript)"
5284
5285 #. type: Plain text
5286 #: build/C/man2/sigaction.2:557
5287 msgid ""
5288 "The following values can be placed in I<si_code> for a B<SIGSEGV> signal:"
5289 msgstr "B<SIGSEGV> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5290
5291 #. type: TP
5292 #: build/C/man2/sigaction.2:558
5293 #, no-wrap
5294 msgid "B<SEGV_MAPERR>"
5295 msgstr "B<SEGV_MAPERR>"
5296
5297 #. type: Plain text
5298 #: build/C/man2/sigaction.2:561
5299 msgid "address not mapped to object"
5300 msgstr "オブジェクトにマッピングされていないアドレス"
5301
5302 #. type: TP
5303 #: build/C/man2/sigaction.2:561
5304 #, no-wrap
5305 msgid "B<SEGV_ACCERR>"
5306 msgstr "B<SEGV_ACCERR>"
5307
5308 #. type: Plain text
5309 #: build/C/man2/sigaction.2:564
5310 msgid "invalid permissions for mapped object"
5311 msgstr "マッピングされたオブジェクトに対するアクセス許可がない"
5312
5313 #. type: Plain text
5314 #: build/C/man2/sigaction.2:571
5315 msgid ""
5316 "The following values can be placed in I<si_code> for a B<SIGBUS> signal:"
5317 msgstr "B<SIGBUS> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5318
5319 #. type: TP
5320 #: build/C/man2/sigaction.2:572
5321 #, no-wrap
5322 msgid "B<BUS_ADRALN>"
5323 msgstr "B<BUS_ADRALN>"
5324
5325 #. type: Plain text
5326 #: build/C/man2/sigaction.2:575
5327 msgid "invalid address alignment"
5328 msgstr "不正なアドレス・アライメント (alignment)"
5329
5330 #. type: TP
5331 #: build/C/man2/sigaction.2:575
5332 #, no-wrap
5333 msgid "B<BUS_ADRERR>"
5334 msgstr "B<BUS_ADRERR>"
5335
5336 #. type: Plain text
5337 #: build/C/man2/sigaction.2:578
5338 msgid "nonexistent physical address"
5339 msgstr "存在しない物理アドレス"
5340
5341 #. type: TP
5342 #: build/C/man2/sigaction.2:578
5343 #, no-wrap
5344 msgid "B<BUS_OBJERR>"
5345 msgstr "B<BUS_OBJERR>"
5346
5347 #. type: Plain text
5348 #: build/C/man2/sigaction.2:581
5349 msgid "object-specific hardware error"
5350 msgstr "オブジェクト固有のハードウェアエラー"
5351
5352 #. type: TP
5353 #: build/C/man2/sigaction.2:581
5354 #, no-wrap
5355 msgid "B<BUS_MCEERR_AR> (since Linux 2.6.32)"
5356 msgstr "B<BUS_MCEERR_AR> (Linux 2.6.32 以降)"
5357
5358 #. type: Plain text
5359 #: build/C/man2/sigaction.2:584
5360 msgid "Hardware memory error consumed on a machine check; action required."
5361 msgstr ""
5362 "マシンチェックで使用中のハードウェアメモリのエラーが検出された。対応が必須。"
5363
5364 #. type: TP
5365 #: build/C/man2/sigaction.2:584
5366 #, no-wrap
5367 msgid "B<BUS_MCEERR_AO> (since Linux 2.6.32)"
5368 msgstr "B<BUS_MCEERR_AO> (Linux 2.6.32  以降)"
5369
5370 #. type: Plain text
5371 #: build/C/man2/sigaction.2:587
5372 msgid ""
5373 "Hardware memory error detected in process but not consumed; action optional."
5374 msgstr ""
5375 "実行中にハードウェアメモリエラーが検出されたが、使用中のメモリではない。対応"
5376 "は必須ではない。"
5377
5378 #. type: Plain text
5379 #: build/C/man2/sigaction.2:594
5380 msgid ""
5381 "The following values can be placed in I<si_code> for a B<SIGTRAP> signal:"
5382 msgstr "B<SIGTRAP> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5383
5384 #. type: TP
5385 #: build/C/man2/sigaction.2:595
5386 #, no-wrap
5387 msgid "B<TRAP_BRKPT>"
5388 msgstr "B<TRAP_BRKPT>"
5389
5390 #. type: Plain text
5391 #: build/C/man2/sigaction.2:598
5392 msgid "process breakpoint"
5393 msgstr "プロセスのブレークポイント"
5394
5395 #. type: TP
5396 #: build/C/man2/sigaction.2:598
5397 #, no-wrap
5398 msgid "B<TRAP_TRACE>"
5399 msgstr "B<TRAP_TRACE>"
5400
5401 #. type: Plain text
5402 #: build/C/man2/sigaction.2:601
5403 msgid "process trace trap"
5404 msgstr "プロセスのトレース・トラップ"
5405
5406 #. type: TP
5407 #: build/C/man2/sigaction.2:601
5408 #, no-wrap
5409 msgid "B<TRAP_BRANCH> (since Linux 2.4)"
5410 msgstr "B<TRAP_BRANCH> (Linux 2.4 以降)"
5411
5412 #. type: Plain text
5413 #: build/C/man2/sigaction.2:604
5414 msgid "process taken branch trap"
5415 msgstr "プロセスのブランチ・トラップ"
5416
5417 #. type: TP
5418 #: build/C/man2/sigaction.2:604
5419 #, no-wrap
5420 msgid "B<TRAP_HWBKPT> (since Linux 2.4)"
5421 msgstr "B<TRAP_HWBKPT> (Linux 2.4 以降)"
5422
5423 #. type: Plain text
5424 #: build/C/man2/sigaction.2:607
5425 msgid "hardware breakpoint/watchpoint"
5426 msgstr "ハードウェア・ブレークポイント/ウォッチポイント"
5427
5428 #. type: Plain text
5429 #: build/C/man2/sigaction.2:614
5430 msgid ""
5431 "The following values can be placed in I<si_code> for a B<SIGCHLD> signal:"
5432 msgstr "B<SIGCHLD> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5433
5434 #. type: TP
5435 #: build/C/man2/sigaction.2:615
5436 #, no-wrap
5437 msgid "B<CLD_EXITED>"
5438 msgstr "B<CLD_EXITED>"
5439
5440 #. type: Plain text
5441 #: build/C/man2/sigaction.2:618
5442 msgid "child has exited"
5443 msgstr "子プロセスが終了した (exited)"
5444
5445 #. type: TP
5446 #: build/C/man2/sigaction.2:618
5447 #, no-wrap
5448 msgid "B<CLD_KILLED>"
5449 msgstr "B<CLD_KILLED>"
5450
5451 #. type: Plain text
5452 #: build/C/man2/sigaction.2:621
5453 msgid "child was killed"
5454 msgstr "子プロセスが kill された"
5455
5456 #. type: TP
5457 #: build/C/man2/sigaction.2:621
5458 #, no-wrap
5459 msgid "B<CLD_DUMPED>"
5460 msgstr "B<CLD_DUMPED>"
5461
5462 #. type: Plain text
5463 #: build/C/man2/sigaction.2:624
5464 msgid "child terminated abnormally"
5465 msgstr "子プロセスが異常終了した"
5466
5467 #. type: TP
5468 #: build/C/man2/sigaction.2:624
5469 #, no-wrap
5470 msgid "B<CLD_TRAPPED>"
5471 msgstr "B<CLD_TRAPPED>"
5472
5473 #. type: Plain text
5474 #: build/C/man2/sigaction.2:627
5475 msgid "traced child has trapped"
5476 msgstr "トレース対象の子プロセスがトラップを上げた"
5477
5478 #. type: TP
5479 #: build/C/man2/sigaction.2:627
5480 #, no-wrap
5481 msgid "B<CLD_STOPPED>"
5482 msgstr "B<CLD_STOPPED>"
5483
5484 #. type: Plain text
5485 #: build/C/man2/sigaction.2:630
5486 msgid "child has stopped"
5487 msgstr "子プロセスが停止 (stop) した"
5488
5489 #. type: TP
5490 #: build/C/man2/sigaction.2:630
5491 #, no-wrap
5492 msgid "B<CLD_CONTINUED>"
5493 msgstr "B<CLD_CONTINUED>"
5494
5495 #. type: Plain text
5496 #: build/C/man2/sigaction.2:633
5497 msgid "stopped child has continued (since Linux 2.6.9)"
5498 msgstr "停止していた子プロセスが再開した (Linux 2.6.9 以降)"
5499
5500 #. type: Plain text
5501 #: build/C/man2/sigaction.2:640
5502 msgid ""
5503 "The following values can be placed in I<si_code> for a B<SIGIO>/B<SIGPOLL> "
5504 "signal:"
5505 msgstr ""
5506 "B<SIGIO>/B<SIGPOLL> シグナルの場合、 I<si_code> には以下の値が入る可能性があ"
5507 "る:"
5508
5509 #. type: TP
5510 #: build/C/man2/sigaction.2:641
5511 #, no-wrap
5512 msgid "B<POLL_IN>"
5513 msgstr "B<POLL_IN>"
5514
5515 #. type: Plain text
5516 #: build/C/man2/sigaction.2:644
5517 msgid "data input available"
5518 msgstr "入力データが利用可能"
5519
5520 #. type: TP
5521 #: build/C/man2/sigaction.2:644
5522 #, no-wrap
5523 msgid "B<POLL_OUT>"
5524 msgstr "B<POLL_OUT>"
5525
5526 #. type: Plain text
5527 #: build/C/man2/sigaction.2:647
5528 msgid "output buffers available"
5529 msgstr "出力バッファが利用可能"
5530
5531 #. type: TP
5532 #: build/C/man2/sigaction.2:647
5533 #, no-wrap
5534 msgid "B<POLL_MSG>"
5535 msgstr "B<POLL_MSG>"
5536
5537 #. type: Plain text
5538 #: build/C/man2/sigaction.2:650
5539 msgid "input message available"
5540 msgstr "入力メッセージが利用可能"
5541
5542 #. type: TP
5543 #: build/C/man2/sigaction.2:650
5544 #, no-wrap
5545 msgid "B<POLL_ERR>"
5546 msgstr "B<POLL_ERR>"
5547
5548 #. type: Plain text
5549 #: build/C/man2/sigaction.2:653
5550 msgid "I/O error"
5551 msgstr "I/O エラー"
5552
5553 #. type: TP
5554 #: build/C/man2/sigaction.2:653
5555 #, no-wrap
5556 msgid "B<POLL_PRI>"
5557 msgstr "B<POLL_PRI>"
5558
5559 #. type: Plain text
5560 #: build/C/man2/sigaction.2:656
5561 msgid "high priority input available"
5562 msgstr "高優先の入力が利用可能"
5563
5564 #. type: TP
5565 #: build/C/man2/sigaction.2:656
5566 #, no-wrap
5567 msgid "B<POLL_HUP>"
5568 msgstr "B<POLL_HUP>"
5569
5570 #. type: Plain text
5571 #: build/C/man2/sigaction.2:659
5572 msgid "device disconnected"
5573 msgstr "デバイスが接続されていない"
5574
5575 #. type: Plain text
5576 #: build/C/man2/sigaction.2:665
5577 msgid ""
5578 "B<sigaction>()  returns 0 on success; on error, -1 is returned, and I<errno> "
5579 "is set to indicate the error."
5580 msgstr ""
5581 "B<sigaction>() 関数は成功すると 0 を返す。 エラーの場合、-1 を返し、 "
5582 "I<errno> にエラーを示す値をセットする。"
5583
5584 #. type: Plain text
5585 #: build/C/man2/sigaction.2:670
5586 msgid ""
5587 "I<act> or I<oldact> points to memory which is not a valid part of the "
5588 "process address space."
5589 msgstr ""
5590 "I<act> か I<oldact> が指しているメモリが正しいプロセスのアドレス空間にない。"
5591
5592 #. type: Plain text
5593 #: build/C/man2/sigaction.2:677
5594 msgid ""
5595 "An invalid signal was specified.  This will also be generated if an attempt "
5596 "is made to change the action for B<SIGKILL> or B<SIGSTOP>, which cannot be "
5597 "caught or ignored."
5598 msgstr ""
5599 "無効なシグナルが指定された。補足 (catch) したり無視したりできない シグナルで"
5600 "ある B<SIGKILL> や B<SIGSTOP> に対する動作を変更しようとした場合にも発生す"
5601 "る。"
5602
5603 #.  SVr4 does not document the EINTR condition.
5604 #. type: Plain text
5605 #: build/C/man2/sigaction.2:680
5606 msgid "POSIX.1-2001, SVr4."
5607 msgstr "POSIX.1-2001, SVr4."
5608
5609 #. type: Plain text
5610 #: build/C/man2/sigaction.2:688 build/C/man7/signal.7:105
5611 msgid ""
5612 "A child created via B<fork>(2)  inherits a copy of its parent's signal "
5613 "dispositions.  During an B<execve>(2), the dispositions of handled signals "
5614 "are reset to the default; the dispositions of ignored signals are left "
5615 "unchanged."
5616 msgstr "B<fork>(2) 経由で作成された子プロセスは、親プロセスのシグナルの処理方法の コピーを継承する。 B<execve>(2) の前後で、ハンドラが設定されているシグナルの処理方法はデフォルトにリセットされ、 無視が設定されているシグナルの処理方法は変更されずそのままとなる。"
5617
5618 #. type: Plain text
5619 #: build/C/man2/sigaction.2:706 build/C/man2/signal.2:134
5620 msgid ""
5621 "According to POSIX, the behavior of a process is undefined after it ignores "
5622 "a B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> signal that was not generated by "
5623 "B<kill>(2)  or B<raise>(3).  Integer division by zero has undefined result.  "
5624 "On some architectures it will generate a B<SIGFPE> signal.  (Also dividing "
5625 "the most negative integer by -1 may generate B<SIGFPE>.)  Ignoring this "
5626 "signal might lead to an endless loop."
5627 msgstr ""
5628 "POSIX では、 B<kill>(2)  や B<raise>(3)  で生成できないシグナル B<SIGFPE>, "
5629 "B<SIGILL>, B<SIGSEGV> を無視 (ignore) した場合、その後の動作は未定義である。 "
5630 "ゼロによる整数割り算の結果は未定義となる。 アーキテクチャーによっては、このと"
5631 "き B<SIGFPE> シグナルが生成される。 (同様に負の最大整数を -1 で割ると "
5632 "B<SIGFPE> が生成されるかもしれない)  このシグナルを無視すると無限ループに陥る"
5633 "かもしれない。"
5634
5635 #. type: Plain text
5636 #: build/C/man2/sigaction.2:723
5637 msgid ""
5638 "POSIX.1-1990 disallowed setting the action for B<SIGCHLD> to B<SIG_IGN>.  "
5639 "POSIX.1-2001 allows this possibility, so that ignoring B<SIGCHLD> can be "
5640 "used to prevent the creation of zombies (see B<wait>(2)).  Nevertheless, the "
5641 "historical BSD and System V behaviors for ignoring B<SIGCHLD> differ, so "
5642 "that the only completely portable method of ensuring that terminated "
5643 "children do not become zombies is to catch the B<SIGCHLD> signal and perform "
5644 "a B<wait>(2)  or similar."
5645 msgstr ""
5646 "POSIX.1-1990 では B<SIGCHLD> に B<SIG_IGN> を設定することを認めていない。 "
5647 "POSIX.1-2001 では認められており、 B<SIGCHLD> を無視することでゾンビプロセスの"
5648 "生成を防止することができる (B<wait>(2)  を参照)。 さらに、BSD と SystemV で"
5649 "は B<SIGCHLD> を無視した際の動作が異なっている。 そのため、完全に移植性がある"
5650 "方法で、終了した子プロセスがゾンビにならないこと を保証するには、 B<SIGCHLD> "
5651 "シグナルを補足し、 B<wait>(2)  などを実行するしかない。"
5652
5653 #. type: Plain text
5654 #: build/C/man2/sigaction.2:736
5655 msgid ""
5656 "POSIX.1-1990 specified only B<SA_NOCLDSTOP>.  POSIX.1-2001 added "
5657 "B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>, and B<SA_SIGINFO>.  Use of "
5658 "these latter values in I<sa_flags> may be less portable in applications "
5659 "intended for older UNIX implementations."
5660 msgstr "POSIX.1-1990 の仕様では B<SA_NOCLDSTOP> のみが定義されている。 POSIX.1-2001 では B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>, B<SA_SIGINFO> が追加された。 UNIX の古い実装で動かすアプリケーションで、 他の I<sa_flags> フラグを使用すると移植性が下がる。"
5661
5662 #. type: Plain text
5663 #: build/C/man2/sigaction.2:740
5664 msgid ""
5665 "The B<SA_RESETHAND> flag is compatible with the SVr4 flag of the same name."
5666 msgstr "B<SA_RESETHAND> フラグは SVr4 の同じ名前のフラグと互換性がある。"
5667
5668 #. type: Plain text
5669 #: build/C/man2/sigaction.2:750
5670 msgid ""
5671 "The B<SA_NODEFER> flag is compatible with the SVr4 flag of the same name "
5672 "under kernels 1.3.9 and newer.  On older kernels the Linux implementation "
5673 "allowed the receipt of any signal, not just the one we are installing "
5674 "(effectively overriding any I<sa_mask> settings)."
5675 msgstr ""
5676 "B<SA_NODEFER> フラグは 1.3.9 以降のカーネルでは同じ名前の SVr4 のフラグと互換"
5677 "性がある。 ぞれ以前の Linux カーネルの実装では、このフラグを設定しているシグ"
5678 "ナル だけでなく、どのシグナルでも受けることを許していた (実際には I<sa_mask> "
5679 "の設定により無効にできる)。"
5680
5681 #. type: Plain text
5682 #: build/C/man2/sigaction.2:756
5683 msgid ""
5684 "B<sigaction>()  can be called with a NULL second argument to query the "
5685 "current signal handler.  It can also be used to check whether a given signal "
5686 "is valid for the current machine by calling it with NULL second and third "
5687 "arguments."
5688 msgstr ""
5689 "B<sigaction>()  の二番目の引き数に NULL を指定して呼び出すと、現在のシグナル"
5690 "ハンドラを確認する ことができる。また、二番目と三番目の引き数を NULL にて呼び"
5691 "出すことで、 指定されたシグナルが現在のマシンで使えるかどうかチェックできる。"
5692
5693 #. type: Plain text
5694 #: build/C/man2/sigaction.2:762
5695 msgid ""
5696 "It is not possible to block B<SIGKILL> or B<SIGSTOP> (by specifying them in "
5697 "I<sa_mask>).  Attempts to do so are silently ignored."
5698 msgstr ""
5699 "B<SIGKILL> や B<SIGSTOP> を (I<sa_mask> に指定して) 禁止することはできない。 "
5700 "禁止しようとしても黙って無視される。"
5701
5702 #. type: Plain text
5703 #: build/C/man2/sigaction.2:766 build/C/man2/sigpending.2:70
5704 #: build/C/man2/sigprocmask.2:144 build/C/man2/sigsuspend.2:108
5705 msgid "See B<sigsetops>(3)  for details on manipulating signal sets."
5706 msgstr "シグナル集合の操作に関する詳細は B<sigsetops>(3)  を参照のこと。"
5707
5708 #. type: Plain text
5709 #: build/C/man2/sigaction.2:771
5710 msgid ""
5711 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
5712 "safely called inside from inside a signal handler."
5713 msgstr ""
5714 "シグナルハンドラ内から安全に呼び出すことができる、 async-signal-safe "
5715 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
5716 "照。"
5717
5718 #. type: SS
5719 #: build/C/man2/sigaction.2:771
5720 #, no-wrap
5721 msgid "Undocumented"
5722 msgstr "非公式"
5723
5724 #. type: Plain text
5725 #: build/C/man2/sigaction.2:781
5726 msgid ""
5727 "Before the introduction of B<SA_SIGINFO> it was also possible to get some "
5728 "additional information, namely by using a I<sa_handler> with second argument "
5729 "of type I<struct sigcontext>.  See the relevant Linux kernel sources for "
5730 "details.  This use is obsolete now."
5731 msgstr ""
5732 "B<SA_SIGINFO> が導入される前は、 I<struct sigcontext> 型の二番目の引き数と一"
5733 "緒に I<sa_handler> を使用することで、 いくつかの追加の情報を入手することがで"
5734 "きた。 詳細については Linux カーネルソースの関連部分を見てほしい。 現在はこの"
5735 "使用法は廃止されている。"
5736
5737 #. type: Plain text
5738 #: build/C/man2/sigaction.2:790
5739 msgid ""
5740 "In kernels up to and including 2.6.13, specifying B<SA_NODEFER> in "
5741 "I<sa_flags> prevents not only the delivered signal from being masked during "
5742 "execution of the handler, but also the signals specified in I<sa_mask>.  "
5743 "This bug was fixed in kernel 2.6.14."
5744 msgstr ""
5745 "2.6.13 以前のカーネルでは、 I<sa_flags> に B<SA_NODEFER> を指定した場合、 ハ"
5746 "ンドラが実行中に配送されたシグナル自身がマスクされなくなるだけでなく、 "
5747 "I<sa_mask> に指定されたシグナルもマスクされなくなる。 このバグは、カーネル "
5748 "2.6.14 で修正された。"
5749
5750 #. type: Plain text
5751 #: build/C/man2/sigaction.2:793
5752 msgid "See B<mprotect>(2)."
5753 msgstr "B<mprotect>(2)  参照。"
5754
5755 #. type: Plain text
5756 #: build/C/man2/sigaction.2:813
5757 msgid ""
5758 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<restart_syscall>(2), "
5759 "B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
5760 "B<sigprocmask>(2), B<sigsuspend>(2), B<wait>(2), B<raise>(3), B<siginterrupt>"
5761 "(3), B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), B<core>(5), B<signal>(7)"
5762 msgstr ""
5763 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<restart_syscall>(2), "
5764 "B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
5765 "B<sigprocmask>(2), B<sigsuspend>(2), B<wait>(2), B<raise>(3), B<siginterrupt>"
5766 "(3), B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), B<core>(5), B<signal>(7)"
5767
5768 #. type: TH
5769 #: build/C/man2/sigaltstack.2:27
5770 #, no-wrap
5771 msgid "SIGALTSTACK"
5772 msgstr "SIGALTSTACK"
5773
5774 #. type: TH
5775 #: build/C/man2/sigaltstack.2:27
5776 #, no-wrap
5777 msgid "2010-09-26"
5778 msgstr "2010-09-26"
5779
5780 #. type: Plain text
5781 #: build/C/man2/sigaltstack.2:30
5782 msgid "sigaltstack - set and/or get signal stack context"
5783 msgstr "sigaltstack - シグナルスタックのコンテキストを設定・取得する"
5784
5785 #. type: Plain text
5786 #: build/C/man2/sigaltstack.2:34
5787 msgid "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
5788 msgstr "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
5789
5790 #. type: Plain text
5791 #: build/C/man2/sigaltstack.2:41
5792 msgid "B<sigaltstack>():"
5793 msgstr "B<sigaltstack>():"
5794
5795 #. type: Plain text
5796 #: build/C/man2/sigaltstack.2:48 build/C/man3/siginterrupt.3:53
5797 #: build/C/man2/wait.2:80
5798 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
5799 msgstr "|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
5800
5801 #. type: Plain text
5802 #: build/C/man2/sigaltstack.2:60
5803 msgid ""
5804 "B<sigaltstack>()  allows a process to define a new alternate signal stack "
5805 "and/or retrieve the state of an existing alternate signal stack.  An "
5806 "alternate signal stack is used during the execution of a signal handler if "
5807 "the establishment of that handler (see B<sigaction>(2))  requested it."
5808 msgstr ""
5809 "B<sigaltstack>()  を使うと、 プロセスは新しい代替シグナルスタックを定義した"
5810 "り、 既存の代替シグナルスタックの状態を取得できる。 シグナルハンドラが代替シ"
5811 "グナルスタックを要求するように設定されていると (B<sigaction>(2)  参照)、ハン"
5812 "ドラの実行中はそのシグナルスタックが使われる。"
5813
5814 #. type: Plain text
5815 #: build/C/man2/sigaltstack.2:63
5816 msgid ""
5817 "The normal sequence of events for using an alternate signal stack is the "
5818 "following:"
5819 msgstr "代替シグナルスタックを使う際の一般的な手順は、以下の通りである:"
5820
5821 #. type: IP
5822 #: build/C/man2/sigaltstack.2:63 build/C/man7/signal.7:387
5823 #, no-wrap
5824 msgid "1."
5825 msgstr "1."
5826
5827 #. type: Plain text
5828 #: build/C/man2/sigaltstack.2:67
5829 msgid "Allocate an area of memory to be used for the alternate signal stack."
5830 msgstr "代替シグナルスタックで使うメモリ領域を確保する。"
5831
5832 #. type: IP
5833 #: build/C/man2/sigaltstack.2:67 build/C/man7/signal.7:391
5834 #, no-wrap
5835 msgid "2."
5836 msgstr "2."
5837
5838 #. type: Plain text
5839 #: build/C/man2/sigaltstack.2:73
5840 msgid ""
5841 "Use B<sigaltstack>()  to inform the system of the existence and location of "
5842 "the alternate signal stack."
5843 msgstr ""
5844 "B<sigaltstack>()  を使って、 代替シグナルスタックの存在と場所をシステムに知ら"
5845 "せる。"
5846
5847 #. type: IP
5848 #: build/C/man2/sigaltstack.2:73 build/C/man7/signal.7:411
5849 #, no-wrap
5850 msgid "3."
5851 msgstr "3."
5852
5853 #. type: Plain text
5854 #: build/C/man2/sigaltstack.2:80
5855 msgid ""
5856 "When establishing a signal handler using B<sigaction>(2), inform the system "
5857 "that the signal handler should be executed on the alternate signal stack by "
5858 "specifying the B<SA_ONSTACK> flag."
5859 msgstr ""
5860 "B<sigaction>(2)  を使ってシグナルハンドラを確立する際、 B<SA_ONSTACK> フラグ"
5861 "を指定することにより、 そのシグナルハンドラを代替シグナルスタック上で実行する"
5862 "ことを システムに知らせる。"
5863
5864 #. type: Plain text
5865 #: build/C/man2/sigaltstack.2:88
5866 msgid ""
5867 "The I<ss> argument is used to specify a new alternate signal stack, while "
5868 "the I<oss> argument is used to retrieve information about the currently "
5869 "established signal stack.  If we are interested in performing just one of "
5870 "these tasks, then the other argument can be specified as NULL.  Each of "
5871 "these arguments is a structure of the following type:"
5872 msgstr ""
5873 "I<ss> 引き数は、新しいシグナルスタックを指定するために使う。 また I<oss> 引き"
5874 "数は、現在確立されている シグナルスタックの情報を取得するために使う。 この操"
5875 "作のうち 1 つだけを実行させるには、 使用しない引き数を NULL に指定すればよ"
5876 "い。 引き数となる構造体は、以下のような型である:"
5877
5878 #. type: Plain text
5879 #: build/C/man2/sigaltstack.2:96
5880 #, no-wrap
5881 msgid ""
5882 "typedef struct {\n"
5883 "    void  *ss_sp;     /* Base address of stack */\n"
5884 "    int    ss_flags;  /* Flags */\n"
5885 "    size_t ss_size;   /* Number of bytes in stack */\n"
5886 "} stack_t;\n"
5887 msgstr ""
5888 "typedef struct {\n"
5889 "    void  *ss_sp;     /* スタックのベースアドレス */\n"
5890 "    int    ss_flags;  /* フラグ */\n"
5891 "    size_t ss_size;   /* スタックのバイト数 */\n"
5892 "} stack_t;\n"
5893
5894 #. type: Plain text
5895 #: build/C/man2/sigaltstack.2:107
5896 msgid ""
5897 "To establish a new alternate signal stack, I<ss.ss_flags> is set to zero, "
5898 "and I<ss.ss_sp> and I<ss.ss_size> specify the starting address and size of "
5899 "the stack.  The constant B<SIGSTKSZ> is defined to be large enough to cover "
5900 "the usual size requirements for an alternate signal stack, and the constant "
5901 "B<MINSIGSTKSZ> defines the minimum size required to execute a signal handler."
5902 msgstr ""
5903 "新規の代替シグナルスタックを確立するには、 I<ss.ss_flags> を 0 に設定し、 "
5904 "I<ss.ss_sp> と I<ss.ss_size> に スタックの開始アドレスとスタックサイズを指定"
5905 "する。 定数 B<SIGSTKSZ> は、代替シグナルスタックが通常必要する サイズよりも充"
5906 "分大きく定義されている。 また定数 B<MINSIGSTKSZ> は、 シグナルハンドラの実行"
5907 "に必要な最小サイズに定義されている。"
5908
5909 #. type: Plain text
5910 #: build/C/man2/sigaltstack.2:111
5911 msgid ""
5912 "When a signal handler is invoked on the alternate stack, the kernel "
5913 "automatically aligns the address given in I<ss.ss_sp> to a suitable address "
5914 "boundary for the underlying hardware architecture."
5915 msgstr ""
5916 "代替スタックでシグナルハンドラが起動された場合には、 カーネルにより自動的に、"
5917 "I<ss.ss_sp> で指定されたアドレスは 動作しているハードウェアアーキテクチャに適"
5918 "したアドレス境界に 調整される。"
5919
5920 #. type: Plain text
5921 #: build/C/man2/sigaltstack.2:116
5922 msgid ""
5923 "To disable an existing stack, specify I<ss.ss_flags> as B<SS_DISABLE>.  In "
5924 "this case, the remaining fields in I<ss> are ignored."
5925 msgstr ""
5926 "既存のスタックを無効にするには、 I<ss.ss_flags> を B<SS_DISABLE> に指定す"
5927 "る。 この場合、I<ss> の他のフィールドは無視される。"
5928
5929 #. type: Plain text
5930 #: build/C/man2/sigaltstack.2:124
5931 msgid ""
5932 "If I<oss> is not NULL, then it is used to return information about the "
5933 "alternate signal stack which was in effect prior to the call to "
5934 "B<sigaltstack>().  The I<oss.ss_sp> and I<oss.ss_size> fields return the "
5935 "starting address and size of that stack.  The I<oss.ss_flags> may return "
5936 "either of the following values:"
5937 msgstr ""
5938 "I<oss> が NULL 以外の場合、 I<oss> に代替シグナルスタックの情報が返される。 "
5939 "これは (実質的に)  B<sigaltstack>()  の呼び出しより先に行われる。 I<oss."
5940 "ss_sp> と I<oss.ss_size> フィールドに スタックの開始アドレスとスタックサイズ"
5941 "が返される。 I<oss.ss_flags> には以下のどちらかの値が返される:"
5942
5943 #. type: TP
5944 #: build/C/man2/sigaltstack.2:124
5945 #, no-wrap
5946 msgid "B<SS_ONSTACK>"
5947 msgstr "B<SS_ONSTACK>"
5948
5949 #. type: Plain text
5950 #: build/C/man2/sigaltstack.2:130
5951 msgid ""
5952 "The process is currently executing on the alternate signal stack.  (Note "
5953 "that it is not possible to change the alternate signal stack if the process "
5954 "is currently executing on it.)"
5955 msgstr ""
5956 "プロセスが代替シグナルスタック上で実行されている (プロセスが既にそのシグナル"
5957 "スタック上で実行されている場合は、 それと同じシグナルスタックには変更できない"
5958 "点に注意すること)。"
5959
5960 #. type: TP
5961 #: build/C/man2/sigaltstack.2:130
5962 #, no-wrap
5963 msgid "B<SS_DISABLE>"
5964 msgstr "B<SS_DISABLE>"
5965
5966 #. type: Plain text
5967 #: build/C/man2/sigaltstack.2:133
5968 msgid "The alternate signal stack is currently disabled."
5969 msgstr "代替シグナルスタックが現在無効になっている。"
5970
5971 #. type: Plain text
5972 #: build/C/man2/sigaltstack.2:137
5973 msgid ""
5974 "B<sigaltstack>()  returns 0 on success, or -1 on failure with I<errno> set "
5975 "to indicate the error."
5976 msgstr ""
5977 "B<sigaltstack>()  は成功した場合 0 を返す。 失敗した場合は -1 を返して、 エ"
5978 "ラーを示す値に I<errno> を設定する。"
5979
5980 #. type: Plain text
5981 #: build/C/man2/sigaltstack.2:142
5982 msgid ""
5983 "Either I<ss> or I<oss> is not NULL and points to an area outside of the "
5984 "process's address space."
5985 msgstr ""
5986 "I<ss> または I<oss> のどちらが、NULL 以外で、 かつプロセスのアドレス空間の外"
5987 "を指している。"
5988
5989 #. type: Plain text
5990 #: build/C/man2/sigaltstack.2:147
5991 msgid ""
5992 "I<ss> is not NULL and the I<ss_flags> field contains a nonzero value other "
5993 "than B<SS_DISABLE>."
5994 msgstr ""
5995 "I<ss> が NULL 以外で、I<ss_flags> フィールドが B<SS_DISABLE> 以外の 0 でない"
5996 "値になっている。"
5997
5998 #. type: Plain text
5999 #: build/C/man2/sigaltstack.2:151
6000 msgid ""
6001 "The specified size of the new alternate signal stack (I<ss.ss_size>) was "
6002 "less than B<MINSTKSZ>."
6003 msgstr ""
6004 "新しい代替シグナルスタック (I<ss.ss_size>) に指定したサイズが B<MINSTKSZ> よ"
6005 "り小さい。"
6006
6007 #. type: Plain text
6008 #: build/C/man2/sigaltstack.2:156
6009 msgid ""
6010 "An attempt was made to change the alternate signal stack while it was active "
6011 "(i.e., the process was already executing on the current alternate signal "
6012 "stack)."
6013 msgstr ""
6014 "代替シグナルスタックが有効であるときに変更を行おうとした (つまり、プロセスが"
6015 "既に現在の代替シグナルスタック上で実行されていた)。"
6016
6017 #. type: Plain text
6018 #: build/C/man2/sigaltstack.2:158
6019 msgid "SUSv2, SVr4, POSIX.1-2001."
6020 msgstr "SUSv2, SVr4, POSIX.1-2001."
6021
6022 #. type: Plain text
6023 #: build/C/man2/sigaltstack.2:166
6024 msgid ""
6025 "The most common usage of an alternate signal stack is to handle the "
6026 "B<SIGSEGV> signal that is generated if the space available for the normal "
6027 "process stack is exhausted: in this case, a signal handler for B<SIGSEGV> "
6028 "cannot be invoked on the process stack; if we wish to handle it, we must use "
6029 "an alternate signal stack."
6030 msgstr ""
6031 "代替シグナルスタックを使用する最もよくある場面は、 B<SIGSEGV> シグナルを扱う"
6032 "ときである。 B<SIGSEGV> はプロセスの通常のスタックが利用できる空間が使い果た"
6033 "された際に 生成されるシグナルである。この場合には、 B<SIGSEGV> 用のシグナルハ"
6034 "ンドラをプロセスのスタック上では起動することができない。 そのため、このシグナ"
6035 "ルを扱おうとする場合には、 代替シグナルスタックを使用しなければならない。"
6036
6037 #. type: Plain text
6038 #: build/C/man2/sigaltstack.2:176
6039 msgid ""
6040 "Establishing an alternate signal stack is useful if a process expects that "
6041 "it may exhaust its standard stack.  This may occur, for example, because the "
6042 "stack grows so large that it encounters the upwardly growing heap, or it "
6043 "reaches a limit established by a call to B<setrlimit(RLIMIT_STACK, &rlim)>.  "
6044 "If the standard stack is exhausted, the kernel sends the process a "
6045 "B<SIGSEGV> signal.  In these circumstances the only way to catch this signal "
6046 "is on an alternate signal stack."
6047 msgstr ""
6048 "プロセスが標準のシグナルスタックを使い果たすことが予想される場合は、 代替シグ"
6049 "ナルスタックを確立すると便利である。 例えば、スタックが最上位アドレスから 下"
6050 "位アドレス方向に非常にたくさん積まれてしまうことで、 最下位アドレスから上位ア"
6051 "ドレス方向に積まれるヒープとぶつかってしまう場合や、 B<setrlimit"
6052 "(RLIMIT_STACK, &rlim)> の呼び出しで確立された 制限に達してしまった場合に、こ"
6053 "の様な事が起こる。 標準のスタックを使い果たしてしまうと、 カーネルはプロセス"
6054 "に B<SIGSEGV> シグナルを送る。 このような状況では、代替シグナルスタック上でし"
6055 "かシグナルをキャッチできない。"
6056
6057 #. type: Plain text
6058 #: build/C/man2/sigaltstack.2:182
6059 msgid ""
6060 "On most hardware architectures supported by Linux, stacks grow downward.  "
6061 "B<sigaltstack>()  automatically takes account of the direction of stack "
6062 "growth."
6063 msgstr ""
6064 "Linux がサポートする多くのハードウェアアーキテクチャでは、 スタックは下位アド"
6065 "レス方向に積まれる。 B<sigaltstack>()  はスタックが積まれる方向を自動的に決定"
6066 "する。"
6067
6068 #. type: Plain text
6069 #: build/C/man2/sigaltstack.2:191
6070 msgid ""
6071 "Functions called from a signal handler executing on an alternate signal "
6072 "stack will also use the alternate signal stack.  (This also applies to any "
6073 "handlers invoked for other signals while the process is executing on the "
6074 "alternate signal stack.)  Unlike the standard stack, the system does not "
6075 "automatically extend the alternate signal stack.  Exceeding the allocated "
6076 "size of the alternate signal stack will lead to unpredictable results."
6077 msgstr ""
6078 "代替シグナルスタック上で実行されている シグナルハンドラから呼ばれる関数も、代"
6079 "替シグナルハンドラを使う (プロセスが代替シグナルスタック上で実行されている場"
6080 "合、 他のシグナルで呼び出されるハンドラもこの代替シグナルハンドラを使う)。 標"
6081 "準のスタックとは異なり、 システムは代替シグナルスタックを自動的に拡張しな"
6082 "い。 代替シグナルスタック用に確保したサイズを越えた場合、 結果は予想できな"
6083 "い。"
6084
6085 #. type: Plain text
6086 #: build/C/man2/sigaltstack.2:199
6087 msgid ""
6088 "A successful call to B<execve>(2)  removes any existing alternate signal "
6089 "stack.  A child process created via B<fork>(2)  inherits a copy of its "
6090 "parent's alternate signal stack settings."
6091 msgstr ""
6092 "B<execve>(2)  の呼び出しが成功すると、 既存の全ての代替シグナルスタックが削除"
6093 "される。 B<fork>(2)  経由で作成された子プロセスは、親プロセスの代替シグナルス"
6094 "タックの 設定のコピーを継承する。"
6095
6096 #. type: Plain text
6097 #: build/C/man2/sigaltstack.2:208
6098 msgid ""
6099 "B<sigaltstack>()  supersedes the older B<sigstack>()  call.  For backward "
6100 "compatibility, glibc also provides B<sigstack>().  All new applications "
6101 "should be written using B<sigaltstack>()."
6102 msgstr ""
6103 "B<sigaltstack>()  は以前の B<sigstack>()  を置き換えるものである。 過去プログ"
6104 "ラムとの互換性のため、glibc では B<sigstack>()  も提供している。 新しいのアプ"
6105 "リケーションは全て B<sigaltstack>()  を使って書くべきである。"
6106
6107 #. type: SS
6108 #: build/C/man2/sigaltstack.2:208 build/C/man3/sigpause.3:66
6109 #, no-wrap
6110 msgid "History"
6111 msgstr "歴史"
6112
6113 #. type: Plain text
6114 #: build/C/man2/sigaltstack.2:215
6115 msgid ""
6116 "4.2BSD had a B<sigstack>()  system call.  It used a slightly different "
6117 "struct, and had the major disadvantage that the caller had to know the "
6118 "direction of stack growth."
6119 msgstr ""
6120 "4.2BSD には B<sigstack>()  システムコールがあった。 この関数は少し異なった構"
6121 "造体を使っており、 呼び出した側がスタックの積まれる方向を知っていなければなら"
6122 "ないという 大きな欠点があった。"
6123
6124 #. type: Plain text
6125 #: build/C/man2/sigaltstack.2:218
6126 msgid "The following code segment demonstrates the use of B<sigaltstack>():"
6127 msgstr "以下のコードで B<sigaltstack>()  の使用法の一部を示す:"
6128
6129 #. type: Plain text
6130 #: build/C/man2/sigaltstack.2:222
6131 #, no-wrap
6132 msgid "stack_t ss;\n"
6133 msgstr "stack_t ss;\n"
6134
6135 #. type: Plain text
6136 #: build/C/man2/sigaltstack.2:230
6137 #, no-wrap
6138 msgid ""
6139 "ss.ss_sp = malloc(SIGSTKSZ);\n"
6140 "if (ss.ss_sp == NULL)\n"
6141 "    /* Handle error */;\n"
6142 "ss.ss_size = SIGSTKSZ;\n"
6143 "ss.ss_flags = 0;\n"
6144 "if (sigaltstack(&ss, NULL) == -1)\n"
6145 "    /* Handle error */;\n"
6146 msgstr ""
6147 "ss.ss_sp = malloc(SIGSTKSZ);\n"
6148 "if (ss.ss_sp == NULL)\n"
6149 "    /* ハンドルエラー */;\n"
6150 "ss.ss_size = SIGSTKSZ;\n"
6151 "ss.ss_flags = 0;\n"
6152 "if (sigaltstack(&ss, NULL) == -1)\n"
6153 "    /* ハンドルエラー */;\n"
6154
6155 #. type: Plain text
6156 #: build/C/man2/sigaltstack.2:239
6157 msgid ""
6158 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
6159 "B<sigsetjmp>(3), B<signal>(7)"
6160 msgstr ""
6161 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
6162 "B<sigsetjmp>(3), B<signal>(7)"
6163
6164 #. type: TH
6165 #: build/C/man7/sigevent.7:26
6166 #, no-wrap
6167 msgid "SIGEVENT"
6168 msgstr "SIGEVENT"
6169
6170 #. type: TH
6171 #: build/C/man7/sigevent.7:26
6172 #, no-wrap
6173 msgid "2011-09-09"
6174 msgstr "2011-09-09"
6175
6176 #. type: Plain text
6177 #: build/C/man7/sigevent.7:29
6178 msgid "sigevent - structure for notification from asynchronous routines"
6179 msgstr "sigevent - 非同期ルーチンからの通知用の構造体"
6180
6181 #. type: Plain text
6182 #: build/C/man7/sigevent.7:36
6183 #, no-wrap
6184 msgid ""
6185 "union sigval {          /* Data passed with notification */\n"
6186 "    int     sival_int;         /* Integer value */\n"
6187 "    void   *sival_ptr;         /* Pointer value */\n"
6188 "};\n"
6189 msgstr ""
6190 "union sigval {          /* Data passed with notification */\n"
6191 "    int     sival_int;         /* Integer value */\n"
6192 "    void   *sival_ptr;         /* Pointer value */\n"
6193 "};\n"
6194
6195 #. type: Plain text
6196 #: build/C/man7/sigevent.7:51
6197 #, no-wrap
6198 msgid ""
6199 "struct sigevent {\n"
6200 "    int          sigev_notify; /* Notification method */\n"
6201 "    int          sigev_signo;  /* Notification signal */\n"
6202 "    union sigval sigev_value;  /* Data passed with\n"
6203 "                                  notification */\n"
6204 "    void       (*sigev_notify_function) (union sigval);\n"
6205 "                     /* Function used for thread\n"
6206 "                        notification (SIGEV_THREAD) */\n"
6207 "    void        *sigev_notify_attributes;\n"
6208 "                     /* Attributes for notification thread\n"
6209 "                        (SIGEV_THREAD) */\n"
6210 "    pid_t        sigev_notify_thread_id;\n"
6211 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
6212 "};\n"
6213 msgstr ""
6214 "struct sigevent {\n"
6215 "    int          sigev_notify; /* Notification method */\n"
6216 "    int          sigev_signo;  /* Notification signal */\n"
6217 "    union sigval sigev_value;  /* Data passed with\n"
6218 "                                  notification */\n"
6219 "    void       (*sigev_notify_function) (union sigval);\n"
6220 "                     /* Function used for thread\n"
6221 "                        notification (SIGEV_THREAD) */\n"
6222 "    void        *sigev_notify_attributes;\n"
6223 "                     /* Attributes for notification thread\n"
6224 "                        (SIGEV_THREAD) */\n"
6225 "    pid_t        sigev_notify_thread_id;\n"
6226 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
6227 "};\n"
6228
6229 #. type: Plain text
6230 #: build/C/man7/sigevent.7:60
6231 msgid ""
6232 "The I<sigevent> structure is used by various APIs to describe the way a "
6233 "process is to be notified about an event (e.g., completion of an "
6234 "asynchronous request, expiration of a timer, or the arrival of a message)."
6235 msgstr ""
6236 "I<sigevent> 構造体は、イベントに関する情報をプロセスに通知するために様々な "
6237 "API で使用される (イベントの例としては、 非同期処理要求の完了、 タイマーの満"
6238 "了、 メッセージの到着など)。"
6239
6240 #. type: Plain text
6241 #: build/C/man7/sigevent.7:68
6242 msgid ""
6243 "The definition shown in the SYNOPSIS is approximate: some of the fields in "
6244 "the I<sigevent> structure may be defined as part of a union.  Programs "
6245 "should employ only those fields relevant to the value specified in "
6246 "I<sigev_notify>."
6247 msgstr ""
6248 "「書式」に記載されている定義はおおよそのものである。 I<sigevent> 構造体のいく"
6249 "つかのフィールドは、 共用体の一部として定義されているものもある。 プログラム"
6250 "は、 I<sigev_notify> で指定された値に応じたフィールドだけを利用すべきである。"
6251
6252 #. type: Plain text
6253 #: build/C/man7/sigevent.7:73
6254 msgid ""
6255 "The I<sigev_notify> field specifies how notification is to be performed.  "
6256 "This field can have one of the following values:"
6257 msgstr ""
6258 "I<sigev_notify> フィールドは、通知をどのように処理すべきかを指定する。 この"
6259 "フィールドは、以下のいずれかの値である。"
6260
6261 #. type: TP
6262 #: build/C/man7/sigevent.7:73 build/C/man2/timer_create.2:107
6263 #, no-wrap
6264 msgid "B<SIGEV_NONE>"
6265 msgstr "B<SIGEV_NONE>"
6266
6267 #. type: Plain text
6268 #: build/C/man7/sigevent.7:76
6269 msgid "A \"null\" notification: don't do anything when the event occurs."
6270 msgstr "「空 (null)」の通知。 イベントが発生時には何もしないこと。"
6271
6272 #. type: TP
6273 #: build/C/man7/sigevent.7:76 build/C/man2/timer_create.2:112
6274 #, no-wrap
6275 msgid "B<SIGEV_SIGNAL>"
6276 msgstr "B<SIGEV_SIGNAL>"
6277
6278 #. type: Plain text
6279 #: build/C/man7/sigevent.7:80
6280 msgid "Notify the process by sending the signal specified in I<sigev_signo>."
6281 msgstr ""
6282 "I<sigev_signo> で指定されたシグナルを送信することで、プロセスへの通知を行う。"
6283
6284 #. type: Plain text
6285 #: build/C/man7/sigevent.7:87
6286 msgid ""
6287 "If the signal is caught with a signal handler that was registered using the "
6288 "B<sigaction>(2)  B<SA_SIGINFO> flag, then the following fields are set in "
6289 "the I<siginfo_t> structure that is passed as the second argument of the "
6290 "handler:"
6291 msgstr ""
6292 "B<sigaction>(2) の B<SA_SIGINFO> フラグを使った登録されたシグナルハンドラによ"
6293 "りシグナルが捕捉されると、 シグナルハンドラの 2 番目の引き数として渡された "
6294 "I<siginfo_t> 構造体の以下のフィールドが設定される。"
6295
6296 #. type: Plain text
6297 #: build/C/man7/sigevent.7:92
6298 msgid ""
6299 "This field is set to a value that depends on the API delivering the "
6300 "notification."
6301 msgstr "このフィールドには通知を配送した API に応じた決まる値が設定される。"
6302
6303 #. type: TP
6304 #: build/C/man7/sigevent.7:92 build/C/man2/wait.2:302
6305 #, no-wrap
6306 msgid "I<si_signo>"
6307 msgstr "I<si_signo>"
6308
6309 #. type: Plain text
6310 #: build/C/man7/sigevent.7:96
6311 msgid ""
6312 "This field is set to the signal number (i.e., the same value as in "
6313 "I<sigev_signo>)."
6314 msgstr ""
6315 "このフィールドにはシグナル番号 (すなわち I<sigev_signo> と同じ値) が設定され"
6316 "る。"
6317
6318 #. type: Plain text
6319 #: build/C/man7/sigevent.7:100
6320 msgid "This field is set to the value specified in I<sigev_value>."
6321 msgstr "このフィールドには I<sigev_value> で指定された値が設定される。"
6322
6323 #. type: Plain text
6324 #: build/C/man7/sigevent.7:105
6325 msgid ""
6326 "Depending on the API, other fields may also be set in the I<siginfo_t> "
6327 "structure."
6328 msgstr ""
6329 "API によっては I<siginfo_t> 構造体の他のフィールドが設定される場合もある。"
6330
6331 #. type: Plain text
6332 #: build/C/man7/sigevent.7:108
6333 msgid ""
6334 "The same information is also available if the signal is accepted using "
6335 "B<sigwaitinfo>(2)."
6336 msgstr ""
6337 "シグナルを受け取ったときには B<sigwaitinfo>(2) でも同じ情報が得られる。"
6338
6339 #. type: TP
6340 #: build/C/man7/sigevent.7:108 build/C/man2/timer_create.2:130
6341 #, no-wrap
6342 msgid "B<SIGEV_THREAD>"
6343 msgstr "B<SIGEV_THREAD>"
6344
6345 #. type: Plain text
6346 #: build/C/man7/sigevent.7:125
6347 msgid ""
6348 "Notify the process by invoking I<sigev_notify_function> \"as if\" it were "
6349 "the start function of a new thread.  (Among the implementation possibilities "
6350 "here are that each timer notification could result in the creation of a new "
6351 "thread, or that a single thread is created to receive all notifications.)  "
6352 "The function is invoked with I<sigev_value> as its sole argument.  If "
6353 "I<sigev_notify_attributes> is not NULL, it should point to a "
6354 "I<pthread_attr_t> structure that defines attributes for the new thread (see "
6355 "B<pthread_attr_init>(3))."
6356 msgstr ""
6357 "「あたかも」新しいスレッドセーフの開始関数であるかのように "
6358 "I<sigev_notify_function> を起動することで、 プロセスへの通知を行う (実装の可"
6359 "能性としては、 タイマー通知の度に新しいスレッドセーフが作成される場合も、 一"
6360 "つのスレッドを作成してすべての通知を受信する場合もある)。 この関数は "
6361 "I<sigev_value> を唯一の引き数として起動される。 I<sigev_notify_attributes> "
6362 "は、 NULL 以外の場合は、 新しいスレッドセーフの属性を定義する "
6363 "I<pthread_attr_t> 構造体を指していなければならない (B<pthread_attr_init>(3) "
6364 "参照)。"
6365
6366 #. type: TP
6367 #: build/C/man7/sigevent.7:125 build/C/man2/timer_create.2:138
6368 #, no-wrap
6369 msgid "B<SIGEV_THREAD_ID> (Linux-specific)"
6370 msgstr "B<SIGEV_THREAD_ID> (Linux 固有)"
6371
6372 #.  | SIGEV_SIGNAL vs not?
6373 #. type: Plain text
6374 #: build/C/man7/sigevent.7:130
6375 msgid "Currently used only by POSIX timers; see B<timer_create>(2)."
6376 msgstr "現在のところ POSIX でのみ使用されている。 B<timer_create>(2) 参照。"
6377
6378 #. type: Plain text
6379 #: build/C/man7/sigevent.7:132 build/C/man2/sigpending.2:66
6380 #: build/C/man2/sigprocmask.2:114 build/C/man3/sigqueue.3:121
6381 #: build/C/man3/sigsetops.3:146 build/C/man2/sigsuspend.2:86
6382 #: build/C/man3/sigwait.3:87 build/C/man2/sigwaitinfo.2:135
6383 #: build/C/man2/timer_create.2:195 build/C/man2/timer_delete.2:69
6384 #: build/C/man2/timer_getoverrun.2:99 build/C/man2/timer_settime.2:209
6385 msgid "POSIX.1-2001."
6386 msgstr "POSIX.1-2001."
6387
6388 #. type: Plain text
6389 #: build/C/man7/sigevent.7:142
6390 msgid ""
6391 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
6392 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
6393 "B<pthreads>(7)"
6394 msgstr ""
6395 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
6396 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
6397 "B<pthreads>(7)"
6398
6399 #. type: TH
6400 #: build/C/man3/siginterrupt.3:31
6401 #, no-wrap
6402 msgid "SIGINTERRUPT"
6403 msgstr "SIGINTERRUPT"
6404
6405 #. type: TH
6406 #: build/C/man3/siginterrupt.3:31 build/C/man2/signal.2:36
6407 #: build/C/man2/sigprocmask.2:29 build/C/man2/sigsuspend.2:29
6408 #, no-wrap
6409 msgid "2013-04-19"
6410 msgstr "2013-04-19"
6411
6412 #. type: Plain text
6413 #: build/C/man3/siginterrupt.3:34
6414 msgid "siginterrupt - allow signals to interrupt system calls"
6415 msgstr "siginterrupt - シグナルでシステム・コールに割り込むことを許す"
6416
6417 #. type: Plain text
6418 #: build/C/man3/siginterrupt.3:39
6419 #, no-wrap
6420 msgid "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
6421 msgstr "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
6422
6423 #. type: Plain text
6424 #: build/C/man3/siginterrupt.3:47
6425 msgid "B<siginterrupt>():"
6426 msgstr "B<siginterrupt>():"
6427
6428 #. type: Plain text
6429 #: build/C/man3/siginterrupt.3:64
6430 msgid ""
6431 "The B<siginterrupt>()  function changes the restart behavior when a system "
6432 "call is interrupted by the signal I<sig>.  If the I<flag> argument is false "
6433 "(0), then system calls will be restarted if interrupted by the specified "
6434 "signal I<sig>.  This is the default behavior in Linux."
6435 msgstr ""
6436 "B<siginterrupt>()  関数は、システム・コールがシグナル I<sig> によって割り込ま"
6437 "れた後、再実行の際の振る舞いを変更する。 I<flag> 引き数が偽 (0) ならば、シス"
6438 "テム・コールが指定した シグナル I<sig> によって割り込まれた後に、そのシステ"
6439 "ム・コールは 再実行される。これは Linux においてデフォルトの動作である。"
6440
6441 #. type: Plain text
6442 #: build/C/man3/siginterrupt.3:69
6443 msgid ""
6444 "If the I<flag> argument is true (1) and no data has been transferred, then a "
6445 "system call interrupted by the signal I<sig> will return -1 and I<errno> "
6446 "will be set to B<EINTR>."
6447 msgstr ""
6448 "I<flag> 引き数が真 (1) でデータの転送が全く行なわれていないならば、 シグナル "
6449 "I<sig> でシステム・コールは中断されて、-1 が返され、 I<errno> に B<EINTR> が"
6450 "設定される。"
6451
6452 #. type: Plain text
6453 #: build/C/man3/siginterrupt.3:73
6454 msgid ""
6455 "If the I<flag> argument is true (1) and data transfer has started, then the "
6456 "system call will be interrupted and will return the actual amount of data "
6457 "transferred."
6458 msgstr ""
6459 "I<flag> 引き数が真 (1) でデータの転送が開始されていれば、 システム・コールは"
6460 "中断され、それまでに実際に転送されたデータ の量が返される。"
6461
6462 #. type: Plain text
6463 #: build/C/man3/siginterrupt.3:83
6464 msgid ""
6465 "The B<siginterrupt>()  function returns 0 on success.  It returns -1 if the "
6466 "signal number I<sig> is invalid, with I<errno> set to indicate the cause of "
6467 "the error."
6468 msgstr ""
6469 "B<siginterrupt>()  関数は成功した場合 0 を返す。 シグナル番号 I<sig> が不正な"
6470 "場合、 -1 を返し、 I<errno> にエラーの原因を示す値を設定する。"
6471
6472 #. type: Plain text
6473 #: build/C/man3/siginterrupt.3:87
6474 msgid "The specified signal number is invalid."
6475 msgstr "指定したシグナル番号が不正である。"
6476
6477 #. type: Plain text
6478 #: build/C/man3/siginterrupt.3:96
6479 msgid ""
6480 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 marks B<siginterrupt>()  as obsolete, "
6481 "recommending the use of B<sigaction>(2)  with the B<SA_RESTART> flag instead."
6482 msgstr ""
6483 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 は、 B<siginterrupt>()  を廃止予定として"
6484 "いる。 代わりに、 B<sigaction>(2)  に B<SA_RESTART> フラグを指定して使うこと"
6485 "を推奨している。"
6486
6487 #. type: Plain text
6488 #: build/C/man3/siginterrupt.3:98
6489 msgid "B<signal>(2)"
6490 msgstr "B<signal>(2)"
6491
6492 #. type: TH
6493 #: build/C/man2/signal.2:36 build/C/man7/signal.7:46
6494 #, no-wrap
6495 msgid "SIGNAL"
6496 msgstr "SIGNAL"
6497
6498 #. type: Plain text
6499 #: build/C/man2/signal.2:39
6500 msgid "signal - ANSI C signal handling"
6501 msgstr "signal - ANSI C シグナル操作"
6502
6503 #. type: Plain text
6504 #: build/C/man2/signal.2:45
6505 msgid "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
6506 msgstr ""
6507 "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<sighandler>B<);>"
6508
6509 #. type: Plain text
6510 #: build/C/man2/signal.2:54
6511 msgid ""
6512 "The behavior of B<signal>()  varies across UNIX versions, and has also "
6513 "varied historically across different versions of Linux.  B<Avoid its use>: "
6514 "use B<sigaction>(2)  instead.  See I<Portability> below."
6515 msgstr ""
6516 "B<signal>()  の動作は UNIX のバージョンにより異なる。 また、歴史的に見て "
6517 "Linux のバージョンによっても異なっている。 B<このシステムコールの使用は避け、"
6518 "> 代わりに B<sigaction>(2)  を使用すること。 下記の「移植性」を参照。"
6519
6520 #. type: Plain text
6521 #: build/C/man2/signal.2:64
6522 msgid ""
6523 "B<signal>()  sets the disposition of the signal I<signum> to I<handler>, "
6524 "which is either B<SIG_IGN>, B<SIG_DFL>, or the address of a programmer-"
6525 "defined function (a \"signal handler\")."
6526 msgstr ""
6527 "B<signal>()  はシグナル I<signum> の処理方法を I<handler> に設定する。 "
6528 "I<handler> には、 B<SIG_IGN>、 B<SIG_DFL>、 プログラマが定義した関数 (「シグ"
6529 "ナル・ハンドラ」) のアドレスの いずれかを指定する。"
6530
6531 #. type: Plain text
6532 #: build/C/man2/signal.2:68
6533 msgid ""
6534 "If the signal I<signum> is delivered to the process, then one of the "
6535 "following happens:"
6536 msgstr ""
6537 "シグナル I<signum> がプロセスに配送されると、以下のいずれかが発生する。"
6538
6539 #. type: Plain text
6540 #: build/C/man2/signal.2:73
6541 msgid "If the disposition is set to B<SIG_IGN>, then the signal is ignored."
6542 msgstr "処理方法が B<SIG_IGN> に設定されている場合、そのシグナルは無視される。"
6543
6544 #. type: Plain text
6545 #: build/C/man2/signal.2:80
6546 msgid ""
6547 "If the disposition is set to B<SIG_DFL>, then the default action associated "
6548 "with the signal (see B<signal>(7))  occurs."
6549 msgstr ""
6550 "処理方法が B<SIG_DFL> に設定されている場合、シグナルに関連づけられた デフォル"
6551 "トの動作が行われる (B<signal>(7)  参照)。"
6552
6553 #. type: Plain text
6554 #: build/C/man2/signal.2:91
6555 msgid ""
6556 "If the disposition is set to a function, then first either the disposition "
6557 "is reset to B<SIG_DFL>, or the signal is blocked (see I<Portability> below), "
6558 "and then I<handler> is called with argument I<signum>.  If invocation of the "
6559 "handler caused the signal to be blocked, then the signal is unblocked upon "
6560 "return from the handler."
6561 msgstr ""
6562 "処理方法として関数が設定されている場合、 まず最初に処理方法が B<SIG_DFL> にリ"
6563 "セットされるかそのシグナルのブロックが実行された後、 I<signum> を引き数とし"
6564 "て I<handler> が呼び出される。 ハンドラが起動される際にシグナルがブロックされ"
6565 "た場合、 ハンドラが返る際にそのシグナルのブロックが解除される。"
6566
6567 #. type: Plain text
6568 #: build/C/man2/signal.2:97
6569 msgid "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught or ignored."
6570 msgstr ""
6571 "シグナル B<SIGKILL> と B<SIGSTOP> は捕捉できず、無視することもできない。"
6572
6573 #. type: Plain text
6574 #: build/C/man2/signal.2:105
6575 msgid ""
6576 "B<signal>()  returns the previous value of the signal handler, or B<SIG_ERR> "
6577 "on error.  In the event of an error, I<errno> is set to indicate the cause."
6578 msgstr ""
6579 "B<signal>()  は、今までのシグナル・ハンドラの値を返す。 エラーの場合は "
6580 "B<SIG_ERR> を返し、 I<errno> にエラーの原因を示す値を設定する。"
6581
6582 #. type: Plain text
6583 #: build/C/man2/signal.2:110
6584 msgid "I<signum> is invalid."
6585 msgstr "I<signum> が不正である。"
6586
6587 #. type: Plain text
6588 #: build/C/man2/signal.2:116
6589 msgid "The effects of B<signal>()  in a multithreaded process are unspecified."
6590 msgstr ""
6591 "マルチスレッドプロセスにおける B<signal>()  の結果は、指定されていない。"
6592
6593 #. type: Plain text
6594 #: build/C/man2/signal.2:141
6595 msgid ""
6596 "See B<sigaction>(2)  for details on what happens when B<SIGCHLD> is set to "
6597 "B<SIG_IGN>."
6598 msgstr ""
6599 "B<SIGCHLD> の動作として B<SIG_IGN> を設定した場合の詳細な動作については、 "
6600 "B<sigaction>(2)  を参照すること。"
6601
6602 #. type: Plain text
6603 #: build/C/man2/signal.2:146
6604 msgid ""
6605 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
6606 "safely called from inside a signal handler."
6607 msgstr ""
6608 "シグナル・ハンドラ内から安全に呼び出すことができる、 async-signal-safe "
6609 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
6610 "照。"
6611
6612 #.  libc4 and libc5 define
6613 #.  .IR SignalHandler ;
6614 #. type: Plain text
6615 #: build/C/man2/signal.2:162
6616 msgid ""
6617 "The use of I<sighandler_t> is a GNU extension, exposed if B<_GNU_SOURCE> is "
6618 "defined; glibc also defines (the BSD-derived)  I<sig_t> if B<_BSD_SOURCE> is "
6619 "defined.  Without use of such a type, the declaration of B<signal>()  is the "
6620 "somewhat harder to read:"
6621 msgstr "I<sighandler_t> の使用は GNU 拡張であり、 B<_GNU_SOURCE> が定義された場合に公開される。glibc では B<_BSD_SOURCE> が定義された場合には (BSD 由来の) I<sig_t> も定義される。このような型を使用しないと、 B<signal>() の宣言は読みにくいものとなる。"
6622
6623 #. type: Plain text
6624 #: build/C/man2/signal.2:166
6625 #, no-wrap
6626 msgid "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
6627 msgstr "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
6628
6629 #. type: SS
6630 #: build/C/man2/signal.2:168
6631 #, no-wrap
6632 msgid "Portability"
6633 msgstr "移植性"
6634
6635 #. type: Plain text
6636 #: build/C/man2/signal.2:180
6637 msgid ""
6638 "The only portable use of B<signal>()  is to set a signal's disposition to "
6639 "B<SIG_DFL> or B<SIG_IGN>.  The semantics when using B<signal>()  to "
6640 "establish a signal handler vary across systems (and POSIX.1 explicitly "
6641 "permits this variation); B<do not use it for this purpose.>"
6642 msgstr ""
6643 "移植性のある B<signal>()  の使い方は、シグナルの処理方法を B<SIG_DFL> か "
6644 "B<SIG_IGN> に設定する方法だけである。 シグナル・ハンドラを設定するのに "
6645 "B<signal>()  を使ったときの動作はシステムにより異なる (POSIX.1 は明示的にこの"
6646 "違いを認めている)。 B<移植性が必要なときはこのシステムコールを使用しないこ"
6647 "と。>"
6648
6649 #. type: Plain text
6650 #: build/C/man2/signal.2:186
6651 msgid ""
6652 "POSIX.1 solved the portability mess by specifying B<sigaction>(2), which "
6653 "provides explicit control of the semantics when a signal handler is invoked; "
6654 "use that interface instead of B<signal>()."
6655 msgstr ""
6656 "POSIX.1 は、 B<sigaction>(2)  を規定することで移植性に関する混乱を解決した。 "
6657 "B<sigaction>(2)  はシグナル・ハンドラが起動される際の挙動を明示的に制御でき"
6658 "る。 B<signal>()  の代わりにこのインターフェイスを使うこと。"
6659
6660 #. type: Plain text
6661 #: build/C/man2/signal.2:196
6662 msgid ""
6663 "In the original UNIX systems, when a handler that was established using "
6664 "B<signal>()  was invoked by the delivery of a signal, the disposition of the "
6665 "signal would be reset to B<SIG_DFL>, and the system did not block delivery "
6666 "of further instances of the signal.  This is equivalent to calling "
6667 "B<sigaction>(2)  with the following flags:"
6668 msgstr ""
6669 "オリジナルの UNIX システムでは、 B<signal>()  を使って設定されたハンドラがシ"
6670 "グナルの配送により起動されると、 そのシグナルの処理方法は B<SIG_DFL> にリセッ"
6671 "トされ、システムは同じシグナルがさらに生成されても シグナルの配送をブロックし"
6672 "なかった。これは、以下のフラグで B<sigaction>(2) を呼び出すのと等価である。"
6673
6674 #. type: Plain text
6675 #: build/C/man2/signal.2:198
6676 #, no-wrap
6677 msgid "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
6678 msgstr "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
6679
6680 #. type: Plain text
6681 #: build/C/man2/signal.2:205
6682 msgid ""
6683 "System V also provides these semantics for B<signal>().  This was bad "
6684 "because the signal might be delivered again before the handler had a chance "
6685 "to reestablish itself.  Furthermore, rapid deliveries of the same signal "
6686 "could result in recursive invocations of the handler."
6687 msgstr ""
6688 "System V でも、 B<signal>()  に対してこれらの挙動を規定している。 こうした挙"
6689 "動はまずく、ハンドラがハンドラ自身を再設定する機会が 来るより前に、同じシグナ"
6690 "ルがまた配送される可能性がある。 さらに、同じシグナルが立て続けに配送される"
6691 "と、同じシグナルが ハンドラを繰り返し起動されることになる。"
6692
6693 #. type: Plain text
6694 #: build/C/man2/signal.2:220
6695 msgid ""
6696 "BSD improved on this situation, but unfortunately also changed the semantics "
6697 "of the existing B<signal>()  interface while doing so.  On BSD, when a "
6698 "signal handler is invoked, the signal disposition is not reset, and further "
6699 "instances of the signal are blocked from being delivered while the handler "
6700 "is executing.  Furthermore, certain blocking system calls are automatically "
6701 "restarted if interrupted by a signal handler (see B<signal>(7)).  The BSD "
6702 "semantics are equivalent to calling B<sigaction>(2)  with the following "
6703 "flags:"
6704 msgstr ""
6705 "BSD はこの状況が改善したが、残念なことに、その過程で既存の B<signal>() の挙動"
6706 "も変更された。 BSD では、シグナルハンドラが起動された際、 シグナルの処理方法"
6707 "はリセットされず、 ハンドラの実行中は、同じシグナルのさらなる生成は配送がブ"
6708 "ロックされる。 また、 シグナルハンドラが中断された場合、 停止中のシステムコー"
6709 "ルのいくつかは自動的に再スタートされる。 BSD の挙動は、 以下のフラグを指定し"
6710 "た B<sigaction>(2) の呼び出しと等価である。"
6711
6712 #. type: Plain text
6713 #: build/C/man2/signal.2:222
6714 #, no-wrap
6715 msgid "    sa.sa_flags = SA_RESTART;\n"
6716 msgstr "    sa.sa_flags = SA_RESTART;\n"
6717
6718 #. type: Plain text
6719 #: build/C/man2/signal.2:224
6720 msgid "The situation on Linux is as follows:"
6721 msgstr "Linux での状況は以下の通りである。"
6722
6723 #. type: Plain text
6724 #: build/C/man2/signal.2:228
6725 msgid "The kernel's B<signal>()  system call provides System V semantics."
6726 msgstr "カーネルの B<signal>()  システムコールは System V 方式を提供している。"
6727
6728 #. type: Plain text
6729 #: build/C/man2/signal.2:244
6730 msgid ""
6731 "By default, in glibc 2 and later, the B<signal>()  wrapper function does not "
6732 "invoke the kernel system call.  Instead, it calls B<sigaction>(2)  using "
6733 "flags that supply BSD semantics.  This default behavior is provided as long "
6734 "as the B<_BSD_SOURCE> feature test macro is defined.  By default, "
6735 "B<_BSD_SOURCE> is defined; it is also implicitly defined if one defines "
6736 "B<_GNU_SOURCE>, and can of course be explicitly defined."
6737 msgstr ""
6738 "デフォルトでは、glibc 2 以降では、 B<signal>()  ラッパー関数はカーネルのシス"
6739 "テムコールを起動しない。 代わりに、ラッパー関数は BSD 方式を示すフラグを使っ"
6740 "て B<sigaction>(2)  を呼び出す。 機能検査マクロ B<_BSD_SOURCE> を定義していれ"
6741 "ば、このデフォルトの動作となる。 デフォルトでは、 B<_BSD_SOURCE> が定義され"
6742 "る。 B<_BSD_SOURCE> は B<_GNU_SOURCE> が定義された場合には暗黙のうちに定義さ"
6743 "れ、 もちろん明示的に定義することもできる。"
6744
6745 #.  System V semantics are also provided if one uses the separate
6746 #.  .BR sysv_signal (3)
6747 #.  function.
6748 #. type: Plain text
6749 #: build/C/man2/signal.2:267
6750 msgid ""
6751 "On glibc 2 and later, if the B<_BSD_SOURCE> feature test macro is not "
6752 "defined, then B<signal>()  provides System V semantics.  (The default "
6753 "implicit definition of B<_BSD_SOURCE> is not provided if one invokes B<gcc>"
6754 "(1)  in one of its standard modes (I<-std=xxx> or I<-ansi>)  or defines "
6755 "various other feature test macros such as B<_POSIX_SOURCE>, "
6756 "B<_XOPEN_SOURCE>, or B<_SVID_SOURCE>; see B<feature_test_macros>(7).)"
6757 msgstr ""
6758 "glibc 2 以降では、機能検査マクロ B<_BSD_SOURCE> が定義されていなければ、 "
6759 "B<signal>()  は System V 方式となる。 (B<gcc>(1)  が標準指定モード (I<-"
6760 "std=xxx> or I<-ansi>)  で起動された場合、もしくは B<_POSIX_SOURCE>, "
6761 "B<_XOPEN_SOURCE>, B<_SVID_SOURCE> といった他の様々な機能検査マクロが定義され"
6762 "た場合、 デフォルトの B<_BSD_SOURCE> の暗黙の定義は行われない。 "
6763 "B<feature_test_macros>(7)  を参照のこと。)"
6764
6765 #. type: Plain text
6766 #: build/C/man2/signal.2:278
6767 msgid ""
6768 "The B<signal>()  function in Linux libc4 and libc5 provide System V "
6769 "semantics.  If one on a libc5 system includes I<E<lt>bsd/signal.hE<gt>> "
6770 "instead of I<E<lt>signal.hE<gt>>, then B<signal>()  provides BSD semantics."
6771 msgstr ""
6772 "Linux の libc4 と libc5 の B<signal>()  関数は System V 方式である。 libc5 シ"
6773 "ステムにおいて I<E<lt>signal.hE<gt>> のかわりに I<E<lt>bsd/signal.hE<gt>> を"
6774 "インクルードすると、 B<signal>()  は B<__bsd_signal>()  に再定義され、 "
6775 "B<signal>()  は BSD 方式となる。"
6776
6777 #. type: Plain text
6778 #: build/C/man2/signal.2:297
6779 msgid ""
6780 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaction>"
6781 "(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
6782 "B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), B<sigqueue>(3), "
6783 "B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), B<signal>(7)"
6784 msgstr ""
6785 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaction>"
6786 "(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
6787 "B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), B<sigqueue>(3), "
6788 "B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), B<signal>(7)"
6789
6790 #. type: Plain text
6791 #: build/C/man7/signal.7:49
6792 msgid "signal - overview of signals"
6793 msgstr "signal - シグナルの概要"
6794
6795 #. type: Plain text
6796 #: build/C/man7/signal.7:52
6797 msgid ""
6798 "Linux supports both POSIX reliable signals (hereinafter \"standard signals"
6799 "\") and POSIX real-time signals."
6800 msgstr ""
6801 "Linux は POSIX 信頼シグナル (reliable signal; 以後 \"標準シグナル\"と表記)  "
6802 "と POSIX リアルタイムシグナルの両方に対応している。"
6803
6804 #. type: SS
6805 #: build/C/man7/signal.7:52
6806 #, no-wrap
6807 msgid "Signal dispositions"
6808 msgstr "シグナル処理方法"
6809
6810 #. type: Plain text
6811 #: build/C/man7/signal.7:57
6812 msgid ""
6813 "Each signal has a current I<disposition>, which determines how the process "
6814 "behaves when it is delivered the signal."
6815 msgstr ""
6816 "シグナルはそれぞれ現在の「処理方法 (disposition)」を保持しており、 この処理方"
6817 "法によりシグナルが配送された際にプロセスが どのような振舞いをするかが決まる。"
6818
6819 #. type: Plain text
6820 #: build/C/man7/signal.7:60
6821 msgid ""
6822 "The entries in the \"Action\" column of the tables below specify the default "
6823 "disposition for each signal, as follows:"
6824 msgstr ""
6825 "後述の表の \"動作\" の欄のエントリは各シグナルのデフォルトの 処理方法を示して"
6826 "おり、以下のような意味を持つ。"
6827
6828 #. type: IP
6829 #: build/C/man7/signal.7:60
6830 #, no-wrap
6831 msgid "Term"
6832 msgstr "Term"
6833
6834 #. type: Plain text
6835 #: build/C/man7/signal.7:62
6836 msgid "Default action is to terminate the process."
6837 msgstr "デフォルトの動作はプロセス終了。"
6838
6839 #. type: IP
6840 #: build/C/man7/signal.7:62
6841 #, no-wrap
6842 msgid "Ign"
6843 msgstr "Ign"
6844
6845 #. type: Plain text
6846 #: build/C/man7/signal.7:64
6847 msgid "Default action is to ignore the signal."
6848 msgstr "デフォルトの動作はこのシグナルの無視。"
6849
6850 #. type: IP
6851 #: build/C/man7/signal.7:64
6852 #, no-wrap
6853 msgid "Core"
6854 msgstr "Core"
6855
6856 #. type: Plain text
6857 #: build/C/man7/signal.7:67
6858 msgid ""
6859 "Default action is to terminate the process and dump core (see B<core>(5))."
6860 msgstr "デフォルトの動作はプロセス終了とコアダンプ出力 (B<core>(5)  参照)。"
6861
6862 #. type: IP
6863 #: build/C/man7/signal.7:67
6864 #, no-wrap
6865 msgid "Stop"
6866 msgstr "Stop"
6867
6868 #. type: Plain text
6869 #: build/C/man7/signal.7:69
6870 msgid "Default action is to stop the process."
6871 msgstr "デフォルトの動作はプロセスの一時停止。"
6872
6873 #. type: IP
6874 #: build/C/man7/signal.7:69
6875 #, no-wrap
6876 msgid "Cont"
6877 msgstr "Cont"
6878
6879 #. type: Plain text
6880 #: build/C/man7/signal.7:71
6881 msgid "Default action is to continue the process if it is currently stopped."
6882 msgstr "デフォルトの動作は、プロセスが停止中の場合にその実行の再開。"
6883
6884 #. type: Plain text
6885 #: build/C/man7/signal.7:93
6886 msgid ""
6887 "A process can change the disposition of a signal using B<sigaction>(2)  or "
6888 "B<signal>(2).  (The latter is less portable when establishing a signal "
6889 "handler; see B<signal>(2)  for details.)  Using these system calls, a "
6890 "process can elect one of the following behaviors to occur on delivery of the "
6891 "signal: perform the default action; ignore the signal; or catch the signal "
6892 "with a I<signal handler>, a programmer-defined function that is "
6893 "automatically invoked when the signal is delivered.  (By default, the signal "
6894 "handler is invoked on the normal process stack.  It is possible to arrange "
6895 "that the signal handler uses an alternate stack; see B<sigaltstack>(2)  for "
6896 "a discussion of how to do this and when it might be useful.)"
6897 msgstr ""
6898 "プロセスは、 B<sigaction>(2)  や B<signal>(2)  を使って、シグナルの処理方法を"
6899 "変更することができる (B<signal>(2)  の方がシグナルハンドラを設定する際の移植"
6900 "性が低い; 詳細は B<signal>(2)  を参照)。 シグナルの配送時に起こる動作として "
6901 "プロセスが選択できるのは、次のいずれか一つである。 デフォルトの動作を実行す"
6902 "る、シグナルを無視する、 I<シグナルハンドラ (signal handler)> でシグナルを捕"
6903 "捉する。シグナルハンドラとは、シグナル配送時に 自動的に起動されるプログラマ定"
6904 "義の関数である。 (デフォルトでは、シグナルハンドラは通常のプロセスのスタック"
6905 "上で起動される。 シグナルハンドラが代替スタック (alternate stack) を使用する"
6906 "ように設定する こともできる。代替スタックを使用するように設定する方法と、どの"
6907 "ような際に 代替スタックが役に立つかについての議論については B<sigaltstack>"
6908 "(2)  を参照のこと。"
6909
6910 #. type: Plain text
6911 #: build/C/man7/signal.7:97
6912 msgid ""
6913 "The signal disposition is a per-process attribute: in a multithreaded "
6914 "application, the disposition of a particular signal is the same for all "
6915 "threads."
6916 msgstr ""
6917 "シグナルの処理方法はプロセス単位の属性である。 マルチスレッドのアプリケーショ"
6918 "ンでは、あるシグナルの処理方法は 全てのスレッドで同じである。"
6919
6920 #. type: SS
6921 #: build/C/man7/signal.7:105
6922 #, no-wrap
6923 msgid "Sending a signal"
6924 msgstr "シグナルの送信"
6925
6926 #. type: Plain text
6927 #: build/C/man7/signal.7:108
6928 msgid ""
6929 "The following system calls and library functions allow the caller to send a "
6930 "signal:"
6931 msgstr ""
6932 "以下のシステムコールとライブラリ関数を使って、 呼び出し者はシグナルを送信する"
6933 "ことができる。"
6934
6935 #. type: TP
6936 #: build/C/man7/signal.7:108
6937 #, no-wrap
6938 msgid "B<raise>(3)"
6939 msgstr "B<raise>(3)"
6940
6941 #. type: Plain text
6942 #: build/C/man7/signal.7:111
6943 msgid "Sends a signal to the calling thread."
6944 msgstr "呼び出したスレッドにシグナルを送る。"
6945
6946 #. type: Plain text
6947 #: build/C/man7/signal.7:116
6948 msgid ""
6949 "Sends a signal to a specified process, to all members of a specified process "
6950 "group, or to all processes on the system."
6951 msgstr ""
6952 "指定されたプロセスや、指定されたプロセスグループの全メンバー、 システムの全プ"
6953 "ロセスにシグナルを送る。"
6954
6955 #. type: TP
6956 #: build/C/man7/signal.7:116
6957 #, no-wrap
6958 msgid "B<killpg>(2)"
6959 msgstr "B<killpg>(2)"
6960
6961 #. type: Plain text
6962 #: build/C/man7/signal.7:119
6963 msgid "Sends a signal to all of the members of a specified process group."
6964 msgstr "指定されたプロセスグループの全メンバーにシグナルを送る。"
6965
6966 #. type: TP
6967 #: build/C/man7/signal.7:119
6968 #, no-wrap
6969 msgid "B<pthread_kill>(3)"
6970 msgstr "B<pthread_kill>(3)"
6971
6972 #. type: Plain text
6973 #: build/C/man7/signal.7:123
6974 msgid ""
6975 "Sends a signal to a specified POSIX thread in the same process as the caller."
6976 msgstr ""
6977 "呼び出し者と同じプロセス内の指定された POSIX スレッドにシグナルを送る。"
6978
6979 #. type: TP
6980 #: build/C/man7/signal.7:123
6981 #, no-wrap
6982 msgid "B<tgkill>(2)"
6983 msgstr "B<tgkill>(2)"
6984
6985 #. type: Plain text
6986 #: build/C/man7/signal.7:128
6987 msgid ""
6988 "Sends a signal to a specified thread within a specific process.  (This is "
6989 "the system call used to implement B<pthread_kill>(3).)"
6990 msgstr ""
6991 "指定されたプロセス内の指定されたスレッドにシグナルを送る (このシステムコール"
6992 "を使って B<pthread_kill>(3)  は実装されている)。"
6993
6994 #. type: Plain text
6995 #: build/C/man7/signal.7:131
6996 msgid "Sends a real-time signal with accompanying data to a specified process."
6997 msgstr "指定されたプロセスに付属データとともにリアルタイムシグナルを送る。"
6998
6999 #. type: SS
7000 #: build/C/man7/signal.7:131
7001 #, no-wrap
7002 msgid "Waiting for a signal to be caught"
7003 msgstr "シグナルが捕捉されるのを待つ"
7004
7005 #. type: Plain text
7006 #: build/C/man7/signal.7:135
7007 msgid ""
7008 "The following system calls suspend execution of the calling process or "
7009 "thread until a signal is caught (or an unhandled signal terminates the "
7010 "process):"
7011 msgstr ""
7012 "以下のシステムコールを使って、シグナルが捕捉されるまで 呼び出したプロセスやス"
7013 "レッドの実行を中断 (suspend) することができる (ハンドラが設定されていないシグ"
7014 "ナルによりそのプロセスが終了した 場合にも実行の停止は終了する)。"
7015
7016 #. type: TP
7017 #: build/C/man7/signal.7:135
7018 #, no-wrap
7019 msgid "B<pause>(2)"
7020 msgstr "B<pause>(2)"
7021
7022 #. type: Plain text
7023 #: build/C/man7/signal.7:138
7024 msgid "Suspends execution until any signal is caught."
7025 msgstr "何かシグナルが捕捉されるまで実行を停止する。"
7026
7027 #. type: TP
7028 #: build/C/man7/signal.7:138
7029 #, no-wrap
7030 msgid "B<sigsuspend>(2)"
7031 msgstr "B<sigsuspend>(2)"
7032
7033 #. type: Plain text
7034 #: build/C/man7/signal.7:142
7035 msgid ""
7036 "Temporarily changes the signal mask (see below) and suspends execution until "
7037 "one of the unmasked signals is caught."
7038 msgstr ""
7039 "一時的にシグナルマスク (下記参照) を変更し、 マスクされていないシグナルのいず"
7040 "れかが捕捉されるまで 実行を中断する。"
7041
7042 #. type: SS
7043 #: build/C/man7/signal.7:142
7044 #, no-wrap
7045 msgid "Synchronously accepting a signal"
7046 msgstr "シグナルの同期受信"
7047
7048 #. type: Plain text
7049 #: build/C/man7/signal.7:149
7050 msgid ""
7051 "Rather than asynchronously catching a signal via a signal handler, it is "
7052 "possible to synchronously accept the signal, that is, to block execution "
7053 "until the signal is delivered, at which point the kernel returns information "
7054 "about the signal to the caller.  There are two general ways to do this:"
7055 msgstr ""
7056 "シグナルハンドラ経由でシグナルを非同期 (asynchronously) で捕捉する以外にも、 "
7057 "シグナルを同期 (synchronously) して受け付けることもできる。 同期して受け付け"
7058 "るとは、シグナルが配送されるまで実行を停止 (block)  するということである。シ"
7059 "グナルを受け付けた際に、カーネルは そのシグナルに関する情報を呼び出し者に返"
7060 "す。 これを行う一般的な方法が二つある。"
7061
7062 #. type: Plain text
7063 #: build/C/man7/signal.7:157
7064 msgid ""
7065 "B<sigwaitinfo>(2), B<sigtimedwait>(2), and B<sigwait>(3)  suspend execution "
7066 "until one of the signals in a specified set is delivered.  Each of these "
7067 "calls returns information about the delivered signal."
7068 msgstr ""
7069 "B<sigwaitinfo>(2), B<sigtimedwait>(2), B<sigwait>(3)  は、指定されたシグナル"
7070 "集合のシグナルの一つが配送されるまで実行を中断する。 どのシステムコールや関数"
7071 "でも、配送されたシグナルに関する情報が返される。"
7072
7073 #. type: Plain text
7074 #: build/C/man7/signal.7:170
7075 msgid ""
7076 "B<signalfd>(2)  returns a file descriptor that can be used to read "
7077 "information about signals that are delivered to the caller.  Each B<read>"
7078 "(2)  from this file descriptor blocks until one of the signals in the set "
7079 "specified in the B<signalfd>(2)  call is delivered to the caller.  The "
7080 "buffer returned by B<read>(2)  contains a structure describing the signal."
7081 msgstr ""
7082 "B<signalfd>(2)  が返すファイルディスクリプタを使うと、呼び出し元に配送された "
7083 "シグナルに関する情報を読み出すことができる。 このファイルディスクリプタから"
7084 "の B<read>(2)  は、 B<signalfd>(2)  の呼び出し時に指定されたシグナル集合のシ"
7085 "グナルの一つが呼び出し元に 配送されるまで停止 (block) する。 B<read>(2)  が返"
7086 "すバッファにはシグナルに関する情報を格納した構造体が入っている。"
7087
7088 #. type: SS
7089 #: build/C/man7/signal.7:170
7090 #, no-wrap
7091 msgid "Signal mask and pending signals"
7092 msgstr "シグナルマスクと処理待ちシグナル"
7093
7094 #. type: Plain text
7095 #: build/C/man7/signal.7:177
7096 msgid ""
7097 "A signal may be I<blocked>, which means that it will not be delivered until "
7098 "it is later unblocked.  Between the time when it is generated and when it is "
7099 "delivered a signal is said to be I<pending>."
7100 msgstr ""
7101 "シグナルは I<ブロック (block)> されることがある。ブロックされると、そのシグナ"
7102 "ルは その後ブロックを解除されるまで配送されなくなる。 シグナルが生成されてか"
7103 "ら配送されるまでの間、そのシグナルは I<処理待ち (pending)> であると呼ばれる。"
7104
7105 #. type: Plain text
7106 #: build/C/man7/signal.7:186
7107 msgid ""
7108 "Each thread in a process has an independent I<signal mask>, which indicates "
7109 "the set of signals that the thread is currently blocking.  A thread can "
7110 "manipulate its signal mask using B<pthread_sigmask>(3).  In a traditional "
7111 "single-threaded application, B<sigprocmask>(2)  can be used to manipulate "
7112 "the signal mask."
7113 msgstr ""
7114 "プロセス内の各スレッドは、それぞれ独立な I<シグナルマスク (signal mask)> を持"
7115 "つ。シグナルマスクはそのスレッドが現在ブロックしている シグナル集合を示すもの"
7116 "である。 スレッドは、 B<pthread_sigmask>(3)  を使って自分のシグナルマスクを操"
7117 "作できる。 伝統的なシングルスレッドのアプリケーションでは、 B<sigprocmask>"
7118 "(2)  を使って、シグナルマスクを操作できる。"
7119
7120 #. type: Plain text
7121 #: build/C/man7/signal.7:192 build/C/man2/sigprocmask.2:126
7122 msgid ""
7123 "A child created via B<fork>(2)  inherits a copy of its parent's signal mask; "
7124 "the signal mask is preserved across B<execve>(2)."
7125 msgstr ""
7126 "B<fork>(2)  経由で作成された子プロセスは親プロセスのシグナルマスクのコピーを"
7127 "継承する。 B<execve>(2)  の前後でシグナルマスクは保持される。"
7128
7129 #. type: Plain text
7130 #: build/C/man7/signal.7:209
7131 msgid ""
7132 "A signal may be generated (and thus pending)  for a process as a whole (e."
7133 "g., when sent using B<kill>(2))  or for a specific thread (e.g., certain "
7134 "signals, such as B<SIGSEGV> and B<SIGFPE>, generated as a consequence of "
7135 "executing a specific machine-language instruction are thread directed, as "
7136 "are signals targeted at a specific thread using B<pthread_kill>(3)).  A "
7137 "process-directed signal may be delivered to any one of the threads that does "
7138 "not currently have the signal blocked.  If more than one of the threads has "
7139 "the signal unblocked, then the kernel chooses an arbitrary thread to which "
7140 "to deliver the signal."
7141 msgstr ""
7142 "生成されるシグナル (したがって処理待ちとなるシグナル) には、 プロセス全体宛て"
7143 "と特定のスレッド宛てがある。 例えば、プロセス全体宛てのシグナルは B<kill>"
7144 "(2)  を使って送信される。 特定のマシン語の命令の実行の結果として生成される、 "
7145 "B<SIGSEGV> や B<SIGFPE> などのシグナルは、スレッド宛てとなる。 また、 "
7146 "B<pthread_kill>(3)  を使って特定のスレッド宛てに生成されたシグナルも スレッド"
7147 "宛てとなる。 プロセス宛てのシグナルは、そのシグナルをブロックしていないスレッ"
7148 "ドのうち いずれかの一つに配送することができる。そのシグナルをブロックしていな"
7149 "い スレッドが複数ある場合、シグナルを配送するスレッドはカーネルが 無作為に選"
7150 "択する。"
7151
7152 #. type: Plain text
7153 #: build/C/man7/signal.7:216
7154 msgid ""
7155 "A thread can obtain the set of signals that it currently has pending using "
7156 "B<sigpending>(2).  This set will consist of the union of the set of pending "
7157 "process-directed signals and the set of signals pending for the calling "
7158 "thread."
7159 msgstr ""
7160 "スレッドは、 B<sigpending>(2)  を使って、現在処理待ちのシグナル集合を取得する"
7161 "ことができる。 この集合は、プロセス宛ての処理待ちシグナルと 呼び出したスレッ"
7162 "ド宛てのシグナルの両方から構成される。"
7163
7164 #. type: Plain text
7165 #: build/C/man7/signal.7:222 build/C/man2/sigpending.2:85
7166 msgid ""
7167 "A child created via B<fork>(2)  initially has an empty pending signal set; "
7168 "the pending signal set is preserved across an B<execve>(2)."
7169 msgstr ""
7170 "B<fork>(2)  経由で作成された子プロセスでは、処理待ちのシグナル集合は空の集合"
7171 "で初期化される。 B<execve>(2)  の前後で、処理待ちのシグナル集合は保持される。"
7172
7173 #. type: SS
7174 #: build/C/man7/signal.7:222
7175 #, no-wrap
7176 msgid "Standard signals"
7177 msgstr "標準シグナル"
7178
7179 #. type: Plain text
7180 #: build/C/man7/signal.7:234
7181 msgid ""
7182 "Linux supports the standard signals listed below.  Several signal numbers "
7183 "are architecture-dependent, as indicated in the \"Value\" column.  (Where "
7184 "three values are given, the first one is usually valid for alpha and sparc, "
7185 "the middle one for x86, arm, and most other architectures, and the last one "
7186 "for mips.  (Values for parisc are I<not> shown; see the Linux kernel source "
7187 "for signal numbering on that architecture.)  A - denotes that a signal is "
7188 "absent on the corresponding architecture.)"
7189 msgstr "Linux は以下に示す標準シグナルに対応している。シグナル番号の一部はアーキテクチャ依存であり、\"値\" 欄に示す通りである。 (3つの値が書かれているものは、 1つ目が alpha と sparc で通常有効な値、 真ん中が x86, arm や他のほとんどのアーキテクチャでの有効な値、最後が mips での値である。 (parisc での値は記載されてI<いない>。 parisc でのシグナル番号は Linux カーネルソースを参照してほしい)。 - はそのアーキテクチャにおいて対応するシグナルがないことを示す。)"
7190
7191 #. type: Plain text
7192 #: build/C/man7/signal.7:236
7193 msgid "First the signals described in the original POSIX.1-1990 standard."
7194 msgstr "最初に、POSIX.1-1990 に定義されているシグナルを示す。"
7195
7196 #. type: tbl table
7197 #: build/C/man7/signal.7:240 build/C/man7/signal.7:276
7198 #: build/C/man7/signal.7:305
7199 #, no-wrap
7200 msgid "Signal\tValue\tAction\tComment\n"
7201 msgstr "シグナル\t値\t動作\tコメント\n"
7202
7203 #. type: tbl table
7204 #: build/C/man7/signal.7:241
7205 #, no-wrap
7206 msgid "SIGHUP\t\\01\tTerm\tHangup detected on controlling terminal\n"
7207 msgstr "SIGHUP\t\\01\tTerm\t制御端末(controlling terminal)のハングアップ検出、\n"
7208
7209 #. type: tbl table
7210 #: build/C/man7/signal.7:242
7211 #, no-wrap
7212 msgid "\t\t\tor death of controlling process\n"
7213 msgstr "\t\t\tまたは制御しているプロセスの死\n"
7214
7215 #. type: tbl table
7216 #: build/C/man7/signal.7:243
7217 #, no-wrap
7218 msgid "SIGINT\t\\02\tTerm\tInterrupt from keyboard\n"
7219 msgstr "SIGINT\t\\02\tTerm\tキーボードからの割り込み (Interrupt)\n"
7220
7221 #. type: tbl table
7222 #: build/C/man7/signal.7:244
7223 #, no-wrap
7224 msgid "SIGQUIT\t\\03\tCore\tQuit from keyboard\n"
7225 msgstr "SIGQUIT\t\\03\tCore\tキーボードによる中止 (Quit)\n"
7226
7227 #. type: tbl table
7228 #: build/C/man7/signal.7:245
7229 #, no-wrap
7230 msgid "SIGILL\t\\04\tCore\tIllegal Instruction\n"
7231 msgstr "SIGILL\t\\04\tCore\t不正な命令\n"
7232
7233 #. type: tbl table
7234 #: build/C/man7/signal.7:246
7235 #, no-wrap
7236 msgid "SIGABRT\t\\06\tCore\tAbort signal from B<abort>(3)\n"
7237 msgstr "SIGABRT\t\\06\tCore\tB<abort>(3) からの中断 (Abort) シグナル\n"
7238
7239 #. type: tbl table
7240 #: build/C/man7/signal.7:247
7241 #, no-wrap
7242 msgid "SIGFPE\t\\08\tCore\tFloating point exception\n"
7243 msgstr "SIGFPE\t\\08\tCore\t浮動小数点例外\n"
7244
7245 #. type: tbl table
7246 #: build/C/man7/signal.7:248
7247 #, no-wrap
7248 msgid "SIGKILL\t\\09\tTerm\tKill signal\n"
7249 msgstr "SIGKILL\t\\09\tTerm\tKill シグナル\n"
7250
7251 #. type: tbl table
7252 #: build/C/man7/signal.7:249
7253 #, no-wrap
7254 msgid "SIGSEGV\t11\tCore\tInvalid memory reference\n"
7255 msgstr "SIGSEGV\t11\tCore\t不正なメモリ参照\n"
7256
7257 #. type: tbl table
7258 #: build/C/man7/signal.7:250
7259 #, no-wrap
7260 msgid "SIGPIPE\t13\tTerm\tBroken pipe: write to pipe with no\n"
7261 msgstr "SIGPIPE\t13\tTerm\tパイプ破壊:\n"
7262
7263 #. type: tbl table
7264 #: build/C/man7/signal.7:251
7265 #, no-wrap
7266 msgid "\t\t\treaders\n"
7267 msgstr "\t\t\t読み手の無いパイプへの書き出し\n"
7268
7269 #. type: tbl table
7270 #: build/C/man7/signal.7:252
7271 #, no-wrap
7272 msgid "SIGALRM\t14\tTerm\tTimer signal from B<alarm>(2)\n"
7273 msgstr "SIGALRM\t14\tTerm\tB<alarm>(2) からのタイマーシグナル\n"
7274
7275 #. type: tbl table
7276 #: build/C/man7/signal.7:253
7277 #, no-wrap
7278 msgid "SIGTERM\t15\tTerm\tTermination signal\n"
7279 msgstr "SIGTERM\t15\tTerm\t終了 (termination) シグナル\n"
7280
7281 #. type: tbl table
7282 #: build/C/man7/signal.7:254
7283 #, no-wrap
7284 msgid "SIGUSR1\t30,10,16\tTerm\tUser-defined signal 1\n"
7285 msgstr "SIGUSR1\t30,10,16\tTerm\tユーザ定義シグナル 1\n"
7286
7287 #. type: tbl table
7288 #: build/C/man7/signal.7:255
7289 #, no-wrap
7290 msgid "SIGUSR2\t31,12,17\tTerm\tUser-defined signal 2\n"
7291 msgstr "SIGUSR2\t31,12,17\tTerm\tユーザ定義シグナル 2\n"
7292
7293 #. type: tbl table
7294 #: build/C/man7/signal.7:256
7295 #, no-wrap
7296 msgid "SIGCHLD\t20,17,18\tIgn\tChild stopped or terminated\n"
7297 msgstr "SIGCHLD\t20,17,18\tIgn\t子プロセスの一時停止 (stop) または終了\n"
7298
7299 #. type: tbl table
7300 #: build/C/man7/signal.7:257
7301 #, no-wrap
7302 msgid "SIGCONT\t19,18,25\tCont\tContinue if stopped\n"
7303 msgstr "SIGCONT\t19,18,25\tCont\t一時停止 (stop) からの再開\n"
7304
7305 #. type: tbl table
7306 #: build/C/man7/signal.7:258
7307 #, no-wrap
7308 msgid "SIGSTOP\t17,19,23\tStop\tStop process\n"
7309 msgstr "SIGSTOP\t17,19,23\tStop\tプロセスの一時停止 (stop)\n"
7310
7311 #. type: tbl table
7312 #: build/C/man7/signal.7:259
7313 #, no-wrap
7314 msgid "SIGTSTP\t18,20,24\tStop\tStop typed at terminal\n"
7315 msgstr "SIGTSTP\t18,20,24\tStop\t端末より入力された一時停止 (stop)\n"
7316
7317 #. type: tbl table
7318 #: build/C/man7/signal.7:260
7319 #, no-wrap
7320 msgid "SIGTTIN\t21,21,26\tStop\tTerminal input for background process\n"
7321 msgstr "SIGTTIN\t21,21,26\tStop\tバックグランドプロセスの端末入力\n"
7322
7323 #. type: tbl table
7324 #: build/C/man7/signal.7:261
7325 #, no-wrap
7326 msgid "SIGTTOU\t22,22,27\tStop\tTerminal output for background process\n"
7327 msgstr "SIGTTOU\t22,22,27\tStop\tバックグランドプロセスの端末出力\n"
7328
7329 #. type: Plain text
7330 #: build/C/man7/signal.7:269
7331 msgid ""
7332 "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught, blocked, or ignored."
7333 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> はキャッチ、ブロック、無視できない。"
7334
7335 #. type: Plain text
7336 #: build/C/man7/signal.7:272
7337 msgid ""
7338 "Next the signals not in the POSIX.1-1990 standard but described in SUSv2 and "
7339 "POSIX.1-2001."
7340 msgstr ""
7341 "次に、 POSIX.1-1990 標準にはないが、 SUSv2 と POSIX.1-2001 に記述されているシ"
7342 "グナルを示す。"
7343
7344 #. type: tbl table
7345 #: build/C/man7/signal.7:277
7346 #, no-wrap
7347 msgid "SIGBUS\t10,7,10\tCore\tBus error (bad memory access)\n"
7348 msgstr "SIGBUS\t10,7,10\tCore\tバスエラー (不正なメモリアクセス)\n"
7349
7350 #. type: tbl table
7351 #: build/C/man7/signal.7:278
7352 #, no-wrap
7353 msgid "SIGPOLL\t\tTerm\tPollable event (Sys V).\n"
7354 msgstr "SIGPOLL\t\tTerm\tポーリング可能なイベント (Sys V)。\n"
7355
7356 #. type: tbl table
7357 #: build/C/man7/signal.7:279
7358 #, no-wrap
7359 msgid "\t\t\tSynonym for B<SIGIO>\n"
7360 msgstr "\t\t\tB<SIGIO> と同義\n"
7361
7362 #. type: tbl table
7363 #: build/C/man7/signal.7:280
7364 #, no-wrap
7365 msgid "SIGPROF\t27,27,29\tTerm\tProfiling timer expired\n"
7366 msgstr "SIGPROF\t27,27,29\tTerm\tprofiling タイマの時間切れ\n"
7367
7368 #. type: tbl table
7369 #: build/C/man7/signal.7:281
7370 #, no-wrap
7371 msgid "SIGSYS\t12,31,12\tCore\tBad argument to routine (SVr4)\n"
7372 msgstr "SIGSYS\t12,31,12\tCore\tルーチンへの引き数が不正 (SVr4)\n"
7373
7374 #. type: tbl table
7375 #: build/C/man7/signal.7:282
7376 #, no-wrap
7377 msgid "SIGTRAP\t5\tCore\tTrace/breakpoint trap\n"
7378 msgstr "SIGTRAP\t5\tCore\tトレース/ブレークポイント トラップ\n"
7379
7380 #. type: tbl table
7381 #: build/C/man7/signal.7:283
7382 #, no-wrap
7383 msgid "SIGURG\t16,23,21\tIgn\tUrgent condition on socket (4.2BSD)\n"
7384 msgstr "SIGURG\t16,23,21\tIgn\tソケットの緊急事態 (urgent condition) (4.2BSD)\n"
7385
7386 #. type: tbl table
7387 #: build/C/man7/signal.7:284
7388 #, no-wrap
7389 msgid "SIGVTALRM\t26,26,28\tTerm\tVirtual alarm clock (4.2BSD)\n"
7390 msgstr "SIGVTALRM\t26,26,28\tTerm\t仮想アラームクロック (4.2BSD)\n"
7391
7392 #. type: tbl table
7393 #: build/C/man7/signal.7:285
7394 #, no-wrap
7395 msgid "SIGXCPU\t24,24,30\tCore\tCPU time limit exceeded (4.2BSD)\n"
7396 msgstr "SIGXCPU\t24,24,30\tCore\tCPU時間制限超過 (4.2BSD)\n"
7397
7398 #. type: tbl table
7399 #: build/C/man7/signal.7:286
7400 #, no-wrap
7401 msgid "SIGXFSZ\t25,25,31\tCore\tFile size limit exceeded (4.2BSD)\n"
7402 msgstr "SIGXFSZ\t25,25,31\tCore\tファイルサイズ制限の超過 (4.2BSD)\n"
7403
7404 #. type: Plain text
7405 #: build/C/man7/signal.7:299
7406 msgid ""
7407 "Up to and including Linux 2.2, the default behavior for B<SIGSYS>, "
7408 "B<SIGXCPU>, B<SIGXFSZ>, and (on architectures other than SPARC and MIPS)  "
7409 "B<SIGBUS> was to terminate the process (without a core dump).  (On some "
7410 "other UNIX systems the default action for B<SIGXCPU> and B<SIGXFSZ> is to "
7411 "terminate the process without a core dump.)  Linux 2.4 conforms to the "
7412 "POSIX.1-2001 requirements for these signals, terminating the process with a "
7413 "core dump."
7414 msgstr ""
7415 "Linux 2.2 以前では、 B<SIGSYS>, B<SIGXCPU>, B<SIGXFSZ> および SPARC と MIPS "
7416 "以外のアーキテクチャでの B<SIGBUS> のデフォルトの振る舞いは (コアダンプ出力な"
7417 "しの) プロセス終了であった。 (他の UNIX システムにも B<SIGXCPU> と "
7418 "B<SIGXFSZ> のデフォルトの動作がコアダンプなしのプロセス終了のものがある。)  "
7419 "Linux 2.4 では、POSIX.1-2001 での要求仕様に準拠して、 これらのシグナルで、プ"
7420 "ロセスを終了させ、コアダンプを出力する ようになっている。"
7421
7422 #. type: Plain text
7423 #: build/C/man7/signal.7:301
7424 msgid "Next various other signals."
7425 msgstr "次にその他の各種シグナルを示す。"
7426
7427 #. type: tbl table
7428 #: build/C/man7/signal.7:306
7429 #, no-wrap
7430 msgid "SIGIOT\t6\tCore\tIOT trap. A synonym for B<SIGABRT>\n"
7431 msgstr "SIGIOT\t6\tCore\tIOT トラップ。B<SIGABRT> と同義\n"
7432
7433 #. type: tbl table
7434 #: build/C/man7/signal.7:307
7435 #, no-wrap
7436 msgid "SIGEMT\t7,-,7\tTerm\n"
7437 msgstr "SIGEMT\t7,-,7\tTerm\n"
7438
7439 #. type: tbl table
7440 #: build/C/man7/signal.7:308
7441 #, no-wrap
7442 msgid "SIGSTKFLT\t-,16,-\tTerm\tStack fault on coprocessor (unused)\n"
7443 msgstr "SIGSTKFLT\t-,16,-\tA\t数値演算プロセッサにおけるスタックフォルト (未使用)\n"
7444
7445 #. type: tbl table
7446 #: build/C/man7/signal.7:309
7447 #, no-wrap
7448 msgid "SIGIO\t23,29,22\tTerm\tI/O now possible (4.2BSD)\n"
7449 msgstr "SIGIO\t23,29,22\tTerm\t入出力が可能になった (4.2BSD)\n"
7450
7451 #. type: tbl table
7452 #: build/C/man7/signal.7:310
7453 #, no-wrap
7454 msgid "SIGCLD\t-,-,18\tIgn\tA synonym for B<SIGCHLD>\n"
7455 msgstr "SIGCLD\t-,-,18\tIgn\tB<SIGCHLD> と同義\n"
7456
7457 #. type: tbl table
7458 #: build/C/man7/signal.7:311
7459 #, no-wrap
7460 msgid "SIGPWR\t29,30,19\tTerm\tPower failure (System V)\n"
7461 msgstr "SIGPWR\t29,30,19\tTerm\t電源喪失 (Power failure) (System V)\n"
7462
7463 #. type: tbl table
7464 #: build/C/man7/signal.7:312
7465 #, no-wrap
7466 msgid "SIGINFO\t29,-,-\t\tA synonym for B<SIGPWR>\n"
7467 msgstr "SIGINFO\t29,-,-\t \tB<SIGPWR> と同義\n"
7468
7469 #. type: tbl table
7470 #: build/C/man7/signal.7:313
7471 #, no-wrap
7472 msgid "SIGLOST\t-,-,-\tTerm\tFile lock lost (unused)\n"
7473 msgstr "SIGLOST\t-,-,-\tTerm\tファイルロックが失われた (未使用)\n"
7474
7475 #. type: tbl table
7476 #: build/C/man7/signal.7:314
7477 #, no-wrap
7478 msgid "SIGWINCH\t28,28,20\tIgn\tWindow resize signal (4.3BSD, Sun)\n"
7479 msgstr "SIGWINCH\t28,28,20\tIgn\tウィンドウ リサイズ シグナル (4.3BSD, Sun)\n"
7480
7481 #. type: tbl table
7482 #: build/C/man7/signal.7:315
7483 #, no-wrap
7484 msgid "SIGUNUSED\t-,31,-\tCore\tSynonymous with B<SIGSYS>\n"
7485 msgstr "SIGUNUSED\t-,31,-\tCore\tB<SIGSYS> と同義\n"
7486
7487 #. type: Plain text
7488 #: build/C/man7/signal.7:325
7489 msgid ""
7490 "(Signal 29 is B<SIGINFO> / B<SIGPWR> on an alpha but B<SIGLOST> on a sparc.)"
7491 msgstr ""
7492 "(シグナル 29 は alpha では B<SIGINFO> / B<SIGPWR> だが、sparc では "
7493 "B<SIGLOST> である。)"
7494
7495 #. type: Plain text
7496 #: build/C/man7/signal.7:331
7497 msgid ""
7498 "B<SIGEMT> is not specified in POSIX.1-2001, but nevertheless appears on most "
7499 "other UNIX systems, where its default action is typically to terminate the "
7500 "process with a core dump."
7501 msgstr ""
7502 "B<SIGEMT> は POSIX.1-2001 に規定されていないが、 その他の多くの UNIX システム"
7503 "に存在する。 デフォルトの動作は多くの場合、コアダンプ出力を伴うプロセスの終了"
7504 "である。"
7505
7506 #. type: Plain text
7507 #: build/C/man7/signal.7:335
7508 msgid ""
7509 "B<SIGPWR> (which is not specified in POSIX.1-2001) is typically ignored by "
7510 "default on those other UNIX systems where it appears."
7511 msgstr ""
7512 "B<SIGPWR> は (POSIX.1-2001 に規定されていないが) このシグナルが存在する 他の "
7513 "UNIX システムでは多くの場合、デフォルト動作は無視である。"
7514
7515 #. type: Plain text
7516 #: build/C/man7/signal.7:339
7517 msgid ""
7518 "B<SIGIO> (which is not specified in POSIX.1-2001) is ignored by default on "
7519 "several other UNIX systems."
7520 msgstr ""
7521 "B<SIGIO> は (POSIX.1-2001 に規定されていないが) いくつかの他の UNIX システム"
7522 "では デフォルト動作は無視である。"
7523
7524 #.  parisc is the only exception: SIGSYS is 12, SIGUNUSED is 31
7525 #. type: Plain text
7526 #: build/C/man7/signal.7:346
7527 msgid ""
7528 "Where defined, B<SIGUNUSED> is synonymous with B<SIGSYS> on most "
7529 "architectures."
7530 msgstr ""
7531 "B<SIGUNUSED> が定義されている場合には、ほとんどのアーキテクチャで B<SIGSYS> "
7532 "の同義語となっている。"
7533
7534 #. type: SS
7535 #: build/C/man7/signal.7:346
7536 #, no-wrap
7537 msgid "Real-time signals"
7538 msgstr "リアルタイムシグナル"
7539
7540 #. type: Plain text
7541 #: build/C/man7/signal.7:356
7542 msgid ""
7543 "Linux supports real-time signals as originally defined in the POSIX.1b real-"
7544 "time extensions (and now included in POSIX.1-2001).  The range of supported "
7545 "real-time signals is defined by the macros B<SIGRTMIN> and B<SIGRTMAX>.  "
7546 "POSIX.1-2001 requires that an implementation support at least "
7547 "B<_POSIX_RTSIG_MAX> (8) real-time signals."
7548 msgstr ""
7549 "Linux はリアルタイムシグナルをサポートしている。 リアルタイムシグナルは元々 "
7550 "POSIX.1b のリアルタイム拡張で定義されて いるものであり、現在では "
7551 "POSIX.1-2001 に含まれている。 対応しているリアルタイムシグナルの範囲は、マク"
7552 "ロ B<SIGRTMIN> と B<SIGRTMAX> で定義される。 POSIX.1-2001 では、少なくとも "
7553 "B<_POSIX_RTSIG_MAX> (8) 個のリアルタイムシグナルに対応した実装が要求されてい"
7554 "る。"
7555
7556 #. type: Plain text
7557 #: build/C/man7/signal.7:378
7558 msgid ""
7559 "The Linux kernel supports a range of 32 different real-time signals, "
7560 "numbered 33 to 64.  However, the glibc POSIX threads implementation "
7561 "internally uses two (for NPTL) or three (for LinuxThreads) real-time signals "
7562 "(see B<pthreads>(7)), and adjusts the value of B<SIGRTMIN> suitably (to 34 "
7563 "or 35).  Because the range of available real-time signals varies according "
7564 "to the glibc threading implementation (and this variation can occur at run "
7565 "time according to the available kernel and glibc), and indeed the range of "
7566 "real-time signals varies across UNIX systems, programs should I<never refer "
7567 "to real-time signals using hard-coded numbers>, but instead should always "
7568 "refer to real-time signals using the notation B<SIGRTMIN>+n, and include "
7569 "suitable (run-time) checks that B<SIGRTMIN>+n does not exceed B<SIGRTMAX>."
7570 msgstr ""
7571 "Linux は、32 個の異なるリアルタイムシグナルに対応しており、 その番号は 33 か"
7572 "ら 64 である。 しかしながら、glibc の POSIX スレッド実装は、 内部で 2個 "
7573 "(NPTL の場合) か 3個 (LinuxThreads の場合) の リアルタイムシグナルを使用して"
7574 "おり (B<pthreads>(7)  参照)、 B<SIGRTMIN> の値を適切に (34 か 35 に) 調整す"
7575 "る。 利用可能なリアルタイムシグナルの範囲は glibc のスレッド実装により 異なる"
7576 "し (使用するカーネルと glibc により実行時にも変化する)、 UNIX システムの種類"
7577 "によっても異なる。したがって、 プログラムでは「ハードコーディングした数字を"
7578 "使ってのリアルタイムシグナルの 参照は決してすべきではなく」、代わりに "
7579 "B<SIGRTMIN>+n の形で参照すべきである。また、 B<SIGRTMIN>+n が B<SIGRTMAX> を"
7580 "超えていないかのチェックを (実行時に) 適切に行うべきである。"
7581
7582 #. type: Plain text
7583 #: build/C/man7/signal.7:382
7584 msgid ""
7585 "Unlike standard signals, real-time signals have no predefined meanings: the "
7586 "entire set of real-time signals can be used for application-defined purposes."
7587 msgstr ""
7588 "標準シグナルと異なり、リアルタイムシグナルには 事前に定義された意味はない。 "
7589 "リアルタイムシグナルの全部をアプリケーションで定義した用途に使える。"
7590
7591 #. type: Plain text
7592 #: build/C/man7/signal.7:385
7593 msgid ""
7594 "The default action for an unhandled real-time signal is to terminate the "
7595 "receiving process."
7596 msgstr ""
7597 "ハンドリングしないリアルタイムシグナルのデフォルトの動作は 受信したプロセスの"
7598 "終了である。"
7599
7600 #. type: Plain text
7601 #: build/C/man7/signal.7:387
7602 msgid "Real-time signals are distinguished by the following:"
7603 msgstr "リアルタイムシグナルは以下の特徴がある:"
7604
7605 #. type: Plain text
7606 #: build/C/man7/signal.7:391
7607 msgid ""
7608 "Multiple instances of real-time signals can be queued.  By contrast, if "
7609 "multiple instances of a standard signal are delivered while that signal is "
7610 "currently blocked, then only one instance is queued."
7611 msgstr ""
7612 "リアルタイムシグナルは複数の実体をキューに入れることができる。 一方、標準シグ"
7613 "ナルの場合、そのシグナルがブロックされている間に 同じシグナルの複数のインスタ"
7614 "ンスが配送されても、 1 つだけがキューに入れられる。"
7615
7616 #. type: Plain text
7617 #: build/C/man7/signal.7:411
7618 msgid ""
7619 "If the signal is sent using B<sigqueue>(3), an accompanying value (either an "
7620 "integer or a pointer) can be sent with the signal.  If the receiving process "
7621 "establishes a handler for this signal using the B<SA_SIGINFO> flag to "
7622 "B<sigaction>(2), then it can obtain this data via the I<si_value> field of "
7623 "the I<siginfo_t> structure passed as the second argument to the handler.  "
7624 "Furthermore, the I<si_pid> and I<si_uid> fields of this structure can be "
7625 "used to obtain the PID and real user ID of the process sending the signal."
7626 msgstr ""
7627 "シグナルが B<sigqueue>(3)  を用いて送信された場合、 付属データ (整数かポイン"
7628 "タ) をシグナルと共に送信できる。 受信側プロセスが B<sigaction>(2)  に "
7629 "B<SA_SIGINFO> フラグを指定してシグナルハンドラを設定した場合、 このデータは "
7630 "I<siginfo_t> 構造体の I<si_value> フィールド経由でハンドラの第 2 引き数として"
7631 "渡され、 利用することができる。 さらに、この構造体の I<si_pid> と I<si_uid> "
7632 "フィールドでシグナルを送信したプロセスの PID と実ユーザ ID を 得ることができ"
7633 "る。"
7634
7635 #. type: Plain text
7636 #: build/C/man7/signal.7:420
7637 msgid ""
7638 "Real-time signals are delivered in a guaranteed order.  Multiple real-time "
7639 "signals of the same type are delivered in the order they were sent.  If "
7640 "different real-time signals are sent to a process, they are delivered "
7641 "starting with the lowest-numbered signal.  (I.e., low-numbered signals have "
7642 "highest priority.)  By contrast, if multiple standard signals are pending "
7643 "for a process, the order in which they are delivered is unspecified."
7644 msgstr ""
7645 "リアルタイムシグナルでは配送される順序が保証される。 同じタイプのリアルタイム"
7646 "シグナルは送信された順番に到着する。 異なるリアルタイムシグナルが一つのプロセ"
7647 "スに送信された場合、 番号の小さいシグナルから先に到着する。 (つまり小さい番号"
7648 "のシグナルが高い優先順位を持つ。)  対照的に、一つのプロセスに対して複数の標準"
7649 "シグナルが処理待ちとなった場合、 これらのシグナルが配送される順序は不定であ"
7650 "る。"
7651
7652 #. type: Plain text
7653 #: build/C/man7/signal.7:425
7654 msgid ""
7655 "If both standard and real-time signals are pending for a process, POSIX "
7656 "leaves it unspecified which is delivered first.  Linux, like many other "
7657 "implementations, gives priority to standard signals in this case."
7658 msgstr ""
7659 "一つのプロセスに対して標準シグナルとリアルタイムシグナルの両方が 処理待ちの場"
7660 "合、POSIX はどちらが先に配送されるかを規定していない。 Linux では、他の多くの"
7661 "実装と同様、このような場合には 標準シグナルが優先される。"
7662
7663 #. type: Plain text
7664 #: build/C/man7/signal.7:448
7665 msgid ""
7666 "According to POSIX, an implementation should permit at least "
7667 "B<_POSIX_SIGQUEUE_MAX> (32) real-time signals to be queued to a process.  "
7668 "However, Linux does things differently.  In kernels up to and including "
7669 "2.6.7, Linux imposes a system-wide limit on the number of queued real-time "
7670 "signals for all processes.  This limit can be viewed and (with privilege) "
7671 "changed via the I</proc/sys/kernel/rtsig-max> file.  A related file, I</proc/"
7672 "sys/kernel/rtsig-nr>, can be used to find out how many real-time signals are "
7673 "currently queued.  In Linux 2.6.8, these I</proc> interfaces were replaced "
7674 "by the B<RLIMIT_SIGPENDING> resource limit, which specifies a per-user limit "
7675 "for queued signals; see B<setrlimit>(2)  for further details."
7676 msgstr ""
7677 "POSIX によれば、1 プロセス毎に最低 B<_POSIX_SIGQUEUE_MAX> (32) 個のリアルタイ"
7678 "ムシグナルをキューに入れられるべきとしている。 しかし、 Linux では違った実装"
7679 "になっている。カーネル 2.6.7 までは (2.6.7 を含む)、全プロセスでキューに入っ"
7680 "ているリアルタイムシグナル の数の合計についてシステム全体での制限がある。 こ"
7681 "の制限は I</proc/sys/kernel/rtsig-max> ファイルで見ることができ、 (権限があれ"
7682 "ば) 変更もできる。 関係するファイルとして、 I</proc/sys/kernel/rtsig-nr> を見"
7683 "ることで、いくつのリアルタイムシグナルが現在キューに入っているかを 知ることが"
7684 "できる。 Linux 2.6.8 で、これらの I</proc> 経由のインターフェースは、 "
7685 "B<RLIMIT_SIGPENDING> リソース制限に置き換えられた。 これは、キューに入るシグ"
7686 "ナル数に関してユーザ単位に 上限を指定するものである。 詳しくは B<setrlimit>"
7687 "(2)  を参照。"
7688
7689 #. type: SS
7690 #: build/C/man7/signal.7:448
7691 #, no-wrap
7692 msgid "Async-signal-safe functions"
7693 msgstr "非同期シグナルで安全な関数 (async-signal-safe functions)"
7694
7695 #. type: Plain text
7696 #: build/C/man7/signal.7:457
7697 msgid ""
7698 "A signal handler function must be very careful, since processing elsewhere "
7699 "may be interrupted at some arbitrary point in the execution of the program.  "
7700 "POSIX has the concept of \"safe function\".  If a signal interrupts the "
7701 "execution of an unsafe function, and I<handler> calls an unsafe function, "
7702 "then the behavior of the program is undefined."
7703 msgstr ""
7704 "シグナルハンドラ関数には非常に注意しなければならない。 他の場所の処理はプログ"
7705 "ラム実行の任意の箇所で中断される可能性があるためである。 POSIX には「安全な関"
7706 "数 (safe function)」という概念がある。 シグナルが安全でない関数の実行を中断"
7707 "し、かつ I<handler> が安全でない関数を呼び出した場合、プログラムの挙動は未定"
7708 "義である。"
7709
7710 #. type: Plain text
7711 #: build/C/man7/signal.7:461
7712 msgid ""
7713 "POSIX.1-2004 (also known as POSIX.1-2001 Technical Corrigendum 2)  requires "
7714 "an implementation to guarantee that the following functions can be safely "
7715 "called inside a signal handler:"
7716 msgstr ""
7717 "POSIX.1-2004 (POSIX.1-2001 Technical Corrigendum (正誤表) 2 とも言う) では、 "
7718 "シグナルハンドラ内での安全な呼び出しを保証することが必須の関数として 以下が規"
7719 "定されている。"
7720
7721 #. type: Plain text
7722 #: build/C/man7/signal.7:582
7723 #, no-wrap
7724 msgid ""
7725 "_Exit()\n"
7726 "_exit()\n"
7727 "abort()\n"
7728 "accept()\n"
7729 "access()\n"
7730 "aio_error()\n"
7731 "aio_return()\n"
7732 "aio_suspend()\n"
7733 "alarm()\n"
7734 "bind()\n"
7735 "cfgetispeed()\n"
7736 "cfgetospeed()\n"
7737 "cfsetispeed()\n"
7738 "cfsetospeed()\n"
7739 "chdir()\n"
7740 "chmod()\n"
7741 "chown()\n"
7742 "clock_gettime()\n"
7743 "close()\n"
7744 "connect()\n"
7745 "creat()\n"
7746 "dup()\n"
7747 "dup2()\n"
7748 "execle()\n"
7749 "execve()\n"
7750 "fchmod()\n"
7751 "fchown()\n"
7752 "fcntl()\n"
7753 "fdatasync()\n"
7754 "fork()\n"
7755 "fpathconf()\n"
7756 "fstat()\n"
7757 "fsync()\n"
7758 "ftruncate()\n"
7759 "getegid()\n"
7760 "geteuid()\n"
7761 "getgid()\n"
7762 "getgroups()\n"
7763 "getpeername()\n"
7764 "getpgrp()\n"
7765 "getpid()\n"
7766 "getppid()\n"
7767 "getsockname()\n"
7768 "getsockopt()\n"
7769 "getuid()\n"
7770 "kill()\n"
7771 "link()\n"
7772 "listen()\n"
7773 "lseek()\n"
7774 "lstat()\n"
7775 "mkdir()\n"
7776 "mkfifo()\n"
7777 "open()\n"
7778 "pathconf()\n"
7779 "pause()\n"
7780 "pipe()\n"
7781 "poll()\n"
7782 "posix_trace_event()\n"
7783 "pselect()\n"
7784 "raise()\n"
7785 "read()\n"
7786 "readlink()\n"
7787 "recv()\n"
7788 "recvfrom()\n"
7789 "recvmsg()\n"
7790 "rename()\n"
7791 "rmdir()\n"
7792 "select()\n"
7793 "sem_post()\n"
7794 "send()\n"
7795 "sendmsg()\n"
7796 "sendto()\n"
7797 "setgid()\n"
7798 "setpgid()\n"
7799 "setsid()\n"
7800 "setsockopt()\n"
7801 "setuid()\n"
7802 "shutdown()\n"
7803 "sigaction()\n"
7804 "sigaddset()\n"
7805 "sigdelset()\n"
7806 "sigemptyset()\n"
7807 "sigfillset()\n"
7808 "sigismember()\n"
7809 "signal()\n"
7810 "sigpause()\n"
7811 "sigpending()\n"
7812 "sigprocmask()\n"
7813 "sigqueue()\n"
7814 "sigset()\n"
7815 "sigsuspend()\n"
7816 "sleep()\n"
7817 "sockatmark()\n"
7818 "socket()\n"
7819 "socketpair()\n"
7820 "stat()\n"
7821 "symlink()\n"
7822 "sysconf()\n"
7823 "tcdrain()\n"
7824 "tcflow()\n"
7825 "tcflush()\n"
7826 "tcgetattr()\n"
7827 "tcgetpgrp()\n"
7828 "tcsendbreak()\n"
7829 "tcsetattr()\n"
7830 "tcsetpgrp()\n"
7831 "time()\n"
7832 "timer_getoverrun()\n"
7833 "timer_gettime()\n"
7834 "timer_settime()\n"
7835 "times()\n"
7836 "umask()\n"
7837 "uname()\n"
7838 "unlink()\n"
7839 "utime()\n"
7840 "wait()\n"
7841 "waitpid()\n"
7842 "write()\n"
7843 msgstr ""
7844 "_Exit()\n"
7845 "_exit()\n"
7846 "abort()\n"
7847 "accept()\n"
7848 "access()\n"
7849 "aio_error()\n"
7850 "aio_return()\n"
7851 "aio_suspend()\n"
7852 "alarm()\n"
7853 "bind()\n"
7854 "cfgetispeed()\n"
7855 "cfgetospeed()\n"
7856 "cfsetispeed()\n"
7857 "cfsetospeed()\n"
7858 "chdir()\n"
7859 "chmod()\n"
7860 "chown()\n"
7861 "clock_gettime()\n"
7862 "close()\n"
7863 "connect()\n"
7864 "creat()\n"
7865 "dup()\n"
7866 "dup2()\n"
7867 "execle()\n"
7868 "execve()\n"
7869 "fchmod()\n"
7870 "fchown()\n"
7871 "fcntl()\n"
7872 "fdatasync()\n"
7873 "fork()\n"
7874 "fpathconf()\n"
7875 "fstat()\n"
7876 "fsync()\n"
7877 "ftruncate()\n"
7878 "getegid()\n"
7879 "geteuid()\n"
7880 "getgid()\n"
7881 "getgroups()\n"
7882 "getpeername()\n"
7883 "getpgrp()\n"
7884 "getpid()\n"
7885 "getppid()\n"
7886 "getsockname()\n"
7887 "getsockopt()\n"
7888 "getuid()\n"
7889 "kill()\n"
7890 "link()\n"
7891 "listen()\n"
7892 "lseek()\n"
7893 "lstat()\n"
7894 "mkdir()\n"
7895 "mkfifo()\n"
7896 "open()\n"
7897 "pathconf()\n"
7898 "pause()\n"
7899 "pipe()\n"
7900 "poll()\n"
7901 "posix_trace_event()\n"
7902 "pselect()\n"
7903 "raise()\n"
7904 "read()\n"
7905 "readlink()\n"
7906 "recv()\n"
7907 "recvfrom()\n"
7908 "recvmsg()\n"
7909 "rename()\n"
7910 "rmdir()\n"
7911 "select()\n"
7912 "sem_post()\n"
7913 "send()\n"
7914 "sendmsg()\n"
7915 "sendto()\n"
7916 "setgid()\n"
7917 "setpgid()\n"
7918 "setsid()\n"
7919 "setsockopt()\n"
7920 "setuid()\n"
7921 "shutdown()\n"
7922 "sigaction()\n"
7923 "sigaddset()\n"
7924 "sigdelset()\n"
7925 "sigemptyset()\n"
7926 "sigfillset()\n"
7927 "sigismember()\n"
7928 "signal()\n"
7929 "sigpause()\n"
7930 "sigpending()\n"
7931 "sigprocmask()\n"
7932 "sigqueue()\n"
7933 "sigset()\n"
7934 "sigsuspend()\n"
7935 "sleep()\n"
7936 "sockatmark()\n"
7937 "socket()\n"
7938 "socketpair()\n"
7939 "stat()\n"
7940 "symlink()\n"
7941 "sysconf()\n"
7942 "tcdrain()\n"
7943 "tcflow()\n"
7944 "tcflush()\n"
7945 "tcgetattr()\n"
7946 "tcgetpgrp()\n"
7947 "tcsendbreak()\n"
7948 "tcsetattr()\n"
7949 "tcsetpgrp()\n"
7950 "time()\n"
7951 "timer_getoverrun()\n"
7952 "timer_gettime()\n"
7953 "timer_settime()\n"
7954 "times()\n"
7955 "umask()\n"
7956 "uname()\n"
7957 "unlink()\n"
7958 "utime()\n"
7959 "wait()\n"
7960 "waitpid()\n"
7961 "write()\n"
7962
7963 #. type: Plain text
7964 #: build/C/man7/signal.7:587
7965 msgid ""
7966 "POSIX.1-2008 removes fpathconf(), pathconf(), and sysconf()  from the above "
7967 "list, and adds the following functions:"
7968 msgstr ""
7969 "POSIX.1-2008 では、上記のリストのうち fpathconf(), pathconf(), sysconf()  が"
7970 "削除され、以下の関数が追加された。"
7971
7972 #. type: Plain text
7973 #: build/C/man7/signal.7:610
7974 #, no-wrap
7975 msgid ""
7976 "execl()\n"
7977 "execv()\n"
7978 "faccessat()\n"
7979 "fchmodat()\n"
7980 "fchownat()\n"
7981 "fexecve()\n"
7982 "fstatat()\n"
7983 "futimens()\n"
7984 "linkat()\n"
7985 "mkdirat()\n"
7986 "mkfifoat()\n"
7987 "mknod()\n"
7988 "mknodat()\n"
7989 "openat()\n"
7990 "readlinkat()\n"
7991 "renameat()\n"
7992 "symlinkat()\n"
7993 "unlinkat()\n"
7994 "utimensat()\n"
7995 "utimes()\n"
7996 msgstr ""
7997 "execl()\n"
7998 "execv()\n"
7999 "faccessat()\n"
8000 "fchmodat()\n"
8001 "fchownat()\n"
8002 "fexecve()\n"
8003 "fstatat()\n"
8004 "futimens()\n"
8005 "linkat()\n"
8006 "mkdirat()\n"
8007 "mkfifoat()\n"
8008 "mknod()\n"
8009 "mknodat()\n"
8010 "openat()\n"
8011 "readlinkat()\n"
8012 "renameat()\n"
8013 "symlinkat()\n"
8014 "unlinkat()\n"
8015 "utimensat()\n"
8016 "utimes()\n"
8017
8018 #. type: SS
8019 #: build/C/man7/signal.7:612
8020 #, no-wrap
8021 msgid "Interruption of system calls and library functions by signal handlers"
8022 msgstr "シグナルハンドラによるシステムコールやライブラリ関数への割り込み"
8023
8024 #. type: Plain text
8025 #: build/C/man7/signal.7:615
8026 msgid ""
8027 "If a signal handler is invoked while a system call or library function call "
8028 "is blocked, then either:"
8029 msgstr ""
8030 "システムコールやライブラリが停止 (block) している間にシグナルハンドラが 起動"
8031 "されると、以下のどちらかとなる。"
8032
8033 #. type: Plain text
8034 #: build/C/man7/signal.7:617
8035 msgid ""
8036 "the call is automatically restarted after the signal handler returns; or"
8037 msgstr "シグナルが返った後、呼び出しは自動的に再スタートされる。"
8038
8039 #. type: Plain text
8040 #: build/C/man7/signal.7:620
8041 msgid "the call fails with the error B<EINTR>."
8042 msgstr "呼び出しはエラー B<EINTR> で失敗する。"
8043
8044 #. type: Plain text
8045 #: build/C/man7/signal.7:628
8046 msgid ""
8047 "Which of these two behaviors occurs depends on the interface and whether or "
8048 "not the signal handler was established using the B<SA_RESTART> flag (see "
8049 "B<sigaction>(2)).  The details vary across UNIX systems; below, the details "
8050 "for Linux."
8051 msgstr ""
8052 "これらの二つの挙動のうちどちらが起こるかは、インターフェイスにより依存し、 シ"
8053 "グナルハンドラが B<SA_RESTART> フラグ (B<sigaction>(2)  参照) を使って設定さ"
8054 "れていたかにも依存する。 詳細は UNIX システムによって異なる。 Linux における"
8055 "詳細を以下で説明する。"
8056
8057 #.  The following system calls use ERESTARTSYS,
8058 #.  so that they are restartable
8059 #. type: Plain text
8060 #: build/C/man7/signal.7:637
8061 msgid ""
8062 "If a blocked call to one of the following interfaces is interrupted by a "
8063 "signal handler, then the call will be automatically restarted after the "
8064 "signal handler returns if the B<SA_RESTART> flag was used; otherwise the "
8065 "call will fail with the error B<EINTR>:"
8066 msgstr ""
8067 "以下のインターフェイスのいずれかの呼び出しが停止している間に シグナルハンドラ"
8068 "により割り込まれた場合、 B<SA_RESTART> フラグが使用されていれば、シグナルハン"
8069 "ドラが返った後に その呼び出しは自動的に再スタートされることになる。 それ以外"
8070 "の場合は、その呼び出しはエラー B<EINTR> で失敗することになる。"
8071
8072 #. type: Plain text
8073 #: build/C/man7/signal.7:653
8074 msgid ""
8075 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), and B<ioctl>(2)  calls "
8076 "on \"slow\" devices.  A \"slow\" device is one where the I/O call may block "
8077 "for an indefinite time, for example, a terminal, pipe, or socket.  (A disk "
8078 "is not a slow device according to this definition.)  If an I/O call on a "
8079 "slow device has already transferred some data by the time it is interrupted "
8080 "by a signal handler, then the call will return a success status (normally, "
8081 "the number of bytes transferred)."
8082 msgstr ""
8083 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), B<ioctl>(2)  の「遅い "
8084 "(slow)」デバイスに対する呼び出し。 ここでいう「遅い」デバイスとは、I/O 呼び出"
8085 "しが無期限に停止 (block) する 可能性のあるデバイスのことで、例としては端末、"
8086 "パイプ、ソケットがある (この定義では、ディスクは遅いデバイスではない)。 遅い"
8087 "デバイスに対する I/O 呼び出しが、 シグナルハンドラにより割り込まれた時点まで"
8088 "に何らかのデータを すでに転送していれば、呼び出しは成功ステータス (通常は、転"
8089 "送されたバイト数) を返すことだろう。"
8090
8091 #. type: Plain text
8092 #: build/C/man7/signal.7:657
8093 msgid ""
8094 "B<open>(2), if it can block (e.g., when opening a FIFO; see B<fifo>(7))."
8095 msgstr ""
8096 "停止 (block) する可能性のある B<open>(2)  (例えば、FIFO のオープン時; B<fifo>"
8097 "(7)  参照)。"
8098
8099 #. type: Plain text
8100 #: build/C/man7/signal.7:664
8101 msgid "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), and B<waitpid>(2)."
8102 msgstr "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), B<waitpid>(2)."
8103
8104 #.  If a timeout (setsockopt()) is in effect on the socket, then these
8105 #.  system calls switch to using EINTR.  Consequently, they and are not
8106 #.  automatically restarted, and they show the stop/cont behavior
8107 #.  described below.  (Verified from 2.6.26 source, and by experiment; mtk)
8108 #. type: Plain text
8109 #: build/C/man7/signal.7:680
8110 msgid ""
8111 "Socket interfaces: B<accept>(2), B<connect>(2), B<recv>(2), B<recvfrom>(2), "
8112 "B<recvmsg>(2), B<send>(2), B<sendto>(2), and B<sendmsg>(2), unless a timeout "
8113 "has been set on the socket (see below)."
8114 msgstr ""
8115 "ソケットインターフェイス: B<accept>(2), B<connect>(2), B<recv>(2), "
8116 "B<recvfrom>(2), B<recvmsg>(2), B<send>(2), B<sendto>(2), B<sendmsg>(2).  但"
8117 "し、ソケットにタイムアウトが設定されていない場合 (下記参照)。"
8118
8119 #. type: Plain text
8120 #: build/C/man7/signal.7:686
8121 msgid "File locking interfaces: B<flock>(2)  and B<fcntl>(2)  B<F_SETLKW>."
8122 msgstr ""
8123 "ファイルロック用インターフェイス: B<flock>(2), B<fcntl>(2)  B<F_SETLKW>."
8124
8125 #. type: Plain text
8126 #: build/C/man7/signal.7:693
8127 msgid ""
8128 "POSIX message queue interfaces: B<mq_receive>(3), B<mq_timedreceive>(3), "
8129 "B<mq_send>(3), and B<mq_timedsend>(3)."
8130 msgstr ""
8131 "POSIX メッセージキューインターフェイス: B<mq_receive>(3), B<mq_timedreceive>"
8132 "(3), B<mq_send>(3), B<mq_timedsend>(3)."
8133
8134 #. type: Plain text
8135 #: build/C/man7/signal.7:698
8136 msgid ""
8137 "B<futex>(2)  B<FUTEX_WAIT> (since Linux 2.6.22; beforehand, always failed "
8138 "with B<EINTR>)."
8139 msgstr ""
8140 "B<futex>(2)  B<FUTEX_WAIT> (Linux 2.6.22 以降; それ以前は常に B<EINTR> で失敗"
8141 "していた)。"
8142
8143 #. type: Plain text
8144 #: build/C/man7/signal.7:705
8145 msgid ""
8146 "POSIX semaphore interfaces: B<sem_wait>(3)  and B<sem_timedwait>(3)  (since "
8147 "Linux 2.6.22; beforehand, always failed with B<EINTR>)."
8148 msgstr ""
8149 "POSIX セマフォインターフェイス: B<sem_wait>(3), B<sem_timedwait>(3)  (Linux "
8150 "2.6.22 以降; それ以前は常に B<EINTR> で失敗していた)。"
8151
8152 #.  These are the system calls that give EINTR or ERESTARTNOHAND
8153 #.  on interruption by a signal handler.
8154 #. type: Plain text
8155 #: build/C/man7/signal.7:716
8156 msgid ""
8157 "The following interfaces are never restarted after being interrupted by a "
8158 "signal handler, regardless of the use of B<SA_RESTART>; they always fail "
8159 "with the error B<EINTR> when interrupted by a signal handler:"
8160 msgstr ""
8161 "以下のインターフェイスは、 B<SA_RESTART> を使っているどうかに関わらず、シグナ"
8162 "ルハンドラにより割り込まれた後、 再スタートすることは決してない。 これらは、"
8163 "シグナルハンドラにより割り込まれると、常にエラー B<EINTR> で失敗する。"
8164
8165 #. type: Plain text
8166 #: build/C/man7/signal.7:736 build/C/man7/signal.7:810
8167 msgid ""
8168 "Socket interfaces, when a timeout has been set on the socket using "
8169 "B<setsockopt>(2): B<accept>(2), B<recv>(2), B<recvfrom>(2), and B<recvmsg>"
8170 "(2), if a receive timeout (B<SO_RCVTIMEO>)  has been set; B<connect>(2), "
8171 "B<send>(2), B<sendto>(2), and B<sendmsg>(2), if a send timeout "
8172 "(B<SO_SNDTIMEO>)  has been set."
8173 msgstr ""
8174 "B<setsockopt>(2)  を使ってタイムアウトが設定されているソケットインターフェー"
8175 "ス: B<accept>(2), B<recv>(2), B<recvfrom>(2), B<recvmsg>(2)  で受信タイムアウ"
8176 "ト (B<SO_RCVTIMEO>)  が設定されている場合と、 B<connect>(2), B<send>(2), "
8177 "B<sendto>(2), B<sendmsg>(2)  で送信タイムアウト (B<SO_SNDTIMEO>)  が設定され"
8178 "ている場合。"
8179
8180 #. type: Plain text
8181 #: build/C/man7/signal.7:743
8182 msgid ""
8183 "Interfaces used to wait for signals: B<pause>(2), B<sigsuspend>(2), "
8184 "B<sigtimedwait>(2), and B<sigwaitinfo>(2)."
8185 msgstr ""
8186 "シグナル待ちに使われるインターフェイス: B<pause>(2), B<sigsuspend>(2), "
8187 "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8188
8189 #. type: Plain text
8190 #: build/C/man7/signal.7:752
8191 msgid ""
8192 "File descriptor multiplexing interfaces: B<epoll_wait>(2), B<epoll_pwait>"
8193 "(2), B<poll>(2), B<ppoll>(2), B<select>(2), and B<pselect>(2)."
8194 msgstr ""
8195 "ファイルディスクリプタ多重インターフェイス: B<epoll_wait>(2), B<epoll_pwait>"
8196 "(2), B<poll>(2), B<ppoll>(2), B<select>(2), B<pselect>(2)."
8197
8198 #.  On some other systems, SA_RESTART does restart these system calls
8199 #. type: Plain text
8200 #: build/C/man7/signal.7:760
8201 msgid ""
8202 "System V IPC interfaces: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), and "
8203 "B<semtimedop>(2)."
8204 msgstr ""
8205 "System V IPC インターフェイス: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), "
8206 "B<semtimedop>(2)."
8207
8208 #. type: Plain text
8209 #: build/C/man7/signal.7:766
8210 msgid ""
8211 "Sleep interfaces: B<clock_nanosleep>(2), B<nanosleep>(2), and B<usleep>(3)."
8212 msgstr ""
8213 "スリープ用のインターフェイス: B<clock_nanosleep>(2), B<nanosleep>(2), "
8214 "B<usleep>(3)."
8215
8216 #. type: Plain text
8217 #: build/C/man7/signal.7:771 build/C/man7/signal.7:824
8218 msgid "B<read>(2)  from an B<inotify>(7)  file descriptor."
8219 msgstr "B<inotify>(7)  ファイルディスクリプタからの B<read>(2)."
8220
8221 #. type: Plain text
8222 #: build/C/man7/signal.7:773
8223 msgid "B<io_getevents>(2)."
8224 msgstr "B<io_getevents>(2)."
8225
8226 #. type: Plain text
8227 #: build/C/man7/signal.7:779
8228 msgid ""
8229 "The B<sleep>(3)  function is also never restarted if interrupted by a "
8230 "handler, but gives a success return: the number of seconds remaining to "
8231 "sleep."
8232 msgstr ""
8233 "B<sleep>(3)  関数も、ハンドラにより割り込まれた場合、決して再スタートされるこ"
8234 "とはない。 しかし、成功となり、残っている停止時間を返す。"
8235
8236 #. type: SS
8237 #: build/C/man7/signal.7:779
8238 #, no-wrap
8239 msgid "Interruption of system calls and library functions by stop signals"
8240 msgstr "一時停止シグナルによるシステムコールやライブラリ関数への割り込み"
8241
8242 #. type: Plain text
8243 #: build/C/man7/signal.7:788
8244 msgid ""
8245 "On Linux, even in the absence of signal handlers, certain blocking "
8246 "interfaces can fail with the error B<EINTR> after the process is stopped by "
8247 "one of the stop signals and then resumed via B<SIGCONT>.  This behavior is "
8248 "not sanctioned by POSIX.1, and doesn't occur on other systems."
8249 msgstr ""
8250 "Linux では、シグナルハンドラが設定されていない場合でも、 いくつかのブロッキン"
8251 "グ型のインターフェイスは、 プロセスが一時停止 (stop) シグナルの一つにより停止"
8252 "され、 B<SIGCONT> により再開された後に、エラー B<EINTR> で失敗する可能性があ"
8253 "る。 この挙動は POSIX.1 で認められておらず、他のシステムでは起こらない。"
8254
8255 #. type: Plain text
8256 #: build/C/man7/signal.7:790
8257 msgid "The Linux interfaces that display this behavior are:"
8258 msgstr "この挙動を示す Linux のインターフェイスは以下の通りである。"
8259
8260 #. type: Plain text
8261 #: build/C/man7/signal.7:813
8262 msgid "B<epoll_wait>(2), B<epoll_pwait>(2)."
8263 msgstr "B<epoll_wait>(2), B<epoll_pwait>(2)."
8264
8265 #. type: Plain text
8266 #: build/C/man7/signal.7:816
8267 msgid "B<semop>(2), B<semtimedop>(2)."
8268 msgstr "B<semop>(2), B<semtimedop>(2)."
8269
8270 #. type: Plain text
8271 #: build/C/man7/signal.7:819
8272 msgid "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8273 msgstr "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8274
8275 #. type: Plain text
8276 #: build/C/man7/signal.7:830
8277 msgid ""
8278 "Linux 2.6.21 and earlier: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
8279 "B<sem_wait>(3)."
8280 msgstr ""
8281 "Linux 2.6.21 以前: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
8282 "B<sem_wait>(3)."
8283
8284 #. type: Plain text
8285 #: build/C/man7/signal.7:834
8286 msgid "Linux 2.6.8 and earlier: B<msgrcv>(2), B<msgsnd>(2)."
8287 msgstr "Linux 2.6.8 以前: B<msgrcv>(2), B<msgsnd>(2)."
8288
8289 #. type: Plain text
8290 #: build/C/man7/signal.7:837
8291 msgid "Linux 2.4 and earlier: B<nanosleep>(2)."
8292 msgstr "Linux 2.4 以前: B<nanosleep>(2)."
8293
8294 #.  It must be a *very* long time since this was true:
8295 #.  .SH BUGS
8296 #.  .B SIGIO
8297 #.  and
8298 #.  .B SIGLOST
8299 #.  have the same value.
8300 #.  The latter is commented out in the kernel source, but
8301 #.  the build process of some software still thinks that
8302 #.  signal 29 is
8303 #.  .BR SIGLOST .
8304 #. type: Plain text
8305 #: build/C/man7/signal.7:850
8306 msgid "POSIX.1, except as noted."
8307 msgstr "POSIX.1 (注記した内容以外)。"
8308
8309 #. type: Plain text
8310 #: build/C/man7/signal.7:884
8311 msgid ""
8312 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), B<restart_syscall>"
8313 "(2), B<rt_sigqueueinfo>(2), B<setitimer>(2), B<setrlimit>(2), B<sgetmask>"
8314 "(2), B<sigaction>(2), B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), "
8315 "B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<sigwaitinfo>(2), "
8316 "B<abort>(3), B<bsd_signal>(3), B<longjmp>(3), B<raise>(3), "
8317 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<sigset>(3), B<sigsetops>(3), "
8318 "B<sigvec>(3), B<sigwait>(3), B<strsignal>(3), B<sysv_signal>(3), B<core>(5), "
8319 "B<proc>(5), B<pthreads>(7), B<sigevent>(7)"
8320 msgstr ""
8321 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), B<restart_syscall>"
8322 "(2), B<rt_sigqueueinfo>(2), B<setitimer>(2), B<setrlimit>(2), B<sgetmask>"
8323 "(2), B<sigaction>(2), B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), "
8324 "B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<sigwaitinfo>(2), "
8325 "B<abort>(3), B<bsd_signal>(3), B<longjmp>(3), B<raise>(3), "
8326 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<sigset>(3), B<sigsetops>(3), "
8327 "B<sigvec>(3), B<sigwait>(3), B<strsignal>(3), B<sysv_signal>(3), B<core>(5), "
8328 "B<proc>(5), B<pthreads>(7), B<sigevent>(7)"
8329
8330 #. type: TH
8331 #: build/C/man2/signalfd.2:20
8332 #, no-wrap
8333 msgid "SIGNALFD"
8334 msgstr "SIGNALFD"
8335
8336 #. type: TH
8337 #: build/C/man2/signalfd.2:20
8338 #, no-wrap
8339 msgid "2009-01-13"
8340 msgstr "2009-01-13"
8341
8342 #. type: Plain text
8343 #: build/C/man2/signalfd.2:23
8344 msgid "signalfd - create a file descriptor for accepting signals"
8345 msgstr "signalfd - シグナル受け付け用のファイルディスクリプタを生成する"
8346
8347 #. type: Plain text
8348 #: build/C/man2/signalfd.2:25
8349 msgid "B<#include E<lt>sys/signalfd.hE<gt>>"
8350 msgstr "B<#include E<lt>sys/signalfd.hE<gt>>"
8351
8352 #. type: Plain text
8353 #: build/C/man2/signalfd.2:27
8354 msgid ""
8355 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
8356 msgstr ""
8357 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
8358
8359 #. type: Plain text
8360 #: build/C/man2/signalfd.2:38
8361 msgid ""
8362 "B<signalfd>()  creates a file descriptor that can be used to accept signals "
8363 "targeted at the caller.  This provides an alternative to the use of a signal "
8364 "handler or B<sigwaitinfo>(2), and has the advantage that the file descriptor "
8365 "may be monitored by B<select>(2), B<poll>(2), and B<epoll>(7)."
8366 msgstr ""
8367 "B<signalfd>()  は、呼び出し元宛てのシグナルを受け付けるために使用されるファイ"
8368 "ル ディスクリプタを生成する。 この方法はシグナルハンドラや B<sigwaitinfo>"
8369 "(2)  を用いる方法の代わりとなるものであり、このファイルディスクリプタを "
8370 "B<select>(2), B<poll>(2), B<epoll>(7)  で監視できるという利点がある。"
8371
8372 #. type: Plain text
8373 #: build/C/man2/signalfd.2:58
8374 msgid ""
8375 "The I<mask> argument specifies the set of signals that the caller wishes to "
8376 "accept via the file descriptor.  This argument is a signal set whose "
8377 "contents can be initialized using the macros described in B<sigsetops>(3).  "
8378 "Normally, the set of signals to be received via the file descriptor should "
8379 "be blocked using B<sigprocmask>(2), to prevent the signals being handled "
8380 "according to their default dispositions.  It is not possible to receive "
8381 "B<SIGKILL> or B<SIGSTOP> signals via a signalfd file descriptor; these "
8382 "signals are silently ignored if specified in I<mask>."
8383 msgstr ""
8384 "I<mask> 引き数には、呼び出し元がこのファイルディスクリプタ経由で受け付けたい "
8385 "シグナル集合を指定する。この引き数で指定するシグナル集合の内容は、 "
8386 "B<sigsetops>(3)  で説明されているマクロを使って初期化することができる。 通"
8387 "常、ファイルディスクリプタ経由で受信するシグナル集合は、 そのシグナルがデフォ"
8388 "ルトの配送方法に基いて処理されるのを防ぐために、 B<sigprocmask>(2)  を使って"
8389 "ブロックしておくべきである。 シグナル B<SIGKILL> と B<SIGSTOP> を signalfd "
8390 "ファイルディスクリプタ経由で受信することはできない。 これらのシグナルが "
8391 "I<mask> で指定された場合には黙って無視される。"
8392
8393 #. type: Plain text
8394 #: build/C/man2/signalfd.2:72
8395 msgid ""
8396 "If the I<fd> argument is -1, then the call creates a new file descriptor and "
8397 "associates the signal set specified in I<mask> with that descriptor.  If "
8398 "I<fd> is not -1, then it must specify a valid existing signalfd file "
8399 "descriptor, and I<mask> is used to replace the signal set associated with "
8400 "that descriptor."
8401 msgstr ""
8402 "I<fd> 引き数が -1 の場合、 B<signalfd>()  は新しいファイルディスクリプタを生"
8403 "成し、 I<mask> で指定されたシグナル集合をそのファイルディスクリプタに関連付け"
8404 "る。 I<fd> 引き数が -1 以外の場合、 I<fd> には有効な既存の signalfd ファイル"
8405 "ディスクリプタを指定しなければならず、 そのディスクリプタに関連付けられている"
8406 "シグナル集合は I<mask> を使って置き換えられる。"
8407
8408 #. type: Plain text
8409 #: build/C/man2/signalfd.2:77
8410 msgid ""
8411 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
8412 "I<flags> to change the behaviour of B<signalfd>():"
8413 msgstr ""
8414 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
8415 "ることで、 B<signalfd>()  の振舞いを変更することができる。"
8416
8417 #. type: TP
8418 #: build/C/man2/signalfd.2:77
8419 #, no-wrap
8420 msgid "B<SFD_NONBLOCK>"
8421 msgstr "B<SFD_NONBLOCK>"
8422
8423 #. type: TP
8424 #: build/C/man2/signalfd.2:85
8425 #, no-wrap
8426 msgid "B<SFD_CLOEXEC>"
8427 msgstr "B<SFD_CLOEXEC>"
8428
8429 #. type: Plain text
8430 #: build/C/man2/signalfd.2:102
8431 msgid ""
8432 "B<signalfd>()  returns a file descriptor that supports the following "
8433 "operations:"
8434 msgstr ""
8435 "B<signalfd>()  が返すファイルディスクリプタは以下の操作をサポートしている。"
8436
8437 #. type: Plain text
8438 #: build/C/man2/signalfd.2:121
8439 msgid ""
8440 "If one or more of the signals specified in I<mask> is pending for the "
8441 "process, then the buffer supplied to B<read>(2)  is used to return one or "
8442 "more I<signalfd_siginfo> structures (see below) that describe the signals.  "
8443 "The B<read>(2)  returns information for as many signals as are pending and "
8444 "will fit in the supplied buffer.  The buffer must be at least I<sizeof"
8445 "(struct signalfd_siginfo)> bytes.  The return value of the B<read>(2)  is "
8446 "the total number of bytes read."
8447 msgstr ""
8448 "I<mask> に指定されているシグナルのうち一つ以上がそのプロセスに対して 処理待"
8449 "ち (pending) であれば、それらのシグナルの情報が B<read>(2)  に渡されたバッ"
8450 "ファを使って、 I<signalfd_siginfo> 構造体に格納されて返される。 B<read>(2)  "
8451 "は、バッファに格納可能な範囲でできるだけ多くの処理待ちのシグナルに ついての情"
8452 "報を返す。 バッファは最低でも I<sizeof(struct signalfd_siginfo)> バイトの大き"
8453 "さがなければならない。 B<read>(2)  の返り値は読み出されたトータルのバイト数で"
8454 "ある。"
8455
8456 #. type: Plain text
8457 #: build/C/man2/signalfd.2:129
8458 msgid ""
8459 "As a consequence of the B<read>(2), the signals are consumed, so that they "
8460 "are no longer pending for the process (i.e., will not be caught by signal "
8461 "handlers, and cannot be accepted using B<sigwaitinfo>(2))."
8462 msgstr ""
8463 "B<read>(2)  が行われた結果、シグナルは消費され、 これらのシグナルはそのプロセ"
8464 "スに対しては処理待ちではなくなる (つまり、シグナルハンドラで捕捉されることも"
8465 "なく、 B<sigwaitinfo>(2)  を使って受け取ることもできなくなる)。"
8466
8467 #. type: Plain text
8468 #: build/C/man2/signalfd.2:140
8469 msgid ""
8470 "If none of the signals in I<mask> is pending for the process, then the "
8471 "B<read>(2)  either blocks until one of the signals in I<mask> is generated "
8472 "for the process, or fails with the error B<EAGAIN> if the file descriptor "
8473 "has been made nonblocking."
8474 msgstr ""
8475 "I<mask> に指定されているシグナルがそのプロセスに対して一つも処理待ちでなけれ"
8476 "ば、 B<read>(2)  は、 I<mask> で指定されたシグナルのうちいずれか一つがそのプ"
8477 "ロセスに対して発生するまで 停止 (block) する、もしくはファイルディスクリプタ"
8478 "が非停止 (nonblocking)  に設定されている場合はエラー B<EAGAIN> で失敗する。"
8479
8480 #. type: Plain text
8481 #: build/C/man2/signalfd.2:153
8482 msgid ""
8483 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
8484 "B<poll>(2)  B<POLLIN> flag)  if one or more of the signals in I<mask> is "
8485 "pending for the process."
8486 msgstr ""
8487 "I<mask> に指定されたシグナルのうち一つ以上がそのプロセスに対して処理待ちであ"
8488 "れば、 ファイルディスクリプタは読み出し可能となる (B<select>(2)  の "
8489 "I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
8490
8491 #. type: Plain text
8492 #: build/C/man2/signalfd.2:160
8493 msgid ""
8494 "The signalfd file descriptor also supports the other file-descriptor "
8495 "multiplexing APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
8496 msgstr ""
8497 "signalfd ファイルディスクリプタは、これ以外のファイルディスクリプタ 多重 API "
8498 "である B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
8499
8500 #. type: Plain text
8501 #: build/C/man2/signalfd.2:165
8502 msgid ""
8503 "When the file descriptor is no longer required it should be closed.  When "
8504 "all file descriptors associated with the same signalfd object have been "
8505 "closed, the resources for object are freed by the kernel."
8506 msgstr ""
8507 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
8508 "る。 同じ signalfd オブジェクトに関連付けられたファイルディスクリプタが全て "
8509 "クローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
8510
8511 #. type: SS
8512 #: build/C/man2/signalfd.2:165
8513 #, no-wrap
8514 msgid "The signalfd_siginfo structure"
8515 msgstr "signalfd_siginfo 構造体"
8516
8517 #. type: Plain text
8518 #: build/C/man2/signalfd.2:171
8519 msgid ""
8520 "The format of the I<signalfd_siginfo> structure(s) returned by B<read>(2)s "
8521 "from a signalfd file descriptor is as follows:"
8522 msgstr ""
8523 "signalfd ファイルディスクリプタからの B<read>(2)  で返される "
8524 "I<signalfd_siginfo> 構造体のフォーマットは以下の通りである。"
8525
8526 #.  ssi_trapno is unused on most arches
8527 #.  FIXME Since Linux 2.6.37 there is 'uint16_t ssi_addr_lsb'
8528 #.  which is not yet documented
8529 #. type: Plain text
8530 #: build/C/man2/signalfd.2:198
8531 #, no-wrap
8532 msgid ""
8533 "struct signalfd_siginfo {\n"
8534 "    uint32_t ssi_signo;   /* Signal number */\n"
8535 "    int32_t  ssi_errno;   /* Error number (unused) */\n"
8536 "    int32_t  ssi_code;    /* Signal code */\n"
8537 "    uint32_t ssi_pid;     /* PID of sender */\n"
8538 "    uint32_t ssi_uid;     /* Real UID of sender */\n"
8539 "    int32_t  ssi_fd;      /* File descriptor (SIGIO) */\n"
8540 "    uint32_t ssi_tid;     /* Kernel timer ID (POSIX timers)\n"
8541 "    uint32_t ssi_band;    /* Band event (SIGIO) */\n"
8542 "    uint32_t ssi_overrun; /* POSIX timer overrun count */\n"
8543 "    uint32_t ssi_trapno;  /* Trap number that caused signal */\n"
8544 "    int32_t  ssi_status;  /* Exit status or signal (SIGCHLD) */\n"
8545 "    int32_t  ssi_int;     /* Integer sent by sigqueue(3) */\n"
8546 "    uint64_t ssi_ptr;     /* Pointer sent by sigqueue(3) */\n"
8547 "    uint64_t ssi_utime;   /* User CPU time consumed (SIGCHLD) */\n"
8548 "    uint64_t ssi_stime;   /* System CPU time consumed (SIGCHLD) */\n"
8549 "    uint64_t ssi_addr;    /* Address that generated signal\n"
8550 "                             (for hardware-generated signals) */\n"
8551 "    uint8_t  pad[I<X>];      /* Pad size to 128 bytes (allow for\n"
8552 "                              additional fields in the future) */\n"
8553 "};\n"
8554 msgstr ""
8555 "struct signalfd_siginfo {\n"
8556 "struct signalfd_siginfo {\n"
8557 "    uint32_t ssi_signo;   /* シグナル番号 */\n"
8558 "    int32_t  ssi_errno;   /* エラー番号 (未使用) */\n"
8559 "    int32_t  ssi_code;    /* シグナルコード */\n"
8560 "    uint32_t ssi_pid;     /* 送信元の PID */\n"
8561 "    uint32_t ssi_uid;     /* 送信元の実 UID */\n"
8562 "    int32_t  ssi_fd;      /* ファイルディスクリプタ (SIGIO) */\n"
8563 "    uint32_t ssi_tid;     /* カーネルタイマ ID (POSIX タイマ)\n"
8564 "    uint32_t ssi_band;    /* Band イベント (SIGIO) */\n"
8565 "    uint32_t ssi_overrun; /* POSIX タイマのオーバーラン回数 */\n"
8566 "    uint32_t ssi_trapno;  /* シグナルの原因となったトラップ番号 */\n"
8567 "    int32_t  ssi_status;  /* 終了ステータスかシグナル (SIGCHLD) */\n"
8568 "    int32_t  ssi_int;     /* sigqueue(3) から送られた整数 */\n"
8569 "    uint64_t ssi_ptr;     /* sigqueue(3) から送られたポインタ */\n"
8570 "    uint64_t ssi_utime;   /* 消費したユーザ CPU 時間 (SIGCHLD) */\n"
8571 "    uint64_t ssi_stime;   /* 消費したシステム CPU 時間 (SIGCHLD) */\n"
8572 "    uint64_t ssi_addr;    /* シグナルを生成したアドレス\n"
8573 "                             (ハードウェアが生成したシグナルの場合) */\n"
8574 "    uint8_t  pad[I<X>];      /* pad の大きさは 128 バイト\n"
8575 "                             (将来のフィールド追加用の場所の確保) */\n"
8576 "};\n"
8577
8578 #. type: Plain text
8579 #: build/C/man2/signalfd.2:221
8580 msgid ""
8581 "Each of the fields in this structure is analogous to the similarly named "
8582 "field in the I<siginfo_t> structure.  The I<siginfo_t> structure is "
8583 "described in B<sigaction>(2).  Not all fields in the returned "
8584 "I<signalfd_siginfo> structure will be valid for a specific signal; the set "
8585 "of valid fields can be determined from the value returned in the I<ssi_code> "
8586 "field.  This field is the analog of the I<siginfo_t> I<si_code> field; see "
8587 "B<sigaction>(2)  for details."
8588 msgstr ""
8589 "I<signalfd_siginfo> 構造体の各フィールドは、 I<siginfo_t> 構造体の同じような"
8590 "名前のフィールドと同様である。 I<siginfo_t> 構造体については B<sigaction>"
8591 "(2)  に説明がある。 返された I<signalfd_siginfo> 構造体の全てのフィールドがあ"
8592 "るシグナルに対して有効なわけではない。 どのフィールドが有効かは、 "
8593 "I<ssi_code> フィールドで返される値から判定することができる。 このフィールド"
8594 "は I<siginfo_t> の I<si_code> フィールドと同様である。詳細は B<sigaction>"
8595 "(2)  を参照。"
8596
8597 #. type: SS
8598 #: build/C/man2/signalfd.2:221 build/C/man2/timerfd_create.2:269
8599 #, no-wrap
8600 msgid "fork(2) semantics"
8601 msgstr "fork(2) での扱い"
8602
8603 #. type: Plain text
8604 #: build/C/man2/signalfd.2:229
8605 msgid ""
8606 "After a B<fork>(2), the child inherits a copy of the signalfd file "
8607 "descriptor.  A B<read>(2)  from the file descriptor in the child will return "
8608 "information about signals queued to the child."
8609 msgstr ""
8610 "B<fork>(2)  が行われると、子プロセスは signalfd ファイルディスクリプタのコ"
8611 "ピーを 継承する。 子プロセスでこのファイルディスクリプタから B<read>(2)  を行"
8612 "うと、子プロセスに対するキューに入っているシグナルに関する 情報が返される。"
8613
8614 #. type: SS
8615 #: build/C/man2/signalfd.2:229 build/C/man2/timerfd_create.2:281
8616 #, no-wrap
8617 msgid "execve(2) semantics"
8618 msgstr "execve(2) での扱い"
8619
8620 #. type: Plain text
8621 #: build/C/man2/signalfd.2:241
8622 msgid ""
8623 "Just like any other file descriptor, a signalfd file descriptor remains open "
8624 "across an B<execve>(2), unless it has been marked for close-on-exec (see "
8625 "B<fcntl>(2)).  Any signals that were available for reading before the "
8626 "B<execve>(2)  remain available to the newly loaded program.  (This is "
8627 "analogous to traditional signal semantics, where a blocked signal that is "
8628 "pending remains pending across an B<execve>(2).)"
8629 msgstr ""
8630 "他のファイルディスクリプタと全く同様に、 signalfd ファイルディスクリプタも "
8631 "B<execve>(2)  の前後でオープンされたままとなる。但し、そのファイルディスクリ"
8632 "プタに close-on-exec のマーク (B<fcntl>(2)  参照) が付いている場合はクローズ"
8633 "される。 B<execve>(2)  の前に読み出し可能となっていた全てのシグナルは新しく起"
8634 "動されたプログラム でも引き続き読み出し可能である (これは伝統的なシグナルの扱"
8635 "いと同じであり、 処理待ちのブロックされたシグナルは B<execve>(2)  の前後で処"
8636 "理待ちのままとなる)。"
8637
8638 #. type: SS
8639 #: build/C/man2/signalfd.2:241
8640 #, no-wrap
8641 msgid "Thread semantics"
8642 msgstr "スレッドでの扱い"
8643
8644 #. type: Plain text
8645 #: build/C/man2/signalfd.2:251
8646 msgid ""
8647 "The semantics of signalfd file descriptors in a multithreaded program mirror "
8648 "the standard semantics for signals.  In other words, when a thread reads "
8649 "from a signalfd file descriptor, it will read the signals that are directed "
8650 "to the thread itself and the signals that are directed to the process (i.e., "
8651 "the entire thread group).  (A thread will not be able to read signals that "
8652 "are directed to other threads in the process.)"
8653 msgstr ""
8654 "マルチスレッドプログラムにおける signalfd ファイルディスクリプタの扱いは シグ"
8655 "ナルの標準的な扱いと全く同じである。 言い換えると、あるスレッドが signalfd "
8656 "ファイルディスクリプタから 読み出しを行うと、そのスレッド自身宛てのシグナルと"
8657 "プロセス (すなわち スレッドグループ全体) 宛てのシグナルが読み出される。 (ス"
8658 "レッドは同じプロセスの他のスレッド宛てのシグナルを読み出すことはできない。)"
8659
8660 #. type: Plain text
8661 #: build/C/man2/signalfd.2:265
8662 msgid ""
8663 "On success, B<signalfd>()  returns a signalfd file descriptor; this is "
8664 "either a new file descriptor (if I<fd> was -1), or I<fd> if I<fd> was a "
8665 "valid signalfd file descriptor.  On error, -1 is returned and I<errno> is "
8666 "set to indicate the error."
8667 msgstr ""
8668 "成功すると、 B<signalfd>()  は signalfd ファイルディスクリプタを返す。 返され"
8669 "るファイルディスクリプタは、 I<fd> が -1 の場合は新規のファイルディスクリプタ"
8670 "であり、 I<fd> が有効な signalfd ファイルディスクリプタだった場合は I<fd> 自"
8671 "身である。 エラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
8672
8673 #. type: Plain text
8674 #: build/C/man2/signalfd.2:271
8675 msgid "The I<fd> file descriptor is not a valid file descriptor."
8676 msgstr "ファイルディスクリプタ I<fd> が有効なファイルディスクリプタでない。"
8677
8678 #.  or, the
8679 #.  .I sizemask
8680 #.  argument is not equal to
8681 #.  .IR sizeof(sigset_t) ;
8682 #. type: Plain text
8683 #: build/C/man2/signalfd.2:279
8684 msgid "I<fd> is not a valid signalfd file descriptor."
8685 msgstr "I<fd> が有効な signalfd ファイルディスクリプタではない。"
8686
8687 #. type: Plain text
8688 #: build/C/man2/signalfd.2:286 build/C/man2/timerfd_create.2:320
8689 msgid ""
8690 "I<flags> is invalid; or, in Linux 2.6.26 or earlier, I<flags> is nonzero."
8691 msgstr ""
8692 "I<flags> が無効である。もしくは、Linux 2.6.26 以前の場合には I<flags> が 0 以"
8693 "外である。"
8694
8695 #. type: Plain text
8696 #: build/C/man2/signalfd.2:289 build/C/man2/timerfd_create.2:323
8697 msgid "The per-process limit of open file descriptors has been reached."
8698 msgstr ""
8699 "オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。"
8700
8701 #. type: Plain text
8702 #: build/C/man2/signalfd.2:299
8703 msgid "There was insufficient memory to create a new signalfd file descriptor."
8704 msgstr ""
8705 "新しい signalfd ファイルディスクリプタを生成するのに十分なメモリがなかった。"
8706
8707 #.  signalfd() is in glibc 2.7, but reportedly does not build
8708 #. type: Plain text
8709 #: build/C/man2/signalfd.2:307
8710 msgid ""
8711 "B<signalfd>()  is available on Linux since kernel 2.6.22.  Working support "
8712 "is provided in glibc since version 2.8.  The B<signalfd4>()  system call "
8713 "(see NOTES) is available on Linux since kernel 2.6.27."
8714 msgstr ""
8715 "B<signalfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
8716 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<signalfd4>()  "
8717 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
8718 "る。"
8719
8720 #. type: Plain text
8721 #: build/C/man2/signalfd.2:312
8722 msgid "B<signalfd>()  and B<signalfd4>()  are Linux-specific."
8723 msgstr "B<signalfd>()  と B<signalfd4>()  は Linux 固有である。"
8724
8725 #. type: Plain text
8726 #: build/C/man2/signalfd.2:322
8727 msgid ""
8728 "The underlying Linux system call requires an additional argument, I<size_t "
8729 "sizemask>, which specifies the size of the I<mask> argument.  The glibc "
8730 "B<signalfd>()  wrapper function does not include this argument, since it "
8731 "provides the required value for the underlying system call."
8732 msgstr ""
8733 "実際の Linux のシステムコールでは I<size_t sizemask> という引き数が追加で必要"
8734 "である。この引き数で I<mask> のサイズを指定する。 glibc の B<signalfd>()  "
8735 "ラッパー関数にはこの引き数は含まれず、 ラッパー関数が必要な値を計算して内部で"
8736 "呼び出すシステムコールに提供する。"
8737
8738 #. type: Plain text
8739 #: build/C/man2/signalfd.2:336
8740 msgid ""
8741 "A process can create multiple signalfd file descriptors.  This makes it "
8742 "possible to accept different signals on different file descriptors.  (This "
8743 "may be useful if monitoring the file descriptors using B<select>(2), B<poll>"
8744 "(2), or B<epoll>(7): the arrival of different signals will make different "
8745 "descriptors ready.)  If a signal appears in the I<mask> of more than one of "
8746 "the file descriptors, then occurrences of that signal can be read (once) "
8747 "from any one of the descriptors."
8748 msgstr ""
8749 "一つのプロセスは複数の signalfd ファイルディスクリプタを生成することができ"
8750 "る。 これにより、異なるファイルディスクリプタで異なるシグナルを受け取ること"
8751 "が できる (この機能は B<select>(2), B<poll>(2), B<epoll>(7)  を使ってファイル"
8752 "ディスクリプタを監視する場合に有用かもしれない。 異なるシグナルが到着すると、"
8753 "異なるファイルディスクリプタが利用可能に なるからだ)。 一つのシグナルが二つ以"
8754 "上のファイルディスクリプタの I<mask> に含まれている場合、そのシグナルの発生は"
8755 "そのシグナルを I<mask> に含むファイルディスクリプタのうちいずれか一つから読み"
8756 "出すことができる。"
8757
8758 #. type: Plain text
8759 #: build/C/man2/signalfd.2:352
8760 msgid ""
8761 "There are two underlying Linux system calls: B<signalfd>()  and the more "
8762 "recent B<signalfd4>().  The former system call does not implement a I<flags> "
8763 "argument.  The latter system call implements the I<flags> values described "
8764 "above.  Starting with glibc 2.9, the B<signalfd>()  wrapper function will "
8765 "use B<signalfd4>()  where it is available."
8766 msgstr ""
8767 "下層にある Linux システムコールは二種類あり、 B<signalfd>()  と、もっと新し"
8768 "い B<signalfd4>()  である。 B<signalfd>()  は I<flags> 引き数を実装していな"
8769 "い。 B<signalfd4>()  では上記の値の I<flags> が実装されている。 glibc 2.9 以"
8770 "降では、 B<signalfd>()  のラッパー関数は、 B<signalfd4>()  が利用可能であれ"
8771 "ば、これを使用する。"
8772
8773 #.  The fix also was put into 2.6.24.5
8774 #. type: Plain text
8775 #: build/C/man2/signalfd.2:360
8776 msgid ""
8777 "In kernels before 2.6.25, the I<ssi_ptr> and I<ssi_int> fields are not "
8778 "filled in with the data accompanying a signal sent by B<sigqueue>(3)."
8779 msgstr ""
8780 "カーネル 2.6.25 より前では、 B<sigqueue>(3)  により送信されたシグナルと一緒に"
8781 "渡されるデータでは、フィールド I<ssi_ptr> と I<ssi_int> は設定されない。"
8782
8783 #. type: Plain text
8784 #: build/C/man2/signalfd.2:370
8785 msgid ""
8786 "The program below accepts the signals B<SIGINT> and B<SIGQUIT> via a "
8787 "signalfd file descriptor.  The program terminates after accepting a "
8788 "B<SIGQUIT> signal.  The following shell session demonstrates the use of the "
8789 "program:"
8790 msgstr ""
8791 "下記のプログラムは、シグナル B<SIGINT> と B<SIGQUIT> を signalfd ファイルディ"
8792 "スクリプタ経由で受信する。 シグナル B<SIGQUIT> 受信後にプログラムは終了す"
8793 "る。 以下に示すシェルセッションにこのプログラムの使い方を示す。"
8794
8795 #. type: Plain text
8796 #: build/C/man2/signalfd.2:381
8797 #, no-wrap
8798 msgid ""
8799 "$B< ./signalfd_demo>\n"
8800 "B<^C>                   # Control-C generates SIGINT\n"
8801 "Got SIGINT\n"
8802 "B<^C>\n"
8803 "Got SIGINT\n"
8804 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
8805 "Got SIGQUIT\n"
8806 "$\n"
8807 msgstr ""
8808 "$B< ./signalfd_demo>\n"
8809 "B<^C>                   # Control-C generates SIGINT\n"
8810 "Got SIGINT\n"
8811 "B<^C>\n"
8812 "Got SIGINT\n"
8813 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
8814 "Got SIGQUIT\n"
8815 "$\n"
8816
8817 #. type: Plain text
8818 #: build/C/man2/signalfd.2:391
8819 #, no-wrap
8820 msgid ""
8821 "#include E<lt>sys/signalfd.hE<gt>\n"
8822 "#include E<lt>signal.hE<gt>\n"
8823 "#include E<lt>unistd.hE<gt>\n"
8824 "#include E<lt>stdlib.hE<gt>\n"
8825 "#include E<lt>stdio.hE<gt>\n"
8826 msgstr ""
8827 "#include E<lt>sys/signalfd.hE<gt>\n"
8828 "#include E<lt>signal.hE<gt>\n"
8829 "#include E<lt>unistd.hE<gt>\n"
8830 "#include E<lt>stdlib.hE<gt>\n"
8831 "#include E<lt>stdio.hE<gt>\n"
8832
8833 #. type: Plain text
8834 #: build/C/man2/signalfd.2:402
8835 #, no-wrap
8836 msgid ""
8837 "int\n"
8838 "main(int argc, char *argv[])\n"
8839 "{\n"
8840 "    sigset_t mask;\n"
8841 "    int sfd;\n"
8842 "    struct signalfd_siginfo fdsi;\n"
8843 "    ssize_t s;\n"
8844 msgstr ""
8845 "int\n"
8846 "main(int argc, char *argv[])\n"
8847 "{\n"
8848 "    sigset_t mask;\n"
8849 "    int sfd;\n"
8850 "    struct signalfd_siginfo fdsi;\n"
8851 "    ssize_t s;\n"
8852
8853 #. type: Plain text
8854 #: build/C/man2/signalfd.2:406
8855 #, no-wrap
8856 msgid ""
8857 "    sigemptyset(&mask);\n"
8858 "    sigaddset(&mask, SIGINT);\n"
8859 "    sigaddset(&mask, SIGQUIT);\n"
8860 msgstr ""
8861 "    sigemptyset(&mask);\n"
8862 "    sigaddset(&mask, SIGINT);\n"
8863 "    sigaddset(&mask, SIGQUIT);\n"
8864
8865 #. type: Plain text
8866 #: build/C/man2/signalfd.2:409
8867 #, no-wrap
8868 msgid ""
8869 "    /* Block signals so that they aren\\(aqt handled\n"
8870 "       according to their default dispositions */\n"
8871 msgstr ""
8872 "    /* Block signals so that they aren\\(aqt handled\n"
8873 "       according to their default dispositions */\n"
8874
8875 #. type: Plain text
8876 #: build/C/man2/signalfd.2:412
8877 #, no-wrap
8878 msgid ""
8879 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
8880 "        handle_error(\"sigprocmask\");\n"
8881 msgstr ""
8882 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
8883 "        handle_error(\"sigprocmask\");\n"
8884
8885 #. type: Plain text
8886 #: build/C/man2/signalfd.2:416
8887 #, no-wrap
8888 msgid ""
8889 "    sfd = signalfd(-1, &mask, 0);\n"
8890 "    if (sfd == -1)\n"
8891 "        handle_error(\"signalfd\");\n"
8892 msgstr ""
8893 "    sfd = signalfd(-1, &mask, 0);\n"
8894 "    if (sfd == -1)\n"
8895 "        handle_error(\"signalfd\");\n"
8896
8897 #. type: Plain text
8898 #: build/C/man2/signalfd.2:421
8899 #, no-wrap
8900 msgid ""
8901 "    for (;;) {\n"
8902 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
8903 "        if (s != sizeof(struct signalfd_siginfo))\n"
8904 "            handle_error(\"read\");\n"
8905 msgstr ""
8906 "    for (;;) {\n"
8907 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
8908 "        if (s != sizeof(struct signalfd_siginfo))\n"
8909 "            handle_error(\"read\");\n"
8910
8911 #. type: Plain text
8912 #: build/C/man2/signalfd.2:432
8913 #, no-wrap
8914 msgid ""
8915 "        if (fdsi.ssi_signo == SIGINT) {\n"
8916 "            printf(\"Got SIGINT\\en\");\n"
8917 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
8918 "            printf(\"Got SIGQUIT\\en\");\n"
8919 "            exit(EXIT_SUCCESS);\n"
8920 "        } else {\n"
8921 "            printf(\"Read unexpected signal\\en\");\n"
8922 "        }\n"
8923 "    }\n"
8924 "}\n"
8925 msgstr ""
8926 "        if (fdsi.ssi_signo == SIGINT) {\n"
8927 "            printf(\"Got SIGINT\\en\");\n"
8928 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
8929 "            printf(\"Got SIGQUIT\\en\");\n"
8930 "            exit(EXIT_SUCCESS);\n"
8931 "        } else {\n"
8932 "            printf(\"Read unexpected signal\\en\");\n"
8933 "        }\n"
8934 "    }\n"
8935 "}\n"
8936
8937 #. type: Plain text
8938 #: build/C/man2/signalfd.2:446
8939 msgid ""
8940 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
8941 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
8942 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
8943 msgstr ""
8944 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
8945 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
8946 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
8947
8948 #. type: TH
8949 #: build/C/man3/sigpause.3:25
8950 #, no-wrap
8951 msgid "SIGPAUSE"
8952 msgstr "SIGPAUSE"
8953
8954 #. type: TH
8955 #: build/C/man3/sigpause.3:25
8956 #, no-wrap
8957 msgid "2014-01-07"
8958 msgstr "2014-01-07"
8959
8960 #. type: Plain text
8961 #: build/C/man3/sigpause.3:28
8962 msgid "sigpause - atomically release blocked signals and wait for interrupt"
8963 msgstr "sigpause - ブロックされたシグナルをアトミックに解放して割り込みを待つ"
8964
8965 #. type: Plain text
8966 #: build/C/man3/sigpause.3:33
8967 #, no-wrap
8968 msgid "B<int sigpause(int >I<sigmask>B<);  /* BSD (but see NOTES) */>\n"
8969 msgstr "B<int sigpause(int >I<sigmask>B<);  /* BSD (ただし「備考」を参照) */>\n"
8970
8971 #. type: Plain text
8972 #: build/C/man3/sigpause.3:35
8973 #, no-wrap
8974 msgid "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
8975 msgstr "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
8976
8977 #. type: Plain text
8978 #: build/C/man3/sigpause.3:41
8979 msgid "Don't use this function.  Use B<sigsuspend>(2)  instead."
8980 msgstr "この関数を使わないこと。 代わりに B<sigsuspend>(2)  を使うこと。"
8981
8982 #. type: Plain text
8983 #: build/C/man3/sigpause.3:48
8984 msgid ""
8985 "The function B<sigpause>()  is designed to wait for some signal.  It changes "
8986 "the process's signal mask (set of blocked signals), and then waits for a "
8987 "signal to arrive.  Upon arrival of a signal, the original signal mask is "
8988 "restored."
8989 msgstr ""
8990 "関数 B<sigpause>()  はシグナルを待つように設計されている。 この関数はプロセス"
8991 "のシグナルマスク (ブロックされたシグナルのセット) を変更し、 シグナルが到着す"
8992 "るのを待つ。 シグナルが到着すると、シグナルマスクは元に戻される。"
8993
8994 #. type: Plain text
8995 #: build/C/man3/sigpause.3:56
8996 msgid ""
8997 "If B<sigpause>()  returns, it was interrupted by a signal and the return "
8998 "value is -1 with I<errno> set to B<EINTR>."
8999 msgstr ""
9000 "B<sigpause>()  が返った場合、この関数はシグナルによって割り込まれている。 返"
9001 "り値は -1 で、 I<errno> は B<EINTR> に設定される。"
9002
9003 #. type: Plain text
9004 #: build/C/man3/sigpause.3:61
9005 msgid "The B<sigpause>()  function is thread-safe."
9006 msgstr "B<sigpause>() 関数はスレッドセーフである。"
9007
9008 #. type: Plain text
9009 #: build/C/man3/sigpause.3:65
9010 msgid "The System V version of B<sigpause>()  is standardized in POSIX.1-2001."
9011 msgstr "System V 版の B<sigpause>()  は POSIX.1-2001 で標準化されている。"
9012
9013 #.  __xpg_sigpause: UNIX 95, spec 1170, SVID, SVr4, XPG
9014 #. type: Plain text
9015 #: build/C/man3/sigpause.3:82
9016 msgid ""
9017 "The classical BSD version of this function appeared in 4.2BSD.  It sets the "
9018 "process's signal mask to I<sigmask>.  UNIX 95 standardized the incompatible "
9019 "System V version of this function, which removes only the specified signal "
9020 "I<sig> from the process's signal mask.  The unfortunate situation with two "
9021 "incompatible functions with the same name was solved by the B<\\%sigsuspend>"
9022 "(2)  function, that takes a I<sigset_t\\ *> argument (instead of an I<int>)."
9023 msgstr ""
9024 "この関数の古典的な BSD 版は 4.2BSD で登場した。 この関数はプロセスのシグナル"
9025 "マスクを I<sigmask> に設定する。 UNIX 95 では BSD 版と互換性のない System V "
9026 "版のこの関数が標準化された。 UNIX 95 版は、指定されたシグナル I<sig> をプロセ"
9027 "スのシグナルマスクから削除するだけである。 同じ名前で互換性のない 2 つの関数"
9028 "があるという不幸な事態は、 B<\\%sigsuspend>(2)  関数によって解消された。 この"
9029 "関数は (I<int> の代わりに)  B<sigset_t\\ *> 引き数をとる。"
9030
9031 #. type: Plain text
9032 #: build/C/man3/sigpause.3:85
9033 msgid ""
9034 "On Linux, this routine is a system call only on the Sparc (sparc64)  "
9035 "architecture."
9036 msgstr ""
9037 "Linux では、このルーチンは Sparc (sparc64) アーキテクチャでのみ システムコー"
9038 "ルとなっている。"
9039
9040 #. type: Plain text
9041 #: build/C/man3/sigpause.3:87
9042 msgid "Libc4 and libc5 know only about the BSD version."
9043 msgstr "libc4 と libc5 には BSD 版しかない。"
9044
9045 #.  For the BSD version, one usually uses a zero
9046 #.  .I sigmask
9047 #.  to indicate that no signals are to be blocked.
9048 #. type: Plain text
9049 #: build/C/man3/sigpause.3:111
9050 msgid ""
9051 "Glibc uses the BSD version if the B<_BSD_SOURCE> feature test macro is "
9052 "defined and none of B<_POSIX_SOURCE>, B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, "
9053 "B<_GNU_SOURCE>, or B<_SVID_SOURCE> is defined.  Otherwise, the System V "
9054 "version is used (and B<_XOPEN_SOURCE> must be defined to obtain the "
9055 "declaration).  Since glibc 2.19, only the System V version is exposed by "
9056 "I<E<lt>signal.hE<gt>>; applications that formerly used the BSD B<sigpause>"
9057 "()  should be amended to use B<sigsuspend>(2)."
9058 msgstr ""
9059 "機能検査マクロ B<_BSD_SOURCE> が定義され、 B<_POSIX_SOURCE>, "
9060 "B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, B<_GNU_SOURCE>, B<_SVID_SOURCE> のいず"
9061 "れも定義されていない場合、 glibc は BSD 版を使う。 それ以外の場合には、"
9062 "System V 版を使用する (宣言を得るためには B<_XOPEN_SOURCE> が定義されていなけ"
9063 "ればならない)。 glibc 2.19 以降では、 I<E<lt>signal.hE<gt>> では System V 版"
9064 "だけが公開される。 BSD 版の B<sigpause>() を使用していたアプリケーションは "
9065 "B<sigsuspend>(2) を使用するように修正すべきである。"
9066
9067 #. type: Plain text
9068 #: build/C/man3/sigpause.3:119
9069 msgid ""
9070 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<sigblock>"
9071 "(3), B<sigvec>(3), B<feature_test_macros>(7)"
9072 msgstr ""
9073 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<sigblock>"
9074 "(3), B<sigvec>(3), B<feature_test_macros>(7)"
9075
9076 #. type: TH
9077 #: build/C/man2/sigpending.2:29
9078 #, no-wrap
9079 msgid "SIGPENDING"
9080 msgstr "SIGPENDING"
9081
9082 #. type: TH
9083 #: build/C/man2/sigpending.2:29
9084 #, no-wrap
9085 msgid "2013-12-11"
9086 msgstr "2013-12-11"
9087
9088 #. type: Plain text
9089 #: build/C/man2/sigpending.2:32
9090 msgid "sigpending - examine pending signals"
9091 msgstr "sigpending - 処理待ちのシグナルの検査"
9092
9093 #. type: Plain text
9094 #: build/C/man2/sigpending.2:36
9095 msgid "B<int sigpending(sigset_t *>I<set>B<);>"
9096 msgstr "B<int sigpending(sigset_t *>I<set>B<);>"
9097
9098 #. type: Plain text
9099 #: build/C/man2/sigpending.2:45
9100 msgid ""
9101 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9102 "_POSIX_SOURCE"
9103 msgstr ""
9104 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9105 "_POSIX_SOURCE"
9106
9107 #. type: Plain text
9108 #: build/C/man2/sigpending.2:53
9109 msgid ""
9110 "B<sigpending>()  returns the set of signals that are pending for delivery to "
9111 "the calling thread (i.e., the signals which have been raised while "
9112 "blocked).  The mask of pending signals is returned in I<set>."
9113 msgstr ""
9114 "B<sigpending>()  は、呼び出し元のスレッドへの配送を待っている (pending) シグ"
9115 "ナル集合 (すなわち、禁止中に発生したシグナル) を返す。 処理待ちのシグナルのマ"
9116 "スクが I<set> に格納される。"
9117
9118 #. type: Plain text
9119 #: build/C/man2/sigpending.2:59
9120 msgid ""
9121 "B<sigpending>()  returns 0 on success and -1 on error.  In the event of an "
9122 "error, I<errno> is set to indicate the cause."
9123 msgstr ""
9124 "B<sigpending>() は成功した場合 0 を返す。 エラーの場合、 -1 を返し、I<errno> "
9125 "にエラーの原因を示す値を設定する。"
9126
9127 #. type: Plain text
9128 #: build/C/man2/sigpending.2:64
9129 msgid ""
9130 "I<set> points to memory which is not a valid part of the process address "
9131 "space."
9132 msgstr ""
9133 "I<set> が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。"
9134
9135 #. type: Plain text
9136 #: build/C/man2/sigpending.2:74
9137 msgid ""
9138 "If a signal is both blocked and has a disposition of \"ignored\", it is "
9139 "I<not> added to the mask of pending signals when generated."
9140 msgstr ""
9141 "シグナルが禁止 (ブロック) されており、かつ配送方法が \"ignored\" (無視) に"
9142 "なっている場合、そのシグナルが発生した場合に処理待ちシグナルのマスクにそのシ"
9143 "グナルは追加I<されない>。"
9144
9145 #. type: Plain text
9146 #: build/C/man2/sigpending.2:79
9147 msgid ""
9148 "The set of signals that is pending for a thread is the union of the set of "
9149 "signals that is pending for that thread and the set of signals that is "
9150 "pending for the process as a whole; see B<signal>(7)."
9151 msgstr ""
9152 "あるスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体への処理待ち"
9153 "のシグナル集合と、プロセス全体への処理待ちの シグナル集合をあわせたものであ"
9154 "る。 B<signal>(7)  参照。"
9155
9156 #. type: Plain text
9157 #: build/C/man2/sigpending.2:91
9158 msgid ""
9159 "In versions of glibc up to and including 2.2.1, there is a bug in the "
9160 "wrapper function for B<sigpending>()  which means that information about "
9161 "pending real-time signals is not correctly returned."
9162 msgstr ""
9163 "バージョン 2.2.1 以前の glibc では、 B<sigpending>()  のラッパー関数に、処理"
9164 "待ちのリアルタイムシグナルに関する情報が 正しく返されないというバグがある。"
9165
9166 #. type: Plain text
9167 #: build/C/man2/sigpending.2:99
9168 msgid ""
9169 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), B<sigsuspend>"
9170 "(2), B<sigsetops>(3), B<signal>(7)"
9171 msgstr ""
9172 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), B<sigsuspend>"
9173 "(2), B<sigsetops>(3), B<signal>(7)"
9174
9175 #. type: TH
9176 #: build/C/man2/sigprocmask.2:29
9177 #, no-wrap
9178 msgid "SIGPROCMASK"
9179 msgstr "SIGPROCMASK"
9180
9181 #. type: Plain text
9182 #: build/C/man2/sigprocmask.2:32
9183 msgid "sigprocmask - examine and change blocked signals"
9184 msgstr "sigprocmask - 禁止するシグナルの確認と変更"
9185
9186 #. type: Plain text
9187 #: build/C/man2/sigprocmask.2:37
9188 msgid ""
9189 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
9190 "*>I<oldset>B<);>"
9191 msgstr ""
9192 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
9193 "*>I<oldset>B<);>"
9194
9195 #. type: Plain text
9196 #: build/C/man2/sigprocmask.2:46
9197 msgid ""
9198 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9199 "_POSIX_SOURCE"
9200 msgstr ""
9201 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9202 "_POSIX_SOURCE"
9203
9204 #. type: Plain text
9205 #: build/C/man2/sigprocmask.2:55
9206 msgid ""
9207 "B<sigprocmask>()  is used to fetch and/or change the signal mask of the "
9208 "calling thread.  The signal mask is the set of signals whose delivery is "
9209 "currently blocked for the caller (see also B<signal>(7)  for more details)."
9210 msgstr ""
9211 "B<sigprocmask>()  を使うと、呼び出したスレッドのシグナルマスクの取得/変更がで"
9212 "きる。 シグナルマスクは、呼び出し元に対して現在配送が禁止されているシグナル"
9213 "の 集合のことである (詳細については B<signal>(7)  も参照のこと)。"
9214
9215 #. type: Plain text
9216 #: build/C/man2/sigprocmask.2:59
9217 msgid ""
9218 "The behavior of the call is dependent on the value of I<how>, as follows."
9219 msgstr "このコールの動作は I<how> の値によって決まる:"
9220
9221 #. type: TP
9222 #: build/C/man2/sigprocmask.2:59
9223 #, no-wrap
9224 msgid "B<SIG_BLOCK>"
9225 msgstr "B<SIG_BLOCK>"
9226
9227 #. type: Plain text
9228 #: build/C/man2/sigprocmask.2:64
9229 msgid ""
9230 "The set of blocked signals is the union of the current set and the I<set> "
9231 "argument."
9232 msgstr ""
9233 "禁止されたシグナルの集合は現在の値と I<set> 引き数を結合したものとなる。"
9234
9235 #. type: TP
9236 #: build/C/man2/sigprocmask.2:64
9237 #, no-wrap
9238 msgid "B<SIG_UNBLOCK>"
9239 msgstr "B<SIG_UNBLOCK>"
9240
9241 #. type: Plain text
9242 #: build/C/man2/sigprocmask.2:70
9243 msgid ""
9244 "The signals in I<set> are removed from the current set of blocked signals.  "
9245 "It is permissible to attempt to unblock a signal which is not blocked."
9246 msgstr ""
9247 "現在禁止されているシグナルの集合から I<set> にあるシグナルを取り除く。禁止さ"
9248 "れていないシグナルを取り除こうと することも認められている。"
9249
9250 #. type: TP
9251 #: build/C/man2/sigprocmask.2:70
9252 #, no-wrap
9253 msgid "B<SIG_SETMASK>"
9254 msgstr "B<SIG_SETMASK>"
9255
9256 #. type: Plain text
9257 #: build/C/man2/sigprocmask.2:74
9258 msgid "The set of blocked signals is set to the argument I<set>."
9259 msgstr "禁止されているシグナルの集合に I<set> 引き数を設定する。"
9260
9261 #. type: Plain text
9262 #: build/C/man2/sigprocmask.2:79
9263 msgid ""
9264 "If I<oldset> is non-NULL, the previous value of the signal mask is stored in "
9265 "I<oldset>."
9266 msgstr ""
9267 "I<oldset> が NULL でなければ、シグナルマスクの今までの値を I<oldset> に格納す"
9268 "る。"
9269
9270 #. type: Plain text
9271 #: build/C/man2/sigprocmask.2:88
9272 msgid ""
9273 "If I<set> is NULL, then the signal mask is unchanged (i.e., I<how> is "
9274 "ignored), but the current value of the signal mask is nevertheless returned "
9275 "in I<oldset> (if it is not NULL)."
9276 msgstr ""
9277 "I<set> が NULL であれば、シグナルマスクは変更されない (すなわち、 I<how> は無"
9278 "視される)。 I<set> の値にかかわらず、現在のシグナルマスクの値は I<oldset> に"
9279 "入れて返される (但し、 I<oldset> が NULL でない場合)。"
9280
9281 #. type: Plain text
9282 #: build/C/man2/sigprocmask.2:93
9283 msgid ""
9284 "The use of B<sigprocmask>()  is unspecified in a multithreaded process; see "
9285 "B<pthread_sigmask>(3)."
9286 msgstr ""
9287 "マルチスレッドのプロセスで B<sigprocmask>()  を使用した場合の動作は規定されて"
9288 "いない。 B<pthread_sigmask>(3)  を参照のこと。"
9289
9290 #. type: Plain text
9291 #: build/C/man2/sigprocmask.2:99
9292 msgid ""
9293 "B<sigprocmask>()  returns 0 on success and -1 on error.  In the event of an "
9294 "error, I<errno> is set to indicate the cause."
9295 msgstr ""
9296 "B<sigprocmask>() は成功した場合 0 を返す。 エラーの場合、 -1 を返し、 "
9297 "I<errno> にエラーの原因を示す値を設定する。"
9298
9299 #. type: Plain text
9300 #: build/C/man2/sigprocmask.2:107
9301 msgid ""
9302 "the I<set> or I<oldset> argument points outside the process's allocated "
9303 "address space."
9304 msgstr "引き数 I<set> か I<oldset> がプロセスに割り当てられたアドレス空間の外を指している。"
9305
9306 #. type: Plain text
9307 #: build/C/man2/sigprocmask.2:112
9308 msgid "The value specified in I<how> was invalid."
9309 msgstr "I<how> に指定された値が有効ではない。"
9310
9311 #. type: Plain text
9312 #: build/C/man2/sigprocmask.2:118
9313 msgid ""
9314 "It is not possible to block B<SIGKILL> or B<SIGSTOP>.  Attempts to do so are "
9315 "silently ignored."
9316 msgstr ""
9317 "B<SIGKILL> や B<SIGSTOP> を禁止することはできない。 禁止しようとしても黙って"
9318 "無視される。"
9319
9320 #. type: Plain text
9321 #: build/C/man2/sigprocmask.2:120
9322 msgid "Each of the threads in a process has its own signal mask."
9323 msgstr "プロセス内の各スレッドはそれぞれ専用のシグナルマスクを持つ。"
9324
9325 #. type: Plain text
9326 #: build/C/man2/sigprocmask.2:140
9327 msgid ""
9328 "If B<SIGBUS>, B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> are generated while they "
9329 "are blocked, the result is undefined, unless the signal was generated by "
9330 "B<kill>(2), B<sigqueue>(3), or B<raise>(3)."
9331 msgstr ""
9332 "シグナル B<SIGBUS>, B<SIGFPE>, B<SIGILL>, B<SIGSEGV> が禁止されている間に生成"
9333 "された場合で、 そのシグナルが B<kill>(2), B<sigqueue>(3), B<raise>(3)  によっ"
9334 "て生成されたものでないときには、 その後の動作は未定義である。"
9335
9336 #. type: Plain text
9337 #: build/C/man2/sigprocmask.2:155
9338 msgid ""
9339 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
9340 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
9341 "B<signal>(7)"
9342 msgstr ""
9343 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
9344 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
9345 "B<signal>(7)"
9346
9347 #. type: TH
9348 #: build/C/man3/sigqueue.3:28
9349 #, no-wrap
9350 msgid "SIGQUEUE"
9351 msgstr "SIGQUEUE"
9352
9353 #. type: TH
9354 #: build/C/man3/sigqueue.3:28 build/C/man3/sigwait.3:26
9355 #, no-wrap
9356 msgid "2013-12-16"
9357 msgstr "2013-12-16"
9358
9359 #. type: Plain text
9360 #: build/C/man3/sigqueue.3:31
9361 msgid "sigqueue - queue a signal and data to a process"
9362 msgstr "sigqueue - シグナルとデータをプロセスに送る"
9363
9364 #. type: Plain text
9365 #: build/C/man3/sigqueue.3:35
9366 msgid ""
9367 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
9368 ">I<value>B<);>"
9369 msgstr ""
9370 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
9371 ">I<value>B<);>"
9372
9373 #. type: Plain text
9374 #: build/C/man3/sigqueue.3:43
9375 msgid "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
9376 msgstr "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
9377
9378 #. type: Plain text
9379 #: build/C/man3/sigqueue.3:55
9380 msgid ""
9381 "B<sigqueue>()  sends the signal specified in I<sig> to the process whose PID "
9382 "is given in I<pid>.  The permissions required to send a signal are the same "
9383 "as for B<kill>(2).  As with B<kill>(2), the null signal (0) can be used to "
9384 "check if a process with a given PID exists."
9385 msgstr ""
9386 "B<sigqueue>()  は I<sig> で指定されたシグナルを、PID が I<pid> であるプロセス"
9387 "に送る。 シグナルを送るのに必要な権限は B<kill>(2)  と同じである。 B<kill>"
9388 "(2)  と同様に、ヌル・シグナル (0) を使って 指定した PID のプロセスが存在する"
9389 "かをチェックすることができる。"
9390
9391 #. type: Plain text
9392 #: build/C/man3/sigqueue.3:60
9393 msgid ""
9394 "The I<value> argument is used to specify an accompanying item of data "
9395 "(either an integer or a pointer value) to be sent with the signal, and has "
9396 "the following type:"
9397 msgstr ""
9398 "I<value> 引き数はシグナルと一緒に送るデータの付属アイテムを指定する。 "
9399 "I<value> は (整数またはポインタの値であり) 以下のような型である。"
9400
9401 #. type: Plain text
9402 #: build/C/man3/sigqueue.3:67
9403 #, no-wrap
9404 msgid ""
9405 "union sigval {\n"
9406 "    int   sival_int;\n"
9407 "    void *sival_ptr;\n"
9408 "};\n"
9409 msgstr ""
9410 "union sigval {\n"
9411 "    int   sival_int;\n"
9412 "    void *sival_ptr;\n"
9413 "};\n"
9414
9415 #. type: Plain text
9416 #: build/C/man3/sigqueue.3:83
9417 msgid ""
9418 "If the receiving process has installed a handler for this signal using the "
9419 "B<SA_SIGINFO> flag to B<sigaction>(2), then it can obtain this data via the "
9420 "I<si_value> field of the I<siginfo_t> structure passed as the second "
9421 "argument to the handler.  Furthermore, the I<si_code> field of that "
9422 "structure will be set to B<SI_QUEUE>."
9423 msgstr ""
9424 "受取先のプロセスに、このシグナルに対するハンドラを (B<sigaction>(2)  に "
9425 "B<SA_SIGINFO> を指定して) インストールしておくと、 そのハンドラの第 2 引き数"
9426 "に渡される I<siginfo_t> 構造体の I<si_value> フィールドによって、このデータを"
9427 "取得できる。 さらに、この構造体の I<si_code> フィールドは B<SI_QUEUE> に設定"
9428 "される。"
9429
9430 #. type: Plain text
9431 #: build/C/man3/sigqueue.3:91
9432 msgid ""
9433 "On success, B<sigqueue>()  returns 0, indicating that the signal was "
9434 "successfully queued to the receiving process.  Otherwise -1 is returned and "
9435 "I<errno> is set to indicate the error."
9436 msgstr ""
9437 "成功した場合、 B<sigqueue>()  は 0 を返す。 これは受け取り側プロセスの待ち行"
9438 "列に シグナルが正しく入れられたことを示す。 失敗した場合は -1 が返され、 "
9439 "I<errno> がエラーを表す値に設定される。"
9440
9441 #. type: Plain text
9442 #: build/C/man3/sigqueue.3:102
9443 msgid "I<sig> was invalid."
9444 msgstr "I<sig> が不正である。"
9445
9446 #. type: Plain text
9447 #: build/C/man3/sigqueue.3:108
9448 msgid ""
9449 "The process does not have permission to send the signal to the receiving "
9450 "process.  For the required permissions, see B<kill>(2)."
9451 msgstr ""
9452 "このプロセスには、受け取り側プロセスにシグナルを送る権限がない。 必要な権限に"
9453 "ついては、 B<kill>(2)  を参照すること。"
9454
9455 #. type: Plain text
9456 #: build/C/man3/sigqueue.3:112
9457 msgid "No process has a PID matching I<pid>."
9458 msgstr "I<pid> にマッチする PID のプロセスがない。"
9459
9460 #. type: Plain text
9461 #: build/C/man3/sigqueue.3:114
9462 msgid "This system call first appeared in Linux 2.2."
9463 msgstr "このシステムコールは Linux 2.2 で初めて登場した。"
9464
9465 #. type: Plain text
9466 #: build/C/man3/sigqueue.3:119
9467 msgid "The B<sigqueue>()  function is thread-safe."
9468 msgstr "B<sigqueue>() 関数はスレッドセーフである。"
9469
9470 #. type: Plain text
9471 #: build/C/man3/sigqueue.3:129
9472 msgid ""
9473 "If this function results in the sending of a signal to the process that "
9474 "invoked it, and that signal was not blocked by the calling thread, and no "
9475 "other threads were willing to handle this signal (either by having it "
9476 "unblocked, or by waiting for it using B<sigwait>(3)), then at least some "
9477 "signal must be delivered to this thread before this function returns."
9478 msgstr ""
9479 "この関数を呼び出したプロセスにこの関数がシグナルを送ったときに、 シグナルが呼"
9480 "び出し側スレッドにブロックされず、 かつ (シグナルがブロックされなかった、また"
9481 "は B<sigwait>(3)  を使用するのを待っていることにより)  このシグナルを扱うス"
9482 "レッドが何もない場合は、 この関数がリターンする前に、少なくとも そのスレッド"
9483 "に対してシグナルが配送されていなければならない。"
9484
9485 #. type: Plain text
9486 #: build/C/man3/sigqueue.3:144
9487 msgid ""
9488 "On Linux, this function is implemented using the B<rt_sigqueueinfo>(2)  "
9489 "system call.  The system call differs in its third argument, which is the "
9490 "I<siginfo_t> structure that will be supplied to the receiving process's "
9491 "signal handler or returned by the receiving process's B<sigtimedwait>(2)  "
9492 "call.  Inside the glibc B<sigqueue>()  wrapper, this argument, I<uinfo>, is "
9493 "initialized as follows:"
9494 msgstr ""
9495 "Linux では、この関数は B<rt_sigqueueinfo>(2)  システムコールを使って実装され"
9496 "ている。 両者には 3 番目の引き数に違いがあり、 B<rt_sigqueueinfo>(2)  では 3 "
9497 "番目の引き数は I<siginfo_t> 構造体である。 I<siginfo_t> 構造体は、シグナルを"
9498 "受信するプロセスのシグナルハンドラに渡されたり、 シグナル受信プロセスの "
9499 "B<sigtimedwait>(2)  システムコールから返されたりする。 glibc の B<sigqueue>"
9500 "()  ラッパー関数内部では、 この引き数 I<uinfo> は以下のように初期化される。"
9501
9502 #. type: Plain text
9503 #: build/C/man3/sigqueue.3:152
9504 #, no-wrap
9505 msgid ""
9506 "uinfo.si_signo = sig;      /* argument supplied to sigqueue() */\n"
9507 "uinfo.si_code = SI_QUEUE;\n"
9508 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
9509 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
9510 "uinfo.si_value = val;      /* argument supplied to sigqueue() */\n"
9511 msgstr ""
9512 "uinfo.si_signo = sig;      /* argument supplied to sigqueue() */\n"
9513 "uinfo.si_code = SI_QUEUE;\n"
9514 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
9515 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
9516 "uinfo.si_value = val;      /* argument supplied to sigqueue() */\n"
9517
9518 #. type: Plain text
9519 #: build/C/man3/sigqueue.3:162
9520 msgid ""
9521 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
9522 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
9523 msgstr ""
9524 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
9525 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
9526
9527 #. type: TH
9528 #: build/C/man2/sigreturn.2:29
9529 #, no-wrap
9530 msgid "SIGRETURN"
9531 msgstr "SIGRETURN"
9532
9533 #. type: Plain text
9534 #: build/C/man2/sigreturn.2:32
9535 msgid "sigreturn - return from signal handler and cleanup stack frame"
9536 msgstr "sigreturn - シグナル・ハンドラから返り、スタックを掃除する"
9537
9538 #. type: Plain text
9539 #: build/C/man2/sigreturn.2:34
9540 msgid "B<int sigreturn(unsigned long >I<__unused>B<);>"
9541 msgstr "B<int sigreturn(unsigned long >I<__unused>B<);>"
9542
9543 #. type: Plain text
9544 #: build/C/man2/sigreturn.2:42
9545 msgid ""
9546 "When the Linux kernel creates the stack frame for a signal handler, a call "
9547 "to B<sigreturn>()  is inserted into the stack frame so that upon return from "
9548 "the signal handler, B<sigreturn>()  will be called."
9549 msgstr ""
9550 "Linux カーネルは、 シグナル・ハンドラ用にスタック・フレームを作成する際、 "
9551 "B<sigreturn>()  をスタック・フレームに挿入し、シグナル・ハンドラが返るときに "
9552 "B<sigreturn>()  が呼ばれるようにする。"
9553
9554 #. type: Plain text
9555 #: build/C/man2/sigreturn.2:53
9556 msgid ""
9557 "This B<sigreturn>()  call undoes everything that was done\\(emchanging the "
9558 "process's signal mask, switching stacks (see B<sigaltstack>(2))\\(emin order "
9559 "to invoke the signal handler: it restores the process's signal mask, "
9560 "switches stacks, and restores the process's context (registers, processor "
9561 "flags), so that the process directly resumes execution at the point where it "
9562 "was interrupted by the signal."
9563 msgstr ""
9564 "B<sigreturn>()  は、シグナル・ハンドラを起動するために行ったことの全て \\(em "
9565 "プロセスのシグナルマスクの変更、スタックの切り替え (B<sigaltstack>(2)  参照) "
9566 "\\(em の取り消しを行う。 プロセスのシグナルマスクの復元、スタックの切り替"
9567 "え、 プロセスのコンテキスト (レジスタ、プロセッサ・フラグ) の復元を行い、 プ"
9568 "ロセスがシグナルにより割り込まれた場所からそのまま実行を 再開できるようにす"
9569 "る。"
9570
9571 #. type: Plain text
9572 #: build/C/man2/sigreturn.2:56
9573 msgid "B<sigreturn>()  never returns."
9574 msgstr "B<sigreturn>()  が返ることはない。"
9575
9576 #. type: SH
9577 #: build/C/man2/sigreturn.2:56
9578 #, no-wrap
9579 msgid "FILES"
9580 msgstr "ファイル"
9581
9582 #. type: Plain text
9583 #: build/C/man2/sigreturn.2:58
9584 msgid "/usr/src/linux/arch/i386/kernel/signal.c"
9585 msgstr "/usr/src/linux/arch/i386/kernel/signal.c"
9586
9587 #. type: Plain text
9588 #: build/C/man2/sigreturn.2:60
9589 msgid "/usr/src/linux/arch/alpha/kernel/entry.S"
9590 msgstr "/usr/src/linux/arch/alpha/kernel/entry.S"
9591
9592 #. type: Plain text
9593 #: build/C/man2/sigreturn.2:64
9594 msgid ""
9595 "B<sigreturn>()  is specific to Linux and should not be used in programs "
9596 "intended to be portable."
9597 msgstr ""
9598 "B<sigreturn>()  は Linux 特有であり、移植を意図したプログラムでは使用してはい"
9599 "けない。"
9600
9601 #. type: Plain text
9602 #: build/C/man2/sigreturn.2:74
9603 msgid ""
9604 "The B<sigreturn>()  call is used by the kernel to implement signal "
9605 "handlers.  It should B<never> be called directly.  Better yet, the specific "
9606 "use of the I<__unused> argument varies depending on the architecture."
9607 msgstr ""
9608 "B<sigreturn>()  コールは、シグナル・ハンドラを実装するためにカーネルにより使"
9609 "用される。 これを直接呼び出しては B<決して> いけない。さらに I<__unused> 引き"
9610 "数がどのように使われるかはそのアーキテクチャに依存して変化する。"
9611
9612 #. type: Plain text
9613 #: build/C/man2/sigreturn.2:80
9614 msgid ""
9615 "B<kill>(2), B<restart_syscall>(2), B<sigaltstack>(2), B<signal>(2), B<signal>"
9616 "(7)"
9617 msgstr ""
9618 "B<kill>(2), B<restart_syscall>(2), B<sigaltstack>(2), B<signal>(2), B<signal>"
9619 "(7)"
9620
9621 #. type: TH
9622 #: build/C/man3/sigset.3:26
9623 #, no-wrap
9624 msgid "SIGSET"
9625 msgstr "SIGSET"
9626
9627 #. type: Plain text
9628 #: build/C/man3/sigset.3:29
9629 msgid "sigset, sighold, sigrelse, sigignore - System V signal API"
9630 msgstr "sigset, sighold, sigrelse, sigignore - System V 版シグナル API"
9631
9632 #. type: Plain text
9633 #: build/C/man3/sigset.3:35
9634 msgid "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
9635 msgstr "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
9636
9637 #. type: Plain text
9638 #: build/C/man3/sigset.3:37
9639 msgid "B<int sighold(int >I<sig>B<);>"
9640 msgstr "B<int sighold(int >I<sig>B<);>"
9641
9642 #. type: Plain text
9643 #: build/C/man3/sigset.3:39
9644 msgid "B<int sigrelse(int >I<sig>B<);>"
9645 msgstr "B<int sigrelse(int >I<sig>B<);>"
9646
9647 #. type: Plain text
9648 #: build/C/man3/sigset.3:41
9649 msgid "B<int sigignore(int >I<sig>B<);>"
9650 msgstr "B<int sigignore(int >I<sig>B<);>"
9651
9652 #. type: Plain text
9653 #: build/C/man3/sigset.3:52
9654 msgid "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
9655 msgstr "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
9656
9657 #. type: Plain text
9658 #: build/C/man3/sigset.3:56
9659 msgid ""
9660 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
9661 msgstr ""
9662 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
9663
9664 #. type: Plain text
9665 #: build/C/man3/sigset.3:65
9666 msgid ""
9667 "These functions are provided in glibc as a compatibility interface for "
9668 "programs that make use of the historical System V signal API.  This API is "
9669 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
9670 "B<sigprocmask>(2), etc.)"
9671 msgstr ""
9672 "これらの関数は、昔ながらの System V 版シグナル API を使用しているプログラム "
9673 "に対して互換性のあるインタフェースを glibc で提供するものである。 この API は"
9674 "過去のものであり、新しいアプリケーションでは POSIX シグナル API (B<sigaction>"
9675 "(2), B<sigprocmask>(2)  など) を使用すべきである。"
9676
9677 #. type: Plain text
9678 #: build/C/man3/sigset.3:74
9679 msgid ""
9680 "The B<sigset>()  function modifies the disposition of the signal I<sig>.  "
9681 "The I<disp> argument can be the address of a signal handler function, or one "
9682 "of the following constants:"
9683 msgstr ""
9684 "関数 B<sigset>()  はシグナル I<sig> のシグナルハンドラの動作を変更する。 "
9685 "I<disp> 引き数には、シグナルハンドラ関数のアドレスか、 以下の定数のいずれか一"
9686 "つを指定できる。"
9687
9688 #. type: TP
9689 #: build/C/man3/sigset.3:74
9690 #, no-wrap
9691 msgid "B<SIG_DFL>"
9692 msgstr "B<SIG_DFL>"
9693
9694 #. type: Plain text
9695 #: build/C/man3/sigset.3:79
9696 msgid "Reset the disposition of I<sig> to the default."
9697 msgstr "I<sig> の動作をデフォルトにリセットする。"
9698
9699 #. type: TP
9700 #: build/C/man3/sigset.3:79
9701 #, no-wrap
9702 msgid "B<SIG_IGN>"
9703 msgstr "B<SIG_IGN>"
9704
9705 #. type: Plain text
9706 #: build/C/man3/sigset.3:83
9707 msgid "Ignore I<sig>."
9708 msgstr "I<sig> を無視する。"
9709
9710 #. type: TP
9711 #: build/C/man3/sigset.3:83
9712 #, no-wrap
9713 msgid "B<SIG_HOLD>"
9714 msgstr "B<SIG_HOLD>"
9715
9716 #. type: Plain text
9717 #: build/C/man3/sigset.3:90
9718 msgid ""
9719 "Add I<sig> to the process's signal mask, but leave the disposition of I<sig> "
9720 "unchanged."
9721 msgstr ""
9722 "そのプロセスのシグナルマスクに I<sig> を追加するが、 I<sig> の動作は変更しな"
9723 "い。"
9724
9725 #. type: Plain text
9726 #: build/C/man3/sigset.3:96
9727 msgid ""
9728 "If I<disp> specifies the address of a signal handler, then I<sig> is added "
9729 "to the process's signal mask during execution of the handler."
9730 msgstr ""
9731 "I<disp> にシグナルハンドラのアドレスが指定された場合、 シグナルハンドラの実行"
9732 "中は、そのプロセスのシグナルマスクに I<sig> が追加される。"
9733
9734 #. type: Plain text
9735 #: build/C/man3/sigset.3:104
9736 msgid ""
9737 "If I<disp> was specified as a value other than B<SIG_HOLD>, then I<sig> is "
9738 "removed from the process's signal mask."
9739 msgstr ""
9740 "I<disp> に B<SIG_HOLD> 以外の値が指定された場合、 そのプロセスのシグナルマス"
9741 "クから I<sig> が削除される。"
9742
9743 #. type: Plain text
9744 #: build/C/man3/sigset.3:110 build/C/man3/sigvec.3:87
9745 msgid "The dispositions for B<SIGKILL> and B<SIGSTOP> cannot be changed."
9746 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> に対する動作は変更できない。"
9747
9748 #. type: Plain text
9749 #: build/C/man3/sigset.3:116
9750 msgid ""
9751 "The B<sighold>()  function adds I<sig> to the calling process's signal mask."
9752 msgstr ""
9753 "関数 B<sighold>()  は、呼び出し元プロセスのシグナルマスクに I<sig> を追加す"
9754 "る。"
9755
9756 #. type: Plain text
9757 #: build/C/man3/sigset.3:122
9758 msgid ""
9759 "The B<sigrelse>()  function removes I<sig> from the calling process's signal "
9760 "mask."
9761 msgstr ""
9762 "関数 B<sigrelse>()  は、呼び出し元プロセスのシグナルマスクから I<sig> を削除"
9763 "する。"
9764
9765 #. type: Plain text
9766 #: build/C/man3/sigset.3:129
9767 msgid ""
9768 "The B<sigignore>()  function sets the disposition of I<sig> to B<SIG_IGN>."
9769 msgstr "関数 B<sigignore>()  は、 I<sig> の動作を B<SIG_IGN> に設定する。"
9770
9771 #. type: Plain text
9772 #: build/C/man3/sigset.3:145
9773 msgid ""
9774 "On success, B<sigset>()  returns B<SIG_HOLD> if I<sig> was blocked before "
9775 "the call, or the signal's previous disposition if it was not blocked before "
9776 "the call.  On error, B<sigset>()  returns -1, with I<errno> set to indicate "
9777 "the error.  (But see BUGS below.)"
9778 msgstr ""
9779 "B<sigset>()  は成功すると、 呼び出し前に I<sig> がブロックされていた場合には "
9780 "B<SIG_HOLD> を返し、 ブロックされていなかった場合には 変更前のそのシグナルの"
9781 "動作を返す。 エラーの場合、 B<sigset>()  は -1 を返し、 I<errno> にエラーを示"
9782 "す値をセットする。 但し、以下の「バグ」の節も参照のこと。"
9783
9784 #. type: Plain text
9785 #: build/C/man3/sigset.3:154
9786 msgid ""
9787 "The B<sighold>(), B<sigrelse>(), and B<sigignore>()  functions return 0 on "
9788 "success; on error, these functions return -1 and set I<errno> to indicate "
9789 "the error."
9790 msgstr ""
9791 "関数 B<sighold>(), B<sigrelse>(), B<sigignore>()  は成功すると 0 を返す。エ"
9792 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値をセットする。"
9793
9794 #. type: Plain text
9795 #: build/C/man3/sigset.3:161
9796 msgid ""
9797 "For B<sigset>()  see the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
9798 msgstr ""
9799 "B<sigset>()  に関しては、 B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」"
9800 "の節を参照。"
9801
9802 #. type: Plain text
9803 #: build/C/man3/sigset.3:168
9804 msgid ""
9805 "For B<sighold>()  and B<sigrelse>()  see the ERRORS under B<sigprocmask>(2)."
9806 msgstr ""
9807 "B<sighold>()  と B<sigrelse>()  に関しては、 B<sigprocmask>(2)  の「エラー」"
9808 "の節を参照。"
9809
9810 #. type: Plain text
9811 #: build/C/man3/sigset.3:173
9812 msgid "For B<sigignore>(), see the errors under B<sigaction>(2)."
9813 msgstr "B<sigignore>()  に関しては、 B<sigaction>(2)  の「エラー」の節を参照。"
9814
9815 #. type: Plain text
9816 #: build/C/man3/sigset.3:190
9817 msgid ""
9818 "SVr4, POSIX.1-2001.  These functions are obsolete: do not use them in new "
9819 "programs.  POSIX.1-2008 marks B<sighold>(), B<sigignore>(), B<sigpause>(), "
9820 "B<sigrelse>(), and B<sigset>()  as obsolete, recommending the use of "
9821 "B<sigaction>(2), B<sigprocmask>(2), B<pthread_sigmask>(3), and B<sigsuspend>"
9822 "(2)  instead."
9823 msgstr ""
9824 "SVr4, POSIX.1-2001.  これらの関数は廃止予定である。新しいプログラムでは使用し"
9825 "ないこと。 POSIX.1-2008 は、 B<sighold>(), B<sigignore>(), B<sigpause>(), "
9826 "B<sigrelse>(), B<sigset>()  を廃止予定としている。 代わりに、 B<sigaction>"
9827 "(2), B<sigprocmask>(2), B<pthread_sigmask>(3), B<sigsuspend>(2)  の使用が推奨"
9828 "されている。"
9829
9830 #. type: Plain text
9831 #: build/C/man3/sigset.3:192
9832 msgid "These functions appeared in glibc version 2.1."
9833 msgstr "これらの関数は glibc 2.1 で登場した。"
9834
9835 #. type: Plain text
9836 #: build/C/man3/sigset.3:198
9837 msgid ""
9838 "The I<sighandler_t> type is a GNU extension; it is used on this page only to "
9839 "make the B<sigset>()  prototype more easily readable."
9840 msgstr ""
9841 "I<sighandler_t> 型は GNU による拡張であり、この man page で B<sigset>()  のプ"
9842 "ロトタイプをより読みやすくするために使われているだけである。"
9843
9844 #. type: Plain text
9845 #: build/C/man3/sigset.3:206
9846 msgid ""
9847 "The B<sigset>()  function provides reliable signal handling semantics (as "
9848 "when calling B<sigaction>(2)  with I<sa_mask> equal to 0)."
9849 msgstr ""
9850 "関数 B<sigset>()  は信頼性のあるシグナル処理機構を提供する (I<sa_mask> を 0 "
9851 "で B<sigaction>(2)  を呼び出したときと同様)。"
9852
9853 #. type: Plain text
9854 #: build/C/man3/sigset.3:224
9855 msgid ""
9856 "On System V, the B<signal>()  function provides unreliable semantics (as "
9857 "when calling B<sigaction>(2)  with I<sa_mask> equal to I<SA_RESETHAND | "
9858 "SA_NODEFER>).  On BSD, B<signal>()  provides reliable semantics.  "
9859 "POSIX.1-2001 leaves these aspects of B<signal>()  unspecified.  See B<signal>"
9860 "(2)  for further details."
9861 msgstr ""
9862 "System V では、関数 B<signal>()  が提供する処理機構は信頼性のないものである "
9863 "(I<sa_mask> を I<SA_RESETHAND | SA_NODEFER> として B<sigaction>(2)  を呼び出"
9864 "したときと同様)。 BSD では、 B<signal>()  は信頼性のある処理機構を提供する。 "
9865 "POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままとなっている。 さら"
9866 "なる詳細については B<signal>(2)  を参照。"
9867
9868 #. type: Plain text
9869 #: build/C/man3/sigset.3:232 build/C/man3/sigvec.3:265
9870 msgid ""
9871 "In order to wait for a signal, BSD and System V both provided a function "
9872 "named B<sigpause>(3), but this function has a different argument on the two "
9873 "systems.  See B<sigpause>(3)  for details."
9874 msgstr ""
9875 "BSD と System V のどちらのシステムでも シグナルを待つために、 B<sigpause>"
9876 "(3)  という名前の関数が提供されているが、 この関数の引き数は両方のシステムで"
9877 "異なる。 詳細は B<sigpause>(3)  を参照。"
9878
9879 #. type: Plain text
9880 #: build/C/man3/sigset.3:241
9881 msgid ""
9882 "In versions of glibc before 2.2, B<sigset>()  did not unblock I<sig> if "
9883 "I<disp> was specified as a value other than B<SIG_HOLD>."
9884 msgstr ""
9885 "2.2 より前のバージョンの glibc では、 I<disp> に B<SIG_HOLD> 以外の値が指定さ"
9886 "れた場合、 I<sig> のブロック解除を行っていなかった。"
9887
9888 #.  See http://sourceware.org/bugzilla/show_bug.cgi?id=1951
9889 #. type: Plain text
9890 #: build/C/man3/sigset.3:266
9891 msgid ""
9892 "In versions of glibc before 2.5, B<sigset>()  does not correctly return the "
9893 "previous disposition of the signal in two cases.  First, if I<disp> is "
9894 "specified as B<SIG_HOLD>, then a successful B<sigset>()  always returns "
9895 "B<SIG_HOLD>.  Instead, it should return the previous disposition of the "
9896 "signal (unless the signal was blocked, in which case B<SIG_HOLD> should be "
9897 "returned).  Second, if the signal is currently blocked, then the return "
9898 "value of a successful B<sigset>()  should be B<SIG_HOLD>.  Instead, the "
9899 "previous disposition of the signal is returned.  These problems have been "
9900 "fixed since glibc 2.5."
9901 msgstr ""
9902 "2.3.5 以前の全てのバージョンの glibc では、 B<sigset>()  が変更前のシグナルの"
9903 "動作を正しく返さない場合が 2つある。 一つめは、 I<disp> に B<SIG_HOLD> が指定"
9904 "されると、成功した場合 B<sigset>()  は常に B<SIG_HOLD> を返すことである。 正"
9905 "しくは、(シグナルがブロックされていなかった場合には)  変更前のシグナルの動作"
9906 "を返すべきである (シグナルがブロックされていた場合には、 B<SIG_HOLD> が返され"
9907 "る)。 もう一つは、シグナルが現在ブロックされている場合には、 成功した場合の "
9908 "B<sigset>()  の返り値は B<SIG_HOLD> になるべきであるが、実際には 変更前のシグ"
9909 "ナルの動作が返されることである。 これらの問題は glibc 2.5 以降で修正されてい"
9910 "る。"
9911
9912 #. type: Plain text
9913 #: build/C/man3/sigset.3:276
9914 msgid ""
9915 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9916 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
9917 msgstr ""
9918 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9919 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
9920
9921 #. type: TH
9922 #: build/C/man3/sigsetops.3:31
9923 #, no-wrap
9924 msgid "SIGSETOPS"
9925 msgstr "SIGSETOPS"
9926
9927 #. type: Plain text
9928 #: build/C/man3/sigsetops.3:35
9929 msgid ""
9930 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX signal "
9931 "set operations"
9932 msgstr ""
9933 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX シグナル集"
9934 "合の操作"
9935
9936 #. type: Plain text
9937 #: build/C/man3/sigsetops.3:39
9938 msgid "B<int sigemptyset(sigset_t *>I<set>B<);>"
9939 msgstr "B<int sigemptyset(sigset_t *>I<set>B<);>"
9940
9941 #. type: Plain text
9942 #: build/C/man3/sigsetops.3:41
9943 msgid "B<int sigfillset(sigset_t *>I<set>B<);>"
9944 msgstr "B<int sigfillset(sigset_t *>I<set>B<);>"
9945
9946 #. type: Plain text
9947 #: build/C/man3/sigsetops.3:43
9948 msgid "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9949 msgstr "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9950
9951 #. type: Plain text
9952 #: build/C/man3/sigsetops.3:45
9953 msgid "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9954 msgstr "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9955
9956 #. type: Plain text
9957 #: build/C/man3/sigsetops.3:47
9958 msgid "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
9959 msgstr "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
9960
9961 #. type: Plain text
9962 #: build/C/man3/sigsetops.3:59
9963 msgid ""
9964 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
9965 "B<sigismember>():"
9966 msgstr ""
9967 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
9968 "B<sigismember>():"
9969
9970 #. type: Plain text
9971 #: build/C/man3/sigsetops.3:61
9972 msgid "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
9973 msgstr "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
9974
9975 #. type: Plain text
9976 #: build/C/man3/sigsetops.3:65
9977 msgid "These functions allow the manipulation of POSIX signal sets."
9978 msgstr "これらの関数は POSIX シグナル集合(signal set)を操作するため使用する。"
9979
9980 #. type: Plain text
9981 #: build/C/man3/sigsetops.3:70
9982 msgid ""
9983 "B<sigemptyset>()  initializes the signal set given by I<set> to empty, with "
9984 "all signals excluded from the set."
9985 msgstr ""
9986 "B<sigemptyset>()  は I<set> で与えられたシグナル集合を空に初期化し、シグナル"
9987 "が一つも 含まれていない状態にする。"
9988
9989 #. type: Plain text
9990 #: build/C/man3/sigsetops.3:75
9991 msgid "B<sigfillset>()  initializes I<set> to full, including all signals."
9992 msgstr ""
9993 "B<sigfillset>()  は I<set> で与えられたシグナル集合が全てのシグナルを含むよう"
9994 "にする。"
9995
9996 #. type: Plain text
9997 #: build/C/man3/sigsetops.3:83
9998 msgid ""
9999 "B<sigaddset>()  and B<sigdelset>()  add and delete respectively signal "
10000 "I<signum> from I<set>."
10001 msgstr ""
10002 "B<sigaddset>()  と B<sigdelset>()  は I<set> に I<signum> シグナルをそれぞれ"
10003 "加えたり、削除したりする。"
10004
10005 #. type: Plain text
10006 #: build/C/man3/sigsetops.3:89
10007 msgid "B<sigismember>()  tests whether I<signum> is a member of I<set>."
10008 msgstr ""
10009 "B<sigismember>()  は I<signum> が I<set> に含まれているかどうかをテストする。"
10010
10011 #. type: Plain text
10012 #: build/C/man3/sigsetops.3:107
10013 msgid ""
10014 "Objects of type I<sigset_t> must be initialized by a call to either "
10015 "B<sigemptyset>()  or B<sigfillset>()  before being passed to the functions "
10016 "B<sigaddset>(), B<sigdelset>()  and B<sigismember>()  or the additional "
10017 "glibc functions described below (B<sigisemptyset>(), B<sigandset>(), and "
10018 "B<sigorset>()).  The results are undefined if this is not done."
10019 msgstr ""
10020 "I<sigset_t> 型のオブジェクトは、関数 B<sigaddset>(), B<sigdelset>(), "
10021 "B<sigismember>()  や後述の glibc の追加関数 (B<sigisemptyset>(), B<sigandset>"
10022 "(), B<sigorset>())  に渡す前に、 B<sigemptyset>()  か B<sigfillset>()  を呼び"
10023 "出して初期化しなければならない。 初期化しなかった場合の結果は未定義である。"
10024
10025 #. type: Plain text
10026 #: build/C/man3/sigsetops.3:114
10027 msgid ""
10028 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), and B<sigdelset>()  "
10029 "return 0 on success and -1 on error."
10030 msgstr ""
10031 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>()  は成功すれ"
10032 "ば 0 を、エラーの場合は -1 を返す。"
10033
10034 #. type: Plain text
10035 #: build/C/man3/sigsetops.3:126
10036 msgid ""
10037 "B<sigismember>()  returns 1 if I<signum> is a member of I<set>, 0 if "
10038 "I<signum> is not a member, and -1 on error.  On error, these functions set "
10039 "I<errno> to indicate the cause."
10040 msgstr ""
10041 "B<sigismember>()  は I<signum> が I<set> のメンバの場合 1 を返し、メンバでな"
10042 "い場合 0 を返す。 エラーの場合は -1 を返し、 I<errno> にエラーの原因を示す値"
10043 "を設定する。"
10044
10045 #. type: Plain text
10046 #: build/C/man3/sigsetops.3:131
10047 msgid "I<sig> is not a valid signal."
10048 msgstr "I<sig> が有効なシグナルではない。"
10049
10050 #. type: Plain text
10051 #: build/C/man3/sigsetops.3:144
10052 msgid ""
10053 "The B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
10054 "B<sigismember>(), B<sigisemptyset>(), B<sigorset>(), and B<sigandset>()  "
10055 "functions are thread-safe."
10056 msgstr "関数 B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), B<sigismember>(), B<sigisemptyset>(), B<sigorset>(), B<sigandset>() はスレッドセーフである。"
10057
10058 #. type: SS
10059 #: build/C/man3/sigsetops.3:147
10060 #, no-wrap
10061 msgid "Glibc notes"
10062 msgstr "glibc での注意"
10063
10064 #. type: Plain text
10065 #: build/C/man3/sigsetops.3:153
10066 msgid ""
10067 "If the B<_GNU_SOURCE> feature test macro is defined, then I<E<lt>signal."
10068 "hE<gt>> exposes three other functions for manipulating signal sets:"
10069 msgstr ""
10070 "B<_GNU_SOURCE> 機能検査マクロが定義されていると、 I<E<lt>signal.hE<gt>> でシ"
10071 "グナル集合を操作する 3 つの関数が追加で公開される。"
10072
10073 #. type: Plain text
10074 #: build/C/man3/sigsetops.3:160
10075 #, no-wrap
10076 msgid ""
10077 "B<int sigisemptyset(const sigset_t *>I<set>B<);>\n"
10078 "B<int sigorset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10079 "B<              const sigset_t *>I<right>B<);>\n"
10080 "B<int sigandset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10081 "B<              const sigset_t *>I<right>B<);>\n"
10082 msgstr ""
10083 "B<int sigisemptyset(const sigset_t *>I<set>B<);>\n"
10084 "B<int sigorset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10085 "B<              const sigset_t *>I<right>B<);>\n"
10086 "B<int sigandset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10087 "B<              const sigset_t *>I<right>B<);>\n"
10088
10089 #. type: Plain text
10090 #: build/C/man3/sigsetops.3:166
10091 msgid ""
10092 "B<sigisemptyset>()  returns 1 if I<set> contains no signals, and 0 otherwise."
10093 msgstr ""
10094 "B<sigisemptyset>() は I<set> にシグナルが一つも含まれていなければ 1 を返し、 "
10095 "それ以外は 0 を返す。"
10096
10097 #. type: Plain text
10098 #: build/C/man3/sigsetops.3:182
10099 msgid ""
10100 "B<sigorset>()  places the union of the sets I<left> and I<right> in "
10101 "I<dest>.  B<sigandset>()  places the intersection of the sets I<left> and "
10102 "I<right> in I<dest>.  Both functions return 0 on success, and -1 on failure."
10103 msgstr ""
10104 "B<sigorset>() は集合 I<left> と I<right> の和集合を I<dest> に設定する。 "
10105 "B<sigandset>() は集合 I<left> と I<right> の積集合を I<dest> に設定する。 ど"
10106 "ちらの関数も成功すると 0 を返し、失敗時には -1 を返す。"
10107
10108 #. type: Plain text
10109 #: build/C/man3/sigsetops.3:185
10110 msgid ""
10111 "These functions are nonstandard (a few other systems provide similar "
10112 "functions) and their use should be avoided in portable applications."
10113 msgstr ""
10114 "これらの関数は非標準であり、(他にも同様の関数を提供しているシステムも いくつ"
10115 "かはあるが) 移植性を考慮したアプリケーションでは使用を避けるべき である。"
10116
10117 #. type: Plain text
10118 #: build/C/man3/sigsetops.3:190
10119 msgid "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
10120 msgstr "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
10121
10122 #. type: TH
10123 #: build/C/man2/sigsuspend.2:29
10124 #, no-wrap
10125 msgid "SIGSUSPEND"
10126 msgstr "SIGSUSPEND"
10127
10128 #. type: Plain text
10129 #: build/C/man2/sigsuspend.2:32
10130 msgid "sigsuspend - wait for a signal"
10131 msgstr "sigsuspend - シグナルを待つ"
10132
10133 #. type: Plain text
10134 #: build/C/man2/sigsuspend.2:36
10135 msgid "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
10136 msgstr "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
10137
10138 #. type: Plain text
10139 #: build/C/man2/sigsuspend.2:45
10140 msgid ""
10141 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
10142 "_POSIX_SOURCE"
10143 msgstr ""
10144 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
10145 "_POSIX_SOURCE"
10146
10147 #. type: Plain text
10148 #: build/C/man2/sigsuspend.2:53
10149 msgid ""
10150 "B<sigsuspend>()  temporarily replaces the signal mask of the calling process "
10151 "with the mask given by I<mask> and then suspends the process until delivery "
10152 "of a signal whose action is to invoke a signal handler or to terminate a "
10153 "process."
10154 msgstr ""
10155 "B<sigsuspend>()  は、呼び出し元プロセスのシグナルマスクを I<mask> で指定され"
10156 "たマスクに一時的に置き換え、 シグナルハンドラの起動もしくはプロセスの終了がア"
10157 "クションとして 設定されたシグナルが配送されるまで、そのプロセスを停止する。"
10158
10159 #. type: Plain text
10160 #: build/C/man2/sigsuspend.2:62
10161 msgid ""
10162 "If the signal terminates the process, then B<sigsuspend>()  does not "
10163 "return.  If the signal is caught, then B<sigsuspend>()  returns after the "
10164 "signal handler returns, and the signal mask is restored to the state before "
10165 "the call to B<sigsuspend>()."
10166 msgstr ""
10167 "シグナルがプロセスを終了させるものの場合、 B<sigsuspend>()  は返らない。シグ"
10168 "ナルが捕捉された場合、 シグナルハンドラの処理が終わった後に B<sigsuspend>()  "
10169 "は返り、シグナルマスクは B<sigsuspend>()  が呼び出される前の状態に復元され"
10170 "る。"
10171
10172 #. type: Plain text
10173 #: build/C/man2/sigsuspend.2:70
10174 msgid ""
10175 "It is not possible to block B<SIGKILL> or B<SIGSTOP>; specifying these "
10176 "signals in I<mask>, has no effect on the process's signal mask."
10177 msgstr ""
10178 "B<SIGKILL> と B<SIGSTOP> を禁止 (block) することはできない; これらのシグナル"
10179 "を I<mask> に指定しても、プロセスのシグナルマスクは影響を受けない。"
10180
10181 #. type: Plain text
10182 #: build/C/man2/sigsuspend.2:76
10183 msgid ""
10184 "B<sigsuspend>()  always returns -1, with I<errno> set to indicate the error "
10185 "(normally, B<EINTR>)."
10186 msgstr ""
10187 "B<sigsuspend>() は常に -1 を返し、 I<errno> にエラーの原因を示す値 (通常は "
10188 "B<EINTR>) を設定する。"
10189
10190 #. type: Plain text
10191 #: build/C/man2/sigsuspend.2:81
10192 msgid ""
10193 "I<mask> points to memory which is not a valid part of the process address "
10194 "space."
10195 msgstr ""
10196 "I<mask> が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。"
10197
10198 #. type: Plain text
10199 #: build/C/man2/sigsuspend.2:84
10200 msgid "The call was interrupted by a signal."
10201 msgstr "システムコールはシグナルにより割り込まれた。"
10202
10203 #. type: Plain text
10204 #: build/C/man2/sigsuspend.2:104
10205 msgid ""
10206 "Normally, B<sigsuspend>()  is used in conjunction with B<sigprocmask>(2)  in "
10207 "order to prevent delivery of a signal during the execution of a critical "
10208 "code section.  The caller first blocks the signals with B<sigprocmask>(2).  "
10209 "When the critical code has completed, the caller then waits for the signals "
10210 "by calling B<sigsuspend>()  with the signal mask that was returned by "
10211 "B<sigprocmask>(2)  (in the I<oldset> argument)."
10212 msgstr ""
10213 "B<sigsuspend>()  は、通常、クリティカル・コード・セクション (critical code "
10214 "section) の 実行中にシグナルが配送されるのを防止するために、 B<sigprocmask>"
10215 "(2)  と組み合わせて使用される。 まず最初に、呼び出し元は B<sigprocmask>(2)  "
10216 "を使ってシグナルを禁止する。 クリティカル・コードが完了すると、呼び出し元は "
10217 "B<sigprocmask>(2)  が (I<oldset> 引き数で) 返すシグナルマスクを指定して "
10218 "B<sigsuspend>()  を呼び出すことで、クリティカル・コード実行中に発生した シグ"
10219 "ナルを待つことができる。"
10220
10221 #. type: Plain text
10222 #: build/C/man2/sigsuspend.2:118
10223 msgid ""
10224 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10225 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
10226 msgstr ""
10227 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10228 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
10229
10230 #. type: TH
10231 #: build/C/man3/sigvec.3:26
10232 #, no-wrap
10233 msgid "SIGVEC"
10234 msgstr "SIGVEC"
10235
10236 #. type: TH
10237 #: build/C/man3/sigvec.3:26
10238 #, no-wrap
10239 msgid "2014-03-24"
10240 msgstr "2014-03-24"
10241
10242 #. type: Plain text
10243 #: build/C/man3/sigvec.3:29
10244 msgid "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD signal API"
10245 msgstr "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD 版シグナル API"
10246
10247 #. type: Plain text
10248 #: build/C/man3/sigvec.3:33
10249 msgid ""
10250 "B<int sigvec(int >I<sig>B<, struct sigvec *>I<vec>B<, struct sigvec "
10251 "*>I<ovec>B<);>"
10252 msgstr ""
10253 "B<int sigvec(int >I<sig>B<, struct sigvec *>I<vec>B<, struct sigvec "
10254 "*>I<ovec>B<);>"
10255
10256 #. type: Plain text
10257 #: build/C/man3/sigvec.3:35
10258 msgid "B<int sigmask(int >I<signum>B<);>"
10259 msgstr "B<int sigmask(int >I<signum>B<);>"
10260
10261 #. type: Plain text
10262 #: build/C/man3/sigvec.3:37
10263 msgid "B<int sigblock(int >I<mask>B<);>"
10264 msgstr "B<int sigblock(int >I<mask>B<);>"
10265
10266 #. type: Plain text
10267 #: build/C/man3/sigvec.3:39
10268 msgid "B<int sigsetmask(int >I<mask>B<);>"
10269 msgstr "B<int sigsetmask(int >I<mask>B<);>"
10270
10271 #. type: Plain text
10272 #: build/C/man3/sigvec.3:41
10273 msgid "B<int siggetmask(void);>"
10274 msgstr "B<int siggetmask(void);>"
10275
10276 #. type: Plain text
10277 #: build/C/man3/sigvec.3:49
10278 msgid "All functions shown above: _BSD_SOURCE"
10279 msgstr "上記の全ての関数: _BSD_SOURCE"
10280
10281 #. type: Plain text
10282 #: build/C/man3/sigvec.3:56
10283 msgid ""
10284 "These functions are provided in glibc as a compatibility interface for "
10285 "programs that make use of the historical BSD signal API.  This API is "
10286 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
10287 "B<sigprocmask>(2), etc.)."
10288 msgstr ""
10289 "これらの関数は、昔ながらの BSD 版シグナル API を使用しているプログラム に対し"
10290 "て互換性のあるインタフェースを glibc で提供するものである。 この API は過去の"
10291 "ものであり、新しいアプリケーションでは POSIX シグナル API (B<sigaction>(2), "
10292 "B<sigprocmask>(2)  など) を使用すべきである。"
10293
10294 #. type: Plain text
10295 #: build/C/man3/sigvec.3:81
10296 msgid ""
10297 "The B<sigvec>()  function sets and/or gets the disposition of the signal "
10298 "I<sig> (like the POSIX B<sigaction>(2)).  If I<vec> is not NULL, it points "
10299 "to a I<sigvec> structure that defines the new disposition for I<sig>.  If "
10300 "I<ovec> is not NULL, it points to a I<sigvec> structure that is used to "
10301 "return the previous disposition of I<sig>.  To obtain the current "
10302 "disposition of I<sig> without changing it, specify NULL for I<vec>, and a "
10303 "non-null pointer for I<ovec>."
10304 msgstr ""
10305 "関数 B<sigvec>()  は、(POSIX の B<sigaction>(2)  と同様に) シグナル I<sig> の"
10306 "動作の設定・取得を行う。 I<vec> は、NULL 以外の場合、 I<sig> の新しい動作を定"
10307 "義した I<sigvec> 構造体へのポインタである。 I<ovec> は、NULL 以外の場合、 "
10308 "I<sig> の変更前の動作を返すために使用される I<sigvec> 構造体へのポインタであ"
10309 "る。 I<sig> の動作を変更せずに現在の動作を取得するためには、 I<vec> に NULL "
10310 "を指定し、 I<ovec> に NULL でないポインタを指定すればよい。"
10311
10312 #. type: Plain text
10313 #: build/C/man3/sigvec.3:91
10314 msgid "The I<sigvec> structure has the following form:"
10315 msgstr "I<sigvec> 構造体は以下の通りである:"
10316
10317 #. type: Plain text
10318 #: build/C/man3/sigvec.3:99
10319 #, no-wrap
10320 msgid ""
10321 "struct sigvec {\n"
10322 "    void (*sv_handler)(int); /* Signal disposition */\n"
10323 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
10324 "    int    sv_flags;         /* Flags */\n"
10325 "};\n"
10326 msgstr ""
10327 "struct sigvec {\n"
10328 "    void (*sv_handler)(int); /* Signal disposition */\n"
10329 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
10330 "    int    sv_flags;         /* Flags */\n"
10331 "};\n"
10332
10333 #. type: Plain text
10334 #: build/C/man3/sigvec.3:110
10335 msgid ""
10336 "The I<sv_handler> field specifies the disposition of the signal, and is "
10337 "either: the address of a signal handler function; B<SIG_DFL>, meaning the "
10338 "default disposition applies for the signal; or B<SIG_IGN>, meaning that the "
10339 "signal is ignored."
10340 msgstr ""
10341 "I<sv_handler> フィールドはシグナルの動作を指定するもので、 シグナルハンドラ関"
10342 "数のアドレスか、 B<SIG_DFL> と B<SIG_IGN> のいずれかを指定できる。 "
10343 "B<SIG_DFL> はシグナルに適用されるデフォルトの動作を意味し、 B<SIG_IGN> はシグ"
10344 "ナルを無視することを意味する。"
10345
10346 #. type: Plain text
10347 #: build/C/man3/sigvec.3:124
10348 msgid ""
10349 "If I<sv_handler> specifies the address of a signal handler, then I<sv_mask> "
10350 "specifies a mask of signals that are to be blocked while the handler is "
10351 "executing.  In addition, the signal for which the handler is invoked is also "
10352 "blocked.  Attempts to block B<SIGKILL> or B<SIGSTOP> are silently ignored."
10353 msgstr ""
10354 "I<sv_handler> にシグナルハンドラのアドレスを指定した場合、 I<sv_mask> はハン"
10355 "ドラが実行中にブロックされるべきシグナルのマスクを指定する。 また、ハンドラを"
10356 "起動したシグナル自身はブロックされる。 B<SIGKILL> か B<SIGSTOP> をブロックし"
10357 "ようとした場合には、黙って無視される。"
10358
10359 #. type: Plain text
10360 #: build/C/man3/sigvec.3:131
10361 msgid ""
10362 "If I<sv_handler> specifies the address of a signal handler, then the "
10363 "I<sv_flags> field specifies flags controlling what happens when the handler "
10364 "is called.  This field may contain zero or more of the following flags:"
10365 msgstr ""
10366 "I<sv_handler> にシグナルハンドラのアドレスを指定した場合、 I<sv_flags> フィー"
10367 "ルドはハンドラが呼ばれた際の挙動を制御するフラグを指定する。 このフィールドに"
10368 "は、0 か、以下のフラグを 1個以上指定できる:"
10369
10370 #. type: TP
10371 #: build/C/man3/sigvec.3:131
10372 #, no-wrap
10373 msgid "B<SV_INTERRUPT>"
10374 msgstr "B<SV_INTERRUPT>"
10375
10376 #. type: Plain text
10377 #: build/C/man3/sigvec.3:139
10378 msgid ""
10379 "If the signal handler interrupts a blocking system call, then upon return "
10380 "from the handler the system call will not be restarted: instead it will fail "
10381 "with the error B<EINTR>.  If this flag is not specified, then system calls "
10382 "are restarted by default."
10383 msgstr ""
10384 "シグナルハンドラが停止中のシステムコールを中断した場合、 ハンドラから復帰して"
10385 "も、システムコールは再開されず、 エラー B<EINTR> で失敗する。 このフラグを指"
10386 "定しなかった場合、システムコールは デフォルトで再開される。"
10387
10388 #. type: TP
10389 #: build/C/man3/sigvec.3:139
10390 #, no-wrap
10391 msgid "B<SV_RESETHAND>"
10392 msgstr "B<SV_RESETHAND>"
10393
10394 #. type: Plain text
10395 #: build/C/man3/sigvec.3:148
10396 msgid ""
10397 "Reset the disposition of the signal to the default before calling the signal "
10398 "handler.  If this flag is not specified, then the handler remains "
10399 "established until explicitly removed by a later call to B<sigvec>()  or "
10400 "until the process performs an B<execve>(2)."
10401 msgstr ""
10402 "シグナルハンドラを呼び出す前にシグナルの動作を デフォルトにリセットする。 こ"
10403 "のフラグを指定しなかった場合、もう一度 B<sigvec>()  を呼び出して明示的に削除"
10404 "されるか、プロセスが B<execve>(2)  を実行するまで、ハンドラは設定されたままと"
10405 "なる。"
10406
10407 #. type: TP
10408 #: build/C/man3/sigvec.3:148
10409 #, no-wrap
10410 msgid "B<SV_ONSTACK>"
10411 msgstr "B<SV_ONSTACK>"
10412
10413 #. type: Plain text
10414 #: build/C/man3/sigvec.3:155
10415 msgid ""
10416 "Handle the signal on the alternate signal stack (historically established "
10417 "under BSD using the obsolete B<sigstack>()  function; the POSIX replacement "
10418 "is B<sigaltstack>(2))."
10419 msgstr ""
10420 "代替シグナルスタック上でシグナルハンドラを実行する (歴史的に、BSD では代替シ"
10421 "グナルスタックは廃止された関数 B<sigstack>()  を使って設定する。POSIX では、"
10422 "代わりに B<sigaltstack>(2)  を使用する)。"
10423
10424 #. type: Plain text
10425 #: build/C/man3/sigvec.3:165
10426 msgid ""
10427 "The B<sigmask>()  macro constructs and returns a \"signal mask\" for "
10428 "I<signum>.  For example, we can initialize the I<vec.sv_mask> field given to "
10429 "B<sigvec>()  using code such as the following:"
10430 msgstr ""
10431 "マクロ B<sigmask>()  は I<signum> に対する「シグナルマスク」を構成して返す。 "
10432 "例えば、以下のようなコードを使うと、 B<sigvec>()  に渡す I<vec.sv_mask> を初"
10433 "期化できる。"
10434
10435 #. type: Plain text
10436 #: build/C/man3/sigvec.3:170
10437 #, no-wrap
10438 msgid ""
10439 "    vec.sv_mask = sigmask(SIGQUIT) | sigmask(SIGABRT);\n"
10440 "                /* Block SIGQUIT and SIGABRT during\n"
10441 "                   handler execution */\n"
10442 msgstr ""
10443 "    vec.sv_mask = sigmask(SIGQUIT) | sigmask(SIGABRT);\n"
10444 "                /* Block SIGQUIT and SIGABRT during\n"
10445 "                   handler execution */\n"
10446
10447 #. type: Plain text
10448 #: build/C/man3/sigvec.3:185
10449 msgid ""
10450 "The B<sigblock>()  function adds the signals in I<mask> to the process's "
10451 "signal mask (like POSIX I<sigprocmask(SIG_BLOCK)>), and returns the "
10452 "process's previous signal mask.  Attempts to block B<SIGKILL> or B<SIGSTOP> "
10453 "are silently ignored."
10454 msgstr ""
10455 "B<sigblock>()  関数は、 I<mask> にあるシグナルをプロセスのシグナルマスクに追"
10456 "加し (POSIX の I<sigprocmask(SIG_BLOCK)> と同様)、変更前のプロセスのシグナル"
10457 "マスクを返す。 B<SIGKILL> や B<SIGSTOP> をブロックしようとした場合には、黙っ"
10458 "て無視される。"
10459
10460 #. type: Plain text
10461 #: build/C/man3/sigvec.3:193
10462 msgid ""
10463 "The B<sigsetmask>()  function sets the process's signal mask to the value "
10464 "given in I<mask> (like POSIX I<sigprocmask(SIG_SETMASK)>), and returns the "
10465 "process's previous signal mask."
10466 msgstr ""
10467 "B<sigsetmask>()  関数はプロセスのシグナルマスクを I<mask> で指定された値に設"
10468 "定し (POSIX の I<sigprocmask(SIG_SETMASK)> と同様)、変更前のプロセスのシグナ"
10469 "ルマスクを返す。"
10470
10471 #. type: Plain text
10472 #: build/C/man3/sigvec.3:199
10473 msgid ""
10474 "The B<siggetmask>()  function returns the process's current signal mask.  "
10475 "This call is equivalent to I<sigblock(0)>."
10476 msgstr ""
10477 "B<siggetmask>()  関数はプロセスの現在のシグナルマスクを返す。この関数は "
10478 "I<sigblock(0)> と等価である。"
10479
10480 #. type: Plain text
10481 #: build/C/man3/sigvec.3:205
10482 msgid ""
10483 "The B<sigvec>()  function returns 0 on success; on error, it returns -1 and "
10484 "sets I<errno> to indicate the error."
10485 msgstr ""
10486 "B<sigvec>()  関数は成功すると 0 を返す。エラーの場合、-1 を返し、 I<errno> に"
10487 "エラーを示す値をセットする。"
10488
10489 #. type: Plain text
10490 #: build/C/man3/sigvec.3:211
10491 msgid ""
10492 "The B<sigblock>()  and B<sigsetmask>()  functions return the previous signal "
10493 "mask."
10494 msgstr "B<sigblock>()  と B<sigsetmask>()  は変更前のシグナルマスクを返す。"
10495
10496 #. type: Plain text
10497 #: build/C/man3/sigvec.3:216
10498 msgid "The B<sigmask>()  macro returns the signal mask for I<signum>."
10499 msgstr "B<sigmask>() マクロは I<signum> のシグナルマスクを返す。"
10500
10501 #. type: Plain text
10502 #: build/C/man3/sigvec.3:221
10503 msgid "See the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
10504 msgstr "B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」の節を参照。"
10505
10506 #. type: Plain text
10507 #: build/C/man3/sigvec.3:230
10508 msgid ""
10509 "The B<sigvec>(), B<sigblock>(), B<sigsetmask>(), and B<siggetmask>()  "
10510 "functions are thread-safe."
10511 msgstr ""
10512 "関数 B<sigvec>(), B<sigblock>(), B<sigsetmask>(), B<siggetmask>() はスレッド"
10513 "セーフである。"
10514
10515 #. type: Plain text
10516 #: build/C/man3/sigvec.3:234
10517 msgid "The B<sigmask>()  macro is thread-safe."
10518 msgstr "B<sigmask>() マクロはスレッドセーフである。"
10519
10520 #. type: Plain text
10521 #: build/C/man3/sigvec.3:240
10522 msgid ""
10523 "All of these functions were in 4.3BSD, except B<siggetmask>(), whose origin "
10524 "is unclear.  These functions are obsolete: do not use them in new programs."
10525 msgstr ""
10526 "これらの関数のうち B<siggetmask>()  以外の全ては 4.3BSD にあった。 "
10527 "B<siggetmask>()  の出自ははっきりしない。 これらの関数は廃止予定であり、新し"
10528 "いプログラムでは使用しないこと。"
10529
10530 #. type: Plain text
10531 #: build/C/man3/sigvec.3:257
10532 msgid ""
10533 "On 4.3BSD, the B<signal>()  function provided reliable semantics (as when "
10534 "calling B<sigvec>()  with I<vec.sv_mask> equal to 0).  On System V, B<signal>"
10535 "()  provides unreliable semantics.  POSIX.1-2001 leaves these aspects of "
10536 "B<signal>()  unspecified.  See B<signal>(2)  for further details."
10537 msgstr ""
10538 "4.3BSD では、信頼性のあるシグナル処理機構を提供する (I<vec.sv_mask> を 0 で "
10539 "B<sigvec>()  を呼び出したときと同様)。 System V が提供する処理機構は信頼性の"
10540 "ないものである。 POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままと"
10541 "なっている。 さらなる詳細については B<signal>(2)  を参照。"
10542
10543 #. type: Plain text
10544 #: build/C/man3/sigvec.3:275
10545 msgid ""
10546 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10547 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
10548 msgstr ""
10549 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10550 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
10551
10552 #. type: TH
10553 #: build/C/man3/sigwait.3:26
10554 #, no-wrap
10555 msgid "SIGWAIT"
10556 msgstr "SIGWAIT"
10557
10558 #. type: Plain text
10559 #: build/C/man3/sigwait.3:29
10560 msgid "sigwait - wait for a signal"
10561 msgstr "sigwait - シグナルを待つ"
10562
10563 #. type: Plain text
10564 #: build/C/man3/sigwait.3:34
10565 #, no-wrap
10566 msgid "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
10567 msgstr "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
10568
10569 #. type: Plain text
10570 #: build/C/man3/sigwait.3:44
10571 msgid ""
10572 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10573 msgstr ""
10574 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10575
10576 #. type: Plain text
10577 #: build/C/man3/sigwait.3:56
10578 msgid ""
10579 "The B<sigwait>()  function suspends execution of the calling thread until "
10580 "one of the signals specified in the signal set I<set> becomes pending.  The "
10581 "function accepts the signal (removes it from the pending list of signals), "
10582 "and returns the signal number in I<sig>."
10583 msgstr ""
10584 "B<sigwait>()  関数は、シグナル集合 I<set> で指定されたシグナルの一つが処理待"
10585 "ち (pending) になるまで、 呼び出したスレッドの実行を中断する。 この関数はその"
10586 "シグナルを受け取り (つまり、処理待ちのシグナルのリスト からそのシグナルを削除"
10587 "し)、そのシグナル番号を I<sig> に格納して返す。"
10588
10589 #. type: Plain text
10590 #: build/C/man3/sigwait.3:62
10591 msgid ""
10592 "The operation of B<sigwait>()  is the same as B<sigwaitinfo>(2), except that:"
10593 msgstr ""
10594 "B<sigwait>()  の動作は B<sigwaitinfo>(2)  と同じだが、以下の点が異なる。"
10595
10596 #. type: Plain text
10597 #: build/C/man3/sigwait.3:67
10598 msgid ""
10599 "B<sigwait>()  returns only the signal number, rather than a I<siginfo_t> "
10600 "structure describing the signal."
10601 msgstr ""
10602 "B<sigwait>()  は、シグナルの内容を表す I<siginfo_t> 構造体を返すのではなく、"
10603 "単にシグナル番号を返す。"
10604
10605 #. type: Plain text
10606 #: build/C/man3/sigwait.3:69
10607 msgid "The return values of the two functions are different."
10608 msgstr "返り値が B<sigwaitinfo>(2)  とは異なる。"
10609
10610 #. type: Plain text
10611 #: build/C/man3/sigwait.3:74
10612 msgid ""
10613 "On success, B<sigwait>()  returns 0.  On error, it returns a positive error "
10614 "number (listed in ERRORS)."
10615 msgstr ""
10616 "成功すると、 B<sigwait>()  は 0 を返す。 エラーの場合、(「エラー」の節のリス"
10617 "トにある) 正のエラー番号を返す。"
10618
10619 #.  Does not occur for glibc.
10620 #. type: Plain text
10621 #: build/C/man3/sigwait.3:80
10622 msgid "I<set> contains an invalid signal number."
10623 msgstr "I<set> に無効なシグナル番号が入っている。"
10624
10625 #. type: Plain text
10626 #: build/C/man3/sigwait.3:85
10627 msgid "The B<sigwait>()  function is thread-safe."
10628 msgstr "B<sigwait>() 関数はスレッドセーフである。"
10629
10630 #. type: Plain text
10631 #: build/C/man3/sigwait.3:91
10632 msgid "B<sigwait>()  is implemented using B<sigtimedwait>(2)."
10633 msgstr "B<sigwait>()  は B<sigtimedwait>(2)  を使って実装されている。"
10634
10635 #. type: Plain text
10636 #: build/C/man3/sigwait.3:94
10637 msgid "See B<pthread_sigmask>(3)."
10638 msgstr "B<pthread_sigmask>(3)  を参照。"
10639
10640 #. type: Plain text
10641 #: build/C/man3/sigwait.3:102
10642 msgid ""
10643 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
10644 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
10645 msgstr ""
10646 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
10647 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
10648
10649 #. type: TH
10650 #: build/C/man2/sigwaitinfo.2:25
10651 #, no-wrap
10652 msgid "SIGWAITINFO"
10653 msgstr "SIGWAITINFO"
10654
10655 #. type: TH
10656 #: build/C/man2/sigwaitinfo.2:25 build/C/man2/wait.2:49
10657 #, no-wrap
10658 msgid "2013-09-04"
10659 msgstr "2013-09-04"
10660
10661 #. type: Plain text
10662 #: build/C/man2/sigwaitinfo.2:28
10663 msgid "sigwaitinfo, sigtimedwait - synchronously wait for queued signals"
10664 msgstr "sigwaitinfo, sigtimedwait - キューに入れられたシグナルを同期して待つ"
10665
10666 #. type: Plain text
10667 #: build/C/man2/sigwaitinfo.2:33
10668 #, no-wrap
10669 msgid "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
10670 msgstr "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
10671
10672 #. type: Plain text
10673 #: build/C/man2/sigwaitinfo.2:36
10674 #, no-wrap
10675 msgid ""
10676 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
10677 "B<                 const struct timespec *>I<timeout>B<);>\n"
10678 msgstr ""
10679 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
10680 "B<                 const struct timespec *>I<timeout>B<);>\n"
10681
10682 #. type: Plain text
10683 #: build/C/man2/sigwaitinfo.2:46
10684 msgid "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10685 msgstr ""
10686 "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10687
10688 #. type: Plain text
10689 #: build/C/man2/sigwaitinfo.2:56
10690 msgid ""
10691 "B<sigwaitinfo>()  suspends execution of the calling thread until one of the "
10692 "signals in I<set> is pending (If one of the signals in I<set> is already "
10693 "pending for the calling thread, B<sigwaitinfo>()  will return immediately.)"
10694 msgstr ""
10695 "B<sigwaitinfo>()  は I<set> のうちのどれかのシグナルが処理待ちになるまで、 呼"
10696 "び出しスレッドの実行を一時停止する (呼び出しスレッドに対して I<set> のうちの"
10697 "どれかのシグナルが既に待機中 (pending) である場合、 B<sigwaitinfo>()  はすぐ"
10698 "に戻る)。"
10699
10700 #. type: Plain text
10701 #: build/C/man2/sigwaitinfo.2:68
10702 msgid ""
10703 "B<sigwaitinfo>()  removes the signal from the set of pending signals and "
10704 "returns the signal number as its function result.  If the I<info> argument "
10705 "is not NULL, then the buffer that it points to is used to return a structure "
10706 "of type I<siginfo_t> (see B<sigaction>(2))  containing information about the "
10707 "signal."
10708 msgstr ""
10709 "B<sigwaitinfo>()  はそのシグナルを待機中のシグナルの集合から削除し、関数の結"
10710 "果としてシグナル番号を返す。 I<info> 引き数が NULL でない場合、配送されたシグ"
10711 "ナルの情報が入った I<siginfo_t> 型 (B<sigaction>(2)  を参照) の構造体を "
10712 "I<info> が指すバッファに入れて返す。"
10713
10714 #. type: Plain text
10715 #: build/C/man2/sigwaitinfo.2:76
10716 msgid ""
10717 "If multiple signals in I<set> are pending for the caller, the signal that is "
10718 "retrieved by B<sigwaitinfo>()  is determined according to the usual ordering "
10719 "rules; see B<signal>(7)  for further details."
10720 msgstr ""
10721 "呼び出し元に対して I<set> の複数のシグナルが処理待ちの場合、 B<sigwaitinfo>"
10722 "() で取得するシグナルは通常の順序決定ルールに基づいて決定される。 詳細は "
10723 "B<signal>(7) を参照のこと。"
10724
10725 #. type: Plain text
10726 #: build/C/man2/sigwaitinfo.2:88
10727 msgid ""
10728 "B<sigtimedwait>()  operates in exactly the same way as B<sigwaitinfo>()  "
10729 "except that it has an additional argument, I<timeout>, which specifies the "
10730 "interval for which the thread is suspended waiting for a signal.  (This "
10731 "interval will be rounded up to the system clock granularity, and kernel "
10732 "scheduling delays mean that the interval may overrun by a small amount.)  "
10733 "This argument is of the following type:"
10734 msgstr "B<sigtimedwait>() は、 B<sigwaitinfo>() と次の点を除いて全く同じように動作する。この関数にはもう 1 つの引き数 I<timeout> があり、シグナル待ちでスレッドが一時停止する時間を指定することができる(この時間はシステムクロックの粒度に切り上げられ、カーネルのスケジューリング遅延により少しだけ長くなる可能性がある)。この引き数の型は以下のとおりである:"
10735
10736 #. type: Plain text
10737 #: build/C/man2/sigwaitinfo.2:95
10738 #, no-wrap
10739 msgid ""
10740 "struct timespec {\n"
10741 "    long    tv_sec;         /* seconds */\n"
10742 "    long    tv_nsec;        /* nanoseconds */\n"
10743 "}\n"
10744 msgstr ""
10745 "struct timespec {\n"
10746 "    long    tv_sec;         /* 秒 */\n"
10747 "    long    tv_nsec;        /* ナノ秒 */\n"
10748 "}\n"
10749
10750 #. type: Plain text
10751 #: build/C/man2/sigwaitinfo.2:105
10752 msgid ""
10753 "If both fields of this structure are specified as 0, a poll is performed: "
10754 "B<sigtimedwait>()  returns immediately, either with information about a "
10755 "signal that was pending for the caller, or with an error if none of the "
10756 "signals in I<set> was pending."
10757 msgstr ""
10758 "この構造体の 2 つのフィールドがともに 0 の場合、ポーリングが行われる: "
10759 "B<sigtimedwait>()  は、呼び出し側プロセスに対して 待機しているシグナルの情報"
10760 "を返して戻るか、 I<set> のうちのどのシグナルも待機していない場合はエラーを返"
10761 "して戻る。"
10762
10763 #. type: Plain text
10764 #: build/C/man2/sigwaitinfo.2:114
10765 msgid ""
10766 "On success, both B<sigwaitinfo>()  and B<sigtimedwait>()  return a signal "
10767 "number (i.e., a value greater than zero).  On failure both calls return -1, "
10768 "with I<errno> set to indicate the error."
10769 msgstr ""
10770 "成功した場合、 B<sigwaitinfo>()  と B<sigtimedwait>()  はシグナル番号 (すなわ"
10771 "ち 0 より大きい数) を返す。 失敗した場合、2 つの関数は -1 を返し、 I<errno> "
10772 "はエラーを表す値に設定される。"
10773
10774 #. type: Plain text
10775 #: build/C/man2/sigwaitinfo.2:123
10776 msgid ""
10777 "No signal in I<set> was became pending within the I<timeout> period "
10778 "specified to B<sigtimedwait>()."
10779 msgstr ""
10780 "I<set> のうちのどのシグナルも B<sigtimedwait>()  に指定された I<timeout> の期"
10781 "間内に処理待ちにならなかった。"
10782
10783 #. type: Plain text
10784 #: build/C/man2/sigwaitinfo.2:129
10785 msgid ""
10786 "The wait was interrupted by a signal handler; see B<signal>(7).  (This "
10787 "handler was for a signal other than one of those in I<set>.)"
10788 msgstr ""
10789 "シグナル待ちがシグナルハンドラによって中断 (interrupt) された (このハンドラ"
10790 "は I<set> にあるシグナル以外のものである)。 B<signal>(7)  参照。"
10791
10792 #. type: Plain text
10793 #: build/C/man2/sigwaitinfo.2:133
10794 msgid "I<timeout> was invalid."
10795 msgstr "I<timeout> が不正である。"
10796
10797 #. type: Plain text
10798 #: build/C/man2/sigwaitinfo.2:153
10799 msgid ""
10800 "In normal usage, the calling program blocks the signals in I<set> via a "
10801 "prior call to B<sigprocmask>(2)  (so that the default disposition for these "
10802 "signals does not occur if they become pending between successive calls to "
10803 "B<sigwaitinfo>()  or B<sigtimedwait>())  and does not establish handlers for "
10804 "these signals.  In a multithreaded program, the signal should be blocked in "
10805 "all threads, in order to prevent the signal being treated according to its "
10806 "default disposition in a thread other than the one calling B<sigwaitinfo>()  "
10807 "or B<sigtimedwait>())."
10808 msgstr ""
10809 "通常の使用法では、呼び出し側プロセスはこれらの関数より先に B<sigprocmask>"
10810 "(2)  の呼び出すことにより I<set> に含まれるシグナルをブロックし (そのためにこ"
10811 "れらのシグナルがこの後に続く B<sigwaitinfo>()  や B<sigtimedwait>()  の呼び出"
10812 "しの間に処理待ちになった場合には、デフォルトの動作は行われず)、 これらのシグ"
10813 "ナルに対するハンドラは設定しない。 マルチスレッドプログラムでは、 "
10814 "B<sigwaitinfo>()  や B<sigtimedwait>() を呼び出したスレッド以外のスレッドで、"
10815 "そのシグナルがデフォルトの動作に基いて処理されないように、全てのスレッドで該"
10816 "当シグナルをブロックすべきである。"
10817
10818 #. type: Plain text
10819 #: build/C/man2/sigwaitinfo.2:158
10820 msgid ""
10821 "The set of signals that is pending for a given thread is the union of the "
10822 "set of signals that is pending specifically for that thread and the set of "
10823 "signals that is pending for the process as a whole (see B<signal>(7))."
10824 msgstr ""
10825 "指定されたスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体宛ての"
10826 "処理待ちのシグナル集合と、プロセス全体宛ての 処理待ちのシグナル集合をあわせた"
10827 "ものである (B<signal>(7)  参照)。"
10828
10829 #. type: Plain text
10830 #: build/C/man2/sigwaitinfo.2:164
10831 msgid "Attempts to wait for B<SIGKILL> and B<SIGSTOP> are silently ignored."
10832 msgstr "B<SIGKILL> と B<SIGSTOP> を待とうとした場合、黙って無視される。"
10833
10834 #. type: Plain text
10835 #: build/C/man2/sigwaitinfo.2:173
10836 msgid ""
10837 "If multiple threads of a process are blocked waiting for the same signal(s) "
10838 "in B<sigwaitinfo>()  or B<sigtimedwait>(), then exactly one of the threads "
10839 "will actually receive the signal if it becomes pending for the process as a "
10840 "whole; which of the threads receives the signal is indeterminate."
10841 msgstr ""
10842 "一つのプロセス内の複数のスレッドが B<sigwaitinfo>()  や B<sigtimedwait>()  で"
10843 "同じシグナルを待って停止した場合、 プロセス全体宛てのシグナルが処理待ちになる"
10844 "と、複数のスレッドのうち一つだけが 実際にそのシグナルを受信することになる。 "
10845 "どのスレッドがシグナルを受信するかは決まっていない。"
10846
10847 #. type: Plain text
10848 #: build/C/man2/sigwaitinfo.2:182
10849 msgid ""
10850 "POSIX leaves the meaning of a NULL value for the I<timeout> argument of "
10851 "B<sigtimedwait>()  unspecified, permitting the possibility that this has the "
10852 "same meaning as a call to B<sigwaitinfo>(), and indeed this is what is done "
10853 "on Linux."
10854 msgstr ""
10855 "POSIX では B<sigtimedwait>()  の引き数 I<timeout> の値を NULL にした場合の意"
10856 "味を未定義としている。 B<sigwaitinfo>()  を呼び出したのと同じ意味としてもよい"
10857 "ことになっており、 実際 Linux ではこのように動作する。"
10858
10859 #. type: Plain text
10860 #: build/C/man2/sigwaitinfo.2:187
10861 msgid ""
10862 "On Linux, B<sigwaitinfo>()  is a library function implemented on top of "
10863 "B<sigtimedwait>()."
10864 msgstr ""
10865 "Linux では、 B<sigwaitinfo>()  は B<sigtimedwait>()  を用いて実装されたライブ"
10866 "ラリ関数である。"
10867
10868 #. type: Plain text
10869 #: build/C/man2/sigwaitinfo.2:199
10870 msgid ""
10871 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
10872 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), B<signal>"
10873 "(7), B<time>(7)"
10874 msgstr ""
10875 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
10876 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), B<signal>"
10877 "(7), B<time>(7)"
10878
10879 #. type: TH
10880 #: build/C/man3/sysv_signal.3:25
10881 #, no-wrap
10882 msgid "SYSV_SIGNAL"
10883 msgstr "SYSV_SIGNAL"
10884
10885 #. type: TH
10886 #: build/C/man3/sysv_signal.3:25
10887 #, no-wrap
10888 msgid "2014-01-06"
10889 msgstr "2014-01-06"
10890
10891 #. type: Plain text
10892 #: build/C/man3/sysv_signal.3:28
10893 msgid "sysv_signal - signal handling with System V semantics"
10894 msgstr "sysv_signal - System V 方式のシグナル処理"
10895
10896 #. type: Plain text
10897 #: build/C/man3/sysv_signal.3:30
10898 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
10899 msgstr "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */"
10900
10901 #. type: Plain text
10902 #: build/C/man3/sysv_signal.3:36
10903 msgid ""
10904 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
10905 msgstr ""
10906 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
10907
10908 #. type: Plain text
10909 #: build/C/man3/sysv_signal.3:41
10910 msgid ""
10911 "The B<sysv_signal>()  function takes the same arguments, and performs the "
10912 "same task, as B<signal>(2)."
10913 msgstr ""
10914 "B<sysv_signal>()  関数は B<signal>(2)  と同じ引き数をとり、同じ処理を実行す"
10915 "る。"
10916
10917 #. type: Plain text
10918 #: build/C/man3/sysv_signal.3:51
10919 msgid ""
10920 "However B<sysv_signal>()  provides the System V unreliable signal semantics, "
10921 "that is: a) the disposition of the signal is reset to the default when the "
10922 "handler is invoked; b) delivery of further instances of the signal is not "
10923 "blocked while the signal handler is executing; and c) if the handler "
10924 "interrupts (certain) blocking system calls, then the system call is not "
10925 "automatically restarted."
10926 msgstr ""
10927 "しかしながら、 B<sysv_signal>()  は System V の信頼性に欠けるシグナル処理方式"
10928 "を提供している。 信頼性に欠けるシグナル処理方式は以下の特徴を持つ。 a) ハンド"
10929 "ラが起動されると、シグナルの処理方法 (disposition) が デフォルトにリセットさ"
10930 "れる、 b) シグナルハンドラの実行中は、それ以降に発生した同じシグナルの配送が "
10931 "ブロックされない、 c) ハンドラが停止中の (blocking している) システムコールを"
10932 "中断した場合、 自動的に再開されないシステムコールがある。"
10933
10934 #. type: Plain text
10935 #: build/C/man3/sysv_signal.3:57
10936 msgid ""
10937 "The B<sysv_signal>()  function returns the previous value of the signal "
10938 "handler, or B<SIG_ERR> on error."
10939 msgstr ""
10940 "B<sysv_signal>()  関数はシグナルハンドラの直前の値を返す。 エラーの場合、 "
10941 "B<SIG_ERR> を返す。"
10942
10943 #. type: Plain text
10944 #: build/C/man3/sysv_signal.3:65
10945 msgid "The B<sysv_signal>()  function is thread-safe."
10946 msgstr "B<sysv_signal>() 関数はスレッドセーフである。"
10947
10948 #. type: Plain text
10949 #: build/C/man3/sysv_signal.3:67
10950 msgid "This function is nonstandard."
10951 msgstr "この関数は非標準である。"
10952
10953 #. type: Plain text
10954 #: build/C/man3/sysv_signal.3:73
10955 msgid ""
10956 "Use of B<sysv_signal>()  should be avoided; use B<sigaction>(2)  instead."
10957 msgstr ""
10958 "B<sysv_signal>()  の使用は避けるべきである。代わりに B<sigaction>(2)  を使う"
10959 "こと。"
10960
10961 #. type: Plain text
10962 #: build/C/man3/sysv_signal.3:84
10963 msgid ""
10964 "On older Linux systems, B<sysv_signal>()  and B<signal>(2)  were "
10965 "equivalent.  But on newer systems, B<signal>(2)  provides reliable signal "
10966 "semantics; see B<signal>(2)  for details."
10967 msgstr ""
10968 "以前の Linux システムでは、 B<sysv_signal>()  と B<signal>(2)  は等価であっ"
10969 "た。しかし、新しめのシステムでは、 B<signal>(2)  は信頼性のあるシグナル処理方"
10970 "式を提供している。 詳細は B<signal>(2)  を参照。"
10971
10972 #. type: Plain text
10973 #: build/C/man3/sysv_signal.3:97
10974 msgid "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
10975 msgstr "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
10976
10977 #. type: TH
10978 #: build/C/man2/timer_create.2:31
10979 #, no-wrap
10980 msgid "TIMER_CREATE"
10981 msgstr "TIMER_CREATE"
10982
10983 #. type: TH
10984 #: build/C/man2/timer_create.2:31
10985 #, no-wrap
10986 msgid "2014-01-20"
10987 msgstr "2014-01-20"
10988
10989 #. type: Plain text
10990 #: build/C/man2/timer_create.2:34
10991 msgid "timer_create - create a POSIX per-process timer"
10992 msgstr ""
10993
10994 #. type: Plain text
10995 #: build/C/man2/timer_create.2:38
10996 #, no-wrap
10997 msgid ""
10998 "B<#include E<lt>signal.hE<gt>>\n"
10999 "B<#include E<lt>time.hE<gt>>\n"
11000 msgstr ""
11001 "B<#include E<lt>signal.hE<gt>>\n"
11002 "B<#include E<lt>time.hE<gt>>\n"
11003
11004 #. type: Plain text
11005 #: build/C/man2/timer_create.2:41
11006 #, no-wrap
11007 msgid ""
11008 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
11009 "B<                 timer_t *>I<timerid>B<);>\n"
11010 msgstr ""
11011 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
11012 "B<                 timer_t *>I<timerid>B<);>\n"
11013
11014 #. type: Plain text
11015 #: build/C/man2/timer_create.2:44 build/C/man2/timer_delete.2:37
11016 #: build/C/man2/timer_getoverrun.2:37 build/C/man2/timer_settime.2:41
11017 msgid "Link with I<-lrt>."
11018 msgstr "I<-lrt> でリンクする。"
11019
11020 #. type: Plain text
11021 #: build/C/man2/timer_create.2:52
11022 msgid "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11023 msgstr "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11024
11025 #. type: Plain text
11026 #: build/C/man2/timer_create.2:60
11027 msgid ""
11028 "B<timer_create>()  creates a new per-process interval timer.  The ID of the "
11029 "new timer is returned in the buffer pointed to by I<timerid>, which must be "
11030 "a non-null pointer.  This ID is unique within the process, until the timer "
11031 "is deleted.  The new timer is initially disarmed."
11032 msgstr ""
11033
11034 #. type: Plain text
11035 #: build/C/man2/timer_create.2:65
11036 msgid ""
11037 "The I<clockid> argument specifies the clock that the new timer uses to "
11038 "measure time.  It can be specified as one of the following values:"
11039 msgstr ""
11040
11041 #. type: TP
11042 #: build/C/man2/timer_create.2:65
11043 #, no-wrap
11044 msgid "B<CLOCK_REALTIME>"
11045 msgstr "B<CLOCK_REALTIME>"
11046
11047 #. type: Plain text
11048 #: build/C/man2/timer_create.2:68
11049 msgid "A settable system-wide real-time clock."
11050 msgstr ""
11051
11052 #. type: TP
11053 #: build/C/man2/timer_create.2:68
11054 #, no-wrap
11055 msgid "B<CLOCK_MONOTONIC>"
11056 msgstr "B<CLOCK_MONOTONIC>"
11057
11058 #.  Note: the CLOCK_MONOTONIC_RAW clock added for clock_gettime()
11059 #.  in 2.6.28 is not supported for POSIX timers -- mtk, Feb 2009
11060 #. type: Plain text
11061 #: build/C/man2/timer_create.2:75
11062 msgid ""
11063 "A nonsettable monotonically increasing clock that measures time from some "
11064 "unspecified point in the past that does not change after system startup."
11065 msgstr ""
11066
11067 #. type: TP
11068 #: build/C/man2/timer_create.2:75
11069 #, no-wrap
11070 msgid "B<CLOCK_PROCESS_CPUTIME_ID> (since Linux 2.6.12)"
11071 msgstr ""
11072
11073 #. type: Plain text
11074 #: build/C/man2/timer_create.2:79
11075 msgid ""
11076 "A clock that measures (user and system) CPU time consumed by (all of the "
11077 "threads in) the calling process."
11078 msgstr ""
11079
11080 #. type: TP
11081 #: build/C/man2/timer_create.2:79
11082 #, no-wrap
11083 msgid "B<CLOCK_THREAD_CPUTIME_ID> (since Linux 2.6.12)"
11084 msgstr ""
11085
11086 #.  The CLOCK_MONOTONIC_RAW that was added in 2.6.28 can't be used
11087 #.  to create a timer -- mtk, Feb 2009
11088 #. type: Plain text
11089 #: build/C/man2/timer_create.2:85
11090 msgid ""
11091 "A clock that measures (user and system) CPU time consumed by the calling "
11092 "thread."
11093 msgstr ""
11094
11095 #. type: Plain text
11096 #: build/C/man2/timer_create.2:94
11097 msgid ""
11098 "As well as the above values, I<clockid> can be specified as the I<clockid> "
11099 "returned by a call to B<clock_getcpuclockid>(3)  or B<pthread_getcpuclockid>"
11100 "(3)."
11101 msgstr ""
11102
11103 #. type: Plain text
11104 #: build/C/man2/timer_create.2:103
11105 msgid ""
11106 "The I<sevp> argument points to a I<sigevent> structure that specifies how "
11107 "the caller should be notified when the timer expires.  For the definition "
11108 "and general details of this structure, see B<sigevent>(7)."
11109 msgstr ""
11110
11111 #. type: Plain text
11112 #: build/C/man2/timer_create.2:107
11113 msgid "The I<sevp.sigev_notify> field can have the following values:"
11114 msgstr ""
11115
11116 #. type: Plain text
11117 #: build/C/man2/timer_create.2:112
11118 msgid ""
11119 "Don't asynchronously notify when the timer expires.  Progress of the timer "
11120 "can be monitored using B<timer_gettime>(2)."
11121 msgstr ""
11122
11123 #. type: Plain text
11124 #: build/C/man2/timer_create.2:130
11125 msgid ""
11126 "Upon timer expiration, generate the signal I<sigev_signo> for the process.  "
11127 "See B<sigevent>(7)  for general details.  The I<si_code> field of the "
11128 "I<siginfo_t> structure will be set to B<SI_TIMER>.  At any point in time, at "
11129 "most one signal is queued to the process for a given timer; see "
11130 "B<timer_getoverrun>(2)  for more details."
11131 msgstr ""
11132
11133 #. type: Plain text
11134 #: build/C/man2/timer_create.2:138
11135 msgid ""
11136 "Upon timer expiration, invoke I<sigev_notify_function> as if it were the "
11137 "start function of a new thread.  See B<sigevent>(7)  for details."
11138 msgstr ""
11139
11140 #. type: Plain text
11141 #: build/C/man2/timer_create.2:152
11142 msgid ""
11143 "As for B<SIGEV_SIGNAL>, but the signal is targeted at the thread whose ID is "
11144 "given in I<sigev_notify_thread_id>, which must be a thread in the same "
11145 "process as the caller.  The I<sigev_notify_thread_id> field specifies a "
11146 "kernel thread ID, that is, the value returned by B<clone>(2)  or B<gettid>"
11147 "(2).  This flag is intended only for use by threading libraries."
11148 msgstr ""
11149
11150 #. type: Plain text
11151 #: build/C/man2/timer_create.2:167
11152 msgid ""
11153 "Specifying I<sevp> as NULL is equivalent to specifying a pointer to a "
11154 "I<sigevent> structure in which I<sigev_notify> is B<SIGEV_SIGNAL>, "
11155 "I<sigev_signo> is B<SIGALRM>, and I<sigev_value.sival_int> is the timer ID."
11156 msgstr ""
11157
11158 #. type: Plain text
11159 #: build/C/man2/timer_create.2:175
11160 msgid ""
11161 "On success, B<timer_create>()  returns 0, and the ID of the new timer is "
11162 "placed in I<*timerid>.  On failure, -1 is returned, and I<errno> is set to "
11163 "indicate the error."
11164 msgstr ""
11165
11166 #. type: Plain text
11167 #: build/C/man2/timer_create.2:179
11168 msgid "Temporary error during kernel allocation of timer structures."
11169 msgstr ""
11170
11171 #. type: Plain text
11172 #: build/C/man2/timer_create.2:187
11173 msgid ""
11174 "Clock ID, I<sigev_notify>, I<sigev_signo>, or I<sigev_notify_thread_id> is "
11175 "invalid."
11176 msgstr ""
11177
11178 #.  glibc layer: malloc()
11179 #. type: Plain text
11180 #: build/C/man2/timer_create.2:191
11181 msgid "Could not allocate memory."
11182 msgstr ""
11183
11184 #. type: Plain text
11185 #: build/C/man2/timer_create.2:193 build/C/man2/timer_delete.2:67
11186 #: build/C/man2/timer_getoverrun.2:97
11187 msgid "This system call is available since Linux 2.6."
11188 msgstr "このシステムコールは Linux 2.6 以降で利用できる。"
11189
11190 #. type: Plain text
11191 #: build/C/man2/timer_create.2:198
11192 msgid "A program may create multiple interval timers using B<timer_create>()."
11193 msgstr ""
11194
11195 #. type: Plain text
11196 #: build/C/man2/timer_create.2:203
11197 msgid ""
11198 "Timers are not inherited by the child of a B<fork>(2), and are disarmed and "
11199 "deleted during an B<execve>(2)."
11200 msgstr ""
11201
11202 #. type: Plain text
11203 #: build/C/man2/timer_create.2:211
11204 msgid ""
11205 "The kernel preallocates a \"queued real-time signal\" for each timer created "
11206 "using B<timer_create>().  Consequently, the number of timers is limited by "
11207 "the B<RLIMIT_SIGPENDING> resource limit (see B<setrlimit>(2))."
11208 msgstr ""
11209
11210 #. type: Plain text
11211 #: build/C/man2/timer_create.2:216
11212 msgid ""
11213 "The timers created by B<timer_create>()  are commonly known as \"POSIX "
11214 "(interval) timers\".  The POSIX timers API consists of the following "
11215 "interfaces:"
11216 msgstr ""
11217
11218 #. type: Plain text
11219 #: build/C/man2/timer_create.2:219
11220 msgid "B<timer_create>(): Create a timer."
11221 msgstr ""
11222
11223 #. type: Plain text
11224 #: build/C/man2/timer_create.2:222
11225 msgid "B<timer_settime>(2): Arm (start) or disarm (stop) a timer."
11226 msgstr ""
11227
11228 #. type: Plain text
11229 #: build/C/man2/timer_create.2:226
11230 msgid ""
11231 "B<timer_gettime>(2): Fetch the time remaining until the next expiration of a "
11232 "timer, along with the interval setting of the timer."
11233 msgstr ""
11234
11235 #. type: Plain text
11236 #: build/C/man2/timer_create.2:229
11237 msgid ""
11238 "B<timer_getoverrun>(2): Return the overrun count for the last timer "
11239 "expiration."
11240 msgstr ""
11241
11242 #. type: Plain text
11243 #: build/C/man2/timer_create.2:232
11244 msgid "B<timer_delete>(2): Disarm and delete a timer."
11245 msgstr ""
11246
11247 #. type: Plain text
11248 #: build/C/man2/timer_create.2:235
11249 msgid ""
11250 "Part of the implementation of the POSIX timers API is provided by glibc.  In "
11251 "particular:"
11252 msgstr ""
11253
11254 #. type: Plain text
11255 #: build/C/man2/timer_create.2:239
11256 msgid ""
11257 "The functionality for B<SIGEV_THREAD> is implemented within glibc, rather "
11258 "than the kernel."
11259 msgstr ""
11260
11261 #.  See the glibc source file kernel-posix-timers.h for the structure
11262 #.  that glibc uses to map user-space timer IDs to kernel timer IDs
11263 #.  The kernel-level timer ID is exposed via siginfo.si_tid.
11264 #. type: Plain text
11265 #: build/C/man2/timer_create.2:245
11266 msgid ""
11267 "The timer IDs presented at user level are maintained by glibc, which maps "
11268 "these IDs to the timer IDs employed by the kernel."
11269 msgstr ""
11270
11271 #. type: Plain text
11272 #: build/C/man2/timer_create.2:253
11273 msgid ""
11274 "The POSIX timers system calls first appeared in Linux 2.6.  Prior to this, "
11275 "glibc provided an incomplete user-space implementation (B<CLOCK_REALTIME> "
11276 "timers only) using POSIX threads, and current glibc falls back to this "
11277 "implementation on systems running pre-2.6 Linux kernels."
11278 msgstr ""
11279
11280 #. type: Plain text
11281 #: build/C/man2/timer_create.2:261
11282 msgid ""
11283 "Since Linux 3.10, the I</proc/[pid]/timers> file can be used to list the "
11284 "POSIX timers for the process with PID I<pid>.  See B<proc>(5)  for further "
11285 "information."
11286 msgstr ""
11287
11288 #. type: Plain text
11289 #: build/C/man2/timer_create.2:273
11290 msgid ""
11291 "The program below takes two arguments: a sleep period in seconds, and a "
11292 "timer frequency in nanoseconds.  The program establishes a handler for the "
11293 "signal it uses for the timer, blocks that signal, creates and arms a timer "
11294 "that expires with the given frequency, sleeps for the specified number of "
11295 "seconds, and then unblocks the timer signal.  Assuming that the timer "
11296 "expired at least once while the program slept, the signal handler will be "
11297 "invoked, and the handler displays some information about the timer "
11298 "notification.  The program terminates after one invocation of the signal "
11299 "handler."
11300 msgstr ""
11301
11302 #. type: Plain text
11303 #: build/C/man2/timer_create.2:278
11304 msgid ""
11305 "In the following example run, the program sleeps for 1 second, after "
11306 "creating a timer that has a frequency of 100 nanoseconds.  By the time the "
11307 "signal is unblocked and delivered, there have been around ten million "
11308 "overruns."
11309 msgstr ""
11310
11311 #. type: Plain text
11312 #: build/C/man2/timer_create.2:290
11313 #, no-wrap
11314 msgid ""
11315 "$ B<./a.out 1 100>\n"
11316 "Establishing handler for signal 34\n"
11317 "Blocking signal 34\n"
11318 "timer ID is 0x804c008\n"
11319 "Sleeping for 1 seconds\n"
11320 "Unblocking signal 34\n"
11321 "Caught signal 34\n"
11322 "    sival_ptr = 0xbfb174f4;     *sival_ptr = 0x804c008\n"
11323 "    overrun count = 10004886\n"
11324 msgstr ""
11325
11326 #. type: Plain text
11327 #: build/C/man2/timer_create.2:300
11328 #, no-wrap
11329 msgid ""
11330 "#include E<lt>stdlib.hE<gt>\n"
11331 "#include E<lt>unistd.hE<gt>\n"
11332 "#include E<lt>stdio.hE<gt>\n"
11333 "#include E<lt>signal.hE<gt>\n"
11334 "#include E<lt>time.hE<gt>\n"
11335 msgstr ""
11336 "#include E<lt>stdlib.hE<gt>\n"
11337 "#include E<lt>unistd.hE<gt>\n"
11338 "#include E<lt>stdio.hE<gt>\n"
11339 "#include E<lt>signal.hE<gt>\n"
11340 "#include E<lt>time.hE<gt>\n"
11341
11342 #. type: Plain text
11343 #: build/C/man2/timer_create.2:303
11344 #, no-wrap
11345 msgid ""
11346 "#define CLOCKID CLOCK_REALTIME\n"
11347 "#define SIG SIGRTMIN\n"
11348 msgstr ""
11349 "#define CLOCKID CLOCK_REALTIME\n"
11350 "#define SIG SIGRTMIN\n"
11351
11352 #. type: Plain text
11353 #: build/C/man2/timer_create.2:306
11354 #, no-wrap
11355 msgid ""
11356 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
11357 "                        } while (0)\n"
11358 msgstr ""
11359 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
11360 "                        } while (0)\n"
11361
11362 #. type: Plain text
11363 #: build/C/man2/timer_create.2:312
11364 #, no-wrap
11365 msgid ""
11366 "static void\n"
11367 "print_siginfo(siginfo_t *si)\n"
11368 "{\n"
11369 "    timer_t *tidp;\n"
11370 "    int or;\n"
11371 msgstr ""
11372 "static void\n"
11373 "print_siginfo(siginfo_t *si)\n"
11374 "{\n"
11375 "    timer_t *tidp;\n"
11376 "    int or;\n"
11377
11378 #. type: Plain text
11379 #: build/C/man2/timer_create.2:314
11380 #, no-wrap
11381 msgid "    tidp = si-E<gt>si_value.sival_ptr;\n"
11382 msgstr "    tidp = si-E<gt>si_value.sival_ptr;\n"
11383
11384 #. type: Plain text
11385 #: build/C/man2/timer_create.2:317
11386 #, no-wrap
11387 msgid ""
11388 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
11389 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
11390 msgstr ""
11391 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
11392 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
11393
11394 #. type: Plain text
11395 #: build/C/man2/timer_create.2:324
11396 #, no-wrap
11397 msgid ""
11398 "    or = timer_getoverrun(*tidp);\n"
11399 "    if (or == -1)\n"
11400 "        errExit(\"timer_getoverrun\");\n"
11401 "    else\n"
11402 "        printf(\"    overrun count = %d\\en\", or);\n"
11403 "}\n"
11404 msgstr ""
11405 "    or = timer_getoverrun(*tidp);\n"
11406 "    if (or == -1)\n"
11407 "        errExit(\"timer_getoverrun\");\n"
11408 "    else\n"
11409 "        printf(\"    overrun count = %d\\en\", or);\n"
11410 "}\n"
11411
11412 #. type: Plain text
11413 #: build/C/man2/timer_create.2:331
11414 #, no-wrap
11415 msgid ""
11416 "static void\n"
11417 "handler(int sig, siginfo_t *si, void *uc)\n"
11418 "{\n"
11419 "    /* Note: calling printf() from a signal handler is not\n"
11420 "       strictly correct, since printf() is not async-signal-safe;\n"
11421 "       see signal(7) */\n"
11422 msgstr ""
11423 "static void\n"
11424 "handler(int sig, siginfo_t *si, void *uc)\n"
11425 "{\n"
11426 "    /* Note: calling printf() from a signal handler is not\n"
11427 "       strictly correct, since printf() is not async-signal-safe;\n"
11428 "       see signal(7) */\n"
11429
11430 #. type: Plain text
11431 #: build/C/man2/timer_create.2:336
11432 #, no-wrap
11433 msgid ""
11434 "    printf(\"Caught signal %d\\en\", sig);\n"
11435 "    print_siginfo(si);\n"
11436 "    signal(sig, SIG_IGN);\n"
11437 "}\n"
11438 msgstr ""
11439 "    printf(\"Caught signal %d\\en\", sig);\n"
11440 "    print_siginfo(si);\n"
11441 "    signal(sig, SIG_IGN);\n"
11442 "}\n"
11443
11444 #. type: Plain text
11445 #: build/C/man2/timer_create.2:346
11446 #, no-wrap
11447 msgid ""
11448 "int\n"
11449 "main(int argc, char *argv[])\n"
11450 "{\n"
11451 "    timer_t timerid;\n"
11452 "    struct sigevent sev;\n"
11453 "    struct itimerspec its;\n"
11454 "    long long freq_nanosecs;\n"
11455 "    sigset_t mask;\n"
11456 "    struct sigaction sa;\n"
11457 msgstr ""
11458 "int\n"
11459 "main(int argc, char *argv[])\n"
11460 "{\n"
11461 "    timer_t timerid;\n"
11462 "    struct sigevent sev;\n"
11463 "    struct itimerspec its;\n"
11464 "    long long freq_nanosecs;\n"
11465 "    sigset_t mask;\n"
11466 "    struct sigaction sa;\n"
11467
11468 #. type: Plain text
11469 #: build/C/man2/timer_create.2:352
11470 #, no-wrap
11471 msgid ""
11472 "    if (argc != 3) {\n"
11473 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
11474 "                argv[0]);\n"
11475 "        exit(EXIT_FAILURE);\n"
11476 "    }\n"
11477 msgstr ""
11478 "    if (argc != 3) {\n"
11479 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
11480 "                argv[0]);\n"
11481 "        exit(EXIT_FAILURE);\n"
11482 "    }\n"
11483
11484 #. type: Plain text
11485 #: build/C/man2/timer_create.2:354
11486 #, no-wrap
11487 msgid "    /* Establish handler for timer signal */\n"
11488 msgstr "    /* Establish handler for timer signal */\n"
11489
11490 #. type: Plain text
11491 #: build/C/man2/timer_create.2:361
11492 #, no-wrap
11493 msgid ""
11494 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
11495 "    sa.sa_flags = SA_SIGINFO;\n"
11496 "    sa.sa_sigaction = handler;\n"
11497 "    sigemptyset(&sa.sa_mask);\n"
11498 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
11499 "        errExit(\"sigaction\");\n"
11500 msgstr ""
11501 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
11502 "    sa.sa_flags = SA_SIGINFO;\n"
11503 "    sa.sa_sigaction = handler;\n"
11504 "    sigemptyset(&sa.sa_mask);\n"
11505 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
11506 "        errExit(\"sigaction\");\n"
11507
11508 #. type: Plain text
11509 #: build/C/man2/timer_create.2:363
11510 #, no-wrap
11511 msgid "    /* Block timer signal temporarily */\n"
11512 msgstr "    /* Block timer signal temporarily */\n"
11513
11514 #. type: Plain text
11515 #: build/C/man2/timer_create.2:369
11516 #, no-wrap
11517 msgid ""
11518 "    printf(\"Blocking signal %d\\en\", SIG);\n"
11519 "    sigemptyset(&mask);\n"
11520 "    sigaddset(&mask, SIG);\n"
11521 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
11522 "        errExit(\"sigprocmask\");\n"
11523 msgstr ""
11524 "    printf(\"Blocking signal %d\\en\", SIG);\n"
11525 "    sigemptyset(&mask);\n"
11526 "    sigaddset(&mask, SIG);\n"
11527 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
11528 "        errExit(\"sigprocmask\");\n"
11529
11530 #. type: Plain text
11531 #: build/C/man2/timer_create.2:371
11532 #, no-wrap
11533 msgid "    /* Create the timer */\n"
11534 msgstr "    /* Create the timer */\n"
11535
11536 #. type: Plain text
11537 #: build/C/man2/timer_create.2:377
11538 #, no-wrap
11539 msgid ""
11540 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
11541 "    sev.sigev_signo = SIG;\n"
11542 "    sev.sigev_value.sival_ptr = &timerid;\n"
11543 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
11544 "        errExit(\"timer_create\");\n"
11545 msgstr ""
11546 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
11547 "    sev.sigev_signo = SIG;\n"
11548 "    sev.sigev_value.sival_ptr = &timerid;\n"
11549 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
11550 "        errExit(\"timer_create\");\n"
11551
11552 #. type: Plain text
11553 #: build/C/man2/timer_create.2:379
11554 #, no-wrap
11555 msgid "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
11556 msgstr "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
11557
11558 #. type: Plain text
11559 #: build/C/man2/timer_create.2:381
11560 #, no-wrap
11561 msgid "    /* Start the timer */\n"
11562 msgstr "    /* Start the timer */\n"
11563
11564 #. type: Plain text
11565 #: build/C/man2/timer_create.2:387
11566 #, no-wrap
11567 msgid ""
11568 "    freq_nanosecs = atoll(argv[2]);\n"
11569 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
11570 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
11571 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
11572 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
11573 msgstr ""
11574 "    freq_nanosecs = atoll(argv[2]);\n"
11575 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
11576 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
11577 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
11578 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
11579
11580 #. type: Plain text
11581 #: build/C/man2/timer_create.2:390
11582 #, no-wrap
11583 msgid ""
11584 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
11585 "         errExit(\"timer_settime\");\n"
11586 msgstr ""
11587 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
11588 "         errExit(\"timer_settime\");\n"
11589
11590 #. type: Plain text
11591 #: build/C/man2/timer_create.2:393
11592 #, no-wrap
11593 msgid ""
11594 "    /* Sleep for a while; meanwhile, the timer may expire\n"
11595 "       multiple times */\n"
11596 msgstr ""
11597 "    /* Sleep for a while; meanwhile, the timer may expire\n"
11598 "       multiple times */\n"
11599
11600 #. type: Plain text
11601 #: build/C/man2/timer_create.2:396
11602 #, no-wrap
11603 msgid ""
11604 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
11605 "    sleep(atoi(argv[1]));\n"
11606 msgstr ""
11607 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
11608 "    sleep(atoi(argv[1]));\n"
11609
11610 #. type: Plain text
11611 #: build/C/man2/timer_create.2:399
11612 #, no-wrap
11613 msgid ""
11614 "    /* Unlock the timer signal, so that timer notification\n"
11615 "       can be delivered */\n"
11616 msgstr ""
11617 "    /* Unlock the timer signal, so that timer notification\n"
11618 "       can be delivered */\n"
11619
11620 #. type: Plain text
11621 #: build/C/man2/timer_create.2:403
11622 #, no-wrap
11623 msgid ""
11624 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
11625 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
11626 "        errExit(\"sigprocmask\");\n"
11627 msgstr ""
11628 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
11629 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
11630 "        errExit(\"sigprocmask\");\n"
11631
11632 #. type: Plain text
11633 #: build/C/man2/timer_create.2:406 build/C/man2/timerfd_create.2:540
11634 #, no-wrap
11635 msgid ""
11636 "    exit(EXIT_SUCCESS);\n"
11637 "}\n"
11638 msgstr ""
11639 "    exit(EXIT_SUCCESS);\n"
11640 "}\n"
11641
11642 #. type: Plain text
11643 #: build/C/man2/timer_create.2:422
11644 msgid ""
11645 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), B<timer_getoverrun>"
11646 "(2), B<timer_settime>(2), B<timerfd_create>(2), B<clock_getcpuclockid>(3), "
11647 "B<pthread_getcpuclockid>(3), B<pthreads>(7), B<sigevent>(7), B<signal>(7), "
11648 "B<time>(7)"
11649 msgstr ""
11650 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), B<timer_getoverrun>"
11651 "(2), B<timer_settime>(2), B<timerfd_create>(2), B<clock_getcpuclockid>(3), "
11652 "B<pthread_getcpuclockid>(3), B<pthreads>(7), B<sigevent>(7), B<signal>(7), "
11653 "B<time>(7)"
11654
11655 #. type: TH
11656 #: build/C/man2/timer_delete.2:26
11657 #, no-wrap
11658 msgid "TIMER_DELETE"
11659 msgstr "TIMER_DELETE"
11660
11661 #. type: TH
11662 #: build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26
11663 #, no-wrap
11664 msgid "2009-02-20"
11665 msgstr "2009-02-20"
11666
11667 #. type: Plain text
11668 #: build/C/man2/timer_delete.2:29
11669 msgid "timer_delete - delete a POSIX per-process timer"
11670 msgstr "timer_delete - プロセス単位の POSIX タイマーを削除する"
11671
11672 #. type: Plain text
11673 #: build/C/man2/timer_delete.2:32 build/C/man2/timer_getoverrun.2:32
11674 #: build/C/man2/timer_settime.2:33
11675 #, no-wrap
11676 msgid "B<#include E<lt>time.hE<gt>>\n"
11677 msgstr "B<#include E<lt>time.hE<gt>>\n"
11678
11679 #. type: Plain text
11680 #: build/C/man2/timer_delete.2:34
11681 #, no-wrap
11682 msgid "B<int timer_delete(timer_t >I<timerid>B<);>\n"
11683 msgstr "B<int timer_delete(timer_t >I<timerid>B<);>\n"
11684
11685 #. type: Plain text
11686 #: build/C/man2/timer_delete.2:45
11687 msgid "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11688 msgstr "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11689
11690 #. type: Plain text
11691 #: build/C/man2/timer_delete.2:53
11692 msgid ""
11693 "B<timer_delete>()  deletes the timer whose ID is given in I<timerid>.  If "
11694 "the timer was armed at the time of this call, it is disarmed before being "
11695 "deleted.  The treatment of any pending signal generated by the deleted timer "
11696 "is unspecified."
11697 msgstr ""
11698 "B<timer_delete>() は I<timerid> で指定された ID のタイマーを削除する。 "
11699 "B<timer_delete>() が呼び出された時点でタイマーが開始されている場合は、 削除す"
11700 "る前にタイマーの解除が行われる。 削除されるタイマーにより生成された処理待ちシ"
11701 "グナルの扱いは不定 (unspecified) である。"
11702
11703 #. type: Plain text
11704 #: build/C/man2/timer_delete.2:60
11705 msgid ""
11706 "On success, B<timer_delete>()  returns 0.  On failure, -1 is returned, and "
11707 "I<errno> is set to indicate the error."
11708 msgstr ""
11709 "成功すると、 B<timer_delete>() は 0 を返す。 失敗すると、 -1 が返り、 "
11710 "I<errno> にエラーを示す値が設定される。"
11711
11712 #. type: Plain text
11713 #: build/C/man2/timer_delete.2:65 build/C/man2/timer_getoverrun.2:95
11714 msgid "I<timerid> is not a valid timer ID."
11715 msgstr "I<timerid> が有効なタイマー ID ではない。"
11716
11717 #. type: Plain text
11718 #: build/C/man2/timer_delete.2:75
11719 msgid ""
11720 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
11721 "B<timer_settime>(2), B<time>(7)"
11722 msgstr ""
11723 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
11724 "B<timer_settime>(2), B<time>(7)"
11725
11726 #. type: TH
11727 #: build/C/man2/timer_getoverrun.2:26
11728 #, no-wrap
11729 msgid "TIMER_GETOVERRUN"
11730 msgstr "TIMER_GETOVERRUN"
11731
11732 #. type: Plain text
11733 #: build/C/man2/timer_getoverrun.2:29
11734 msgid "timer_getoverrun - get overrun count for a POSIX per-process timer"
11735 msgstr ""
11736
11737 #. type: Plain text
11738 #: build/C/man2/timer_getoverrun.2:34
11739 #, no-wrap
11740 msgid "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
11741 msgstr "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
11742
11743 #. type: Plain text
11744 #: build/C/man2/timer_getoverrun.2:45
11745 msgid "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11746 msgstr "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11747
11748 #. type: Plain text
11749 #: build/C/man2/timer_getoverrun.2:56
11750 msgid ""
11751 "B<timer_getoverrun>()  returns the \"overrun count\" for the timer referred "
11752 "to by I<timerid>.  An application can use the overrun count to accurately "
11753 "calculate the number of timer expirations that would have occurred over a "
11754 "given time interval.  Timer overruns can occur both when receiving "
11755 "expiration notifications via signals (B<SIGEV_SIGNAL>), and via threads "
11756 "(B<SIGEV_THREAD>)."
11757 msgstr ""
11758
11759 #. type: Plain text
11760 #: build/C/man2/timer_getoverrun.2:76
11761 msgid ""
11762 "When expiration notifications are delivered via a signal, overruns can occur "
11763 "as follows.  Regardless of whether or not a real-time signal is used for "
11764 "timer notifications, the system queues at most one signal per timer.  (This "
11765 "is the behavior specified by POSIX.1-2001.  The alternative, queuing one "
11766 "signal for each timer expiration, could easily result in overflowing the "
11767 "allowed limits for queued signals on the system.)  Because of system "
11768 "scheduling delays, or because the signal may be temporarily blocked, there "
11769 "can be a delay between the time when the notification signal is generated "
11770 "and the time when it is delivered (e.g., caught by a signal handler) or "
11771 "accepted (e.g., using B<sigwaitinfo>(2)).  In this interval, further timer "
11772 "expirations may occur.  The timer overrun count is the number of additional "
11773 "timer expirations that occurred between the time when the signal was "
11774 "generated and when it was delivered or accepted."
11775 msgstr ""
11776
11777 #. type: Plain text
11778 #: build/C/man2/timer_getoverrun.2:82
11779 msgid ""
11780 "Timer overruns can also occur when expiration notifications are delivered "
11781 "via invocation of a thread, since there may be an arbitrary delay between an "
11782 "expiration of the timer and the invocation of the notification thread, and "
11783 "in that delay interval, additional timer expirations may occur."
11784 msgstr ""
11785
11786 #. type: Plain text
11787 #: build/C/man2/timer_getoverrun.2:90
11788 msgid ""
11789 "On success, B<timer_getoverrun>()  returns the overrun count of the "
11790 "specified timer; this count may be 0 if no overruns have occurred.  On "
11791 "failure, -1 is returned, and I<errno> is set to indicate the error."
11792 msgstr ""
11793
11794 #. type: Plain text
11795 #: build/C/man2/timer_getoverrun.2:111
11796 msgid ""
11797 "When timer notifications are delivered via signals (B<SIGEV_SIGNAL>), on "
11798 "Linux it is also possible to obtain the overrun count via the I<si_overrun> "
11799 "field of the I<siginfo_t> structure (see B<sigaction>(2)).  This allows an "
11800 "application to avoid the overhead of making a system call to obtain the "
11801 "overrun count, but is a nonportable extension to POSIX.1-2001."
11802 msgstr ""
11803
11804 #.  FIXME . Austin bug filed, 11 Feb 09
11805 #. type: Plain text
11806 #: build/C/man2/timer_getoverrun.2:115
11807 msgid ""
11808 "POSIX.1-2001 discusses timer overruns only in the context of timer "
11809 "notifications using signals."
11810 msgstr ""
11811
11812 #.  Bug filed: http://bugzilla.kernel.org/show_bug.cgi?id=12665
11813 #.  http://thread.gmane.org/gmane.linux.kernel/113276/
11814 #. type: Plain text
11815 #: build/C/man2/timer_getoverrun.2:128
11816 msgid ""
11817 "POSIX.1-2001 specifies that if the timer overrun count is equal to or "
11818 "greater than an implementation-defined maximum, B<DELAYTIMER_MAX>, then "
11819 "B<timer_getoverrun>()  should return B<DELAYTIMER_MAX>.  However, Linux does "
11820 "not implement this feature: instead, if the timer overrun value exceeds the "
11821 "maximum representable integer, the counter cycles, starting once more from "
11822 "low values."
11823 msgstr ""
11824
11825 #. type: Plain text
11826 #: build/C/man2/timer_getoverrun.2:131 build/C/man2/timer_settime.2:212
11827 msgid "See B<timer_create>(2)."
11828 msgstr ""
11829
11830 #. type: Plain text
11831 #: build/C/man2/timer_getoverrun.2:141
11832 msgid ""
11833 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
11834 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
11835 "B<time>(7)"
11836 msgstr ""
11837 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
11838 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
11839 "B<time>(7)"
11840
11841 #. type: TH
11842 #: build/C/man2/timer_settime.2:26
11843 #, no-wrap
11844 msgid "TIMER_SETTIME"
11845 msgstr "TIMER_SETTIME"
11846
11847 #. type: TH
11848 #: build/C/man2/timer_settime.2:26
11849 #, no-wrap
11850 msgid "2012-10-15"
11851 msgstr "2012-10-15"
11852
11853 #. type: Plain text
11854 #: build/C/man2/timer_settime.2:30
11855 msgid ""
11856 "timer_settime, timer_gettime - arm/disarm and fetch state of POSIX per-"
11857 "process timer"
11858 msgstr ""
11859
11860 #. type: Plain text
11861 #: build/C/man2/timer_settime.2:38
11862 #, no-wrap
11863 msgid ""
11864 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
11865 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
11866 "B<                  struct itimerspec * >I<old_value>B<);>\n"
11867 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
11868 msgstr ""
11869 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
11870 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
11871 "B<                  struct itimerspec * >I<old_value>B<);>\n"
11872 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
11873
11874 #. type: Plain text
11875 #: build/C/man2/timer_settime.2:50
11876 msgid ""
11877 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11878 msgstr ""
11879 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11880
11881 #. type: Plain text
11882 #: build/C/man2/timer_settime.2:63
11883 msgid ""
11884 "B<timer_settime>()  arms or disarms the timer identified by I<timerid>.  The "
11885 "I<new_value> argument is pointer to an I<itimerspec> structure that "
11886 "specifies the new initial value and the new interval for the timer.  The "
11887 "I<itimerspec> structure is defined as follows:"
11888 msgstr ""
11889
11890 #. type: Plain text
11891 #: build/C/man2/timer_settime.2:70 build/C/man2/timerfd_create.2:128
11892 #, no-wrap
11893 msgid ""
11894 "struct timespec {\n"
11895 "    time_t tv_sec;                /* Seconds */\n"
11896 "    long   tv_nsec;               /* Nanoseconds */\n"
11897 "};\n"
11898 msgstr ""
11899 "struct timespec {\n"
11900 "    time_t tv_sec;                /* Seconds */\n"
11901 "    long   tv_nsec;               /* Nanoseconds */\n"
11902 "};\n"
11903
11904 #. type: Plain text
11905 #: build/C/man2/timer_settime.2:75
11906 #, no-wrap
11907 msgid ""
11908 "struct itimerspec {\n"
11909 "    struct timespec it_interval;  /* Timer interval */\n"
11910 "    struct timespec it_value;     /* Initial expiration */\n"
11911 "};\n"
11912 msgstr ""
11913 "struct itimerspec {\n"
11914 "    struct timespec it_interval;  /* Timer interval */\n"
11915 "    struct timespec it_value;     /* Initial expiration */\n"
11916 "};\n"
11917
11918 #. type: Plain text
11919 #: build/C/man2/timer_settime.2:87
11920 msgid ""
11921 "Each of the substructures of the I<itimerspec> structure is a I<timespec> "
11922 "structure that allows a time value to be specified in seconds and "
11923 "nanoseconds.  These time values are measured according to the clock that was "
11924 "specified when the timer was created by B<timer_create>(2)"
11925 msgstr ""
11926
11927 #. type: Plain text
11928 #: build/C/man2/timer_settime.2:101
11929 msgid ""
11930 "If I<new_value-E<gt>it_value> specifies a nonzero value (i.e., either "
11931 "subfield is nonzero), then B<timer_settime>()  arms (starts) the timer, "
11932 "setting it to initially expire at the given time.  (If the timer was already "
11933 "armed, then the previous settings are overwritten.)  If I<new_value-"
11934 "E<gt>it_value> specifies a zero value (i.e., both subfields are zero), then "
11935 "the timer is disarmed."
11936 msgstr ""
11937
11938 #. type: Plain text
11939 #: build/C/man2/timer_settime.2:113
11940 msgid ""
11941 "The I<new_value-E<gt>it_interval> field specifies the period of the timer, "
11942 "in seconds and nanoseconds.  If this field is nonzero, then each time that "
11943 "an armed timer expires, the timer is reloaded from the value specified in "
11944 "I<new_value-E<gt>it_interval>.  If I<new_value-E<gt>it_interval> specifies a "
11945 "zero value, then the timer expires just once, at the time specified by "
11946 "I<it_value>."
11947 msgstr ""
11948
11949 #.  By experiment: the overrun count is set correctly, for CLOCK_REALTIME.
11950 #. type: Plain text
11951 #: build/C/man2/timer_settime.2:134
11952 msgid ""
11953 "By default, the initial expiration time specified in I<new_value-"
11954 "E<gt>it_value> is interpreted relative to the current time on the timer's "
11955 "clock at the time of the call.  This can be modified by specifying "
11956 "B<TIMER_ABSTIME> in I<flags>, in which case I<new_value-E<gt>it_value> is "
11957 "interpreted as an absolute value as measured on the timer's clock; that is, "
11958 "the timer will expire when the clock value reaches the value specified by "
11959 "I<new_value-E<gt>it_value>.  If the specified absolute time has already "
11960 "passed, then the timer expires immediately, and the overrun count (see "
11961 "B<timer_getoverrun>(2))  will be set correctly."
11962 msgstr ""
11963
11964 #.  Similar remarks might apply with respect to process and thread CPU time
11965 #.  clocks, but these clocks are not currently (2.6.28) settable on Linux.
11966 #. type: Plain text
11967 #: build/C/man2/timer_settime.2:144
11968 msgid ""
11969 "If the value of the B<CLOCK_REALTIME> clock is adjusted while an absolute "
11970 "timer based on that clock is armed, then the expiration of the timer will be "
11971 "appropriately adjusted.  Adjustments to the B<CLOCK_REALTIME> clock have no "
11972 "effect on relative timers based on that clock."
11973 msgstr ""
11974
11975 #. type: Plain text
11976 #: build/C/man2/timer_settime.2:153
11977 msgid ""
11978 "If I<old_value> is not NULL, then it points to a buffer that is used to "
11979 "return the previous interval of the timer (in I<old_value-"
11980 "E<gt>it_interval>)  and the amount of time until the timer would previously "
11981 "have next expired (in I<old_value-E<gt>it_value>)."
11982 msgstr ""
11983
11984 #. type: Plain text
11985 #: build/C/man2/timer_settime.2:173
11986 msgid ""
11987 "B<timer_gettime>()  returns the time until next expiration, and the "
11988 "interval, for the timer specified by I<timerid>, in the buffer pointed to by "
11989 "I<curr_value>.  The time remaining until the next timer expiration is "
11990 "returned in I<curr_value-E<gt>it_value>; this is always a relative value, "
11991 "regardless of whether the B<TIMER_ABSTIME> flag was used when arming the "
11992 "timer.  If the value returned in I<curr_value-E<gt>it_value> is zero, then "
11993 "the timer is currently disarmed.  The timer interval is returned in "
11994 "I<curr_value-E<gt>it_interval>.  If the value returned in I<curr_value-"
11995 "E<gt>it_interval> is zero, then this is a \"one-shot\" timer."
11996 msgstr ""
11997
11998 #. type: Plain text
11999 #: build/C/man2/timer_settime.2:182
12000 msgid ""
12001 "On success, B<timer_settime>()  and B<timer_gettime>()  return 0.  On error, "
12002 "-1 is returned, and I<errno> is set to indicate the error."
12003 msgstr ""
12004
12005 #. type: Plain text
12006 #: build/C/man2/timer_settime.2:184
12007 msgid "These functions may fail with the following errors:"
12008 msgstr ""
12009
12010 #. type: Plain text
12011 #: build/C/man2/timer_settime.2:191
12012 msgid "I<new_value>, I<old_value>, or I<curr_value> is not a valid pointer."
12013 msgstr ""
12014
12015 #.  FIXME . eventually: invalid value in flags
12016 #. type: Plain text
12017 #: build/C/man2/timer_settime.2:196
12018 msgid "I<timerid> is invalid."
12019 msgstr ""
12020
12021 #. type: Plain text
12022 #: build/C/man2/timer_settime.2:199
12023 msgid "B<timer_settime>()  may fail with the following errors:"
12024 msgstr ""
12025
12026 #. type: Plain text
12027 #: build/C/man2/timer_settime.2:205
12028 msgid ""
12029 "I<new_value.it_value> is negative; or I<new_value.it_value.tv_nsec> is "
12030 "negative or greater than 999,999,999."
12031 msgstr ""
12032
12033 #. type: Plain text
12034 #: build/C/man2/timer_settime.2:207
12035 msgid "These system calls are available since Linux 2.6."
12036 msgstr "これらのシステムコールは Linux 2.6 以降で利用可能である。"
12037
12038 #. type: Plain text
12039 #: build/C/man2/timer_settime.2:216
12040 msgid "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
12041 msgstr "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
12042
12043 #. type: TH
12044 #: build/C/man2/timerfd_create.2:21
12045 #, no-wrap
12046 msgid "TIMERFD_CREATE"
12047 msgstr "TIMERFD_CREATE"
12048
12049 #. type: TH
12050 #: build/C/man2/timerfd_create.2:21
12051 #, no-wrap
12052 msgid "2011-09-14"
12053 msgstr "2011-09-14"
12054
12055 #. type: Plain text
12056 #: build/C/man2/timerfd_create.2:25
12057 msgid ""
12058 "timerfd_create, timerfd_settime, timerfd_gettime - timers that notify via "
12059 "file descriptors"
12060 msgstr ""
12061 "timerfd_create, timerfd_settime, timerfd_gettime - ファイルディスクリプタ経由"
12062 "で通知するタイマー"
12063
12064 #. type: Plain text
12065 #: build/C/man2/timerfd_create.2:28
12066 #, no-wrap
12067 msgid "B<#include E<lt>sys/timerfd.hE<gt>>\n"
12068 msgstr "B<#include E<lt>sys/timerfd.hE<gt>>\n"
12069
12070 #. type: Plain text
12071 #: build/C/man2/timerfd_create.2:30
12072 #, no-wrap
12073 msgid "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
12074 msgstr "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
12075
12076 #. type: Plain text
12077 #: build/C/man2/timerfd_create.2:34
12078 #, no-wrap
12079 msgid ""
12080 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
12081 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
12082 "B<                    struct itimerspec *>I<old_value>B<);>\n"
12083 msgstr ""
12084 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
12085 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
12086 "B<                    struct itimerspec *>I<old_value>B<);>\n"
12087
12088 #. type: Plain text
12089 #: build/C/man2/timerfd_create.2:36
12090 #, no-wrap
12091 msgid "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
12092 msgstr "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
12093
12094 #. type: Plain text
12095 #: build/C/man2/timerfd_create.2:49
12096 msgid ""
12097 "These system calls create and operate on a timer that delivers timer "
12098 "expiration notifications via a file descriptor.  They provide an alternative "
12099 "to the use of B<setitimer>(2)  or B<timer_create>(2), with the advantage "
12100 "that the file descriptor may be monitored by B<select>(2), B<poll>(2), and "
12101 "B<epoll>(7)."
12102 msgstr ""
12103 "これらのシステムコールは、満了通知をファイルディスクリプタ経由で配送する タイ"
12104 "マーの生成と操作を行う。 これらは、 B<setitimer>(2)  や B<timer_create>(2)  "
12105 "を用いる方法の代わりとなるものであり、このファイルディスクリプタを B<select>"
12106 "(2), B<poll>(2), B<epoll>(7)  で監視できるという利点がある。"
12107
12108 #. type: Plain text
12109 #: build/C/man2/timerfd_create.2:61
12110 msgid ""
12111 "The use of these three system calls is analogous to the use of "
12112 "B<timer_create>(2), B<timer_settime>(2), and B<timer_gettime>(2).  (There is "
12113 "no analog of B<timer_getoverrun>(2), since that functionality is provided by "
12114 "B<read>(2), as described below.)"
12115 msgstr ""
12116 "これらのシステムコールを使うのは、それぞれ B<timer_create>(2), "
12117 "B<timer_settime>(2), B<timer_gettime>(2)  を使うのと同様である "
12118 "(B<timer_getoverrun>(2)  に対応するものはなく、以下で説明するように この機能"
12119 "は B<read>(2)  により提供される)。"
12120
12121 #. type: SS
12122 #: build/C/man2/timerfd_create.2:61
12123 #, no-wrap
12124 msgid "timerfd_create()"
12125 msgstr "timerfd_create()"
12126
12127 #. type: Plain text
12128 #: build/C/man2/timerfd_create.2:80
12129 msgid ""
12130 "B<timerfd_create>()  creates a new timer object, and returns a file "
12131 "descriptor that refers to that timer.  The I<clockid> argument specifies the "
12132 "clock that is used to mark the progress of the timer, and must be either "
12133 "B<CLOCK_REALTIME> or B<CLOCK_MONOTONIC>.  B<CLOCK_REALTIME> is a settable "
12134 "system-wide clock.  B<CLOCK_MONOTONIC> is a nonsettable clock that is not "
12135 "affected by discontinuous changes in the system clock (e.g., manual changes "
12136 "to system time).  The current value of each of these clocks can be retrieved "
12137 "using B<clock_gettime>(2)."
12138 msgstr ""
12139 "B<timerfd_create>()  は新規のタイマーオブジェクトを生成し、そのタイマーを参照"
12140 "するファイル ディスクリプタを返す。 I<clockid> 引き数は、タイマーの進捗を管理"
12141 "するためのクロックを指定するもので、 B<CLOCK_REALTIME> か B<CLOCK_MONOTONIC> "
12142 "のいずれかでなければならない。 B<CLOCK_REALTIME> はシステム全体で使用されるク"
12143 "ロックで、このクロックは変更可能である。 B<CLOCK_MONOTONIC> は変更されること"
12144 "のないクロックで、(システム時刻の手動での変更などの)  システムクロックの不連"
12145 "続な変化の影響を受けない。 これらのクロックの現在の値は B<clock_gettime>(2)  "
12146 "を使って取得できる。"
12147
12148 #. type: Plain text
12149 #: build/C/man2/timerfd_create.2:85
12150 msgid ""
12151 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
12152 "I<flags> to change the behavior of B<timerfd_create>():"
12153 msgstr ""
12154 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
12155 "ることで、 B<timerfd_create>()  の振舞いを変更することができる。"
12156
12157 #. type: TP
12158 #: build/C/man2/timerfd_create.2:85
12159 #, no-wrap
12160 msgid "B<TFD_NONBLOCK>"
12161 msgstr "B<TFD_NONBLOCK>"
12162
12163 #. type: TP
12164 #: build/C/man2/timerfd_create.2:93
12165 #, no-wrap
12166 msgid "B<TFD_CLOEXEC>"
12167 msgstr "B<TFD_CLOEXEC>"
12168
12169 #. type: Plain text
12170 #: build/C/man2/timerfd_create.2:107
12171 msgid ""
12172 "In Linux versions up to and including 2.6.26, I<flags> must be specified as "
12173 "zero."
12174 msgstr ""
12175 "バージョン 2.6.26 以前の Linux では、 I<flags> 引き数は未使用であり、0 を指定"
12176 "しなければならない。"
12177
12178 #. type: SS
12179 #: build/C/man2/timerfd_create.2:107
12180 #, no-wrap
12181 msgid "timerfd_settime()"
12182 msgstr "timerfd_settime()"
12183
12184 #. type: Plain text
12185 #: build/C/man2/timerfd_create.2:112
12186 msgid ""
12187 "B<timerfd_settime>()  arms (starts) or disarms (stops)  the timer referred "
12188 "to by the file descriptor I<fd>."
12189 msgstr ""
12190 "B<timerfd_settime>()  は、ファイルディスクリプタ I<fd> により参照されるタイ"
12191 "マーを開始したり停止したりする。"
12192
12193 #. type: Plain text
12194 #: build/C/man2/timerfd_create.2:121
12195 msgid ""
12196 "The I<new_value> argument specifies the initial expiration and interval for "
12197 "the timer.  The I<itimer> structure used for this argument contains two "
12198 "fields, each of which is in turn a structure of type I<timespec>:"
12199 msgstr ""
12200 "I<new_value> 引き数は、タイマーの満了時間 (expiration) の初期値と間隔 "
12201 "(interval) を 指定する。この引き数で使用されている I<itimerspec> 構造体には "
12202 "2 つのフィールドがあり、各フィールドは I<timespec> 型の構造体である。"
12203
12204 #. type: Plain text
12205 #: build/C/man2/timerfd_create.2:133
12206 #, no-wrap
12207 msgid ""
12208 "struct itimerspec {\n"
12209 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
12210 "    struct timespec it_value;     /* Initial expiration */\n"
12211 "};\n"
12212 msgstr ""
12213 "struct itimerspec {\n"
12214 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
12215 "    struct timespec it_value;     /* Initial expiration */\n"
12216 "};\n"
12217
12218 #. type: Plain text
12219 #: build/C/man2/timerfd_create.2:145
12220 msgid ""
12221 "I<new_value.it_value> specifies the initial expiration of the timer, in "
12222 "seconds and nanoseconds.  Setting either field of I<new_value.it_value> to a "
12223 "nonzero value arms the timer.  Setting both fields of I<new_value.it_value> "
12224 "to zero disarms the timer."
12225 msgstr ""
12226 "I<new_value.it_value> はタイマーの満了時間の初期値を、秒とナノ秒で指定する。 "
12227 "I<new_value.it_value> のフィールドのうち少なくとも一方に 0 以外の値を設定する"
12228 "と、 タイマーが開始される。 両方のフィールドに 0 を設定すると、タイマーが停止"
12229 "する。"
12230
12231 #. type: Plain text
12232 #: build/C/man2/timerfd_create.2:154
12233 msgid ""
12234 "Setting one or both fields of I<new_value.it_interval> to nonzero values "
12235 "specifies the period, in seconds and nanoseconds, for repeated timer "
12236 "expirations after the initial expiration.  If both fields of I<new_value."
12237 "it_interval> are zero, the timer expires just once, at the time specified by "
12238 "I<new_value.it_value>."
12239 msgstr ""
12240 "I<new_value.it_interval> はタイマーの一回目の満了後に繰り返しタイマーの満了間"
12241 "隔を、秒とナノ秒で指定する。 I<new_value.it_interval> のフィールドのうち少な"
12242 "くとも一方に 0 以外の値を設定すると、 繰り返しタイマーが有効になる。 両方の"
12243 "フィールドに 0 を設定した場合、タイマーは I<new_value.it_value> で指定された"
12244 "時間後に、一回だけ満了して停止する。"
12245
12246 #. type: Plain text
12247 #: build/C/man2/timerfd_create.2:170
12248 msgid ""
12249 "The I<flags> argument is either 0, to start a relative timer (I<new_value."
12250 "it_value> specifies a time relative to the current value of the clock "
12251 "specified by I<clockid>), or B<TFD_TIMER_ABSTIME>, to start an absolute "
12252 "timer (I<new_value.it_value> specifies an absolute time for the clock "
12253 "specified by I<clockid>; that is, the timer will expire when the value of "
12254 "that clock reaches the value specified in I<new_value.it_value>)."
12255 msgstr "I<flags> 引き数には 0 か B<TFD_TIMER_ABSTIME> を指定する。 0 は相対時刻タイマーを意味し、 I<new_value.it_value> では I<clockid> で指定されたクロックの現在の値からの相対的な時刻を指定する。 B<TFD_TIMER_ABSTIME> は絶対時刻タイマーを意味し、 I<new_value.it_interval> では I<clockid> で指定されたクロックの絶対時刻を指定する。 つまり、クロックの値が I<new_value.it_interval> で指定された時刻に達したら、タイマーが満了する。"
12256
12257 #. type: Plain text
12258 #: build/C/man2/timerfd_create.2:181
12259 msgid ""
12260 "If the I<old_value> argument is not NULL, then the I<itimerspec> structure "
12261 "that it points to is used to return the setting of the timer that was "
12262 "current at the time of the call; see the description of B<timerfd_gettime>"
12263 "()  following."
12264 msgstr "I<old_value> 引き数が NULL でない場合、 I<old_value> 引き数が指す I<itimerspec> 構造体は、 B<timerfd_settime>() を呼び出した時点でのタイマーの設定を返すのに使用される。 下記の B<timerfd_gettime>() の説明を参照。"
12265
12266 #. type: SS
12267 #: build/C/man2/timerfd_create.2:181
12268 #, no-wrap
12269 msgid "timerfd_gettime()"
12270 msgstr "timerfd_gettime()"
12271
12272 #. type: Plain text
12273 #: build/C/man2/timerfd_create.2:190
12274 msgid ""
12275 "B<timerfd_gettime>()  returns, in I<curr_value>, an I<itimerspec> structure "
12276 "that contains the current setting of the timer referred to by the file "
12277 "descriptor I<fd>."
12278 msgstr ""
12279 "B<timerfd_gettime>()  は、ファイルディスクリプタ I<fd> で参照されるタイマーの"
12280 "現在の設定が入った I<itimerspec> 構造体を、 I<curr_value> に格納して返す。"
12281
12282 #. type: Plain text
12283 #: build/C/man2/timerfd_create.2:200
12284 msgid ""
12285 "The I<it_value> field returns the amount of time until the timer will next "
12286 "expire.  If both fields of this structure are zero, then the timer is "
12287 "currently disarmed.  This field always contains a relative value, regardless "
12288 "of whether the B<TFD_TIMER_ABSTIME> flag was specified when setting the "
12289 "timer."
12290 msgstr ""
12291 "I<it_value> フィールドは、タイマーが次に満了するまでの残り時間を返す。 この構"
12292 "造体の両方のフィールドが 0 であれば、タイマーは現在停止している。 タイマー設"
12293 "定時に B<TFD_TIMER_ABSTIME> フラグが指定されたかに関わらず、このフィールドは"
12294 "常に相対値が格納される。"
12295
12296 #. type: Plain text
12297 #: build/C/man2/timerfd_create.2:207
12298 msgid ""
12299 "The I<it_interval> field returns the interval of the timer.  If both fields "
12300 "of this structure are zero, then the timer is set to expire just once, at "
12301 "the time specified by I<curr_value.it_value>."
12302 msgstr ""
12303 "I<it_interval> フィールドは、タイマーの間隔を返す。 この構造体の両方のフィー"
12304 "ルドが 0 であれば、タイマーは I<new_value.it_value> で指定された時間後に一回"
12305 "だけ満了して停止するように設定されている。"
12306
12307 #. type: SS
12308 #: build/C/man2/timerfd_create.2:207
12309 #, no-wrap
12310 msgid "Operating on a timer file descriptor"
12311 msgstr "タイマー・ファイルディスクリプタに対する操作"
12312
12313 #. type: Plain text
12314 #: build/C/man2/timerfd_create.2:211
12315 msgid ""
12316 "The file descriptor returned by B<timerfd_create>()  supports the following "
12317 "operations:"
12318 msgstr ""
12319 "B<timerfd_create>()  が返すファイルディスクリプタは以下の操作をサポートしてい"
12320 "る。"
12321
12322 #. type: Plain text
12323 #: build/C/man2/timerfd_create.2:225
12324 msgid ""
12325 "If the timer has already expired one or more times since its settings were "
12326 "last modified using B<timerfd_settime>(), or since the last successful "
12327 "B<read>(2), then the buffer given to B<read>(2)  returns an unsigned 8-byte "
12328 "integer (I<uint64_t>)  containing the number of expirations that have "
12329 "occurred.  (The returned value is in host byte order\\(emthat is, the native "
12330 "byte order for integers on the host machine.)"
12331 msgstr ""
12332 "B<timerfd_settime>()  を使ってタイマーの設定が最後変更されて以降、または "
12333 "B<read>(2)  の呼び出しに最後に成功して以降に、タイマーの満了が一回以上発生し"
12334 "ていれば、 B<read>(2)  に渡されたバッファに、タイマー満了回数を示す 8 バイト"
12335 "の unsigned 型の整数 (I<uint64_t>)  が返される (返される値はホストバイトオー"
12336 "ダ、つまりそのホストマシンにおける 整数の通常のバイトオーダである)。"
12337
12338 #. type: Plain text
12339 #: build/C/man2/timerfd_create.2:238
12340 msgid ""
12341 "If no timer expirations have occurred at the time of the B<read>(2), then "
12342 "the call either blocks until the next timer expiration, or fails with the "
12343 "error B<EAGAIN> if the file descriptor has been made nonblocking (via the "
12344 "use of the B<fcntl>(2)  B<F_SETFL> operation to set the B<O_NONBLOCK> flag)."
12345 msgstr ""
12346 "B<read>(2)  を行った時点でタイマーの満了が発生していなければ、 B<read>(2)  は"
12347 "停止 (block) する、もしくはファイルディスクリプタが 非停止 (nonblocking) に設"
12348 "定されている場合はエラー B<EAGAIN> で失敗する (非停止モードにするには、 "
12349 "B<fcntl>(2)  の B<F_SETFL> 命令で B<O_NONBLOCK> フラグをセットする)。"
12350
12351 #. type: Plain text
12352 #: build/C/man2/timerfd_create.2:244
12353 msgid ""
12354 "A B<read>(2)  will fail with the error B<EINVAL> if the size of the supplied "
12355 "buffer is less than 8 bytes."
12356 msgstr ""
12357 "渡されたバッファの大きさが 8 バイト未満の場合、 B<read>(2)  はエラー "
12358 "B<EINVAL> で失敗する。"
12359
12360 #. type: Plain text
12361 #: build/C/man2/timerfd_create.2:255
12362 msgid ""
12363 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
12364 "B<poll>(2)  B<POLLIN> flag)  if one or more timer expirations have occurred."
12365 msgstr ""
12366 "一つ以上のタイマー満了が発生していれば、 ファイルディスクリプタは読み出し可能"
12367 "となる (B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラ"
12368 "グ)。"
12369
12370 #. type: Plain text
12371 #: build/C/man2/timerfd_create.2:262
12372 msgid ""
12373 "The file descriptor also supports the other file-descriptor multiplexing "
12374 "APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
12375 msgstr ""
12376 "このファイルディスクリプタは、他のファイルディスクリプタ多重 API である "
12377 "B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
12378
12379 #. type: Plain text
12380 #: build/C/man2/timerfd_create.2:269
12381 msgid ""
12382 "When the file descriptor is no longer required it should be closed.  When "
12383 "all file descriptors associated with the same timer object have been closed, "
12384 "the timer is disarmed and its resources are freed by the kernel."
12385 msgstr ""
12386 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
12387 "る。 同じ timer オブジェクトに関連付けられたファイルディスクリプタが全て ク"
12388 "ローズされると、そのタイマーは解除され、 そのオブジェクト用の資源がカーネルに"
12389 "より解放される。"
12390
12391 #. type: Plain text
12392 #: build/C/man2/timerfd_create.2:281
12393 msgid ""
12394 "After a B<fork>(2), the child inherits a copy of the file descriptor created "
12395 "by B<timerfd_create>().  The file descriptor refers to the same underlying "
12396 "timer object as the corresponding file descriptor in the parent, and B<read>"
12397 "(2)s in the child will return information about expirations of the timer."
12398 msgstr ""
12399 "B<fork>(2)  が行われると、子プロセスは B<timerfd_create>()  により生成された"
12400 "ファイルディスクリプタのコピーを 継承する。そのファイルディスクリプタは、親プ"
12401 "ロセスの対応する ファイルディスクリプタと同じタイマーオブジェクトを参照してお"
12402 "り、 子プロセスの B<read>(2)  でも同じタイマーの満了に関する情報が返される。"
12403
12404 #. type: Plain text
12405 #: build/C/man2/timerfd_create.2:287
12406 msgid ""
12407 "A file descriptor created by B<timerfd_create>()  is preserved across "
12408 "B<execve>(2), and continues to generate timer expirations if the timer was "
12409 "armed."
12410 msgstr ""
12411 "B<execve>(2)  の前後で B<timerfd_create>()  により生成されたファイルディスク"
12412 "リプタは保持され、 タイマーが開始されていた場合にはタイマーの満了が発生し続け"
12413 "る。"
12414
12415 #. type: Plain text
12416 #: build/C/man2/timerfd_create.2:294
12417 msgid ""
12418 "On success, B<timerfd_create>()  returns a new file descriptor.  On error, "
12419 "-1 is returned and I<errno> is set to indicate the error."
12420 msgstr ""
12421 "成功すると、 B<timerfd_create>()  は新しいファイルディスクリプタを返す。 エ"
12422 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
12423
12424 #. type: Plain text
12425 #: build/C/man2/timerfd_create.2:302
12426 msgid ""
12427 "B<timerfd_settime>()  and B<timerfd_gettime>()  return 0 on success; on "
12428 "error they return -1, and set I<errno> to indicate the error."
12429 msgstr ""
12430 "B<timerfd_settime>()  と B<timerfd_gettime>()  は成功すると 0 を返す。 エラー"
12431 "の場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
12432
12433 #. type: Plain text
12434 #: build/C/man2/timerfd_create.2:305
12435 msgid "B<timerfd_create>()  can fail with the following errors:"
12436 msgstr "B<timerfd_create>()  は以下のエラーで失敗する可能性がある。"
12437
12438 #. type: Plain text
12439 #: build/C/man2/timerfd_create.2:313
12440 msgid ""
12441 "The I<clockid> argument is neither B<CLOCK_MONOTONIC> nor B<CLOCK_REALTIME>;"
12442 msgstr ""
12443 "I<clockid> 引き数が B<CLOCK_MONOTONIC> でも B<CLOCK_REALTIME> でもない。"
12444
12445 #. type: Plain text
12446 #: build/C/man2/timerfd_create.2:333
12447 msgid "There was insufficient kernel memory to create the timer."
12448 msgstr "タイマーを作成するのに十分なカーネルメモリがなかった。"
12449
12450 #. type: Plain text
12451 #: build/C/man2/timerfd_create.2:338
12452 msgid ""
12453 "B<timerfd_settime>()  and B<timerfd_gettime>()  can fail with the following "
12454 "errors:"
12455 msgstr ""
12456 "B<timerfd_settime>()  と B<timerfd_gettime>()  は以下のエラーで失敗する可能性"
12457 "がある。"
12458
12459 #. type: Plain text
12460 #: build/C/man2/timerfd_create.2:342
12461 msgid "I<fd> is not a valid file descriptor."
12462 msgstr "I<fd> が有効なファイルディスクリプタでない。"
12463
12464 #. type: Plain text
12465 #: build/C/man2/timerfd_create.2:353
12466 msgid "I<fd> is not a valid timerfd file descriptor."
12467 msgstr "I<fd> が有効な timerfd ファイルディスクリプタでない。"
12468
12469 #. type: Plain text
12470 #: build/C/man2/timerfd_create.2:356
12471 msgid "B<timerfd_settime>()  can also fail with the following errors:"
12472 msgstr "B<timerfd_settime>()  は以下のエラーで失敗することもある。"
12473
12474 #. type: Plain text
12475 #: build/C/man2/timerfd_create.2:362
12476 msgid ""
12477 "I<new_value> is not properly initialized (one of the I<tv_nsec> falls "
12478 "outside the range zero to 999,999,999)."
12479 msgstr ""
12480 "I<new_value> が適切に初期化されていない (I<tv_nsec> の一つが 0 から "
12481 "999,999,999 までの範囲に入っていない)。"
12482
12483 #.  This case only checked since 2.6.29, and 2.2.2[78].some-stable-version.
12484 #.  In older kernel versions, no check was made for invalid flags.
12485 #. type: Plain text
12486 #: build/C/man2/timerfd_create.2:368
12487 msgid "I<flags> is invalid."
12488 msgstr "I<flags> が無効である。"
12489
12490 #. type: Plain text
12491 #: build/C/man2/timerfd_create.2:371
12492 msgid ""
12493 "These system calls are available on Linux since kernel 2.6.25.  Library "
12494 "support is provided by glibc since version 2.8."
12495 msgstr ""
12496 "これらのシステムコールはカーネル 2.6.25 以降の Linux で利用可能である。 ライ"
12497 "ブラリ側のサポートはバージョン 2.8 以降の glibc で提供されている。"
12498
12499 #.  2.6.29
12500 #. type: Plain text
12501 #: build/C/man2/timerfd_create.2:379
12502 msgid ""
12503 "Currently, B<timerfd_create>()  supports fewer types of clock IDs than "
12504 "B<timer_create>(2)."
12505 msgstr ""
12506 "現在のところ、 B<timerfd_create>()  が対応している clockid の種類は "
12507 "B<timer_create>(2)  よりも少ない。"
12508
12509 #. type: Plain text
12510 #: build/C/man2/timerfd_create.2:388
12511 msgid ""
12512 "The following program creates a timer and then monitors its progress.  The "
12513 "program accepts up to three command-line arguments.  The first argument "
12514 "specifies the number of seconds for the initial expiration of the timer.  "
12515 "The second argument specifies the interval for the timer, in seconds.  The "
12516 "third argument specifies the number of times the program should allow the "
12517 "timer to expire before terminating.  The second and third command-line "
12518 "arguments are optional."
12519 msgstr ""
12520 "以下のプログラムは、タイマーを作成し、その進捗をモニターするものである。 この"
12521 "プログラムは最大で 3 個のコマンドライン引き数を取り、 第一引き数ではタイマー"
12522 "の満了時間の初期値 (秒数単位) を、 第二引き数ではタイマーの間隔 (秒数単位) "
12523 "を、 第三引き数ではタイマーが何回満了したらプログラムが終了するかを指定す"
12524 "る。 第二引き数と第三引き数は省略可能である。"
12525
12526 #. type: Plain text
12527 #: build/C/man2/timerfd_create.2:390 build/C/man2/wait.2:569
12528 msgid "The following shell session demonstrates the use of the program:"
12529 msgstr "以下のシェルのセッションはこのプログラムの使用例を示したものである。"
12530
12531 #. type: Plain text
12532 #: build/C/man2/timerfd_create.2:405
12533 #, no-wrap
12534 msgid ""
12535 "$B< a.out 3 1 100>\n"
12536 "0.000: timer started\n"
12537 "3.000: read: 1; total=1\n"
12538 "4.000: read: 1; total=2\n"
12539 "B<^Z >                 # type control-Z to suspend the program\n"
12540 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
12541 "$ B<fg>                # Resume execution after a few seconds\n"
12542 "a.out 3 1 100\n"
12543 "9.660: read: 5; total=7\n"
12544 "10.000: read: 1; total=8\n"
12545 "11.000: read: 1; total=9\n"
12546 "B<^C >                 # type control-C to suspend the program\n"
12547 msgstr ""
12548 "$B< a.out 3 1 100>\n"
12549 "0.000: timer started\n"
12550 "3.000: read: 1; total=1\n"
12551 "4.000: read: 1; total=2\n"
12552 "B<^Z >                 # type control-Z to suspend the program\n"
12553 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
12554 "$ B<fg>                # Resume execution after a few seconds\n"
12555 "a.out 3 1 100\n"
12556 "9.660: read: 5; total=7\n"
12557 "10.000: read: 1; total=8\n"
12558 "11.000: read: 1; total=9\n"
12559 "B<^C >                 # type control-C to suspend the program\n"
12560
12561 #.  The commented out code here is what we currently need until
12562 #.  the required stuff is in glibc
12563 #. /* Link with -lrt */
12564 #. #define _GNU_SOURCE
12565 #. #include <sys/syscall.h>
12566 #. #include <unistd.h>
12567 #. #include <time.h>
12568 #. #if defined(__i386__)
12569 #. #define __NR_timerfd_create 322
12570 #. #define __NR_timerfd_settime 325
12571 #. #define __NR_timerfd_gettime 326
12572 #. #endif
12573 #. static int
12574 #. timerfd_create(int clockid, int flags)
12575 #. {
12576 #.     return syscall(__NR_timerfd_create, clockid, flags);
12577 #. }
12578 #. static int
12579 #. timerfd_settime(int fd, int flags, struct itimerspec *new_value,
12580 #.         struct itimerspec *curr_value)
12581 #. {
12582 #.     return syscall(__NR_timerfd_settime, fd, flags, new_value,
12583 #.                    curr_value);
12584 #. }
12585 #. static int
12586 #. timerfd_gettime(int fd, struct itimerspec *curr_value)
12587 #. {
12588 #.     return syscall(__NR_timerfd_gettime, fd, curr_value);
12589 #. }
12590 #. #define TFD_TIMER_ABSTIME (1 << 0)
12591 #. ////////////////////////////////////////////////////////////
12592 #. type: Plain text
12593 #: build/C/man2/timerfd_create.2:454
12594 #, no-wrap
12595 msgid ""
12596 "#include E<lt>sys/timerfd.hE<gt>\n"
12597 "#include E<lt>time.hE<gt>\n"
12598 "#include E<lt>unistd.hE<gt>\n"
12599 "#include E<lt>stdlib.hE<gt>\n"
12600 "#include E<lt>stdio.hE<gt>\n"
12601 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
12602 msgstr ""
12603 "#include E<lt>sys/timerfd.hE<gt>\n"
12604 "#include E<lt>time.hE<gt>\n"
12605 "#include E<lt>unistd.hE<gt>\n"
12606 "#include E<lt>stdlib.hE<gt>\n"
12607 "#include E<lt>stdio.hE<gt>\n"
12608 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
12609
12610 #. type: Plain text
12611 #: build/C/man2/timerfd_create.2:457
12612 #, no-wrap
12613 msgid ""
12614 "#define handle_error(msg) \\e\n"
12615 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
12616 msgstr ""
12617 "#define handle_error(msg) \\e\n"
12618 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
12619
12620 #. type: Plain text
12621 #: build/C/man2/timerfd_create.2:465
12622 #, no-wrap
12623 msgid ""
12624 "static void\n"
12625 "print_elapsed_time(void)\n"
12626 "{\n"
12627 "    static struct timespec start;\n"
12628 "    struct timespec curr;\n"
12629 "    static int first_call = 1;\n"
12630 "    int secs, nsecs;\n"
12631 msgstr ""
12632 "static void\n"
12633 "print_elapsed_time(void)\n"
12634 "{\n"
12635 "    static struct timespec start;\n"
12636 "    struct timespec curr;\n"
12637 "    static int first_call = 1;\n"
12638 "    int secs, nsecs;\n"
12639
12640 #. type: Plain text
12641 #: build/C/man2/timerfd_create.2:471
12642 #, no-wrap
12643 msgid ""
12644 "    if (first_call) {\n"
12645 "        first_call = 0;\n"
12646 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
12647 "            handle_error(\"clock_gettime\");\n"
12648 "    }\n"
12649 msgstr ""
12650 "    if (first_call) {\n"
12651 "        first_call = 0;\n"
12652 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
12653 "            handle_error(\"clock_gettime\");\n"
12654 "    }\n"
12655
12656 #. type: Plain text
12657 #: build/C/man2/timerfd_create.2:474
12658 #, no-wrap
12659 msgid ""
12660 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
12661 "        handle_error(\"clock_gettime\");\n"
12662 msgstr ""
12663 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
12664 "        handle_error(\"clock_gettime\");\n"
12665
12666 #. type: Plain text
12667 #: build/C/man2/timerfd_create.2:483
12668 #, no-wrap
12669 msgid ""
12670 "    secs = curr.tv_sec - start.tv_sec;\n"
12671 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
12672 "    if (nsecs E<lt> 0) {\n"
12673 "        secs--;\n"
12674 "        nsecs += 1000000000;\n"
12675 "    }\n"
12676 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
12677 "}\n"
12678 msgstr ""
12679 "    secs = curr.tv_sec - start.tv_sec;\n"
12680 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
12681 "    if (nsecs E<lt> 0) {\n"
12682 "        secs--;\n"
12683 "        nsecs += 1000000000;\n"
12684 "    }\n"
12685 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
12686 "}\n"
12687
12688 #. type: Plain text
12689 #: build/C/man2/timerfd_create.2:492
12690 #, no-wrap
12691 msgid ""
12692 "int\n"
12693 "main(int argc, char *argv[])\n"
12694 "{\n"
12695 "    struct itimerspec new_value;\n"
12696 "    int max_exp, fd;\n"
12697 "    struct timespec now;\n"
12698 "    uint64_t exp, tot_exp;\n"
12699 "    ssize_t s;\n"
12700 msgstr ""
12701 "int\n"
12702 "main(int argc, char *argv[])\n"
12703 "{\n"
12704 "    struct itimerspec new_value;\n"
12705 "    int max_exp, fd;\n"
12706 "    struct timespec now;\n"
12707 "    uint64_t exp, tot_exp;\n"
12708 "    ssize_t s;\n"
12709
12710 #. type: Plain text
12711 #: build/C/man2/timerfd_create.2:498
12712 #, no-wrap
12713 msgid ""
12714 "    if ((argc != 2) && (argc != 4)) {\n"
12715 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
12716 "                argv[0]);\n"
12717 "        exit(EXIT_FAILURE);\n"
12718 "    }\n"
12719 msgstr ""
12720 "    if ((argc != 2) && (argc != 4)) {\n"
12721 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
12722 "                argv[0]);\n"
12723 "        exit(EXIT_FAILURE);\n"
12724 "    }\n"
12725
12726 #. type: Plain text
12727 #: build/C/man2/timerfd_create.2:501
12728 #, no-wrap
12729 msgid ""
12730 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
12731 "        handle_error(\"clock_gettime\");\n"
12732 msgstr ""
12733 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
12734 "        handle_error(\"clock_gettime\");\n"
12735
12736 #. type: Plain text
12737 #: build/C/man2/timerfd_create.2:504
12738 #, no-wrap
12739 msgid ""
12740 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
12741 "       expiration and interval as specified in command line */\n"
12742 msgstr ""
12743 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
12744 "       expiration and interval as specified in command line */\n"
12745
12746 #. type: Plain text
12747 #: build/C/man2/timerfd_create.2:515
12748 #, no-wrap
12749 msgid ""
12750 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
12751 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
12752 "    if (argc == 2) {\n"
12753 "        new_value.it_interval.tv_sec = 0;\n"
12754 "        max_exp = 1;\n"
12755 "    } else {\n"
12756 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
12757 "        max_exp = atoi(argv[3]);\n"
12758 "    }\n"
12759 "    new_value.it_interval.tv_nsec = 0;\n"
12760 msgstr ""
12761 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
12762 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
12763 "    if (argc == 2) {\n"
12764 "        new_value.it_interval.tv_sec = 0;\n"
12765 "        max_exp = 1;\n"
12766 "    } else {\n"
12767 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
12768 "        max_exp = atoi(argv[3]);\n"
12769 "    }\n"
12770 "    new_value.it_interval.tv_nsec = 0;\n"
12771
12772 #. type: Plain text
12773 #: build/C/man2/timerfd_create.2:519
12774 #, no-wrap
12775 msgid ""
12776 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
12777 "    if (fd == -1)\n"
12778 "        handle_error(\"timerfd_create\");\n"
12779 msgstr ""
12780 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
12781 "    if (fd == -1)\n"
12782 "        handle_error(\"timerfd_create\");\n"
12783
12784 #. type: Plain text
12785 #: build/C/man2/timerfd_create.2:522
12786 #, no-wrap
12787 msgid ""
12788 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
12789 "        handle_error(\"timerfd_settime\");\n"
12790 msgstr ""
12791 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
12792 "        handle_error(\"timerfd_settime\");\n"
12793
12794 #. type: Plain text
12795 #: build/C/man2/timerfd_create.2:525
12796 #, no-wrap
12797 msgid ""
12798 "    print_elapsed_time();\n"
12799 "    printf(\"timer started\\en\");\n"
12800 msgstr ""
12801 "    print_elapsed_time();\n"
12802 "    printf(\"timer started\\en\");\n"
12803
12804 #. type: Plain text
12805 #: build/C/man2/timerfd_create.2:530
12806 #, no-wrap
12807 msgid ""
12808 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
12809 "        s = read(fd, &exp, sizeof(uint64_t));\n"
12810 "        if (s != sizeof(uint64_t))\n"
12811 "            handle_error(\"read\");\n"
12812 msgstr ""
12813 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
12814 "        s = read(fd, &exp, sizeof(uint64_t));\n"
12815 "        if (s != sizeof(uint64_t))\n"
12816 "            handle_error(\"read\");\n"
12817
12818 #. type: Plain text
12819 #: build/C/man2/timerfd_create.2:537
12820 #, no-wrap
12821 msgid ""
12822 "        tot_exp += exp;\n"
12823 "        print_elapsed_time();\n"
12824 "        printf(\"read: %llu; total=%llu\\en\",\n"
12825 "                (unsigned long long) exp,\n"
12826 "                (unsigned long long) tot_exp);\n"
12827 "    }\n"
12828 msgstr ""
12829 "        tot_exp += exp;\n"
12830 "        print_elapsed_time();\n"
12831 "        printf(\"read: %llu; total=%llu\\en\",\n"
12832 "                (unsigned long long) exp,\n"
12833 "                (unsigned long long) tot_exp);\n"
12834 "    }\n"
12835
12836 #. type: Plain text
12837 #: build/C/man2/timerfd_create.2:553
12838 msgid ""
12839 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
12840 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), B<timer_settime>"
12841 "(2), B<epoll>(7), B<time>(7)"
12842 msgstr ""
12843 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
12844 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), B<timer_settime>"
12845 "(2), B<epoll>(7), B<time>(7)"
12846
12847 #. type: TH
12848 #: build/C/man2/tkill.2:29
12849 #, no-wrap
12850 msgid "TKILL"
12851 msgstr "TKILL"
12852
12853 #. type: Plain text
12854 #: build/C/man2/tkill.2:32
12855 msgid "tkill, tgkill - send a signal to a thread"
12856 msgstr "tkill, tgkill - スレッドにシグナルを送る"
12857
12858 #. type: Plain text
12859 #: build/C/man2/tkill.2:35
12860 #, no-wrap
12861 msgid "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
12862 msgstr "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
12863
12864 #. type: Plain text
12865 #: build/C/man2/tkill.2:37
12866 #, no-wrap
12867 msgid "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
12868 msgstr "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
12869
12870 #. type: Plain text
12871 #: build/C/man2/tkill.2:54
12872 msgid ""
12873 "B<tgkill>()  sends the signal I<sig> to the thread with the thread ID I<tid> "
12874 "in the thread group I<tgid>.  (By contrast, B<kill>(2)  can be used to send "
12875 "a signal only to a process (i.e., thread group)  as a whole, and the signal "
12876 "will be delivered to an arbitrary thread within that process.)"
12877 msgstr ""
12878 "B<tgkill>()  はスレッド・グループ I<tgid> に属するスレッド ID が I<tid> のス"
12879 "レッドにシグナル I<sig> を送る。 (これに対し、 B<kill>(2)  は一つのプロセス "
12880 "(すなわち、スレッド・グループ) にまとめてシグナルを 送るのにだけ利用できる。 "
12881 "B<kill>(2)  で送信されたシグナルはプロセス内の任意のスレッドに配送される。)"
12882
12883 #.  FIXME: Maybe say something about the following:
12884 #.  http://sourceware.org/bugzilla/show_bug.cgi?id=12889
12885 #.      Rich Felker <bugdal@aerifal.cx>
12886 #.      There is a race condition in pthread_kill: it is possible that,
12887 #.      between the time pthread_kill reads the pid/tid from the target
12888 #.      thread descriptor and the time it makes the tgkill syscall,
12889 #.      the target thread terminates and the same tid gets assigned
12890 #.      to a new thread in the same process.
12891 #.      (The tgkill syscall was designed to eliminate a similar race
12892 #.      condition in tkill, but it only succeeded in eliminating races
12893 #.      where the tid gets reused in a different process, and does not
12894 #.      help if the same tid gets assigned to a new thread in the
12895 #.      same process.)
12896 #.      The only solution I can see is to introduce a mutex that ensures
12897 #.      that a thread cannot exit while pthread_kill is being called on it.
12898 #.      Note that in most real-world situations, like almost all race
12899 #.      conditions, this one will be extremely rare. To make it
12900 #.      measurable, one could exhaust all but 1-2 available pid values,
12901 #.      possibly by lowering the max pid parameter in /proc, forcing
12902 #.      the same tid to be reused rapidly.
12903 #. type: Plain text
12904 #: build/C/man2/tkill.2:85
12905 msgid ""
12906 "B<tkill>()  is an obsolete predecessor to B<tgkill>().  It allows only the "
12907 "target thread ID to be specified, which may result in the wrong thread being "
12908 "signaled if a thread terminates and its thread ID is recycled.  Avoid using "
12909 "this system call."
12910 msgstr ""
12911 "B<tkill>()  はもう使われなくなった B<tgkill>()  の先祖である。 B<tkill>()  で"
12912 "はシグナルの送り先のスレッド ID しか指定できない。 そのため、スレッドが終了し"
12913 "て、そのスレッド ID が再利用される場合に、 意図しないスレッドにシグナルが送ら"
12914 "れる可能性がある。 このシステムコールの使用は避けること。"
12915
12916 #. type: Plain text
12917 #: build/C/man2/tkill.2:92
12918 msgid ""
12919 "If I<tgid> is specified as -1, B<tgkill>()  is equivalent to B<tkill>()."
12920 msgstr ""
12921 "I<tgid> に -1 が指定された場合、 B<tgkill>()  は B<tkill>()  と等価である。"
12922
12923 #. type: Plain text
12924 #: build/C/man2/tkill.2:95
12925 msgid ""
12926 "These are the raw system call interfaces, meant for internal thread library "
12927 "use."
12928 msgstr ""
12929 "これらはシステムコールへの直接のインターフェースであり、 スレッド・ライブラリ"
12930 "内部での使用を意図したものである。"
12931
12932 #. type: Plain text
12933 #: build/C/man2/tkill.2:103
12934 msgid "An invalid thread ID, thread group ID, or signal was specified."
12935 msgstr "指定されたスレッド ID、スレッドグループ ID、シグナルが不正であった。"
12936
12937 #. type: Plain text
12938 #: build/C/man2/tkill.2:108
12939 msgid "Permission denied.  For the required permissions, see B<kill>(2)."
12940 msgstr ""
12941 "許可がなかった。どのような許可が必要かについては、 B<kill>(2)  を参照のこと。"
12942
12943 #. type: Plain text
12944 #: build/C/man2/tkill.2:111
12945 msgid "No process with the specified thread ID (and thread group ID) exists."
12946 msgstr ""
12947 "指定されたスレッドID (とスレッド・グループID) を持つプロセスが存在しない。"
12948
12949 #. type: Plain text
12950 #: build/C/man2/tkill.2:116
12951 msgid ""
12952 "B<tkill>()  is supported since Linux 2.4.19 / 2.5.4.  B<tgkill>()  was added "
12953 "in Linux 2.5.75."
12954 msgstr ""
12955 "B<tkill>()  は Linux 2.4.19 / 2.5.4 以降でサポートされ、 B<tgkill>()  は "
12956 "Linux 2.5.75 で追加された。"
12957
12958 #. type: Plain text
12959 #: build/C/man2/tkill.2:122
12960 msgid ""
12961 "B<tkill>()  and B<tgkill>()  are Linux-specific and should not be used in "
12962 "programs that are intended to be portable."
12963 msgstr ""
12964 "B<tkill>()  と B<tgkill>()  は Linux 固有であり、 移植を想定したプログラムで"
12965 "は使用すべきではない。"
12966
12967 #. type: Plain text
12968 #: build/C/man2/tkill.2:128
12969 msgid ""
12970 "See the description of B<CLONE_THREAD> in B<clone>(2)  for an explanation of "
12971 "thread groups."
12972 msgstr ""
12973 "スレッド・グループの説明については B<clone>(2)  の B<CLONE_THREAD> の説明を参"
12974 "照のこと。"
12975
12976 #. type: Plain text
12977 #: build/C/man2/tkill.2:131
12978 msgid ""
12979 "Glibc does not provide wrappers for these system calls; call them using "
12980 "B<syscall>(2)."
12981 msgstr ""
12982 "glibc はこれらのシステムコールに対するラッパー関数を提供していない。 "
12983 "B<syscall>(2)  を使って呼び出すこと。"
12984
12985 #. type: Plain text
12986 #: build/C/man2/tkill.2:136
12987 msgid "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
12988 msgstr "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
12989
12990 #. type: TH
12991 #: build/C/man2/wait.2:49
12992 #, no-wrap
12993 msgid "WAIT"
12994 msgstr "WAIT"
12995
12996 #. type: Plain text
12997 #: build/C/man2/wait.2:52
12998 msgid "wait, waitpid, waitid - wait for process to change state"
12999 msgstr "wait, waitpid, waitid - プロセスの状態変化を待つ"
13000
13001 #. type: Plain text
13002 #: build/C/man2/wait.2:54
13003 msgid "B<#include E<lt>sys/types.hE<gt>>"
13004 msgstr "B<#include E<lt>sys/types.hE<gt>>"
13005
13006 #. type: Plain text
13007 #: build/C/man2/wait.2:56
13008 msgid "B<#include E<lt>sys/wait.hE<gt>>"
13009 msgstr "B<#include E<lt>sys/wait.hE<gt>>"
13010
13011 #. type: Plain text
13012 #: build/C/man2/wait.2:58
13013 msgid "B<pid_t wait(int *>I<status>B<);>"
13014 msgstr "B<pid_t wait(int *>I<status>B<);>"
13015
13016 #. type: Plain text
13017 #: build/C/man2/wait.2:60
13018 msgid ""
13019 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
13020 msgstr ""
13021 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
13022
13023 #. type: Plain text
13024 #: build/C/man2/wait.2:65
13025 #, no-wrap
13026 msgid ""
13027 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, int >I<options>B<);>\n"
13028 "                /* This is the glibc and POSIX interface; see\n"
13029 "                   NOTES for information on the raw system call. */\n"
13030 msgstr ""
13031 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, int >I<options>B<);>\n"
13032 "                /* これは glibc と POSIX のインターフェイスである。\n"
13033 "                   生のシステムコールについての情報は「注意」の節を参照。 */\n"
13034
13035 #. type: Plain text
13036 #: build/C/man2/wait.2:74
13037 msgid "B<waitid>():"
13038 msgstr "B<waitid>():"
13039
13040 #. type: Plain text
13041 #: build/C/man2/wait.2:78
13042 msgid ""
13043 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
13044 "_XOPEN_SOURCE_EXTENDED"
13045 msgstr ""
13046 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
13047 "_XOPEN_SOURCE_EXTENDED"
13048
13049 #. type: Plain text
13050 #: build/C/man2/wait.2:93
13051 msgid ""
13052 "All of these system calls are used to wait for state changes in a child of "
13053 "the calling process, and obtain information about the child whose state has "
13054 "changed.  A state change is considered to be: the child terminated; the "
13055 "child was stopped by a signal; or the child was resumed by a signal.  In the "
13056 "case of a terminated child, performing a wait allows the system to release "
13057 "the resources associated with the child; if a wait is not performed, then "
13058 "the terminated child remains in a \"zombie\" state (see NOTES below)."
13059 msgstr ""
13060 "これらのシステムコールはいずれも、呼び出し元プロセスの子プロセスの 状態変化を"
13061 "待ち、状態が変化したその子プロセスの情報を取得するのに 使用される。 状態変化"
13062 "とは以下のいずれかである: 子プロセスの終了、シグナルによる子プロセスの停止、 "
13063 "シグナルによる子プロセスの再開。 子プロセスが終了した場合は、wait を実行する"
13064 "ことで、 システムがその子プロセスに関連するリソースを解放できるようになる。 "
13065 "wait が実行されなかった場合には、終了した子プロセスは 「ゾンビ」状態で残り続"
13066 "ける (下記の注意の章を参照のこと)。"
13067
13068 #. type: Plain text
13069 #: build/C/man2/wait.2:105
13070 msgid ""
13071 "If a child has already changed state, then these calls return immediately.  "
13072 "Otherwise they block until either a child changes state or a signal handler "
13073 "interrupts the call (assuming that system calls are not automatically "
13074 "restarted using the B<SA_RESTART> flag of B<sigaction>(2)).  In the "
13075 "remainder of this page, a child whose state has changed and which has not "
13076 "yet been waited upon by one of these system calls is termed I<waitable>."
13077 msgstr ""
13078 "子プロセスの状態変化がすでに発生していた場合、これらのコールは すぐに復帰す"
13079 "る。それ以外の場合は、子プロセスの状態変化が起こるか、 シグナルハンドラにより"
13080 "システムコールが中断されるまで、 停止 (block) する (後者は、 B<sigaction>"
13081 "(2)  の B<SA_RESTART> フラグによりシステムコールが自動的に再スタートするよう"
13082 "になっていない 場合の動作である)。 以下の説明では、状態変化が起こったがこれら"
13083 "のシステムコールのいずれかに よって待たれていない子プロセスを I<waitable> (待"
13084 "ち可能) と呼ぶ。"
13085
13086 #. type: SS
13087 #: build/C/man2/wait.2:105
13088 #, no-wrap
13089 msgid "wait() and waitpid()"
13090 msgstr "wait() と waitpid()"
13091
13092 #. type: Plain text
13093 #: build/C/man2/wait.2:113
13094 msgid ""
13095 "The B<wait>()  system call suspends execution of the calling process until "
13096 "one of its children terminates.  The call I<wait(&status)> is equivalent to:"
13097 msgstr ""
13098 "B<wait>()  システムコールは、子プロセスのいずれかが終了するまで 呼び出し元の"
13099 "プロセスの実行を一時停止する。 呼び出し I<wait(&status)> は以下と等価である:"
13100
13101 #. type: Plain text
13102 #: build/C/man2/wait.2:116
13103 #, no-wrap
13104 msgid "    waitpid(-1, &status, 0);\n"
13105 msgstr "    waitpid(-1, &status, 0);\n"
13106
13107 #. type: Plain text
13108 #: build/C/man2/wait.2:130
13109 msgid ""
13110 "The B<waitpid>()  system call suspends execution of the calling process "
13111 "until a child specified by I<pid> argument has changed state.  By default, "
13112 "B<waitpid>()  waits only for terminated children, but this behavior is "
13113 "modifiable via the I<options> argument, as described below."
13114 msgstr ""
13115 "B<waitpid>()  システムコールは、 I<pid> 引き数で指定した子プロセスの状態変化"
13116 "が起こるまで、 呼び出し元のプロセスの実行を一時停止する。デフォルトでは、 "
13117 "B<waitpid>()  は子プロセスの終了だけを待つが、この動作は I<options> 引き数に"
13118 "より変更可能である。"
13119
13120 #. type: Plain text
13121 #: build/C/man2/wait.2:134
13122 msgid "The value of I<pid> can be:"
13123 msgstr "I<pid> に指定できる値は以下の通り:"
13124
13125 #. type: IP
13126 #: build/C/man2/wait.2:134
13127 #, no-wrap
13128 msgid "E<lt> -1"
13129 msgstr "E<lt> -1"
13130
13131 #. type: Plain text
13132 #: build/C/man2/wait.2:138
13133 msgid ""
13134 "meaning wait for any child process whose process group ID is equal to the "
13135 "absolute value of I<pid>."
13136 msgstr ""
13137 "プロセスグループID が I<pid> の絶対値に等しい子プロセスのいずれかが終了するま"
13138 "でを待つ。"
13139
13140 #. type: IP
13141 #: build/C/man2/wait.2:138
13142 #, no-wrap
13143 msgid "-1"
13144 msgstr "-1"
13145
13146 #. type: Plain text
13147 #: build/C/man2/wait.2:140
13148 msgid "meaning wait for any child process."
13149 msgstr "子プロセスのどれかが終了するまで待つ。"
13150
13151 #. type: IP
13152 #: build/C/man2/wait.2:140
13153 #, no-wrap
13154 msgid "0"
13155 msgstr "0"
13156
13157 #. type: Plain text
13158 #: build/C/man2/wait.2:143
13159 msgid ""
13160 "meaning wait for any child process whose process group ID is equal to that "
13161 "of the calling process."
13162 msgstr ""
13163 "プロセスグループID が呼び出したプロセスのものと等しい 子プロセスを待つ。"
13164
13165 #. type: IP
13166 #: build/C/man2/wait.2:143
13167 #, no-wrap
13168 msgid "E<gt> 0"
13169 msgstr "E<gt> 0"
13170
13171 #. type: Plain text
13172 #: build/C/man2/wait.2:147
13173 msgid ""
13174 "meaning wait for the child whose process ID is equal to the value of I<pid>."
13175 msgstr "プロセスID が I<pid> に等しい子プロセスを待つ。"
13176
13177 #. type: Plain text
13178 #: build/C/man2/wait.2:151
13179 msgid ""
13180 "The value of I<options> is an OR of zero or more of the following constants:"
13181 msgstr "I<options> の値は次の定数の 0 個以上の論理和である:"
13182
13183 #. type: TP
13184 #: build/C/man2/wait.2:151 build/C/man2/wait.2:280
13185 #, no-wrap
13186 msgid "B<WNOHANG>"
13187 msgstr "B<WNOHANG>"
13188
13189 #. type: Plain text
13190 #: build/C/man2/wait.2:154
13191 msgid "return immediately if no child has exited."
13192 msgstr "状態変化が起こった子プロセスがない場合にすぐに復帰する。"
13193
13194 #. type: TP
13195 #: build/C/man2/wait.2:154
13196 #, no-wrap
13197 msgid "B<WUNTRACED>"
13198 msgstr "B<WUNTRACED>"
13199
13200 #. type: Plain text
13201 #: build/C/man2/wait.2:163
13202 msgid ""
13203 "also return if a child has stopped (but not traced via B<ptrace>(2)).  "
13204 "Status for I<traced> children which have stopped is provided even if this "
13205 "option is not specified."
13206 msgstr ""
13207 "子プロセスが停止した場合にも復帰する (子プロセスが B<ptrace>(2)  でトレースさ"
13208 "れている場合は除く)。 このオプションが指定されていない場合でも、停止したプロ"
13209 "セスが 「トレース (traced)」されていれば、子プロセスの状態が報告される。"
13210
13211 #. type: TP
13212 #: build/C/man2/wait.2:163
13213 #, no-wrap
13214 msgid "B<WCONTINUED> (since Linux 2.6.10)"
13215 msgstr "B<WCONTINUED> (Linux 2.6.10 以降)"
13216
13217 #. type: Plain text
13218 #: build/C/man2/wait.2:167
13219 msgid ""
13220 "also return if a stopped child has been resumed by delivery of B<SIGCONT>."
13221 msgstr "停止した子プロセスが B<SIGCONT> の配送により再開した場合にも復帰する。"
13222
13223 #. type: Plain text
13224 #: build/C/man2/wait.2:169
13225 msgid "(For Linux-only options, see below.)"
13226 msgstr "(Linux 専用オプションについては後述する)"
13227
13228 #. type: Plain text
13229 #: build/C/man2/wait.2:183
13230 msgid ""
13231 "If I<status> is not NULL, B<wait>()  and B<waitpid>()  store status "
13232 "information in the I<int> to which it points.  This integer can be inspected "
13233 "with the following macros (which take the integer itself as an argument, not "
13234 "a pointer to it, as is done in B<wait>()  and B<waitpid>()!):"
13235 msgstr ""
13236 "I<status> が NULL でなければ、 B<wait>()  や B<waitpid>()  は I<status> で指"
13237 "す I<int> に状態情報を格納する。 この整数は以下のマクロを使って検査できる。 "
13238 "(これらのマクロの引き数には、 B<wait>()  や B<waitpid>()  が書き込んだ整数そ"
13239 "のものを指定する。ポインタではない!)"
13240
13241 #. type: TP
13242 #: build/C/man2/wait.2:183
13243 #, no-wrap
13244 msgid "B<WIFEXITED(>I<status>B<)>"
13245 msgstr "B<WIFEXITED(>I<status>B<)>"
13246
13247 #. type: Plain text
13248 #: build/C/man2/wait.2:191
13249 msgid ""
13250 "returns true if the child terminated normally, that is, by calling B<exit>"
13251 "(3)  or B<_exit>(2), or by returning from main()."
13252 msgstr ""
13253 "子プロセスが正常に終了した場合に真を返す。 「正常に」とは、 B<exit>(3)  か "
13254 "B<_exit>(2)  が呼び出された場合、もしくは main() から復帰した場合である。"
13255
13256 #. type: TP
13257 #: build/C/man2/wait.2:191
13258 #, no-wrap
13259 msgid "B<WEXITSTATUS(>I<status>B<)>"
13260 msgstr "B<WEXITSTATUS(>I<status>B<)>"
13261
13262 #. type: Plain text
13263 #: build/C/man2/wait.2:204
13264 msgid ""
13265 "returns the exit status of the child.  This consists of the least "
13266 "significant 8 bits of the I<status> argument that the child specified in a "
13267 "call to B<exit>(3)  or B<_exit>(2)  or as the argument for a return "
13268 "statement in main().  This macro should be employed only if B<WIFEXITED> "
13269 "returned true."
13270 msgstr ""
13271 "子プロセスの終了ステータスを返す。 終了ステータスは I<status> 引き数の下位 8"
13272 "ビットで構成されており、 B<exit>(3)  や B<_exit>(2)  の呼び出し時に渡された"
13273 "値、もしくは main() の return 文の 引き数として指定された値である。 このマク"
13274 "ロを使用するのは B<WIFEXITED> が真を返した場合だけにすべきである。"
13275
13276 #. type: TP
13277 #: build/C/man2/wait.2:204
13278 #, no-wrap
13279 msgid "B<WIFSIGNALED(>I<status>B<)>"
13280 msgstr "B<WIFSIGNALED(>I<status>B<)>"
13281
13282 #. type: Plain text
13283 #: build/C/man2/wait.2:207
13284 msgid "returns true if the child process was terminated by a signal."
13285 msgstr "子プロセスがシグナルにより終了した場合に真を返す。"
13286
13287 #. type: TP
13288 #: build/C/man2/wait.2:207
13289 #, no-wrap
13290 msgid "B<WTERMSIG(>I<status>B<)>"
13291 msgstr "B<WTERMSIG(>I<status>B<)>"
13292
13293 #. type: Plain text
13294 #: build/C/man2/wait.2:214
13295 msgid ""
13296 "returns the number of the signal that caused the child process to "
13297 "terminate.  This macro should be employed only if B<WIFSIGNALED> returned "
13298 "true."
13299 msgstr ""
13300 "子プロセス終了の原因となったシグナルの番号を返す。 このマクロを使用するのは "
13301 "B<WIFSIGNALED> が真を返した場合だけにすべきである。"
13302
13303 #. type: TP
13304 #: build/C/man2/wait.2:214
13305 #, no-wrap
13306 msgid "B<WCOREDUMP(>I<status>B<)>"
13307 msgstr "B<WCOREDUMP(>I<status>B<)>"
13308
13309 #. type: Plain text
13310 #: build/C/man2/wait.2:223
13311 msgid ""
13312 "returns true if the child produced a core dump.  This macro should be "
13313 "employed only if B<WIFSIGNALED> returned true.  This macro is not specified "
13314 "in POSIX.1-2001 and is not available on some UNIX implementations (e.g., "
13315 "AIX, SunOS).  Only use this enclosed in #ifdef WCOREDUMP ... #endif."
13316 msgstr ""
13317 "子プロセスがコアダンプを生成した場合に真を返す。 このマクロを使用するのは "
13318 "B<WIFSIGNALED> が真を返した場合だけにすべきである。 このマクロは "
13319 "POSIX.1-2001 では規定されておらず、 (AIX, SunOS などの) いくつかの UNIX の実"
13320 "装では利用できない。 必ず #ifdef WCOREDUMP ... #endif で括って使用すること。"
13321
13322 #. type: TP
13323 #: build/C/man2/wait.2:223
13324 #, no-wrap
13325 msgid "B<WIFSTOPPED(>I<status>B<)>"
13326 msgstr "B<WIFSTOPPED(>I<status>B<)>"
13327
13328 #. type: Plain text
13329 #: build/C/man2/wait.2:230
13330 msgid ""
13331 "returns true if the child process was stopped by delivery of a signal; this "
13332 "is possible only if the call was done using B<WUNTRACED> or when the child "
13333 "is being traced (see B<ptrace>(2))."
13334 msgstr ""
13335 "子プロセスがシグナルの配送により停止した場合に真を返す。 これが真になるのは、"
13336 "システムコールが B<WUNTRACED> を指定して呼び出された場合か、子プロセスがト"
13337 "レースされている場合 (B<ptrace>(2)  参照) だけである。"
13338
13339 #. type: TP
13340 #: build/C/man2/wait.2:230
13341 #, no-wrap
13342 msgid "B<WSTOPSIG(>I<status>B<)>"
13343 msgstr "B<WSTOPSIG(>I<status>B<)>"
13344
13345 #. type: Plain text
13346 #: build/C/man2/wait.2:236
13347 msgid ""
13348 "returns the number of the signal which caused the child to stop.  This macro "
13349 "should be employed only if B<WIFSTOPPED> returned true."
13350 msgstr ""
13351 "子プロセスを停止させたシグナルの番号を返す。 このマクロを使用するのは "
13352 "B<WIFSTOPPED> が 0 以外を返した場合だけにすべきである。"
13353
13354 #. type: TP
13355 #: build/C/man2/wait.2:236
13356 #, no-wrap
13357 msgid "B<WIFCONTINUED(>I<status>B<)>"
13358 msgstr "B<WIFCONTINUED(>I<status>B<)>"
13359
13360 #. type: Plain text
13361 #: build/C/man2/wait.2:241
13362 msgid ""
13363 "(since Linux 2.6.10)  returns true if the child process was resumed by "
13364 "delivery of B<SIGCONT>."
13365 msgstr ""
13366 "(Linux 2.6.10 以降)  子プロセスが B<SIGCONT> の配送により再開した場合に真を返"
13367 "す。"
13368
13369 #. type: SS
13370 #: build/C/man2/wait.2:241
13371 #, no-wrap
13372 msgid "waitid()"
13373 msgstr "waitid()"
13374
13375 #. type: Plain text
13376 #: build/C/man2/wait.2:246
13377 msgid ""
13378 "The B<waitid>()  system call (available since Linux 2.6.9) provides more "
13379 "precise control over which child state changes to wait for."
13380 msgstr ""
13381 "B<waitid>()  システムコール (Linux 2.6.9 以降で利用可能) を使うと、 子プロセ"
13382 "スのどの状態変化を待つかについてより細かな制御ができる。"
13383
13384 #. type: Plain text
13385 #: build/C/man2/wait.2:252
13386 msgid ""
13387 "The I<idtype> and I<id> arguments select the child(ren) to wait for, as "
13388 "follows:"
13389 msgstr "引き数 I<idtype> と I<id> でどの子プロセスを待つかを選択する:"
13390
13391 #. type: IP
13392 #: build/C/man2/wait.2:252
13393 #, no-wrap
13394 msgid "I<idtype> == B<P_PID>"
13395 msgstr "I<idtype> == B<P_PID>"
13396
13397 #. type: Plain text
13398 #: build/C/man2/wait.2:255
13399 msgid "Wait for the child whose process ID matches I<id>."
13400 msgstr "プロセスID が I<id> と一致する子プロセスを待つ。"
13401
13402 #. type: IP
13403 #: build/C/man2/wait.2:255
13404 #, no-wrap
13405 msgid "I<idtype> == B<P_PGID>"
13406 msgstr "I<idtype> == B<P_PGID>"
13407
13408 #. type: Plain text
13409 #: build/C/man2/wait.2:258
13410 msgid "Wait for any child whose process group ID matches I<id>."
13411 msgstr "プロセスグループID が I<id> と一致する子プロセスを待つ。"
13412
13413 #. type: IP
13414 #: build/C/man2/wait.2:258
13415 #, no-wrap
13416 msgid "I<idtype> == B<P_ALL>"
13417 msgstr "I<idtype> == B<P_ALL>"
13418
13419 #. type: Plain text
13420 #: build/C/man2/wait.2:262
13421 msgid "Wait for any child; I<id> is ignored."
13422 msgstr "子プロセス全部を対象に待つ。 I<id> は無視される。"
13423
13424 #. type: Plain text
13425 #: build/C/man2/wait.2:266
13426 msgid ""
13427 "The child state changes to wait for are specified by ORing one or more of "
13428 "the following flags in I<options>:"
13429 msgstr ""
13430 "子プロセスのどの状態変化を待つかは以下のフラグで指定する (I<options> には 1個"
13431 "以上のフラグの論理和をとって指定する):"
13432
13433 #. type: TP
13434 #: build/C/man2/wait.2:266
13435 #, no-wrap
13436 msgid "B<WEXITED>"
13437 msgstr "B<WEXITED>"
13438
13439 #. type: Plain text
13440 #: build/C/man2/wait.2:269
13441 msgid "Wait for children that have terminated."
13442 msgstr "子プロセスの終了を待つ。"
13443
13444 #. type: TP
13445 #: build/C/man2/wait.2:269
13446 #, no-wrap
13447 msgid "B<WSTOPPED>"
13448 msgstr "B<WSTOPPED>"
13449
13450 #. type: Plain text
13451 #: build/C/man2/wait.2:272
13452 msgid "Wait for children that have been stopped by delivery of a signal."
13453 msgstr "子プロセスがシグナルの配送により停止するのを待つ。"
13454
13455 #. type: TP
13456 #: build/C/man2/wait.2:272
13457 #, no-wrap
13458 msgid "B<WCONTINUED>"
13459 msgstr "B<WCONTINUED>"
13460
13461 #. type: Plain text
13462 #: build/C/man2/wait.2:277
13463 msgid ""
13464 "Wait for (previously stopped) children that have been resumed by delivery of "
13465 "B<SIGCONT>."
13466 msgstr "(停止していた) 子プロセスが B<SIGCONT> が配送されて再開するのを待つ。"
13467
13468 #. type: Plain text
13469 #: build/C/man2/wait.2:280
13470 msgid "The following flags may additionally be ORed in I<options>:"
13471 msgstr "さらに以下のフラグを論理和の形で I<options> に指定できる:"
13472
13473 #. type: Plain text
13474 #: build/C/man2/wait.2:284
13475 msgid "As for B<waitpid>()."
13476 msgstr "B<waitpid>()  と同様。"
13477
13478 #. type: TP
13479 #: build/C/man2/wait.2:284
13480 #, no-wrap
13481 msgid "B<WNOWAIT>"
13482 msgstr "B<WNOWAIT>"
13483
13484 #. type: Plain text
13485 #: build/C/man2/wait.2:288
13486 msgid ""
13487 "Leave the child in a waitable state; a later wait call can be used to again "
13488 "retrieve the child status information."
13489 msgstr ""
13490 "waitable 状態のプロセスをそのままにする。この後で wait コールを 使って、同じ"
13491 "子プロセスの状態情報をもう一度取得することができる。"
13492
13493 #. type: Plain text
13494 #: build/C/man2/wait.2:295
13495 msgid ""
13496 "Upon successful return, B<waitid>()  fills in the following fields of the "
13497 "I<siginfo_t> structure pointed to by I<infop>:"
13498 msgstr ""
13499 "成功した場合には、 B<waitid>()  は I<infop> が指す I<siginfo_t> 構造体の以下"
13500 "のフィールドを設定する:"
13501
13502 #. type: Plain text
13503 #: build/C/man2/wait.2:298
13504 msgid "The process ID of the child."
13505 msgstr "子プロセスのプロセスID。"
13506
13507 #. type: Plain text
13508 #: build/C/man2/wait.2:302
13509 msgid ""
13510 "The real user ID of the child.  (This field is not set on most other "
13511 "implementations.)"
13512 msgstr ""
13513 "子プロセスの実ユーザID (このフィールドは他のほとんどの実装では設定されない)。"
13514
13515 #. type: Plain text
13516 #: build/C/man2/wait.2:306
13517 msgid "Always set to B<SIGCHLD>."
13518 msgstr "常に B<SIGCHLD> が設定される。"
13519
13520 #. type: TP
13521 #: build/C/man2/wait.2:306
13522 #, no-wrap
13523 msgid "I<si_status>"
13524 msgstr "I<si_status>"
13525
13526 #. type: Plain text
13527 #: build/C/man2/wait.2:316
13528 msgid ""
13529 "Either the exit status of the child, as given to B<_exit>(2)  (or B<exit>"
13530 "(3)), or the signal that caused the child to terminate, stop, or continue.  "
13531 "The I<si_code> field can be used to determine how to interpret this field."
13532 msgstr ""
13533 "B<_exit>(2)  (か B<exit>(3))  に指定された子プロセスの終了ステータス、もしく"
13534 "は 子プロセスの終了、停止、再開の原因となったシグナルが設定される。 この"
13535 "フィールドをどう解釈するかは、 I<si_code> フィールドを参照して決めることがで"
13536 "きる。"
13537
13538 #. type: Plain text
13539 #: build/C/man2/wait.2:333
13540 msgid ""
13541 "Set to one of: B<CLD_EXITED> (child called B<_exit>(2)); B<CLD_KILLED> "
13542 "(child killed by signal); B<CLD_DUMPED> (child killed by signal, and dumped "
13543 "core); B<CLD_STOPPED> (child stopped by signal); B<CLD_TRAPPED> (traced "
13544 "child has trapped); or B<CLD_CONTINUED> (child continued by B<SIGCONT>)."
13545 msgstr ""
13546 "以下のいずれかが設定される: B<CLD_EXITED> (子プロセスが B<_exit>(2)  を呼び出"
13547 "した); B<CLD_KILLED> (シグナルにより子プロセスが kill された); B<CLD_DUMPED> "
13548 "(シグナルにより子プロセスが kill され、コア・ダンプが行われた); "
13549 "B<CLD_STOPPED> (シグナルにより子プロセスが停止した); B<CLD_TRAPPED> (トレース"
13550 "されていた子プロセスがトラップを受信した); B<CLD_CONTINUED> (B<SIGCONT> によ"
13551 "り子プロセスが再開された)。"
13552
13553 #.  POSIX.1-2001 leaves this possibility unspecified; most
13554 #.  implementations (including Linux) zero out the structure
13555 #.  in this case, but at least one implementation (AIX 5.1)
13556 #.  does not -- MTK Nov 04
13557 #. type: Plain text
13558 #: build/C/man2/wait.2:355
13559 msgid ""
13560 "If B<WNOHANG> was specified in I<options> and there were no children in a "
13561 "waitable state, then B<waitid>()  returns 0 immediately and the state of the "
13562 "I<siginfo_t> structure pointed to by I<infop> is unspecified.  To "
13563 "distinguish this case from that where a child was in a waitable state, zero "
13564 "out the I<si_pid> field before the call and check for a nonzero value in "
13565 "this field after the call returns."
13566 msgstr ""
13567 "B<WNOHANG> が I<options> に指定されていて、 waitable 状態の子プロセスがなかっ"
13568 "た場合には、 B<waitid>()  はすぐに 0 を返す。このとき、 I<infop> が指す "
13569 "I<siginfo_t> 構造体の内容は不定である。 この場合を waitable 状態の子プロセス"
13570 "があった場合と区別するには、 B<waitid>()  を呼び出す前に I<si_pid> を 0 にし"
13571 "ておき、コールが復帰した後でこのフィールドが 0 以外の値かどうか をチェックす"
13572 "ればよい。"
13573
13574 #. type: Plain text
13575 #: build/C/man2/wait.2:359
13576 msgid ""
13577 "B<wait>(): on success, returns the process ID of the terminated child; on "
13578 "error, -1 is returned."
13579 msgstr ""
13580 "B<wait>(): 成功すると、終了した子プロセスのプロセスID を返す。 エラーの場合 "
13581 "-1 を返す。"
13582
13583 #. type: Plain text
13584 #: build/C/man2/wait.2:368
13585 msgid ""
13586 "B<waitpid>(): on success, returns the process ID of the child whose state "
13587 "has changed; if B<WNOHANG> was specified and one or more child(ren) "
13588 "specified by I<pid> exist, but have not yet changed state, then 0 is "
13589 "returned.  On error, -1 is returned."
13590 msgstr ""
13591 "B<waitpid>(): 成功すると、状態が変化した子プロセスのプロセスID を返す。 "
13592 "B<WNOHANG> が指定されていて、 I<pid> で指示された子プロセスが一つ以上存在する"
13593 "が、どの子プロセスでも 状態変化が起こっていなかった場合は、 0 を返す。 エラー"
13594 "の場合 -1 を返す。"
13595
13596 #.  FIXME: As reported by Vegard Nossum, if infop is NULL, then waitid()
13597 #.  returns the PID of the child.  Either this is a bug, or it is intended
13598 #.  behavior that needs to be documented.  See my Jan 2009 LKML mail
13599 #.  "waitid() return value strangeness when infop is NULL".
13600 #. type: Plain text
13601 #: build/C/man2/wait.2:384
13602 msgid ""
13603 "B<waitid>(): returns 0 on success or if B<WNOHANG> was specified and no child"
13604 "(ren) specified by I<id> has yet changed state; on error, -1 is returned.  "
13605 "Each of these calls sets I<errno> to an appropriate value in the case of an "
13606 "error."
13607 msgstr ""
13608 "B<waitid>(): 成功すると 0 を返す。 B<WNOHANG> が指定されていて、 I<pid> で指"
13609 "示された子プロセスで状態変化が起こっていなかった場合にも 0 を返す。 エラーの"
13610 "場合 -1 を返す。 エラーの場合、これらのシステムコールはいずれも I<errno> に適"
13611 "切な値を設定する。"
13612
13613 #. type: TP
13614 #: build/C/man2/wait.2:385 build/C/man2/wait.2:390
13615 #, no-wrap
13616 msgid "B<ECHILD>"
13617 msgstr "B<ECHILD>"
13618
13619 #. type: Plain text
13620 #: build/C/man2/wait.2:390
13621 msgid ""
13622 "(for B<wait>())  The calling process does not have any unwaited-for children."
13623 msgstr ""
13624 "(B<wait>()  の場合)  呼び出し元プロセスには、wait を行っていない子プロセスは"
13625 "ない。"
13626
13627 #. type: Plain text
13628 #: build/C/man2/wait.2:410
13629 msgid ""
13630 "(for B<waitpid>()  or B<waitid>())  The process specified by I<pid> "
13631 "(B<waitpid>())  or I<idtype> and I<id> (B<waitid>())  does not exist or is "
13632 "not a child of the calling process.  (This can happen for one's own child if "
13633 "the action for B<SIGCHLD> is set to B<SIG_IGN>.  See also the I<Linux Notes> "
13634 "section about threads.)"
13635 msgstr ""
13636 "(B<waitpid>()  か B<waitid>()  の場合)  I<pid> (B<waitpid>())  か I<idtype> "
13637 "と I<id> (B<waitid>())  で指定したプロセスが存在しないか、呼び出し元プロセス"
13638 "の子プロセスでない (B<SIGCHLD> の動作に B<SIG_IGN> を設定した場合には、自分自"
13639 "身の子プロセスでも起こりうる。 スレッドに関しては「Linux での注意」の節も参照"
13640 "すること)。"
13641
13642 #. type: Plain text
13643 #: build/C/man2/wait.2:417
13644 msgid ""
13645 "B<WNOHANG> was not set and an unblocked signal or a B<SIGCHLD> was caught; "
13646 "see B<signal>(7)."
13647 msgstr ""
13648 "B<WNOHANG> が設定されておらず、禁止 (block) されていないシグナルや "
13649 "B<SIGCHLD> を受信した。 B<signal>(7)  参照。"
13650
13651 #. type: Plain text
13652 #: build/C/man2/wait.2:422
13653 msgid "The I<options> argument was invalid."
13654 msgstr "I<options> 引き数が不正である。"
13655
13656 #. type: Plain text
13657 #: build/C/man2/wait.2:437
13658 msgid ""
13659 "A child that terminates, but has not been waited for becomes a \"zombie\".  "
13660 "The kernel maintains a minimal set of information about the zombie process "
13661 "(PID, termination status, resource usage information)  in order to allow the "
13662 "parent to later perform a wait to obtain information about the child.  As "
13663 "long as a zombie is not removed from the system via a wait, it will consume "
13664 "a slot in the kernel process table, and if this table fills, it will not be "
13665 "possible to create further processes.  If a parent process terminates, then "
13666 "its \"zombie\" children (if any)  are adopted by B<init>(8), which "
13667 "automatically performs a wait to remove the zombies."
13668 msgstr ""
13669 "終了したが、wait されていない子プロセスは「ゾンビ」になる。 後で親プロセスが "
13670 "wait を実行して子プロセスについての情報を取得できるように、 カーネルはゾンビ"
13671 "プロセスについて最小限の情報 (PID、終了ステータス、 リソース使用状況) を保持"
13672 "する。 ゾンビプロセスは、 wait によってシステムから削除されない限り、 カーネ"
13673 "ルのプロセステーブルの 1 エントリを消費する。このプロセステーブルが 一杯にな"
13674 "ると、新たにプロセスを作ることができなくなる。 親プロセスが終了すると、その親"
13675 "プロセスの「ゾンビ」の 子プロセスは (もしあれば)  B<init>(8)  の養子となる。 "
13676 "B<init>(8)  は wait を自動的に実行し、ゾンビを削除する。"
13677
13678 #. type: Plain text
13679 #: build/C/man2/wait.2:478
13680 msgid ""
13681 "POSIX.1-2001 specifies that if the disposition of B<SIGCHLD> is set to "
13682 "B<SIG_IGN> or the B<SA_NOCLDWAIT> flag is set for B<SIGCHLD> (see "
13683 "B<sigaction>(2)), then children that terminate do not become zombies and a "
13684 "call to B<wait>()  or B<waitpid>()  will block until all children have "
13685 "terminated, and then fail with I<errno> set to B<ECHILD>.  (The original "
13686 "POSIX standard left the behavior of setting B<SIGCHLD> to B<SIG_IGN> "
13687 "unspecified.  Note that even though the default disposition of B<SIGCHLD> is "
13688 "\"ignore\", explicitly setting the disposition to B<SIG_IGN> results in "
13689 "different treatment of zombie process children.)  Linux 2.6 conforms to this "
13690 "specification.  However, Linux 2.4 (and earlier) does not: if a B<wait>()  "
13691 "or B<waitpid>()  call is made while B<SIGCHLD> is being ignored, the call "
13692 "behaves just as though B<SIGCHLD> were not being ignored, that is, the call "
13693 "blocks until the next child terminates and then returns the process ID and "
13694 "status of that child."
13695 msgstr ""
13696 "POSIX.1-2001 では以下のように規定されている。 B<SIGCHLD> の動作が B<SIG_IGN> "
13697 "に設定されたか、 B<SIGCHLD> に対して B<SA_NOCLDWAIT> フラグが設定された場合 "
13698 "(B<sigaction>(2)  参照)、終了した子プロセスはゾンビにはならず、 B<wait>()  "
13699 "や B<waitpid>()  の呼び出しは全ての子プロセスが終了するまで停止し、 子プロセ"
13700 "スが全部終了した後 I<errno> に B<ECHILD> を設定して失敗する。 (もともとの "
13701 "POSIX 標準は B<SIGCHLD> に B<SIG_IGN> を設定した場合の振る舞いを未規定のまま"
13702 "にしている。 B<SIGCHLD> のデフォルトの動作が「無視」であるにもかかわらず、 "
13703 "B<SIGCHLD> の動作として B<SIG_IGN> を明示的に設定した場合にはゾンビプロセスの"
13704 "子プロセスの扱いが 異なる点に注意すること。)  Linux 2.6 はこの仕様に準拠して"
13705 "いる。 しかし、Linux 2.4 (とそれ以前のバージョン) はそうではない: B<SIGCHLD> "
13706 "が無視される状態で B<wait>()  または B<waitpid>()  が呼び出された場合、 "
13707 "B<SIGCHLD> が無視されていないかのように振る舞う。 つまり、呼び出しによって次"
13708 "の子プロセスの終了までブロックされ、 終了した子プロセスの PID と状態が返され"
13709 "る。"
13710
13711 #. type: Plain text
13712 #: build/C/man2/wait.2:494
13713 msgid ""
13714 "In the Linux kernel, a kernel-scheduled thread is not a distinct construct "
13715 "from a process.  Instead, a thread is simply a process that is created using "
13716 "the Linux-unique B<clone>(2)  system call; other routines such as the "
13717 "portable B<pthread_create>(3)  call are implemented using B<clone>(2).  "
13718 "Before Linux 2.4, a thread was just a special case of a process, and as a "
13719 "consequence one thread could not wait on the children of another thread, "
13720 "even when the latter belongs to the same thread group.  However, POSIX "
13721 "prescribes such functionality, and since Linux 2.4 a thread can, and by "
13722 "default will, wait on children of other threads in the same thread group."
13723 msgstr ""
13724 "Linux カーネルでは、カーネルによってスケジュールされるスレッドは プロセスと明"
13725 "確に区別できる構成要素ではない。スレッドは Linux 固有の B<clone>(2)  システム"
13726 "コールを使用して生成されるプロセスに過ぎない。 移植性のある B<pthread_create>"
13727 "(3)  コールのような他のルーチンは B<clone>(2)  を使用して実装されている; これ"
13728 "らでは B<waitid>()  を使うことはできない。 Linux 2.4 より前では、スレッドは単"
13729 "に特殊なプロセスであったので、 例え同じスレッドグループであっても、 あるス"
13730 "レッドが別のスレッドの子プロセスが終了するのを待つことは出来なかった。 しか"
13731 "し、POSIX ではこのような機能を規定しており、 Linux 2.4 以降では、あるスレッド"
13732 "が同じスレッドグループの他のスレッドの 子プロセスが終了するのを待つことができ"
13733 "るようになった。 そして将来はこれがデフォルトの動作になるであろう。"
13734
13735 #. type: Plain text
13736 #: build/C/man2/wait.2:501
13737 msgid ""
13738 "The following Linux-specific I<options> are for use with children created "
13739 "using B<clone>(2); they cannot be used with B<waitid>():"
13740 msgstr ""
13741 "B<clone>(2)  を用いて作られた子プロセスには、以下の Linux 固有の I<options> "
13742 "が使用できる。"
13743
13744 #. type: TP
13745 #: build/C/man2/wait.2:501
13746 #, no-wrap
13747 msgid "B<__WCLONE>"
13748 msgstr "B<__WCLONE>"
13749
13750 #.  since 0.99pl10
13751 #. type: Plain text
13752 #: build/C/man2/wait.2:512
13753 msgid ""
13754 "Wait for \"clone\" children only.  If omitted, then wait for \"non-clone\" "
13755 "children only.  (A \"clone\" child is one which delivers no signal, or a "
13756 "signal other than B<SIGCHLD> to its parent upon termination.)  This option "
13757 "is ignored if B<__WALL> is also specified."
13758 msgstr ""
13759 "\"clone\" な子プロセスだけを待つ。 指定されなかった場合は非 \"clone\" な子プ"
13760 "ロセスだけを待つ (\"clone\" な子プロセスは、終了時に親プロセスへ全くシグナル"
13761 "を送らないか、 B<SIGCHLD> 以外のシグナルを送る)。 このオプションは B<__WALL> "
13762 "も指定された場合は無視される。"
13763
13764 #. type: TP
13765 #: build/C/man2/wait.2:512
13766 #, no-wrap
13767 msgid "B<__WALL> (since Linux 2.4)"
13768 msgstr "B<__WALL> (Linux 2.4 以降)"
13769
13770 #.  since patch-2.3.48
13771 #. type: Plain text
13772 #: build/C/man2/wait.2:517
13773 msgid "Wait for all children, regardless of type (\"clone\" or \"non-clone\")."
13774 msgstr "\"clone\" であるかないかに関わらず、 全ての子プロセスを待つ。"
13775
13776 #. type: TP
13777 #: build/C/man2/wait.2:517
13778 #, no-wrap
13779 msgid "B<__WNOTHREAD> (since Linux 2.4)"
13780 msgstr "B<__WNOTHREAD> (Linux 2.4 以降)"
13781
13782 #.  since patch-2.4.0-test8
13783 #. type: Plain text
13784 #: build/C/man2/wait.2:523
13785 msgid ""
13786 "Do not wait for children of other threads in the same thread group.  This "
13787 "was the default before Linux 2.4."
13788 msgstr ""
13789 "同じスレッドグループの他のスレッドの子プロセスは待たない。 Linux 2.4 より前で"
13790 "はデフォルトであった。"
13791
13792 #. type: Plain text
13793 #: build/C/man2/wait.2:535
13794 msgid ""
13795 "The raw B<waitid>()  system call takes a fith argument, of type I<struct "
13796 "rusage\\ *>.  If this argument is non-NULL, then it is used to return "
13797 "resource usage information about the child, in the same manner as B<wait4>"
13798 "(2).  See B<getrusage>(2)  for details."
13799 msgstr ""
13800 "生の B<waitid>() システムコールは I<struct rusage\\ *> 型の第 5 引数を取る。 "
13801 "この引数が NULL 以外の場合、 この引数が子プロセスのリソース使用状況を返すのに"
13802 "使用される。 これは B<wait4>(2) と同じ方法である。 詳細は B<getrusage>(2) を"
13803 "参照。"
13804
13805 #. type: Plain text
13806 #: build/C/man2/wait.2:550
13807 msgid ""
13808 "According to POSIX.1-2008, an application calling B<waitid>()  must ensure "
13809 "that I<infop> points to a I<siginfo_t> structure (i.e., that it is a non-"
13810 "null pointer).  On Linux, if I<infop> is NULL, B<waitid>()  succeeds, and "
13811 "returns the process ID of the waited-for child.  Applications should avoid "
13812 "relying on this inconsistent, nonstandard, and unnecessary feature."
13813 msgstr ""
13814 "POSIX.1-2008 によると、 B<waitid>() を呼び出すアプリケーションは、 I<infop> "
13815 "が I<siginfo_t> 構造体を指していること (つまり I<infop> が NULL でないポイン"
13816 "タであること) を保証しなければならない。 Linux では、 I<infop> が NULL の場"
13817 "合、 B<waitid>() は成功し、wait している子プロセスのプロセス ID を返す。 アプ"
13818 "リケーションは、この食い違った、非標準で、不必要な機能に依存しないようにすべ"
13819 "きである。"
13820
13821 #.  fork.2 refers to this example program.
13822 #. type: Plain text
13823 #: build/C/man2/wait.2:567
13824 msgid ""
13825 "The following program demonstrates the use of B<fork>(2)  and B<waitpid>().  "
13826 "The program creates a child process.  If no command-line argument is "
13827 "supplied to the program, then the child suspends its execution using B<pause>"
13828 "(2), to allow the user to send signals to the child.  Otherwise, if a "
13829 "command-line argument is supplied, then the child exits immediately, using "
13830 "the integer supplied on the command line as the exit status.  The parent "
13831 "process executes a loop that monitors the child using B<waitpid>(), and uses "
13832 "the W*() macros described above to analyze the wait status value."
13833 msgstr ""
13834 "以下のプログラムは、 B<fork>(2)  と B<waitpid>()  の使用方法の例を示してい"
13835 "る。 このプログラムでは子プロセスを生成する。 コマンドライン引き数が指定され"
13836 "なかったときは、 子プロセスは B<pause>(2)  を使ってその実行を一時停止し、ユー"
13837 "ザがその子プロセスに シグナルを送信できるようにする。 コマンドライン引き数が"
13838 "指定された場合は、 子プロセスは直ちに終了し、 コマンドラインで指定された整数"
13839 "を終了ステータスとして使用する。 親プロセスは、 B<waitpid>()  を使って子プロ"
13840 "セスを監視し、 wait のステータス値を上記の W*() マクロを使って解析するという "
13841 "ループを実行する。"
13842
13843 #. type: Plain text
13844 #: build/C/man2/wait.2:583
13845 #, no-wrap
13846 msgid ""
13847 "$B< ./a.out &>\n"
13848 "Child PID is 32360\n"
13849 "[1] 32359\n"
13850 "$B< kill -STOP 32360>\n"
13851 "stopped by signal 19\n"
13852 "$B< kill -CONT 32360>\n"
13853 "continued\n"
13854 "$B< kill -TERM 32360>\n"
13855 "killed by signal 15\n"
13856 "[1]+  Done                    ./a.out\n"
13857 "$\n"
13858 msgstr ""
13859 "$B< ./a.out &>\n"
13860 "Child PID is 32360\n"
13861 "[1] 32359\n"
13862 "$B< kill -STOP 32360>\n"
13863 "stopped by signal 19\n"
13864 "$B< kill -CONT 32360>\n"
13865 "continued\n"
13866 "$B< kill -TERM 32360>\n"
13867 "killed by signal 15\n"
13868 "[1]+  Done                    ./a.out\n"
13869 "$\n"
13870
13871 #. type: Plain text
13872 #: build/C/man2/wait.2:592
13873 #, no-wrap
13874 msgid ""
13875 "#include E<lt>sys/wait.hE<gt>\n"
13876 "#include E<lt>stdlib.hE<gt>\n"
13877 "#include E<lt>unistd.hE<gt>\n"
13878 "#include E<lt>stdio.hE<gt>\n"
13879 msgstr ""
13880 "#include E<lt>sys/wait.hE<gt>\n"
13881 "#include E<lt>stdlib.hE<gt>\n"
13882 "#include E<lt>unistd.hE<gt>\n"
13883 "#include E<lt>stdio.hE<gt>\n"
13884
13885 #. type: Plain text
13886 #: build/C/man2/wait.2:598
13887 #, no-wrap
13888 msgid ""
13889 "int\n"
13890 "main(int argc, char *argv[])\n"
13891 "{\n"
13892 "    pid_t cpid, w;\n"
13893 "    int status;\n"
13894 msgstr ""
13895 "int\n"
13896 "main(int argc, char *argv[])\n"
13897 "{\n"
13898 "    pid_t cpid, w;\n"
13899 "    int status;\n"
13900
13901 #. type: Plain text
13902 #: build/C/man2/wait.2:604
13903 #, no-wrap
13904 msgid ""
13905 "    cpid = fork();\n"
13906 "    if (cpid == -1) {\n"
13907 "        perror(\"fork\");\n"
13908 "        exit(EXIT_FAILURE);\n"
13909 "    }\n"
13910 msgstr ""
13911 "    cpid = fork();\n"
13912 "    if (cpid == -1) {\n"
13913 "        perror(\"fork\");\n"
13914 "        exit(EXIT_FAILURE);\n"
13915 "    }\n"
13916
13917 #. type: Plain text
13918 #: build/C/man2/wait.2:610
13919 #, no-wrap
13920 msgid ""
13921 "    if (cpid == 0) {            /* Code executed by child */\n"
13922 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
13923 "        if (argc == 1)\n"
13924 "            pause();                    /* Wait for signals */\n"
13925 "        _exit(atoi(argv[1]));\n"
13926 msgstr ""
13927 "    if (cpid == 0) {            /* Code executed by child */\n"
13928 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
13929 "        if (argc == 1)\n"
13930 "            pause();                    /* Wait for signals */\n"
13931 "        _exit(atoi(argv[1]));\n"
13932
13933 #. type: Plain text
13934 #: build/C/man2/wait.2:618
13935 #, no-wrap
13936 msgid ""
13937 "    } else {                    /* Code executed by parent */\n"
13938 "        do {\n"
13939 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
13940 "            if (w == -1) {\n"
13941 "                perror(\"waitpid\");\n"
13942 "                exit(EXIT_FAILURE);\n"
13943 "            }\n"
13944 msgstr ""
13945 "    } else {                    /* Code executed by parent */\n"
13946 "        do {\n"
13947 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
13948 "            if (w == -1) {\n"
13949 "                perror(\"waitpid\");\n"
13950 "                exit(EXIT_FAILURE);\n"
13951 "            }\n"
13952
13953 #. type: Plain text
13954 #: build/C/man2/wait.2:632
13955 #, no-wrap
13956 msgid ""
13957 "            if (WIFEXITED(status)) {\n"
13958 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
13959 "            } else if (WIFSIGNALED(status)) {\n"
13960 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
13961 "            } else if (WIFSTOPPED(status)) {\n"
13962 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
13963 "            } else if (WIFCONTINUED(status)) {\n"
13964 "                printf(\"continued\\en\");\n"
13965 "            }\n"
13966 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
13967 "        exit(EXIT_SUCCESS);\n"
13968 "    }\n"
13969 "}\n"
13970 msgstr ""
13971 "            if (WIFEXITED(status)) {\n"
13972 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
13973 "            } else if (WIFSIGNALED(status)) {\n"
13974 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
13975 "            } else if (WIFSTOPPED(status)) {\n"
13976 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
13977 "            } else if (WIFCONTINUED(status)) {\n"
13978 "                printf(\"continued\\en\");\n"
13979 "            }\n"
13980 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
13981 "        exit(EXIT_SUCCESS);\n"
13982 "    }\n"
13983 "}\n"
13984
13985 #. type: Plain text
13986 #: build/C/man2/wait.2:645
13987 msgid ""
13988 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), B<sigaction>"
13989 "(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), B<credentials>(7), "
13990 "B<signal>(7)"
13991 msgstr ""
13992 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), B<sigaction>"
13993 "(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), B<credentials>(7), "
13994 "B<signal>(7)"
13995
13996 #. type: TH
13997 #: build/C/man2/wait4.2:33
13998 #, no-wrap
13999 msgid "WAIT4"
14000 msgstr "WAIT4"
14001
14002 #. type: TH
14003 #: build/C/man2/wait4.2:33
14004 #, no-wrap
14005 msgid "2012-09-23"
14006 msgstr "2012-09-23"
14007
14008 #. type: Plain text
14009 #: build/C/man2/wait4.2:36
14010 msgid "wait3, wait4 - wait for process to change state, BSD style"
14011 msgstr "wait3, wait4 - BSD スタイルでプロセスの状態変化を待つ"
14012
14013 #. type: Plain text
14014 #: build/C/man2/wait4.2:42
14015 #, no-wrap
14016 msgid ""
14017 "B<#include E<lt>sys/types.hE<gt>>\n"
14018 "B<#include E<lt>sys/time.hE<gt>>\n"
14019 "B<#include E<lt>sys/resource.hE<gt>>\n"
14020 "B<#include E<lt>sys/wait.hE<gt>>\n"
14021 msgstr ""
14022 "B<#include E<lt>sys/types.hE<gt>>\n"
14023 "B<#include E<lt>sys/time.hE<gt>>\n"
14024 "B<#include E<lt>sys/resource.hE<gt>>\n"
14025 "B<#include E<lt>sys/wait.hE<gt>>\n"
14026
14027 #. type: Plain text
14028 #: build/C/man2/wait4.2:45
14029 #, no-wrap
14030 msgid ""
14031 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
14032 "B<            struct rusage *>I<rusage>B<);>\n"
14033 msgstr ""
14034 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
14035 "B<            struct rusage *>I<rusage>B<);>\n"
14036
14037 #. type: Plain text
14038 #: build/C/man2/wait4.2:48
14039 #, no-wrap
14040 msgid ""
14041 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
14042 "B<            struct rusage *>I<rusage>B<);>\n"
14043 msgstr ""
14044 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
14045 "B<            struct rusage *>I<rusage>B<);>\n"
14046
14047 #. type: Plain text
14048 #: build/C/man2/wait4.2:57
14049 msgid "B<wait3>():"
14050 msgstr "B<wait3>():"
14051
14052 #. type: Plain text
14053 #: build/C/man2/wait4.2:63
14054 msgid "B<wait4>():"
14055 msgstr "B<wait4>():"
14056
14057 #. type: Plain text
14058 #: build/C/man2/wait4.2:65
14059 msgid "_BSD_SOURCE"
14060 msgstr "_BSD_SOURCE"
14061
14062 #. type: Plain text
14063 #: build/C/man2/wait4.2:73
14064 msgid ""
14065 "These functions are obsolete; use B<waitpid>(2)  or B<waitid>(2)  in new "
14066 "programs."
14067 msgstr ""
14068 "これらの関数は廃止予定である。 新しいプログラムでは B<waitpid>(2) や "
14069 "B<waitid>(2) を使用すること。"
14070
14071 #. type: Plain text
14072 #: build/C/man2/wait4.2:83
14073 msgid ""
14074 "The B<wait3>()  and B<wait4>()  system calls are similar to B<waitpid>(2), "
14075 "but additionally return resource usage information about the child in the "
14076 "structure pointed to by I<rusage>."
14077 msgstr ""
14078 "システムコール B<wait3>()  と B<wait4>()  は B<waitpid>(2)  と同様の動作をす"
14079 "る。それに加え、子プロセスのリソース使用状況の情報を I<rusage> が指す構造体に"
14080 "入れて返す。"
14081
14082 #. type: Plain text
14083 #: build/C/man2/wait4.2:89
14084 msgid ""
14085 "Other than the use of the I<rusage> argument, the following B<wait3>()  call:"
14086 msgstr "I<rusage> を使用する点を除けば、次の B<wait3>()  の呼び出し"
14087
14088 #. type: Plain text
14089 #: build/C/man2/wait4.2:92
14090 #, no-wrap
14091 msgid "    wait3(status, options, rusage);\n"
14092 msgstr "    wait3(status, options, rusage);\n"
14093
14094 #. type: Plain text
14095 #: build/C/man2/wait4.2:95 build/C/man2/wait4.2:109
14096 msgid "is equivalent to:"
14097 msgstr "は以下と等価である。"
14098
14099 #. type: Plain text
14100 #: build/C/man2/wait4.2:98
14101 #, no-wrap
14102 msgid "    waitpid(-1, status, options);\n"
14103 msgstr "    waitpid(-1, status, options);\n"
14104
14105 #. type: Plain text
14106 #: build/C/man2/wait4.2:103
14107 msgid "Similarly, the following B<wait4>()  call:"
14108 msgstr "同様に、次の B<wait4>()  の呼び出し"
14109
14110 #. type: Plain text
14111 #: build/C/man2/wait4.2:106
14112 #, no-wrap
14113 msgid "    wait4(pid, status, options, rusage);\n"
14114 msgstr "    wait4(pid, status, options, rusage);\n"
14115
14116 #. type: Plain text
14117 #: build/C/man2/wait4.2:112
14118 #, no-wrap
14119 msgid "    waitpid(pid, status, options);\n"
14120 msgstr "    waitpid(pid, status, options);\n"
14121
14122 #. type: Plain text
14123 #: build/C/man2/wait4.2:122
14124 msgid ""
14125 "In other words, B<wait3>()  waits of any child, while B<wait4>()  can be "
14126 "used to select a specific child, or children, on which to wait.  See B<wait>"
14127 "(2)  for further details."
14128 msgstr ""
14129 "言い換えると、 B<wait3>()  は全ての子プロセスを対象に待つが、 B<wait4>()  で"
14130 "は特定の子プロセス (複数可) を選んで待つことができる。"
14131
14132 #. type: Plain text
14133 #: build/C/man2/wait4.2:132
14134 msgid ""
14135 "If I<rusage> is not NULL, the I<struct rusage> to which it points will be "
14136 "filled with accounting information about the child.  See B<getrusage>(2)  "
14137 "for details."
14138 msgstr ""
14139 "I<rusage> が NULL でない場合、 I<rusage> が指す I<rusage 構造体> には子プロセ"
14140 "スのアカウント情報が格納される。 詳しくは B<getrusage>(2)  を参照のこと。"
14141
14142 #. type: Plain text
14143 #: build/C/man2/wait4.2:135 build/C/man2/wait4.2:138
14144 msgid "As for B<waitpid>(2)."
14145 msgstr "B<waitpid>(2)  と同様。"
14146
14147 #. type: Plain text
14148 #: build/C/man2/wait4.2:140
14149 msgid "4.3BSD."
14150 msgstr "4.3BSD."
14151
14152 #. type: Plain text
14153 #: build/C/man2/wait4.2:147
14154 msgid ""
14155 "SUSv1 included a specification of B<wait3>(); SUSv2 included B<wait3>(), but "
14156 "marked it LEGACY; SUSv3 removed it."
14157 msgstr ""
14158 "SUSv1 には B<wait3>() の規定があった。 SUSv2 には B<wait3>() が含まれていた"
14159 "が、「過去の名残 (LEGACY)」となっていた。 SUSv3 では B<wait3>() は削除され"
14160 "た。"
14161
14162 #. type: Plain text
14163 #: build/C/man2/wait4.2:159
14164 msgid ""
14165 "Including I<E<lt>sys/time.hE<gt>> is not required these days, but increases "
14166 "portability.  (Indeed, I<E<lt>sys/resource.hE<gt>> defines the I<rusage> "
14167 "structure with fields of type I<struct timeval> defined in I<E<lt>sys/time."
14168 "hE<gt>>.)"
14169 msgstr ""
14170 "現在では I<E<lt>sys/time.hE<gt>> をインクルードする必要はないが、インクルード"
14171 "しておくと 移植性を高めることができる (実際には I<E<lt>sys/resource.hE<gt>> "
14172 "で I<rusage> 構造体が定義されているが、そのフィールドで使用されている "
14173 "I<struct timeval> 型は I<E<lt>sys/time.hE<gt>> で定義されている)。"
14174
14175 #. type: Plain text
14176 #: build/C/man2/wait4.2:165
14177 msgid ""
14178 "On Linux, B<wait3>()  is a library function implemented on top of the "
14179 "B<wait4>()  system call."
14180 msgstr ""
14181 "Linux では、 B<wait3>()  はライブラリ関数であり、 B<wait4>()  システムコール"
14182 "を使って実装されている。"
14183
14184 #. type: Plain text
14185 #: build/C/man2/wait4.2:172
14186 msgid ""
14187 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
14188 "B<signal>(7)"
14189 msgstr ""
14190 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
14191 "B<signal>(7)"
14192
14193 #~ msgid "2014-02-22"
14194 #~ msgstr "2014-02-22"
14195
14196 #~ msgid "2013-09-24"
14197 #~ msgstr "2013-09-24"