OSDN Git Service

(split) LDP: Translate several pages
[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: 2013-09-28 04:05+0900\n"
10 "PO-Revision-Date: 2013-10-14 01:45+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 "2009-03-15"
28 msgstr "2009-03-15"
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:775
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:793
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/man2/eventfd.2:266
251 #: build/C/man2/getitimer.2:148 build/C/man3/gsignal.3:95
252 #: build/C/man2/kill.2:121 build/C/man2/killpg.2:111 build/C/man2/pause.2:57
253 #: build/C/man2/prctl.2:965 build/C/man3/profil.3:70 build/C/man3/psignal.3:99
254 #: build/C/man3/raise.3:64 build/C/man2/restart_syscall.2:96
255 #: build/C/man2/rt_sigqueueinfo.2:176 build/C/man2/s390_runtime_instr.2:81
256 #: build/C/man2/sgetmask.2:66 build/C/man2/sigaction.2:677
257 #: build/C/man2/sigaltstack.2:156 build/C/man7/sigevent.7:130
258 #: build/C/man3/siginterrupt.3:87 build/C/man2/signal.2:110
259 #: build/C/man7/signal.7:838 build/C/man2/signalfd.2:307
260 #: build/C/man3/sigpause.3:56 build/C/man2/sigpending.2:64
261 #: build/C/man2/sigprocmask.2:112 build/C/man3/sigqueue.3:114
262 #: build/C/man2/sigreturn.2:60 build/C/man3/sigset.3:173
263 #: build/C/man3/sigsetops.3:131 build/C/man2/sigsuspend.2:84
264 #: build/C/man3/sigvec.3:221 build/C/man3/sigwait.3:80
265 #: build/C/man2/sigwaitinfo.2:133 build/C/man3/sysv_signal.3:60
266 #: build/C/man2/timer_create.2:193 build/C/man2/timer_delete.2:67
267 #: build/C/man2/timer_getoverrun.2:97 build/C/man2/timer_settime.2:207
268 #: build/C/man2/timerfd_create.2:371 build/C/man2/tkill.2:116
269 #: build/C/man2/wait.2:422 build/C/man2/wait4.2:138
270 #, no-wrap
271 msgid "CONFORMING TO"
272 msgstr "準拠"
273
274 #. type: Plain text
275 #: build/C/man3/bsd_signal.3:70
276 msgid ""
277 "4.2BSD, POSIX.1-2001.  POSIX.1-2008 removes the specification of "
278 "B<bsd_signal>(), recommending the use of B<sigaction>(2)  instead."
279 msgstr ""
280 "4.2BSD, POSIX.1-2001.  POSIX.1-2008 では B<bsd_signal>()  の仕様が削除されて"
281 "いる。 代わりに、 B<sigaction>(2)  の使用が推奨されている。"
282
283 #. type: SH
284 #: build/C/man3/bsd_signal.3:70 build/C/man2/eventfd.2:271
285 #: build/C/man2/getitimer.2:158 build/C/man2/kill.2:123
286 #: build/C/man2/killpg.2:115 build/C/man3/raise.3:66
287 #: build/C/man2/restart_syscall.2:98 build/C/man2/rt_sigqueueinfo.2:178
288 #: build/C/man2/s390_runtime_instr.2:84 build/C/man2/sgetmask.2:68
289 #: build/C/man2/sigaction.2:680 build/C/man2/sigaltstack.2:158
290 #: build/C/man2/signal.2:112 build/C/man2/signalfd.2:312
291 #: build/C/man3/sigpause.3:60 build/C/man2/sigpending.2:66
292 #: build/C/man2/sigprocmask.2:114 build/C/man3/sigqueue.3:116
293 #: build/C/man2/sigreturn.2:64 build/C/man3/sigset.3:190
294 #: build/C/man3/sigsetops.3:133 build/C/man2/sigsuspend.2:86
295 #: build/C/man3/sigvec.3:227 build/C/man3/sigwait.3:82
296 #: build/C/man2/sigwaitinfo.2:135 build/C/man3/sysv_signal.3:62
297 #: build/C/man2/timer_create.2:195 build/C/man2/timer_getoverrun.2:99
298 #: build/C/man2/tkill.2:122 build/C/man2/wait.2:424 build/C/man2/wait4.2:147
299 #, no-wrap
300 msgid "NOTES"
301 msgstr "注意"
302
303 #. type: Plain text
304 #: build/C/man3/bsd_signal.3:76
305 msgid ""
306 "Use of B<bsd_signal>()  should be avoided; use B<sigaction>(2)  instead."
307 msgstr ""
308 "B<bsd_signal>()  の使用は避けるべきである。代わりに B<sigaction>(2)  を使うこ"
309 "と。"
310
311 #. type: Plain text
312 #: build/C/man3/bsd_signal.3:87
313 msgid ""
314 "On modern Linux systems, B<bsd_signal>()  and B<signal>(2)  are equivalent.  "
315 "But on older systems, B<signal>(2)  provided unreliable signal semantics; "
316 "see B<signal>(2)  for details."
317 msgstr ""
318 "最近の Linux システムでは、 B<bsd_signal>()  と B<signal>(2)  は等価である。"
319 "しかし、以前のシステムでは、 B<signal>(2)  は信頼性に欠けるシグナル処理方式を"
320 "提供していた。 詳細は B<signal>(2)  を参照。"
321
322 #. type: Plain text
323 #: build/C/man3/bsd_signal.3:94 build/C/man3/sysv_signal.3:87
324 msgid ""
325 "The use of I<sighandler_t> is a GNU extension; this type is defined only if "
326 "the B<_GNU_SOURCE> feature test macro is defined."
327 msgstr ""
328 "I<sighandler_t> を使っているのは GNU による拡張である。 この型は機能検査マク"
329 "ロ B<_GNU_SOURCE> を定義した場合にのみ定義される。"
330
331 #. type: SH
332 #: build/C/man3/bsd_signal.3:94 build/C/man2/eventfd.2:417
333 #: build/C/man2/getitimer.2:239 build/C/man3/gsignal.3:103
334 #: build/C/man2/kill.2:171 build/C/man2/killpg.2:134 build/C/man2/pause.2:59
335 #: build/C/man2/prctl.2:979 build/C/man3/profil.3:81
336 #: build/C/man3/psignal.3:113 build/C/man3/raise.3:77
337 #: build/C/man2/restart_syscall.2:123 build/C/man2/rt_sigqueueinfo.2:188
338 #: build/C/man2/s390_runtime_instr.2:88 build/C/man2/sgetmask.2:80
339 #: build/C/man2/sigaction.2:793 build/C/man2/sigaltstack.2:232
340 #: build/C/man7/sigevent.7:132 build/C/man3/siginterrupt.3:96
341 #: build/C/man2/signal.2:278 build/C/man7/signal.7:850
342 #: build/C/man2/signalfd.2:433 build/C/man3/sigpause.3:98
343 #: build/C/man2/sigpending.2:87 build/C/man2/sigprocmask.2:144
344 #: build/C/man3/sigqueue.3:149 build/C/man2/sigreturn.2:74
345 #: build/C/man3/sigset.3:266 build/C/man3/sigsetops.3:171
346 #: build/C/man2/sigsuspend.2:108 build/C/man3/sigvec.3:252
347 #: build/C/man3/sigwait.3:89 build/C/man2/sigwaitinfo.2:187
348 #: build/C/man3/sysv_signal.3:87 build/C/man2/timer_create.2:399
349 #: build/C/man2/timer_delete.2:69 build/C/man2/timer_getoverrun.2:131
350 #: build/C/man2/timer_settime.2:212 build/C/man2/timerfd_create.2:541
351 #: build/C/man2/tkill.2:131 build/C/man2/wait.2:633 build/C/man2/wait4.2:165
352 #, no-wrap
353 msgid "SEE ALSO"
354 msgstr "関連項目"
355
356 #. type: Plain text
357 #: build/C/man3/bsd_signal.3:99
358 msgid "B<sigaction>(2), B<signal>(2), B<sysv_signal>(3), B<signal>(7)"
359 msgstr "B<sigaction>(2), B<signal>(2), B<sysv_signal>(3), B<signal>(7)"
360
361 #. type: SH
362 #: build/C/man3/bsd_signal.3:99 build/C/man2/eventfd.2:428
363 #: build/C/man2/getitimer.2:246 build/C/man3/gsignal.3:107
364 #: build/C/man2/kill.2:181 build/C/man2/killpg.2:140 build/C/man2/pause.2:64
365 #: build/C/man2/prctl.2:982 build/C/man3/profil.3:86
366 #: build/C/man3/psignal.3:118 build/C/man3/raise.3:84
367 #: build/C/man2/restart_syscall.2:131 build/C/man2/rt_sigqueueinfo.2:196
368 #: build/C/man2/s390_runtime_instr.2:91 build/C/man2/sgetmask.2:83
369 #: build/C/man2/sigaction.2:813 build/C/man2/sigaltstack.2:239
370 #: build/C/man7/sigevent.7:142 build/C/man3/siginterrupt.3:98
371 #: build/C/man2/signal.2:297 build/C/man7/signal.7:884
372 #: build/C/man2/signalfd.2:446 build/C/man3/sigpause.3:106
373 #: build/C/man2/sigpending.2:95 build/C/man2/sigprocmask.2:155
374 #: build/C/man3/sigqueue.3:157 build/C/man2/sigreturn.2:80
375 #: build/C/man3/sigset.3:276 build/C/man3/sigsetops.3:176
376 #: build/C/man2/sigsuspend.2:118 build/C/man3/sigvec.3:262
377 #: build/C/man3/sigwait.3:97 build/C/man2/sigwaitinfo.2:199
378 #: build/C/man3/sysv_signal.3:92 build/C/man2/timer_create.2:414
379 #: build/C/man2/timer_delete.2:75 build/C/man2/timer_getoverrun.2:141
380 #: build/C/man2/timer_settime.2:216 build/C/man2/timerfd_create.2:553
381 #: build/C/man2/tkill.2:136 build/C/man2/wait.2:645 build/C/man2/wait4.2:172
382 #, no-wrap
383 msgid "COLOPHON"
384 msgstr "この文書について"
385
386 #. type: Plain text
387 #: build/C/man3/bsd_signal.3:106 build/C/man2/eventfd.2:435
388 #: build/C/man2/getitimer.2:253 build/C/man3/gsignal.3:114
389 #: build/C/man2/kill.2:188 build/C/man2/killpg.2:147 build/C/man2/pause.2:71
390 #: build/C/man2/prctl.2:989 build/C/man3/profil.3:93
391 #: build/C/man3/psignal.3:125 build/C/man3/raise.3:91
392 #: build/C/man2/restart_syscall.2:138 build/C/man2/rt_sigqueueinfo.2:203
393 #: build/C/man2/s390_runtime_instr.2:98 build/C/man2/sgetmask.2:90
394 #: build/C/man2/sigaction.2:820 build/C/man2/sigaltstack.2:246
395 #: build/C/man7/sigevent.7:149 build/C/man3/siginterrupt.3:105
396 #: build/C/man2/signal.2:304 build/C/man7/signal.7:891
397 #: build/C/man2/signalfd.2:453 build/C/man3/sigpause.3:113
398 #: build/C/man2/sigpending.2:102 build/C/man2/sigprocmask.2:162
399 #: build/C/man3/sigqueue.3:164 build/C/man2/sigreturn.2:87
400 #: build/C/man3/sigset.3:283 build/C/man3/sigsetops.3:183
401 #: build/C/man2/sigsuspend.2:125 build/C/man3/sigvec.3:269
402 #: build/C/man3/sigwait.3:104 build/C/man2/sigwaitinfo.2:206
403 #: build/C/man3/sysv_signal.3:99 build/C/man2/timer_create.2:421
404 #: build/C/man2/timer_delete.2:82 build/C/man2/timer_getoverrun.2:148
405 #: build/C/man2/timer_settime.2:223 build/C/man2/timerfd_create.2:560
406 #: build/C/man2/tkill.2:143 build/C/man2/wait.2:652 build/C/man2/wait4.2:179
407 msgid ""
408 "This page is part of release 3.54 of the Linux I<man-pages> project.  A "
409 "description of the project, and information about reporting bugs, can be "
410 "found at \\%http://www.kernel.org/doc/man-pages/."
411 msgstr ""
412 "この man ページは Linux I<man-pages> プロジェクトのリリース 3.54 の一部\n"
413 "である。プロジェクトの説明とバグ報告に関する情報は\n"
414 "http://www.kernel.org/doc/man-pages/ に書かれている。"
415
416 #. type: TH
417 #: build/C/man2/eventfd.2:22
418 #, no-wrap
419 msgid "EVENTFD"
420 msgstr "EVENTFD"
421
422 #. type: TH
423 #: build/C/man2/eventfd.2:22
424 #, no-wrap
425 msgid "2010-08-30"
426 msgstr "2010-08-30"
427
428 #. type: TH
429 #: build/C/man2/eventfd.2:22 build/C/man2/getitimer.2:12
430 #: build/C/man2/kill.2:44 build/C/man2/killpg.2:42 build/C/man2/pause.2:30
431 #: build/C/man2/prctl.2:52 build/C/man3/profil.3:28
432 #: build/C/man2/restart_syscall.2:33 build/C/man2/rt_sigqueueinfo.2:25
433 #: build/C/man2/sgetmask.2:26 build/C/man2/sigaction.2:47
434 #: build/C/man2/sigaltstack.2:27 build/C/man2/signal.2:36
435 #: build/C/man7/signal.7:46 build/C/man2/signalfd.2:20
436 #: build/C/man3/sigpause.3:25 build/C/man2/sigpending.2:29
437 #: build/C/man2/sigprocmask.2:29 build/C/man3/sigqueue.3:28
438 #: build/C/man2/sigreturn.2:29 build/C/man3/sigset.3:26
439 #: build/C/man3/sigsetops.3:31 build/C/man2/sigsuspend.2:29
440 #: build/C/man3/sigvec.3:26 build/C/man3/sigwait.3:26
441 #: build/C/man2/sigwaitinfo.2:25 build/C/man2/timer_create.2:31
442 #: build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26
443 #: build/C/man2/timer_settime.2:26 build/C/man2/timerfd_create.2:21
444 #: build/C/man2/tkill.2:29 build/C/man2/wait.2:49 build/C/man2/wait4.2:33
445 #, no-wrap
446 msgid "Linux"
447 msgstr "Linux"
448
449 #. type: Plain text
450 #: build/C/man2/eventfd.2:25
451 msgid "eventfd - create a file descriptor for event notification"
452 msgstr "eventfd - イベント通知用のファイルディスクリプタを生成する"
453
454 #. type: Plain text
455 #: build/C/man2/eventfd.2:27
456 msgid "B<#include E<lt>sys/eventfd.hE<gt>>"
457 msgstr "B<#include E<lt>sys/eventfd.hE<gt>>"
458
459 #. type: Plain text
460 #: build/C/man2/eventfd.2:29
461 msgid "B<int eventfd(unsigned int >I<initval>B<, int >I<flags>B<);>"
462 msgstr "B<int eventfd(unsigned int >I<initval>B<, int >I<flags>B<);>"
463
464 #. type: Plain text
465 #: build/C/man2/eventfd.2:39
466 msgid ""
467 "B<eventfd>()  creates an \"eventfd object\" that can be used as an event "
468 "wait/notify mechanism by user-space applications, and by the kernel to "
469 "notify user-space applications of events.  The object contains an unsigned "
470 "64-bit integer (I<uint64_t>)  counter that is maintained by the kernel.  "
471 "This counter is initialized with the value specified in the argument "
472 "I<initval>."
473 msgstr ""
474 "B<eventfd>()  は \"eventfd オブジェクト\" を生成する。 eventfd オブジェクトは"
475 "ユーザ空間アプリケーションがイベント待ち受け/通知用の 仕組みとして使うことが"
476 "できる。また、カーネルがユーザ空間アプリケーションに イベントを通知するために"
477 "も使うことができる。 このオブジェクトには、unsigned の 64 ビット整数 "
478 "(I<uint64_t>)  型のカウンタが含まれており、このカウンタはカーネルにより管理さ"
479 "れる。 このカウンタは I<initval> 引き数で指定された値で初期化される。"
480
481 #. type: Plain text
482 #: build/C/man2/eventfd.2:44
483 msgid ""
484 "The following values may be bitwise ORed in I<flags> to change the behaviour "
485 "of B<eventfd>():"
486 msgstr ""
487 "以下の値のいくつかをビット単位の論理和 (OR) で指定することで、\n"
488 "B<eventfd>() の振舞いを変更することができる。"
489
490 #. type: TP
491 #: build/C/man2/eventfd.2:44
492 #, no-wrap
493 msgid "B<EFD_CLOEXEC> (since Linux 2.6.27)"
494 msgstr "B<EFD_CLOEXEC> (Linux 2.6.27 以降)"
495
496 #. type: Plain text
497 #: build/C/man2/eventfd.2:54 build/C/man2/signalfd.2:95
498 #: build/C/man2/timerfd_create.2:103
499 msgid ""
500 "Set the close-on-exec (B<FD_CLOEXEC>)  flag on the new file descriptor.  See "
501 "the description of the B<O_CLOEXEC> flag in B<open>(2)  for reasons why this "
502 "may be useful."
503 msgstr ""
504 "新しいファイルディスクリプタに対して close-on-exec (B<FD_CLOEXEC>)  フラグを"
505 "セットする。 このフラグが役に立つ理由については、 B<open>(2)  の "
506 "B<O_CLOEXEC> フラグの説明を参照のこと。"
507
508 #. type: TP
509 #: build/C/man2/eventfd.2:54
510 #, no-wrap
511 msgid "B<EFD_NONBLOCK> (since Linux 2.6.27)"
512 msgstr "B<EFD_NONBLOCK> (Linux 2.6.27 以降)"
513
514 #. type: Plain text
515 #: build/C/man2/eventfd.2:62 build/C/man2/signalfd.2:85
516 #: build/C/man2/timerfd_create.2:93
517 msgid ""
518 "Set the B<O_NONBLOCK> file status flag on the new open file description.  "
519 "Using this flag saves extra calls to B<fcntl>(2)  to achieve the same result."
520 msgstr ""
521 "新しく生成されるオープンファイル記述 (open file description) の "
522 "B<O_NONBLOCK> ファイルステータスフラグをセットする。 このフラグを使うこと"
523 "で、 B<O_NONBLOCK> をセットするために B<fcntl>(2)  を追加で呼び出す必要がなく"
524 "なる。"
525
526 #. type: TP
527 #: build/C/man2/eventfd.2:62
528 #, no-wrap
529 msgid "B<EFD_SEMAPHORE> (since Linux 2.6.30)"
530 msgstr "B<EFD_SEMAPHORE> (Linux 2.6.30 以降)"
531
532 #. type: Plain text
533 #: build/C/man2/eventfd.2:66
534 msgid ""
535 "Provide semaphore-like semantics for reads from the new file descriptor.  "
536 "See below."
537 msgstr ""
538 "新しいファイルディスクリプタからの読み出しにおいて、セマフォ風の動作を行"
539 "う。\n"
540 "下記参照。"
541
542 #. type: Plain text
543 #: build/C/man2/eventfd.2:70 build/C/man2/signalfd.2:99
544 msgid ""
545 "In Linux up to version 2.6.26, the I<flags> argument is unused, and must be "
546 "specified as zero."
547 msgstr ""
548 "バージョン 2.6.26 以前の Linux では、 I<flags> 引き数は未使用であり、0 を指定"
549 "しなければならない。"
550
551 #. type: Plain text
552 #: build/C/man2/eventfd.2:76
553 msgid ""
554 "As its return value, B<eventfd>()  returns a new file descriptor that can be "
555 "used to refer to the eventfd object.  The following operations can be "
556 "performed on the file descriptor:"
557 msgstr ""
558 "B<eventfd>()  は eventfd オブジェクトを参照するのに使用できる新しいファイル"
559 "ディスクリプタ を返す。返されたファイルディスクリプタに対しては以下の操作を実"
560 "行できる。"
561
562 #. type: TP
563 #: build/C/man2/eventfd.2:76 build/C/man2/signalfd.2:102
564 #: build/C/man2/timerfd_create.2:211
565 #, no-wrap
566 msgid "B<read>(2)"
567 msgstr "B<read>(2)"
568
569 #. type: Plain text
570 #: build/C/man2/eventfd.2:86
571 msgid ""
572 "Each successful B<read>(2)  returns an 8-byte integer.  A B<read>(2)  will "
573 "fail with the error B<EINVAL> if the size of the supplied buffer is less "
574 "than 8 bytes."
575 msgstr ""
576 "B<read>(2) は成功すると、8 バイトの整数を返す。\n"
577 "渡されたバッファの大きさが 8 バイト未満の場合、\n"
578 "B<read>(2)  はエラー B<EINVAL> で失敗する。"
579
580 #. type: Plain text
581 #: build/C/man2/eventfd.2:91
582 msgid ""
583 "The value returned by B<read>(2)  is in host byte order, i.e., the native "
584 "byte order for integers on the host machine."
585 msgstr ""
586 "B<read>(2) が返す値は、ホストバイトオーダ、つまり\n"
587 "そのホストマシンにおける整数の通常のバイトオーダである。"
588
589 #. type: Plain text
590 #: build/C/man2/eventfd.2:98
591 msgid ""
592 "The semantics of B<read>(2)  depend on whether the eventfd counter currently "
593 "has a nonzero value and whether the B<EFD_SEMAPHORE> flag was specified when "
594 "creating the eventfd file descriptor:"
595 msgstr ""
596 "B<read>(2) の動作は、 eventfd カウンタの現在の値が 0 以外であるかと、\n"
597 "eventfd ファイルディスクリプタを作成する際に B<EFD_SEMAPHORE> フラグが\n"
598 "指定されたか、により変化する。"
599
600 #. type: IP
601 #: build/C/man2/eventfd.2:99 build/C/man2/eventfd.2:106
602 #: build/C/man2/eventfd.2:113 build/C/man2/eventfd.2:158
603 #: build/C/man2/eventfd.2:168 build/C/man2/eventfd.2:178
604 #: build/C/man2/prctl.2:836 build/C/man2/prctl.2:841 build/C/man2/prctl.2:846
605 #: build/C/man2/prctl.2:856 build/C/man3/psignal.3:105
606 #: build/C/man3/psignal.3:109 build/C/man2/sigaction.2:298
607 #: build/C/man2/sigaction.2:313 build/C/man2/sigaction.2:329
608 #: build/C/man2/sigaction.2:344 build/C/man2/sigaction.2:391
609 #: build/C/man2/sigaction.2:427 build/C/man2/signal.2:68
610 #: build/C/man2/signal.2:73 build/C/man2/signal.2:80 build/C/man2/signal.2:224
611 #: build/C/man2/signal.2:228 build/C/man2/signal.2:267
612 #: build/C/man7/signal.7:149 build/C/man7/signal.7:157
613 #: build/C/man7/signal.7:615 build/C/man7/signal.7:617
614 #: build/C/man7/signal.7:638 build/C/man7/signal.7:653
615 #: build/C/man7/signal.7:657 build/C/man7/signal.7:664
616 #: build/C/man7/signal.7:680 build/C/man7/signal.7:686
617 #: build/C/man7/signal.7:693 build/C/man7/signal.7:698
618 #: build/C/man7/signal.7:717 build/C/man7/signal.7:736
619 #: build/C/man7/signal.7:743 build/C/man7/signal.7:752
620 #: build/C/man7/signal.7:760 build/C/man7/signal.7:766
621 #: build/C/man7/signal.7:771 build/C/man7/signal.7:791
622 #: build/C/man7/signal.7:810 build/C/man7/signal.7:813
623 #: build/C/man7/signal.7:816 build/C/man7/signal.7:819
624 #: build/C/man7/signal.7:824 build/C/man7/signal.7:830
625 #: build/C/man7/signal.7:834 build/C/man3/sigwait.3:62
626 #: build/C/man3/sigwait.3:67 build/C/man2/timer_create.2:216
627 #: build/C/man2/timer_create.2:219 build/C/man2/timer_create.2:222
628 #: build/C/man2/timer_create.2:226 build/C/man2/timer_create.2:229
629 #: build/C/man2/timer_create.2:235 build/C/man2/timer_create.2:239
630 #, no-wrap
631 msgid "*"
632 msgstr "*"
633
634 #. type: Plain text
635 #: build/C/man2/eventfd.2:106
636 msgid ""
637 "If B<EFD_SEMAPHORE> was not specified and the eventfd counter has a nonzero "
638 "value, then a B<read>(2)  returns 8 bytes containing that value, and the "
639 "counter's value is reset to zero."
640 msgstr ""
641 "B<EFD_SEMAPHORE> が指定されておらず、eventfd カウンタが 0 以外の値\n"
642 "の場合、 B<read>(2) はカウンタ値を格納した 8 バイトの値を返し、\n"
643 "カウンタ値は 0 にリセットされる。"
644
645 #. type: Plain text
646 #: build/C/man2/eventfd.2:113
647 msgid ""
648 "If B<EFD_SEMAPHORE> was specified and the eventfd counter has a nonzero "
649 "value, then a B<read>(2)  returns 8 bytes containing the value 1, and the "
650 "counter's value is decremented by 1."
651 msgstr ""
652 "B<EFD_SEMAPHORE> が指定されていて eventfd カウンタが 0 以外の値の場合、\n"
653 "B<read>(2) は値 1 の 8 バイト値を返し、カウンタ値は 1 減算される。"
654
655 #. type: Plain text
656 #: build/C/man2/eventfd.2:123
657 msgid ""
658 "If the eventfd counter is zero at the time of the call to B<read>(2), then "
659 "the call either blocks until the counter becomes nonzero (at which time, the "
660 "B<read>(2)  proceeds as described above)  or fails with the error B<EAGAIN> "
661 "if the file descriptor has been made nonblocking."
662 msgstr ""
663 "B<read>(2) を呼び出した時点で eventfd カウンタが 0 の場合、 B<read>(2)\n"
664 "はカウンタが 0 以外になるまで停止 (block) する (0 以外になった時点で\n"
665 "B<read>(2) は上記で述べた通り実行を再開する)、 もしくはファイルディスク\n"
666 "リプタが非停止 (nonblocking) に設定されている場合はエラー B<EAGAIN>で\n"
667 "失敗する。"
668
669 #. type: TP
670 #: build/C/man2/eventfd.2:124
671 #, no-wrap
672 msgid "B<write>(2)"
673 msgstr "B<write>(2)"
674
675 #. type: Plain text
676 #: build/C/man2/eventfd.2:141
677 msgid ""
678 "A B<write>(2)  call adds the 8-byte integer value supplied in its buffer to "
679 "the counter.  The maximum value that may be stored in the counter is the "
680 "largest unsigned 64-bit value minus 1 (i.e., 0xfffffffffffffffe).  If the "
681 "addition would cause the counter's value to exceed the maximum, then the "
682 "B<write>(2)  either blocks until a B<read>(2)  is performed on the file "
683 "descriptor, or fails with the error B<EAGAIN> if the file descriptor has "
684 "been made nonblocking."
685 msgstr ""
686 "B<write>(2)  は、引き数のバッファで渡された 8 バイトの整数値をカウンタに加算"
687 "する。 カウンタに格納可能な最大値は unsigned の 64 ビット整数の最大値から 1 "
688 "を引いた値 (すなわち 0xfffffffffffffffe) である。 加算を行うとカウンタ値が最"
689 "大値を超過する場合には、 そのファイルディスクリプタに対して B<read>(2)  が実"
690 "行されるまで、 B<write>(2)  は停止 (block) する、 もしくはファイルディスクリ"
691 "プタが非停止 (nonblocking)  に設定されている場合はエラー B<EAGAIN> で失敗す"
692 "る。"
693
694 #. type: Plain text
695 #: build/C/man2/eventfd.2:148
696 msgid ""
697 "A B<write>(2)  will fail with the error B<EINVAL> if the size of the "
698 "supplied buffer is less than 8 bytes, or if an attempt is made to write the "
699 "value 0xffffffffffffffff."
700 msgstr ""
701 "渡されたバッファの大きさが 8 バイト未満の場合、もしくは 値 "
702 "0xffffffffffffffff を書き込もうとした場合、 B<write>(2)  はエラー B<EINVAL> "
703 "で失敗する。"
704
705 #. type: TP
706 #: build/C/man2/eventfd.2:148 build/C/man2/signalfd.2:140
707 #: build/C/man2/timerfd_create.2:244
708 #, no-wrap
709 msgid "B<poll>(2), B<select>(2) (and similar)"
710 msgstr "B<poll>(2), B<select>(2) (と同様の操作)"
711
712 #. type: Plain text
713 #: build/C/man2/eventfd.2:157
714 msgid ""
715 "The returned file descriptor supports B<poll>(2)  (and analogously B<epoll>"
716 "(7))  and B<select>(2), as follows:"
717 msgstr ""
718 "返されたファイルディスクリプタは、 B<poll>(2)  (B<epoll>(7)  も同じ) や "
719 "B<select>(2)  をサポートしており、以下のような動作をする。"
720
721 #. type: Plain text
722 #: build/C/man2/eventfd.2:168
723 msgid ""
724 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
725 "B<poll>(2)  B<POLLIN> flag)  if the counter has a value greater than 0."
726 msgstr ""
727 "カウンタが 0 より大きい値の場合、 ファイルディスクリプタは読み出し可能となる "
728 "(B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
729
730 #. type: Plain text
731 #: build/C/man2/eventfd.2:178
732 msgid ""
733 "The file descriptor is writable (the B<select>(2)  I<writefds> argument; the "
734 "B<poll>(2)  B<POLLOUT> flag)  if it is possible to write a value of at least "
735 "\"1\" without blocking."
736 msgstr ""
737 "少なくとも値 \"1\" を、停止 (block) を伴わずに書き込める場合、 ファイルディス"
738 "クリプタは書き込み可能となる (B<select>(2)  の I<writefds> 引き数や B<poll>"
739 "(2)  の B<POLLOUT> フラグ)。"
740
741 #. type: Plain text
742 #: build/C/man2/eventfd.2:198
743 msgid ""
744 "If an overflow of the counter value was detected, then B<select>(2)  "
745 "indicates the file descriptor as being both readable and writable, and "
746 "B<poll>(2)  returns a B<POLLERR> event.  As noted above, B<write>(2)  can "
747 "never overflow the counter.  However an overflow can occur if 2^64 eventfd "
748 "\"signal posts\" were performed by the KAIO subsystem (theoretically "
749 "possible, but practically unlikely).  If an overflow has occurred, then "
750 "B<read>(2)  will return that maximum I<uint64_t> value (i.e., "
751 "0xffffffffffffffff)."
752 msgstr ""
753 "カウンタ値のオーバーフローが検出された場合、 B<select>(2)  はファイルディスク"
754 "リプタは読み出し可能と書き込み可能の両方を通知し、 B<poll>(2)  は B<POLLERR> "
755 "イベントを返す。 上述の通り、 B<write>(2)  でカウンタがオーバーフローすること"
756 "は決してない。 しかしながら、 KAIO サブシステムによって 2^64 回の eventfd "
757 "\"signal posts\" が 実行された場合にはオーバーフローが起こり得る (理論的には"
758 "あり得るが、実用的にはあり得ない)。 オーバーフローが発生した場合、 B<read>"
759 "(2)  は I<uint64_t> の最大値 (すなわち 0xffffffffffffffff) を返す。"
760
761 #. type: Plain text
762 #: build/C/man2/eventfd.2:205
763 msgid ""
764 "The eventfd file descriptor also supports the other file-descriptor "
765 "multiplexing APIs: B<pselect>(2)  and B<ppoll>(2)."
766 msgstr ""
767 "eventfd ファイルディスクリプタは、これ以外のファイルディスクリプタ 多重 API "
768 "である B<pselect>(2) と B<ppoll>(2) もサポートしている。"
769
770 #. type: TP
771 #: build/C/man2/eventfd.2:205 build/C/man2/signalfd.2:160
772 #: build/C/man2/timerfd_create.2:262
773 #, no-wrap
774 msgid "B<close>(2)"
775 msgstr "B<close>(2)"
776
777 #. type: Plain text
778 #: build/C/man2/eventfd.2:210
779 msgid ""
780 "When the file descriptor is no longer required it should be closed.  When "
781 "all file descriptors associated with the same eventfd object have been "
782 "closed, the resources for object are freed by the kernel."
783 msgstr ""
784 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
785 "る。 同じ eventfd オブジェクトに関連付けられたファイルディスクリプタが全て ク"
786 "ローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
787
788 #. type: Plain text
789 #: build/C/man2/eventfd.2:222
790 msgid ""
791 "A copy of the file descriptor created by B<eventfd>()  is inherited by the "
792 "child produced by B<fork>(2).  The duplicate file descriptor is associated "
793 "with the same eventfd object.  File descriptors created by B<eventfd>()  are "
794 "preserved across B<execve>(2), unless the close-on-exec flag has been set."
795 msgstr ""
796 "B<fork>(2) で生成された子プロセスは、 B<eventfd>() で生成されたファイル\n"
797 "ディスクリプタのコピーを継承する。 複製されたファイルディスクリプタは同\n"
798 "じ eventfd オブジェクトに関連付けられる。\n"
799 "close-on-exec フラグが設定されていない場合、 B<execve>(2) の前後で\n"
800 "B<eventfd>() で生成されたファイルディスクリプタは保持される。"
801
802 #. type: Plain text
803 #: build/C/man2/eventfd.2:229
804 msgid ""
805 "On success, B<eventfd>()  returns a new eventfd file descriptor.  On error, "
806 "-1 is returned and I<errno> is set to indicate the error."
807 msgstr ""
808 "成功すると、 B<eventfd>()  は新規の eventfd ファイルディスクリプタを返す。 エ"
809 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
810
811 #. type: TP
812 #: build/C/man2/eventfd.2:230 build/C/man2/getitimer.2:135
813 #: build/C/man2/kill.2:106 build/C/man2/killpg.2:95 build/C/man2/prctl.2:798
814 #: build/C/man2/prctl.2:803 build/C/man2/prctl.2:815 build/C/man2/prctl.2:820
815 #: build/C/man2/prctl.2:829 build/C/man2/prctl.2:869
816 #: build/C/man2/rt_sigqueueinfo.2:141 build/C/man2/s390_runtime_instr.2:66
817 #: build/C/man2/sigaction.2:670 build/C/man2/sigaltstack.2:142
818 #: build/C/man3/siginterrupt.3:84 build/C/man2/signal.2:106
819 #: build/C/man2/signalfd.2:271 build/C/man2/signalfd.2:279
820 #: build/C/man2/sigprocmask.2:107 build/C/man3/sigqueue.3:98
821 #: build/C/man3/sigsetops.3:127 build/C/man3/sigwait.3:75
822 #: build/C/man2/sigwaitinfo.2:129 build/C/man2/timer_create.2:179
823 #: build/C/man2/timer_delete.2:61 build/C/man2/timer_getoverrun.2:91
824 #: build/C/man2/timer_settime.2:191 build/C/man2/timer_settime.2:199
825 #: build/C/man2/timerfd_create.2:305 build/C/man2/timerfd_create.2:313
826 #: build/C/man2/timerfd_create.2:349 build/C/man2/timerfd_create.2:356
827 #: build/C/man2/timerfd_create.2:362 build/C/man2/tkill.2:100
828 #: build/C/man2/wait.2:417
829 #, no-wrap
830 msgid "B<EINVAL>"
831 msgstr "B<EINVAL>"
832
833 #. type: Plain text
834 #: build/C/man2/eventfd.2:234
835 msgid "An unsupported value was specified in I<flags>."
836 msgstr "I<flags> にサポートされていない値が指定された。"
837
838 #. type: TP
839 #: build/C/man2/eventfd.2:234 build/C/man2/signalfd.2:286
840 #: build/C/man2/timerfd_create.2:320
841 #, no-wrap
842 msgid "B<EMFILE>"
843 msgstr "B<EMFILE>"
844
845 #. type: Plain text
846 #: build/C/man2/eventfd.2:237
847 msgid "The per-process limit on open file descriptors has been reached."
848 msgstr ""
849 "オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。"
850
851 #. type: TP
852 #: build/C/man2/eventfd.2:237 build/C/man2/signalfd.2:289
853 #: build/C/man2/timerfd_create.2:323
854 #, no-wrap
855 msgid "B<ENFILE>"
856 msgstr "B<ENFILE>"
857
858 #. type: Plain text
859 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
860 #: build/C/man2/timerfd_create.2:327
861 msgid ""
862 "The system-wide limit on the total number of open files has been reached."
863 msgstr "オープン済みのファイル総数がシステム全体の上限に達していた。"
864
865 #. type: TP
866 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
867 #: build/C/man2/timerfd_create.2:327
868 #, no-wrap
869 msgid "B<ENODEV>"
870 msgstr "B<ENODEV>"
871
872 #. type: Plain text
873 #: build/C/man2/eventfd.2:249 build/C/man2/signalfd.2:296
874 #: build/C/man2/timerfd_create.2:330
875 msgid "Could not mount (internal) anonymous inode device."
876 msgstr "(カーネル内の) 無名 inode デバイスをマウントできなかった。"
877
878 #. type: TP
879 #: build/C/man2/eventfd.2:249 build/C/man2/s390_runtime_instr.2:73
880 #: build/C/man2/sigaltstack.2:147 build/C/man2/signalfd.2:296
881 #: build/C/man2/timer_create.2:187 build/C/man2/timerfd_create.2:330
882 #, no-wrap
883 msgid "B<ENOMEM>"
884 msgstr "B<ENOMEM>"
885
886 #. type: Plain text
887 #: build/C/man2/eventfd.2:253
888 msgid "There was insufficient memory to create a new eventfd file descriptor."
889 msgstr ""
890 "新しい eventfd ファイルディスクリプタを生成するのに十分なメモリがなかった。"
891
892 #. type: SH
893 #: build/C/man2/eventfd.2:253 build/C/man2/prctl.2:960
894 #: build/C/man3/psignal.3:95 build/C/man2/restart_syscall.2:92
895 #: build/C/man2/rt_sigqueueinfo.2:169 build/C/man2/s390_runtime_instr.2:79
896 #: build/C/man2/signalfd.2:299 build/C/man3/sigqueue.3:112
897 #: build/C/man2/timer_create.2:191 build/C/man2/timer_delete.2:65
898 #: build/C/man2/timer_getoverrun.2:95 build/C/man2/timer_settime.2:205
899 #: build/C/man2/timerfd_create.2:368 build/C/man2/tkill.2:111
900 #, no-wrap
901 msgid "VERSIONS"
902 msgstr "バージョン"
903
904 #.  eventfd() is in glibc 2.7, but reportedly does not build
905 #. type: Plain text
906 #: build/C/man2/eventfd.2:266
907 msgid ""
908 "B<eventfd>()  is available on Linux since kernel 2.6.22.  Working support is "
909 "provided in glibc since version 2.8.  The B<eventfd2>()  system call (see "
910 "NOTES) is available on Linux since kernel 2.6.27.  Since version 2.9, the "
911 "glibc B<eventfd>()  wrapper will employ the B<eventfd2>()  system call, if "
912 "it is supported by the kernel."
913 msgstr ""
914 "B<eventfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
915 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<eventfd2>()  "
916 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
917 "る。 バージョン 2.9 以降では、glibc の B<eventfd>()  のラッパー関数は、カーネ"
918 "ルが対応していれば B<eventfd2>()  システムコールを利用する。"
919
920 #. type: Plain text
921 #: build/C/man2/eventfd.2:271
922 msgid "B<eventfd>()  and B<eventfd2>()  are Linux-specific."
923 msgstr "B<eventfd>()  と B<eventfd2>()  は Linux 固有である。"
924
925 #. type: Plain text
926 #: build/C/man2/eventfd.2:279
927 msgid ""
928 "Applications can use an eventfd file descriptor instead of a pipe (see "
929 "B<pipe>(2))  in all cases where a pipe is used simply to signal events.  The "
930 "kernel overhead of an eventfd file descriptor is much lower than that of a "
931 "pipe, and only one file descriptor is required (versus the two required for "
932 "a pipe)."
933 msgstr ""
934 "アプリケーションは、パイプをイベントを通知するためだけに使用している 全ての場"
935 "面において、パイプの代わりに eventfd ファイルディスクリプタを 使用することが"
936 "できる。 eventfd ファイルディスクリプタを使う方が、パイプを使う場合に比べて "
937 "カーネルでのオーバヘッドは比べるとずっと小さく、ファイルディスクリプタも 一つ"
938 "しか必要としない (パイプの場合は二つ必要である)。"
939
940 #.  or eventually syslets/threadlets
941 #. type: Plain text
942 #: build/C/man2/eventfd.2:285
943 msgid ""
944 "When used in the kernel, an eventfd file descriptor can provide a bridge "
945 "from kernel to user space, allowing, for example, functionalities like KAIO "
946 "(kernel AIO)  to signal to a file descriptor that some operation is complete."
947 msgstr ""
948 "カーネル内で使用すると、eventfd ファイルディスクリプタはカーネル空間からユー"
949 "ザ空間へのブリッジ機能を提供することができ、 例えば KAIO (kernel AIO)  のよう"
950 "な機能が、あるファイルディスクリプタに何らかの操作が完了したことを 通知するこ"
951 "とができる。"
952
953 #. type: Plain text
954 #: build/C/man2/eventfd.2:302
955 msgid ""
956 "A key point about an eventfd file descriptor is that it can be monitored "
957 "just like any other file descriptor using B<select>(2), B<poll>(2), or "
958 "B<epoll>(7).  This means that an application can simultaneously monitor the "
959 "readiness of \"traditional\" files and the readiness of other kernel "
960 "mechanisms that support the eventfd interface.  (Without the B<eventfd>()  "
961 "interface, these mechanisms could not be multiplexed via B<select>(2), "
962 "B<poll>(2), or B<epoll>(7).)"
963 msgstr ""
964 "eventfd ファイルディスクリプタの重要な点は、 eventfd ファイルディスクリプタ"
965 "が B<select>(2), B<poll>(2), B<epoll>(7)  を使って他のファイルディスクリプタ"
966 "と全く同様に監視できる点である。 このことは、アプリケーションは「従来の "
967 "(traditional)」 ファイルの状態変化と eventfd インタフェースをサポートする他の"
968 "カーネル機構の状態変化を同時に監視 できることを意味する (B<eventfd>()  インタ"
969 "フェースがない時には、これらのカーネル機構は B<select>(2), B<poll>(2), "
970 "B<epoll>(7)  経由で多重することはできなかった)。"
971
972 #. type: SS
973 #: build/C/man2/eventfd.2:302 build/C/man2/signalfd.2:336
974 #, no-wrap
975 msgid "Underlying Linux system calls"
976 msgstr "下層にある Linux のシステムコール"
977
978 #. type: Plain text
979 #: build/C/man2/eventfd.2:316
980 msgid ""
981 "There are two underlying Linux system calls: B<eventfd>()  and the more "
982 "recent B<eventfd2>().  The former system call does not implement a I<flags> "
983 "argument.  The latter system call implements the I<flags> values described "
984 "above.  The glibc wrapper function will use B<eventfd2>()  where it is "
985 "available."
986 msgstr ""
987 "下層にある Linux システムコールは二種類あり、 B<eventfd>()  と、もっと新しい "
988 "B<eventfd2>()  である。 B<eventfd>()  は I<flags> 引き数を実装していない。 "
989 "B<eventfd2>()  では上記の値の I<flags> が実装されている。 glibc のラッパー関"
990 "数は、 B<eventfd2>()  が利用可能であれば、これを使用する。"
991
992 #. type: SS
993 #: build/C/man2/eventfd.2:316
994 #, no-wrap
995 msgid "Additional glibc features"
996 msgstr "glibc の追加機能"
997
998 #. type: Plain text
999 #: build/C/man2/eventfd.2:320
1000 msgid ""
1001 "The GNU C library defines an additional type, and two functions that attempt "
1002 "to abstract some of the details of reading and writing on an eventfd file "
1003 "descriptor:"
1004 msgstr ""
1005 "GNU C ライブラリは、eventfd ファイルディスクリプタの読み出しと書き込みに を関"
1006 "する詳細のいくつか抽象化するために、一つの型と、二つの関数を追加で 定義してい"
1007 "る。"
1008
1009 #. type: Plain text
1010 #: build/C/man2/eventfd.2:324
1011 #, no-wrap
1012 msgid "typedef uint64_t eventfd_t;\n"
1013 msgstr "typedef uint64_t eventfd_t;\n"
1014
1015 #. type: Plain text
1016 #: build/C/man2/eventfd.2:327
1017 #, no-wrap
1018 msgid ""
1019 "int eventfd_read(int fd, eventfd_t *value);\n"
1020 "int eventfd_write(int fd, eventfd_t value);\n"
1021 msgstr ""
1022 "int eventfd_read(int fd, eventfd_t *value);\n"
1023 "int eventfd_write(int fd, eventfd_t value);\n"
1024
1025 #. type: Plain text
1026 #: build/C/man2/eventfd.2:334
1027 msgid ""
1028 "The functions perform the read and write operations on an eventfd file "
1029 "descriptor, returning 0 if the correct number of bytes was transferred, or "
1030 "-1 otherwise."
1031 msgstr ""
1032 "これらの関数は、eventfd ファイルディスクリプタに対する読み出しと 書き込みの操"
1033 "作を実行し、正しいバイト数が転送された場合には 0 を返し、そうでない場合は -1 "
1034 "を返す。"
1035
1036 #. type: SH
1037 #: build/C/man2/eventfd.2:334 build/C/man2/sigaction.2:790
1038 #: build/C/man2/sigaltstack.2:215 build/C/man2/signalfd.2:360
1039 #: build/C/man3/sigwait.3:86 build/C/man2/timer_create.2:253
1040 #: build/C/man2/timer_getoverrun.2:128 build/C/man2/timer_settime.2:209
1041 #: build/C/man2/timerfd_create.2:379 build/C/man2/wait.2:550
1042 #, no-wrap
1043 msgid "EXAMPLE"
1044 msgstr "例"
1045
1046 #. type: Plain text
1047 #: build/C/man2/eventfd.2:343
1048 msgid ""
1049 "The following program creates an eventfd file descriptor and then forks to "
1050 "create a child process.  While the parent briefly sleeps, the child writes "
1051 "each of the integers supplied in the program's command-line arguments to the "
1052 "eventfd file descriptor.  When the parent has finished sleeping, it reads "
1053 "from the eventfd file descriptor."
1054 msgstr ""
1055 "以下のプログラムは eventfd ファイルディスクリプタを生成し、 その後 fork を実"
1056 "行して子プロセスを生成する。 親プロセスが少しの間 sleep する間に、子プロセス"
1057 "は プログラムのコマンドライン引き数で指定された整数(列)をそれぞれ eventfd "
1058 "ファイルディスクリプタに書き込む。 親プロセスは sleep を完了すると eventfd "
1059 "ファイルディスクリプタから 読み出しを行う。"
1060
1061 #. type: Plain text
1062 #: build/C/man2/eventfd.2:345
1063 msgid "The following shell session shows a sample run of the program:"
1064 msgstr "以下に示すシェルセッションにこのプログラムの使い方を示す。"
1065
1066 #. type: Plain text
1067 #: build/C/man2/eventfd.2:357
1068 #, no-wrap
1069 msgid ""
1070 "$B< ./a.out 1 2 4 7 14>\n"
1071 "Child writing 1 to efd\n"
1072 "Child writing 2 to efd\n"
1073 "Child writing 4 to efd\n"
1074 "Child writing 7 to efd\n"
1075 "Child writing 14 to efd\n"
1076 "Child completed write loop\n"
1077 "Parent about to read\n"
1078 "Parent read 28 (0x1c) from efd\n"
1079 msgstr ""
1080 "$B< ./a.out 1 2 4 7 14>\n"
1081 "Child writing 1 to efd\n"
1082 "Child writing 2 to efd\n"
1083 "Child writing 4 to efd\n"
1084 "Child writing 7 to efd\n"
1085 "Child writing 14 to efd\n"
1086 "Child completed write loop\n"
1087 "Parent about to read\n"
1088 "Parent read 28 (0x1c) from efd\n"
1089
1090 #. type: SS
1091 #: build/C/man2/eventfd.2:359 build/C/man2/signalfd.2:383
1092 #: build/C/man2/timer_create.2:284 build/C/man2/timerfd_create.2:407
1093 #: build/C/man2/wait.2:585
1094 #, no-wrap
1095 msgid "Program source"
1096 msgstr "プログラムのソース"
1097
1098 #. type: Plain text
1099 #: build/C/man2/eventfd.2:367
1100 #, no-wrap
1101 msgid ""
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 msgstr ""
1108 "#include E<lt>sys/eventfd.hE<gt>\n"
1109 "#include E<lt>unistd.hE<gt>\n"
1110 "#include E<lt>stdlib.hE<gt>\n"
1111 "#include E<lt>stdio.hE<gt>\n"
1112 "#include E<lt>stdint.hE<gt>             /* Definition of uint64_t */\n"
1113
1114 #. type: Plain text
1115 #: build/C/man2/eventfd.2:370 build/C/man2/signalfd.2:394
1116 #, no-wrap
1117 msgid ""
1118 "#define handle_error(msg) \\e\n"
1119 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1120 msgstr ""
1121 "#define handle_error(msg) \\e\n"
1122 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1123
1124 #. type: Plain text
1125 #: build/C/man2/eventfd.2:377
1126 #, no-wrap
1127 msgid ""
1128 "int\n"
1129 "main(int argc, char *argv[])\n"
1130 "{\n"
1131 "    int efd, j;\n"
1132 "    uint64_t u;\n"
1133 "    ssize_t s;\n"
1134 msgstr ""
1135 "int\n"
1136 "main(int argc, char *argv[])\n"
1137 "{\n"
1138 "    int efd, j;\n"
1139 "    uint64_t u;\n"
1140 "    ssize_t s;\n"
1141
1142 #. type: Plain text
1143 #: build/C/man2/eventfd.2:382
1144 #, no-wrap
1145 msgid ""
1146 "    if (argc E<lt> 2) {\n"
1147 "        fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n"
1148 "        exit(EXIT_FAILURE);\n"
1149 "    }\n"
1150 msgstr ""
1151 "    if (argc E<lt> 2) {\n"
1152 "        fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n"
1153 "        exit(EXIT_FAILURE);\n"
1154 "    }\n"
1155
1156 #. type: Plain text
1157 #: build/C/man2/eventfd.2:386
1158 #, no-wrap
1159 msgid ""
1160 "    efd = eventfd(0, 0);\n"
1161 "    if (efd == -1)\n"
1162 "        handle_error(\"eventfd\");\n"
1163 msgstr ""
1164 "    efd = eventfd(0, 0);\n"
1165 "    if (efd == -1)\n"
1166 "        handle_error(\"eventfd\");\n"
1167
1168 #. type: Plain text
1169 #: build/C/man2/eventfd.2:398
1170 #, no-wrap
1171 msgid ""
1172 "    switch (fork()) {\n"
1173 "    case 0:\n"
1174 "        for (j = 1; j E<lt> argc; j++) {\n"
1175 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1176 "            u = strtoull(argv[j], NULL, 0);\n"
1177 "                    /* strtoull() allows various bases */\n"
1178 "            s = write(efd, &u, sizeof(uint64_t));\n"
1179 "            if (s != sizeof(uint64_t))\n"
1180 "                handle_error(\"write\");\n"
1181 "        }\n"
1182 "        printf(\"Child completed write loop\\en\");\n"
1183 msgstr ""
1184 "    switch (fork()) {\n"
1185 "    case 0:\n"
1186 "        for (j = 1; j E<lt> argc; j++) {\n"
1187 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1188 "            u = strtoull(argv[j], NULL, 0);\n"
1189 "                    /* strtoull() allows various bases */\n"
1190 "            s = write(efd, &u, sizeof(uint64_t));\n"
1191 "            if (s != sizeof(uint64_t))\n"
1192 "                handle_error(\"write\");\n"
1193 "        }\n"
1194 "        printf(\"Child completed write loop\\en\");\n"
1195
1196 #. type: Plain text
1197 #: build/C/man2/eventfd.2:400
1198 #, no-wrap
1199 msgid "        exit(EXIT_SUCCESS);\n"
1200 msgstr "        exit(EXIT_SUCCESS);\n"
1201
1202 #. type: Plain text
1203 #: build/C/man2/eventfd.2:403
1204 #, no-wrap
1205 msgid ""
1206 "    default:\n"
1207 "        sleep(2);\n"
1208 msgstr ""
1209 "    default:\n"
1210 "        sleep(2);\n"
1211
1212 #. type: Plain text
1213 #: build/C/man2/eventfd.2:411
1214 #, no-wrap
1215 msgid ""
1216 "        printf(\"Parent about to read\\en\");\n"
1217 "        s = read(efd, &u, sizeof(uint64_t));\n"
1218 "        if (s != sizeof(uint64_t))\n"
1219 "            handle_error(\"read\");\n"
1220 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1221 "                (unsigned long long) u, (unsigned long long) u);\n"
1222 "        exit(EXIT_SUCCESS);\n"
1223 msgstr ""
1224 "        printf(\"Parent about to read\\en\");\n"
1225 "        s = read(efd, &u, sizeof(uint64_t));\n"
1226 "        if (s != sizeof(uint64_t))\n"
1227 "            handle_error(\"read\");\n"
1228 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1229 "                (unsigned long long) u, (unsigned long long) u);\n"
1230 "        exit(EXIT_SUCCESS);\n"
1231
1232 #. type: Plain text
1233 #: build/C/man2/eventfd.2:416
1234 #, no-wrap
1235 msgid ""
1236 "    case -1:\n"
1237 "        handle_error(\"fork\");\n"
1238 "    }\n"
1239 "}\n"
1240 msgstr ""
1241 "    case -1:\n"
1242 "        handle_error(\"fork\");\n"
1243 "    }\n"
1244 "}\n"
1245
1246 #. type: Plain text
1247 #: build/C/man2/eventfd.2:428
1248 msgid ""
1249 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), B<signalfd>"
1250 "(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), B<sem_overview>(7)"
1251 msgstr ""
1252 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), B<signalfd>"
1253 "(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), B<sem_overview>(7)"
1254
1255 #. type: TH
1256 #: build/C/man2/getitimer.2:12
1257 #, no-wrap
1258 msgid "GETITIMER"
1259 msgstr "GETITIMER"
1260
1261 #. type: TH
1262 #: build/C/man2/getitimer.2:12
1263 #, no-wrap
1264 msgid "2012-10-01"
1265 msgstr "2012-10-01"
1266
1267 #. type: Plain text
1268 #: build/C/man2/getitimer.2:15
1269 msgid "getitimer, setitimer - get or set value of an interval timer"
1270 msgstr "getitimer, setitimer - インターバル・タイマーの値を取得または設定する"
1271
1272 #. type: Plain text
1273 #: build/C/man2/getitimer.2:18
1274 #, no-wrap
1275 msgid "B<#include E<lt>sys/time.hE<gt>>\n"
1276 msgstr "B<#include E<lt>sys/time.hE<gt>>\n"
1277
1278 #. type: Plain text
1279 #: build/C/man2/getitimer.2:20
1280 #, no-wrap
1281 msgid "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1282 msgstr "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1283
1284 #. type: Plain text
1285 #: build/C/man2/getitimer.2:23
1286 #, no-wrap
1287 msgid ""
1288 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1289 "B<              struct itimerval *>I<old_value>B<);>\n"
1290 msgstr ""
1291 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1292 "B<              struct itimerval *>I<old_value>B<);>\n"
1293
1294 #. type: Plain text
1295 #: build/C/man2/getitimer.2:29
1296 msgid ""
1297 "The system provides each process with three interval timers, each "
1298 "decrementing in a distinct time domain.  When any timer expires, a signal is "
1299 "sent to the process, and the timer (potentially) restarts."
1300 msgstr ""
1301 "システムは 1 個のプロセスにつき 3 個のインターバル・タイマーを提供する。 それ"
1302 "ぞれのタイマーは別々の時間領域で減少する。 どのタイマーも満了するとプロセスに"
1303 "シグナルが送られ、 タイマーは (設定によっては) 再び開始される。"
1304
1305 #. type: TP
1306 #: build/C/man2/getitimer.2:29
1307 #, no-wrap
1308 msgid "B<ITIMER_REAL>"
1309 msgstr "B<ITIMER_REAL>"
1310
1311 #. type: Plain text
1312 #: build/C/man2/getitimer.2:34
1313 msgid "decrements in real time, and delivers B<SIGALRM> upon expiration."
1314 msgstr "実時間 (real time) で減少し、満了すると B<SIGALRM> が送られる。"
1315
1316 #. type: TP
1317 #: build/C/man2/getitimer.2:34
1318 #, no-wrap
1319 msgid "B<ITIMER_VIRTUAL>"
1320 msgstr "B<ITIMER_VIRTUAL>"
1321
1322 #. type: Plain text
1323 #: build/C/man2/getitimer.2:39
1324 msgid ""
1325 "decrements only when the process is executing, and delivers B<SIGVTALRM> "
1326 "upon expiration."
1327 msgstr ""
1328 "プロセスが実行されている間のみ減少し、満了すると B<SIGVTALRM> が送られる。"
1329
1330 #. type: TP
1331 #: build/C/man2/getitimer.2:39
1332 #, no-wrap
1333 msgid "B<ITIMER_PROF>"
1334 msgstr "B<ITIMER_PROF>"
1335
1336 #. type: Plain text
1337 #: build/C/man2/getitimer.2:49
1338 msgid ""
1339 "decrements both when the process executes and when the system is executing "
1340 "on behalf of the process.  Coupled with B<ITIMER_VIRTUAL>, this timer is "
1341 "usually used to profile the time spent by the application in user and kernel "
1342 "space.  B<SIGPROF> is delivered upon expiration."
1343 msgstr ""
1344 "プロセスが実行されていて、 かつシステムがそのプロセスのために処理を行なってい"
1345 "る間に減少する。 多くの場合、このタイマーは B<ITIMER_VIRTUAL> と組み合わされ"
1346 "て、アプリケーションがカーネル空間とユーザー空間で どれだけの時間を過ごしたか"
1347 "をプロファイルするのに使用される。 満了すると B<SIGPROF> が送られる。"
1348
1349 #. type: Plain text
1350 #: build/C/man2/getitimer.2:51
1351 msgid "Timer values are defined by the following structures:"
1352 msgstr "タイマーの値は以下の構造体によって定義される:"
1353
1354 #. type: Plain text
1355 #: build/C/man2/getitimer.2:59
1356 #, no-wrap
1357 msgid ""
1358 "struct itimerval {\n"
1359 "    struct timeval it_interval; /* next value */\n"
1360 "    struct timeval it_value;    /* current value */\n"
1361 "};\n"
1362 msgstr ""
1363 "struct itimerval {\n"
1364 "    struct timeval it_interval; /* next value */\n"
1365 "    struct timeval it_value;    /* current value */\n"
1366 "};\n"
1367
1368 #. type: Plain text
1369 #: build/C/man2/getitimer.2:64
1370 #, no-wrap
1371 msgid ""
1372 "struct timeval {\n"
1373 "    time_t      tv_sec;         /* seconds */\n"
1374 "    suseconds_t tv_usec;        /* microseconds */\n"
1375 "};\n"
1376 msgstr ""
1377 "struct timeval {\n"
1378 "    time_t      tv_sec;         /* seconds */\n"
1379 "    suseconds_t tv_usec;        /* microseconds */\n"
1380 "};\n"
1381
1382 #. type: Plain text
1383 #: build/C/man2/getitimer.2:86
1384 msgid ""
1385 "The function B<getitimer>()  fills the structure pointed to by I<curr_value> "
1386 "with the current setting for the timer specified by I<which> (one of "
1387 "B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>).  The element "
1388 "I<it_value> is set to the amount of time remaining on the timer, or zero if "
1389 "the timer is disabled.  Similarly, I<it_interval> is set to the reset value."
1390 msgstr ""
1391 "B<getitimer>()  関数は、 I<which> で指定されたタイマー (B<ITIMER_REAL>, "
1392 "B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれか) の現在の設定を、 I<curr_value> で"
1393 "指定された構造体に格納する。 I<it_value> 要素にはタイマーの残り時間が設定され"
1394 "る。タイマーがオフの場合は ゼロが設定される。同様に I<it_interval> には初期値"
1395 "が設定される。"
1396
1397 #. type: Plain text
1398 #: build/C/man2/getitimer.2:94
1399 msgid ""
1400 "The function B<setitimer>()  sets the specified timer to the value in "
1401 "I<new_value>.  If I<old_value> is non-NULL, the old value of the timer is "
1402 "stored there."
1403 msgstr ""
1404 "B<setitimer>()  関数は指定されたタイマーに I<new_value> の値を設定する。 "
1405 "I<old_value> が NULL 以外の場合、タイマーの古い値が I<old_value> に格納され"
1406 "る。"
1407
1408 #. type: Plain text
1409 #: build/C/man2/getitimer.2:104
1410 msgid ""
1411 "Timers decrement from I<it_value> to zero, generate a signal, and reset to "
1412 "I<it_interval>.  A timer which is set to zero (I<it_value> is zero or the "
1413 "timer expires and I<it_interval> is zero) stops."
1414 msgstr ""
1415 "タイマーは I<it_value> からゼロへ向けて減っていき、シグナルを生成し、 "
1416 "I<it_interval> に初期化される。 タイマーがゼロに設定された場合 (I<it_value> "
1417 "がゼロか、タイマーが満了した時に I<it_interval> がゼロの場合) は停止する。"
1418
1419 #. type: Plain text
1420 #: build/C/man2/getitimer.2:110
1421 msgid ""
1422 "Both I<tv_sec> and I<tv_usec> are significant in determining the duration of "
1423 "a timer."
1424 msgstr "タイマーの期間は I<tv_sec> と I<tv_usec> の両方により決定される。"
1425
1426 #. type: Plain text
1427 #: build/C/man2/getitimer.2:122
1428 msgid ""
1429 "Timers will never expire before the requested time, but may expire some "
1430 "(short) time afterward, which depends on the system timer resolution and on "
1431 "the system load; see B<time>(7).  (But see BUGS below.)  Upon expiration, a "
1432 "signal will be generated and the timer reset.  If the timer expires while "
1433 "the process is active (always true for B<ITIMER_VIRTUAL>)  the signal will "
1434 "be delivered immediately when generated.  Otherwise the delivery will be "
1435 "offset by a small time dependent on the system loading."
1436 msgstr ""
1437 "要求した時間がくる前にタイマーが満了することはないが、 逆にある (短い) 時間だ"
1438 "け満了が遅れることはある。 どれだけ遅れるかはシステムの時間分解能とシステムの"
1439 "負荷に依存する (B<time>(7)  参照; 但し、バグの項も参照のこと)。 タイマーが満"
1440 "了するとシグナルが生成され、タイマーは初期化される。 プロセスがアクティブな"
1441 "時 (B<ITIMER_VIRTUAL> の場合には常にそうである) にタイマーが満了した場合、生"
1442 "成されたシグナルは すぐに配送される。それ以外の場合は、システムの負荷により少"
1443 "しの時間だけ 遅れて配送される。"
1444
1445 #. type: Plain text
1446 #: build/C/man2/getitimer.2:127 build/C/man2/killpg.2:94
1447 #: build/C/man2/tkill.2:99
1448 msgid ""
1449 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
1450 "appropriately."
1451 msgstr ""
1452 "成功した場合、0 が返される。エラーが発生した場合、-1 が返され、 I<errno> が適"
1453 "切に設定される。"
1454
1455 #. type: TP
1456 #: build/C/man2/getitimer.2:128 build/C/man2/prctl.2:794
1457 #: build/C/man2/sigaction.2:666 build/C/man2/sigaltstack.2:138
1458 #: build/C/man2/sigpending.2:60 build/C/man2/sigprocmask.2:100
1459 #: build/C/man2/sigsuspend.2:77 build/C/man2/timer_settime.2:184
1460 #: build/C/man2/timerfd_create.2:342
1461 #, no-wrap
1462 msgid "B<EFAULT>"
1463 msgstr "B<EFAULT>"
1464
1465 #. type: Plain text
1466 #: build/C/man2/getitimer.2:135 build/C/man2/timerfd_create.2:349
1467 msgid "I<new_value>, I<old_value>, or I<curr_value> is not valid a pointer."
1468 msgstr "I<new_value>, I<old_value>, I<curr_value> が有効なポインタではない。"
1469
1470 #. type: Plain text
1471 #: build/C/man2/getitimer.2:148
1472 msgid ""
1473 "I<which> is not one of B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>; "
1474 "or (since Linux 2.6.22) one of the I<tv_usec> fields in the structure "
1475 "pointed to by I<new_value> contains a value outside the range 0 to 999999."
1476 msgstr ""
1477 "I<which> が B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれでもな"
1478 "い。 または (Linux 2.6.22 以降で)  I<new_value> で指定された構造体の "
1479 "I<tv_usec> フィールドの一つが 0 以上 999999 以下の範囲に入らない値である。"
1480
1481 #. type: Plain text
1482 #: build/C/man2/getitimer.2:158
1483 msgid ""
1484 "POSIX.1-2001, SVr4, 4.4BSD (this call first appeared in 4.2BSD).  "
1485 "POSIX.1-2008 marks B<getitimer>()  and B<setitimer>()  obsolete, "
1486 "recommending the use of the POSIX timers API (B<timer_gettime>(2), "
1487 "B<timer_settime>(2), etc.) instead."
1488 msgstr ""
1489 "POSIX.1-2001, SVr4, 4.4BSD (このコールは 4.2BSD で始めて現われた).  "
1490 "POSIX.1-2008 では、 B<getitimer>()  と B<setitimer>()  は廃止予定とされてお"
1491 "り、 代わりに POSIX タイマー API (B<timer_gettime>(2), B<timer_settime>(2)  "
1492 "など) を使うことが推奨されている。"
1493
1494 #. type: Plain text
1495 #: build/C/man2/getitimer.2:164
1496 msgid ""
1497 "A child created via B<fork>(2)  does not inherit its parent's interval "
1498 "timers.  Interval timers are preserved across an B<execve>(2)."
1499 msgstr ""
1500 "B<fork>(2)  で作成された子プロセスは、 親プロセスのインターバル・タイマーを継"
1501 "承しない。 B<execve>(2)  の前後ではインターバル・タイマーは保存される。"
1502
1503 #. type: Plain text
1504 #: build/C/man2/getitimer.2:174
1505 msgid ""
1506 "POSIX.1 leaves the interaction between B<setitimer>()  and the three "
1507 "interfaces B<alarm>(2), B<sleep>(3), and B<usleep>(3)  unspecified."
1508 msgstr ""
1509 "POSIX.1 では、 B<setitimer>()  と、 B<alarm>(2), B<sleep>(3), B<usleep>(3)  "
1510 "という 3 つのインタフェースとの相互の影響については規定していない。"
1511
1512 #. type: Plain text
1513 #: build/C/man2/getitimer.2:176
1514 msgid "The standards are silent on the meaning of the call:"
1515 msgstr "標準では、次の呼び出しの意味については規定されていない。"
1516
1517 #. type: Plain text
1518 #: build/C/man2/getitimer.2:178
1519 #, no-wrap
1520 msgid "    setitimer(which, NULL, &old_value);\n"
1521 msgstr "    setitimer(which, NULL, &old_value);\n"
1522
1523 #. type: Plain text
1524 #: build/C/man2/getitimer.2:181
1525 msgid ""
1526 "Many systems (Solaris, the BSDs, and perhaps others)  treat this as "
1527 "equivalent to:"
1528 msgstr ""
1529 "(Solaris, BSD 系やおそらく他のシステムもそうだが) 多くのシステムでは、\n"
1530 "この呼び出しは以下と等価である。"
1531
1532 #. type: Plain text
1533 #: build/C/man2/getitimer.2:183
1534 #, no-wrap
1535 msgid "    getitimer(which, &old_value);\n"
1536 msgstr "    getitimer(which, &old_value);\n"
1537
1538 #. type: Plain text
1539 #: build/C/man2/getitimer.2:189
1540 msgid ""
1541 "In Linux, this is treated as being equivalent to a call in which the "
1542 "I<new_value> fields are zero; that is, the timer is disabled.  I<Don't use "
1543 "this Linux misfeature>: it is nonportable and unnecessary."
1544 msgstr ""
1545 "Linux では、この呼び出しは I<new_value> フィールドが 0 の呼び出しと等価なもの"
1546 "と扱われる。 つまり、タイマーが無効になる。 I<Linux のこの間違った機能を使用"
1547 "しないこと>。移植性もなく、不必要な機能である。"
1548
1549 #. type: SH
1550 #: build/C/man2/getitimer.2:189 build/C/man2/kill.2:161
1551 #: build/C/man3/profil.3:72 build/C/man3/psignal.3:101
1552 #: build/C/man2/sigaction.2:781 build/C/man2/signalfd.2:352
1553 #: build/C/man2/sigpending.2:81 build/C/man3/sigset.3:232
1554 #: build/C/man2/timer_getoverrun.2:115 build/C/man2/timerfd_create.2:373
1555 #: build/C/man2/wait.2:535
1556 #, no-wrap
1557 msgid "BUGS"
1558 msgstr "バグ"
1559
1560 #. type: Plain text
1561 #: build/C/man2/getitimer.2:198
1562 msgid ""
1563 "The generation and delivery of a signal are distinct, and only one instance "
1564 "of each of the signals listed above may be pending for a process.  Under "
1565 "very heavy loading, an B<ITIMER_REAL> timer may expire before the signal "
1566 "from a previous expiration has been delivered.  The second signal in such an "
1567 "event will be lost."
1568 msgstr ""
1569 "シグナルの生成と配送は別個のものであり、 前述のシグナルのそれぞれについて一つ"
1570 "だけがプロセスのために 待機する。 非常に重い負荷の下では、 B<ITIMER_REAL> タ"
1571 "イマーでは、時間切れにより生成された一つ前のシグナルが配送される前に、 次の時"
1572 "間切れが起こる場合がある。 そのような場合、 2 個めのイベントに対するシグナル"
1573 "は失われてしまう。"
1574
1575 #. type: Plain text
1576 #: build/C/man2/getitimer.2:213
1577 msgid ""
1578 "On Linux kernels before 2.6.16, timer values are represented in jiffies.  If "
1579 "a request is made set a timer with a value whose jiffies representation "
1580 "exceeds B<MAX_SEC_IN_JIFFIES> (defined in I<include/linux/jiffies.h>), then "
1581 "the timer is silently truncated to this ceiling value.  On Linux/i386 "
1582 "(where, since Linux 2.6.13, the default jiffy is 0.004 seconds), this means "
1583 "that the ceiling value for a timer is approximately 99.42 days.  Since Linux "
1584 "2.6.16, the kernel uses a different internal representation for times, and "
1585 "this ceiling is removed."
1586 msgstr ""
1587 "バージョン 2.6.16 より前の Linux カーネルでは、 タイマーの値は jiffy で表現さ"
1588 "れる。 要求が jiffy 表現で (I<include/linux/jiffies.h> で定義されている)  "
1589 "B<MAX_SEC_IN_JIFFIES> を越える値をタイマーに設定しようとするものの場合、 タイ"
1590 "マーは暗黙にこの上限値に切り詰められる。 Linux/i386 の場合 (Linux 2.6.13 以降"
1591 "では jiffy は 0.004 秒) の場合、 これはタイマーの上限値がおよそ 99.42 日にな"
1592 "ることを意味する。 Linux 2.6.16 以降では、カーネルは時間に関する内部表現とし"
1593 "て 異なる表現を使うようになっており、この上限はなくなった。"
1594
1595 #.  4 Jul 2005: It looks like this bug may remain in 2.4.x.
1596 #.      http://lkml.org/lkml/2005/7/1/165
1597 #. type: Plain text
1598 #: build/C/man2/getitimer.2:220
1599 msgid ""
1600 "On certain systems (including i386), Linux kernels before version 2.6.12 "
1601 "have a bug which will produce premature timer expirations of up to one jiffy "
1602 "under some circumstances.  This bug is fixed in kernel 2.6.12."
1603 msgstr ""
1604 "(i386 を含む) いくつかのシステムでは、 バージョン 2.6.12 以前の Linux カーネ"
1605 "ルは ある種の状況では 1 jiffy 早くタイマーが終了してしまうというバグがあっ"
1606 "た。 このバグはカーネル 2.6.12 で修正された。"
1607
1608 #.  Bugzilla report 25 Apr 2006:
1609 #.  http://bugzilla.kernel.org/show_bug.cgi?id=6443
1610 #.  "setitimer() should reject noncanonical arguments"
1611 #. type: Plain text
1612 #: build/C/man2/getitimer.2:239
1613 msgid ""
1614 "POSIX.1-2001 says that B<setitimer>()  should fail if a I<tv_usec> value is "
1615 "specified that is outside of the range 0 to 999999.  However, in kernels up "
1616 "to and including 2.6.21, Linux does not give an error, but instead silently "
1617 "adjusts the corresponding seconds value for the timer.  From kernel 2.6.22 "
1618 "onward, this nonconformance has been repaired: an improper I<tv_usec> value "
1619 "results in an B<EINVAL> error."
1620 msgstr ""
1621 "POSIX.1-2001 では B<setitimer>()  は I<tv_usec> の値が 0 から 999999 の範囲外"
1622 "である場合には失敗するべきだとしている。 しかし、2.6.21 以前のカーネルの "
1623 "Linux ではエラーにならず、 対応する秒数の分だけそのタイマーの秒の値が暗黙に調"
1624 "整される。 カーネル 2.6.22 以降では、この標準非準拠の動作は修正され、 "
1625 "I<tv_usec> の値が不適切な場合には B<EINVAL> エラーとなる。"
1626
1627 #. type: Plain text
1628 #: build/C/man2/getitimer.2:246
1629 msgid ""
1630 "B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
1631 "B<timerfd_create>(2), B<time>(7)"
1632 msgstr ""
1633 "B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
1634 "B<timerfd_create>(2), B<time>(7)"
1635
1636 #. type: TH
1637 #: build/C/man3/gsignal.3:27
1638 #, no-wrap
1639 msgid "GSIGNAL"
1640 msgstr "GSIGNAL"
1641
1642 #. type: TH
1643 #: build/C/man3/gsignal.3:27 build/C/man3/profil.3:28
1644 #, no-wrap
1645 msgid "2007-07-26"
1646 msgstr "2007-07-26"
1647
1648 #. type: Plain text
1649 #: build/C/man3/gsignal.3:30
1650 msgid "gsignal, ssignal - software signal facility"
1651 msgstr "gsignal, ssignal - ソフトウェア・シグナル機能"
1652
1653 #. type: Plain text
1654 #: build/C/man3/gsignal.3:33 build/C/man2/kill.2:52 build/C/man3/psignal.3:36
1655 #: build/C/man3/raise.3:35 build/C/man2/sigaction.2:53
1656 #: build/C/man3/siginterrupt.3:37 build/C/man3/sigpause.3:31
1657 #: build/C/man3/sigwait.3:32 build/C/man2/sigwaitinfo.2:31
1658 #, no-wrap
1659 msgid "B<#include E<lt>signal.hE<gt>>\n"
1660 msgstr "B<#include E<lt>signal.hE<gt>>\n"
1661
1662 #. type: Plain text
1663 #: build/C/man3/gsignal.3:35
1664 #, no-wrap
1665 msgid "B<typedef void (*sighandler_t)(int);>\n"
1666 msgstr "B<typedef void (*sighandler_t)(int);>\n"
1667
1668 #. type: Plain text
1669 #: build/C/man3/gsignal.3:37
1670 #, no-wrap
1671 msgid "B<int gsignal(int >I<signum>B<);>\n"
1672 msgstr "B<int gsignal(int >I<signum>B<);>\n"
1673
1674 #. type: Plain text
1675 #: build/C/man3/gsignal.3:39
1676 #, no-wrap
1677 msgid "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
1678 msgstr "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
1679
1680 #. type: Plain text
1681 #: build/C/man3/gsignal.3:44 build/C/man2/kill.2:59 build/C/man2/killpg.2:53
1682 #: build/C/man3/profil.3:42 build/C/man3/psignal.3:46
1683 #: build/C/man2/sigaction.2:61 build/C/man2/sigaltstack.2:38
1684 #: build/C/man3/siginterrupt.3:44 build/C/man2/sigpending.2:40
1685 #: build/C/man2/sigprocmask.2:41 build/C/man3/sigqueue.3:39
1686 #: build/C/man3/sigset.3:45 build/C/man3/sigsetops.3:51
1687 #: build/C/man2/sigsuspend.2:40 build/C/man3/sigvec.3:45
1688 #: build/C/man3/sigwait.3:39 build/C/man2/sigwaitinfo.2:41
1689 #: build/C/man2/timer_create.2:48 build/C/man2/timer_delete.2:41
1690 #: build/C/man2/timer_getoverrun.2:41 build/C/man2/timer_settime.2:45
1691 #: build/C/man2/wait.2:69 build/C/man2/wait4.2:53
1692 msgid ""
1693 "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
1694 msgstr "glibc 向けの機能検査マクロの要件 (B<feature_test_macros>(7)  参照):"
1695
1696 #. type: Plain text
1697 #: build/C/man3/gsignal.3:49
1698 msgid "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
1699 msgstr "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
1700
1701 #. type: Plain text
1702 #: build/C/man3/gsignal.3:57
1703 msgid ""
1704 "Don't use these functions under Linux.  Due to a historical mistake, under "
1705 "Linux these functions are aliases for B<raise>(3)  and B<signal>(2), "
1706 "respectively."
1707 msgstr ""
1708 "Linux ではこれらの関数を使用しないこと。 過去に間違いがあり、Linux では "
1709 "B<gsignal>()  と B<ssignal>()  はそれぞれ B<raise>(3)  と B<signal>(2)  の別"
1710 "名になっている。"
1711
1712 #. type: Plain text
1713 #: build/C/man3/gsignal.3:95
1714 msgid ""
1715 "Elsewhere, on System V-like systems, these functions implement software "
1716 "signaling, entirely independent of the classical B<signal>(2)  and B<kill>"
1717 "(2)  functions.  The function B<ssignal>()  defines the action to take when "
1718 "the software signal with number I<signum> is raised using the function "
1719 "B<gsignal>(), and returns the previous such action or B<SIG_DFL>.  The "
1720 "function B<gsignal>()  does the following: if no action (or the action "
1721 "B<SIG_DFL>)  was specified for I<signum>, then it does nothing and returns "
1722 "0.  If the action B<SIG_IGN> was specified for I<signum>, then it does "
1723 "nothing and returns 1.  Otherwise, it resets the action to B<SIG_DFL> and "
1724 "calls the action function with argument I<signum>, and returns the value "
1725 "returned by that function.  The range of possible values I<signum> varies "
1726 "(often 1-15 or 1-17)."
1727 msgstr ""
1728 "一方、System V 風のシステムでは、これらの関数で、 従来の B<signal>(2)  や "
1729 "B<kill>(2)  の関数群とは完全に独立な、 ソフトウェア・シグナリングを実現してい"
1730 "る。 B<ssignal>()  関数は、番号 I<signum> のソフトウェア・シグナルが "
1731 "B<gsignal>()  関数を使って発生された時にとるべきアクションを定義する。 "
1732 "B<gsignal>()  の返り値は、一つ前に指定されていたアクション、もしくは "
1733 "B<SIG_DFL> である。 B<gsignal>()  は以下のような動作を行う: I<signum> に対し"
1734 "てアクションが指定されていないか、アクション B<SIG_DFL> が指定されていた場"
1735 "合、何もせずに 0 を返す。 I<signum> に対して アクション B<SIG_IGN> が指定され"
1736 "ていた場合、何もせずに 1 を返す。 それ以外の場合、アクションを B<SIG_DFL> に"
1737 "リセットし、引き数に I<signum> を指定してアクション関数を呼び出して、アクショ"
1738 "ン関数の返り値を返す。 I<signum> がとり得る値の範囲は実装により異なる (多くの"
1739 "場合 1〜15 か 1〜17 である)。"
1740
1741 #. type: Plain text
1742 #: build/C/man3/gsignal.3:103
1743 msgid ""
1744 "These functions are available under AIX, DG/UX, HP-UX, SCO, Solaris, Tru64.  "
1745 "They are called obsolete under most of these systems, and are broken under "
1746 "Linux libc and glibc.  Some systems also have B<gsignal_r>()  and "
1747 "B<ssignal_r>()."
1748 msgstr ""
1749 "これらの関数は、AIX, DG/UX, HP-UX, SCO, Solaris, Tru64 で使用可能である。 こ"
1750 "れらのシステムのほとんどで廃止されたことになっており、 Linux の libc および "
1751 "glibc では正しく実装されていない。 B<gsignal_r>()  と B<ssignal_r>()  が実装"
1752 "されているシステムもある。"
1753
1754 #. type: Plain text
1755 #: build/C/man3/gsignal.3:107
1756 msgid "B<kill>(2), B<signal>(2), B<raise>(3)"
1757 msgstr "B<kill>(2), B<signal>(2), B<raise>(3)"
1758
1759 #. type: TH
1760 #: build/C/man2/kill.2:44
1761 #, no-wrap
1762 msgid "KILL"
1763 msgstr "KILL"
1764
1765 #. type: TH
1766 #: build/C/man2/kill.2:44
1767 #, no-wrap
1768 msgid "2013-09-17"
1769 msgstr "2013-09-17"
1770
1771 #. type: Plain text
1772 #: build/C/man2/kill.2:47
1773 msgid "kill - send signal to a process"
1774 msgstr "kill - プロセスにシグナルを送る"
1775
1776 #. type: Plain text
1777 #: build/C/man2/kill.2:50
1778 #, no-wrap
1779 msgid "B<#include E<lt>sys/types.hE<gt>>\n"
1780 msgstr "B<#include E<lt>sys/types.hE<gt>>\n"
1781
1782 #. type: Plain text
1783 #: build/C/man2/kill.2:54
1784 #, no-wrap
1785 msgid "B<int kill(pid_t >I<pid>B<, int >I<sig>B<);>\n"
1786 msgstr "B<int kill(pid_t >I<pid>B<, int >I<sig>B<);>\n"
1787
1788 #. type: Plain text
1789 #: build/C/man2/kill.2:64
1790 msgid ""
1791 "B<kill>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1792 msgstr ""
1793 "B<kill>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1794
1795 #. type: Plain text
1796 #: build/C/man2/kill.2:70
1797 msgid ""
1798 "The B<kill>()  system call can be used to send any signal to any process "
1799 "group or process."
1800 msgstr ""
1801 "システムコールの B<kill>()  は、任意のプロセス・グループもしくはプロセスにシ"
1802 "グナルを 送るのに使われる。"
1803
1804 #. type: Plain text
1805 #: build/C/man2/kill.2:73
1806 msgid ""
1807 "If I<pid> is positive, then signal I<sig> is sent to the process with the ID "
1808 "specified by I<pid>."
1809 msgstr ""
1810 "I<pid> に正の値を指定した場合、シグナル I<sig> が I<pid> で指定された ID を持"
1811 "つプロセスに送られる。"
1812
1813 #. type: Plain text
1814 #: build/C/man2/kill.2:76
1815 msgid ""
1816 "If I<pid> equals 0, then I<sig> is sent to every process in the process "
1817 "group of the calling process."
1818 msgstr ""
1819 "I<pid> に 0 を指定した場合、 呼び出し元のプロセスのプロセス・グループに属する"
1820 "すべてのプロセスに I<sig> で指定したシグナルが送られる。"
1821
1822 #. type: Plain text
1823 #: build/C/man2/kill.2:80
1824 msgid ""
1825 "If I<pid> equals -1, then I<sig> is sent to every process for which the "
1826 "calling process has permission to send signals, except for process 1 "
1827 "(I<init>), but see below."
1828 msgstr ""
1829 "I<pid> に -1 を指定した場合、 I<sig> で指定したシグナルが、 呼び出し元のプロ"
1830 "セスがシグナルを送る許可を持つ全てのプロセスに 送られる。但し、プロセス番号 "
1831 "1 (I<init>) へはシグナルは送られない。 以下の関連部分も参照のこと。"
1832
1833 #. type: Plain text
1834 #: build/C/man2/kill.2:83
1835 msgid ""
1836 "If I<pid> is less than -1, then I<sig> is sent to every process in the "
1837 "process group whose ID is I<-pid>."
1838 msgstr ""
1839 "I<pid> に -1 より小さな値を指定した場合、 ID が I<-pid> のプロセス・グループ"
1840 "に属するすべてのプロセスに I<sig> で指定したシグナルが送られる。"
1841
1842 #. type: Plain text
1843 #: build/C/man2/kill.2:88
1844 msgid ""
1845 "If I<sig> is 0, then no signal is sent, but error checking is still "
1846 "performed; this can be used to check for the existence of a process ID or "
1847 "process group ID."
1848 msgstr ""
1849 "I<sig> に 0 を指定した場合、シグナルは送られないが、 エラーのチェックは行われ"
1850 "る。これを使って、プロセス ID や プロセスグループ ID の存在確認を行うことがで"
1851 "きる。"
1852
1853 #. type: Plain text
1854 #: build/C/man2/kill.2:100
1855 msgid ""
1856 "For a process to have permission to send a signal it must either be "
1857 "privileged (under Linux: have the B<CAP_KILL> capability), or the real or "
1858 "effective user ID of the sending process must equal the real or saved set-"
1859 "user-ID of the target process.  In the case of B<SIGCONT> it suffices when "
1860 "the sending and receiving processes belong to the same session.  "
1861 "(Historically, the rules were different; see NOTES.)"
1862 msgstr "プロセスがシグナルを送信する許可を持つためには、 プロセスが特権 (Linux では B<CAP_KILL> ケーパビリティ (capability)) を持つか、 送信元プロセスの実ユーザー ID または実効ユーザー ID が 送信先プロセスの実 set-user-ID または保存 set-user-ID と 等しくなければならない。 B<SIGCONT> の場合、送信プロセスと受信プロセスが 同じセッションに属していれば十分である。 (過去には、 ルールは違っていた; 「注意」の節を参照。)"
1863
1864 #. type: Plain text
1865 #: build/C/man2/kill.2:105
1866 msgid ""
1867 "On success (at least one signal was sent), zero is returned.  On error, -1 "
1868 "is returned, and I<errno> is set appropriately."
1869 msgstr ""
1870 "成功した場合 (少なくとも一つのシグナルが送信された場合)、 0 が返される。エ"
1871 "ラーの場合 -1 が返され、 I<errno> が適切に設定される。"
1872
1873 #. type: Plain text
1874 #: build/C/man2/kill.2:109
1875 msgid "An invalid signal was specified."
1876 msgstr "無効なシグナルを指定した。"
1877
1878 #. type: TP
1879 #: build/C/man2/kill.2:109 build/C/man2/killpg.2:99 build/C/man2/prctl.2:879
1880 #: build/C/man2/prctl.2:891 build/C/man2/prctl.2:901 build/C/man2/prctl.2:909
1881 #: build/C/man2/rt_sigqueueinfo.2:148 build/C/man2/sigaltstack.2:151
1882 #: build/C/man3/sigqueue.3:102 build/C/man2/tkill.2:103
1883 #, no-wrap
1884 msgid "B<EPERM>"
1885 msgstr "B<EPERM>"
1886
1887 #. type: Plain text
1888 #: build/C/man2/kill.2:113 build/C/man2/killpg.2:103
1889 msgid ""
1890 "The process does not have permission to send the signal to any of the target "
1891 "processes."
1892 msgstr ""
1893 "プロセスが、受信するプロセスのいずれに対しても シグナルを送る許可を持っていな"
1894 "い。"
1895
1896 #. type: TP
1897 #: build/C/man2/kill.2:113 build/C/man2/killpg.2:103 build/C/man2/killpg.2:107
1898 #: build/C/man2/rt_sigqueueinfo.2:156 build/C/man3/sigqueue.3:108
1899 #: build/C/man2/tkill.2:108
1900 #, no-wrap
1901 msgid "B<ESRCH>"
1902 msgstr "B<ESRCH>"
1903
1904 #. type: Plain text
1905 #: build/C/man2/kill.2:121
1906 msgid ""
1907 "The pid or process group does not exist.  Note that an existing process "
1908 "might be a zombie, a process which already committed termination, but has "
1909 "not yet been B<wait>(2)ed for."
1910 msgstr ""
1911 "指定したプロセスまたはプロセス・グループが存在しなかった。 ゾンビプロセスは存"
1912 "在するプロセスとしてみなされる。 ゾンビプロセスとはすでに処理は終了している"
1913 "が、親プロセスによる B<wait>()  処理が行われていないプロセスのことである。"
1914
1915 #. type: Plain text
1916 #: build/C/man2/kill.2:123 build/C/man2/pause.2:59 build/C/man2/wait.2:424
1917 msgid "SVr4, 4.3BSD, POSIX.1-2001."
1918 msgstr "SVr4, 4.3BSD, POSIX.1-2001."
1919
1920 #. type: Plain text
1921 #: build/C/man2/kill.2:131
1922 msgid ""
1923 "The only signals that can be sent to process ID 1, the I<init> process, are "
1924 "those for which I<init> has explicitly installed signal handlers.  This is "
1925 "done to assure the system is not brought down accidentally."
1926 msgstr ""
1927 "プロセス番号 1 の I<init> プロセスに送ることができるシグナルは、 I<init> が明"
1928 "示的にシグナルハンドラを設定したシグナルだけである。 こうなっているのは、誤っ"
1929 "てシステムをダウンさせないようにするためである。"
1930
1931 #. type: Plain text
1932 #: build/C/man2/kill.2:137
1933 msgid ""
1934 "POSIX.1-2001 requires that I<kill(-1,sig)> send I<sig> to all processes that "
1935 "the calling process may send signals to, except possibly for some "
1936 "implementation-defined system processes.  Linux allows a process to signal "
1937 "itself, but on Linux the call I<kill(-1,sig)> does not signal the calling "
1938 "process."
1939 msgstr ""
1940 "POSIX.1-2001 では、 I<kill(-1,sig)> が 呼び出し元のプロセスがシグナルを送るこ"
1941 "とが出来るプロセス全てに I<sig> を送ることを要求している。 但し、システム実装"
1942 "時に定められたシステムプロセスは シグナルの送信対象から除外される。 Linux で"
1943 "は、プロセスが自分自身にシグナルを送れるようになっているが、 Linux の I<kill"
1944 "(-1,sig)> は呼び出し元のプロセスにはシグナルを送らない。"
1945
1946 #. type: Plain text
1947 #: build/C/man2/kill.2:147
1948 msgid ""
1949 "POSIX.1-2001 requires that if a process sends a signal to itself, and the "
1950 "sending thread does not have the signal blocked, and no other thread has it "
1951 "unblocked or is waiting for it in B<sigwait>(3), at least one unblocked "
1952 "signal must be delivered to the sending thread before the B<kill>()  returns."
1953 msgstr ""
1954 "POSIX.1-2001 では以下の動作になることを要求している。 自分自身にシグナルを送"
1955 "ると、シグナルを送ったスレッドがそのシグナルをブロック しておらず、他のどのス"
1956 "レッドもそのシグナルを受ける状態にもなく B<sigwait>(3)  でそのシグナルを待っ"
1957 "てもいない場合、 B<kill>()  が返る前に少なくとも一つのブロックされていない シ"
1958 "グナルがシグナルを送ったスレッドに配送されなければならない。"
1959
1960 #. type: SS
1961 #: build/C/man2/kill.2:147 build/C/man3/sigpause.3:77 build/C/man2/wait.2:478
1962 #, no-wrap
1963 msgid "Linux notes"
1964 msgstr "Linux での注意"
1965
1966 #.  In the 0.* kernels things chopped and changed quite
1967 #.  a bit - MTK, 24 Jul 02
1968 #. type: Plain text
1969 #: build/C/man2/kill.2:161
1970 msgid ""
1971 "Across different kernel versions, Linux has enforced different rules for the "
1972 "permissions required for an unprivileged process to send a signal to another "
1973 "process.  In kernels 1.0 to 1.2.2, a signal could be sent if the effective "
1974 "user ID of the sender matched effective user ID of the target, or the real "
1975 "user ID of the sender matched the real user ID of the target.  From kernel "
1976 "1.2.3 until 1.3.77, a signal could be sent if the effective user ID of the "
1977 "sender matched either the real or effective user ID of the target.  The "
1978 "current rules, which conform to POSIX.1-2001, were adopted in kernel 1.3.78."
1979 msgstr "Linux では、特権のないプロセスが他のプロセスにシグナルを送信するために必要な権限についてのルールが、カーネルバージョンにより違っている。 カーネル 1.0 から 1.2.2 では、送信側の実効ユーザー ID が送信対象の実効ユーザー ID と一致するか、 送信側の実ユーザー ID が送信対象の実ユーザー ID と一致すれば、 シグナルを送信できた。 カーネル 1.2.3 から 1.3.77では、送信側の実効ユーザー ID が送信対象の実ユーザー ID か実効ユーザー ID のいずれかと一致すればシグナルを送信できた。 現在のルールは、POSIX.1-2001 に準拠しており、カーネル 1.3.78 以降で 適用されている。"
1980
1981 #. type: Plain text
1982 #: build/C/man2/kill.2:171
1983 msgid ""
1984 "In 2.6 kernels up to and including 2.6.7, there was a bug that meant that "
1985 "when sending signals to a process group, B<kill>()  failed with the error "
1986 "B<EPERM> if the caller did not have permission to send the signal to I<any> "
1987 "(rather than I<all>) of the members of the process group.  Notwithstanding "
1988 "this error return, the signal was still delivered to all of the processes "
1989 "for which the caller had permission to signal."
1990 msgstr ""
1991 "バージョン 2.6.7 以前の 2.6 系のカーネルには、 プロセスグループにシグナルを"
1992 "送ったときに、 呼び出し元のプロセスがプロセスグループの (全メンバーではなく) "
1993 "一部のメンバーに対してのみシグナルを送る許可を持っていない場合に、 B<kill>"
1994 "()  がエラー B<EPERM> で失敗するというバグがある。 このエラーが返るにもかかわ"
1995 "らず、そのシグナルは呼び出し元が シグナルを送る許可を持つ全てのプロセスへ送ら"
1996 "れる。"
1997
1998 #. type: Plain text
1999 #: build/C/man2/kill.2:181
2000 msgid ""
2001 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), B<sigqueue>"
2002 "(3), B<capabilities>(7), B<credentials>(7), B<signal>(7)"
2003 msgstr ""
2004 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), B<sigqueue>"
2005 "(3), B<credentials>(7), B<capabilities>(7), B<signal>(7)"
2006
2007 #. type: TH
2008 #: build/C/man2/killpg.2:42
2009 #, no-wrap
2010 msgid "KILLPG"
2011 msgstr "KILLPG"
2012
2013 #. type: TH
2014 #: build/C/man2/killpg.2:42 build/C/man3/sigset.3:26
2015 #, no-wrap
2016 msgid "2010-09-20"
2017 msgstr "2010-09-20"
2018
2019 #. type: Plain text
2020 #: build/C/man2/killpg.2:45
2021 msgid "killpg - send signal to a process group"
2022 msgstr "killpg - シグナルをプロセス・グループに送る"
2023
2024 #. type: Plain text
2025 #: build/C/man2/killpg.2:49
2026 msgid "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2027 msgstr "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2028
2029 #. type: TP
2030 #: build/C/man2/killpg.2:55
2031 #, no-wrap
2032 msgid "B<killpg>():"
2033 msgstr "B<killpg>():"
2034
2035 #. type: Plain text
2036 #: build/C/man2/killpg.2:59 build/C/man2/sigaltstack.2:46
2037 #: build/C/man3/siginterrupt.3:51 build/C/man2/wait4.2:60
2038 msgid ""
2039 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2040 "_XOPEN_SOURCE_EXTENDED"
2041 msgstr ""
2042 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2043 "_XOPEN_SOURCE_EXTENDED"
2044
2045 #. type: Plain text
2046 #: build/C/man2/killpg.2:69
2047 msgid ""
2048 "B<killpg>()  sends the signal I<sig> to the process group I<pgrp>.  See "
2049 "B<signal>(7)  for a list of signals."
2050 msgstr ""
2051 "B<killpg>()  は I<sig> で指定したシグナルを I<pgrp> で指定したプロセス・グ"
2052 "ループに送る。 シグナルの定義の一覧は B<signal>(7)  を参照のこと。"
2053
2054 #. type: Plain text
2055 #: build/C/man2/killpg.2:78
2056 msgid ""
2057 "If I<pgrp> is 0, B<killpg>()  sends the signal to the calling process's "
2058 "process group.  (POSIX says: If I<pgrp> is less than or equal to 1, the "
2059 "behavior is undefined.)"
2060 msgstr ""
2061 "引き数 I<pgrp> に 0 を指定した場合には B<killpg>()  は呼び出し元のプロセスが"
2062 "属しているプロセス・グループに対してシグナルを送る。 (POSIX では以下のように"
2063 "記述されている: I<pgrp> が 1 以下である場合、動作は未定義である。)"
2064
2065 #. type: Plain text
2066 #: build/C/man2/killpg.2:89
2067 msgid ""
2068 "For a process to have permission to send a signal it must either be "
2069 "privileged (under Linux: have the B<CAP_KILL> capability), or the real or "
2070 "effective user ID of the sending process must equal the real or saved set-"
2071 "user-ID of the target process.  In the case of B<SIGCONT> it suffices when "
2072 "the sending and receiving processes belong to the same session."
2073 msgstr ""
2074 "プロセスがシグナルを送信する許可を持つためには、 プロセスが特権 (Linux では "
2075 "B<CAP_KILL> ケーパビリティ (capability)) を持つか、 送信元プロセスの実ユー"
2076 "ザー ID または実効ユーザー ID が 送信先プロセスの実 set-user-ID または保存 "
2077 "set-user-ID と 等しくなければならない。 B<SIGCONT> の場合、送信プロセスと受信"
2078 "プロセスが 同じセッションに属していれば十分である。"
2079
2080 #. type: Plain text
2081 #: build/C/man2/killpg.2:99
2082 msgid "I<sig> is not a valid signal number."
2083 msgstr "I<sig> で指定された値は無効なシグナル番号である。"
2084
2085 #. type: Plain text
2086 #: build/C/man2/killpg.2:107
2087 msgid "No process can be found in the process group specified by I<pgrp>."
2088 msgstr ""
2089 "I<pgrp> で指定されたプロセス・グループに属するプロセスが存在しなかった。"
2090
2091 #. type: Plain text
2092 #: build/C/man2/killpg.2:111
2093 msgid ""
2094 "The process group was given as 0 but the sending process does not have a "
2095 "process group."
2096 msgstr ""
2097 "プロセス・グループとして 0 が指定されたが、送信プロセスは プロセス・グループ"
2098 "を持っていない。"
2099
2100 #. type: Plain text
2101 #: build/C/man2/killpg.2:115
2102 msgid ""
2103 "SVr4, 4.4BSD (the B<killpg>()  function call first appeared in 4BSD), "
2104 "POSIX.1-2001."
2105 msgstr "SVr4, 4.4BSD (B<killpg>()  は 4BSD で初めて追加された), POSIX.1-2001。"
2106
2107 #. type: Plain text
2108 #: build/C/man2/killpg.2:129
2109 msgid ""
2110 "There are various differences between the permission checking in BSD-type "
2111 "systems and System V-type systems.  See the POSIX rationale for B<kill>().  "
2112 "A difference not mentioned by POSIX concerns the return value B<EPERM>: BSD "
2113 "documents that no signal is sent and B<EPERM> returned when the permission "
2114 "check failed for at least one target process, while POSIX documents B<EPERM> "
2115 "only when the permission check failed for all target processes."
2116 msgstr ""
2117 "BSD 系システムと System V 系システムでは、 許可のチェックに様々な違いがあ"
2118 "る。 B<kill>(2)  についての POSIX の原理 (rationale) を参照すること。 POSIX "
2119 "で記述されていない違いとしては、返り値 B<EPERM> がある。 BSD では「送信先プロ"
2120 "セスの許可のチェックが 1 つでも失敗した場合は、 シグナルが送信されず、 "
2121 "B<EPERM> が返される」と記述されている。 POSIX では「送信先プロセスの許可の"
2122 "チェックが全て失敗した場合にのみ、 B<EPERM> が返される」と記述されている。"
2123
2124 #. type: Plain text
2125 #: build/C/man2/killpg.2:134
2126 msgid ""
2127 "On Linux, B<killpg>()  is implemented as a library function that makes the "
2128 "call I<kill(-pgrp,\\ sig)>."
2129 msgstr ""
2130 "Linux では、 B<killpg>()  はライブラリ関数として実装されており、 I<kill(-"
2131 "pgrp,\\ sig)> の呼び出しが行われる。"
2132
2133 #. type: Plain text
2134 #: build/C/man2/killpg.2:140
2135 msgid ""
2136 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<capabilities>(7), B<credentials>"
2137 "(7)"
2138 msgstr ""
2139 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<credentials>(7), B<capabilities>"
2140 "(7)"
2141
2142 #. type: TH
2143 #: build/C/man2/pause.2:30
2144 #, no-wrap
2145 msgid "PAUSE"
2146 msgstr "PAUSE"
2147
2148 #. type: TH
2149 #: build/C/man2/pause.2:30
2150 #, no-wrap
2151 msgid "2008-10-06"
2152 msgstr "2008-10-06"
2153
2154 #. type: Plain text
2155 #: build/C/man2/pause.2:33
2156 msgid "pause - wait for signal"
2157 msgstr "pause - シグナルを待つ"
2158
2159 #. type: Plain text
2160 #: build/C/man2/pause.2:35
2161 msgid "B<#include E<lt>unistd.hE<gt>>"
2162 msgstr "B<#include E<lt>unistd.hE<gt>>"
2163
2164 #. type: Plain text
2165 #: build/C/man2/pause.2:37
2166 msgid "B<int pause(void);>"
2167 msgstr "B<int pause(void);>"
2168
2169 #. type: Plain text
2170 #: build/C/man2/pause.2:42
2171 msgid ""
2172 "B<pause>()  causes the calling process (or thread) to sleep until a signal "
2173 "is delivered that either terminates the process or causes the invocation of "
2174 "a signal-catching function."
2175 msgstr ""
2176 "B<pause>()  は、呼び出したプロセス (またはスレッド) を、 そのプロセスを終了さ"
2177 "せたり、シグナル捕捉関数が起動されるような シグナルが配送されるまで、スリープ"
2178 "させる。"
2179
2180 #.  .BR ERESTARTNOHAND .
2181 #. type: Plain text
2182 #: build/C/man2/pause.2:53
2183 msgid ""
2184 "B<pause>()  returns only when a signal was caught and the signal-catching "
2185 "function returned.  In this case B<pause>()  returns -1, and I<errno> is set "
2186 "to B<EINTR>."
2187 msgstr ""
2188 "B<pause>()  が返るのは、シグナルを受け取りシグナル捕獲関数から返った場合だけ"
2189 "である。 この場合は B<pause>()  は -1 を返し、 I<errno> に B<EINTR> が設定さ"
2190 "れる。"
2191
2192 #. type: TP
2193 #: build/C/man2/pause.2:54 build/C/man2/sigsuspend.2:81
2194 #: build/C/man2/sigwaitinfo.2:123 build/C/man2/wait.2:410
2195 #, no-wrap
2196 msgid "B<EINTR>"
2197 msgstr "B<EINTR>"
2198
2199 #. type: Plain text
2200 #: build/C/man2/pause.2:57
2201 msgid "a signal was caught and the signal-catching function returned."
2202 msgstr "シグナルを受け取り、シグナル捕獲関数から帰ってきた。"
2203
2204 #. type: Plain text
2205 #: build/C/man2/pause.2:64
2206 msgid "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2207 msgstr "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2208
2209 #. type: TH
2210 #: build/C/man2/prctl.2:52
2211 #, no-wrap
2212 msgid "PRCTL"
2213 msgstr "PRCTL"
2214
2215 #. type: TH
2216 #: build/C/man2/prctl.2:52
2217 #, no-wrap
2218 msgid "2013-05-21"
2219 msgstr "2013-05-21"
2220
2221 #. type: Plain text
2222 #: build/C/man2/prctl.2:55
2223 msgid "prctl - operations on a process"
2224 msgstr "prctl - プロセスの操作を行なう"
2225
2226 #. type: Plain text
2227 #: build/C/man2/prctl.2:58
2228 #, no-wrap
2229 msgid "B<#include E<lt>sys/prctl.hE<gt>>\n"
2230 msgstr "B<#include E<lt>sys/prctl.hE<gt>>\n"
2231
2232 #. type: Plain text
2233 #: build/C/man2/prctl.2:61
2234 #, no-wrap
2235 msgid ""
2236 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2237 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2238 msgstr ""
2239 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2240 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2241
2242 #. type: Plain text
2243 #: build/C/man2/prctl.2:68
2244 msgid ""
2245 "B<prctl>()  is called with a first argument describing what to do (with "
2246 "values defined in I<E<lt>linux/prctl.hE<gt>>), and further arguments with a "
2247 "significance depending on the first one.  The first argument can be:"
2248 msgstr ""
2249 "B<prctl>()  の動作は最初の引き数によって決定される (この値は I<E<lt>linux/"
2250 "prctl.hE<gt>> に定義されている)。 残りの引き数は最初の引き数によって変化す"
2251 "る。 一番目の引き数として以下のものを指定できる:"
2252
2253 #. type: TP
2254 #: build/C/man2/prctl.2:68
2255 #, no-wrap
2256 msgid "B<PR_CAPBSET_READ> (since Linux 2.6.25)"
2257 msgstr "B<PR_CAPBSET_READ> (Linux 2.6.25 以降)"
2258
2259 #. type: Plain text
2260 #: build/C/man2/prctl.2:80
2261 msgid ""
2262 "Return (as the function result) 1 if the capability specified in I<arg2> is "
2263 "in the calling thread's capability bounding set, or 0 if it is not.  (The "
2264 "capability constants are defined in I<E<lt>linux/capability.hE<gt>>.)  The "
2265 "capability bounding set dictates whether the process can receive the "
2266 "capability through a file's permitted capability set on a subsequent call to "
2267 "B<execve>(2)."
2268 msgstr ""
2269 "で指定されたケーパビリティが呼び出したスレッドのケーパビリティ バインディング"
2270 "セット (capability bounding set) に含まれている場合、 (関数の返り値として) 1 "
2271 "を返し、そうでない場合 0 を返す (ケーパビリティ定数は I<E<lt>linux/"
2272 "capability.hE<gt>> で定義されている)。 ケーパビリティバウンディングセット"
2273 "は、 B<execve>(2)  を呼び出した際に、ファイルの許可 (permitted) ケーパビリ"
2274 "ティの中で そのプロセスが獲得できるケーパビリティを指示するものである。"
2275
2276 #. type: Plain text
2277 #: build/C/man2/prctl.2:85
2278 msgid ""
2279 "If the capability specified in I<arg2> is not valid, then the call fails "
2280 "with the error B<EINVAL>."
2281 msgstr ""
2282 "I<arg2> に指定されたケーパビリティが有効でない場合、 呼び出しはエラー "
2283 "B<EINVAL> で失敗する。"
2284
2285 #. type: TP
2286 #: build/C/man2/prctl.2:85
2287 #, no-wrap
2288 msgid "B<PR_CAPBSET_DROP> (since Linux 2.6.25)"
2289 msgstr "B<PR_CAPBSET_DROP> (Linux 2.6.25 以降)"
2290
2291 #. type: Plain text
2292 #: build/C/man2/prctl.2:94
2293 msgid ""
2294 "If the calling thread has the B<CAP_SETPCAP> capability, then drop the "
2295 "capability specified by I<arg2> from the calling thread's capability "
2296 "bounding set.  Any children of the calling thread will inherit the newly "
2297 "reduced bounding set."
2298 msgstr ""
2299 "呼び出したスレッドがケーパビリティ B<CAP_SETPCAP> を持っている場合、 呼び出し"
2300 "たスレッドのケーパビリティバウンディングセットから I<arg2> で指定されたケーパ"
2301 "ビリティを外す。 呼び出したスレッドの子プロセスは変更後のバウンディングセット"
2302 "を 継承する。"
2303
2304 #. type: Plain text
2305 #: build/C/man2/prctl.2:106
2306 msgid ""
2307 "The call fails with the error: B<EPERM> if the calling thread does not have "
2308 "the B<CAP_SETPCAP>; B<EINVAL> if I<arg2> does not represent a valid "
2309 "capability; or B<EINVAL> if file capabilities are not enabled in the kernel, "
2310 "in which case bounding sets are not supported."
2311 msgstr ""
2312 "呼び出したスレッドが B<CAP_SETPCAP> を持っていない場合、呼び出しはエラー "
2313 "B<EPERM> で失敗する。 I<arg2> に指定されたケーパビリティが有効でない場合、 "
2314 "B<EINVAL> で失敗する。 ファイルケーパビリティがカーネルで有効になっていない場"
2315 "合 (この場合にはバウンディングセットがサポートされない)、 B<EINVAL> で失敗す"
2316 "る。"
2317
2318 #. type: TP
2319 #: build/C/man2/prctl.2:106
2320 #, no-wrap
2321 msgid "B<PR_SET_CHILD_SUBREAPER> (since Linux 3.4)"
2322 msgstr "B<PR_SET_CHILD_SUBREAPER> (Linux 3.4 以降)"
2323
2324 #.  commit ebec18a6d3aa1e7d84aab16225e87fd25170ec2b
2325 #. type: Plain text
2326 #: build/C/man2/prctl.2:131
2327 msgid ""
2328 "If I<arg2> is nonzero, set the \"child subreaper\" attribute of the calling "
2329 "process; if I<arg2> is zero, unset the attribute.  When a process is marked "
2330 "as a child subreaper, all of the children that it creates, and their "
2331 "descendants, will be marked as having a subreaper.  In effect, a subreaper "
2332 "fulfills the role of B<init>(1)  for its descendant processes.  Upon "
2333 "termination of a process that is orphaned (i.e., its immediate parent has "
2334 "already terminated)  and marked as having a subreaper, the nearest still "
2335 "living ancestor subreaper will receive a B<SIGCHLD> signal and be able to "
2336 "B<wait>(2)  on the process to discover its termination status."
2337 msgstr ""
2338
2339 #. type: TP
2340 #: build/C/man2/prctl.2:131
2341 #, no-wrap
2342 msgid "B<PR_GET_CHILD_SUBREAPER> (since Linux 3.4)"
2343 msgstr "B<PR_GET_CHILD_SUBREAPER> (Linux 3.4 以降)"
2344
2345 #. type: Plain text
2346 #: build/C/man2/prctl.2:136
2347 msgid ""
2348 "Return the \"child subreaper\" setting of the caller, in the location "
2349 "pointed to by I<(int\\ *) arg2>."
2350 msgstr ""
2351
2352 #. type: TP
2353 #: build/C/man2/prctl.2:136
2354 #, no-wrap
2355 msgid "B<PR_SET_DUMPABLE> (since Linux 2.3.20)"
2356 msgstr "B<PR_SET_DUMPABLE> (Linux 2.3.20 以降)"
2357
2358 #.  See http://marc.theaimsgroup.com/?l=linux-kernel&m=115270289030630&w=2
2359 #.  Subject:    Fix prctl privilege escalation (CVE-2006-2451)
2360 #.  From:       Marcel Holtmann <marcel () holtmann ! org>
2361 #.  Date:       2006-07-12 11:12:00
2362 #. type: Plain text
2363 #: build/C/man2/prctl.2:162
2364 msgid ""
2365 "Set the state of the flag determining whether core dumps are produced for "
2366 "the calling process upon delivery of a signal whose default behavior is to "
2367 "produce a core dump.  (Normally, this flag is set for a process by default, "
2368 "but it is cleared when a set-user-ID or set-group-ID program is executed and "
2369 "also by various system calls that manipulate process UIDs and GIDs).  In "
2370 "kernels up to and including 2.6.12, I<arg2> must be either 0 (process is not "
2371 "dumpable) or 1 (process is dumpable).  Between kernels 2.6.13 and 2.6.17, "
2372 "the value 2 was also permitted, which caused any binary which normally would "
2373 "not be dumped to be dumped readable by root only; for security reasons, this "
2374 "feature has been removed.  (See also the description of I</proc/sys/fs/"
2375 "suid_dumpable> in B<proc>(5).)  Processes that are not dumpable can not be "
2376 "attached via B<ptrace>(2)  B<PTRACE_ATTACH>."
2377 msgstr ""
2378 "(Linux 2.3.20 以降) デフォルトの振る舞いではコアダンプを引き起こすよう\n"
2379 "なシグナルを受信したときに、呼び出し元のプロセスでコアダンプを\n"
2380 "生成するかどうかを決定するフラグを\n"
2381 "設定する (通常このフラグは、デフォルトではセットされているが、\n"
2382 "set-user-ID あるいは set-group-ID プログラムが実行されたり、 さまざまな\n"
2383 "システムコールによってプロセスの UID や GID が操作されたときに クリアさ\n"
2384 "れる)。 2.6.12 以前のカーネルでは、 I<arg2> は 0 (プロセスはダンプ不可)\n"
2385 "あるいは 1 (プロセスはダンプ可能) の どちらかでなければならない。\n"
2386 "2.6.13 から 2.6.17 までのカーネルでは、値 2 も認められていた。 この値を\n"
2387 "指定すると、通常はダンプされないバイナリが root だけが 読み込み可能な形\n"
2388 "でダンプされた。 セキュリティ上の理由から、この機能は削除された\n"
2389 "(B<proc>(5) の I</proc/sys/fs/suid_dumpable> の説明も参照)。\n"
2390 "ダンプ不可のプロセスを B<ptrace>(2) B<PTRACE_ATTACH> 経由で接続すること\n"
2391 "はできない。"
2392
2393 #. type: TP
2394 #: build/C/man2/prctl.2:162
2395 #, no-wrap
2396 msgid "B<PR_GET_DUMPABLE> (since Linux 2.3.20)"
2397 msgstr "B<PR_GET_DUMPABLE> (Linux 2.3.20 以降)"
2398
2399 #.  Since Linux 2.6.13, the dumpable flag can have the value 2,
2400 #.  but in 2.6.13 PR_GET_DUMPABLE simply returns 1 if the dumpable
2401 #.  flags has a nonzero value.  This was fixed in 2.6.14.
2402 #. type: Plain text
2403 #: build/C/man2/prctl.2:169
2404 msgid ""
2405 "Return (as the function result) the current state of the calling process's "
2406 "dumpable flag."
2407 msgstr ""
2408 "(Linux 2.3.20 以降)  呼び出し元プロセスにおけるダンプ可能フラグの 現在の状態"
2409 "を (関数の返り値として) 返す。"
2410
2411 #. type: TP
2412 #: build/C/man2/prctl.2:169
2413 #, no-wrap
2414 msgid "B<PR_SET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2415 msgstr "B<PR_SET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2416
2417 #.  Respectively 0, 1, 2
2418 #. type: Plain text
2419 #: build/C/man2/prctl.2:179
2420 msgid ""
2421 "Set the endian-ness of the calling process to the value given in I<arg2>, "
2422 "which should be one of the following: B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2423 "or B<PR_ENDIAN_PPC_LITTLE> (PowerPC pseudo little endian)."
2424 msgstr ""
2425 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<arg2> で指定された値"
2426 "に設定する。 指定できる値は B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2427 "B<PR_ENDIAN_PPC_LITTLE> (PowerPC 擬似リトルエンディアン)  のいずれか一つであ"
2428 "る。"
2429
2430 #. type: TP
2431 #: build/C/man2/prctl.2:179
2432 #, no-wrap
2433 msgid "B<PR_GET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2434 msgstr "B<PR_GET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2435
2436 #. type: Plain text
2437 #: build/C/man2/prctl.2:184
2438 msgid ""
2439 "Return the endian-ness of the calling process, in the location pointed to by "
2440 "I<(int\\ *) arg2>."
2441 msgstr ""
2442 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<(int\\ *) arg2> が指"
2443 "す場所に格納して返す。"
2444
2445 #. type: TP
2446 #: build/C/man2/prctl.2:184
2447 #, no-wrap
2448 msgid "B<PR_SET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2449 msgstr "B<PR_SET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2450
2451 #. type: Plain text
2452 #: build/C/man2/prctl.2:191
2453 msgid ""
2454 "Set floating-point emulation control bits to I<arg2>.  Pass "
2455 "B<PR_FPEMU_NOPRINT> to silently emulate fp operations accesses, or "
2456 "B<PR_FPEMU_SIGFPE> to not emulate fp operations and send B<SIGFPE> instead."
2457 msgstr ""
2458 "浮動小数点エミュレーション (floating-point emulation) 制御ビットを I<arg2> で"
2459 "指定された値に設定する。 指定できる値は B<PR_FPEMU_NOPRINT> (浮動小数点命令ア"
2460 "クセスを黙って エミュレートする) か B<PR_FPEMU_SIGFPE> (浮動小数点命令をエ"
2461 "ミュレートせず、 代わりに B<SIGFPE> を送る) である。"
2462
2463 #. type: TP
2464 #: build/C/man2/prctl.2:191
2465 #, no-wrap
2466 msgid "B<PR_GET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2467 msgstr "B<PR_GET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2468
2469 #. type: Plain text
2470 #: build/C/man2/prctl.2:196
2471 msgid ""
2472 "Return floating-point emulation control bits, in the location pointed to by "
2473 "I<(int\\ *) arg2>."
2474 msgstr ""
2475 "浮動小数点エミュレーション制御ビットの値を I<(int\\ *) arg2> が指す場所に格納"
2476 "して返す。"
2477
2478 #. type: TP
2479 #: build/C/man2/prctl.2:196
2480 #, no-wrap
2481 msgid "B<PR_SET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2482 msgstr "B<PR_SET_FPEXC> (Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2483
2484 #. type: Plain text
2485 #: build/C/man2/prctl.2:209
2486 msgid ""
2487 "Set floating-point exception mode to I<arg2>.  Pass B<PR_FP_EXC_SW_ENABLE> "
2488 "to use FPEXC for FP exception enables, B<PR_FP_EXC_DIV> for floating-point "
2489 "divide by zero, B<PR_FP_EXC_OVF> for floating-point overflow, "
2490 "B<PR_FP_EXC_UND> for floating-point underflow, B<PR_FP_EXC_RES> for floating-"
2491 "point inexact result, B<PR_FP_EXC_INV> for floating-point invalid operation, "
2492 "B<PR_FP_EXC_DISABLED> for FP exceptions disabled, B<PR_FP_EXC_NONRECOV> for "
2493 "async nonrecoverable exception mode, B<PR_FP_EXC_ASYNC> for async "
2494 "recoverable exception mode, B<PR_FP_EXC_PRECISE> for precise exception mode."
2495 msgstr ""
2496 "浮動小数点例外モード (floating-point exception mode) を I<arg2> で指定された"
2497 "値に設定する。 指定できるのは以下の値である: B<PR_FP_EXC_SW_ENABLE> (FPEXC で"
2498 "浮動小数点例外を有効にする)、 B<PR_FP_EXC_DIV> (0 除算)、 B<PR_FP_EXC_OVF> "
2499 "(オーバーフロー)、 B<PR_FP_EXC_UND> (アンダーフロー)、 B<PR_FP_EXC_RES> (不正"
2500 "確な結果 (inexact result))、 B<PR_FP_EXC_INV> (不正な命令 (invalid "
2501 "operation))、 B<PR_FP_EXC_DISABLED> (浮動小数点例外を無効にする)、 "
2502 "B<PR_FP_EXC_NONRECOV> (async nonrecoverable exception mode)、 "
2503 "B<PR_FP_EXC_ASYNC> (async recoverable exception mode)、 B<PR_FP_EXC_PRECISE> "
2504 "(precise exception mode)。"
2505
2506 #. type: TP
2507 #: build/C/man2/prctl.2:209
2508 #, no-wrap
2509 msgid "B<PR_GET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2510 msgstr "B<PR_GET_FPEXC>(Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2511
2512 #. type: Plain text
2513 #: build/C/man2/prctl.2:214
2514 msgid ""
2515 "Return floating-point exception mode, in the location pointed to by I<(int\\ "
2516 "*) arg2>."
2517 msgstr ""
2518 "浮動小数点例外モードの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
2519
2520 #. type: TP
2521 #: build/C/man2/prctl.2:214
2522 #, no-wrap
2523 msgid "B<PR_SET_KEEPCAPS> (since Linux 2.2.18)"
2524 msgstr "B<PR_SET_KEEPCAPS> (Linux 2.2.18 以降)"
2525
2526 #. type: Plain text
2527 #: build/C/man2/prctl.2:232
2528 msgid ""
2529 "Set the state of the thread's \"keep capabilities\" flag, which determines "
2530 "whether the threads's permitted capability set is cleared when a change is "
2531 "made to the threads's user IDs such that the threads's real UID, effective "
2532 "UID, and saved set-user-ID all become nonzero when at least one of them "
2533 "previously had the value 0.  By default, the permitted capability set is "
2534 "cleared when such a change is made; setting the \"keep capabilities\" flag "
2535 "prevents it from being cleared.  I<arg2> must be either 0 (permitted "
2536 "capabilities are cleared)  or 1 (permitted capabilities are kept).  (A "
2537 "thread's I<effective> capability set is always cleared when such a "
2538 "credential change is made, regardless of the setting of the \"keep "
2539 "capabilities\" flag.)  The \"keep capabilities\" value will be reset to 0 on "
2540 "subsequent calls to B<execve>(2)."
2541 msgstr ""
2542 "スレッドの「ケーパビリティ保持」フラグを設定する。\n"
2543 "このフラグは、スレッドの実 UID、実効 UID、保存 set-user-ID のうち少なく\n"
2544 "とも一つが 0 であった状態から、これら全てが 0 以外に変更されたとき、\n"
2545 "スレッドの許可ケーパビリティ集合がクリアされるかどうかを決定する。\n"
2546 "デフォルトでは、このような変更が行われた場合、許可ケーパビリティセット\n"
2547 "はクリアされる。「ケーパビリティ保持」フラグを設定すると、\n"
2548 "許可ケーパビリティセットはクリアされなくなる。\n"
2549 "I<arg2> は 0 (許可ケーパビリティをクリアする) か 1 (許可ケーパビリティ\n"
2550 "を保持する) の どちらかでなければならない。\n"
2551 "(このような ID の変更が行われた場合、「ケーパビリティ保持」フラグの設定\n"
2552 "に関わらず、スレッドのI<実効>ケーパビリティセットは常にクリアされる。)\n"
2553 "B<execve>(2) が呼び出されると、「ケーパビリティ保持」フラグは 0\n"
2554 "にリセットされる。"
2555
2556 #. type: TP
2557 #: build/C/man2/prctl.2:232
2558 #, no-wrap
2559 msgid "B<PR_GET_KEEPCAPS> (since Linux 2.2.18)"
2560 msgstr "B<PR_GET_KEEPCAPS> (Linux 2.2.18 以降)"
2561
2562 #. type: Plain text
2563 #: build/C/man2/prctl.2:236
2564 msgid ""
2565 "Return (as the function result) the current state of the calling threads's "
2566 "\"keep capabilities\" flag."
2567 msgstr ""
2568 "呼び出し元スレッドにおける「ケーパビリティ保持」フラグの 現在の状態を (関数の"
2569 "返り値として) 返す。"
2570
2571 #. type: TP
2572 #: build/C/man2/prctl.2:236
2573 #, no-wrap
2574 msgid "B<PR_SET_NAME> (since Linux 2.6.9)"
2575 msgstr "B<PR_SET_NAME> (Linux 2.6.9 以降)"
2576
2577 #.  TASK_COMM_LEN in include/linux/sched.h
2578 #. type: Plain text
2579 #: build/C/man2/prctl.2:253
2580 msgid ""
2581 "Set the name of the calling thread, using the value in the location pointed "
2582 "to by I<(char\\ *) arg2>.  The name can be up to 16 bytes long, and should "
2583 "be null-terminated if it contains fewer bytes.  This is the same attribute "
2584 "that can be set via B<pthread_setname_np>(3)  and retrieved using "
2585 "B<pthread_getname_np>(3).  The attribute is likewise accessible via I</proc/"
2586 "self/task/[tid]/comm>, where I<tid> is the name of the calling thread."
2587 msgstr "呼び出し元スレッドのプロセス名を I<(char\\ *) arg2> が指す場所に格納された値を使って設定する。 名前は最大で 16 バイトであり、 それより少ないバイト数の場合は NULL で終端すべきである。 これは、 B<pthread_setname_np>(3) で設定でき、 B<pthread_getname_np>(3) で取得できるのと同じ属性である。 同様に、 I<tid> が呼び出し元スレッドの ID の場合、 この属性は I</proc/self/task/[tid]/comm> 経由でもアクセス可能である。"
2588
2589 #. type: TP
2590 #: build/C/man2/prctl.2:253
2591 #, no-wrap
2592 msgid "B<PR_GET_NAME> (since Linux 2.6.11)"
2593 msgstr "B<PR_GET_NAME> (Linux 2.6.11 以降)"
2594
2595 #. type: Plain text
2596 #: build/C/man2/prctl.2:260
2597 msgid ""
2598 "Return the name of the calling thread, in the buffer pointed to by I<(char\\ "
2599 "*) arg2>.  The buffer should allow space for up to 16 bytes; the returned "
2600 "string will be null-terminated if it is shorter than that."
2601 msgstr ""
2602 "呼び出し元スレッドの名前を I<(char\\ *) arg2> が指す場所に格納して返す。 バッ"
2603 "ファは最大で 16 バイトを格納できるようにすべきである。 返される文字列は、長さ"
2604 "が 16 バイトより短い場合は NULL 終端される。"
2605
2606 #. type: TP
2607 #: build/C/man2/prctl.2:260
2608 #, no-wrap
2609 msgid "B<PR_SET_NO_NEW_PRIVS> (since Linux 3.5)"
2610 msgstr "B<PR_SET_NO_NEW_PRIVS> (Linux 3.5 以降)"
2611
2612 #. type: Plain text
2613 #: build/C/man2/prctl.2:283
2614 msgid ""
2615 "Set the calling process's I<no_new_privs> bit to the value in I<arg2>.  With "
2616 "I<no_new_privs> set to 1, B<execve>(2)  promises not to grant privileges to "
2617 "do anything that could not have been done without the B<execve>(2)  call "
2618 "(for example, rendering the set-user-ID and set-group-ID permission bits, "
2619 "and file capabilities non-functional).  Once set, this bit cannot be unset.  "
2620 "The setting of this bit is inherited by children created by B<fork>(2)  and "
2621 "B<clone>(2), and preserved across B<execve>(2)."
2622 msgstr ""
2623
2624 #. type: Plain text
2625 #: build/C/man2/prctl.2:286
2626 msgid ""
2627 "For more information, see the kernel source file I<Documentation/prctl/"
2628 "no_new_privs.txt>."
2629 msgstr ""
2630
2631 #. type: TP
2632 #: build/C/man2/prctl.2:286
2633 #, no-wrap
2634 msgid "B<PR_GET_NO_NEW_PRIVS> (since Linux 3.5)"
2635 msgstr "B<PR_GET_NO_NEW_PRIVS> (Linux 3.5 以降)"
2636
2637 #. type: Plain text
2638 #: build/C/man2/prctl.2:297
2639 msgid ""
2640 "Return the value of the I<no_new_privs> bit for the current process.  A "
2641 "value of 0 indicates the regular B<execve>(2)  behavior.  A value of 1 "
2642 "indicates B<execve>(2)  will operate in the privilege-restricting mode "
2643 "described above."
2644 msgstr ""
2645
2646 #. type: TP
2647 #: build/C/man2/prctl.2:297
2648 #, no-wrap
2649 msgid "B<PR_SET_PDEATHSIG> (since Linux 2.1.57)"
2650 msgstr "B<PR_SET_PDEATHSIG> (Linux 2.1.57 以降)"
2651
2652 #. type: Plain text
2653 #: build/C/man2/prctl.2:308
2654 msgid ""
2655 "Set the parent process death signal of the calling process to I<arg2> "
2656 "(either a signal value in the range 1..maxsig, or 0 to clear).  This is the "
2657 "signal that the calling process will get when its parent dies.  This value "
2658 "is cleared for the child of a B<fork>(2)  and (since Linux 2.4.36 / 2.6.23)  "
2659 "when executing a set-user-ID or set-group-ID binary."
2660 msgstr ""
2661 "親プロセス死亡シグナル (parent process death signal) を I<arg2> に設定\n"
2662 "する (設定できるシグナル値の範囲は 1..maxsig であり、0 は通知の解除であ\n"
2663 "る)。 呼び出し元プロセスの親プロセスが死んだ際に、ここで設定した値が シ\n"
2664 "グナルとして通知される。この値は B<fork>(2) の子プロセスでは解除される。\n"
2665 "(Linux 2.4.36 以降および 2.6.23 以降では) set-user-ID もしくは\n"
2666 "set-group-ID されたバイナリを実行した場合にも、このフラグは解除される。"
2667
2668 #. type: TP
2669 #: build/C/man2/prctl.2:308
2670 #, no-wrap
2671 msgid "B<PR_GET_PDEATHSIG> (since Linux 2.3.15)"
2672 msgstr "B<PR_GET_PDEATHSIG> (Linux 2.3.15 以降)"
2673
2674 #. type: Plain text
2675 #: build/C/man2/prctl.2:313
2676 msgid ""
2677 "Return the current value of the parent process death signal, in the location "
2678 "pointed to by I<(int\\ *) arg2>."
2679 msgstr ""
2680 "親プロセス死亡シグナルの現在の値を I<(int\\ *) arg2> が指す場所に格納して返"
2681 "す。"
2682
2683 #. type: TP
2684 #: build/C/man2/prctl.2:313
2685 #, no-wrap
2686 msgid "B<PR_SET_PTRACER> (since Linux 3.4)"
2687 msgstr "B<PR_SET_PTRACER> (Linux 3.4 以降)"
2688
2689 #.  commit 2d514487faf188938a4ee4fb3464eeecfbdcf8eb
2690 #.  commit bf06189e4d14641c0148bea16e9dd24943862215
2691 #. type: Plain text
2692 #: build/C/man2/prctl.2:338
2693 msgid ""
2694 "This is meaningful only when the Yama LSM is enabled and in mode 1 "
2695 "(\"restricted ptrace\", visible via I</proc/sys/kernel/yama/ptrace_scope>).  "
2696 "When a \"ptracer process ID\" is passed in I<arg2>, the caller is declaring "
2697 "that the ptracer process can B<ptrace>(2)  the calling process as if it were "
2698 "a direct process ancestor.  Each B<PR_SET_PTRACER> operation replaces the "
2699 "previous \"ptracer process ID\".  Employing B<PR_SET_PTRACER> with I<arg2> "
2700 "set to 0 clears the caller's \"ptracer process ID\".  If I<arg2> is "
2701 "B<PR_SET_PTRACER_ANY,> the ptrace restrictions introduced by Yama are "
2702 "effectively disabled for the calling process."
2703 msgstr ""
2704
2705 #. type: Plain text
2706 #: build/C/man2/prctl.2:341
2707 msgid ""
2708 "For further information, see the kernel source file I<Documentation/security/"
2709 "Yama.txt>."
2710 msgstr ""
2711
2712 #. type: TP
2713 #: build/C/man2/prctl.2:341
2714 #, no-wrap
2715 msgid "B<PR_SET_SECCOMP> (since Linux 2.6.23)"
2716 msgstr "B<PR_SET_SECCOMP> (Linux 2.6.23 以降)"
2717
2718 #.  See http://thread.gmane.org/gmane.linux.kernel/542632
2719 #.  [PATCH 0 of 2] seccomp updates
2720 #.  andrea@cpushare.com
2721 #. type: Plain text
2722 #: build/C/man2/prctl.2:352
2723 msgid ""
2724 "Set the secure computing (seccomp) mode for the calling thread, to limit the "
2725 "available system calls.  The seccomp mode is selected via I<arg2>.  (The "
2726 "seccomp constants are defined in I<E<lt>linux/seccomp.hE<gt>>.)"
2727 msgstr ""
2728
2729 #. type: Plain text
2730 #: build/C/man2/prctl.2:373
2731 msgid ""
2732 "With I<arg2> set to B<SECCOMP_MODE_STRICT> the only system calls that the "
2733 "thread is permitted to make are B<read>(2), B<write>(2), B<_exit>(2), and "
2734 "B<sigreturn>(2).  Other system calls result in the delivery of a B<SIGKILL> "
2735 "signal.  Strict secure computing mode is useful for number-crunching "
2736 "applications that may need to execute untrusted byte code, perhaps obtained "
2737 "by reading from a pipe or socket.  This operation is available only if the "
2738 "kernel is configured with B<CONFIG_SECCOMP> enabled."
2739 msgstr "I<arg2> を B<SECCOMP_MODE_STRICT> に設定すると、 そのスレッドが呼び出しを許可されるシステムコールは B<read>(2), B<write>(2), B<_exit>(2), B<sigreturn>(2) だけになる。 それ以外のシステムコールを呼び出すと、シグナル B<SIGKILL> が配送される。 パイプやソケットから読み込んだ、 信頼できないバイトコードを実行する必要がある大量の演算を行うアプリケーションにおいて、 strict secure computing モードは役立つ。 この操作は利用できるのは、 カーネルが B<CONFIG_SECCOMP> を有効にして作成されている場合だけである。"
2740
2741 #. type: Plain text
2742 #: build/C/man2/prctl.2:388
2743 msgid ""
2744 "With I<arg2> set to B<SECCOMP_MODE_FILTER> (since Linux 3.5)  the system "
2745 "calls allowed are defined by a pointer to a Berkeley Packet Filter passed in "
2746 "I<arg3>.  This argument is a pointer to I<struct sock_fprog>; it can be "
2747 "designed to filter arbitrary system calls and system call arguments.  This "
2748 "mode is available only if the kernel is configured with "
2749 "B<CONFIG_SECCOMP_FILTER> enabled."
2750 msgstr ""
2751
2752 #. type: Plain text
2753 #: build/C/man2/prctl.2:403
2754 msgid ""
2755 "If B<SECCOMP_MODE_FILTER> filters permit B<fork>(2), then the seccomp mode "
2756 "is inherited by children created by B<fork>(2); if B<execve>(2)  is "
2757 "permitted, then the seccomp mode is preserved across B<execve>(2).  If the "
2758 "filters permit B<prctl>()  calls, then additional filters can be added; they "
2759 "are run in order until the first non-allow result is seen."
2760 msgstr ""
2761
2762 #. type: Plain text
2763 #: build/C/man2/prctl.2:406
2764 msgid ""
2765 "For further information, see the kernel source file I<Documentation/prctl/"
2766 "seccomp_filter.txt>."
2767 msgstr ""
2768
2769 #. type: TP
2770 #: build/C/man2/prctl.2:406
2771 #, no-wrap
2772 msgid "B<PR_GET_SECCOMP> (since Linux 2.6.23)"
2773 msgstr "B<PR_GET_SECCOMP> (Linux 2.6.23 以降)"
2774
2775 #. type: Plain text
2776 #: build/C/man2/prctl.2:421
2777 msgid ""
2778 "Return the secure computing mode of the calling thread.  If the caller is "
2779 "not in secure computing mode, this operation returns 0; if the caller is in "
2780 "strict secure computing mode, then the B<prctl>()  call will cause a "
2781 "B<SIGKILL> signal to be sent to the process.  If the caller is in filter "
2782 "mode, and this system call is allowed by the seccomp filters, it returns 2.  "
2783 "This operation is available only if the kernel is configured with "
2784 "B<CONFIG_SECCOMP> enabled."
2785 msgstr ""
2786 "呼び出したスレッドの secure computing モードを返す。 呼び出したスレッドが "
2787 "secure computing モードでなかった場合、 この操作は 0 を返す。 呼び出したス"
2788 "レッドが secure computing モードの場合、 B<prctl>()  を呼び出すとシグナル "
2789 "B<SIGKILL> がそのプロセスに送信される。 呼び出したスレッドがフィルタモード"
2790 "で、 このシステムコールが seccomp フィルタにより許可されている場合、 2 を返"
2791 "す。 この操作が利用できるのは、カーネルが B<CONFIG_SECCOMP> を有効にして作成"
2792 "されている場合だけである。"
2793
2794 #. type: TP
2795 #: build/C/man2/prctl.2:421
2796 #, no-wrap
2797 msgid "B<PR_SET_SECUREBITS> (since Linux 2.6.26)"
2798 msgstr "B<PR_SET_SECUREBITS> (Linux 2.6.26 以降)"
2799
2800 #. type: Plain text
2801 #: build/C/man2/prctl.2:427
2802 msgid ""
2803 "Set the \"securebits\" flags of the calling thread to the value supplied in "
2804 "I<arg2>.  See B<capabilities>(7)."
2805 msgstr ""
2806 "呼び出したスレッドの \"securebits\" フラグを I<arg2> で渡された値に設定す"
2807 "る。 B<capabilities>(7)  参照。"
2808
2809 #. type: TP
2810 #: build/C/man2/prctl.2:427
2811 #, no-wrap
2812 msgid "B<PR_GET_SECUREBITS> (since Linux 2.6.26)"
2813 msgstr "B<PR_GET_SECUREBITS> (Linux 2.6.26 以降)"
2814
2815 #. type: Plain text
2816 #: build/C/man2/prctl.2:433
2817 msgid ""
2818 "Return (as the function result)  the \"securebits\" flags of the calling "
2819 "thread.  See B<capabilities>(7)."
2820 msgstr ""
2821 "呼び出したスレッドの \"securebits\" フラグを (関数の返り値として) 返す。 "
2822 "B<capabilities>(7)  参照。"
2823
2824 #. type: TP
2825 #: build/C/man2/prctl.2:433
2826 #, no-wrap
2827 msgid "B<PR_GET_TID_ADDRESS> (since Linux 3.5)"
2828 msgstr "B<PR_GET_TID_ADDRESS> (Linux 3.5 以降)"
2829
2830 #.  commit 300f786b2683f8bb1ec0afb6e1851183a479c86d
2831 #. type: Plain text
2832 #: build/C/man2/prctl.2:448
2833 msgid ""
2834 "Retrieve the I<clear_child_tid> address set by B<set_tid_address>(2)  and "
2835 "the B<clone>(2)  B<CLONE_CHILD_CLEARTID> flag, in the location pointed to by "
2836 "I<(int\\ **)\\ arg2>.  This feature is available only if the kernel is built "
2837 "with the B<CONFIG_CHECKPOINT_RESTORE> option enabled."
2838 msgstr ""
2839
2840 #. type: TP
2841 #: build/C/man2/prctl.2:448
2842 #, no-wrap
2843 msgid "B<PR_SET_TIMERSLACK> (since Linux 2.6.28)"
2844 msgstr "B<PR_SET_TIMERSLACK> (Linux 2.6.28 以降)"
2845
2846 #.  See https://lwn.net/Articles/369549/
2847 #.  commit 6976675d94042fbd446231d1bd8b7de71a980ada
2848 #.  It seems that it's not possible to set the timer slack to zero;
2849 #.  The minimum value is 1? Seems a little strange.
2850 #. type: Plain text
2851 #: build/C/man2/prctl.2:467
2852 msgid ""
2853 "Set the current timer slack for the calling thread to the nanosecond value "
2854 "supplied in I<arg2>.  If I<arg2> is less than or equal to zero, reset the "
2855 "current timer slack to the thread's default timer slack value.  The timer "
2856 "slack is used by the kernel to group timer expirations for the calling "
2857 "thread that are close to one another; as a consequence, timer expirations "
2858 "for the thread may be up to the specified number of nanoseconds late (but "
2859 "will never expire early).  Grouping timer expirations can help reduce system "
2860 "power consumption by minimizing CPU wake-ups."
2861 msgstr ""
2862
2863 #.  List obtained by grepping for futex usage in glibc source
2864 #. type: Plain text
2865 #: build/C/man2/prctl.2:487
2866 msgid ""
2867 "The timer expirations affected by timer slack are those set by B<select>(2), "
2868 "B<pselect>(2), B<poll>(2), B<ppoll>(2), B<epoll_wait>(2), B<epoll_pwait>(2), "
2869 "B<clock_nanosleep>(2), B<nanosleep>(2), and B<futex>(2)  (and thus the "
2870 "library functions implemented via futexes, including "
2871 "B<pthread_cond_timedwait>(3), B<pthread_mutex_timedlock>(3), "
2872 "B<pthread_rwlock_timedrdlock>(3), B<pthread_rwlock_timedwrlock>(3), and "
2873 "B<sem_timedwait>(3))."
2874 msgstr ""
2875
2876 #. type: Plain text
2877 #: build/C/man2/prctl.2:491
2878 msgid ""
2879 "Timer slack is not applied to threads that are scheduled under a realtime "
2880 "scheduling policy (see B<sched_setscheduler>(2))."
2881 msgstr ""
2882
2883 #. type: Plain text
2884 #: build/C/man2/prctl.2:508
2885 msgid ""
2886 "Each thread has two associated timer slack values: a \"default\" value, and "
2887 "a \"current\" value.  The current value is the one that governs grouping of "
2888 "timer expirations.  When a new thread is created, the two timer slack values "
2889 "are made the same as the current value of the creating thread.  Thereafter, "
2890 "a thread can adjust its current timer slack value via B<PR_SET_TIMERSLACK> "
2891 "(the default value can't be changed).  The timer slack values of I<init> "
2892 "(PID 1), the ancestor of all processes, are 50,000 nanoseconds (50 "
2893 "microseconds).  The timer slack values are preserved across B<execve>(2)."
2894 msgstr ""
2895
2896 #. type: TP
2897 #: build/C/man2/prctl.2:508
2898 #, no-wrap
2899 msgid "B<PR_GET_TIMERSLACK> (since Linux 2.6.28)"
2900 msgstr "B<PR_GET_TIMERSLACK> (Linux 2.6.28 以降)"
2901
2902 #. type: Plain text
2903 #: build/C/man2/prctl.2:511
2904 msgid "Return the current timer slack value of the calling thread."
2905 msgstr ""
2906
2907 #. type: TP
2908 #: build/C/man2/prctl.2:511
2909 #, no-wrap
2910 msgid "B<PR_SET_TIMING> (since Linux 2.6.0-test4)"
2911 msgstr "B<PR_SET_TIMING> (Linux 2.6.0-test4 以降)"
2912
2913 #.  0
2914 #.  1
2915 #.  PR_TIMING_TIMESTAMP doesn't do anything in 2.6.26-rc8,
2916 #.  and looking at the patch history, it appears
2917 #.  that it never did anything.
2918 #. type: Plain text
2919 #: build/C/man2/prctl.2:528
2920 msgid ""
2921 "Set whether to use (normal, traditional) statistical process timing or "
2922 "accurate timestamp-based process timing, by passing B<PR_TIMING_STATISTICAL> "
2923 "or B<PR_TIMING_TIMESTAMP> to I<arg2>.  B<PR_TIMING_TIMESTAMP> is not "
2924 "currently implemented (attempting to set this mode will yield the error "
2925 "B<EINVAL>)."
2926 msgstr ""
2927 "(通常の、伝統的に使われてきた) 統計的なプロセスタイミングを使用するか、\n"
2928 "正確なタイムスタンプに基づくプロセスタイミングを使用するかを設定する。\n"
2929 "I<arg2> に指定できる値は B<PR_TIMING_STATISTICAL> か\n"
2930 "B<PR_TIMING_TIMESTAMP> である。 B<PR_TIMING_TIMESTAMP> は現在のところ実\n"
2931 "装されていない (このモードに設定しようとするとエラー B<EINVAL> が起こる\n"
2932 "ことだろう)。"
2933
2934 #. type: TP
2935 #: build/C/man2/prctl.2:528
2936 #, no-wrap
2937 msgid "B<PR_GET_TIMING> (since Linux 2.6.0-test4)"
2938 msgstr "B<PR_GET_TIMING> (Linux 2.6.0-test4 以降)"
2939
2940 #. type: Plain text
2941 #: build/C/man2/prctl.2:532
2942 msgid ""
2943 "Return (as the function result) which process timing method is currently in "
2944 "use."
2945 msgstr "現在使用中のプロセスタイミングを決める方法を返す。"
2946
2947 #. type: TP
2948 #: build/C/man2/prctl.2:532
2949 #, no-wrap
2950 msgid "B<PR_TASK_PERF_EVENTS_DISABLE> (since Linux 2.6.31)"
2951 msgstr "B<PR_TASK_PERF_EVENTS_DISABLE> (Linux 2.6.31 以降)"
2952
2953 #. type: Plain text
2954 #: build/C/man2/prctl.2:541
2955 msgid ""
2956 "Disable all performance counters attached to the calling process, regardless "
2957 "of whether the counters were created by this process or another process.  "
2958 "Performance counters created by the calling process for other processes are "
2959 "unaffected.  For more information on performance counters, see the Linux "
2960 "kernel source file I<tools/perf/design.txt>."
2961 msgstr ""
2962
2963 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
2964 #. type: Plain text
2965 #: build/C/man2/prctl.2:547
2966 msgid ""
2967 "Originally called B<PR_TASK_PERF_COUNTERS_DISABLE>; renamed (with same "
2968 "numerical value)  in Linux 2.6.32."
2969 msgstr ""
2970 "以前は B<PR_TASK_PERF_COUNTERS_DISABLE> と呼ばれていた。\n"
2971 "Linux 2.6.32 で名前が変更された (数値は同じままである)。"
2972
2973 #. type: TP
2974 #: build/C/man2/prctl.2:547
2975 #, no-wrap
2976 msgid "B<PR_TASK_PERF_EVENTS_ENABLE> (since Linux 2.6.31)"
2977 msgstr "B<PR_TASK_PERF_EVENTS_ENABLE> (Linux 2.6.31 以降)"
2978
2979 #. type: Plain text
2980 #: build/C/man2/prctl.2:552
2981 msgid ""
2982 "The converse of B<PR_TASK_PERF_EVENTS_DISABLE>; enable performance counters "
2983 "attached to the calling process."
2984 msgstr ""
2985
2986 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
2987 #.  commit cdd6c482c9ff9c55475ee7392ec8f672eddb7be6
2988 #. type: Plain text
2989 #: build/C/man2/prctl.2:559
2990 msgid ""
2991 "Originally called B<PR_TASK_PERF_COUNTERS_ENABLE>; renamed in Linux 2.6.32."
2992 msgstr ""
2993 "以前は B<PR_TASK_PERF_COUNTERS_ENABLE> と呼ばれていた。\n"
2994 "Linux 2.6.32 で名前が変更された。"
2995
2996 #. type: TP
2997 #: build/C/man2/prctl.2:559
2998 #, no-wrap
2999 msgid "B<PR_SET_TSC> (since Linux 2.6.26, x86 only)"
3000 msgstr "B<PR_SET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3001
3002 #. type: Plain text
3003 #: build/C/man2/prctl.2:572
3004 msgid ""
3005 "Set the state of the flag determining whether the timestamp counter can be "
3006 "read by the process.  Pass B<PR_TSC_ENABLE> to I<arg2> to allow it to be "
3007 "read, or B<PR_TSC_SIGSEGV> to generate a B<SIGSEGV> when the process tries "
3008 "to read the timestamp counter."
3009 msgstr ""
3010 "そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する フラグの状態を"
3011 "設定する。 読み出しを許可する場合は I<arg2> に B<PR_TSC_ENABLE> を、そのプロ"
3012 "セスがタイムスタンプ・カウンタを読み出そうとした際に B<SIGSEGV> を発生させる"
3013 "場合には B<PR_TSC_SIGSEGV> を渡す。"
3014
3015 #. type: TP
3016 #: build/C/man2/prctl.2:572
3017 #, no-wrap
3018 msgid "B<PR_GET_TSC> (since Linux 2.6.26, x86 only)"
3019 msgstr "B<PR_GET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3020
3021 #. type: Plain text
3022 #: build/C/man2/prctl.2:578
3023 msgid ""
3024 "Return the state of the flag determining whether the timestamp counter can "
3025 "be read, in the location pointed to by I<(int\\ *) arg2>."
3026 msgstr ""
3027 "そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する フラグの状態"
3028 "を I<(int\\ *) arg2> が指す場所に格納して返す。"
3029
3030 #. type: TP
3031 #: build/C/man2/prctl.2:578
3032 #, no-wrap
3033 msgid "B<PR_SET_UNALIGN>"
3034 msgstr "B<PR_SET_UNALIGN>"
3035
3036 #. type: Plain text
3037 #: build/C/man2/prctl.2:588
3038 msgid ""
3039 "(Only on: ia64, since Linux 2.3.48; parisc, since Linux 2.6.15; PowerPC, "
3040 "since Linux 2.6.18; Alpha, since Linux 2.6.22)  Set unaligned access control "
3041 "bits to I<arg2>.  Pass B<PR_UNALIGN_NOPRINT> to silently fix up unaligned "
3042 "user accesses, or B<PR_UNALIGN_SIGBUS> to generate B<SIGBUS> on unaligned "
3043 "user access."
3044 msgstr ""
3045 "(ia64 では Linux 2.3.48 以降; parisc では Linux 2.6.15 以降; PowerPC では "
3046 "Linux 2.6.18 以降; Alpha では Linux 2.6.22 以降; これらのアーキテクチャの"
3047 "み)  unaligned アクセス制御ビットを I<arg2> で指定された値に設定する。 指定で"
3048 "きる値は B<PR_UNALIGN_NOPRINT> (unaligned なユーザアクセスを黙って 修正する) "
3049 "か B<PR_UNALIGN_SIGBUS> (unaligned なユーザアクセスがあった場合 B<SIGBUS> を"
3050 "生成する) である。"
3051
3052 #. type: TP
3053 #: build/C/man2/prctl.2:588
3054 #, no-wrap
3055 msgid "B<PR_GET_UNALIGN>"
3056 msgstr "B<PR_GET_UNALIGN>"
3057
3058 #. type: Plain text
3059 #: build/C/man2/prctl.2:595
3060 msgid ""
3061 "(see B<PR_SET_UNALIGN> for information on versions and architectures)  "
3062 "Return unaligned access control bits, in the location pointed to by I<(int\\ "
3063 "*) arg2>."
3064 msgstr ""
3065 "(バージョンとアーキテクチャの情報は B<PR_SET_UNALIGN> 参照)  unaligned アクセ"
3066 "ス制御ビットの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
3067
3068 #. type: TP
3069 #: build/C/man2/prctl.2:595
3070 #, no-wrap
3071 msgid "B<PR_MCE_KILL> (since Linux 2.6.32)"
3072 msgstr "B<PR_MCE_KILL> (Linux 2.6.32 以降)"
3073
3074 #. type: Plain text
3075 #: build/C/man2/prctl.2:635
3076 msgid ""
3077 "Set the machine check memory corruption kill policy for the current thread.  "
3078 "If I<arg2> is B<PR_MCE_KILL_CLEAR>, clear the thread memory corruption kill "
3079 "policy and use the system-wide default.  (The system-wide default is defined "
3080 "by I</proc/sys/vm/memory_failure_early_kill>; see B<proc>(5).)  If I<arg2> "
3081 "is B<PR_MCE_KILL_SET>, use a thread-specific memory corruption kill policy.  "
3082 "In this case, I<arg3> defines whether the policy is I<early kill> "
3083 "(B<PR_MCE_KILL_EARLY>), I<late kill> (B<PR_MCE_KILL_LATE>), or the system-"
3084 "wide default (B<PR_MCE_KILL_DEFAULT>).  Early kill means that the thread "
3085 "receives a B<SIGBUS> signal as soon as hardware memory corruption is "
3086 "detected inside its address space.  In late kill mode, the process is killed "
3087 "only when it accesses a corrupted page.  See B<sigaction>(2)  for more "
3088 "information on the B<SIGBUS> signal.  The policy is inherited by children.  "
3089 "The remaining unused B<prctl>()  arguments must be zero for future "
3090 "compatibility."
3091 msgstr ""
3092
3093 #. type: TP
3094 #: build/C/man2/prctl.2:635
3095 #, no-wrap
3096 msgid "B<PR_MCE_KILL_GET> (since Linux 2.6.32)"
3097 msgstr "B<PR_MCE_KILL_GET> (Linux 2.6.32 以降)"
3098
3099 #. type: Plain text
3100 #: build/C/man2/prctl.2:641
3101 msgid ""
3102 "Return the current per-process machine check kill policy.  All unused "
3103 "B<prctl>()  arguments must be zero."
3104 msgstr ""
3105
3106 #. type: TP
3107 #: build/C/man2/prctl.2:641
3108 #, no-wrap
3109 msgid "B<PR_SET_MM> (since Linux 3.3)"
3110 msgstr "B<PR_SET_MM> (Linux 3.3 以降)"
3111
3112 #. type: Plain text
3113 #: build/C/man2/prctl.2:661
3114 msgid ""
3115 "Modify certain kernel memory map descriptor fields of the calling process.  "
3116 "Usually these fields are set by the kernel and dynamic loader (see B<ld.so>"
3117 "(8)  for more information) and a regular application should not use this "
3118 "feature.  However, there are cases, such as self-modifying programs, where a "
3119 "program might find it useful to change its own memory map.  This feature is "
3120 "available only if the kernel is built with the B<CONFIG_CHECKPOINT_RESTORE> "
3121 "option enabled.  The calling process must have the B<CAP_SYS_RESOURCE> "
3122 "capability.  The value in I<arg2> is one of the options below, while I<arg3> "
3123 "provides a new value for the option."
3124 msgstr ""
3125
3126 #. type: TP
3127 #: build/C/man2/prctl.2:662
3128 #, no-wrap
3129 msgid "B<PR_SET_MM_START_CODE>"
3130 msgstr "B<PR_SET_MM_START_CODE>"
3131
3132 #. type: Plain text
3133 #: build/C/man2/prctl.2:671
3134 msgid ""
3135 "Set the address above which the program text can run.  The corresponding "
3136 "memory area must be readable and executable, but not writable or sharable "
3137 "(see B<mprotect>(2)  and B<mmap>(2)  for more information)."
3138 msgstr ""
3139
3140 #. type: TP
3141 #: build/C/man2/prctl.2:671
3142 #, no-wrap
3143 msgid "B<PR_SET_MM_END_CODE>"
3144 msgstr "B<PR_SET_MM_END_CODE>"
3145
3146 #. type: Plain text
3147 #: build/C/man2/prctl.2:676
3148 msgid ""
3149 "Set the address below which the program text can run.  The corresponding "
3150 "memory area must be readable and executable, but not writable or sharable."
3151 msgstr ""
3152
3153 #. type: TP
3154 #: build/C/man2/prctl.2:676
3155 #, no-wrap
3156 msgid "B<PR_SET_MM_START_DATA>"
3157 msgstr "B<PR_SET_MM_START_DATA>"
3158
3159 #. type: Plain text
3160 #: build/C/man2/prctl.2:682
3161 msgid ""
3162 "Set the address above which initialized and uninitialized (bss) data are "
3163 "placed.  The corresponding memory area must be readable and writable, but "
3164 "not executable or sharable."
3165 msgstr ""
3166
3167 #. type: TP
3168 #: build/C/man2/prctl.2:682
3169 #, no-wrap
3170 msgid "B<PR_SET_MM_END_DATA>"
3171 msgstr "B<PR_SET_MM_END_DATA>"
3172
3173 #. type: Plain text
3174 #: build/C/man2/prctl.2:688
3175 msgid ""
3176 "Set the address below which initialized and uninitialized (bss) data are "
3177 "placed.  The corresponding memory area must be readable and writable, but "
3178 "not executable or sharable."
3179 msgstr ""
3180
3181 #. type: TP
3182 #: build/C/man2/prctl.2:688
3183 #, no-wrap
3184 msgid "B<PR_SET_MM_START_STACK>"
3185 msgstr "B<PR_SET_MM_START_STACK>"
3186
3187 #. type: Plain text
3188 #: build/C/man2/prctl.2:692
3189 msgid ""
3190 "Set the start address of the stack.  The corresponding memory area must be "
3191 "readable and writable."
3192 msgstr ""
3193
3194 #. type: TP
3195 #: build/C/man2/prctl.2:692
3196 #, no-wrap
3197 msgid "B<PR_SET_MM_START_BRK>"
3198 msgstr "B<PR_SET_MM_START_BRK>"
3199
3200 #. type: Plain text
3201 #: build/C/man2/prctl.2:704
3202 msgid ""
3203 "Set the address above which the program heap can be expanded with B<brk>(2)  "
3204 "call.  The address must be greater than the ending address of the current "
3205 "program data segment.  In addition, the combined size of the resulting heap "
3206 "and the size of the data segment can't exceed the B<RLIMIT_DATA> resource "
3207 "limit (see B<setrlimit>(2))."
3208 msgstr ""
3209
3210 #. type: TP
3211 #: build/C/man2/prctl.2:704
3212 #, no-wrap
3213 msgid "B<PR_SET_MM_BRK>"
3214 msgstr "B<PR_SET_MM_BRK>"
3215
3216 #.  FIXME The following (until ========) is not yet in mainline kernel,
3217 #.  so commented out for the moment.
3218 #.  .TP
3219 #.  .BR PR_SET_MM_ARG_START
3220 #.  Set the address above which the program command line is placed.
3221 #.  .TP
3222 #.  .BR PR_SET_MM_ARG_END
3223 #.  Set the address below which the program command line is placed.
3224 #.  .TP
3225 #.  .BR PR_SET_MM_ENV_START
3226 #.  Set the address above which the program environment is placed.
3227 #.  .TP
3228 #.  .BR PR_SET_MM_ENV_END
3229 #.  Set the address below which the program environment is placed.
3230 #.  .IP
3231 #.  The address passed with
3232 #.  .BR PR_SET_MM_ARG_START ,
3233 #.  .BR PR_SET_MM_ARG_END ,
3234 #.  .BR PR_SET_MM_ENV_START ,
3235 #.  and
3236 #.  .BR PR_SET_MM_ENV_END
3237 #.  should belong to a process stack area.
3238 #.  Thus, the corresponding memory area must be readable, writable, and
3239 #.  (depending on the kernel configuration) have the
3240 #.  .BR MAP_GROWSDOWN
3241 #.  attribute set (see
3242 #.  .BR mmap (2)).
3243 #.  .TP
3244 #.  .BR PR_SET_MM_AUXV
3245 #.  Set a new auxiliary vector.
3246 #.  The
3247 #.  .I arg3
3248 #.  argument should provide the address of the vector.
3249 #.  The
3250 #.  .I arg4
3251 #.  is the size of the vector.
3252 #.  .TP
3253 #.  .BR PR_SET_MM_EXE_FILE
3254 #.  Supersede the
3255 #.  .IR /proc/pid/exe
3256 #.  symbolic link with a new one pointing to a new executable file
3257 #.  identified by the file descriptor provided in
3258 #.  .I arg3
3259 #.  argument.
3260 #.  The file descriptor should be obtained with a regular
3261 #.  .BR open (2)
3262 #.  call.
3263 #.  .IP
3264 #.  To change the symbolic link, one needs to unmap all existing
3265 #.  executable memory areas, including those created by the kernel itself
3266 #.  (for example the kernel usually creates at least one executable
3267 #.  memory area for the ELF
3268 #.  .IR .text
3269 #.  section).
3270 #.  .IP
3271 #.  The second limitation is that such transitions can be done only once
3272 #.  in a process life time.
3273 #.  Any further attempts will be rejected.
3274 #.  This should help system administrators to monitor unusual
3275 #.  symbolic-link transitions over all process running in a system.
3276 #.  ========== END FIXME
3277 #. type: Plain text
3278 #: build/C/man2/prctl.2:773
3279 msgid ""
3280 "Set the current B<brk>(2)  value.  The requirements for the address are the "
3281 "same as for the B<PR_SET_MM_START_BRK> option."
3282 msgstr ""
3283
3284 #. type: Plain text
3285 #: build/C/man2/prctl.2:793
3286 msgid ""
3287 "On success, B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, B<PR_GET_NO_NEW_PRIVS>, "
3288 "B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, B<PR_GET_SECUREBITS>, "
3289 "B<PR_MCE_KILL_GET>, and (if it returns)  B<PR_GET_SECCOMP> return the "
3290 "nonnegative values described above.  All other I<option> values return 0 on "
3291 "success.  On error, -1 is returned, and I<errno> is set appropriately."
3292 msgstr ""
3293 "成功すると、 B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, "
3294 "B<PR_GET_NO_NEW_PRIVS>,\n"
3295 "B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, B<PR_GET_SECUREBITS>,\n"
3296 "B<PR_MCE_KILL_GET>, B<PR_GET_SECCOMP> は上述の負でない値を返す (なお、\n"
3297 "B<PR_GET_SECCOMP> は返らない場合もある)。 I<option> が他の値の場合は\n"
3298 "成功時に 0 を返す。\n"
3299 "エラーの場合、-1 を返し、 I<errno> に適切な値を設定する。"
3300
3301 #. type: Plain text
3302 #: build/C/man2/prctl.2:798
3303 msgid "I<arg2> is an invalid address."
3304 msgstr "I<arg2> が不正なアドレスである。"
3305
3306 #. type: Plain text
3307 #: build/C/man2/prctl.2:803
3308 msgid "The value of I<option> is not recognized."
3309 msgstr "I<option> の値が理解できない。"
3310
3311 #. type: Plain text
3312 #: build/C/man2/prctl.2:815
3313 msgid ""
3314 "I<option> is B<PR_MCE_KILL> or B<PR_MCE_KILL_GET> or B<PR_SET_MM>, and "
3315 "unused B<prctl>()  arguments were not specified as zero."
3316 msgstr ""
3317
3318 #. type: Plain text
3319 #: build/C/man2/prctl.2:820
3320 msgid "I<arg2> is not valid value for this I<option>."
3321 msgstr "I<arg2> が指定された I<option> で有効な値ではない。"
3322
3323 #. type: Plain text
3324 #: build/C/man2/prctl.2:829
3325 msgid ""
3326 "I<option> is B<PR_SET_SECCOMP> or B<PR_GET_SECCOMP>, and the kernel was not "
3327 "configured with B<CONFIG_SECCOMP>."
3328 msgstr ""
3329 "I<option> が B<PR_SET_SECCOMP> か B<PR_GET_SECCOMP> だが、カーネルが "
3330 "B<CONFIG_SECCOMP> を有効にして作成されていなかった。"
3331
3332 #. type: Plain text
3333 #: build/C/man2/prctl.2:835
3334 msgid "I<option> is B<PR_SET_MM>, and one of the following is true"
3335 msgstr ""
3336
3337 #. type: Plain text
3338 #: build/C/man2/prctl.2:841
3339 msgid "I<arg4> or I<arg5> is nonzero;"
3340 msgstr ""
3341
3342 #. type: Plain text
3343 #: build/C/man2/prctl.2:846
3344 msgid ""
3345 "I<arg3> is greater than B<TASK_SIZE> (the limit on the size of the user "
3346 "address space for this architecture);"
3347 msgstr ""
3348
3349 #. type: Plain text
3350 #: build/C/man2/prctl.2:856
3351 msgid ""
3352 "I<arg2> is B<PR_SET_MM_START_CODE>, B<PR_SET_MM_END_CODE>, "
3353 "B<PR_SET_MM_START_DATA>, B<PR_SET_MM_END_DATA>, or B<PR_SET_MM_START_STACK,> "
3354 "and the permissions of the corresponding memory area are not as required;"
3355 msgstr ""
3356
3357 #. type: Plain text
3358 #: build/C/man2/prctl.2:868
3359 msgid ""
3360 "I<arg2> is B<PR_SET_MM_START_BRK> or B<PR_SET_MM_BRK>, and I<arg3> is less "
3361 "than or equal to the end of the data segment or specifies a value that would "
3362 "cause the B<RLIMIT_DATA> resource limit to be exceeded."
3363 msgstr ""
3364
3365 #. type: Plain text
3366 #: build/C/man2/prctl.2:879
3367 msgid ""
3368 "I<option> is B<PR_SET_PTRACER> and I<arg2> is not 0, B<PR_SET_PTRACER_ANY>, "
3369 "or the PID of an existing process."
3370 msgstr ""
3371
3372 #. type: Plain text
3373 #: build/C/man2/prctl.2:891
3374 msgid ""
3375 "I<option> is B<PR_SET_SECUREBITS>, and the caller does not have the "
3376 "B<CAP_SETPCAP> capability, or tried to unset a \"locked\" flag, or tried to "
3377 "set a flag whose corresponding locked flag was set (see B<capabilities>(7))."
3378 msgstr ""
3379 "I<option> が B<PR_SET_SECUREBITS> で、呼び出し元がケーパビリティ "
3380 "B<CAP_SETPCAP> を持っていない。 または、\"locked\" フラグを解除しようとし"
3381 "た。 または、locked フラグがセットされているフラグをセットしようとした "
3382 "(B<capabilities>(7)  参照)。"
3383
3384 #. type: Plain text
3385 #: build/C/man2/prctl.2:901
3386 msgid ""
3387 "I<option> is B<PR_SET_KEEPCAPS>, and the callers's "
3388 "B<SECURE_KEEP_CAPS_LOCKED> flag is set (see B<capabilities>(7))."
3389 msgstr ""
3390 "I<option> が B<PR_SET_KEEPCAPS> で、呼び出し元のフラグ "
3391 "B<SECURE_KEEP_CAPS_LOCKED> がセットされている (B<capabilities>(7)  参照)。"
3392
3393 #. type: Plain text
3394 #: build/C/man2/prctl.2:909
3395 msgid ""
3396 "I<option> is B<PR_CAPBSET_DROP>, and the caller does not have the "
3397 "B<CAP_SETPCAP> capability."
3398 msgstr ""
3399 "I<option> が B<PR_CAPBSET_DROP> で、呼び出し元がケーパビリティ "
3400 "B<CAP_SETPCAP> を持っていない。"
3401
3402 #.  FIXME The following (until ========) is not yet in mainline kernel,
3403 #.  so commented out for the moment.
3404 #.  .TP
3405 #.  .B EACCES
3406 #.  .I option
3407 #.  is
3408 #.  .BR PR_SET_MM ,
3409 #.  and
3410 #.  .I arg3
3411 #.  is
3412 #.  .BR PR_SET_MM_EXE_FILE ,
3413 #.  the file is not executable.
3414 #.  .TP
3415 #.  .B EBUSY
3416 #.  .I option
3417 #.  is
3418 #.  .BR PR_SET_MM ,
3419 #.  .I arg3
3420 #.  is
3421 #.  .BR PR_SET_MM_EXE_FILE ,
3422 #.  and this the second attempt to change the
3423 #.  .I /proc/pid/exe
3424 #.  symbolic link, which is prohibited.
3425 #.  .TP
3426 #.  .B EBADF
3427 #.  .I option
3428 #.  is
3429 #.  .BR PR_SET_MM ,
3430 #.  .I arg3
3431 #.  is
3432 #.  .BR PR_SET_MM_EXE_FILE ,
3433 #.  and the file descriptor passed in
3434 #.  .I arg4
3435 #.  is not valid.
3436 #.  ========== END FIXME
3437 #.  The following can't actually happen, because prctl() in
3438 #.  seccomp mode will cause SIGKILL.
3439 #.  .TP
3440 #.  .B EPERM
3441 #.  .I option
3442 #.  is
3443 #.  .BR PR_SET_SECCOMP ,
3444 #.  and secure computing mode is already 1.
3445 #. type: Plain text
3446 #: build/C/man2/prctl.2:960
3447 msgid ""
3448 "I<option> is B<PR_SET_MM>, and the caller does not have the "
3449 "B<CAP_SYS_RESOURCE> capability."
3450 msgstr ""
3451 "I<option> が B<PR_SET_MM> で、呼び出し元がケーパビリティ\n"
3452 "B<CAP_SYS_RESOURCE> を持っていない。"
3453
3454 #.  The library interface was added in glibc 2.0.6
3455 #. type: Plain text
3456 #: build/C/man2/prctl.2:965
3457 msgid "The B<prctl>()  system call was introduced in Linux 2.1.57."
3458 msgstr "B<prctl>()  システムコールは Linux 2.1.57 で導入された。"
3459
3460 #. type: Plain text
3461 #: build/C/man2/prctl.2:972
3462 msgid ""
3463 "This call is Linux-specific.  IRIX has a B<prctl>()  system call (also "
3464 "introduced in Linux 2.1.44 as irix_prctl on the MIPS architecture), with "
3465 "prototype"
3466 msgstr ""
3467 "このコールは Linux 特有である。 IRIX には B<prctl>()  システム・コールがある"
3468 "が (MIPS アーキテクチャにおいて irix_prctl として Linux 2.1.44 で同様に導入さ"
3469 "れた)、 そのプロトタイプは"
3470
3471 #. type: Plain text
3472 #: build/C/man2/prctl.2:974
3473 msgid "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
3474 msgstr "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
3475
3476 #. type: Plain text
3477 #: build/C/man2/prctl.2:979
3478 msgid ""
3479 "and options to get the maximum number of processes per user, get the maximum "
3480 "number of processors the calling process can use, find out whether a "
3481 "specified process is currently blocked, get or set the maximum stack size, "
3482 "and so on."
3483 msgstr ""
3484 "である。ユーザー当りのプロセス最大数を取得するオプション、 プロセスの使用でき"
3485 "る最大プロッサー数を取得するオプション、 現在特定のプロセスが停止(block)させ"
3486 "られているかどうか調べるオプション、 スタックサイズの最大値の取得や設定を行な"
3487 "うオプションなどがある。"
3488
3489 #. type: Plain text
3490 #: build/C/man2/prctl.2:982
3491 msgid "B<signal>(2), B<core>(5)"
3492 msgstr "B<signal>(2), B<core>(5)"
3493
3494 #. type: TH
3495 #: build/C/man3/profil.3:28
3496 #, no-wrap
3497 msgid "PROFIL"
3498 msgstr "PROFIL"
3499
3500 #. type: Plain text
3501 #: build/C/man3/profil.3:31
3502 msgid "profil - execution time profile"
3503 msgstr "profil - 実行時間プロファイル (profile)"
3504
3505 #. type: Plain text
3506 #: build/C/man3/profil.3:34
3507 #, no-wrap
3508 msgid "B<#include E<lt>unistd.hE<gt>>\n"
3509 msgstr "B<#include E<lt>unistd.hE<gt>>\n"
3510
3511 #. type: Plain text
3512 #: build/C/man3/profil.3:37
3513 #, no-wrap
3514 msgid ""
3515 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<,>\n"
3516 "B<           size_t >I<offset>B<, unsigned int >I<scale>B<);>\n"
3517 msgstr ""
3518 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<,>\n"
3519 "B<           size_t >I<offset>B<, unsigned int >I<scale>B<);>\n"
3520
3521 #. type: Plain text
3522 #: build/C/man3/profil.3:46
3523 msgid ""
3524 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
3525 msgstr ""
3526 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
3527
3528 #. type: Plain text
3529 #: build/C/man3/profil.3:68
3530 msgid ""
3531 "This routine provides a means to find out in what areas your program spends "
3532 "most of its time.  The argument I<buf> points to I<bufsiz> bytes of core.  "
3533 "Every virtual 10 milliseconds, the user's program counter (PC)  is examined: "
3534 "I<offset> is subtracted and the result is multiplied by I<scale> and divided "
3535 "by 65536.  If the resulting value is less than I<bufsiz>, then the "
3536 "corresponding entry in I<buf> is incremented.  If I<buf> is NULL, profiling "
3537 "is disabled."
3538 msgstr ""
3539 "このルーティンはプログラムのどこの部分で時間を費やしているかを調べる 手段を提"
3540 "供する。引き数 I<buf> は I<bufsiz> バイトのメモリを指している。仮想の 10 ミリ"
3541 "秒ごとに、ユーザーの プログラム・カウンター (PC) が検査される: I<offset> が引"
3542 "かれ、その結果が I<scale> 倍され 65536 で割られる。 結果が I<bufsiz> より小さ"
3543 "い場合は I<buf> の対応するエントリがインクリメントされる。 I<buf> が NULL な"
3544 "らば、プロファイル (profile) は無効にされる。"
3545
3546 #. type: Plain text
3547 #: build/C/man3/profil.3:70
3548 msgid "Zero is always returned."
3549 msgstr "常に 0 が返される。"
3550
3551 #. type: Plain text
3552 #: build/C/man3/profil.3:72
3553 msgid "Similar to a call in SVr4 (but not POSIX.1-2001)."
3554 msgstr "SVr4 のコールに似ている (しかし POSIX.1-2001 ではない)。"
3555
3556 #. type: Plain text
3557 #: build/C/man3/profil.3:78
3558 msgid ""
3559 "B<profil>()  cannot be used on a program that also uses B<ITIMER_PROF> "
3560 "interval timers (see B<setitimer>(2))."
3561 msgstr ""
3562 "B<profil>()  は B<ITIMER_PROF> インターバル・タイマーも使用しているプログラム"
3563 "では使用できない (B<setitimer>(2)  参照)。"
3564
3565 #. type: Plain text
3566 #: build/C/man3/profil.3:81
3567 msgid ""
3568 "True kernel profiling provides more accurate results.  Libc 4.4 contained a "
3569 "kernel patch providing a system call profil."
3570 msgstr ""
3571 "本当のカーネル・プロファイルはより正確な結果を与える。 libc 4.4 にはシステム"
3572 "コール profil を提供するための カーネルパッチが含まれていた。"
3573
3574 #. type: Plain text
3575 #: build/C/man3/profil.3:86
3576 msgid "B<gprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
3577 msgstr "B<gprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
3578
3579 #. type: TH
3580 #: build/C/man3/psignal.3:30
3581 #, no-wrap
3582 msgid "PSIGNAL"
3583 msgstr "PSIGNAL"
3584
3585 #. type: TH
3586 #: build/C/man3/psignal.3:30
3587 #, no-wrap
3588 msgid "2010-10-06"
3589 msgstr "2010-10-06"
3590
3591 #. type: TH
3592 #: build/C/man3/psignal.3:30 build/C/man3/raise.3:29
3593 #: build/C/man7/sigevent.7:26
3594 #, no-wrap
3595 msgid "GNU"
3596 msgstr "GNU"
3597
3598 #. type: Plain text
3599 #: build/C/man3/psignal.3:33
3600 msgid "psignal, psiginfo - print signal message"
3601 msgstr "psignal, psiginfo - シグナルメッセージを表示"
3602
3603 #. type: Plain text
3604 #: build/C/man3/psignal.3:39
3605 #, no-wrap
3606 msgid ""
3607 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
3608 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
3609 msgstr ""
3610 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
3611 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
3612
3613 #. type: Plain text
3614 #: build/C/man3/psignal.3:41
3615 #, no-wrap
3616 msgid "B<extern const char *const >I<sys_siglist>B<[];>\n"
3617 msgstr "B<extern const char *const >I<sys_siglist>B<[];>\n"
3618
3619 #. type: Plain text
3620 #: build/C/man3/psignal.3:50
3621 msgid "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
3622 msgstr "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
3623
3624 #. type: Plain text
3625 #: build/C/man3/psignal.3:53
3626 msgid ""
3627 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
3628 "200809L"
3629 msgstr ""
3630 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
3631 "200809L"
3632
3633 #. type: Plain text
3634 #: build/C/man3/psignal.3:56
3635 msgid "I<sys_siglist>: _BSD_SOURCE"
3636 msgstr "I<sys_siglist>: _BSD_SOURCE"
3637
3638 #. type: Plain text
3639 #: build/C/man3/psignal.3:65
3640 msgid ""
3641 "The B<psignal>()  function displays a message on I<stderr> consisting of the "
3642 "string I<s>, a colon, a space, a string describing the signal number I<sig>, "
3643 "and a trailing newline.  If the string I<s> is NULL or empty, the colon and "
3644 "space are omitted.  If I<sig> is invalid, the message displayed will "
3645 "indicate an unknown signal."
3646 msgstr ""
3647 "B<psignal>() 関数は、文字列 I<s>、コロン、スペース、\n"
3648 "シグナル番号 I<sig> を説明する文字列、終端の改行から\n"
3649 "構成されるメッセージを I<stderr> に表示する。\n"
3650 "文字列 I<s> が NULL か空の場合、コロンとスペースは省略される。\n"
3651 "I<sig> が不正ならば、表示される メッセージは未知のシグナルを示す。"
3652
3653 #. type: Plain text
3654 #: build/C/man3/psignal.3:86
3655 msgid ""
3656 "The B<psiginfo>()  function is like B<psignal>(), except that it displays "
3657 "information about the signal described by I<pinfo>, which should point to a "
3658 "valid I<siginfo_t> structure.  As well as the signal description, B<psiginfo>"
3659 "()  displays information about the origin of the signal, and other "
3660 "information relevant to the signal (e.g., the relevant memory address for "
3661 "hardware-generated signals, the child process ID for B<SIGCHLD>, and the "
3662 "user ID and process ID of the sender, for signals set using B<kill>(2)  or "
3663 "B<sigqueue>(3))."
3664 msgstr ""
3665 "B<psiginfo>() 関数は B<psignal>() と同じだが、 I<pinfo> に書かれたシグナルの"
3666 "情報を表示する点が異なる。 I<pinfo> は有効な I<siginfo_t> 構造体を指している"
3667 "必要がある。 B<psiginfo>() は、 シグナルの説明だけでなく、 シグナルの送信元や"
3668 "そのシグナルに関連するその他の情報も表示する (例えば、ハードウェアが発生した"
3669 "シグナルの関連メモリアドレス、 B<SIGCHLD> の子プロセス ID、 I<kill>(2) や "
3670 "B<sigqueue>(3) を使って送信されたシグナルの送信元プロセスのユーザ ID とプロセ"
3671 "ス ID など)。"
3672
3673 #. type: Plain text
3674 #: build/C/man3/psignal.3:89
3675 msgid ""
3676 "The array I<sys_siglist> holds the signal description strings indexed by "
3677 "signal number."
3678 msgstr ""
3679 "配列 I<sys_siglist> はシグナルを説明する文字列を保持しており、 配列へのアクセ"
3680 "スにはシグナル番号を添え字として用いる事ができる。"
3681
3682 #. type: Plain text
3683 #: build/C/man3/psignal.3:95
3684 msgid "The B<psignal>()  and B<psiginfo>()  functions return no value."
3685 msgstr "関数 B<psignal>() と B<psiginfo>() は、値を返さない。"
3686
3687 #. type: Plain text
3688 #: build/C/man3/psignal.3:99
3689 msgid "The B<psiginfo>()  function was added to glibc in version 2.10."
3690 msgstr "B<psiginfo>() 関数は glibc バージョン 2.10 で追加された。"
3691
3692 #. type: Plain text
3693 #: build/C/man3/psignal.3:101
3694 msgid "POSIX.1-2008, 4.3BSD."
3695 msgstr "POSIX.1-2008, 4.3BSD."
3696
3697 #. type: Plain text
3698 #: build/C/man3/psignal.3:105
3699 msgid "In glibc versions up to 2.12, B<psiginfo>()  had the following bugs:"
3700 msgstr ""
3701 "バージョン 2.12 までの glibc では B<psiginfo>() には以下のバグがあった。"
3702
3703 #.  FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=12107
3704 #.  Reportedly now fixed; check glibc 2.13
3705 #. type: Plain text
3706 #: build/C/man3/psignal.3:109
3707 msgid "In some circumstances, a trailing newline is not printed."
3708 msgstr "特定の状況で、末尾の改行が出力されない。"
3709
3710 #.  FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=12108
3711 #.  Reportedly now fixed; check glibc 2.13
3712 #. type: Plain text
3713 #: build/C/man3/psignal.3:113
3714 msgid "Additional details are not displayed for real-time signals."
3715 msgstr "リアルタイムシグナルの場合に、追加の詳細情報が表示されない。"
3716
3717 #. type: Plain text
3718 #: build/C/man3/psignal.3:118
3719 msgid "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
3720 msgstr "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
3721
3722 #. type: TH
3723 #: build/C/man3/raise.3:29
3724 #, no-wrap
3725 msgid "RAISE"
3726 msgstr "RAISE"
3727
3728 #. type: TH
3729 #: build/C/man3/raise.3:29
3730 #, no-wrap
3731 msgid "2012-04-20"
3732 msgstr "2012-04-20"
3733
3734 #. type: Plain text
3735 #: build/C/man3/raise.3:32
3736 msgid "raise - send a signal to the caller"
3737 msgstr "raise - 呼び出し元にシグナルを送る"
3738
3739 #. type: Plain text
3740 #: build/C/man3/raise.3:37
3741 #, no-wrap
3742 msgid "B<int raise(int >I<sig>B<);>\n"
3743 msgstr "B<int raise(int >I<sig>B<);>\n"
3744
3745 #. type: Plain text
3746 #: build/C/man3/raise.3:43
3747 msgid ""
3748 "The B<raise>()  function sends a signal to the calling process or thread.  "
3749 "In a single-threaded program it is equivalent to"
3750 msgstr ""
3751 "B<raise>()  関数は、呼び出し元のプロセスもしくはスレッドにシグナルを送る。 シ"
3752 "ングルスレッドのプログラムでは、以下と等価である。"
3753
3754 #. type: Plain text
3755 #: build/C/man3/raise.3:47
3756 #, no-wrap
3757 msgid "kill(getpid(), sig);\n"
3758 msgstr "kill(getpid(), sig);\n"
3759
3760 #. type: Plain text
3761 #: build/C/man3/raise.3:51
3762 msgid "In a multithreaded program it is equivalent to"
3763 msgstr "マルチスレッドのプログラムでは、以下と等価である。"
3764
3765 #. type: Plain text
3766 #: build/C/man3/raise.3:55
3767 #, no-wrap
3768 msgid "pthread_kill(pthread_self(), sig);\n"
3769 msgstr "pthread_kill(pthread_self(), sig);\n"
3770
3771 #. type: Plain text
3772 #: build/C/man3/raise.3:61
3773 msgid ""
3774 "If the signal causes a handler to be called, B<raise>()  will return only "
3775 "after the signal handler has returned."
3776 msgstr ""
3777 "シグナルに起因してシグナル・ハンドラが呼び出される場合には、 B<raise>()  が返"
3778 "るのは必ずシグナル・ハンドラが返った後になる。"
3779
3780 #. type: Plain text
3781 #: build/C/man3/raise.3:64
3782 msgid "B<raise>()  returns 0 on success, and nonzero for failure."
3783 msgstr "成功した場合は 0 を、失敗した場合は 0 以外の値を返す。"
3784
3785 #. type: Plain text
3786 #: build/C/man3/raise.3:66 build/C/man2/signal.2:112
3787 msgid "C89, C99, POSIX.1-2001."
3788 msgstr "C89, C99, POSIX.1-2001."
3789
3790 #.  2.3.2 used the obsolete tkill(), if available.
3791 #. type: Plain text
3792 #: build/C/man3/raise.3:77
3793 msgid ""
3794 "Since version 2.3.3, glibc implements B<raise>()  by calling B<tgkill>(2), "
3795 "if the kernel supports that system call.  Older glibc versions implemented "
3796 "B<raise>()  using B<kill>(2)."
3797 msgstr ""
3798 "glibc バージョン 2.3.3 以降では、カーネルが B<tgkill>(2) システムコール\n"
3799 "をサポートしている場合はB<raise>() は B<tgkill>(2) を使って実装されて\n"
3800 "いる。古いバージョンの glibc では、B<raise>() は B<kill>(2) を使って\n"
3801 "実装されている。"
3802
3803 #. type: Plain text
3804 #: build/C/man3/raise.3:84
3805 msgid ""
3806 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
3807 "B<signal>(7)"
3808 msgstr ""
3809 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
3810 "B<signal>(7)"
3811
3812 #. type: TH
3813 #: build/C/man2/restart_syscall.2:33
3814 #, no-wrap
3815 msgid "RESTART_SYSCALL"
3816 msgstr ""
3817
3818 #. type: TH
3819 #: build/C/man2/restart_syscall.2:33 build/C/man2/sigaction.2:47
3820 #: build/C/man7/signal.7:46 build/C/man2/sigreturn.2:29
3821 #, no-wrap
3822 msgid "2013-07-30"
3823 msgstr "2013-07-30"
3824
3825 #. type: Plain text
3826 #: build/C/man2/restart_syscall.2:36
3827 msgid ""
3828 "restart_syscall - restart a system call after interruption by a stop signal"
3829 msgstr ""
3830 "restart_syscall - 一時停止シグナルによる割り込み後にシステムコールを再開する"
3831
3832 #. type: Plain text
3833 #: build/C/man2/restart_syscall.2:38
3834 msgid "B<int restart_syscall(void);>"
3835 msgstr "B<int restart_syscall(void);>"
3836
3837 #. type: Plain text
3838 #: build/C/man2/restart_syscall.2:41
3839 msgid "I<Note>: There is no glibc wrapper for this system call; see NOTES."
3840 msgstr ""
3841 "I<注>: このシステムコールには、glibc のラッパー関数はない。「注意」の節を参"
3842 "照。"
3843
3844 #. type: Plain text
3845 #: build/C/man2/restart_syscall.2:53
3846 msgid ""
3847 "The B<restart_syscall>()  system call is used to restart certain system "
3848 "calls after a process that was stopped by a signal (e.g., B<SIGSTOP> or "
3849 "B<SIGTSTP>)  is later resumed after receiving a B<SIGCONT> signal.  This "
3850 "system call is designed only for internal use by the kernel."
3851 msgstr ""
3852
3853 #.  These system calls correspond to the special internal errno value
3854 #.  ERESTART_RESTARTBLOCK. Each of the system calls has a "restart"
3855 #.  helper function that is invoked by restart_syscall().
3856 #. type: Plain text
3857 #: build/C/man2/restart_syscall.2:84
3858 msgid ""
3859 "B<restart_syscall>()  is used for restarting only those system calls that, "
3860 "when restarted, should adjust their time-related parameters\\(emnamely "
3861 "B<poll>(2)  (since Linux 2.6.24), B<nanosleep>(2)  (since Linux 2.6), "
3862 "B<clock_nanosleep>(2)  (since Linux 2.6), and B<futex>(2), when employed "
3863 "with the B<FUTEX_WAIT> (since Linux 2.6.22)  and B<FUTEX_WAIT_BITSET> (since "
3864 "Linux 2.6.31)  operations.  B<restart_syscall>()  restarts the interrupted "
3865 "system call with a time argument that is suitably adjusted to account for "
3866 "the time that has already elapsed (including the time where the process was "
3867 "stopped by a signal).  Without the B<restart_syscall>()  mechanism, "
3868 "restarting these system calls would not correctly deduce the already elapsed "
3869 "time when the process continued execution."
3870 msgstr ""
3871
3872 #. type: Plain text
3873 #: build/C/man2/restart_syscall.2:88
3874 msgid ""
3875 "The return value of B<restart_syscall>()  is the return value of whatever "
3876 "system call is being restarted."
3877 msgstr ""
3878
3879 #. type: Plain text
3880 #: build/C/man2/restart_syscall.2:92
3881 msgid ""
3882 "I<errno> is set as per the errors for whatever system call is being "
3883 "restarted by B<restart_syscall>()."
3884 msgstr ""
3885
3886 #. type: Plain text
3887 #: build/C/man2/restart_syscall.2:96
3888 msgid "The B<restart_syscall>()  system call is present since Linux 2.6."
3889 msgstr "B<restart_syscall>() システムコールは Linux 2.6 以降に存在する。"
3890
3891 #. type: Plain text
3892 #: build/C/man2/restart_syscall.2:98
3893 msgid "This system call is Linux specific."
3894 msgstr "このシステムコールは Linux 固有である。"
3895
3896 #. type: Plain text
3897 #: build/C/man2/restart_syscall.2:102
3898 msgid ""
3899 "There is no glibc wrapper for this system call, because it is intended for "
3900 "use only by the kernel and should never be called by applications."
3901 msgstr ""
3902
3903 #
3904 #.  FIXME
3905 #.  There is one oddness in the implementation though, with respect to
3906 #.  nanosleep() (and probably also clock_nanosleep()). The scenario
3907 #.  is as follows:
3908 #.     1. Start a nanosleep() for (say) 30 seconds,
3909 #.     2. Stop the process with (say) SIGTSTP (^Z).
3910 #.     3. Resume the process with SIGCONT,
3911 #.     4. Upon return, the 'rem' argument of nanosleep() will contain the
3912 #.        remaining unslept time **at the time when SIGTSTP was delivered**.
3913 #.  The behavior at point 4 is odd, but doesn't violate the standards, which
3914 #.  specify the treatment of 'rem' only when the system call returns with
3915 #.  the error EINTR (i.e., the call was interrupted by a signal handler).
3916 #. type: Plain text
3917 #: build/C/man2/restart_syscall.2:123
3918 msgid ""
3919 "From user space, the operation of B<restart_syscall>(2)  is largely "
3920 "invisible: to the process that made the system call that is restarted, it "
3921 "appears as though that system call executed and returned in the usual "
3922 "fashion."
3923 msgstr ""
3924
3925 #.  FIXME select(2) should probably get the restart_syscall() treatment:
3926 #.      If a select() call is suspended by stop-sig+SIGCONT, the time
3927 #.      spent suspended is *not* deducted when the select() is restarted.
3928 #.  FIXME: check whether recvmmsg() handles stop-sig+SIGCONT properly.
3929 #. type: Plain text
3930 #: build/C/man2/restart_syscall.2:131
3931 msgid "B<sigreturn>(2), B<sigaction>(2), B<signal>(7)"
3932 msgstr "B<sigreturn>(2), B<sigaction>(2), B<signal>(7)"
3933
3934 #. type: TH
3935 #: build/C/man2/rt_sigqueueinfo.2:25
3936 #, no-wrap
3937 msgid "RT_SIGQUEUEINFO"
3938 msgstr "RT_SIGQUEUEINFO"
3939
3940 #. type: TH
3941 #: build/C/man2/rt_sigqueueinfo.2:25 build/C/man2/sgetmask.2:26
3942 #: build/C/man2/tkill.2:29
3943 #, no-wrap
3944 msgid "2012-07-13"
3945 msgstr "2012-07-13"
3946
3947 #. type: Plain text
3948 #: build/C/man2/rt_sigqueueinfo.2:28
3949 msgid "rt_sigqueueinfo, rt_tgsigqueueinfo - queue a signal and data"
3950 msgstr ""
3951
3952 #. type: Plain text
3953 #: build/C/man2/rt_sigqueueinfo.2:31
3954 #, no-wrap
3955 msgid "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
3956 msgstr "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
3957
3958 #. type: Plain text
3959 #: build/C/man2/rt_sigqueueinfo.2:34
3960 #, no-wrap
3961 msgid ""
3962 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
3963 "B<                      siginfo_t *>I<uinfo>B<);>\n"
3964 msgstr ""
3965 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
3966 "B<                      siginfo_t *>I<uinfo>B<);>\n"
3967
3968 #. type: Plain text
3969 #: build/C/man2/rt_sigqueueinfo.2:38 build/C/man2/sgetmask.2:36
3970 #: build/C/man2/tkill.2:41
3971 msgid "I<Note>: There are no glibc wrappers for these system calls; see NOTES."
3972 msgstr ""
3973 "I<注>: これらのシステムコールには、glibc のラッパー関数はない。「注意」の節を"
3974 "参照。"
3975
3976 #. type: Plain text
3977 #: build/C/man2/rt_sigqueueinfo.2:50
3978 msgid ""
3979 "The B<rt_sigqueueinfo>()  and B<rt_tgsigqueueinfo>()  system calls are the "
3980 "low-level interfaces used to send a signal plus data to a process or "
3981 "thread.  The receiver of the signal can obtain the accompanying data by "
3982 "establishing a signal handler with the B<sigaction>(2)  B<SA_SIGINFO> flag."
3983 msgstr ""
3984
3985 #. type: Plain text
3986 #: build/C/man2/rt_sigqueueinfo.2:56
3987 msgid ""
3988 "These system calls are not intended for direct application use; they are "
3989 "provided to allow the implementation of B<sigqueue>(3)  and "
3990 "B<pthread_sigqueue>(3)."
3991 msgstr ""
3992
3993 #. type: Plain text
3994 #: build/C/man2/rt_sigqueueinfo.2:68
3995 msgid ""
3996 "The B<rt_sigqueueinfo>()  system call sends the signal I<sig> to the thread "
3997 "group with the ID I<tgid>.  (The term \"thread group\" is synonymous with "
3998 "\"process\", and I<tid> corresponds to the traditional UNIX process ID.)  "
3999 "The signal will be delivered to an arbitrary member of the thread group (i."
4000 "e., one of the threads that is not currently blocking the signal)."
4001 msgstr ""
4002
4003 #. type: Plain text
4004 #: build/C/man2/rt_sigqueueinfo.2:79
4005 msgid ""
4006 "The I<uinfo> argument specifies the data to accompany the signal.  This "
4007 "argument is a pointer to a structure of type I<siginfo_t>, described in "
4008 "B<sigaction>(2)  (and defined by including I<E<lt>sigaction.hE<gt>>).  The "
4009 "caller should set the following fields in this structure:"
4010 msgstr ""
4011
4012 #. type: TP
4013 #: build/C/man2/rt_sigqueueinfo.2:79 build/C/man7/sigevent.7:88
4014 #: build/C/man2/wait.2:316
4015 #, no-wrap
4016 msgid "I<si_code>"
4017 msgstr "I<si_code>"
4018
4019 #.  tkill(2) or
4020 #. type: Plain text
4021 #: build/C/man2/rt_sigqueueinfo.2:95
4022 msgid ""
4023 "This must be one of the B<SI_*> codes in the Linux kernel source file "
4024 "I<include/asm-generic/siginfo.h>, with the restriction that the code must be "
4025 "negative (i.e., cannot be B<SI_USER>, which is used by the kernel to "
4026 "indicate a signal sent by B<kill>(2))  and cannot (since Linux 2.6.39) be "
4027 "B<SI_TKILL> (which is used by the kernel to indicate a signal sent using "
4028 "B<tgkill>(2))."
4029 msgstr ""
4030
4031 #. type: TP
4032 #: build/C/man2/rt_sigqueueinfo.2:95 build/C/man2/wait.2:295
4033 #, no-wrap
4034 msgid "I<si_pid>"
4035 msgstr "I<si_pid>"
4036
4037 #. type: Plain text
4038 #: build/C/man2/rt_sigqueueinfo.2:99
4039 msgid ""
4040 "This should be set to a process ID, typically the process ID of the sender."
4041 msgstr ""
4042
4043 #. type: TP
4044 #: build/C/man2/rt_sigqueueinfo.2:99 build/C/man2/wait.2:298
4045 #, no-wrap
4046 msgid "I<si_uid>"
4047 msgstr "I<si_uid>"
4048
4049 #. type: Plain text
4050 #: build/C/man2/rt_sigqueueinfo.2:103
4051 msgid ""
4052 "This should be set to a user ID, typically the real user ID of the sender."
4053 msgstr ""
4054
4055 #. type: TP
4056 #: build/C/man2/rt_sigqueueinfo.2:103 build/C/man7/sigevent.7:96
4057 #, no-wrap
4058 msgid "I<si_value>"
4059 msgstr "I<si_value>"
4060
4061 #. type: Plain text
4062 #: build/C/man2/rt_sigqueueinfo.2:110
4063 msgid ""
4064 "This field contains the user data to accompany the signal.  For more "
4065 "information, see the description of the last (I<union sigval>)  argument of "
4066 "B<sigqueue>(3)."
4067 msgstr ""
4068
4069 #. type: Plain text
4070 #: build/C/man2/rt_sigqueueinfo.2:117
4071 msgid ""
4072 "Internally, the kernel sets the I<si_signo> field to the value specified in "
4073 "I<sig>, so that the receiver of the signal can also obtain the signal number "
4074 "via that field."
4075 msgstr ""
4076
4077 #. type: Plain text
4078 #: build/C/man2/rt_sigqueueinfo.2:129
4079 msgid ""
4080 "The B<rt_tgsigqueueinfo>()  system call is like B<rt_sigqueueinfo>(), but "
4081 "sends the signal and data to the single thread specified by the combination "
4082 "of I<tgid>, a thread group ID, and I<tid>, a thread in that thread group."
4083 msgstr ""
4084
4085 #. type: Plain text
4086 #: build/C/man2/rt_sigqueueinfo.2:134
4087 msgid ""
4088 "On success, these system calls return 0.  On error, they return -1 and "
4089 "I<errno> is set to indicate the error."
4090 msgstr ""
4091
4092 #. type: TP
4093 #: build/C/man2/rt_sigqueueinfo.2:135 build/C/man3/sigqueue.3:92
4094 #: build/C/man2/sigwaitinfo.2:115 build/C/man2/timer_create.2:176
4095 #, no-wrap
4096 msgid "B<EAGAIN>"
4097 msgstr "B<EAGAIN>"
4098
4099 #. type: Plain text
4100 #: build/C/man2/rt_sigqueueinfo.2:141 build/C/man3/sigqueue.3:98
4101 msgid ""
4102 "The limit of signals which may be queued has been reached.  (See B<signal>"
4103 "(7)  for further information.)"
4104 msgstr ""
4105 "待ち行列に入れられるシグナルの最大数に達した (より詳しい情報は B<signal>(7)  "
4106 "を参照すること)。"
4107
4108 #. type: Plain text
4109 #: build/C/man2/rt_sigqueueinfo.2:148
4110 msgid "I<sig>, I<tgid>, or I<tid> was invalid."
4111 msgstr ""
4112
4113 #. type: Plain text
4114 #: build/C/man2/rt_sigqueueinfo.2:156
4115 msgid ""
4116 "The caller does not have permission to send the signal to the target.  For "
4117 "the required permissions, see B<kill>(2).  Or: I<uinfo-E<gt>si_code> is "
4118 "invalid."
4119 msgstr ""
4120
4121 #. type: Plain text
4122 #: build/C/man2/rt_sigqueueinfo.2:162
4123 msgid "B<rt_sigqueueinfo>(): No thread group matching I<tgid> was found."
4124 msgstr ""
4125
4126 #. type: Plain text
4127 #: build/C/man2/rt_sigqueueinfo.2:169
4128 msgid "B<rt_tgsigqueinfo>(): No thread matching I<tgid> and I<tid> was found."
4129 msgstr ""
4130
4131 #. type: Plain text
4132 #: build/C/man2/rt_sigqueueinfo.2:176
4133 msgid ""
4134 "The B<rt_sigqueueinfo>()  system call was added to Linux in version 2.2.  "
4135 "The B<rt_tgsigqueueinfo>()  system call was added to Linux in version 2.6.31."
4136 msgstr ""
4137
4138 #. type: Plain text
4139 #: build/C/man2/rt_sigqueueinfo.2:178 build/C/man2/sgetmask.2:68
4140 #: build/C/man2/timerfd_create.2:373
4141 msgid "These system calls are Linux-specific."
4142 msgstr "これらのシステムコールは Linux 固有である。"
4143
4144 #. type: Plain text
4145 #: build/C/man2/rt_sigqueueinfo.2:183
4146 msgid ""
4147 "Since these system calls are not intended for application use, there are no "
4148 "glibc wrapper functions; use B<syscall>(2)  in the unlikely case that you "
4149 "want to call them directly."
4150 msgstr ""
4151 "これらのシステムコールはアプリケーションでの使用を目的として用意されたわけで"
4152 "はないので、 glibc のラッパー関数は存在しない。おそらくないと思うが、このシス"
4153 "テムコールを直接呼び出したい場合は B<syscall>(2) を使うこと。"
4154
4155 #. type: Plain text
4156 #: build/C/man2/rt_sigqueueinfo.2:188
4157 msgid ""
4158 "As with B<kill>(2), the null signal (0) can be used to check if the "
4159 "specified process or thread exists."
4160 msgstr ""
4161
4162 #. type: Plain text
4163 #: build/C/man2/rt_sigqueueinfo.2:196
4164 msgid ""
4165 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4166 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4167 msgstr ""
4168 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4169 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4170
4171 #. type: TH
4172 #: build/C/man2/s390_runtime_instr.2:25
4173 #, no-wrap
4174 msgid "S390_RUNTIME_INSTR"
4175 msgstr ""
4176
4177 #. type: TH
4178 #: build/C/man2/s390_runtime_instr.2:25
4179 #, no-wrap
4180 msgid "2012-12-17"
4181 msgstr "2012-12-17"
4182
4183 #. type: Plain text
4184 #: build/C/man2/s390_runtime_instr.2:28
4185 msgid "s390_runtime_instr - enable/disable s390 CPU run-time instrumentation"
4186 msgstr ""
4187
4188 #. type: Plain text
4189 #: build/C/man2/s390_runtime_instr.2:31
4190 #, no-wrap
4191 msgid "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4192 msgstr "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4193
4194 #. type: Plain text
4195 #: build/C/man2/s390_runtime_instr.2:33
4196 #, no-wrap
4197 msgid "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4198 msgstr "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4199
4200 #. type: Plain text
4201 #: build/C/man2/s390_runtime_instr.2:39
4202 msgid ""
4203 "The B<s390_runtime_instr>()  system call starts or stops CPU run-time "
4204 "instrumentation for the calling thread."
4205 msgstr ""
4206
4207 #. type: Plain text
4208 #: build/C/man2/s390_runtime_instr.2:47
4209 msgid ""
4210 "The I<command> argument controls whether run-time instrumentation is started "
4211 "(B<S390_RUNTIME_INSTR_START>, 1) or stopped (B<S390_RUNTIME_INSTR_STOP>, 2) "
4212 "for the calling thread."
4213 msgstr ""
4214
4215 #. type: Plain text
4216 #: build/C/man2/s390_runtime_instr.2:54
4217 msgid ""
4218 "The I<signum> argument specifies the number of a real-time signal.  The real-"
4219 "time signal is sent to the thread if the run-time instrumentation buffer is "
4220 "full or if the run-time-instrumentation-halted interrupt occurred."
4221 msgstr ""
4222
4223 #. type: Plain text
4224 #: build/C/man2/s390_runtime_instr.2:65
4225 msgid ""
4226 "On success, B<s390_runtime_instr>()  returns 0 and enables the thread for "
4227 "run-time instrumentation by assigning the thread a default run-time "
4228 "instrumentation control block.  The caller can then read and modify the "
4229 "control block and start the run-time instrumentation.  On error, -1 is "
4230 "returned and I<errno> is set to one of the error codes listed below."
4231 msgstr ""
4232
4233 #. type: Plain text
4234 #: build/C/man2/s390_runtime_instr.2:73
4235 msgid ""
4236 "The value specified in I<command> is not a valid command or the value "
4237 "specified in I<signum> is not a real-time signal number."
4238 msgstr ""
4239
4240 #. type: Plain text
4241 #: build/C/man2/s390_runtime_instr.2:76
4242 msgid ""
4243 "Allocating memory for the run-time instrumentation control block failed."
4244 msgstr ""
4245
4246 #. type: TP
4247 #: build/C/man2/s390_runtime_instr.2:76
4248 #, no-wrap
4249 msgid "B<EOPNOTSUPP>"
4250 msgstr ""
4251
4252 #. type: Plain text
4253 #: build/C/man2/s390_runtime_instr.2:79
4254 msgid "The run-time instrumentation facility is not available."
4255 msgstr ""
4256
4257 #. type: Plain text
4258 #: build/C/man2/s390_runtime_instr.2:81
4259 msgid "This system call is available since Linux 3.7."
4260 msgstr "このシステムコールは Linux 3.7 で初めて登場した。"
4261
4262 #. type: Plain text
4263 #: build/C/man2/s390_runtime_instr.2:84
4264 msgid ""
4265 "This Linux-specific system call is available only on the s390 architecture.  "
4266 "The run-time instrumentation facility is available beginning with System z "
4267 "EC12."
4268 msgstr ""
4269
4270 #. type: Plain text
4271 #: build/C/man2/s390_runtime_instr.2:88
4272 msgid ""
4273 "Glibc does not provide a wrapper for this system call, use B<syscall>(2)  to "
4274 "call it."
4275 msgstr ""
4276 "glibc はこのシステムコールに対するラッパー関数を提供していない。 B<syscall>"
4277 "(2) を使用すること。"
4278
4279 #. type: Plain text
4280 #: build/C/man2/s390_runtime_instr.2:91
4281 msgid "B<syscall>(2), B<signal>(7)"
4282 msgstr "B<syscall>(2), B<signal>(7)"
4283
4284 #. type: TH
4285 #: build/C/man2/sgetmask.2:26
4286 #, no-wrap
4287 msgid "SGETMASK"
4288 msgstr "SGETMASK"
4289
4290 #. type: Plain text
4291 #: build/C/man2/sgetmask.2:29
4292 msgid "sgetmask, ssetmask - manipulation of signal mask (obsolete)"
4293 msgstr "sgetmask, ssetmask - シグナルマスクの操作 (廃止予定)"
4294
4295 #. type: Plain text
4296 #: build/C/man2/sgetmask.2:31
4297 msgid "B<long sgetmask(void);>"
4298 msgstr "B<long sgetmask(void);>"
4299
4300 #. type: Plain text
4301 #: build/C/man2/sgetmask.2:33
4302 msgid "B<long ssetmask(long >I<newmask>B<);>"
4303 msgstr "B<long ssetmask(long >I<newmask>B<);>"
4304
4305 #. type: Plain text
4306 #: build/C/man2/sgetmask.2:42
4307 msgid ""
4308 "These system calls are obsolete.  I<Do not use them>; use B<sigprocmask>(2)  "
4309 "instead."
4310 msgstr ""
4311 "これらのシステムコールは廃止予定であり、 「使用しないこと」。 代わりに "
4312 "B<sigprocmask>(2)  を使用すること。"
4313
4314 #. type: Plain text
4315 #: build/C/man2/sgetmask.2:45
4316 msgid "B<sgetmask>()  returns the signal mask of the calling process."
4317 msgstr "B<sgetmask>()  は、呼び出し元プロセスのシグナルマスクを返す。"
4318
4319 #. type: Plain text
4320 #: build/C/man2/sgetmask.2:50
4321 msgid ""
4322 "B<ssetmask>()  sets the signal mask of the calling process to the value "
4323 "given in I<newmask>.  The previous signal mask is returned."
4324 msgstr ""
4325 "B<ssetmask>()  は、呼び出し元プロセスのシグナルマスクを I<newmask> で指定され"
4326 "た値に設定し、変更前のシグナルマスクを返す。"
4327
4328 #. type: Plain text
4329 #: build/C/man2/sgetmask.2:59
4330 msgid ""
4331 "The signal masks dealt with by these two system calls are plain bit masks "
4332 "(unlike the I<sigset_t> used by B<sigprocmask>(2)); use B<sigmask>(3)  to "
4333 "create and inspect these masks."
4334 msgstr ""
4335 "これら二つのシステムコールが扱うシグナルマスクは、 単純なビットマスクである "
4336 "(この点が B<sigprocmask>(2)  で使用される I<sigset_t> と異なる)。 これらのマ"
4337 "スクを作成したり検査するには B<sigmask>(3)  を使用すること。"
4338
4339 #. type: Plain text
4340 #: build/C/man2/sgetmask.2:64
4341 msgid ""
4342 "B<sgetmask>()  always successfully returns the signal mask.  B<ssetmask>()  "
4343 "always succeeds, and returns the previous signal mask."
4344 msgstr ""
4345 "B<sgetmask>()  は常に成功し、シグナルマスクを返す。 B<ssetmask>()  は常に成功"
4346 "し、直前のシグナルマスクを返す。"
4347
4348 #. type: Plain text
4349 #: build/C/man2/sgetmask.2:66
4350 msgid "These system calls always succeed."
4351 msgstr "これらのシステムコールは常に成功する。"
4352
4353 #. type: Plain text
4354 #: build/C/man2/sgetmask.2:72
4355 msgid ""
4356 "Glibc does not provide wrappers for these obsolete system calls; in the "
4357 "unlikely event that you want to call them, use B<syscall>(2)."
4358 msgstr ""
4359 "glibc はこれらの古いシステムコールに対するラッパー関数を提供していない。\n"
4360 "あまりないと思うが、これらを呼び出したい場合には B<syscall>(2) を使うこと。"
4361
4362 #. type: Plain text
4363 #: build/C/man2/sgetmask.2:75
4364 msgid ""
4365 "These system calls are unaware of signal numbers greater than 31 (i.e., real-"
4366 "time signals)."
4367 msgstr ""
4368 "これらのシステムコールは、 31 より大きいシグナル番号 (つまり、リアルタイムシ"
4369 "グナル) を扱えない。"
4370
4371 #. type: Plain text
4372 #: build/C/man2/sgetmask.2:80
4373 msgid "It is not possible to block B<SIGSTOP> or B<SIGKILL>."
4374 msgstr "B<SIGSTOP> や B<SIGKILL> をブロックすることはできない。"
4375
4376 #. type: Plain text
4377 #: build/C/man2/sgetmask.2:83
4378 msgid "B<sigprocmask>(2), B<signal>(7)"
4379 msgstr "B<sigprocmask>(2), B<signal>(7)"
4380
4381 #. type: TH
4382 #: build/C/man2/sigaction.2:47
4383 #, no-wrap
4384 msgid "SIGACTION"
4385 msgstr "SIGACTION"
4386
4387 #. type: Plain text
4388 #: build/C/man2/sigaction.2:50
4389 msgid "sigaction - examine and change a signal action"
4390 msgstr "sigaction - シグナルの動作の確認と変更"
4391
4392 #. type: Plain text
4393 #: build/C/man2/sigaction.2:56
4394 #, no-wrap
4395 msgid ""
4396 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
4397 "B<              struct sigaction *>I<oldact>B<);>\n"
4398 msgstr ""
4399 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
4400 "B<              struct sigaction *>I<oldact>B<);>\n"
4401
4402 #. type: Plain text
4403 #: build/C/man2/sigaction.2:66
4404 msgid ""
4405 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4406 "_POSIX_SOURCE"
4407 msgstr ""
4408 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4409 "_POSIX_SOURCE"
4410
4411 #. type: Plain text
4412 #: build/C/man2/sigaction.2:69
4413 msgid "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
4414 msgstr "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
4415
4416 #. type: Plain text
4417 #: build/C/man2/sigaction.2:78
4418 msgid ""
4419 "The B<sigaction>()  system call is used to change the action taken by a "
4420 "process on receipt of a specific signal.  (See B<signal>(7)  for an overview "
4421 "of signals.)"
4422 msgstr ""
4423 "B<sigaction>()  システムコールは、特定のシグナルを受信した際の プロセスの動作"
4424 "を変更するのに使用される (シグナルの概要については B<signal>(7)  を参照)。"
4425
4426 #. type: Plain text
4427 #: build/C/man2/sigaction.2:84
4428 msgid ""
4429 "I<signum> specifies the signal and can be any valid signal except B<SIGKILL> "
4430 "and B<SIGSTOP>."
4431 msgstr ""
4432 "I<signum> には、 B<SIGKILL> と B<SIGSTOP> 以外の有効なシグナルをどれでも指定"
4433 "できる。"
4434
4435 #. type: Plain text
4436 #: build/C/man2/sigaction.2:95
4437 msgid ""
4438 "If I<act> is non-NULL, the new action for signal I<signum> is installed from "
4439 "I<act>.  If I<oldact> is non-NULL, the previous action is saved in I<oldact>."
4440 msgstr ""
4441 "I<act> が NULL 以外であれば、シグナル I<signum> の新しい動作 (action) として "
4442 "I<act> が設定される。 I<oldact> が NULL でなければ、今までの動作が I<oldact> "
4443 "に格納される。"
4444
4445 #. type: Plain text
4446 #: build/C/man2/sigaction.2:99
4447 msgid "The I<sigaction> structure is defined as something like:"
4448 msgstr "I<sigaction> 構造体は以下のような感じに定義される。"
4449
4450 #. type: Plain text
4451 #: build/C/man2/sigaction.2:109
4452 #, no-wrap
4453 msgid ""
4454 "struct sigaction {\n"
4455 "    void     (*sa_handler)(int);\n"
4456 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
4457 "    sigset_t   sa_mask;\n"
4458 "    int        sa_flags;\n"
4459 "    void     (*sa_restorer)(void);\n"
4460 "};\n"
4461 msgstr ""
4462 "struct sigaction {\n"
4463 "    void     (*sa_handler)(int);\n"
4464 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
4465 "    sigset_t   sa_mask;\n"
4466 "    int        sa_flags;\n"
4467 "    void     (*sa_restorer)(void);\n"
4468 "};\n"
4469
4470 #. type: Plain text
4471 #: build/C/man2/sigaction.2:116
4472 msgid ""
4473 "On some architectures a union is involved: do not assign to both "
4474 "I<sa_handler> and I<sa_sigaction>."
4475 msgstr ""
4476 "アーキテクチャによっては共用体 (union) が用いられており、その場合には "
4477 "I<sa_handler> と I<sa_sigaction> の両方を同時に割り当てることはできない。"
4478
4479 #. type: Plain text
4480 #: build/C/man2/sigaction.2:123
4481 msgid ""
4482 "The I<sa_restorer> element is obsolete and should not be used.  POSIX does "
4483 "not specify a I<sa_restorer> element."
4484 msgstr ""
4485 "I<sa_restorer> 要素は廃止予定であり使用すべきではない。 POSIX には "
4486 "I<sa_restorer> 要素に関する規定はない。"
4487
4488 #. type: Plain text
4489 #: build/C/man2/sigaction.2:133
4490 msgid ""
4491 "I<sa_handler> specifies the action to be associated with I<signum> and may "
4492 "be B<SIG_DFL> for the default action, B<SIG_IGN> to ignore this signal, or a "
4493 "pointer to a signal handling function.  This function receives the signal "
4494 "number as its only argument."
4495 msgstr ""
4496 "I<sa_handler> は I<signum> に対応する動作を指定するもので、 デフォルトの動作"
4497 "を行う B<SIG_DFL>、 そのシグナルを無視する B<SIG_IGN>、 シグナルハンドラ関数"
4498 "へのポインタが設定できる。 シグナルハンドラ関数の引き数は一つであり、シグナル"
4499 "番号が引き数として 渡される。"
4500
4501 #. type: Plain text
4502 #: build/C/man2/sigaction.2:155
4503 msgid ""
4504 "If B<SA_SIGINFO> is specified in I<sa_flags>, then I<sa_sigaction> (instead "
4505 "of I<sa_handler>)  specifies the signal-handling function for I<signum>.  "
4506 "This function receives the signal number as its first argument, a pointer to "
4507 "a I<siginfo_t> as its second argument and a pointer to a I<ucontext_t> (cast "
4508 "to I<void\\ *>) as its third argument.  (Commonly, the handler function "
4509 "doesn't make any use of the third argument.  See B<getcontext>(3)  for "
4510 "further information about I<ucontext_t>.)"
4511 msgstr ""
4512 "I<sa_flags> に B<SA_SIGINFO> が指定された場合、 (I<sa_handler> ではなく)\n"
4513 "I<sa_sigaction> により I<signum> に対応するシグナルハンドラ関数が指定さ\n"
4514 "れる。指定される関数は、最初の引き数としてシグナル番号を、二番目の引き\n"
4515 "数として I<siginfo_t> へのポインタを、三番目の引き数として (I<void\\ *>\n"
4516 "にキャストした) I<ucontext_t> へのポインタを受けとる。 (一般的には、\n"
4517 "ハンドラ関数の三番目の引き数が使用されない。I<ucontext_t> についての\n"
4518 "詳しい情報は B<getcontext>(3) を参照。)"
4519
4520 #. type: Plain text
4521 #: build/C/man2/sigaction.2:165
4522 msgid ""
4523 "I<sa_mask> specifies a mask of signals which should be blocked (i.e., added "
4524 "to the signal mask of the thread in which the signal handler is invoked)  "
4525 "during execution of the signal handler.  In addition, the signal which "
4526 "triggered the handler will be blocked, unless the B<SA_NODEFER> flag is used."
4527 msgstr ""
4528 "I<sa_mask> は、シグナル・ハンドラ実行中に禁止 (block) すべきシグナルのマスク"
4529 "を指定する (ハンドラ実行中のシグナルの禁止は、シグナル・ハンドラが起動された"
4530 "スレッド のシグナルのマスクに追加することで行われる)。 さらに、 "
4531 "B<SA_NODEFER> フラグが指定されていない場合は、ハンドラを起動するきっかけとな"
4532 "る シグナルにも I<sa_mask> が適用される。"
4533
4534 #. type: Plain text
4535 #: build/C/man2/sigaction.2:169
4536 msgid ""
4537 "I<sa_flags> specifies a set of flags which modify the behavior of the "
4538 "signal.  It is formed by the bitwise OR of zero or more of the following:"
4539 msgstr ""
4540 "I<sa_flags> はシグナル・ハンドラの動作を変更するためのフラグの集合を指定す"
4541 "る。 I<sa_flags> には、以下に示すフラグの (0 個以上の) 論理和をとったものを指"
4542 "定する。"
4543
4544 #. type: TP
4545 #: build/C/man2/sigaction.2:170
4546 #, no-wrap
4547 msgid "B<SA_NOCLDSTOP>"
4548 msgstr "B<SA_NOCLDSTOP>"
4549
4550 #. type: Plain text
4551 #: build/C/man2/sigaction.2:187
4552 msgid ""
4553 "If I<signum> is B<SIGCHLD>, do not receive notification when child processes "
4554 "stop (i.e., when they receive one of B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN> or "
4555 "B<SIGTTOU>)  or resume (i.e., they receive B<SIGCONT>)  (see B<wait>(2)).  "
4556 "This flag is meaningful only when establishing a handler for B<SIGCHLD>."
4557 msgstr ""
4558 "I<signum> が B<SIGCHLD> の場合、 子プロセスが停止したり (子プロセスが "
4559 "B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN>, B<SIGTTOU> を受けたとき) 再開したり (子プ"
4560 "ロセスが B<SIGCONT> を受けたとき) したときに B<SIGCHLD> の通知を受けない。 こ"
4561 "のフラグは、 B<SIGCHLD> に対してハンドラを設定する際にのみ意味を持つ。"
4562
4563 #. type: TP
4564 #: build/C/man2/sigaction.2:187
4565 #, no-wrap
4566 msgid "B<SA_NOCLDWAIT> (since Linux 2.6)"
4567 msgstr "B<SA_NOCLDWAIT> (Linux 2.6 以降)"
4568
4569 #.  To be precise: Linux 2.5.60 -- MTK
4570 #. type: Plain text
4571 #: build/C/man2/sigaction.2:201
4572 msgid ""
4573 "If I<signum> is B<SIGCHLD>, do not transform children into zombies when they "
4574 "terminate.  See also B<waitpid>(2).  This flag is meaningful only when "
4575 "establishing a handler for B<SIGCHLD>, or when setting that signal's "
4576 "disposition to B<SIG_DFL>."
4577 msgstr ""
4578 "(Linux 2.6 以降)  I<signum> が B<SIGCHLD> の場合、子プロセスが終了したときに "
4579 "子プロセスをゾンビプロセスに変化させない (B<waitpid>(2)  も参照)。 このフラグ"
4580 "は、 B<SIGCHLD> に対してハンドラを設定する際、もしくはそのシグナルの処理方法"
4581 "を B<SIG_DFL> に設定する際にのみ意味を持つ。"
4582
4583 #. type: Plain text
4584 #: build/C/man2/sigaction.2:213
4585 msgid ""
4586 "If the B<SA_NOCLDWAIT> flag is set when establishing a handler for "
4587 "B<SIGCHLD>, POSIX.1 leaves it unspecified whether a B<SIGCHLD> signal is "
4588 "generated when a child process terminates.  On Linux, a B<SIGCHLD> signal is "
4589 "generated in this case; on some other implementations, it is not."
4590 msgstr ""
4591 "B<SIGCHLD> に対してハンドラを設定する際に B<SA_NOCLDWAIT> フラグをセットした"
4592 "場合、 子プロセスが終了した際に B<SIGCHLD> シグナルが生成されるかどうかは、 "
4593 "POSIX.1 では規定されていない。 Linux では、この状況で B<SIGCHLD> シグナルは生"
4594 "成される。 いくつかの他の実装では生成されない。"
4595
4596 #. type: TP
4597 #: build/C/man2/sigaction.2:213
4598 #, no-wrap
4599 msgid "B<SA_NODEFER>"
4600 msgstr "B<SA_NODEFER>"
4601
4602 #. type: Plain text
4603 #: build/C/man2/sigaction.2:220
4604 msgid ""
4605 "Do not prevent the signal from being received from within its own signal "
4606 "handler.  This flag is meaningful only when establishing a signal handler.  "
4607 "B<SA_NOMASK> is an obsolete, nonstandard synonym for this flag."
4608 msgstr ""
4609 "それ自身のシグナル・ハンドラーの内部にいる時でも そのシグナルをマスクしないよ"
4610 "うにする。 このフラグはシグナルハンドラを設定する際にのみ意味を持つ。 "
4611 "B<SA_NOMASK> はこのフラグと同じ意味だが、廃止されており、非標準である。"
4612
4613 #. type: TP
4614 #: build/C/man2/sigaction.2:220
4615 #, no-wrap
4616 msgid "B<SA_ONSTACK>"
4617 msgstr "B<SA_ONSTACK>"
4618
4619 #. type: Plain text
4620 #: build/C/man2/sigaction.2:226
4621 msgid ""
4622 "Call the signal handler on an alternate signal stack provided by "
4623 "B<sigaltstack>(2).  If an alternate stack is not available, the default "
4624 "stack will be used.  This flag is meaningful only when establishing a signal "
4625 "handler."
4626 msgstr ""
4627 "B<sigaltstack>(2)  で提供される別のシグナル・スタックでシグナルハンドラを呼び"
4628 "出す。 別のシグナル・スタックが利用可能でなければ、デフォルトのスタックが 使"
4629 "用される。 このフラグはシグナルハンドラを設定する際にのみ意味を持つ。"
4630
4631 #. type: TP
4632 #: build/C/man2/sigaction.2:226
4633 #, no-wrap
4634 msgid "B<SA_RESETHAND>"
4635 msgstr "B<SA_RESETHAND>"
4636
4637 #. type: Plain text
4638 #: build/C/man2/sigaction.2:232
4639 msgid ""
4640 "Restore the signal action to the default upon entry to the signal handler.  "
4641 "This flag is meaningful only when establishing a signal handler.  "
4642 "B<SA_ONESHOT> is an obsolete, nonstandard synonym for this flag."
4643 msgstr ""
4644 "シグナルハンドラを設定する際に、シグナルの動作をデフォルトに戻す。 このフラグ"
4645 "はシグナルハンドラを設定する際にのみ意味を持つ。 B<SA_ONESHOT> はこのフラグと"
4646 "同じ意味だが、廃止されており、非標準である。"
4647
4648 #. type: TP
4649 #: build/C/man2/sigaction.2:232
4650 #, no-wrap
4651 msgid "B<SA_RESTART>"
4652 msgstr "B<SA_RESTART>"
4653
4654 #. type: Plain text
4655 #: build/C/man2/sigaction.2:240
4656 msgid ""
4657 "Provide behavior compatible with BSD signal semantics by making certain "
4658 "system calls restartable across signals.  This flag is meaningful only when "
4659 "establishing a signal handler.  See B<signal>(7)  for a discussion of system "
4660 "call restarting."
4661 msgstr ""
4662 "いくつかのシステムコールをシグナルの通知の前後で再開できるようにして、 BSD シ"
4663 "グナル方式 (semantics) と互換性のある動作を提供する。 このフラグはシグナルハ"
4664 "ンドラを設定する際にのみ意味を持つ。 B<signal>(7)  に書かれているシステムコー"
4665 "ルの再開に関する議論を参照のこと。"
4666
4667 #. type: TP
4668 #: build/C/man2/sigaction.2:240
4669 #, no-wrap
4670 msgid "B<SA_SIGINFO> (since Linux 2.2)"
4671 msgstr "B<SA_SIGINFO> (Linux 2.2 以降)"
4672
4673 #.  (The
4674 #.  .I sa_sigaction
4675 #.  field was added in Linux 2.1.86.)
4676 #. type: Plain text
4677 #: build/C/man2/sigaction.2:251
4678 msgid ""
4679 "The signal handler takes three arguments, not one.  In this case, "
4680 "I<sa_sigaction> should be set instead of I<sa_handler>.  This flag is "
4681 "meaningful only when establishing a signal handler."
4682 msgstr ""
4683 "シグナルハンドラは一つではなく、三つの引き数を持つ。この場合は I<sa_handler> "
4684 "のかわりに I<sa_sigaction> を設定しなければならない このフラグはシグナルハン"
4685 "ドラを設定する際にのみ意味を持つ。"
4686
4687 #. type: Plain text
4688 #: build/C/man2/sigaction.2:258
4689 msgid ""
4690 "The I<siginfo_t> argument to I<sa_sigaction> is a struct with the following "
4691 "elements:"
4692 msgstr ""
4693 "I<sa_sigaction> のパラメータ I<siginfo_t> は以下の要素を持つ構造体である:"
4694
4695 #.  FIXME
4696 #.  si_trapno seems to be only used on SPARC and Alpha;
4697 #.  this page could use a little more detail on its purpose there.
4698 #.  In the kernel: si_tid
4699 #. type: Plain text
4700 #: build/C/man2/sigaction.2:289
4701 #, no-wrap
4702 msgid ""
4703 "siginfo_t {\n"
4704 "    int      si_signo;    /* Signal number */\n"
4705 "    int      si_errno;    /* An errno value */\n"
4706 "    int      si_code;     /* Signal code */\n"
4707 "    int      si_trapno;   /* Trap number that caused\n"
4708 "                             hardware-generated signal\n"
4709 "                             (unused on most architectures) */\n"
4710 "    pid_t    si_pid;      /* Sending process ID */\n"
4711 "    uid_t    si_uid;      /* Real user ID of sending process */\n"
4712 "    int      si_status;   /* Exit value or signal */\n"
4713 "    clock_t  si_utime;    /* User time consumed */\n"
4714 "    clock_t  si_stime;    /* System time consumed */\n"
4715 "    sigval_t si_value;    /* Signal value */\n"
4716 "    int      si_int;      /* POSIX.1b signal */\n"
4717 "    void    *si_ptr;      /* POSIX.1b signal */\n"
4718 "    int      si_overrun;  /* Timer overrun count; POSIX.1b timers */\n"
4719 "    int      si_timerid;  /* Timer ID; POSIX.1b timers */\n"
4720 "    void    *si_addr;     /* Memory location which caused fault */\n"
4721 "    long     si_band;     /* Band event (was I<int> in\n"
4722 "                             glibc 2.3.2 and earlier) */\n"
4723 "    int      si_fd;       /* File descriptor */\n"
4724 "    short    si_addr_lsb; /* Least significant bit of address\n"
4725 "                             (since Linux 2.6.32) */\n"
4726 "}\n"
4727 msgstr ""
4728 "siginfo_t {\n"
4729 "    int      si_signo;    /* Signal number */\n"
4730 "    int      si_errno;    /* An errno value */\n"
4731 "    int      si_code;     /* Signal code */\n"
4732 "    int      si_trapno;   /* Trap number that caused\n"
4733 "                             hardware-generated signal\n"
4734 "                             (unused on most architectures) */\n"
4735 "    pid_t    si_pid;      /* Sending process ID */\n"
4736 "    uid_t    si_uid;      /* Real user ID of sending process */\n"
4737 "    int      si_status;   /* Exit value or signal */\n"
4738 "    clock_t  si_utime;    /* User time consumed */\n"
4739 "    clock_t  si_stime;    /* System time consumed */\n"
4740 "    sigval_t si_value;    /* Signal value */\n"
4741 "    int      si_int;      /* POSIX.1b signal */\n"
4742 "    void    *si_ptr;      /* POSIX.1b signal */\n"
4743 "    int      si_overrun;  /* Timer overrun count; POSIX.1b timers */\n"
4744 "    int      si_timerid;  /* Timer ID; POSIX.1b timers */\n"
4745 "    void    *si_addr;     /* Memory location which caused fault */\n"
4746 "    long     si_band;     /* Band event (was I<int> in\n"
4747 "                             glibc 2.3.2 and earlier) */\n"
4748 "    int      si_fd;       /* File descriptor */\n"
4749 "    short    si_addr_lsb; /* Least significant bit of address\n"
4750 "                             (since Linux 2.6.32) */\n"
4751 "}\n"
4752
4753 #. type: Plain text
4754 #: build/C/man2/sigaction.2:298
4755 msgid ""
4756 "I<si_signo>, I<si_errno> and I<si_code> are defined for all signals.  "
4757 "(I<si_errno> is generally unused on Linux.)  The rest of the struct may be a "
4758 "union, so that one should read only the fields that are meaningful for the "
4759 "given signal:"
4760 msgstr ""
4761 "I<si_signo>, I<si_errno>, I<si_code> は全てのシグナルに対して定義されている "
4762 "(I<si_errno> は Linux では一般的には使用されない)。 構造体の残りの部分は、共"
4763 "用体 (union) になっているかもしれない。 その場合は該当するシグナルにおいて意"
4764 "味のあるフィールドのみを読み込む ことができる。"
4765
4766 #. type: Plain text
4767 #: build/C/man2/sigaction.2:313
4768 msgid ""
4769 "Signals sent with B<kill>(2)  and B<sigqueue>(3)  fill in I<si_pid> and "
4770 "I<si_uid>.  In addition, signals sent with B<sigqueue>(3)  fill in I<si_int> "
4771 "and I<si_ptr> with the values specified by the sender of the signal; see "
4772 "B<sigqueue>(3)  for more details."
4773 msgstr ""
4774 "B<kill>(2) や B<sigqueue>(3) で送信されたシグナルでは I<si_pid> と I<si_uid> "
4775 "が設定される。\n"
4776 "さらに、 B<sigqueue>(3) で送信されたシグナルでは I<si_int> と I<si_pid> にシ"
4777 "グナルの送信者により指定された値が設定される。詳細は B<sigqueue>(3) を参照。"
4778
4779 #. type: Plain text
4780 #: build/C/man2/sigaction.2:329
4781 msgid ""
4782 "Signals sent by POSIX.1b timers (since Linux 2.6) fill in I<si_overrun> and "
4783 "I<si_timerid>.  The I<si_timerid> field is an internal ID used by the kernel "
4784 "to identify the timer; it is not the same as the timer ID returned by "
4785 "B<timer_create>(2).  The I<si_overrun> field is the timer overrun count; "
4786 "this is the same information as is obtained by a call to B<timer_getoverrun>"
4787 "(2).  These fields are nonstandard Linux extensions."
4788 msgstr ""
4789 "POSIX.1b タイマ (Linux 2.6 以降) は I<si_overrun> と I<si_timerid> を\n"
4790 "設定する。 I<si_timerid> フィールドはカーネルがタイマを特定するのに\n"
4791 "使用する内部 ID であり、 B<timer_create>(2) が返すタイマ ID と同じではな"
4792 "い。\n"
4793 "I<si_overrun> フィールドはタイマが回り切った回数である。\n"
4794 "これは B<timer_getoverrun>(2) の呼び出しで取得できる情報と同じである。\n"
4795 "これらのフィールドは非標準で Linux による拡張である。"
4796
4797 #. type: Plain text
4798 #: build/C/man2/sigaction.2:344
4799 msgid ""
4800 "Signals sent for message queue notification (see the description of "
4801 "B<SIGEV_SIGNAL> in B<mq_notify>(3))  fill in I<si_int>/I<si_ptr>, with the "
4802 "I<sigev_value> supplied to B<mq_notify>(3); I<si_pid>, with the process ID "
4803 "of the message sender; and I<si_uid>, with the real user ID of the message "
4804 "sender."
4805 msgstr ""
4806 "メッセージキューの通知用に送信されたシグナル (B<mq_notify>(3) の "
4807 "B<SIGEV_SIGNAL> の説明を参照) では、 I<si_int>/I<si_ptr> に B<mq_notify>(3) "
4808 "に渡された I<sigev_value> が設定される。 I<si_pid> にはメッセージ送信者のプロ"
4809 "セス ID が設定され、 I<si_uid> にはメッセージ送信者の実ユーザ ID が設定され"
4810 "る。"
4811
4812 #.  FIXME .
4813 #.  When si_utime and si_stime where originally implemented, the
4814 #.  measurement unit was HZ, which was the same as clock ticks
4815 #.  (sysconf(_SC_CLK_TCK)).  In 2.6, HZ became configurable, and
4816 #.  was *still* used as the unit to return the info these fields,
4817 #.  with the result that the field values depended on the the
4818 #.  configured HZ.  Of course, the should have been measured in
4819 #.  USER_HZ instead, so that sysconf(_SC_CLK_TCK) could be used to
4820 #.  convert to seconds.  I have a queued patch to fix this:
4821 #.  http://thread.gmane.org/gmane.linux.kernel/698061/ .
4822 #.  This patch made it into 2.6.27.
4823 #.  But note that these fields still don't return the times of
4824 #.  waited-for children (as is done by getrusage() and times()
4825 #.  and wait4()).  Solaris 8 does include child times.
4826 #. type: Plain text
4827 #: build/C/man2/sigaction.2:391
4828 msgid ""
4829 "B<SIGCHLD> fills in I<si_pid>, I<si_uid>, I<si_status>, I<si_utime> and "
4830 "I<si_stime>, providing information about the child.  The I<si_pid> field is "
4831 "the process ID of the child; I<si_uid> is the child's real user ID.  The "
4832 "I<si_status> field contains the exit status of the child (if I<si_code> is "
4833 "B<CLD_EXITED>), or the signal number that caused the process to change "
4834 "state.  The I<si_utime> and I<si_stime> contain the user and system CPU time "
4835 "used by the child process; these fields do not include the times used by "
4836 "waited-for children (unlike B<getrusage>(2)  and B<time>(2)).  In kernels up "
4837 "to 2.6, and since 2.6.27, these fields report CPU time in units of I<sysconf"
4838 "(_SC_CLK_TCK)>.  In 2.6 kernels before 2.6.27, a bug meant that these fields "
4839 "reported time in units of the (configurable) system jiffy (see B<time>(7))."
4840 msgstr ""
4841 "B<SIGCHLD> は I<si_pid>, I<si_uid>, I<si_status>, I<si_utime>,\n"
4842 "I<si_stime> を設定し、子プロセスに関する情報を提供する。\n"
4843 "I<si_pid> フィールドは子プロセスのプロセス ID で、\n"
4844 "I<si_uid> フィールドは子プロセスの実ユーザ ID である。\n"
4845 "I<si_stime> フィールドには、 (I<si_code> が B<CLD_EXITED> の場合は) \n"
4846 "子プロセスの終了ステータスが、それ以外の場合は状態が変化する原因と\n"
4847 "なったシグナル番号が格納される。\n"
4848 "I<si_utime> と I<si_stime> には子プロセスが使用したユーザ CPU 時間とシ\n"
4849 "ステム CPU 時間がそれぞれ格納される。(B<getrusage>(2) や B<time>(2) と\n"
4850 "異なり) これらのフィールドには wait 待ちの子プロセスにより使用された時\n"
4851 "間は含まれない。 2.6 より前と 2.6.27 以降のカーネルでは、 これらのフィー\n"
4852 "ルドに格納される CPU 時間の単位は I<sysconf(_SC_CLK_TCK)> である。\n"
4853 "2.6.27 より前の 2.6 系のカーネルでは、バグがあり、 これらのフィールドの\n"
4854 "CPU 時間の単位が (カーネルのコンフィグで指定される) システムの jiffy で\n"
4855 "あった (B<time>(7) 参照)。"
4856
4857 #.  FIXME SIGTRAP also sets the following for ptrace_notify() ?
4858 #.      info.si_code = exit_code;
4859 #.      info.si_pid = task_pid_vnr(current);
4860 #.      info.si_uid = current_uid();  /* Real UID */
4861 #. type: Plain text
4862 #: build/C/man2/sigaction.2:427
4863 msgid ""
4864 "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, and B<SIGTRAP> fill in "
4865 "I<si_addr> with the address of the fault.  On some architectures, these "
4866 "signals also fill in the I<si_trapno> field.  Some suberrors of B<SIGBUS>, "
4867 "in particular B<BUS_MCEERR_AO> and B<BUS_MCEERR_AR>, also fill in "
4868 "I<si_addr_lsb>.  This field indicates the least significant bit of the "
4869 "reported address and therefore the extent of the corruption.  For example, "
4870 "if a full page was corrupted, I<si_addr_lsb> contains I<log2(sysconf"
4871 "(_SC_PAGESIZE))>.  B<BUS_MCERR_*> and I<si_addr_lsb> are Linux-specific "
4872 "extensions."
4873 msgstr "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, B<SIGTRAP> では、 I<si_addr> に fault が発生したアドレスが設定される。 いくつかのアーキテクチャでは、 これらのシグナルは I<si_trapno> フィールドにも設定される。 B<SIGBUS> が発生するエラーのいくつか、特に B<BUS_MCEERR_AO> と B<BUS_MCEERR_AR> では、 I<si_addr_lsb> も設定される。 このフィールドは報告されるアドレスの最下位ビットを示し、 これによりメモリ破壊の程度を知ることができる。 例えば、ページ全体が壊れている場合には I<si_addr_lsb> には I<log2(sysconf(_SC_PAGESIZE))> が入る。 B<BUS_MCERR_*> と I<si_addr_lsb> は Linux 固有の拡張である。"
4874
4875 #. type: Plain text
4876 #: build/C/man2/sigaction.2:441
4877 msgid ""
4878 "B<SIGIO>/B<SIGPOLL> (the two names are synonyms on Linux)  fills in "
4879 "I<si_band> and I<si_fd>.  The I<si_band> event is a bit mask containing the "
4880 "same values as are filled in the I<revents> field by B<poll>(2).  The "
4881 "I<si_fd> field indicates the file descriptor for which the I/O event "
4882 "occurred."
4883 msgstr ""
4884 "B<SIGIO>/B<SIGPOLL> (2 つの名前は Linux では同義語) では I<si_band> と "
4885 "I<si_fd> が設定される。 I<si_band> イベントは、 B<poll>(2) が I<revents> "
4886 "フィールドに設定するのと同じ値が入ったビットマスクである。 I<si_fd> フィール"
4887 "ドは I/O イベントが発生したファイルディスクリプタを示す。"
4888
4889 #. type: Plain text
4890 #: build/C/man2/sigaction.2:448
4891 msgid ""
4892 "I<si_code> is a value (not a bit mask)  indicating why this signal was "
4893 "sent.  The following list shows the values which can be placed in I<si_code> "
4894 "for any signal, along with reason that the signal was generated."
4895 msgstr ""
4896 "I<si_code> は、そのシグナルが送信された理由を示す値である (ビットマスクではな"
4897 "い)。 以下は、どのシグナルの場合でも I<si_code> に入りうる値のリストである。"
4898 "シグナルが生成された理由も記載している。"
4899
4900 #. type: TP
4901 #: build/C/man2/sigaction.2:449
4902 #, no-wrap
4903 msgid "B<SI_USER>"
4904 msgstr "B<SI_USER>"
4905
4906 #. type: TP
4907 #: build/C/man2/sigaction.2:452 build/C/man7/signal.7:111
4908 #, no-wrap
4909 msgid "B<kill>(2)"
4910 msgstr "B<kill>(2)"
4911
4912 #. type: TP
4913 #: build/C/man2/sigaction.2:452
4914 #, no-wrap
4915 msgid "B<SI_KERNEL>"
4916 msgstr "B<SI_KERNEL>"
4917
4918 #. type: Plain text
4919 #: build/C/man2/sigaction.2:455
4920 msgid "Sent by the kernel."
4921 msgstr "カーネルにより送信された"
4922
4923 #. type: TP
4924 #: build/C/man2/sigaction.2:455
4925 #, no-wrap
4926 msgid "B<SI_QUEUE>"
4927 msgstr "B<SI_QUEUE>"
4928
4929 #. type: TP
4930 #: build/C/man2/sigaction.2:458 build/C/man7/signal.7:128
4931 #, no-wrap
4932 msgid "B<sigqueue>(3)"
4933 msgstr "B<sigqueue>(3)"
4934
4935 #. type: TP
4936 #: build/C/man2/sigaction.2:458
4937 #, no-wrap
4938 msgid "B<SI_TIMER>"
4939 msgstr "B<SI_TIMER>"
4940
4941 #. type: Plain text
4942 #: build/C/man2/sigaction.2:461
4943 msgid "POSIX timer expired"
4944 msgstr "POSIX タイマが満了した"
4945
4946 #. type: TP
4947 #: build/C/man2/sigaction.2:461
4948 #, no-wrap
4949 msgid "B<SI_MESGQ>"
4950 msgstr "B<SI_MESGQ>"
4951
4952 #. type: Plain text
4953 #: build/C/man2/sigaction.2:465
4954 msgid ""
4955 "POSIX message queue state changed (since Linux 2.6.6); see B<mq_notify>(3)"
4956 msgstr ""
4957 "POSIX メッセージキューの状態が変化した (Linux 2.6.6 以降)。 B<mq_notify>(3)B<"
4958 "参照。>"
4959
4960 #. type: TP
4961 #: build/C/man2/sigaction.2:465
4962 #, no-wrap
4963 msgid "B<SI_ASYNCIO>"
4964 msgstr "B<SI_ASYNCIO>"
4965
4966 #. type: Plain text
4967 #: build/C/man2/sigaction.2:468
4968 msgid "AIO completed"
4969 msgstr "非同期 IO (AIO) が完了した"
4970
4971 #. type: TP
4972 #: build/C/man2/sigaction.2:468
4973 #, no-wrap
4974 msgid "B<SI_SIGIO>"
4975 msgstr "B<SI_SIGIO>"
4976
4977 #. type: Plain text
4978 #: build/C/man2/sigaction.2:477
4979 msgid ""
4980 "Queued B<SIGIO> (only in kernels up to Linux 2.2; from Linux 2.4 onward "
4981 "B<SIGIO>/B<SIGPOLL> fills in I<si_code> as described below)."
4982 msgstr ""
4983 "B<SIGIO> がキューイングされた (Linux 2.2 以下のカーネルのみ; Linux 2.4 以降で"
4984 "は以下で説明する B<SIGIO>/B<SIGPOLL> の I<si_code> が入る)。"
4985
4986 #. type: TP
4987 #: build/C/man2/sigaction.2:477
4988 #, no-wrap
4989 msgid "B<SI_TKILL>"
4990 msgstr "B<SI_TKILL>"
4991
4992 #.  SI_DETHREAD is defined in 2.6.9 sources, but isn't implemented
4993 #.  It appears to have been an idea that was tried during 2.5.6
4994 #.  through to 2.5.24 and then was backed out.
4995 #. type: Plain text
4996 #: build/C/man2/sigaction.2:486
4997 msgid "B<tkill>(2)  or B<tgkill>(2)  (since Linux 2.4.19)"
4998 msgstr "B<tkill>(2)  または B<tgkill>(2)  (Linux 2.4.19 以降)"
4999
5000 #. type: Plain text
5001 #: build/C/man2/sigaction.2:493
5002 msgid ""
5003 "The following values can be placed in I<si_code> for a B<SIGILL> signal:"
5004 msgstr "B<SIGILL> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5005
5006 #. type: TP
5007 #: build/C/man2/sigaction.2:494
5008 #, no-wrap
5009 msgid "B<ILL_ILLOPC>"
5010 msgstr "B<ILL_ILLOPC>"
5011
5012 #. type: Plain text
5013 #: build/C/man2/sigaction.2:497
5014 msgid "illegal opcode"
5015 msgstr "不正な命令コード (opcode)"
5016
5017 #. type: TP
5018 #: build/C/man2/sigaction.2:497
5019 #, no-wrap
5020 msgid "B<ILL_ILLOPN>"
5021 msgstr "B<ILL_ILLOPN>"
5022
5023 #. type: Plain text
5024 #: build/C/man2/sigaction.2:500
5025 msgid "illegal operand"
5026 msgstr "不正なオペランド"
5027
5028 #. type: TP
5029 #: build/C/man2/sigaction.2:500
5030 #, no-wrap
5031 msgid "B<ILL_ILLADR>"
5032 msgstr "B<ILL_ILLADR>"
5033
5034 #. type: Plain text
5035 #: build/C/man2/sigaction.2:503
5036 msgid "illegal addressing mode"
5037 msgstr "不正なアドレッシングモード"
5038
5039 #. type: TP
5040 #: build/C/man2/sigaction.2:503
5041 #, no-wrap
5042 msgid "B<ILL_ILLTRP>"
5043 msgstr "B<ILL_ILLTRP>"
5044
5045 #. type: Plain text
5046 #: build/C/man2/sigaction.2:506
5047 msgid "illegal trap"
5048 msgstr "不正なトラップ"
5049
5050 #. type: TP
5051 #: build/C/man2/sigaction.2:506
5052 #, no-wrap
5053 msgid "B<ILL_PRVOPC>"
5054 msgstr "B<ILL_PRVOPC>"
5055
5056 #. type: Plain text
5057 #: build/C/man2/sigaction.2:509
5058 msgid "privileged opcode"
5059 msgstr "特権が必要な命令コード (opcode)"
5060
5061 #. type: TP
5062 #: build/C/man2/sigaction.2:509
5063 #, no-wrap
5064 msgid "B<ILL_PRVREG>"
5065 msgstr "B<ILL_PRVREG>"
5066
5067 #. type: Plain text
5068 #: build/C/man2/sigaction.2:512
5069 msgid "privileged register"
5070 msgstr "特権が必要なレジスタ"
5071
5072 #. type: TP
5073 #: build/C/man2/sigaction.2:512
5074 #, no-wrap
5075 msgid "B<ILL_COPROC>"
5076 msgstr "B<ILL_COPROC>"
5077
5078 #. type: Plain text
5079 #: build/C/man2/sigaction.2:515
5080 msgid "coprocessor error"
5081 msgstr "コプロセッサのエラー"
5082
5083 #. type: TP
5084 #: build/C/man2/sigaction.2:515
5085 #, no-wrap
5086 msgid "B<ILL_BADSTK>"
5087 msgstr "B<ILL_BADSTK>"
5088
5089 #. type: Plain text
5090 #: build/C/man2/sigaction.2:518
5091 msgid "internal stack error"
5092 msgstr "内部スタックエラー"
5093
5094 #. type: Plain text
5095 #: build/C/man2/sigaction.2:525
5096 msgid ""
5097 "The following values can be placed in I<si_code> for a B<SIGFPE> signal:"
5098 msgstr "B<SIGFPE> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5099
5100 #. type: TP
5101 #: build/C/man2/sigaction.2:526
5102 #, no-wrap
5103 msgid "B<FPE_INTDIV>"
5104 msgstr "B<FPE_INTDIV>"
5105
5106 #. type: Plain text
5107 #: build/C/man2/sigaction.2:529
5108 msgid "integer divide by zero"
5109 msgstr "整数の 0 による除算"
5110
5111 #. type: TP
5112 #: build/C/man2/sigaction.2:529
5113 #, no-wrap
5114 msgid "B<FPE_INTOVF>"
5115 msgstr "B<FPE_INTOVF>"
5116
5117 #. type: Plain text
5118 #: build/C/man2/sigaction.2:532
5119 msgid "integer overflow"
5120 msgstr "整数のオーバーフロー"
5121
5122 #. type: TP
5123 #: build/C/man2/sigaction.2:532
5124 #, no-wrap
5125 msgid "B<FPE_FLTDIV>"
5126 msgstr "B<FPE_FLTDIV>"
5127
5128 #. type: Plain text
5129 #: build/C/man2/sigaction.2:535
5130 msgid "floating-point divide by zero"
5131 msgstr "浮動小数点の 0 による除算"
5132
5133 #. type: TP
5134 #: build/C/man2/sigaction.2:535
5135 #, no-wrap
5136 msgid "B<FPE_FLTOVF>"
5137 msgstr "B<FPE_FLTOVF>"
5138
5139 #. type: Plain text
5140 #: build/C/man2/sigaction.2:538
5141 msgid "floating-point overflow"
5142 msgstr "浮動小数点のオーバーフロー"
5143
5144 #. type: TP
5145 #: build/C/man2/sigaction.2:538
5146 #, no-wrap
5147 msgid "B<FPE_FLTUND>"
5148 msgstr "B<FPE_FLTUND>"
5149
5150 #. type: Plain text
5151 #: build/C/man2/sigaction.2:541
5152 msgid "floating-point underflow"
5153 msgstr "浮動小数点のアンダーフロー"
5154
5155 #. type: TP
5156 #: build/C/man2/sigaction.2:541
5157 #, no-wrap
5158 msgid "B<FPE_FLTRES>"
5159 msgstr "B<FPE_FLTRES>"
5160
5161 #. type: Plain text
5162 #: build/C/man2/sigaction.2:544
5163 msgid "floating-point inexact result"
5164 msgstr "浮動小数点の不正確な演算結果 (inexact result)"
5165
5166 #. type: TP
5167 #: build/C/man2/sigaction.2:544
5168 #, no-wrap
5169 msgid "B<FPE_FLTINV>"
5170 msgstr "B<FPE_FLTINV>"
5171
5172 #. type: Plain text
5173 #: build/C/man2/sigaction.2:547
5174 msgid "floating-point invalid operation"
5175 msgstr "浮動小数点の不正な操作"
5176
5177 #. type: TP
5178 #: build/C/man2/sigaction.2:547
5179 #, no-wrap
5180 msgid "B<FPE_FLTSUB>"
5181 msgstr "B<FPE_FLTSUB>"
5182
5183 #. type: Plain text
5184 #: build/C/man2/sigaction.2:550
5185 msgid "subscript out of range"
5186 msgstr "範囲外の添字 (subscript)"
5187
5188 #. type: Plain text
5189 #: build/C/man2/sigaction.2:557
5190 msgid ""
5191 "The following values can be placed in I<si_code> for a B<SIGSEGV> signal:"
5192 msgstr "B<SIGSEGV> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5193
5194 #. type: TP
5195 #: build/C/man2/sigaction.2:558
5196 #, no-wrap
5197 msgid "B<SEGV_MAPERR>"
5198 msgstr "B<SEGV_MAPERR>"
5199
5200 #. type: Plain text
5201 #: build/C/man2/sigaction.2:561
5202 msgid "address not mapped to object"
5203 msgstr "オブジェクトにマッピングされていないアドレス"
5204
5205 #. type: TP
5206 #: build/C/man2/sigaction.2:561
5207 #, no-wrap
5208 msgid "B<SEGV_ACCERR>"
5209 msgstr "B<SEGV_ACCERR>"
5210
5211 #. type: Plain text
5212 #: build/C/man2/sigaction.2:564
5213 msgid "invalid permissions for mapped object"
5214 msgstr "マッピングされたオブジェクトに対するアクセス許可がない"
5215
5216 #. type: Plain text
5217 #: build/C/man2/sigaction.2:571
5218 msgid ""
5219 "The following values can be placed in I<si_code> for a B<SIGBUS> signal:"
5220 msgstr "B<SIGBUS> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5221
5222 #. type: TP
5223 #: build/C/man2/sigaction.2:572
5224 #, no-wrap
5225 msgid "B<BUS_ADRALN>"
5226 msgstr "B<BUS_ADRALN>"
5227
5228 #. type: Plain text
5229 #: build/C/man2/sigaction.2:575
5230 msgid "invalid address alignment"
5231 msgstr "不正なアドレス・アライメント (alignment)"
5232
5233 #. type: TP
5234 #: build/C/man2/sigaction.2:575
5235 #, no-wrap
5236 msgid "B<BUS_ADRERR>"
5237 msgstr "B<BUS_ADRERR>"
5238
5239 #. type: Plain text
5240 #: build/C/man2/sigaction.2:578
5241 msgid "nonexistent physical address"
5242 msgstr "存在しない物理アドレス"
5243
5244 #. type: TP
5245 #: build/C/man2/sigaction.2:578
5246 #, no-wrap
5247 msgid "B<BUS_OBJERR>"
5248 msgstr "B<BUS_OBJERR>"
5249
5250 #. type: Plain text
5251 #: build/C/man2/sigaction.2:581
5252 msgid "object-specific hardware error"
5253 msgstr "オブジェクト固有のハードウェアエラー"
5254
5255 #. type: TP
5256 #: build/C/man2/sigaction.2:581
5257 #, no-wrap
5258 msgid "B<BUS_MCEERR_AR> (since Linux 2.6.32)"
5259 msgstr "B<BUS_MCEERR_AR> (Linux 2.6.32 以降)"
5260
5261 #. type: Plain text
5262 #: build/C/man2/sigaction.2:584
5263 msgid "Hardware memory error consumed on a machine check; action required."
5264 msgstr ""
5265 "マシンチェックで使用中のハードウェアメモリのエラーが検出された。対応が必須。"
5266
5267 #. type: TP
5268 #: build/C/man2/sigaction.2:584
5269 #, no-wrap
5270 msgid "B<BUS_MCEERR_AO> (since Linux 2.6.32)"
5271 msgstr "B<BUS_MCEERR_AO> (Linux 2.6.32  以降)"
5272
5273 #. type: Plain text
5274 #: build/C/man2/sigaction.2:587
5275 msgid ""
5276 "Hardware memory error detected in process but not consumed; action optional."
5277 msgstr ""
5278 "実行中にハードウェアメモリエラーが検出されたが、使用中のメモリではない。対応"
5279 "は必須ではない。"
5280
5281 #. type: Plain text
5282 #: build/C/man2/sigaction.2:594
5283 msgid ""
5284 "The following values can be placed in I<si_code> for a B<SIGTRAP> signal:"
5285 msgstr "B<SIGTRAP> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5286
5287 #. type: TP
5288 #: build/C/man2/sigaction.2:595
5289 #, no-wrap
5290 msgid "B<TRAP_BRKPT>"
5291 msgstr "B<TRAP_BRKPT>"
5292
5293 #. type: Plain text
5294 #: build/C/man2/sigaction.2:598
5295 msgid "process breakpoint"
5296 msgstr "プロセスのブレークポイント"
5297
5298 #. type: TP
5299 #: build/C/man2/sigaction.2:598
5300 #, no-wrap
5301 msgid "B<TRAP_TRACE>"
5302 msgstr "B<TRAP_TRACE>"
5303
5304 #. type: Plain text
5305 #: build/C/man2/sigaction.2:601
5306 msgid "process trace trap"
5307 msgstr "プロセスのトレース・トラップ"
5308
5309 #. type: TP
5310 #: build/C/man2/sigaction.2:601
5311 #, no-wrap
5312 msgid "B<TRAP_BRANCH> (since Linux 2.4)"
5313 msgstr "B<TRAP_BRANCH> (Linux 2.4 以降)"
5314
5315 #. type: Plain text
5316 #: build/C/man2/sigaction.2:604
5317 msgid "process taken branch trap"
5318 msgstr "プロセスのブランチ・トラップ"
5319
5320 #. type: TP
5321 #: build/C/man2/sigaction.2:604
5322 #, no-wrap
5323 msgid "B<TRAP_HWBKPT> (since Linux 2.4)"
5324 msgstr "B<TRAP_HWBKPT> (Linux 2.4 以降)"
5325
5326 #. type: Plain text
5327 #: build/C/man2/sigaction.2:607
5328 msgid "hardware breakpoint/watchpoint"
5329 msgstr "ハードウェア・ブレークポイント/ウォッチポイント"
5330
5331 #. type: Plain text
5332 #: build/C/man2/sigaction.2:614
5333 msgid ""
5334 "The following values can be placed in I<si_code> for a B<SIGCHLD> signal:"
5335 msgstr "B<SIGCHLD> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5336
5337 #. type: TP
5338 #: build/C/man2/sigaction.2:615
5339 #, no-wrap
5340 msgid "B<CLD_EXITED>"
5341 msgstr "B<CLD_EXITED>"
5342
5343 #. type: Plain text
5344 #: build/C/man2/sigaction.2:618
5345 msgid "child has exited"
5346 msgstr "子プロセスが終了した (exited)"
5347
5348 #. type: TP
5349 #: build/C/man2/sigaction.2:618
5350 #, no-wrap
5351 msgid "B<CLD_KILLED>"
5352 msgstr "B<CLD_KILLED>"
5353
5354 #. type: Plain text
5355 #: build/C/man2/sigaction.2:621
5356 msgid "child was killed"
5357 msgstr "子プロセスが kill された"
5358
5359 #. type: TP
5360 #: build/C/man2/sigaction.2:621
5361 #, no-wrap
5362 msgid "B<CLD_DUMPED>"
5363 msgstr "B<CLD_DUMPED>"
5364
5365 #. type: Plain text
5366 #: build/C/man2/sigaction.2:624
5367 msgid "child terminated abnormally"
5368 msgstr "子プロセスが異常終了した"
5369
5370 #. type: TP
5371 #: build/C/man2/sigaction.2:624
5372 #, no-wrap
5373 msgid "B<CLD_TRAPPED>"
5374 msgstr "B<CLD_TRAPPED>"
5375
5376 #. type: Plain text
5377 #: build/C/man2/sigaction.2:627
5378 msgid "traced child has trapped"
5379 msgstr "トレース対象の子プロセスがトラップを上げた"
5380
5381 #. type: TP
5382 #: build/C/man2/sigaction.2:627
5383 #, no-wrap
5384 msgid "B<CLD_STOPPED>"
5385 msgstr "B<CLD_STOPPED>"
5386
5387 #. type: Plain text
5388 #: build/C/man2/sigaction.2:630
5389 msgid "child has stopped"
5390 msgstr "子プロセスが停止 (stop) した"
5391
5392 #. type: TP
5393 #: build/C/man2/sigaction.2:630
5394 #, no-wrap
5395 msgid "B<CLD_CONTINUED>"
5396 msgstr "B<CLD_CONTINUED>"
5397
5398 #. type: Plain text
5399 #: build/C/man2/sigaction.2:633
5400 msgid "stopped child has continued (since Linux 2.6.9)"
5401 msgstr "停止していた子プロセスが再開した (Linux 2.6.9 以降)"
5402
5403 #. type: Plain text
5404 #: build/C/man2/sigaction.2:640
5405 msgid ""
5406 "The following values can be placed in I<si_code> for a B<SIGIO>/B<SIGPOLL> "
5407 "signal:"
5408 msgstr ""
5409 "B<SIGIO>/B<SIGPOLL> シグナルの場合、 I<si_code> には以下の値が入る可能性があ"
5410 "る:"
5411
5412 #. type: TP
5413 #: build/C/man2/sigaction.2:641
5414 #, no-wrap
5415 msgid "B<POLL_IN>"
5416 msgstr "B<POLL_IN>"
5417
5418 #. type: Plain text
5419 #: build/C/man2/sigaction.2:644
5420 msgid "data input available"
5421 msgstr "入力データが利用可能"
5422
5423 #. type: TP
5424 #: build/C/man2/sigaction.2:644
5425 #, no-wrap
5426 msgid "B<POLL_OUT>"
5427 msgstr "B<POLL_OUT>"
5428
5429 #. type: Plain text
5430 #: build/C/man2/sigaction.2:647
5431 msgid "output buffers available"
5432 msgstr "出力バッファが利用可能"
5433
5434 #. type: TP
5435 #: build/C/man2/sigaction.2:647
5436 #, no-wrap
5437 msgid "B<POLL_MSG>"
5438 msgstr "B<POLL_MSG>"
5439
5440 #. type: Plain text
5441 #: build/C/man2/sigaction.2:650
5442 msgid "input message available"
5443 msgstr "入力メッセージが利用可能"
5444
5445 #. type: TP
5446 #: build/C/man2/sigaction.2:650
5447 #, no-wrap
5448 msgid "B<POLL_ERR>"
5449 msgstr "B<POLL_ERR>"
5450
5451 #. type: Plain text
5452 #: build/C/man2/sigaction.2:653
5453 msgid "I/O error"
5454 msgstr "I/O エラー"
5455
5456 #. type: TP
5457 #: build/C/man2/sigaction.2:653
5458 #, no-wrap
5459 msgid "B<POLL_PRI>"
5460 msgstr "B<POLL_PRI>"
5461
5462 #. type: Plain text
5463 #: build/C/man2/sigaction.2:656
5464 msgid "high priority input available"
5465 msgstr "高優先の入力が利用可能"
5466
5467 #. type: TP
5468 #: build/C/man2/sigaction.2:656
5469 #, no-wrap
5470 msgid "B<POLL_HUP>"
5471 msgstr "B<POLL_HUP>"
5472
5473 #. type: Plain text
5474 #: build/C/man2/sigaction.2:659
5475 msgid "device disconnected"
5476 msgstr "デバイスが接続されていない"
5477
5478 #. type: Plain text
5479 #: build/C/man2/sigaction.2:665
5480 msgid ""
5481 "B<sigaction>()  returns 0 on success; on error, -1 is returned, and I<errno> "
5482 "is set to indicate the error."
5483 msgstr ""
5484 "B<sigaction>() 関数は成功すると 0 を返す。 エラーの場合、-1 を返し、 "
5485 "I<errno> にエラーを示す値をセットする。"
5486
5487 #. type: Plain text
5488 #: build/C/man2/sigaction.2:670
5489 msgid ""
5490 "I<act> or I<oldact> points to memory which is not a valid part of the "
5491 "process address space."
5492 msgstr ""
5493 "I<act> か I<oldact> が指しているメモリが正しいプロセスのアドレス空間にない。"
5494
5495 #. type: Plain text
5496 #: build/C/man2/sigaction.2:677
5497 msgid ""
5498 "An invalid signal was specified.  This will also be generated if an attempt "
5499 "is made to change the action for B<SIGKILL> or B<SIGSTOP>, which cannot be "
5500 "caught or ignored."
5501 msgstr ""
5502 "無効なシグナルが指定された。補足 (catch) したり無視したりできない シグナルで"
5503 "ある B<SIGKILL> や B<SIGSTOP> に対する動作を変更しようとした場合にも発生す"
5504 "る。"
5505
5506 #.  SVr4 does not document the EINTR condition.
5507 #. type: Plain text
5508 #: build/C/man2/sigaction.2:680
5509 msgid "POSIX.1-2001, SVr4."
5510 msgstr "POSIX.1-2001, SVr4."
5511
5512 #. type: Plain text
5513 #: build/C/man2/sigaction.2:688 build/C/man7/signal.7:105
5514 msgid ""
5515 "A child created via B<fork>(2)  inherits a copy of its parent's signal "
5516 "dispositions.  During an B<execve>(2), the dispositions of handled signals "
5517 "are reset to the default; the dispositions of ignored signals are left "
5518 "unchanged."
5519 msgstr ""
5520 "B<fork>(2) 経由で作成された子プロセスは、親プロセスのシグナルの処理方法の コ"
5521 "ピーを継承する。\n"
5522 "B<execve>(2) の前後で、ハンドラが設定されているシグナルの処理方法はデフォルト"
5523 "にリセットされ、\n"
5524 "無視が設定されているシグナルの処理方法は変更されずそのままとなる。"
5525
5526 #. type: Plain text
5527 #: build/C/man2/sigaction.2:706 build/C/man2/signal.2:134
5528 msgid ""
5529 "According to POSIX, the behavior of a process is undefined after it ignores "
5530 "a B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> signal that was not generated by "
5531 "B<kill>(2)  or B<raise>(3).  Integer division by zero has undefined result.  "
5532 "On some architectures it will generate a B<SIGFPE> signal.  (Also dividing "
5533 "the most negative integer by -1 may generate B<SIGFPE>.)  Ignoring this "
5534 "signal might lead to an endless loop."
5535 msgstr ""
5536 "POSIX では、 B<kill>(2)  や B<raise>(3)  で生成できないシグナル B<SIGFPE>, "
5537 "B<SIGILL>, B<SIGSEGV> を無視 (ignore) した場合、その後の動作は未定義である。 "
5538 "ゼロによる整数割り算の結果は未定義となる。 アーキテクチャーによっては、このと"
5539 "き B<SIGFPE> シグナルが生成される。 (同様に負の最大整数を -1 で割ると "
5540 "B<SIGFPE> が生成されるかもしれない)  このシグナルを無視すると無限ループに陥る"
5541 "かもしれない。"
5542
5543 #. type: Plain text
5544 #: build/C/man2/sigaction.2:723
5545 msgid ""
5546 "POSIX.1-1990 disallowed setting the action for B<SIGCHLD> to B<SIG_IGN>.  "
5547 "POSIX.1-2001 allows this possibility, so that ignoring B<SIGCHLD> can be "
5548 "used to prevent the creation of zombies (see B<wait>(2)).  Nevertheless, the "
5549 "historical BSD and System V behaviors for ignoring B<SIGCHLD> differ, so "
5550 "that the only completely portable method of ensuring that terminated "
5551 "children do not become zombies is to catch the B<SIGCHLD> signal and perform "
5552 "a B<wait>(2)  or similar."
5553 msgstr ""
5554 "POSIX.1-1990 では B<SIGCHLD> に B<SIG_IGN> を設定することを認めていない。 "
5555 "POSIX.1-2001 では認められており、 B<SIGCHLD> を無視することでゾンビプロセスの"
5556 "生成を防止することができる (B<wait>(2)  を参照)。 さらに、BSD と SystemV で"
5557 "は B<SIGCHLD> を無視した際の動作が異なっている。 そのため、完全に移植性がある"
5558 "方法で、終了した子プロセスがゾンビにならないこと を保証するには、 B<SIGCHLD> "
5559 "シグナルを補足し、 B<wait>(2)  などを実行するしかない。"
5560
5561 #. type: Plain text
5562 #: build/C/man2/sigaction.2:736
5563 msgid ""
5564 "POSIX.1-1990 specified only B<SA_NOCLDSTOP>.  POSIX.1-2001 added "
5565 "B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>, and B<SA_SIGINFO>.  Use of "
5566 "these latter values in I<sa_flags> may be less portable in applications "
5567 "intended for older UNIX implementations."
5568 msgstr ""
5569 "POSIX.1-1990 の仕様では B<SA_NOCLDSTOP> のみが定義されている。\n"
5570 "POSIX.1-2001 では B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>,\n"
5571 "B<SA_SIGINFO> が追加された。 UNIX の古い実装で動かすアプリケーションで、\n"
5572 "他の I<sa_flags> フラグを使用すると移植性が下がる。"
5573
5574 #. type: Plain text
5575 #: build/C/man2/sigaction.2:740
5576 msgid ""
5577 "The B<SA_RESETHAND> flag is compatible with the SVr4 flag of the same name."
5578 msgstr "B<SA_RESETHAND> フラグは SVr4 の同じ名前のフラグと互換性がある。"
5579
5580 #. type: Plain text
5581 #: build/C/man2/sigaction.2:750
5582 msgid ""
5583 "The B<SA_NODEFER> flag is compatible with the SVr4 flag of the same name "
5584 "under kernels 1.3.9 and newer.  On older kernels the Linux implementation "
5585 "allowed the receipt of any signal, not just the one we are installing "
5586 "(effectively overriding any I<sa_mask> settings)."
5587 msgstr ""
5588 "B<SA_NODEFER> フラグは 1.3.9 以降のカーネルでは同じ名前の SVr4 のフラグと互換"
5589 "性がある。 ぞれ以前の Linux カーネルの実装では、このフラグを設定しているシグ"
5590 "ナル だけでなく、どのシグナルでも受けることを許していた (実際には I<sa_mask> "
5591 "の設定により無効にできる)。"
5592
5593 #. type: Plain text
5594 #: build/C/man2/sigaction.2:756
5595 msgid ""
5596 "B<sigaction>()  can be called with a NULL second argument to query the "
5597 "current signal handler.  It can also be used to check whether a given signal "
5598 "is valid for the current machine by calling it with NULL second and third "
5599 "arguments."
5600 msgstr ""
5601 "B<sigaction>()  の二番目の引き数に NULL を指定して呼び出すと、現在のシグナル"
5602 "ハンドラを確認する ことができる。また、二番目と三番目の引き数を NULL にて呼び"
5603 "出すことで、 指定されたシグナルが現在のマシンで使えるかどうかチェックできる。"
5604
5605 #. type: Plain text
5606 #: build/C/man2/sigaction.2:762
5607 msgid ""
5608 "It is not possible to block B<SIGKILL> or B<SIGSTOP> (by specifying them in "
5609 "I<sa_mask>).  Attempts to do so are silently ignored."
5610 msgstr ""
5611 "B<SIGKILL> や B<SIGSTOP> を (I<sa_mask> に指定して) 禁止することはできない。 "
5612 "禁止しようとしても黙って無視される。"
5613
5614 #. type: Plain text
5615 #: build/C/man2/sigaction.2:766 build/C/man2/sigpending.2:70
5616 #: build/C/man2/sigprocmask.2:144 build/C/man2/sigsuspend.2:108
5617 msgid "See B<sigsetops>(3)  for details on manipulating signal sets."
5618 msgstr "シグナル集合の操作に関する詳細は B<sigsetops>(3)  を参照のこと。"
5619
5620 #. type: Plain text
5621 #: build/C/man2/sigaction.2:771
5622 msgid ""
5623 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
5624 "safely called inside from inside a signal handler."
5625 msgstr ""
5626 "シグナルハンドラ内から安全に呼び出すことができる、 async-signal-safe "
5627 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
5628 "照。"
5629
5630 #. type: SS
5631 #: build/C/man2/sigaction.2:771
5632 #, no-wrap
5633 msgid "Undocumented"
5634 msgstr "非公式"
5635
5636 #. type: Plain text
5637 #: build/C/man2/sigaction.2:781
5638 msgid ""
5639 "Before the introduction of B<SA_SIGINFO> it was also possible to get some "
5640 "additional information, namely by using a I<sa_handler> with second argument "
5641 "of type I<struct sigcontext>.  See the relevant Linux kernel sources for "
5642 "details.  This use is obsolete now."
5643 msgstr ""
5644 "B<SA_SIGINFO> が導入される前は、 I<struct sigcontext> 型の二番目の引き数と一"
5645 "緒に I<sa_handler> を使用することで、 いくつかの追加の情報を入手することがで"
5646 "きた。 詳細については Linux カーネルソースの関連部分を見てほしい。 現在はこの"
5647 "使用法は廃止されている。"
5648
5649 #. type: Plain text
5650 #: build/C/man2/sigaction.2:790
5651 msgid ""
5652 "In kernels up to and including 2.6.13, specifying B<SA_NODEFER> in "
5653 "I<sa_flags> prevents not only the delivered signal from being masked during "
5654 "execution of the handler, but also the signals specified in I<sa_mask>.  "
5655 "This bug was fixed in kernel 2.6.14."
5656 msgstr ""
5657 "2.6.13 以前のカーネルでは、 I<sa_flags> に B<SA_NODEFER> を指定した場合、 ハ"
5658 "ンドラが実行中に配送されたシグナル自身がマスクされなくなるだけでなく、 "
5659 "I<sa_mask> に指定されたシグナルもマスクされなくなる。 このバグは、カーネル "
5660 "2.6.14 で修正された。"
5661
5662 #. type: Plain text
5663 #: build/C/man2/sigaction.2:793
5664 msgid "See B<mprotect>(2)."
5665 msgstr "B<mprotect>(2)  参照。"
5666
5667 #. type: Plain text
5668 #: build/C/man2/sigaction.2:813
5669 msgid ""
5670 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<restart_syscall>(2), "
5671 "B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
5672 "B<sigprocmask>(2), B<sigsuspend>(2), B<wait>(2), B<raise>(3), B<siginterrupt>"
5673 "(3), B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), B<core>(5), B<signal>(7)"
5674 msgstr ""
5675 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<restart_syscall>(2), "
5676 "B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
5677 "B<sigprocmask>(2), B<sigsuspend>(2), B<wait>(2), B<raise>(3), B<siginterrupt>"
5678 "(3), B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), B<core>(5), B<signal>(7)"
5679
5680 #. type: TH
5681 #: build/C/man2/sigaltstack.2:27
5682 #, no-wrap
5683 msgid "SIGALTSTACK"
5684 msgstr "SIGALTSTACK"
5685
5686 #. type: TH
5687 #: build/C/man2/sigaltstack.2:27
5688 #, no-wrap
5689 msgid "2010-09-26"
5690 msgstr "2010-09-26"
5691
5692 #. type: Plain text
5693 #: build/C/man2/sigaltstack.2:30
5694 msgid "sigaltstack - set and/or get signal stack context"
5695 msgstr "sigaltstack - シグナルスタックのコンテキストを設定・取得する"
5696
5697 #. type: Plain text
5698 #: build/C/man2/sigaltstack.2:34
5699 msgid "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
5700 msgstr "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
5701
5702 #. type: Plain text
5703 #: build/C/man2/sigaltstack.2:41
5704 msgid "B<sigaltstack>():"
5705 msgstr "B<sigaltstack>():"
5706
5707 #. type: Plain text
5708 #: build/C/man2/sigaltstack.2:48 build/C/man3/siginterrupt.3:53
5709 #: build/C/man2/wait.2:80
5710 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
5711 msgstr "|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
5712
5713 #. type: Plain text
5714 #: build/C/man2/sigaltstack.2:60
5715 msgid ""
5716 "B<sigaltstack>()  allows a process to define a new alternate signal stack "
5717 "and/or retrieve the state of an existing alternate signal stack.  An "
5718 "alternate signal stack is used during the execution of a signal handler if "
5719 "the establishment of that handler (see B<sigaction>(2))  requested it."
5720 msgstr ""
5721 "B<sigaltstack>()  を使うと、 プロセスは新しい代替シグナルスタックを定義した"
5722 "り、 既存の代替シグナルスタックの状態を取得できる。 シグナルハンドラが代替シ"
5723 "グナルスタックを要求するように設定されていると (B<sigaction>(2)  参照)、ハン"
5724 "ドラの実行中はそのシグナルスタックが使われる。"
5725
5726 #. type: Plain text
5727 #: build/C/man2/sigaltstack.2:63
5728 msgid ""
5729 "The normal sequence of events for using an alternate signal stack is the "
5730 "following:"
5731 msgstr "代替シグナルスタックを使う際の一般的な手順は、以下の通りである:"
5732
5733 #. type: IP
5734 #: build/C/man2/sigaltstack.2:63 build/C/man7/signal.7:387
5735 #, no-wrap
5736 msgid "1."
5737 msgstr "1."
5738
5739 #. type: Plain text
5740 #: build/C/man2/sigaltstack.2:67
5741 msgid "Allocate an area of memory to be used for the alternate signal stack."
5742 msgstr "代替シグナルスタックで使うメモリ領域を確保する。"
5743
5744 #. type: IP
5745 #: build/C/man2/sigaltstack.2:67 build/C/man7/signal.7:391
5746 #, no-wrap
5747 msgid "2."
5748 msgstr "2."
5749
5750 #. type: Plain text
5751 #: build/C/man2/sigaltstack.2:73
5752 msgid ""
5753 "Use B<sigaltstack>()  to inform the system of the existence and location of "
5754 "the alternate signal stack."
5755 msgstr ""
5756 "B<sigaltstack>()  を使って、 代替シグナルスタックの存在と場所をシステムに知ら"
5757 "せる。"
5758
5759 #. type: IP
5760 #: build/C/man2/sigaltstack.2:73 build/C/man7/signal.7:411
5761 #, no-wrap
5762 msgid "3."
5763 msgstr "3."
5764
5765 #. type: Plain text
5766 #: build/C/man2/sigaltstack.2:80
5767 msgid ""
5768 "When establishing a signal handler using B<sigaction>(2), inform the system "
5769 "that the signal handler should be executed on the alternate signal stack by "
5770 "specifying the B<SA_ONSTACK> flag."
5771 msgstr ""
5772 "B<sigaction>(2)  を使ってシグナルハンドラを確立する際、 B<SA_ONSTACK> フラグ"
5773 "を指定することにより、 そのシグナルハンドラを代替シグナルスタック上で実行する"
5774 "ことを システムに知らせる。"
5775
5776 #. type: Plain text
5777 #: build/C/man2/sigaltstack.2:88
5778 msgid ""
5779 "The I<ss> argument is used to specify a new alternate signal stack, while "
5780 "the I<oss> argument is used to retrieve information about the currently "
5781 "established signal stack.  If we are interested in performing just one of "
5782 "these tasks then the other argument can be specified as NULL.  Each of these "
5783 "arguments is a structure of the following type:"
5784 msgstr ""
5785 "I<ss> 引き数は、新しいシグナルスタックを指定するために使う。 また I<oss> 引き"
5786 "数は、現在確立されている シグナルスタックの情報を取得するために使う。 この操"
5787 "作のうち 1 つだけを実行させるには、 使用しない引き数を NULL に指定すればよ"
5788 "い。 引き数となる構造体は、以下のような型である:"
5789
5790 #. type: Plain text
5791 #: build/C/man2/sigaltstack.2:96
5792 #, no-wrap
5793 msgid ""
5794 "typedef struct {\n"
5795 "    void  *ss_sp;     /* Base address of stack */\n"
5796 "    int    ss_flags;  /* Flags */\n"
5797 "    size_t ss_size;   /* Number of bytes in stack */\n"
5798 "} stack_t;\n"
5799 msgstr ""
5800 "typedef struct {\n"
5801 "    void  *ss_sp;     /* スタックのベースアドレス */\n"
5802 "    int    ss_flags;  /* フラグ */\n"
5803 "    size_t ss_size;   /* スタックのバイト数 */\n"
5804 "} stack_t;\n"
5805
5806 #. type: Plain text
5807 #: build/C/man2/sigaltstack.2:107
5808 msgid ""
5809 "To establish a new alternate signal stack, I<ss.ss_flags> is set to zero, "
5810 "and I<ss.ss_sp> and I<ss.ss_size> specify the starting address and size of "
5811 "the stack.  The constant B<SIGSTKSZ> is defined to be large enough to cover "
5812 "the usual size requirements for an alternate signal stack, and the constant "
5813 "B<MINSIGSTKSZ> defines the minimum size required to execute a signal handler."
5814 msgstr ""
5815 "新規の代替シグナルスタックを確立するには、 I<ss.ss_flags> を 0 に設定し、 "
5816 "I<ss.ss_sp> と I<ss.ss_size> に スタックの開始アドレスとスタックサイズを指定"
5817 "する。 定数 B<SIGSTKSZ> は、代替シグナルスタックが通常必要する サイズよりも充"
5818 "分大きく定義されている。 また定数 B<MINSIGSTKSZ> は、 シグナルハンドラの実行"
5819 "に必要な最小サイズに定義されている。"
5820
5821 #. type: Plain text
5822 #: build/C/man2/sigaltstack.2:111
5823 msgid ""
5824 "When a signal handler is invoked on the alternate stack, the kernel "
5825 "automatically aligns the address given in I<ss.ss_sp> to a suitable address "
5826 "boundary for the underlying hardware architecture."
5827 msgstr ""
5828 "代替スタックでシグナルハンドラが起動された場合には、 カーネルにより自動的に、"
5829 "I<ss.ss_sp> で指定されたアドレスは 動作しているハードウェアアーキテクチャに適"
5830 "したアドレス境界に 調整される。"
5831
5832 #. type: Plain text
5833 #: build/C/man2/sigaltstack.2:116
5834 msgid ""
5835 "To disable an existing stack, specify I<ss.ss_flags> as B<SS_DISABLE>.  In "
5836 "this case, the remaining fields in I<ss> are ignored."
5837 msgstr ""
5838 "既存のスタックを無効にするには、 I<ss.ss_flags> を B<SS_DISABLE> に指定す"
5839 "る。 この場合、I<ss> の他のフィールドは無視される。"
5840
5841 #. type: Plain text
5842 #: build/C/man2/sigaltstack.2:124
5843 msgid ""
5844 "If I<oss> is not NULL, then it is used to return information about the "
5845 "alternate signal stack which was in effect prior to the call to "
5846 "B<sigaltstack>().  The I<oss.ss_sp> and I<oss.ss_size> fields return the "
5847 "starting address and size of that stack.  The I<oss.ss_flags> may return "
5848 "either of the following values:"
5849 msgstr ""
5850 "I<oss> が NULL 以外の場合、 I<oss> に代替シグナルスタックの情報が返される。 "
5851 "これは (実質的に)  B<sigaltstack>()  の呼び出しより先に行われる。 I<oss."
5852 "ss_sp> と I<oss.ss_size> フィールドに スタックの開始アドレスとスタックサイズ"
5853 "が返される。 I<oss.ss_flags> には以下のどちらかの値が返される:"
5854
5855 #. type: TP
5856 #: build/C/man2/sigaltstack.2:124
5857 #, no-wrap
5858 msgid "B<SS_ONSTACK>"
5859 msgstr "B<SS_ONSTACK>"
5860
5861 #. type: Plain text
5862 #: build/C/man2/sigaltstack.2:130
5863 msgid ""
5864 "The process is currently executing on the alternate signal stack.  (Note "
5865 "that it is not possible to change the alternate signal stack if the process "
5866 "is currently executing on it.)"
5867 msgstr ""
5868 "プロセスが代替シグナルスタック上で実行されている (プロセスが既にそのシグナル"
5869 "スタック上で実行されている場合は、 それと同じシグナルスタックには変更できない"
5870 "点に注意すること)。"
5871
5872 #. type: TP
5873 #: build/C/man2/sigaltstack.2:130
5874 #, no-wrap
5875 msgid "B<SS_DISABLE>"
5876 msgstr "B<SS_DISABLE>"
5877
5878 #. type: Plain text
5879 #: build/C/man2/sigaltstack.2:133
5880 msgid "The alternate signal stack is currently disabled."
5881 msgstr "代替シグナルスタックが現在無効になっている。"
5882
5883 #. type: Plain text
5884 #: build/C/man2/sigaltstack.2:137
5885 msgid ""
5886 "B<sigaltstack>()  returns 0 on success, or -1 on failure with I<errno> set "
5887 "to indicate the error."
5888 msgstr ""
5889 "B<sigaltstack>()  は成功した場合 0 を返す。 失敗した場合は -1 を返して、 エ"
5890 "ラーを示す値に I<errno> を設定する。"
5891
5892 #. type: Plain text
5893 #: build/C/man2/sigaltstack.2:142
5894 msgid ""
5895 "Either I<ss> or I<oss> is not NULL and points to an area outside of the "
5896 "process's address space."
5897 msgstr ""
5898 "I<ss> または I<oss> のどちらが、NULL 以外で、 かつプロセスのアドレス空間の外"
5899 "を指している。"
5900
5901 #. type: Plain text
5902 #: build/C/man2/sigaltstack.2:147
5903 msgid ""
5904 "I<ss> is not NULL and the I<ss_flags> field contains a nonzero value other "
5905 "than B<SS_DISABLE>."
5906 msgstr ""
5907 "I<ss> が NULL 以外で、I<ss_flags> フィールドが B<SS_DISABLE> 以外の 0 でない"
5908 "値になっている。"
5909
5910 #. type: Plain text
5911 #: build/C/man2/sigaltstack.2:151
5912 msgid ""
5913 "The specified size of the new alternate signal stack (I<ss.ss_size>) was "
5914 "less than B<MINSTKSZ>."
5915 msgstr ""
5916 "新しい代替シグナルスタック (I<ss.ss_size>) に指定したサイズが B<MINSTKSZ> よ"
5917 "り小さい。"
5918
5919 #. type: Plain text
5920 #: build/C/man2/sigaltstack.2:156
5921 msgid ""
5922 "An attempt was made to change the alternate signal stack while it was active "
5923 "(i.e., the process was already executing on the current alternate signal "
5924 "stack)."
5925 msgstr ""
5926 "代替シグナルスタックが有効であるときに変更を行おうとした (つまり、プロセスが"
5927 "既に現在の代替シグナルスタック上で実行されていた)。"
5928
5929 #. type: Plain text
5930 #: build/C/man2/sigaltstack.2:158
5931 msgid "SUSv2, SVr4, POSIX.1-2001."
5932 msgstr "SUSv2, SVr4, POSIX.1-2001."
5933
5934 #. type: Plain text
5935 #: build/C/man2/sigaltstack.2:166
5936 msgid ""
5937 "The most common usage of an alternate signal stack is to handle the "
5938 "B<SIGSEGV> signal that is generated if the space available for the normal "
5939 "process stack is exhausted: in this case, a signal handler for B<SIGSEGV> "
5940 "cannot be invoked on the process stack; if we wish to handle it, we must use "
5941 "an alternate signal stack."
5942 msgstr ""
5943 "代替シグナルスタックを使用する最もよくある場面は、 B<SIGSEGV> シグナルを扱う"
5944 "ときである。 B<SIGSEGV> はプロセスの通常のスタックが利用できる空間が使い果た"
5945 "された際に 生成されるシグナルである。この場合には、 B<SIGSEGV> 用のシグナルハ"
5946 "ンドラをプロセスのスタック上では起動することができない。 そのため、このシグナ"
5947 "ルを扱おうとする場合には、 代替シグナルスタックを使用しなければならない。"
5948
5949 #. type: Plain text
5950 #: build/C/man2/sigaltstack.2:176
5951 msgid ""
5952 "Establishing an alternate signal stack is useful if a process expects that "
5953 "it may exhaust its standard stack.  This may occur, for example, because the "
5954 "stack grows so large that it encounters the upwardly growing heap, or it "
5955 "reaches a limit established by a call to B<setrlimit(RLIMIT_STACK, &rlim)>.  "
5956 "If the standard stack is exhausted, the kernel sends the process a "
5957 "B<SIGSEGV> signal.  In these circumstances the only way to catch this signal "
5958 "is on an alternate signal stack."
5959 msgstr ""
5960 "プロセスが標準のシグナルスタックを使い果たすことが予想される場合は、 代替シグ"
5961 "ナルスタックを確立すると便利である。 例えば、スタックが最上位アドレスから 下"
5962 "位アドレス方向に非常にたくさん積まれてしまうことで、 最下位アドレスから上位ア"
5963 "ドレス方向に積まれるヒープとぶつかってしまう場合や、 B<setrlimit"
5964 "(RLIMIT_STACK, &rlim)> の呼び出しで確立された 制限に達してしまった場合に、こ"
5965 "の様な事が起こる。 標準のスタックを使い果たしてしまうと、 カーネルはプロセス"
5966 "に B<SIGSEGV> シグナルを送る。 このような状況では、代替シグナルスタック上でし"
5967 "かシグナルをキャッチできない。"
5968
5969 #. type: Plain text
5970 #: build/C/man2/sigaltstack.2:182
5971 msgid ""
5972 "On most hardware architectures supported by Linux, stacks grow downward.  "
5973 "B<sigaltstack>()  automatically takes account of the direction of stack "
5974 "growth."
5975 msgstr ""
5976 "Linux がサポートする多くのハードウェアアーキテクチャでは、 スタックは下位アド"
5977 "レス方向に積まれる。 B<sigaltstack>()  はスタックが積まれる方向を自動的に決定"
5978 "する。"
5979
5980 #. type: Plain text
5981 #: build/C/man2/sigaltstack.2:191
5982 msgid ""
5983 "Functions called from a signal handler executing on an alternate signal "
5984 "stack will also use the alternate signal stack.  (This also applies to any "
5985 "handlers invoked for other signals while the process is executing on the "
5986 "alternate signal stack.)  Unlike the standard stack, the system does not "
5987 "automatically extend the alternate signal stack.  Exceeding the allocated "
5988 "size of the alternate signal stack will lead to unpredictable results."
5989 msgstr ""
5990 "代替シグナルスタック上で実行されている シグナルハンドラから呼ばれる関数も、代"
5991 "替シグナルハンドラを使う (プロセスが代替シグナルスタック上で実行されている場"
5992 "合、 他のシグナルで呼び出されるハンドラもこの代替シグナルハンドラを使う)。 標"
5993 "準のスタックとは異なり、 システムは代替シグナルスタックを自動的に拡張しな"
5994 "い。 代替シグナルスタック用に確保したサイズを越えた場合、 結果は予想できな"
5995 "い。"
5996
5997 #. type: Plain text
5998 #: build/C/man2/sigaltstack.2:199
5999 msgid ""
6000 "A successful call to B<execve>(2)  removes any existing alternate signal "
6001 "stack.  A child process created via B<fork>(2)  inherits a copy of its "
6002 "parent's alternate signal stack settings."
6003 msgstr ""
6004 "B<execve>(2)  の呼び出しが成功すると、 既存の全ての代替シグナルスタックが削除"
6005 "される。 B<fork>(2)  経由で作成された子プロセスは、親プロセスの代替シグナルス"
6006 "タックの 設定のコピーを継承する。"
6007
6008 #. type: Plain text
6009 #: build/C/man2/sigaltstack.2:208
6010 msgid ""
6011 "B<sigaltstack>()  supersedes the older B<sigstack>()  call.  For backward "
6012 "compatibility, glibc also provides B<sigstack>().  All new applications "
6013 "should be written using B<sigaltstack>()."
6014 msgstr ""
6015 "B<sigaltstack>()  は以前の B<sigstack>()  を置き換えるものである。 過去プログ"
6016 "ラムとの互換性のため、glibc では B<sigstack>()  も提供している。 新しいのアプ"
6017 "リケーションは全て B<sigaltstack>()  を使って書くべきである。"
6018
6019 #. type: SS
6020 #: build/C/man2/sigaltstack.2:208 build/C/man3/sigpause.3:61
6021 #, no-wrap
6022 msgid "History"
6023 msgstr "歴史"
6024
6025 #. type: Plain text
6026 #: build/C/man2/sigaltstack.2:215
6027 msgid ""
6028 "4.2BSD had a B<sigstack>()  system call.  It used a slightly different "
6029 "struct, and had the major disadvantage that the caller had to know the "
6030 "direction of stack growth."
6031 msgstr ""
6032 "4.2BSD には B<sigstack>()  システムコールがあった。 この関数は少し異なった構"
6033 "造体を使っており、 呼び出した側がスタックの積まれる方向を知っていなければなら"
6034 "ないという 大きな欠点があった。"
6035
6036 #. type: Plain text
6037 #: build/C/man2/sigaltstack.2:218
6038 msgid "The following code segment demonstrates the use of B<sigaltstack>():"
6039 msgstr "以下のコードで B<sigaltstack>()  の使用法の一部を示す:"
6040
6041 #. type: Plain text
6042 #: build/C/man2/sigaltstack.2:222
6043 #, no-wrap
6044 msgid "stack_t ss;\n"
6045 msgstr "stack_t ss;\n"
6046
6047 #. type: Plain text
6048 #: build/C/man2/sigaltstack.2:230
6049 #, no-wrap
6050 msgid ""
6051 "ss.ss_sp = malloc(SIGSTKSZ);\n"
6052 "if (ss.ss_sp == NULL)\n"
6053 "    /* Handle error */;\n"
6054 "ss.ss_size = SIGSTKSZ;\n"
6055 "ss.ss_flags = 0;\n"
6056 "if (sigaltstack(&ss, NULL) == -1)\n"
6057 "    /* Handle error */;\n"
6058 msgstr ""
6059 "ss.ss_sp = malloc(SIGSTKSZ);\n"
6060 "if (ss.ss_sp == NULL)\n"
6061 "    /* ハンドルエラー */;\n"
6062 "ss.ss_size = SIGSTKSZ;\n"
6063 "ss.ss_flags = 0;\n"
6064 "if (sigaltstack(&ss, NULL) == -1)\n"
6065 "    /* ハンドルエラー */;\n"
6066
6067 #. type: Plain text
6068 #: build/C/man2/sigaltstack.2:239
6069 msgid ""
6070 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
6071 "B<sigsetjmp>(3), B<signal>(7)"
6072 msgstr ""
6073 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
6074 "B<sigsetjmp>(3), B<signal>(7)"
6075
6076 #. type: TH
6077 #: build/C/man7/sigevent.7:26
6078 #, no-wrap
6079 msgid "SIGEVENT"
6080 msgstr "SIGEVENT"
6081
6082 #. type: TH
6083 #: build/C/man7/sigevent.7:26
6084 #, no-wrap
6085 msgid "2011-09-09"
6086 msgstr "2011-09-09"
6087
6088 #. type: Plain text
6089 #: build/C/man7/sigevent.7:29
6090 msgid "sigevent - structure for notification from asynchronous routines"
6091 msgstr "sigevent - 非同期ルーチンからの通知用の構造体"
6092
6093 #. type: Plain text
6094 #: build/C/man7/sigevent.7:36
6095 #, no-wrap
6096 msgid ""
6097 "union sigval {          /* Data passed with notification */\n"
6098 "    int     sival_int;         /* Integer value */\n"
6099 "    void   *sival_ptr;         /* Pointer value */\n"
6100 "};\n"
6101 msgstr ""
6102 "union sigval {          /* Data passed with notification */\n"
6103 "    int     sival_int;         /* Integer value */\n"
6104 "    void   *sival_ptr;         /* Pointer value */\n"
6105 "};\n"
6106
6107 #. type: Plain text
6108 #: build/C/man7/sigevent.7:51
6109 #, no-wrap
6110 msgid ""
6111 "struct sigevent {\n"
6112 "    int          sigev_notify; /* Notification method */\n"
6113 "    int          sigev_signo;  /* Notification signal */\n"
6114 "    union sigval sigev_value;  /* Data passed with\n"
6115 "                                  notification */\n"
6116 "    void       (*sigev_notify_function) (union sigval);\n"
6117 "                     /* Function used for thread\n"
6118 "                        notification (SIGEV_THREAD) */\n"
6119 "    void        *sigev_notify_attributes;\n"
6120 "                     /* Attributes for notification thread\n"
6121 "                        (SIGEV_THREAD) */\n"
6122 "    pid_t        sigev_notify_thread_id;\n"
6123 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
6124 "};\n"
6125 msgstr ""
6126 "struct sigevent {\n"
6127 "    int          sigev_notify; /* Notification method */\n"
6128 "    int          sigev_signo;  /* Notification signal */\n"
6129 "    union sigval sigev_value;  /* Data passed with\n"
6130 "                                  notification */\n"
6131 "    void       (*sigev_notify_function) (union sigval);\n"
6132 "                     /* Function used for thread\n"
6133 "                        notification (SIGEV_THREAD) */\n"
6134 "    void        *sigev_notify_attributes;\n"
6135 "                     /* Attributes for notification thread\n"
6136 "                        (SIGEV_THREAD) */\n"
6137 "    pid_t        sigev_notify_thread_id;\n"
6138 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
6139 "};\n"
6140
6141 #. type: Plain text
6142 #: build/C/man7/sigevent.7:60
6143 msgid ""
6144 "The I<sigevent> structure is used by various APIs to describe the way a "
6145 "process is to be notified about an event (e.g., completion of an "
6146 "asynchronous request, expiration of a timer, or the arrival of a message)."
6147 msgstr ""
6148 "I<sigevent> 構造体は、イベントに関する情報をプロセスに通知するために様々な "
6149 "API で使用される (イベントの例としては、 非同期処理要求の完了、 タイマーの満"
6150 "了、 メッセージの到着など)。"
6151
6152 #. type: Plain text
6153 #: build/C/man7/sigevent.7:68
6154 msgid ""
6155 "The definition shown in the SYNOPSIS is approximate: some of the fields in "
6156 "the I<sigevent> structure may be defined as part of a union.  Programs "
6157 "should employ only those fields relevant to the value specified in "
6158 "I<sigev_notify>."
6159 msgstr ""
6160 "「書式」に記載されている定義はおおよそのものである。 I<sigevent> 構造体のいく"
6161 "つかのフィールドは、 共用体の一部として定義されているものもある。 プログラム"
6162 "は、 I<sigev_notify> で指定された値に応じたフィールドだけを利用すべきである。"
6163
6164 #. type: Plain text
6165 #: build/C/man7/sigevent.7:73
6166 msgid ""
6167 "The I<sigev_notify> field specifies how notification is to be performed.  "
6168 "This field can have one of the following values:"
6169 msgstr ""
6170 "I<sigev_notify> フィールドは、通知をどのように処理すべきかを指定する。 この"
6171 "フィールドは、以下のいずれかの値である。"
6172
6173 #. type: TP
6174 #: build/C/man7/sigevent.7:73 build/C/man2/timer_create.2:107
6175 #, no-wrap
6176 msgid "B<SIGEV_NONE>"
6177 msgstr "B<SIGEV_NONE>"
6178
6179 #. type: Plain text
6180 #: build/C/man7/sigevent.7:76
6181 msgid "A \"null\" notification: don't do anything when the event occurs."
6182 msgstr "「空 (null)」の通知。 イベントが発生時には何もしないこと。"
6183
6184 #. type: TP
6185 #: build/C/man7/sigevent.7:76 build/C/man2/timer_create.2:112
6186 #, no-wrap
6187 msgid "B<SIGEV_SIGNAL>"
6188 msgstr "B<SIGEV_SIGNAL>"
6189
6190 #. type: Plain text
6191 #: build/C/man7/sigevent.7:80
6192 msgid "Notify the process by sending the signal specified in I<sigev_signo>."
6193 msgstr ""
6194 "I<sigev_signo> で指定されたシグナルを送信することで、プロセスへの通知を行う。"
6195
6196 #. type: Plain text
6197 #: build/C/man7/sigevent.7:87
6198 msgid ""
6199 "If the signal is caught with a signal handler that was registered using the "
6200 "B<sigaction>(2)  B<SA_SIGINFO> flag, then the following fields are set in "
6201 "the I<siginfo_t> structure that is passed as the second argument of the "
6202 "handler:"
6203 msgstr ""
6204 "B<sigaction>(2) の B<SA_SIGINFO> フラグを使った登録されたシグナルハンドラによ"
6205 "りシグナルが捕捉されると、 シグナルハンドラの 2 番目の引き数として渡された "
6206 "I<siginfo_t> 構造体の以下のフィールドが設定される。"
6207
6208 #. type: Plain text
6209 #: build/C/man7/sigevent.7:92
6210 msgid ""
6211 "This field is set to a value that depends on the API delivering the "
6212 "notification."
6213 msgstr "このフィールドには通知を配送した API に応じた決まる値が設定される。"
6214
6215 #. type: TP
6216 #: build/C/man7/sigevent.7:92 build/C/man2/wait.2:302
6217 #, no-wrap
6218 msgid "I<si_signo>"
6219 msgstr "I<si_signo>"
6220
6221 #. type: Plain text
6222 #: build/C/man7/sigevent.7:96
6223 msgid ""
6224 "This field is set to the signal number (i.e., the same value as in "
6225 "I<sigev_signo>)."
6226 msgstr ""
6227 "このフィールドにはシグナル番号 (すなわち I<sigev_signo> と同じ値) が設定され"
6228 "る。"
6229
6230 #. type: Plain text
6231 #: build/C/man7/sigevent.7:100
6232 msgid "This field is set to the value specified in I<sigev_value>."
6233 msgstr "このフィールドには I<sigev_value> で指定された値が設定される。"
6234
6235 #. type: Plain text
6236 #: build/C/man7/sigevent.7:105
6237 msgid ""
6238 "Depending on the API, other fields may also be set in the I<siginfo_t> "
6239 "structure."
6240 msgstr ""
6241 "API によっては I<siginfo_t> 構造体の他のフィールドが設定される場合もある。"
6242
6243 #. type: Plain text
6244 #: build/C/man7/sigevent.7:108
6245 msgid ""
6246 "The same information is also available if the signal is accepted using "
6247 "B<sigwaitinfo>(2)."
6248 msgstr ""
6249 "シグナルを受け取ったときには B<sigwaitinfo>(2) でも同じ情報が得られる。"
6250
6251 #. type: TP
6252 #: build/C/man7/sigevent.7:108 build/C/man2/timer_create.2:130
6253 #, no-wrap
6254 msgid "B<SIGEV_THREAD>"
6255 msgstr "B<SIGEV_THREAD>"
6256
6257 #. type: Plain text
6258 #: build/C/man7/sigevent.7:125
6259 msgid ""
6260 "Notify the process by invoking I<sigev_notify_function> \"as if\" it were "
6261 "the start function of a new thread.  (Among the implementation possibilities "
6262 "here are that each timer notification could result in the creation of a new "
6263 "thread, or that a single thread is created to receive all notifications.)  "
6264 "The function is invoked with I<sigev_value> as its sole argument.  If "
6265 "I<sigev_notify_attributes> is not NULL, it should point to a "
6266 "I<pthread_attr_t> structure that defines attributes for the new thread (see "
6267 "B<pthread_attr_init>(3))."
6268 msgstr ""
6269 "「あたかも」新しいスレッドセーフの開始関数であるかのように "
6270 "I<sigev_notify_function> を起動することで、 プロセスへの通知を行う (実装の可"
6271 "能性としては、 タイマー通知の度に新しいスレッドセーフが作成される場合も、 一"
6272 "つのスレッドを作成してすべての通知を受信する場合もある)。 この関数は "
6273 "I<sigev_value> を唯一の引き数として起動される。 I<sigev_notify_attributes> "
6274 "は、 NULL 以外の場合は、 新しいスレッドセーフの属性を定義する "
6275 "I<pthread_attr_t> 構造体を指していなければならない (B<pthread_attr_init>(3) "
6276 "参照)。"
6277
6278 #. type: TP
6279 #: build/C/man7/sigevent.7:125 build/C/man2/timer_create.2:138
6280 #, no-wrap
6281 msgid "B<SIGEV_THREAD_ID> (Linux-specific)"
6282 msgstr "B<SIGEV_THREAD_ID> (Linux 固有)"
6283
6284 #.  | SIGEV_SIGNAL vs not?
6285 #. type: Plain text
6286 #: build/C/man7/sigevent.7:130
6287 msgid "Currently used only by POSIX timers; see B<timer_create>(2)."
6288 msgstr "現在のところ POSIX でのみ使用されている。 B<timer_create>(2) 参照。"
6289
6290 #. type: Plain text
6291 #: build/C/man7/sigevent.7:132 build/C/man2/sigpending.2:66
6292 #: build/C/man2/sigprocmask.2:114 build/C/man3/sigqueue.3:116
6293 #: build/C/man3/sigsetops.3:133 build/C/man2/sigsuspend.2:86
6294 #: build/C/man3/sigwait.3:82 build/C/man2/sigwaitinfo.2:135
6295 #: build/C/man2/timer_create.2:195 build/C/man2/timer_delete.2:69
6296 #: build/C/man2/timer_getoverrun.2:99 build/C/man2/timer_settime.2:209
6297 msgid "POSIX.1-2001."
6298 msgstr "POSIX.1-2001."
6299
6300 #. type: Plain text
6301 #: build/C/man7/sigevent.7:142
6302 msgid ""
6303 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
6304 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
6305 "B<pthreads>(7)"
6306 msgstr ""
6307 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
6308 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
6309 "B<pthreads>(7)"
6310
6311 #. type: TH
6312 #: build/C/man3/siginterrupt.3:31
6313 #, no-wrap
6314 msgid "SIGINTERRUPT"
6315 msgstr "SIGINTERRUPT"
6316
6317 #. type: TH
6318 #: build/C/man3/siginterrupt.3:31 build/C/man2/signal.2:36
6319 #: build/C/man2/sigpending.2:29 build/C/man2/sigprocmask.2:29
6320 #: build/C/man3/sigsetops.3:31 build/C/man2/sigsuspend.2:29
6321 #, no-wrap
6322 msgid "2013-04-19"
6323 msgstr "2013-04-19"
6324
6325 #. type: Plain text
6326 #: build/C/man3/siginterrupt.3:34
6327 msgid "siginterrupt - allow signals to interrupt system calls"
6328 msgstr "siginterrupt - シグナルでシステム・コールに割り込むことを許す"
6329
6330 #. type: Plain text
6331 #: build/C/man3/siginterrupt.3:39
6332 #, no-wrap
6333 msgid "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
6334 msgstr "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
6335
6336 #. type: Plain text
6337 #: build/C/man3/siginterrupt.3:47
6338 msgid "B<siginterrupt>():"
6339 msgstr "B<siginterrupt>():"
6340
6341 #. type: Plain text
6342 #: build/C/man3/siginterrupt.3:64
6343 msgid ""
6344 "The B<siginterrupt>()  function changes the restart behavior when a system "
6345 "call is interrupted by the signal I<sig>.  If the I<flag> argument is false "
6346 "(0), then system calls will be restarted if interrupted by the specified "
6347 "signal I<sig>.  This is the default behavior in Linux."
6348 msgstr ""
6349 "B<siginterrupt>()  関数は、システム・コールがシグナル I<sig> によって割り込ま"
6350 "れた後、再実行の際の振る舞いを変更する。 I<flag> 引き数が偽 (0) ならば、シス"
6351 "テム・コールが指定した シグナル I<sig> によって割り込まれた後に、そのシステ"
6352 "ム・コールは 再実行される。これは Linux においてデフォルトの動作である。"
6353
6354 #. type: Plain text
6355 #: build/C/man3/siginterrupt.3:69
6356 msgid ""
6357 "If the I<flag> argument is true (1) and no data has been transferred, then a "
6358 "system call interrupted by the signal I<sig> will return -1 and I<errno> "
6359 "will be set to B<EINTR>."
6360 msgstr ""
6361 "I<flag> 引き数が真 (1) でデータの転送が全く行なわれていないならば、 シグナル "
6362 "I<sig> でシステム・コールは中断されて、-1 が返され、 I<errno> に B<EINTR> が"
6363 "設定される。"
6364
6365 #. type: Plain text
6366 #: build/C/man3/siginterrupt.3:73
6367 msgid ""
6368 "If the I<flag> argument is true (1) and data transfer has started, then the "
6369 "system call will be interrupted and will return the actual amount of data "
6370 "transferred."
6371 msgstr ""
6372 "I<flag> 引き数が真 (1) でデータの転送が開始されていれば、 システム・コールは"
6373 "中断され、それまでに実際に転送されたデータ の量が返される。"
6374
6375 #. type: Plain text
6376 #: build/C/man3/siginterrupt.3:83
6377 msgid ""
6378 "The B<siginterrupt>()  function returns 0 on success.  It returns -1 if the "
6379 "signal number I<sig> is invalid, with I<errno> set to indicate the cause of "
6380 "the error."
6381 msgstr ""
6382 "B<siginterrupt>()  関数は成功した場合 0 を返す。 シグナル番号 I<sig> が不正な"
6383 "場合、 -1 を返し、 I<errno> にエラーの原因を示す値を設定する。"
6384
6385 #. type: Plain text
6386 #: build/C/man3/siginterrupt.3:87
6387 msgid "The specified signal number is invalid."
6388 msgstr "指定したシグナル番号が不正である。"
6389
6390 #. type: Plain text
6391 #: build/C/man3/siginterrupt.3:96
6392 msgid ""
6393 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 marks B<siginterrupt>()  as obsolete, "
6394 "recommending the use of B<sigaction>(2)  with the B<SA_RESTART> flag instead."
6395 msgstr ""
6396 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 は、 B<siginterrupt>()  を廃止予定として"
6397 "いる。 代わりに、 B<sigaction>(2)  に B<SA_RESTART> フラグを指定して使うこと"
6398 "を推奨している。"
6399
6400 #. type: Plain text
6401 #: build/C/man3/siginterrupt.3:98
6402 msgid "B<signal>(2)"
6403 msgstr "B<signal>(2)"
6404
6405 #. type: TH
6406 #: build/C/man2/signal.2:36 build/C/man7/signal.7:46
6407 #, no-wrap
6408 msgid "SIGNAL"
6409 msgstr "SIGNAL"
6410
6411 #. type: Plain text
6412 #: build/C/man2/signal.2:39
6413 msgid "signal - ANSI C signal handling"
6414 msgstr "signal - ANSI C シグナル操作"
6415
6416 #. type: Plain text
6417 #: build/C/man2/signal.2:45
6418 msgid "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
6419 msgstr ""
6420 "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<sighandler>B<);>"
6421
6422 #. type: Plain text
6423 #: build/C/man2/signal.2:54
6424 msgid ""
6425 "The behavior of B<signal>()  varies across UNIX versions, and has also "
6426 "varied historically across different versions of Linux.  B<Avoid its use>: "
6427 "use B<sigaction>(2)  instead.  See I<Portability> below."
6428 msgstr ""
6429 "B<signal>()  の動作は UNIX のバージョンにより異なる。 また、歴史的に見て "
6430 "Linux のバージョンによっても異なっている。 B<このシステムコールの使用は避け、"
6431 "> 代わりに B<sigaction>(2)  を使用すること。 下記の「移植性」を参照。"
6432
6433 #. type: Plain text
6434 #: build/C/man2/signal.2:64
6435 msgid ""
6436 "B<signal>()  sets the disposition of the signal I<signum> to I<handler>, "
6437 "which is either B<SIG_IGN>, B<SIG_DFL>, or the address of a programmer-"
6438 "defined function (a \"signal handler\")."
6439 msgstr ""
6440 "B<signal>()  はシグナル I<signum> の処理方法を I<handler> に設定する。 "
6441 "I<handler> には、 B<SIG_IGN>、 B<SIG_DFL>、 プログラマが定義した関数 (「シグ"
6442 "ナル・ハンドラ」) のアドレスの いずれかを指定する。"
6443
6444 #. type: Plain text
6445 #: build/C/man2/signal.2:68
6446 msgid ""
6447 "If the signal I<signum> is delivered to the process, then one of the "
6448 "following happens:"
6449 msgstr ""
6450 "シグナル I<signum> がプロセスに配送されると、以下のいずれかが発生する。"
6451
6452 #. type: Plain text
6453 #: build/C/man2/signal.2:73
6454 msgid "If the disposition is set to B<SIG_IGN>, then the signal is ignored."
6455 msgstr "処理方法が B<SIG_IGN> に設定されている場合、そのシグナルは無視される。"
6456
6457 #. type: Plain text
6458 #: build/C/man2/signal.2:80
6459 msgid ""
6460 "If the disposition is set to B<SIG_DFL>, then the default action associated "
6461 "with the signal (see B<signal>(7))  occurs."
6462 msgstr ""
6463 "処理方法が B<SIG_DFL> に設定されている場合、シグナルに関連づけられた デフォル"
6464 "トの動作が行われる (B<signal>(7)  参照)。"
6465
6466 #. type: Plain text
6467 #: build/C/man2/signal.2:91
6468 msgid ""
6469 "If the disposition is set to a function, then first either the disposition "
6470 "is reset to B<SIG_DFL>, or the signal is blocked (see I<Portability> below), "
6471 "and then I<handler> is called with argument I<signum>.  If invocation of the "
6472 "handler caused the signal to be blocked, then the signal is unblocked upon "
6473 "return from the handler."
6474 msgstr ""
6475 "処理方法として関数が設定されている場合、 まず最初に処理方法が B<SIG_DFL> にリ"
6476 "セットされるかそのシグナルのブロックが実行された後、 I<signum> を引き数とし"
6477 "て I<handler> が呼び出される。 ハンドラが起動される際にシグナルがブロックされ"
6478 "た場合、 ハンドラが返る際にそのシグナルのブロックが解除される。"
6479
6480 #. type: Plain text
6481 #: build/C/man2/signal.2:97
6482 msgid "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught or ignored."
6483 msgstr ""
6484 "シグナル B<SIGKILL> と B<SIGSTOP> は捕捉できず、無視することもできない。"
6485
6486 #. type: Plain text
6487 #: build/C/man2/signal.2:105
6488 msgid ""
6489 "B<signal>()  returns the previous value of the signal handler, or B<SIG_ERR> "
6490 "on error.  In the event of an error, I<errno> is set to indicate the cause."
6491 msgstr ""
6492 "B<signal>()  は、今までのシグナル・ハンドラの値を返す。 エラーの場合は "
6493 "B<SIG_ERR> を返し、 I<errno> にエラーの原因を示す値を設定する。"
6494
6495 #. type: Plain text
6496 #: build/C/man2/signal.2:110
6497 msgid "I<signum> is invalid."
6498 msgstr "I<signum> が不正である。"
6499
6500 #. type: Plain text
6501 #: build/C/man2/signal.2:116
6502 msgid "The effects of B<signal>()  in a multithreaded process are unspecified."
6503 msgstr ""
6504 "マルチスレッドプロセスにおける B<signal>()  の結果は、指定されていない。"
6505
6506 #. type: Plain text
6507 #: build/C/man2/signal.2:141
6508 msgid ""
6509 "See B<sigaction>(2)  for details on what happens when B<SIGCHLD> is set to "
6510 "B<SIG_IGN>."
6511 msgstr ""
6512 "B<SIGCHLD> の動作として B<SIG_IGN> を設定した場合の詳細な動作については、 "
6513 "B<sigaction>(2)  を参照すること。"
6514
6515 #. type: Plain text
6516 #: build/C/man2/signal.2:146
6517 msgid ""
6518 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
6519 "safely called from inside a signal handler."
6520 msgstr ""
6521 "シグナル・ハンドラ内から安全に呼び出すことができる、 async-signal-safe "
6522 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
6523 "照。"
6524
6525 #.  libc4 and libc5 define
6526 #.  .IR SignalHandler ;
6527 #. type: Plain text
6528 #: build/C/man2/signal.2:162
6529 msgid ""
6530 "The use of I<sighandler_t> is a GNU extension, exposed if B<_GNU_SOURCE> is "
6531 "defined; glibc also defines (the BSD-derived)  I<sig_t> if B<_BSD_SOURCE> is "
6532 "defined.  Without use of such a type, the declaration of B<signal>()  is the "
6533 "somewhat harder to read:"
6534 msgstr ""
6535 "I<sighandler_t> の使用は GNU 拡張であり、 B<_GNU_SOURCE> が定義された\n"
6536 "場合に公開される。glibc では B<_BSD_SOURCE> が定義された場合には (BSD\n"
6537 "由来の) I<sig_t> も定義される。このような型を使用しないと、\n"
6538 "B<signal>() の宣言は読みにくいものとなる。"
6539
6540 #. type: Plain text
6541 #: build/C/man2/signal.2:166
6542 #, no-wrap
6543 msgid "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
6544 msgstr "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
6545
6546 #. type: SS
6547 #: build/C/man2/signal.2:168
6548 #, no-wrap
6549 msgid "Portability"
6550 msgstr "移植性"
6551
6552 #. type: Plain text
6553 #: build/C/man2/signal.2:180
6554 msgid ""
6555 "The only portable use of B<signal>()  is to set a signal's disposition to "
6556 "B<SIG_DFL> or B<SIG_IGN>.  The semantics when using B<signal>()  to "
6557 "establish a signal handler vary across systems (and POSIX.1 explicitly "
6558 "permits this variation); B<do not use it for this purpose.>"
6559 msgstr ""
6560 "移植性のある B<signal>()  の使い方は、シグナルの処理方法を B<SIG_DFL> か "
6561 "B<SIG_IGN> に設定する方法だけである。 シグナル・ハンドラを設定するのに "
6562 "B<signal>()  を使ったときの動作はシステムにより異なる (POSIX.1 は明示的にこの"
6563 "違いを認めている)。 B<移植性が必要なときはこのシステムコールを使用しないこ"
6564 "と。>"
6565
6566 #. type: Plain text
6567 #: build/C/man2/signal.2:186
6568 msgid ""
6569 "POSIX.1 solved the portability mess by specifying B<sigaction>(2), which "
6570 "provides explicit control of the semantics when a signal handler is invoked; "
6571 "use that interface instead of B<signal>()."
6572 msgstr ""
6573 "POSIX.1 は、 B<sigaction>(2)  を規定することで移植性に関する混乱を解決した。 "
6574 "B<sigaction>(2)  はシグナル・ハンドラが起動される際の挙動を明示的に制御でき"
6575 "る。 B<signal>()  の代わりにこのインターフェイスを使うこと。"
6576
6577 #. type: Plain text
6578 #: build/C/man2/signal.2:196
6579 msgid ""
6580 "In the original UNIX systems, when a handler that was established using "
6581 "B<signal>()  was invoked by the delivery of a signal, the disposition of the "
6582 "signal would be reset to B<SIG_DFL>, and the system did not block delivery "
6583 "of further instances of the signal.  This is equivalent to calling "
6584 "B<sigaction>(2)  with the following flags:"
6585 msgstr ""
6586 "オリジナルの UNIX システムでは、 B<signal>()  を使って設定されたハンドラがシ"
6587 "グナルの配送により起動されると、 そのシグナルの処理方法は B<SIG_DFL> にリセッ"
6588 "トされ、システムは同じシグナルがさらに生成されても シグナルの配送をブロックし"
6589 "なかった。これは、以下のフラグで B<sigaction>(2) を呼び出すのと等価である。"
6590
6591 #. type: Plain text
6592 #: build/C/man2/signal.2:198
6593 #, no-wrap
6594 msgid "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
6595 msgstr "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
6596
6597 #. type: Plain text
6598 #: build/C/man2/signal.2:205
6599 msgid ""
6600 "System V also provides these semantics for B<signal>().  This was bad "
6601 "because the signal might be delivered again before the handler had a chance "
6602 "to reestablish itself.  Furthermore, rapid deliveries of the same signal "
6603 "could result in recursive invocations of the handler."
6604 msgstr ""
6605 "System V でも、 B<signal>()  に対してこれらの挙動を規定している。 こうした挙"
6606 "動はまずく、ハンドラがハンドラ自身を再設定する機会が 来るより前に、同じシグナ"
6607 "ルがまた配送される可能性がある。 さらに、同じシグナルが立て続けに配送される"
6608 "と、同じシグナルが ハンドラを繰り返し起動されることになる。"
6609
6610 #. type: Plain text
6611 #: build/C/man2/signal.2:220
6612 msgid ""
6613 "BSD improved on this situation, but unfortunately also changed the semantics "
6614 "of the existing B<signal>()  interface while doing so.  On BSD, when a "
6615 "signal handler is invoked, the signal disposition is not reset, and further "
6616 "instances of the signal are blocked from being delivered while the handler "
6617 "is executing.  Furthermore, certain blocking system calls are automatically "
6618 "restarted if interrupted by a signal handler (see B<signal>(7)).  The BSD "
6619 "semantics are equivalent to calling B<sigaction>(2)  with the following "
6620 "flags:"
6621 msgstr ""
6622 "BSD はこの状況が改善したが、残念なことに、その過程で既存の B<signal>() の挙動"
6623 "も変更された。 BSD では、シグナルハンドラが起動された際、 シグナルの処理方法"
6624 "はリセットされず、 ハンドラの実行中は、同じシグナルのさらなる生成は配送がブ"
6625 "ロックされる。 また、 シグナルハンドラが中断された場合、 停止中のシステムコー"
6626 "ルのいくつかは自動的に再スタートされる。 BSD の挙動は、 以下のフラグを指定し"
6627 "た B<sigaction>(2) の呼び出しと等価である。"
6628
6629 #. type: Plain text
6630 #: build/C/man2/signal.2:222
6631 #, no-wrap
6632 msgid "    sa.sa_flags = SA_RESTART;\n"
6633 msgstr "    sa.sa_flags = SA_RESTART;\n"
6634
6635 #. type: Plain text
6636 #: build/C/man2/signal.2:224
6637 msgid "The situation on Linux is as follows:"
6638 msgstr "Linux での状況は以下の通りである。"
6639
6640 #. type: Plain text
6641 #: build/C/man2/signal.2:228
6642 msgid "The kernel's B<signal>()  system call provides System V semantics."
6643 msgstr "カーネルの B<signal>()  システムコールは System V 方式を提供している。"
6644
6645 #. type: Plain text
6646 #: build/C/man2/signal.2:244
6647 msgid ""
6648 "By default, in glibc 2 and later, the B<signal>()  wrapper function does not "
6649 "invoke the kernel system call.  Instead, it calls B<sigaction>(2)  using "
6650 "flags that supply BSD semantics.  This default behavior is provided as long "
6651 "as the B<_BSD_SOURCE> feature test macro is defined.  By default, "
6652 "B<_BSD_SOURCE> is defined; it is also implicitly defined if one defines "
6653 "B<_GNU_SOURCE>, and can of course be explicitly defined."
6654 msgstr ""
6655 "デフォルトでは、glibc 2 以降では、 B<signal>()  ラッパー関数はカーネルのシス"
6656 "テムコールを起動しない。 代わりに、ラッパー関数は BSD 方式を示すフラグを使っ"
6657 "て B<sigaction>(2)  を呼び出す。 機能検査マクロ B<_BSD_SOURCE> を定義していれ"
6658 "ば、このデフォルトの動作となる。 デフォルトでは、 B<_BSD_SOURCE> が定義され"
6659 "る。 B<_BSD_SOURCE> は B<_GNU_SOURCE> が定義された場合には暗黙のうちに定義さ"
6660 "れ、 もちろん明示的に定義することもできる。"
6661
6662 #.  System V semantics are also provided if one uses the separate
6663 #.  .BR sysv_signal (3)
6664 #.  function.
6665 #. type: Plain text
6666 #: build/C/man2/signal.2:267
6667 msgid ""
6668 "On glibc 2 and later, if the B<_BSD_SOURCE> feature test macro is not "
6669 "defined, then B<signal>()  provides System V semantics.  (The default "
6670 "implicit definition of B<_BSD_SOURCE> is not provided if one invokes B<gcc>"
6671 "(1)  in one of its standard modes (I<-std=xxx> or I<-ansi>)  or defines "
6672 "various other feature test macros such as B<_POSIX_SOURCE>, "
6673 "B<_XOPEN_SOURCE>, or B<_SVID_SOURCE>; see B<feature_test_macros>(7).)"
6674 msgstr ""
6675 "glibc 2 以降では、機能検査マクロ B<_BSD_SOURCE> が定義されていなければ、 "
6676 "B<signal>()  は System V 方式となる。 (B<gcc>(1)  が標準指定モード (I<-"
6677 "std=xxx> or I<-ansi>)  で起動された場合、もしくは B<_POSIX_SOURCE>, "
6678 "B<_XOPEN_SOURCE>, B<_SVID_SOURCE> といった他の様々な機能検査マクロが定義され"
6679 "た場合、 デフォルトの B<_BSD_SOURCE> の暗黙の定義は行われない。 "
6680 "B<feature_test_macros>(7)  を参照のこと。)"
6681
6682 #. type: Plain text
6683 #: build/C/man2/signal.2:278
6684 msgid ""
6685 "The B<signal>()  function in Linux libc4 and libc5 provide System V "
6686 "semantics.  If one on a libc5 system includes I<E<lt>bsd/signal.hE<gt>> "
6687 "instead of I<E<lt>signal.hE<gt>>, then B<signal>()  provides BSD semantics."
6688 msgstr ""
6689 "Linux の libc4 と libc5 の B<signal>()  関数は System V 方式である。 libc5 シ"
6690 "ステムにおいて I<E<lt>signal.hE<gt>> のかわりに I<E<lt>bsd/signal.hE<gt>> を"
6691 "インクルードすると、 B<signal>()  は B<__bsd_signal>()  に再定義され、 "
6692 "B<signal>()  は BSD 方式となる。"
6693
6694 #. type: Plain text
6695 #: build/C/man2/signal.2:297
6696 msgid ""
6697 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaction>"
6698 "(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
6699 "B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), B<sigqueue>(3), "
6700 "B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), B<signal>(7)"
6701 msgstr ""
6702 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaction>"
6703 "(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
6704 "B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), B<sigqueue>(3), "
6705 "B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), B<signal>(7)"
6706
6707 #. type: Plain text
6708 #: build/C/man7/signal.7:49
6709 msgid "signal - overview of signals"
6710 msgstr "signal - シグナルの概要"
6711
6712 #. type: Plain text
6713 #: build/C/man7/signal.7:52
6714 msgid ""
6715 "Linux supports both POSIX reliable signals (hereinafter \"standard signals"
6716 "\") and POSIX real-time signals."
6717 msgstr ""
6718 "Linux は POSIX 信頼シグナル (reliable signal; 以後 \"標準シグナル\"と表記)  "
6719 "と POSIX リアルタイムシグナルの両方に対応している。"
6720
6721 #. type: SS
6722 #: build/C/man7/signal.7:52
6723 #, no-wrap
6724 msgid "Signal dispositions"
6725 msgstr "シグナル処理方法"
6726
6727 #. type: Plain text
6728 #: build/C/man7/signal.7:57
6729 msgid ""
6730 "Each signal has a current I<disposition>, which determines how the process "
6731 "behaves when it is delivered the signal."
6732 msgstr ""
6733 "シグナルはそれぞれ現在の「処理方法 (disposition)」を保持しており、 この処理方"
6734 "法によりシグナルが配送された際にプロセスが どのような振舞いをするかが決まる。"
6735
6736 #. type: Plain text
6737 #: build/C/man7/signal.7:60
6738 msgid ""
6739 "The entries in the \"Action\" column of the tables below specify the default "
6740 "disposition for each signal, as follows:"
6741 msgstr ""
6742 "後述の表の \"動作\" の欄のエントリは各シグナルのデフォルトの 処理方法を示して"
6743 "おり、以下のような意味を持つ。"
6744
6745 #. type: IP
6746 #: build/C/man7/signal.7:60
6747 #, no-wrap
6748 msgid "Term"
6749 msgstr "Term"
6750
6751 #. type: Plain text
6752 #: build/C/man7/signal.7:62
6753 msgid "Default action is to terminate the process."
6754 msgstr "デフォルトの動作はプロセス終了。"
6755
6756 #. type: IP
6757 #: build/C/man7/signal.7:62
6758 #, no-wrap
6759 msgid "Ign"
6760 msgstr "Ign"
6761
6762 #. type: Plain text
6763 #: build/C/man7/signal.7:64
6764 msgid "Default action is to ignore the signal."
6765 msgstr "デフォルトの動作はこのシグナルの無視。"
6766
6767 #. type: IP
6768 #: build/C/man7/signal.7:64
6769 #, no-wrap
6770 msgid "Core"
6771 msgstr "Core"
6772
6773 #. type: Plain text
6774 #: build/C/man7/signal.7:67
6775 msgid ""
6776 "Default action is to terminate the process and dump core (see B<core>(5))."
6777 msgstr "デフォルトの動作はプロセス終了とコアダンプ出力 (B<core>(5)  参照)。"
6778
6779 #. type: IP
6780 #: build/C/man7/signal.7:67
6781 #, no-wrap
6782 msgid "Stop"
6783 msgstr "Stop"
6784
6785 #. type: Plain text
6786 #: build/C/man7/signal.7:69
6787 msgid "Default action is to stop the process."
6788 msgstr "デフォルトの動作はプロセスの一時停止。"
6789
6790 #. type: IP
6791 #: build/C/man7/signal.7:69
6792 #, no-wrap
6793 msgid "Cont"
6794 msgstr "Cont"
6795
6796 #. type: Plain text
6797 #: build/C/man7/signal.7:71
6798 msgid "Default action is to continue the process if it is currently stopped."
6799 msgstr "デフォルトの動作は、プロセスが停止中の場合にその実行の再開。"
6800
6801 #. type: Plain text
6802 #: build/C/man7/signal.7:93
6803 msgid ""
6804 "A process can change the disposition of a signal using B<sigaction>(2)  or "
6805 "B<signal>(2).  (The latter is less portable when establishing a signal "
6806 "handler; see B<signal>(2)  for details.)  Using these system calls, a "
6807 "process can elect one of the following behaviors to occur on delivery of the "
6808 "signal: perform the default action; ignore the signal; or catch the signal "
6809 "with a I<signal handler>, a programmer-defined function that is "
6810 "automatically invoked when the signal is delivered.  (By default, the signal "
6811 "handler is invoked on the normal process stack.  It is possible to arrange "
6812 "that the signal handler uses an alternate stack; see B<sigaltstack>(2)  for "
6813 "a discussion of how to do this and when it might be useful.)"
6814 msgstr ""
6815 "プロセスは、 B<sigaction>(2)  や B<signal>(2)  を使って、シグナルの処理方法を"
6816 "変更することができる (B<signal>(2)  の方がシグナルハンドラを設定する際の移植"
6817 "性が低い; 詳細は B<signal>(2)  を参照)。 シグナルの配送時に起こる動作として "
6818 "プロセスが選択できるのは、次のいずれか一つである。 デフォルトの動作を実行す"
6819 "る、シグナルを無視する、 I<シグナルハンドラ (signal handler)> でシグナルを捕"
6820 "捉する。シグナルハンドラとは、シグナル配送時に 自動的に起動されるプログラマ定"
6821 "義の関数である。 (デフォルトでは、シグナルハンドラは通常のプロセスのスタック"
6822 "上で起動される。 シグナルハンドラが代替スタック (alternate stack) を使用する"
6823 "ように設定する こともできる。代替スタックを使用するように設定する方法と、どの"
6824 "ような際に 代替スタックが役に立つかについての議論については B<sigaltstack>"
6825 "(2)  を参照のこと。"
6826
6827 #. type: Plain text
6828 #: build/C/man7/signal.7:97
6829 msgid ""
6830 "The signal disposition is a per-process attribute: in a multithreaded "
6831 "application, the disposition of a particular signal is the same for all "
6832 "threads."
6833 msgstr ""
6834 "シグナルの処理方法はプロセス単位の属性である。 マルチスレッドのアプリケーショ"
6835 "ンでは、あるシグナルの処理方法は 全てのスレッドで同じである。"
6836
6837 #. type: SS
6838 #: build/C/man7/signal.7:105
6839 #, no-wrap
6840 msgid "Sending a signal"
6841 msgstr "シグナルの送信"
6842
6843 #. type: Plain text
6844 #: build/C/man7/signal.7:108
6845 msgid ""
6846 "The following system calls and library functions allow the caller to send a "
6847 "signal:"
6848 msgstr ""
6849 "以下のシステムコールとライブラリ関数を使って、 呼び出し者はシグナルを送信する"
6850 "ことができる。"
6851
6852 #. type: TP
6853 #: build/C/man7/signal.7:108
6854 #, no-wrap
6855 msgid "B<raise>(3)"
6856 msgstr "B<raise>(3)"
6857
6858 #. type: Plain text
6859 #: build/C/man7/signal.7:111
6860 msgid "Sends a signal to the calling thread."
6861 msgstr "呼び出したスレッドにシグナルを送る。"
6862
6863 #. type: Plain text
6864 #: build/C/man7/signal.7:116
6865 msgid ""
6866 "Sends a signal to a specified process, to all members of a specified process "
6867 "group, or to all processes on the system."
6868 msgstr ""
6869 "指定されたプロセスや、指定されたプロセスグループの全メンバー、 システムの全プ"
6870 "ロセスにシグナルを送る。"
6871
6872 #. type: TP
6873 #: build/C/man7/signal.7:116
6874 #, no-wrap
6875 msgid "B<killpg>(2)"
6876 msgstr "B<killpg>(2)"
6877
6878 #. type: Plain text
6879 #: build/C/man7/signal.7:119
6880 msgid "Sends a signal to all of the members of a specified process group."
6881 msgstr "指定されたプロセスグループの全メンバーにシグナルを送る。"
6882
6883 #. type: TP
6884 #: build/C/man7/signal.7:119
6885 #, no-wrap
6886 msgid "B<pthread_kill>(3)"
6887 msgstr "B<pthread_kill>(3)"
6888
6889 #. type: Plain text
6890 #: build/C/man7/signal.7:123
6891 msgid ""
6892 "Sends a signal to a specified POSIX thread in the same process as the caller."
6893 msgstr ""
6894 "呼び出し者と同じプロセス内の指定された POSIX スレッドにシグナルを送る。"
6895
6896 #. type: TP
6897 #: build/C/man7/signal.7:123
6898 #, no-wrap
6899 msgid "B<tgkill>(2)"
6900 msgstr "B<tgkill>(2)"
6901
6902 #. type: Plain text
6903 #: build/C/man7/signal.7:128
6904 msgid ""
6905 "Sends a signal to a specified thread within a specific process.  (This is "
6906 "the system call used to implement B<pthread_kill>(3).)"
6907 msgstr ""
6908 "指定されたプロセス内の指定されたスレッドにシグナルを送る (このシステムコール"
6909 "を使って B<pthread_kill>(3)  は実装されている)。"
6910
6911 #. type: Plain text
6912 #: build/C/man7/signal.7:131
6913 msgid "Sends a real-time signal with accompanying data to a specified process."
6914 msgstr "指定されたプロセスに付属データとともにリアルタイムシグナルを送る。"
6915
6916 #. type: SS
6917 #: build/C/man7/signal.7:131
6918 #, no-wrap
6919 msgid "Waiting for a signal to be caught"
6920 msgstr "シグナルが捕捉されるのを待つ"
6921
6922 #. type: Plain text
6923 #: build/C/man7/signal.7:135
6924 msgid ""
6925 "The following system calls suspend execution of the calling process or "
6926 "thread until a signal is caught (or an unhandled signal terminates the "
6927 "process):"
6928 msgstr ""
6929 "以下のシステムコールを使って、シグナルが捕捉されるまで 呼び出したプロセスやス"
6930 "レッドの実行を中断 (suspend) することができる (ハンドラが設定されていないシグ"
6931 "ナルによりそのプロセスが終了した 場合にも実行の停止は終了する)。"
6932
6933 #. type: TP
6934 #: build/C/man7/signal.7:135
6935 #, no-wrap
6936 msgid "B<pause>(2)"
6937 msgstr "B<pause>(2)"
6938
6939 #. type: Plain text
6940 #: build/C/man7/signal.7:138
6941 msgid "Suspends execution until any signal is caught."
6942 msgstr "何かシグナルが捕捉されるまで実行を停止する。"
6943
6944 #. type: TP
6945 #: build/C/man7/signal.7:138
6946 #, no-wrap
6947 msgid "B<sigsuspend>(2)"
6948 msgstr "B<sigsuspend>(2)"
6949
6950 #. type: Plain text
6951 #: build/C/man7/signal.7:142
6952 msgid ""
6953 "Temporarily changes the signal mask (see below) and suspends execution until "
6954 "one of the unmasked signals is caught."
6955 msgstr ""
6956 "一時的にシグナルマスク (下記参照) を変更し、 マスクされていないシグナルのいず"
6957 "れかが捕捉されるまで 実行を中断する。"
6958
6959 #. type: SS
6960 #: build/C/man7/signal.7:142
6961 #, no-wrap
6962 msgid "Synchronously accepting a signal"
6963 msgstr "シグナルの同期受信"
6964
6965 #. type: Plain text
6966 #: build/C/man7/signal.7:149
6967 msgid ""
6968 "Rather than asynchronously catching a signal via a signal handler, it is "
6969 "possible to synchronously accept the signal, that is, to block execution "
6970 "until the signal is delivered, at which point the kernel returns information "
6971 "about the signal to the caller.  There are two general ways to do this:"
6972 msgstr ""
6973 "シグナルハンドラ経由でシグナルを非同期 (asynchronously) で捕捉する以外にも、 "
6974 "シグナルを同期 (synchronously) して受け付けることもできる。 同期して受け付け"
6975 "るとは、シグナルが配送されるまで実行を停止 (block)  するということである。シ"
6976 "グナルを受け付けた際に、カーネルは そのシグナルに関する情報を呼び出し者に返"
6977 "す。 これを行う一般的な方法が二つある。"
6978
6979 #. type: Plain text
6980 #: build/C/man7/signal.7:157
6981 msgid ""
6982 "B<sigwaitinfo>(2), B<sigtimedwait>(2), and B<sigwait>(3)  suspend execution "
6983 "until one of the signals in a specified set is delivered.  Each of these "
6984 "calls returns information about the delivered signal."
6985 msgstr ""
6986 "B<sigwaitinfo>(2), B<sigtimedwait>(2), B<sigwait>(3)  は、指定されたシグナル"
6987 "集合のシグナルの一つが配送されるまで実行を中断する。 どのシステムコールや関数"
6988 "でも、配送されたシグナルに関する情報が返される。"
6989
6990 #. type: Plain text
6991 #: build/C/man7/signal.7:170
6992 msgid ""
6993 "B<signalfd>(2)  returns a file descriptor that can be used to read "
6994 "information about signals that are delivered to the caller.  Each B<read>"
6995 "(2)  from this file descriptor blocks until one of the signals in the set "
6996 "specified in the B<signalfd>(2)  call is delivered to the caller.  The "
6997 "buffer returned by B<read>(2)  contains a structure describing the signal."
6998 msgstr ""
6999 "B<signalfd>(2)  が返すファイルディスクリプタを使うと、呼び出し元に配送された "
7000 "シグナルに関する情報を読み出すことができる。 このファイルディスクリプタから"
7001 "の B<read>(2)  は、 B<signalfd>(2)  の呼び出し時に指定されたシグナル集合のシ"
7002 "グナルの一つが呼び出し元に 配送されるまで停止 (block) する。 B<read>(2)  が返"
7003 "すバッファにはシグナルに関する情報を格納した構造体が入っている。"
7004
7005 #. type: SS
7006 #: build/C/man7/signal.7:170
7007 #, no-wrap
7008 msgid "Signal mask and pending signals"
7009 msgstr "シグナルマスクと処理待ちシグナル"
7010
7011 #. type: Plain text
7012 #: build/C/man7/signal.7:177
7013 msgid ""
7014 "A signal may be I<blocked>, which means that it will not be delivered until "
7015 "it is later unblocked.  Between the time when it is generated and when it is "
7016 "delivered a signal is said to be I<pending>."
7017 msgstr ""
7018 "シグナルは I<ブロック (block)> されることがある。ブロックされると、そのシグナ"
7019 "ルは その後ブロックを解除されるまで配送されなくなる。 シグナルが生成されてか"
7020 "ら配送されるまでの間、そのシグナルは I<処理待ち (pending)> であると呼ばれる。"
7021
7022 #. type: Plain text
7023 #: build/C/man7/signal.7:186
7024 msgid ""
7025 "Each thread in a process has an independent I<signal mask>, which indicates "
7026 "the set of signals that the thread is currently blocking.  A thread can "
7027 "manipulate its signal mask using B<pthread_sigmask>(3).  In a traditional "
7028 "single-threaded application, B<sigprocmask>(2)  can be used to manipulate "
7029 "the signal mask."
7030 msgstr ""
7031 "プロセス内の各スレッドは、それぞれ独立な I<シグナルマスク (signal mask)> を持"
7032 "つ。シグナルマスクはそのスレッドが現在ブロックしている シグナル集合を示すもの"
7033 "である。 スレッドは、 B<pthread_sigmask>(3)  を使って自分のシグナルマスクを操"
7034 "作できる。 伝統的なシングルスレッドのアプリケーションでは、 B<sigprocmask>"
7035 "(2)  を使って、シグナルマスクを操作できる。"
7036
7037 #. type: Plain text
7038 #: build/C/man7/signal.7:192 build/C/man2/sigprocmask.2:126
7039 msgid ""
7040 "A child created via B<fork>(2)  inherits a copy of its parent's signal mask; "
7041 "the signal mask is preserved across B<execve>(2)."
7042 msgstr ""
7043 "B<fork>(2)  経由で作成された子プロセスは親プロセスのシグナルマスクのコピーを"
7044 "継承する。 B<execve>(2)  の前後でシグナルマスクは保持される。"
7045
7046 #. type: Plain text
7047 #: build/C/man7/signal.7:209
7048 msgid ""
7049 "A signal may be generated (and thus pending)  for a process as a whole (e."
7050 "g., when sent using B<kill>(2))  or for a specific thread (e.g., certain "
7051 "signals, such as B<SIGSEGV> and B<SIGFPE>, generated as a consequence of "
7052 "executing a specific machine-language instruction are thread directed, as "
7053 "are signals targeted at a specific thread using B<pthread_kill>(3)).  A "
7054 "process-directed signal may be delivered to any one of the threads that does "
7055 "not currently have the signal blocked.  If more than one of the threads has "
7056 "the signal unblocked, then the kernel chooses an arbitrary thread to which "
7057 "to deliver the signal."
7058 msgstr ""
7059 "生成されるシグナル (したがって処理待ちとなるシグナル) には、 プロセス全体宛て"
7060 "と特定のスレッド宛てがある。 例えば、プロセス全体宛てのシグナルは B<kill>"
7061 "(2)  を使って送信される。 特定のマシン語の命令の実行の結果として生成される、 "
7062 "B<SIGSEGV> や B<SIGFPE> などのシグナルは、スレッド宛てとなる。 また、 "
7063 "B<pthread_kill>(3)  を使って特定のスレッド宛てに生成されたシグナルも スレッド"
7064 "宛てとなる。 プロセス宛てのシグナルは、そのシグナルをブロックしていないスレッ"
7065 "ドのうち いずれかの一つに配送することができる。そのシグナルをブロックしていな"
7066 "い スレッドが複数ある場合、シグナルを配送するスレッドはカーネルが 無作為に選"
7067 "択する。"
7068
7069 #. type: Plain text
7070 #: build/C/man7/signal.7:216
7071 msgid ""
7072 "A thread can obtain the set of signals that it currently has pending using "
7073 "B<sigpending>(2).  This set will consist of the union of the set of pending "
7074 "process-directed signals and the set of signals pending for the calling "
7075 "thread."
7076 msgstr ""
7077 "スレッドは、 B<sigpending>(2)  を使って、現在処理待ちのシグナル集合を取得する"
7078 "ことができる。 この集合は、プロセス宛ての処理待ちシグナルと 呼び出したスレッ"
7079 "ド宛てのシグナルの両方から構成される。"
7080
7081 #. type: Plain text
7082 #: build/C/man7/signal.7:222 build/C/man2/sigpending.2:81
7083 msgid ""
7084 "A child created via B<fork>(2)  initially has an empty pending signal set; "
7085 "the pending signal set is preserved across an B<execve>(2)."
7086 msgstr ""
7087 "B<fork>(2)  経由で作成された子プロセスでは、処理待ちのシグナル集合は空の集合"
7088 "で初期化される。 B<execve>(2)  の前後で、処理待ちのシグナル集合は保持される。"
7089
7090 #. type: SS
7091 #: build/C/man7/signal.7:222
7092 #, no-wrap
7093 msgid "Standard signals"
7094 msgstr "標準シグナル"
7095
7096 #. type: Plain text
7097 #: build/C/man7/signal.7:234
7098 msgid ""
7099 "Linux supports the standard signals listed below.  Several signal numbers "
7100 "are architecture-dependent, as indicated in the \"Value\" column.  (Where "
7101 "three values are given, the first one is usually valid for alpha and sparc, "
7102 "the middle one for x86, arm, and most other architectures, and the last one "
7103 "for mips.  (Values for parisc are I<not> shown; see the Linux kernel source "
7104 "for signal numbering on that architecture.)  A - denotes that a signal is "
7105 "absent on the corresponding architecture.)"
7106 msgstr ""
7107 "Linux は以下に示す標準シグナルに対応している。シグナル番号の一部はアー\n"
7108 "キテクチャ依存であり、\"値\" 欄に示す通りである。 (3つの値が書かれている\n"
7109 "ものは、 1つ目が alpha と sparc で通常有効な値、 真ん中が x86, arm や\n"
7110 "他のほとんどのアーキテクチャでの有効な値、最後が mips での値である。\n"
7111 "(parisc での値は記載されてI<いない>。 parisc でのシグナル番号は\n"
7112 "Linux カーネルソースを参照してほしい)。 - はそのアーキテ\n"
7113 "クチャにおいて対応するシグナルがないことを示す。)"
7114
7115 #. type: Plain text
7116 #: build/C/man7/signal.7:236
7117 msgid "First the signals described in the original POSIX.1-1990 standard."
7118 msgstr "最初に、POSIX.1-1990 に定義されているシグナルを示す。"
7119
7120 #. type: tbl table
7121 #: build/C/man7/signal.7:240 build/C/man7/signal.7:276
7122 #: build/C/man7/signal.7:305
7123 #, no-wrap
7124 msgid "Signal\tValue\tAction\tComment\n"
7125 msgstr "シグナル\t値\t動作\tコメント\n"
7126
7127 #. type: tbl table
7128 #: build/C/man7/signal.7:241
7129 #, no-wrap
7130 msgid "SIGHUP\t\\01\tTerm\tHangup detected on controlling terminal\n"
7131 msgstr "SIGHUP\t\\01\tTerm\t制御端末(controlling terminal)のハングアップ検出、\n"
7132
7133 #. type: tbl table
7134 #: build/C/man7/signal.7:242
7135 #, no-wrap
7136 msgid "\t\t\tor death of controlling process\n"
7137 msgstr "\t\t\tまたは制御しているプロセスの死\n"
7138
7139 #. type: tbl table
7140 #: build/C/man7/signal.7:243
7141 #, no-wrap
7142 msgid "SIGINT\t\\02\tTerm\tInterrupt from keyboard\n"
7143 msgstr "SIGINT\t\\02\tTerm\tキーボードからの割り込み (Interrupt)\n"
7144
7145 #. type: tbl table
7146 #: build/C/man7/signal.7:244
7147 #, no-wrap
7148 msgid "SIGQUIT\t\\03\tCore\tQuit from keyboard\n"
7149 msgstr "SIGQUIT\t\\03\tCore\tキーボードによる中止 (Quit)\n"
7150
7151 #. type: tbl table
7152 #: build/C/man7/signal.7:245
7153 #, no-wrap
7154 msgid "SIGILL\t\\04\tCore\tIllegal Instruction\n"
7155 msgstr "SIGILL\t\\04\tCore\t不正な命令\n"
7156
7157 #. type: tbl table
7158 #: build/C/man7/signal.7:246
7159 #, no-wrap
7160 msgid "SIGABRT\t\\06\tCore\tAbort signal from B<abort>(3)\n"
7161 msgstr "SIGABRT\t\\06\tCore\tB<abort>(3) からの中断 (Abort) シグナル\n"
7162
7163 #. type: tbl table
7164 #: build/C/man7/signal.7:247
7165 #, no-wrap
7166 msgid "SIGFPE\t\\08\tCore\tFloating point exception\n"
7167 msgstr "SIGFPE\t\\08\tCore\t浮動小数点例外\n"
7168
7169 #. type: tbl table
7170 #: build/C/man7/signal.7:248
7171 #, no-wrap
7172 msgid "SIGKILL\t\\09\tTerm\tKill signal\n"
7173 msgstr "SIGKILL\t\\09\tTerm\tKill シグナル\n"
7174
7175 #. type: tbl table
7176 #: build/C/man7/signal.7:249
7177 #, no-wrap
7178 msgid "SIGSEGV\t11\tCore\tInvalid memory reference\n"
7179 msgstr "SIGSEGV\t11\tCore\t不正なメモリ参照\n"
7180
7181 #. type: tbl table
7182 #: build/C/man7/signal.7:250
7183 #, no-wrap
7184 msgid "SIGPIPE\t13\tTerm\tBroken pipe: write to pipe with no\n"
7185 msgstr "SIGPIPE\t13\tTerm\tパイプ破壊:\n"
7186
7187 #. type: tbl table
7188 #: build/C/man7/signal.7:251
7189 #, no-wrap
7190 msgid "\t\t\treaders\n"
7191 msgstr "\t\t\t読み手の無いパイプへの書き出し\n"
7192
7193 #. type: tbl table
7194 #: build/C/man7/signal.7:252
7195 #, no-wrap
7196 msgid "SIGALRM\t14\tTerm\tTimer signal from B<alarm>(2)\n"
7197 msgstr "SIGALRM\t14\tTerm\tB<alarm>(2) からのタイマーシグナル\n"
7198
7199 #. type: tbl table
7200 #: build/C/man7/signal.7:253
7201 #, no-wrap
7202 msgid "SIGTERM\t15\tTerm\tTermination signal\n"
7203 msgstr "SIGTERM\t15\tTerm\t終了 (termination) シグナル\n"
7204
7205 #. type: tbl table
7206 #: build/C/man7/signal.7:254
7207 #, no-wrap
7208 msgid "SIGUSR1\t30,10,16\tTerm\tUser-defined signal 1\n"
7209 msgstr "SIGUSR1\t30,10,16\tTerm\tユーザ定義シグナル 1\n"
7210
7211 #. type: tbl table
7212 #: build/C/man7/signal.7:255
7213 #, no-wrap
7214 msgid "SIGUSR2\t31,12,17\tTerm\tUser-defined signal 2\n"
7215 msgstr "SIGUSR2\t31,12,17\tTerm\tユーザ定義シグナル 2\n"
7216
7217 #. type: tbl table
7218 #: build/C/man7/signal.7:256
7219 #, no-wrap
7220 msgid "SIGCHLD\t20,17,18\tIgn\tChild stopped or terminated\n"
7221 msgstr "SIGCHLD\t20,17,18\tIgn\t子プロセスの一時停止 (stop) または終了\n"
7222
7223 #. type: tbl table
7224 #: build/C/man7/signal.7:257
7225 #, no-wrap
7226 msgid "SIGCONT\t19,18,25\tCont\tContinue if stopped\n"
7227 msgstr "SIGCONT\t19,18,25\tCont\t一時停止 (stop) からの再開\n"
7228
7229 #. type: tbl table
7230 #: build/C/man7/signal.7:258
7231 #, no-wrap
7232 msgid "SIGSTOP\t17,19,23\tStop\tStop process\n"
7233 msgstr "SIGSTOP\t17,19,23\tStop\tプロセスの一時停止 (stop)\n"
7234
7235 #. type: tbl table
7236 #: build/C/man7/signal.7:259
7237 #, no-wrap
7238 msgid "SIGTSTP\t18,20,24\tStop\tStop typed at terminal\n"
7239 msgstr "SIGTSTP\t18,20,24\tStop\t端末より入力された一時停止 (stop)\n"
7240
7241 #. type: tbl table
7242 #: build/C/man7/signal.7:260
7243 #, no-wrap
7244 msgid "SIGTTIN\t21,21,26\tStop\tTerminal input for background process\n"
7245 msgstr "SIGTTIN\t21,21,26\tStop\tバックグランドプロセスの端末入力\n"
7246
7247 #. type: tbl table
7248 #: build/C/man7/signal.7:261
7249 #, no-wrap
7250 msgid "SIGTTOU\t22,22,27\tStop\tTerminal output for background process\n"
7251 msgstr "SIGTTOU\t22,22,27\tStop\tバックグランドプロセスの端末出力\n"
7252
7253 #. type: Plain text
7254 #: build/C/man7/signal.7:269
7255 msgid ""
7256 "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught, blocked, or ignored."
7257 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> はキャッチ、ブロック、無視できない。"
7258
7259 #. type: Plain text
7260 #: build/C/man7/signal.7:272
7261 msgid ""
7262 "Next the signals not in the POSIX.1-1990 standard but described in SUSv2 and "
7263 "POSIX.1-2001."
7264 msgstr ""
7265 "次に、 POSIX.1-1990 標準にはないが、 SUSv2 と POSIX.1-2001 に記述されているシ"
7266 "グナルを示す。"
7267
7268 #. type: tbl table
7269 #: build/C/man7/signal.7:277
7270 #, no-wrap
7271 msgid "SIGBUS\t10,7,10\tCore\tBus error (bad memory access)\n"
7272 msgstr "SIGBUS\t10,7,10\tCore\tバスエラー (不正なメモリアクセス)\n"
7273
7274 #. type: tbl table
7275 #: build/C/man7/signal.7:278
7276 #, no-wrap
7277 msgid "SIGPOLL\t\tTerm\tPollable event (Sys V).\n"
7278 msgstr "SIGPOLL\t\tTerm\tポーリング可能なイベント (Sys V)。\n"
7279
7280 #. type: tbl table
7281 #: build/C/man7/signal.7:279
7282 #, no-wrap
7283 msgid "\t\t\tSynonym for B<SIGIO>\n"
7284 msgstr "\t\t\tB<SIGIO> と同義\n"
7285
7286 #. type: tbl table
7287 #: build/C/man7/signal.7:280
7288 #, no-wrap
7289 msgid "SIGPROF\t27,27,29\tTerm\tProfiling timer expired\n"
7290 msgstr "SIGPROF\t27,27,29\tTerm\tprofiling タイマの時間切れ\n"
7291
7292 #. type: tbl table
7293 #: build/C/man7/signal.7:281
7294 #, no-wrap
7295 msgid "SIGSYS\t12,31,12\tCore\tBad argument to routine (SVr4)\n"
7296 msgstr "SIGSYS\t12,31,12\tCore\tルーチンへの引き数が不正 (SVr4)\n"
7297
7298 #. type: tbl table
7299 #: build/C/man7/signal.7:282
7300 #, no-wrap
7301 msgid "SIGTRAP\t5\tCore\tTrace/breakpoint trap\n"
7302 msgstr "SIGTRAP\t5\tCore\tトレース/ブレークポイント トラップ\n"
7303
7304 #. type: tbl table
7305 #: build/C/man7/signal.7:283
7306 #, no-wrap
7307 msgid "SIGURG\t16,23,21\tIgn\tUrgent condition on socket (4.2BSD)\n"
7308 msgstr "SIGURG\t16,23,21\tIgn\tソケットの緊急事態 (urgent condition) (4.2BSD)\n"
7309
7310 #. type: tbl table
7311 #: build/C/man7/signal.7:284
7312 #, no-wrap
7313 msgid "SIGVTALRM\t26,26,28\tTerm\tVirtual alarm clock (4.2BSD)\n"
7314 msgstr "SIGVTALRM\t26,26,28\tTerm\t仮想アラームクロック (4.2BSD)\n"
7315
7316 #. type: tbl table
7317 #: build/C/man7/signal.7:285
7318 #, no-wrap
7319 msgid "SIGXCPU\t24,24,30\tCore\tCPU time limit exceeded (4.2BSD)\n"
7320 msgstr "SIGXCPU\t24,24,30\tCore\tCPU時間制限超過 (4.2BSD)\n"
7321
7322 #. type: tbl table
7323 #: build/C/man7/signal.7:286
7324 #, no-wrap
7325 msgid "SIGXFSZ\t25,25,31\tCore\tFile size limit exceeded (4.2BSD)\n"
7326 msgstr "SIGXFSZ\t25,25,31\tCore\tファイルサイズ制限の超過 (4.2BSD)\n"
7327
7328 #. type: Plain text
7329 #: build/C/man7/signal.7:299
7330 msgid ""
7331 "Up to and including Linux 2.2, the default behavior for B<SIGSYS>, "
7332 "B<SIGXCPU>, B<SIGXFSZ>, and (on architectures other than SPARC and MIPS)  "
7333 "B<SIGBUS> was to terminate the process (without a core dump).  (On some "
7334 "other UNIX systems the default action for B<SIGXCPU> and B<SIGXFSZ> is to "
7335 "terminate the process without a core dump.)  Linux 2.4 conforms to the "
7336 "POSIX.1-2001 requirements for these signals, terminating the process with a "
7337 "core dump."
7338 msgstr ""
7339 "Linux 2.2 以前では、 B<SIGSYS>, B<SIGXCPU>, B<SIGXFSZ> および SPARC と MIPS "
7340 "以外のアーキテクチャでの B<SIGBUS> のデフォルトの振る舞いは (コアダンプ出力な"
7341 "しの) プロセス終了であった。 (他の UNIX システムにも B<SIGXCPU> と "
7342 "B<SIGXFSZ> のデフォルトの動作がコアダンプなしのプロセス終了のものがある。)  "
7343 "Linux 2.4 では、POSIX.1-2001 での要求仕様に準拠して、 これらのシグナルで、プ"
7344 "ロセスを終了させ、コアダンプを出力する ようになっている。"
7345
7346 #. type: Plain text
7347 #: build/C/man7/signal.7:301
7348 msgid "Next various other signals."
7349 msgstr "次にその他の各種シグナルを示す。"
7350
7351 #. type: tbl table
7352 #: build/C/man7/signal.7:306
7353 #, no-wrap
7354 msgid "SIGIOT\t6\tCore\tIOT trap. A synonym for B<SIGABRT>\n"
7355 msgstr "SIGIOT\t6\tCore\tIOT トラップ。B<SIGABRT> と同義\n"
7356
7357 #. type: tbl table
7358 #: build/C/man7/signal.7:307
7359 #, no-wrap
7360 msgid "SIGEMT\t7,-,7\tTerm\n"
7361 msgstr "SIGEMT\t7,-,7\tTerm\n"
7362
7363 #. type: tbl table
7364 #: build/C/man7/signal.7:308
7365 #, no-wrap
7366 msgid "SIGSTKFLT\t-,16,-\tTerm\tStack fault on coprocessor (unused)\n"
7367 msgstr "SIGSTKFLT\t-,16,-\tA\t数値演算プロセッサにおけるスタックフォルト (未使用)\n"
7368
7369 #. type: tbl table
7370 #: build/C/man7/signal.7:309
7371 #, no-wrap
7372 msgid "SIGIO\t23,29,22\tTerm\tI/O now possible (4.2BSD)\n"
7373 msgstr "SIGIO\t23,29,22\tTerm\t入出力が可能になった (4.2BSD)\n"
7374
7375 #. type: tbl table
7376 #: build/C/man7/signal.7:310
7377 #, no-wrap
7378 msgid "SIGCLD\t-,-,18\tIgn\tA synonym for B<SIGCHLD>\n"
7379 msgstr "SIGCLD\t-,-,18\tIgn\tB<SIGCHLD> と同義\n"
7380
7381 #. type: tbl table
7382 #: build/C/man7/signal.7:311
7383 #, no-wrap
7384 msgid "SIGPWR\t29,30,19\tTerm\tPower failure (System V)\n"
7385 msgstr "SIGPWR\t29,30,19\tTerm\t電源喪失 (Power failure) (System V)\n"
7386
7387 #. type: tbl table
7388 #: build/C/man7/signal.7:312
7389 #, no-wrap
7390 msgid "SIGINFO\t29,-,-\t\tA synonym for B<SIGPWR>\n"
7391 msgstr "SIGINFO\t29,-,-\t \tB<SIGPWR> と同義\n"
7392
7393 #. type: tbl table
7394 #: build/C/man7/signal.7:313
7395 #, no-wrap
7396 msgid "SIGLOST\t-,-,-\tTerm\tFile lock lost (unused)\n"
7397 msgstr "SIGLOST\t-,-,-\tTerm\tファイルロックが失われた (未使用)\n"
7398
7399 #. type: tbl table
7400 #: build/C/man7/signal.7:314
7401 #, no-wrap
7402 msgid "SIGWINCH\t28,28,20\tIgn\tWindow resize signal (4.3BSD, Sun)\n"
7403 msgstr "SIGWINCH\t28,28,20\tIgn\tウィンドウ リサイズ シグナル (4.3BSD, Sun)\n"
7404
7405 #. type: tbl table
7406 #: build/C/man7/signal.7:315
7407 #, no-wrap
7408 msgid "SIGUNUSED\t-,31,-\tCore\tSynonymous with B<SIGSYS>\n"
7409 msgstr "SIGUNUSED\t-,31,-\tCore\tB<SIGSYS> と同義\n"
7410
7411 #. type: Plain text
7412 #: build/C/man7/signal.7:325
7413 msgid ""
7414 "(Signal 29 is B<SIGINFO> / B<SIGPWR> on an alpha but B<SIGLOST> on a sparc.)"
7415 msgstr ""
7416 "(シグナル 29 は alpha では B<SIGINFO> / B<SIGPWR> だが、sparc では "
7417 "B<SIGLOST> である。)"
7418
7419 #. type: Plain text
7420 #: build/C/man7/signal.7:331
7421 msgid ""
7422 "B<SIGEMT> is not specified in POSIX.1-2001, but nevertheless appears on most "
7423 "other UNIX systems, where its default action is typically to terminate the "
7424 "process with a core dump."
7425 msgstr ""
7426 "B<SIGEMT> は POSIX.1-2001 に規定されていないが、 その他の多くの UNIX システム"
7427 "に存在する。 デフォルトの動作は多くの場合、コアダンプ出力を伴うプロセスの終了"
7428 "である。"
7429
7430 #. type: Plain text
7431 #: build/C/man7/signal.7:335
7432 msgid ""
7433 "B<SIGPWR> (which is not specified in POSIX.1-2001) is typically ignored by "
7434 "default on those other UNIX systems where it appears."
7435 msgstr ""
7436 "B<SIGPWR> は (POSIX.1-2001 に規定されていないが) このシグナルが存在する 他の "
7437 "UNIX システムでは多くの場合、デフォルト動作は無視である。"
7438
7439 #. type: Plain text
7440 #: build/C/man7/signal.7:339
7441 msgid ""
7442 "B<SIGIO> (which is not specified in POSIX.1-2001) is ignored by default on "
7443 "several other UNIX systems."
7444 msgstr ""
7445 "B<SIGIO> は (POSIX.1-2001 に規定されていないが) いくつかの他の UNIX システム"
7446 "では デフォルト動作は無視である。"
7447
7448 #.  parisc is the only exception: SIGSYS is 12, SIGUNUSED is 31
7449 #. type: Plain text
7450 #: build/C/man7/signal.7:346
7451 msgid ""
7452 "Where defined, B<SIGUNUSED> is synonymous with B<SIGSYS> on most "
7453 "architectures."
7454 msgstr ""
7455 "B<SIGUNUSED> が定義されている場合には、ほとんどのアーキテクチャで B<SIGSYS> "
7456 "の同義語となっている。"
7457
7458 #. type: SS
7459 #: build/C/man7/signal.7:346
7460 #, no-wrap
7461 msgid "Real-time signals"
7462 msgstr "リアルタイムシグナル"
7463
7464 #. type: Plain text
7465 #: build/C/man7/signal.7:356
7466 msgid ""
7467 "Linux supports real-time signals as originally defined in the POSIX.1b real-"
7468 "time extensions (and now included in POSIX.1-2001).  The range of supported "
7469 "real-time signals is defined by the macros B<SIGRTMIN> and B<SIGRTMAX>.  "
7470 "POSIX.1-2001 requires that an implementation support at least "
7471 "B<_POSIX_RTSIG_MAX> (8) real-time signals."
7472 msgstr ""
7473 "Linux はリアルタイムシグナルをサポートしている。 リアルタイムシグナルは元々 "
7474 "POSIX.1b のリアルタイム拡張で定義されて いるものであり、現在では "
7475 "POSIX.1-2001 に含まれている。 対応しているリアルタイムシグナルの範囲は、マク"
7476 "ロ B<SIGRTMIN> と B<SIGRTMAX> で定義される。 POSIX.1-2001 では、少なくとも "
7477 "B<_POSIX_RTSIG_MAX> (8) 個のリアルタイムシグナルに対応した実装が要求されてい"
7478 "る。"
7479
7480 #. type: Plain text
7481 #: build/C/man7/signal.7:378
7482 msgid ""
7483 "The Linux kernel supports a range of 32 different real-time signals, "
7484 "numbered 33 to 64.  However, the glibc POSIX threads implementation "
7485 "internally uses two (for NPTL) or three (for LinuxThreads) real-time signals "
7486 "(see B<pthreads>(7)), and adjusts the value of B<SIGRTMIN> suitably (to 34 "
7487 "or 35).  Because the range of available real-time signals varies according "
7488 "to the glibc threading implementation (and this variation can occur at run "
7489 "time according to the available kernel and glibc), and indeed the range of "
7490 "real-time signals varies across UNIX systems, programs should I<never refer "
7491 "to real-time signals using hard-coded numbers>, but instead should always "
7492 "refer to real-time signals using the notation B<SIGRTMIN>+n, and include "
7493 "suitable (run-time) checks that B<SIGRTMIN>+n does not exceed B<SIGRTMAX>."
7494 msgstr ""
7495 "Linux は、32 個の異なるリアルタイムシグナルに対応しており、 その番号は 33 か"
7496 "ら 64 である。 しかしながら、glibc の POSIX スレッド実装は、 内部で 2個 "
7497 "(NPTL の場合) か 3個 (LinuxThreads の場合) の リアルタイムシグナルを使用して"
7498 "おり (B<pthreads>(7)  参照)、 B<SIGRTMIN> の値を適切に (34 か 35 に) 調整す"
7499 "る。 利用可能なリアルタイムシグナルの範囲は glibc のスレッド実装により 異なる"
7500 "し (使用するカーネルと glibc により実行時にも変化する)、 UNIX システムの種類"
7501 "によっても異なる。したがって、 プログラムでは「ハードコーディングした数字を"
7502 "使ってのリアルタイムシグナルの 参照は決してすべきではなく」、代わりに "
7503 "B<SIGRTMIN>+n の形で参照すべきである。また、 B<SIGRTMIN>+n が B<SIGRTMAX> を"
7504 "超えていないかのチェックを (実行時に) 適切に行うべきである。"
7505
7506 #. type: Plain text
7507 #: build/C/man7/signal.7:382
7508 msgid ""
7509 "Unlike standard signals, real-time signals have no predefined meanings: the "
7510 "entire set of real-time signals can be used for application-defined purposes."
7511 msgstr ""
7512 "標準シグナルと異なり、リアルタイムシグナルには 事前に定義された意味はない。 "
7513 "リアルタイムシグナルの全部をアプリケーションで定義した用途に使える。"
7514
7515 #. type: Plain text
7516 #: build/C/man7/signal.7:385
7517 msgid ""
7518 "The default action for an unhandled real-time signal is to terminate the "
7519 "receiving process."
7520 msgstr ""
7521 "ハンドリングしないリアルタイムシグナルのデフォルトの動作は 受信したプロセスの"
7522 "終了である。"
7523
7524 #. type: Plain text
7525 #: build/C/man7/signal.7:387
7526 msgid "Real-time signals are distinguished by the following:"
7527 msgstr "リアルタイムシグナルは以下の特徴がある:"
7528
7529 #. type: Plain text
7530 #: build/C/man7/signal.7:391
7531 msgid ""
7532 "Multiple instances of real-time signals can be queued.  By contrast, if "
7533 "multiple instances of a standard signal are delivered while that signal is "
7534 "currently blocked, then only one instance is queued."
7535 msgstr ""
7536 "リアルタイムシグナルは複数の実体をキューに入れることができる。 一方、標準シグ"
7537 "ナルの場合、そのシグナルがブロックされている間に 同じシグナルの複数のインスタ"
7538 "ンスが配送されても、 1 つだけがキューに入れられる。"
7539
7540 #. type: Plain text
7541 #: build/C/man7/signal.7:411
7542 msgid ""
7543 "If the signal is sent using B<sigqueue>(3), an accompanying value (either an "
7544 "integer or a pointer) can be sent with the signal.  If the receiving process "
7545 "establishes a handler for this signal using the B<SA_SIGINFO> flag to "
7546 "B<sigaction>(2)  then it can obtain this data via the I<si_value> field of "
7547 "the I<siginfo_t> structure passed as the second argument to the handler.  "
7548 "Furthermore, the I<si_pid> and I<si_uid> fields of this structure can be "
7549 "used to obtain the PID and real user ID of the process sending the signal."
7550 msgstr ""
7551 "シグナルが B<sigqueue>(3)  を用いて送信された場合、 付属データ (整数かポイン"
7552 "タ) をシグナルと共に送信できる。 受信側プロセスが B<sigaction>(2)  に "
7553 "B<SA_SIGINFO> フラグを指定してシグナルハンドラを設定した場合、 このデータは "
7554 "I<siginfo_t> 構造体の I<si_value> フィールド経由でハンドラの第 2 引き数として"
7555 "渡され、 利用することができる。 さらに、この構造体の I<si_pid> と I<si_uid> "
7556 "フィールドでシグナルを送信したプロセスの PID と実ユーザ ID を 得ることができ"
7557 "る。"
7558
7559 #. type: Plain text
7560 #: build/C/man7/signal.7:420
7561 msgid ""
7562 "Real-time signals are delivered in a guaranteed order.  Multiple real-time "
7563 "signals of the same type are delivered in the order they were sent.  If "
7564 "different real-time signals are sent to a process, they are delivered "
7565 "starting with the lowest-numbered signal.  (I.e., low-numbered signals have "
7566 "highest priority.)  By contrast, if multiple standard signals are pending "
7567 "for a process, the order in which they are delivered is unspecified."
7568 msgstr ""
7569 "リアルタイムシグナルでは配送される順序が保証される。 同じタイプのリアルタイム"
7570 "シグナルは送信された順番に到着する。 異なるリアルタイムシグナルが一つのプロセ"
7571 "スに送信された場合、 番号の小さいシグナルから先に到着する。 (つまり小さい番号"
7572 "のシグナルが高い優先順位を持つ。)  対照的に、一つのプロセスに対して複数の標準"
7573 "シグナルが処理待ちとなった場合、 これらのシグナルが配送される順序は不定であ"
7574 "る。"
7575
7576 #. type: Plain text
7577 #: build/C/man7/signal.7:425
7578 msgid ""
7579 "If both standard and real-time signals are pending for a process, POSIX "
7580 "leaves it unspecified which is delivered first.  Linux, like many other "
7581 "implementations, gives priority to standard signals in this case."
7582 msgstr ""
7583 "一つのプロセスに対して標準シグナルとリアルタイムシグナルの両方が 処理待ちの場"
7584 "合、POSIX はどちらが先に配送されるかを規定していない。 Linux では、他の多くの"
7585 "実装と同様、このような場合には 標準シグナルが優先される。"
7586
7587 #. type: Plain text
7588 #: build/C/man7/signal.7:448
7589 msgid ""
7590 "According to POSIX, an implementation should permit at least "
7591 "B<_POSIX_SIGQUEUE_MAX> (32) real-time signals to be queued to a process.  "
7592 "However, Linux does things differently.  In kernels up to and including "
7593 "2.6.7, Linux imposes a system-wide limit on the number of queued real-time "
7594 "signals for all processes.  This limit can be viewed and (with privilege) "
7595 "changed via the I</proc/sys/kernel/rtsig-max> file.  A related file, I</proc/"
7596 "sys/kernel/rtsig-nr>, can be used to find out how many real-time signals are "
7597 "currently queued.  In Linux 2.6.8, these I</proc> interfaces were replaced "
7598 "by the B<RLIMIT_SIGPENDING> resource limit, which specifies a per-user limit "
7599 "for queued signals; see B<setrlimit>(2)  for further details."
7600 msgstr ""
7601 "POSIX によれば、1 プロセス毎に最低 B<_POSIX_SIGQUEUE_MAX> (32) 個のリアルタイ"
7602 "ムシグナルをキューに入れられるべきとしている。 しかし、 Linux では違った実装"
7603 "になっている。カーネル 2.6.7 までは (2.6.7 を含む)、全プロセスでキューに入っ"
7604 "ているリアルタイムシグナル の数の合計についてシステム全体での制限がある。 こ"
7605 "の制限は I</proc/sys/kernel/rtsig-max> ファイルで見ることができ、 (権限があれ"
7606 "ば) 変更もできる。 関係するファイルとして、 I</proc/sys/kernel/rtsig-nr> を見"
7607 "ることで、いくつのリアルタイムシグナルが現在キューに入っているかを 知ることが"
7608 "できる。 Linux 2.6.8 で、これらの I</proc> 経由のインターフェースは、 "
7609 "B<RLIMIT_SIGPENDING> リソース制限に置き換えられた。 これは、キューに入るシグ"
7610 "ナル数に関してユーザ単位に 上限を指定するものである。 詳しくは B<setrlimit>"
7611 "(2)  を参照。"
7612
7613 #. type: SS
7614 #: build/C/man7/signal.7:448
7615 #, no-wrap
7616 msgid "Async-signal-safe functions"
7617 msgstr "非同期シグナルで安全な関数 (async-signal-safe functions)"
7618
7619 #. type: Plain text
7620 #: build/C/man7/signal.7:457
7621 msgid ""
7622 "A signal handler function must be very careful, since processing elsewhere "
7623 "may be interrupted at some arbitrary point in the execution of the program.  "
7624 "POSIX has the concept of \"safe function\".  If a signal interrupts the "
7625 "execution of an unsafe function, and I<handler> calls an unsafe function, "
7626 "then the behavior of the program is undefined."
7627 msgstr ""
7628 "シグナルハンドラ関数には非常に注意しなければならない。 他の場所の処理はプログ"
7629 "ラム実行の任意の箇所で中断される可能性があるためである。 POSIX には「安全な関"
7630 "数 (safe function)」という概念がある。 シグナルが安全でない関数の実行を中断"
7631 "し、かつ I<handler> が安全でない関数を呼び出した場合、プログラムの挙動は未定"
7632 "義である。"
7633
7634 #. type: Plain text
7635 #: build/C/man7/signal.7:461
7636 msgid ""
7637 "POSIX.1-2004 (also known as POSIX.1-2001 Technical Corrigendum 2)  requires "
7638 "an implementation to guarantee that the following functions can be safely "
7639 "called inside a signal handler:"
7640 msgstr ""
7641 "POSIX.1-2004 (POSIX.1-2001 Technical Corrigendum (正誤表) 2 とも言う) では、 "
7642 "シグナルハンドラ内での安全な呼び出しを保証することが必須の関数として 以下が規"
7643 "定されている。"
7644
7645 #. type: Plain text
7646 #: build/C/man7/signal.7:582
7647 #, no-wrap
7648 msgid ""
7649 "_Exit()\n"
7650 "_exit()\n"
7651 "abort()\n"
7652 "accept()\n"
7653 "access()\n"
7654 "aio_error()\n"
7655 "aio_return()\n"
7656 "aio_suspend()\n"
7657 "alarm()\n"
7658 "bind()\n"
7659 "cfgetispeed()\n"
7660 "cfgetospeed()\n"
7661 "cfsetispeed()\n"
7662 "cfsetospeed()\n"
7663 "chdir()\n"
7664 "chmod()\n"
7665 "chown()\n"
7666 "clock_gettime()\n"
7667 "close()\n"
7668 "connect()\n"
7669 "creat()\n"
7670 "dup()\n"
7671 "dup2()\n"
7672 "execle()\n"
7673 "execve()\n"
7674 "fchmod()\n"
7675 "fchown()\n"
7676 "fcntl()\n"
7677 "fdatasync()\n"
7678 "fork()\n"
7679 "fpathconf()\n"
7680 "fstat()\n"
7681 "fsync()\n"
7682 "ftruncate()\n"
7683 "getegid()\n"
7684 "geteuid()\n"
7685 "getgid()\n"
7686 "getgroups()\n"
7687 "getpeername()\n"
7688 "getpgrp()\n"
7689 "getpid()\n"
7690 "getppid()\n"
7691 "getsockname()\n"
7692 "getsockopt()\n"
7693 "getuid()\n"
7694 "kill()\n"
7695 "link()\n"
7696 "listen()\n"
7697 "lseek()\n"
7698 "lstat()\n"
7699 "mkdir()\n"
7700 "mkfifo()\n"
7701 "open()\n"
7702 "pathconf()\n"
7703 "pause()\n"
7704 "pipe()\n"
7705 "poll()\n"
7706 "posix_trace_event()\n"
7707 "pselect()\n"
7708 "raise()\n"
7709 "read()\n"
7710 "readlink()\n"
7711 "recv()\n"
7712 "recvfrom()\n"
7713 "recvmsg()\n"
7714 "rename()\n"
7715 "rmdir()\n"
7716 "select()\n"
7717 "sem_post()\n"
7718 "send()\n"
7719 "sendmsg()\n"
7720 "sendto()\n"
7721 "setgid()\n"
7722 "setpgid()\n"
7723 "setsid()\n"
7724 "setsockopt()\n"
7725 "setuid()\n"
7726 "shutdown()\n"
7727 "sigaction()\n"
7728 "sigaddset()\n"
7729 "sigdelset()\n"
7730 "sigemptyset()\n"
7731 "sigfillset()\n"
7732 "sigismember()\n"
7733 "signal()\n"
7734 "sigpause()\n"
7735 "sigpending()\n"
7736 "sigprocmask()\n"
7737 "sigqueue()\n"
7738 "sigset()\n"
7739 "sigsuspend()\n"
7740 "sleep()\n"
7741 "sockatmark()\n"
7742 "socket()\n"
7743 "socketpair()\n"
7744 "stat()\n"
7745 "symlink()\n"
7746 "sysconf()\n"
7747 "tcdrain()\n"
7748 "tcflow()\n"
7749 "tcflush()\n"
7750 "tcgetattr()\n"
7751 "tcgetpgrp()\n"
7752 "tcsendbreak()\n"
7753 "tcsetattr()\n"
7754 "tcsetpgrp()\n"
7755 "time()\n"
7756 "timer_getoverrun()\n"
7757 "timer_gettime()\n"
7758 "timer_settime()\n"
7759 "times()\n"
7760 "umask()\n"
7761 "uname()\n"
7762 "unlink()\n"
7763 "utime()\n"
7764 "wait()\n"
7765 "waitpid()\n"
7766 "write()\n"
7767 msgstr ""
7768 "_Exit()\n"
7769 "_exit()\n"
7770 "abort()\n"
7771 "accept()\n"
7772 "access()\n"
7773 "aio_error()\n"
7774 "aio_return()\n"
7775 "aio_suspend()\n"
7776 "alarm()\n"
7777 "bind()\n"
7778 "cfgetispeed()\n"
7779 "cfgetospeed()\n"
7780 "cfsetispeed()\n"
7781 "cfsetospeed()\n"
7782 "chdir()\n"
7783 "chmod()\n"
7784 "chown()\n"
7785 "clock_gettime()\n"
7786 "close()\n"
7787 "connect()\n"
7788 "creat()\n"
7789 "dup()\n"
7790 "dup2()\n"
7791 "execle()\n"
7792 "execve()\n"
7793 "fchmod()\n"
7794 "fchown()\n"
7795 "fcntl()\n"
7796 "fdatasync()\n"
7797 "fork()\n"
7798 "fpathconf()\n"
7799 "fstat()\n"
7800 "fsync()\n"
7801 "ftruncate()\n"
7802 "getegid()\n"
7803 "geteuid()\n"
7804 "getgid()\n"
7805 "getgroups()\n"
7806 "getpeername()\n"
7807 "getpgrp()\n"
7808 "getpid()\n"
7809 "getppid()\n"
7810 "getsockname()\n"
7811 "getsockopt()\n"
7812 "getuid()\n"
7813 "kill()\n"
7814 "link()\n"
7815 "listen()\n"
7816 "lseek()\n"
7817 "lstat()\n"
7818 "mkdir()\n"
7819 "mkfifo()\n"
7820 "open()\n"
7821 "pathconf()\n"
7822 "pause()\n"
7823 "pipe()\n"
7824 "poll()\n"
7825 "posix_trace_event()\n"
7826 "pselect()\n"
7827 "raise()\n"
7828 "read()\n"
7829 "readlink()\n"
7830 "recv()\n"
7831 "recvfrom()\n"
7832 "recvmsg()\n"
7833 "rename()\n"
7834 "rmdir()\n"
7835 "select()\n"
7836 "sem_post()\n"
7837 "send()\n"
7838 "sendmsg()\n"
7839 "sendto()\n"
7840 "setgid()\n"
7841 "setpgid()\n"
7842 "setsid()\n"
7843 "setsockopt()\n"
7844 "setuid()\n"
7845 "shutdown()\n"
7846 "sigaction()\n"
7847 "sigaddset()\n"
7848 "sigdelset()\n"
7849 "sigemptyset()\n"
7850 "sigfillset()\n"
7851 "sigismember()\n"
7852 "signal()\n"
7853 "sigpause()\n"
7854 "sigpending()\n"
7855 "sigprocmask()\n"
7856 "sigqueue()\n"
7857 "sigset()\n"
7858 "sigsuspend()\n"
7859 "sleep()\n"
7860 "sockatmark()\n"
7861 "socket()\n"
7862 "socketpair()\n"
7863 "stat()\n"
7864 "symlink()\n"
7865 "sysconf()\n"
7866 "tcdrain()\n"
7867 "tcflow()\n"
7868 "tcflush()\n"
7869 "tcgetattr()\n"
7870 "tcgetpgrp()\n"
7871 "tcsendbreak()\n"
7872 "tcsetattr()\n"
7873 "tcsetpgrp()\n"
7874 "time()\n"
7875 "timer_getoverrun()\n"
7876 "timer_gettime()\n"
7877 "timer_settime()\n"
7878 "times()\n"
7879 "umask()\n"
7880 "uname()\n"
7881 "unlink()\n"
7882 "utime()\n"
7883 "wait()\n"
7884 "waitpid()\n"
7885 "write()\n"
7886
7887 #. type: Plain text
7888 #: build/C/man7/signal.7:587
7889 msgid ""
7890 "POSIX.1-2008 removes fpathconf(), pathconf(), and sysconf()  from the above "
7891 "list, and adds the following functions:"
7892 msgstr ""
7893 "POSIX.1-2008 では、上記のリストのうち fpathconf(), pathconf(), sysconf()  が"
7894 "削除され、以下の関数が追加された。"
7895
7896 #. type: Plain text
7897 #: build/C/man7/signal.7:610
7898 #, no-wrap
7899 msgid ""
7900 "execl()\n"
7901 "execv()\n"
7902 "faccessat()\n"
7903 "fchmodat()\n"
7904 "fchownat()\n"
7905 "fexecve()\n"
7906 "fstatat()\n"
7907 "futimens()\n"
7908 "linkat()\n"
7909 "mkdirat()\n"
7910 "mkfifoat()\n"
7911 "mknod()\n"
7912 "mknodat()\n"
7913 "openat()\n"
7914 "readlinkat()\n"
7915 "renameat()\n"
7916 "symlinkat()\n"
7917 "unlinkat()\n"
7918 "utimensat()\n"
7919 "utimes()\n"
7920 msgstr ""
7921 "execl()\n"
7922 "execv()\n"
7923 "faccessat()\n"
7924 "fchmodat()\n"
7925 "fchownat()\n"
7926 "fexecve()\n"
7927 "fstatat()\n"
7928 "futimens()\n"
7929 "linkat()\n"
7930 "mkdirat()\n"
7931 "mkfifoat()\n"
7932 "mknod()\n"
7933 "mknodat()\n"
7934 "openat()\n"
7935 "readlinkat()\n"
7936 "renameat()\n"
7937 "symlinkat()\n"
7938 "unlinkat()\n"
7939 "utimensat()\n"
7940 "utimes()\n"
7941
7942 #. type: SS
7943 #: build/C/man7/signal.7:612
7944 #, no-wrap
7945 msgid "Interruption of system calls and library functions by signal handlers"
7946 msgstr "シグナルハンドラによるシステムコールやライブラリ関数への割り込み"
7947
7948 #. type: Plain text
7949 #: build/C/man7/signal.7:615
7950 msgid ""
7951 "If a signal handler is invoked while a system call or library function call "
7952 "is blocked, then either:"
7953 msgstr ""
7954 "システムコールやライブラリが停止 (block) している間にシグナルハンドラが 起動"
7955 "されると、以下のどちらかとなる。"
7956
7957 #. type: Plain text
7958 #: build/C/man7/signal.7:617
7959 msgid ""
7960 "the call is automatically restarted after the signal handler returns; or"
7961 msgstr "シグナルが返った後、呼び出しは自動的に再スタートされる。"
7962
7963 #. type: Plain text
7964 #: build/C/man7/signal.7:620
7965 msgid "the call fails with the error B<EINTR>."
7966 msgstr "呼び出しはエラー B<EINTR> で失敗する。"
7967
7968 #. type: Plain text
7969 #: build/C/man7/signal.7:628
7970 msgid ""
7971 "Which of these two behaviors occurs depends on the interface and whether or "
7972 "not the signal handler was established using the B<SA_RESTART> flag (see "
7973 "B<sigaction>(2)).  The details vary across UNIX systems; below, the details "
7974 "for Linux."
7975 msgstr ""
7976 "これらの二つの挙動のうちどちらが起こるかは、インターフェイスにより依存し、 シ"
7977 "グナルハンドラが B<SA_RESTART> フラグ (B<sigaction>(2)  参照) を使って設定さ"
7978 "れていたかにも依存する。 詳細は UNIX システムによって異なる。 Linux における"
7979 "詳細を以下で説明する。"
7980
7981 #.  The following system calls use ERESTARTSYS,
7982 #.  so that they are restartable
7983 #. type: Plain text
7984 #: build/C/man7/signal.7:637
7985 msgid ""
7986 "If a blocked call to one of the following interfaces is interrupted by a "
7987 "signal handler, then the call will be automatically restarted after the "
7988 "signal handler returns if the B<SA_RESTART> flag was used; otherwise the "
7989 "call will fail with the error B<EINTR>:"
7990 msgstr ""
7991 "以下のインターフェイスのいずれかの呼び出しが停止している間に シグナルハンドラ"
7992 "により割り込まれた場合、 B<SA_RESTART> フラグが使用されていれば、シグナルハン"
7993 "ドラが返った後に その呼び出しは自動的に再スタートされることになる。 それ以外"
7994 "の場合は、その呼び出しはエラー B<EINTR> で失敗することになる。"
7995
7996 #. type: Plain text
7997 #: build/C/man7/signal.7:653
7998 msgid ""
7999 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), and B<ioctl>(2)  calls "
8000 "on \"slow\" devices.  A \"slow\" device is one where the I/O call may block "
8001 "for an indefinite time, for example, a terminal, pipe, or socket.  (A disk "
8002 "is not a slow device according to this definition.)  If an I/O call on a "
8003 "slow device has already transferred some data by the time it is interrupted "
8004 "by a signal handler, then the call will return a success status (normally, "
8005 "the number of bytes transferred)."
8006 msgstr ""
8007 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), B<ioctl>(2)  の「遅い "
8008 "(slow)」デバイスに対する呼び出し。 ここでいう「遅い」デバイスとは、I/O 呼び出"
8009 "しが無期限に停止 (block) する 可能性のあるデバイスのことで、例としては端末、"
8010 "パイプ、ソケットがある (この定義では、ディスクは遅いデバイスではない)。 遅い"
8011 "デバイスに対する I/O 呼び出しが、 シグナルハンドラにより割り込まれた時点まで"
8012 "に何らかのデータを すでに転送していれば、呼び出しは成功ステータス (通常は、転"
8013 "送されたバイト数) を返すことだろう。"
8014
8015 #. type: Plain text
8016 #: build/C/man7/signal.7:657
8017 msgid ""
8018 "B<open>(2), if it can block (e.g., when opening a FIFO; see B<fifo>(7))."
8019 msgstr ""
8020 "停止 (block) する可能性のある B<open>(2)  (例えば、FIFO のオープン時; B<fifo>"
8021 "(7)  参照)。"
8022
8023 #. type: Plain text
8024 #: build/C/man7/signal.7:664
8025 msgid "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), and B<waitpid>(2)."
8026 msgstr "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), B<waitpid>(2)."
8027
8028 #.  If a timeout (setsockopt()) is in effect on the socket, then these
8029 #.  system calls switch to using EINTR.  Consequently, they and are not
8030 #.  automatically restarted, and they show the stop/cont behavior
8031 #.  described below.  (Verified from 2.6.26 source, and by experiment; mtk)
8032 #. type: Plain text
8033 #: build/C/man7/signal.7:680
8034 msgid ""
8035 "Socket interfaces: B<accept>(2), B<connect>(2), B<recv>(2), B<recvfrom>(2), "
8036 "B<recvmsg>(2), B<send>(2), B<sendto>(2), and B<sendmsg>(2), unless a timeout "
8037 "has been set on the socket (see below)."
8038 msgstr ""
8039 "ソケットインターフェイス: B<accept>(2), B<connect>(2), B<recv>(2), "
8040 "B<recvfrom>(2), B<recvmsg>(2), B<send>(2), B<sendto>(2), B<sendmsg>(2).  但"
8041 "し、ソケットにタイムアウトが設定されていない場合 (下記参照)。"
8042
8043 #. type: Plain text
8044 #: build/C/man7/signal.7:686
8045 msgid "File locking interfaces: B<flock>(2)  and B<fcntl>(2)  B<F_SETLKW>."
8046 msgstr ""
8047 "ファイルロック用インターフェイス: B<flock>(2), B<fcntl>(2)  B<F_SETLKW>."
8048
8049 #. type: Plain text
8050 #: build/C/man7/signal.7:693
8051 msgid ""
8052 "POSIX message queue interfaces: B<mq_receive>(3), B<mq_timedreceive>(3), "
8053 "B<mq_send>(3), and B<mq_timedsend>(3)."
8054 msgstr ""
8055 "POSIX メッセージキューインターフェイス: B<mq_receive>(3), B<mq_timedreceive>"
8056 "(3), B<mq_send>(3), B<mq_timedsend>(3)."
8057
8058 #. type: Plain text
8059 #: build/C/man7/signal.7:698
8060 msgid ""
8061 "B<futex>(2)  B<FUTEX_WAIT> (since Linux 2.6.22; beforehand, always failed "
8062 "with B<EINTR>)."
8063 msgstr ""
8064 "B<futex>(2)  B<FUTEX_WAIT> (Linux 2.6.22 以降; それ以前は常に B<EINTR> で失敗"
8065 "していた)。"
8066
8067 #. type: Plain text
8068 #: build/C/man7/signal.7:705
8069 msgid ""
8070 "POSIX semaphore interfaces: B<sem_wait>(3)  and B<sem_timedwait>(3)  (since "
8071 "Linux 2.6.22; beforehand, always failed with B<EINTR>)."
8072 msgstr ""
8073 "POSIX セマフォインターフェイス: B<sem_wait>(3), B<sem_timedwait>(3)  (Linux "
8074 "2.6.22 以降; それ以前は常に B<EINTR> で失敗していた)。"
8075
8076 #.  These are the system calls that give EINTR or ERESTARTNOHAND
8077 #.  on interruption by a signal handler.
8078 #. type: Plain text
8079 #: build/C/man7/signal.7:716
8080 msgid ""
8081 "The following interfaces are never restarted after being interrupted by a "
8082 "signal handler, regardless of the use of B<SA_RESTART>; they always fail "
8083 "with the error B<EINTR> when interrupted by a signal handler:"
8084 msgstr ""
8085 "以下のインターフェイスは、 B<SA_RESTART> を使っているどうかに関わらず、シグナ"
8086 "ルハンドラにより割り込まれた後、 再スタートすることは決してない。 これらは、"
8087 "シグナルハンドラにより割り込まれると、常にエラー B<EINTR> で失敗する。"
8088
8089 #. type: Plain text
8090 #: build/C/man7/signal.7:736 build/C/man7/signal.7:810
8091 msgid ""
8092 "Socket interfaces, when a timeout has been set on the socket using "
8093 "B<setsockopt>(2): B<accept>(2), B<recv>(2), B<recvfrom>(2), and B<recvmsg>"
8094 "(2), if a receive timeout (B<SO_RCVTIMEO>)  has been set; B<connect>(2), "
8095 "B<send>(2), B<sendto>(2), and B<sendmsg>(2), if a send timeout "
8096 "(B<SO_SNDTIMEO>)  has been set."
8097 msgstr ""
8098 "B<setsockopt>(2)  を使ってタイムアウトが設定されているソケットインターフェー"
8099 "ス: B<accept>(2), B<recv>(2), B<recvfrom>(2), B<recvmsg>(2)  で受信タイムアウ"
8100 "ト (B<SO_RCVTIMEO>)  が設定されている場合と、 B<connect>(2), B<send>(2), "
8101 "B<sendto>(2), B<sendmsg>(2)  で送信タイムアウト (B<SO_SNDTIMEO>)  が設定され"
8102 "ている場合。"
8103
8104 #. type: Plain text
8105 #: build/C/man7/signal.7:743
8106 msgid ""
8107 "Interfaces used to wait for signals: B<pause>(2), B<sigsuspend>(2), "
8108 "B<sigtimedwait>(2), and B<sigwaitinfo>(2)."
8109 msgstr ""
8110 "シグナル待ちに使われるインターフェイス: B<pause>(2), B<sigsuspend>(2), "
8111 "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8112
8113 #. type: Plain text
8114 #: build/C/man7/signal.7:752
8115 msgid ""
8116 "File descriptor multiplexing interfaces: B<epoll_wait>(2), B<epoll_pwait>"
8117 "(2), B<poll>(2), B<ppoll>(2), B<select>(2), and B<pselect>(2)."
8118 msgstr ""
8119 "ファイルディスクリプタ多重インターフェイス: B<epoll_wait>(2), B<epoll_pwait>"
8120 "(2), B<poll>(2), B<ppoll>(2), B<select>(2), B<pselect>(2)."
8121
8122 #.  On some other systems, SA_RESTART does restart these system calls
8123 #. type: Plain text
8124 #: build/C/man7/signal.7:760
8125 msgid ""
8126 "System V IPC interfaces: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), and "
8127 "B<semtimedop>(2)."
8128 msgstr ""
8129 "System V IPC インターフェイス: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), "
8130 "B<semtimedop>(2)."
8131
8132 #. type: Plain text
8133 #: build/C/man7/signal.7:766
8134 msgid ""
8135 "Sleep interfaces: B<clock_nanosleep>(2), B<nanosleep>(2), and B<usleep>(3)."
8136 msgstr ""
8137 "スリープ用のインターフェイス: B<clock_nanosleep>(2), B<nanosleep>(2), "
8138 "B<usleep>(3)."
8139
8140 #. type: Plain text
8141 #: build/C/man7/signal.7:771 build/C/man7/signal.7:824
8142 msgid "B<read>(2)  from an B<inotify>(7)  file descriptor."
8143 msgstr "B<inotify>(7)  ファイルディスクリプタからの B<read>(2)."
8144
8145 #. type: Plain text
8146 #: build/C/man7/signal.7:773
8147 msgid "B<io_getevents>(2)."
8148 msgstr "B<io_getevents>(2)."
8149
8150 #. type: Plain text
8151 #: build/C/man7/signal.7:779
8152 msgid ""
8153 "The B<sleep>(3)  function is also never restarted if interrupted by a "
8154 "handler, but gives a success return: the number of seconds remaining to "
8155 "sleep."
8156 msgstr ""
8157 "B<sleep>(3)  関数も、ハンドラにより割り込まれた場合、決して再スタートされるこ"
8158 "とはない。 しかし、成功となり、残っている停止時間を返す。"
8159
8160 #. type: SS
8161 #: build/C/man7/signal.7:779
8162 #, no-wrap
8163 msgid "Interruption of system calls and library functions by stop signals"
8164 msgstr "一時停止シグナルによるシステムコールやライブラリ関数への割り込み"
8165
8166 #. type: Plain text
8167 #: build/C/man7/signal.7:788
8168 msgid ""
8169 "On Linux, even in the absence of signal handlers, certain blocking "
8170 "interfaces can fail with the error B<EINTR> after the process is stopped by "
8171 "one of the stop signals and then resumed via B<SIGCONT>.  This behavior is "
8172 "not sanctioned by POSIX.1, and doesn't occur on other systems."
8173 msgstr ""
8174 "Linux では、シグナルハンドラが設定されていない場合でも、 いくつかのブロッキン"
8175 "グ型のインターフェイスは、 プロセスが一時停止 (stop) シグナルの一つにより停止"
8176 "され、 B<SIGCONT> により再開された後に、エラー B<EINTR> で失敗する可能性があ"
8177 "る。 この挙動は POSIX.1 で認められておらず、他のシステムでは起こらない。"
8178
8179 #. type: Plain text
8180 #: build/C/man7/signal.7:790
8181 msgid "The Linux interfaces that display this behavior are:"
8182 msgstr "この挙動を示す Linux のインターフェイスは以下の通りである。"
8183
8184 #. type: Plain text
8185 #: build/C/man7/signal.7:813
8186 msgid "B<epoll_wait>(2), B<epoll_pwait>(2)."
8187 msgstr "B<epoll_wait>(2), B<epoll_pwait>(2)."
8188
8189 #. type: Plain text
8190 #: build/C/man7/signal.7:816
8191 msgid "B<semop>(2), B<semtimedop>(2)."
8192 msgstr "B<semop>(2), B<semtimedop>(2)."
8193
8194 #. type: Plain text
8195 #: build/C/man7/signal.7:819
8196 msgid "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8197 msgstr "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8198
8199 #. type: Plain text
8200 #: build/C/man7/signal.7:830
8201 msgid ""
8202 "Linux 2.6.21 and earlier: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
8203 "B<sem_wait>(3)."
8204 msgstr ""
8205 "Linux 2.6.21 以前: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
8206 "B<sem_wait>(3)."
8207
8208 #. type: Plain text
8209 #: build/C/man7/signal.7:834
8210 msgid "Linux 2.6.8 and earlier: B<msgrcv>(2), B<msgsnd>(2)."
8211 msgstr "Linux 2.6.8 以前: B<msgrcv>(2), B<msgsnd>(2)."
8212
8213 #. type: Plain text
8214 #: build/C/man7/signal.7:837
8215 msgid "Linux 2.4 and earlier: B<nanosleep>(2)."
8216 msgstr "Linux 2.4 以前: B<nanosleep>(2)."
8217
8218 #.  It must be a *very* long time since this was true:
8219 #.  .SH BUGS
8220 #.  .B SIGIO
8221 #.  and
8222 #.  .B SIGLOST
8223 #.  have the same value.
8224 #.  The latter is commented out in the kernel source, but
8225 #.  the build process of some software still thinks that
8226 #.  signal 29 is
8227 #.  .BR SIGLOST .
8228 #. type: Plain text
8229 #: build/C/man7/signal.7:850
8230 msgid "POSIX.1, except as noted."
8231 msgstr "POSIX.1 (注記した内容以外)。"
8232
8233 #. type: Plain text
8234 #: build/C/man7/signal.7:884
8235 msgid ""
8236 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), B<restart_syscall>"
8237 "(2), B<rt_sigqueueinfo>(2), B<setitimer>(2), B<setrlimit>(2), B<sgetmask>"
8238 "(2), B<sigaction>(2), B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), "
8239 "B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<sigwaitinfo>(2), "
8240 "B<abort>(3), B<bsd_signal>(3), B<longjmp>(3), B<raise>(3), "
8241 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<sigset>(3), B<sigsetops>(3), "
8242 "B<sigvec>(3), B<sigwait>(3), B<strsignal>(3), B<sysv_signal>(3), B<core>(5), "
8243 "B<proc>(5), B<pthreads>(7), B<sigevent>(7)"
8244 msgstr ""
8245 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), B<restart_syscall>"
8246 "(2), B<rt_sigqueueinfo>(2), B<setitimer>(2), B<setrlimit>(2), B<sgetmask>"
8247 "(2), B<sigaction>(2), B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), "
8248 "B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<sigwaitinfo>(2), "
8249 "B<abort>(3), B<bsd_signal>(3), B<longjmp>(3), B<raise>(3), "
8250 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<sigset>(3), B<sigsetops>(3), "
8251 "B<sigvec>(3), B<sigwait>(3), B<strsignal>(3), B<sysv_signal>(3), B<core>(5), "
8252 "B<proc>(5), B<pthreads>(7), B<sigevent>(7)"
8253
8254 #. type: TH
8255 #: build/C/man2/signalfd.2:20
8256 #, no-wrap
8257 msgid "SIGNALFD"
8258 msgstr "SIGNALFD"
8259
8260 #. type: TH
8261 #: build/C/man2/signalfd.2:20
8262 #, no-wrap
8263 msgid "2009-01-13"
8264 msgstr "2009-01-13"
8265
8266 #. type: Plain text
8267 #: build/C/man2/signalfd.2:23
8268 msgid "signalfd - create a file descriptor for accepting signals"
8269 msgstr "signalfd - シグナル受け付け用のファイルディスクリプタを生成する"
8270
8271 #. type: Plain text
8272 #: build/C/man2/signalfd.2:25
8273 msgid "B<#include E<lt>sys/signalfd.hE<gt>>"
8274 msgstr "B<#include E<lt>sys/signalfd.hE<gt>>"
8275
8276 #. type: Plain text
8277 #: build/C/man2/signalfd.2:27
8278 msgid ""
8279 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
8280 msgstr ""
8281 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
8282
8283 #. type: Plain text
8284 #: build/C/man2/signalfd.2:38
8285 msgid ""
8286 "B<signalfd>()  creates a file descriptor that can be used to accept signals "
8287 "targeted at the caller.  This provides an alternative to the use of a signal "
8288 "handler or B<sigwaitinfo>(2), and has the advantage that the file descriptor "
8289 "may be monitored by B<select>(2), B<poll>(2), and B<epoll>(7)."
8290 msgstr ""
8291 "B<signalfd>()  は、呼び出し元宛てのシグナルを受け付けるために使用されるファイ"
8292 "ル ディスクリプタを生成する。 この方法はシグナルハンドラや B<sigwaitinfo>"
8293 "(2)  を用いる方法の代わりとなるものであり、このファイルディスクリプタを "
8294 "B<select>(2), B<poll>(2), B<epoll>(7)  で監視できるという利点がある。"
8295
8296 #. type: Plain text
8297 #: build/C/man2/signalfd.2:58
8298 msgid ""
8299 "The I<mask> argument specifies the set of signals that the caller wishes to "
8300 "accept via the file descriptor.  This argument is a signal set whose "
8301 "contents can be initialized using the macros described in B<sigsetops>(3).  "
8302 "Normally, the set of signals to be received via the file descriptor should "
8303 "be blocked using B<sigprocmask>(2), to prevent the signals being handled "
8304 "according to their default dispositions.  It is not possible to receive "
8305 "B<SIGKILL> or B<SIGSTOP> signals via a signalfd file descriptor; these "
8306 "signals are silently ignored if specified in I<mask>."
8307 msgstr ""
8308 "I<mask> 引き数には、呼び出し元がこのファイルディスクリプタ経由で受け付けたい "
8309 "シグナル集合を指定する。この引き数で指定するシグナル集合の内容は、 "
8310 "B<sigsetops>(3)  で説明されているマクロを使って初期化することができる。 通"
8311 "常、ファイルディスクリプタ経由で受信するシグナル集合は、 そのシグナルがデフォ"
8312 "ルトの配送方法に基いて処理されるのを防ぐために、 B<sigprocmask>(2)  を使って"
8313 "ブロックしておくべきである。 シグナル B<SIGKILL> と B<SIGSTOP> を signalfd "
8314 "ファイルディスクリプタ経由で受信することはできない。 これらのシグナルが "
8315 "I<mask> で指定された場合には黙って無視される。"
8316
8317 #. type: Plain text
8318 #: build/C/man2/signalfd.2:72
8319 msgid ""
8320 "If the I<fd> argument is -1, then the call creates a new file descriptor and "
8321 "associates the signal set specified in I<mask> with that descriptor.  If "
8322 "I<fd> is not -1, then it must specify a valid existing signalfd file "
8323 "descriptor, and I<mask> is used to replace the signal set associated with "
8324 "that descriptor."
8325 msgstr ""
8326 "I<fd> 引き数が -1 の場合、 B<signalfd>()  は新しいファイルディスクリプタを生"
8327 "成し、 I<mask> で指定されたシグナル集合をそのファイルディスクリプタに関連付け"
8328 "る。 I<fd> 引き数が -1 以外の場合、 I<fd> には有効な既存の signalfd ファイル"
8329 "ディスクリプタを指定しなければならず、 そのディスクリプタに関連付けられている"
8330 "シグナル集合は I<mask> を使って置き換えられる。"
8331
8332 #. type: Plain text
8333 #: build/C/man2/signalfd.2:77
8334 msgid ""
8335 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
8336 "I<flags> to change the behaviour of B<signalfd>():"
8337 msgstr ""
8338 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
8339 "ることで、 B<signalfd>()  の振舞いを変更することができる。"
8340
8341 #. type: TP
8342 #: build/C/man2/signalfd.2:77
8343 #, no-wrap
8344 msgid "B<SFD_NONBLOCK>"
8345 msgstr "B<SFD_NONBLOCK>"
8346
8347 #. type: TP
8348 #: build/C/man2/signalfd.2:85
8349 #, no-wrap
8350 msgid "B<SFD_CLOEXEC>"
8351 msgstr "B<SFD_CLOEXEC>"
8352
8353 #. type: Plain text
8354 #: build/C/man2/signalfd.2:102
8355 msgid ""
8356 "B<signalfd>()  returns a file descriptor that supports the following "
8357 "operations:"
8358 msgstr ""
8359 "B<signalfd>()  が返すファイルディスクリプタは以下の操作をサポートしている。"
8360
8361 #. type: Plain text
8362 #: build/C/man2/signalfd.2:121
8363 msgid ""
8364 "If one or more of the signals specified in I<mask> is pending for the "
8365 "process, then the buffer supplied to B<read>(2)  is used to return one or "
8366 "more I<signalfd_siginfo> structures (see below) that describe the signals.  "
8367 "The B<read>(2)  returns information for as many signals as are pending and "
8368 "will fit in the supplied buffer.  The buffer must be at least I<sizeof"
8369 "(struct signalfd_siginfo)> bytes.  The return value of the B<read>(2)  is "
8370 "the total number of bytes read."
8371 msgstr ""
8372 "I<mask> に指定されているシグナルのうち一つ以上がそのプロセスに対して 処理待"
8373 "ち (pending) であれば、それらのシグナルの情報が B<read>(2)  に渡されたバッ"
8374 "ファを使って、 I<signalfd_siginfo> 構造体に格納されて返される。 B<read>(2)  "
8375 "は、バッファに格納可能な範囲でできるだけ多くの処理待ちのシグナルに ついての情"
8376 "報を返す。 バッファは最低でも I<sizeof(struct signalfd_siginfo)> バイトの大き"
8377 "さがなければならない。 B<read>(2)  の返り値は読み出されたトータルのバイト数で"
8378 "ある。"
8379
8380 #. type: Plain text
8381 #: build/C/man2/signalfd.2:129
8382 msgid ""
8383 "As a consequence of the B<read>(2), the signals are consumed, so that they "
8384 "are no longer pending for the process (i.e., will not be caught by signal "
8385 "handlers, and cannot be accepted using B<sigwaitinfo>(2))."
8386 msgstr ""
8387 "B<read>(2)  が行われた結果、シグナルは消費され、 これらのシグナルはそのプロセ"
8388 "スに対しては処理待ちではなくなる (つまり、シグナルハンドラで捕捉されることも"
8389 "なく、 B<sigwaitinfo>(2)  を使って受け取ることもできなくなる)。"
8390
8391 #. type: Plain text
8392 #: build/C/man2/signalfd.2:140
8393 msgid ""
8394 "If none of the signals in I<mask> is pending for the process, then the "
8395 "B<read>(2)  either blocks until one of the signals in I<mask> is generated "
8396 "for the process, or fails with the error B<EAGAIN> if the file descriptor "
8397 "has been made nonblocking."
8398 msgstr ""
8399 "I<mask> に指定されているシグナルがそのプロセスに対して一つも処理待ちでなけれ"
8400 "ば、 B<read>(2)  は、 I<mask> で指定されたシグナルのうちいずれか一つがそのプ"
8401 "ロセスに対して発生するまで 停止 (block) する、もしくはファイルディスクリプタ"
8402 "が非停止 (nonblocking)  に設定されている場合はエラー B<EAGAIN> で失敗する。"
8403
8404 #. type: Plain text
8405 #: build/C/man2/signalfd.2:153
8406 msgid ""
8407 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
8408 "B<poll>(2)  B<POLLIN> flag)  if one or more of the signals in I<mask> is "
8409 "pending for the process."
8410 msgstr ""
8411 "I<mask> に指定されたシグナルのうち一つ以上がそのプロセスに対して処理待ちであ"
8412 "れば、 ファイルディスクリプタは読み出し可能となる (B<select>(2)  の "
8413 "I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
8414
8415 #. type: Plain text
8416 #: build/C/man2/signalfd.2:160
8417 msgid ""
8418 "The signalfd file descriptor also supports the other file-descriptor "
8419 "multiplexing APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
8420 msgstr ""
8421 "signalfd ファイルディスクリプタは、これ以外のファイルディスクリプタ 多重 API "
8422 "である B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
8423
8424 #. type: Plain text
8425 #: build/C/man2/signalfd.2:165
8426 msgid ""
8427 "When the file descriptor is no longer required it should be closed.  When "
8428 "all file descriptors associated with the same signalfd object have been "
8429 "closed, the resources for object are freed by the kernel."
8430 msgstr ""
8431 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
8432 "る。 同じ signalfd オブジェクトに関連付けられたファイルディスクリプタが全て "
8433 "クローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
8434
8435 #. type: SS
8436 #: build/C/man2/signalfd.2:165
8437 #, no-wrap
8438 msgid "The signalfd_siginfo structure"
8439 msgstr "signalfd_siginfo 構造体"
8440
8441 #. type: Plain text
8442 #: build/C/man2/signalfd.2:171
8443 msgid ""
8444 "The format of the I<signalfd_siginfo> structure(s) returned by B<read>(2)s "
8445 "from a signalfd file descriptor is as follows:"
8446 msgstr ""
8447 "signalfd ファイルディスクリプタからの B<read>(2)  で返される "
8448 "I<signalfd_siginfo> 構造体のフォーマットは以下の通りである。"
8449
8450 #.  ssi_trapno is unused on most arches
8451 #.  FIXME Since Linux 2.6.37 there is 'uint16_t ssi_addr_lsb'
8452 #.  which is not yet documented
8453 #. type: Plain text
8454 #: build/C/man2/signalfd.2:198
8455 #, no-wrap
8456 msgid ""
8457 "struct signalfd_siginfo {\n"
8458 "    uint32_t ssi_signo;   /* Signal number */\n"
8459 "    int32_t  ssi_errno;   /* Error number (unused) */\n"
8460 "    int32_t  ssi_code;    /* Signal code */\n"
8461 "    uint32_t ssi_pid;     /* PID of sender */\n"
8462 "    uint32_t ssi_uid;     /* Real UID of sender */\n"
8463 "    int32_t  ssi_fd;      /* File descriptor (SIGIO) */\n"
8464 "    uint32_t ssi_tid;     /* Kernel timer ID (POSIX timers)\n"
8465 "    uint32_t ssi_band;    /* Band event (SIGIO) */\n"
8466 "    uint32_t ssi_overrun; /* POSIX timer overrun count */\n"
8467 "    uint32_t ssi_trapno;  /* Trap number that caused signal */\n"
8468 "    int32_t  ssi_status;  /* Exit status or signal (SIGCHLD) */\n"
8469 "    int32_t  ssi_int;     /* Integer sent by sigqueue(3) */\n"
8470 "    uint64_t ssi_ptr;     /* Pointer sent by sigqueue(3) */\n"
8471 "    uint64_t ssi_utime;   /* User CPU time consumed (SIGCHLD) */\n"
8472 "    uint64_t ssi_stime;   /* System CPU time consumed (SIGCHLD) */\n"
8473 "    uint64_t ssi_addr;    /* Address that generated signal\n"
8474 "                             (for hardware-generated signals) */\n"
8475 "    uint8_t  pad[I<X>];      /* Pad size to 128 bytes (allow for\n"
8476 "                              additional fields in the future) */\n"
8477 "};\n"
8478 msgstr ""
8479 "struct signalfd_siginfo {\n"
8480 "struct signalfd_siginfo {\n"
8481 "    uint32_t ssi_signo;   /* シグナル番号 */\n"
8482 "    int32_t  ssi_errno;   /* エラー番号 (未使用) */\n"
8483 "    int32_t  ssi_code;    /* シグナルコード */\n"
8484 "    uint32_t ssi_pid;     /* 送信元の PID */\n"
8485 "    uint32_t ssi_uid;     /* 送信元の実 UID */\n"
8486 "    int32_t  ssi_fd;      /* ファイルディスクリプタ (SIGIO) */\n"
8487 "    uint32_t ssi_tid;     /* カーネルタイマ ID (POSIX タイマ)\n"
8488 "    uint32_t ssi_band;    /* Band イベント (SIGIO) */\n"
8489 "    uint32_t ssi_overrun; /* POSIX タイマのオーバーラン回数 */\n"
8490 "    uint32_t ssi_trapno;  /* シグナルの原因となったトラップ番号 */\n"
8491 "    int32_t  ssi_status;  /* 終了ステータスかシグナル (SIGCHLD) */\n"
8492 "    int32_t  ssi_int;     /* sigqueue(3) から送られた整数 */\n"
8493 "    uint64_t ssi_ptr;     /* sigqueue(3) から送られたポインタ */\n"
8494 "    uint64_t ssi_utime;   /* 消費したユーザ CPU 時間 (SIGCHLD) */\n"
8495 "    uint64_t ssi_stime;   /* 消費したシステム CPU 時間 (SIGCHLD) */\n"
8496 "    uint64_t ssi_addr;    /* シグナルを生成したアドレス\n"
8497 "                             (ハードウェアが生成したシグナルの場合) */\n"
8498 "    uint8_t  pad[I<X>];      /* pad の大きさは 128 バイト\n"
8499 "                             (将来のフィールド追加用の場所の確保) */\n"
8500 "};\n"
8501
8502 #. type: Plain text
8503 #: build/C/man2/signalfd.2:221
8504 msgid ""
8505 "Each of the fields in this structure is analogous to the similarly named "
8506 "field in the I<siginfo_t> structure.  The I<siginfo_t> structure is "
8507 "described in B<sigaction>(2).  Not all fields in the returned "
8508 "I<signalfd_siginfo> structure will be valid for a specific signal; the set "
8509 "of valid fields can be determined from the value returned in the I<ssi_code> "
8510 "field.  This field is the analog of the I<siginfo_t> I<si_code> field; see "
8511 "B<sigaction>(2)  for details."
8512 msgstr ""
8513 "I<signalfd_siginfo> 構造体の各フィールドは、 I<siginfo_t> 構造体の同じような"
8514 "名前のフィールドと同様である。 I<siginfo_t> 構造体については B<sigaction>"
8515 "(2)  に説明がある。 返された I<signalfd_siginfo> 構造体の全てのフィールドがあ"
8516 "るシグナルに対して有効なわけではない。 どのフィールドが有効かは、 "
8517 "I<ssi_code> フィールドで返される値から判定することができる。 このフィールド"
8518 "は I<siginfo_t> の I<si_code> フィールドと同様である。詳細は B<sigaction>"
8519 "(2)  を参照。"
8520
8521 #. type: SS
8522 #: build/C/man2/signalfd.2:221 build/C/man2/timerfd_create.2:269
8523 #, no-wrap
8524 msgid "fork(2) semantics"
8525 msgstr "fork(2) での扱い"
8526
8527 #. type: Plain text
8528 #: build/C/man2/signalfd.2:229
8529 msgid ""
8530 "After a B<fork>(2), the child inherits a copy of the signalfd file "
8531 "descriptor.  A B<read>(2)  from the file descriptor in the child will return "
8532 "information about signals queued to the child."
8533 msgstr ""
8534 "B<fork>(2)  が行われると、子プロセスは signalfd ファイルディスクリプタのコ"
8535 "ピーを 継承する。 子プロセスでこのファイルディスクリプタから B<read>(2)  を行"
8536 "うと、子プロセスに対するキューに入っているシグナルに関する 情報が返される。"
8537
8538 #. type: SS
8539 #: build/C/man2/signalfd.2:229 build/C/man2/timerfd_create.2:281
8540 #, no-wrap
8541 msgid "execve(2) semantics"
8542 msgstr "execve(2) での扱い"
8543
8544 #. type: Plain text
8545 #: build/C/man2/signalfd.2:241
8546 msgid ""
8547 "Just like any other file descriptor, a signalfd file descriptor remains open "
8548 "across an B<execve>(2), unless it has been marked for close-on-exec (see "
8549 "B<fcntl>(2)).  Any signals that were available for reading before the "
8550 "B<execve>(2)  remain available to the newly loaded program.  (This is "
8551 "analogous to traditional signal semantics, where a blocked signal that is "
8552 "pending remains pending across an B<execve>(2).)"
8553 msgstr ""
8554 "他のファイルディスクリプタと全く同様に、 signalfd ファイルディスクリプタも "
8555 "B<execve>(2)  の前後でオープンされたままとなる。但し、そのファイルディスクリ"
8556 "プタに close-on-exec のマーク (B<fcntl>(2)  参照) が付いている場合はクローズ"
8557 "される。 B<execve>(2)  の前に読み出し可能となっていた全てのシグナルは新しく起"
8558 "動されたプログラム でも引き続き読み出し可能である (これは伝統的なシグナルの扱"
8559 "いと同じであり、 処理待ちのブロックされたシグナルは B<execve>(2)  の前後で処"
8560 "理待ちのままとなる)。"
8561
8562 #. type: SS
8563 #: build/C/man2/signalfd.2:241
8564 #, no-wrap
8565 msgid "Thread semantics"
8566 msgstr "スレッドでの扱い"
8567
8568 #. type: Plain text
8569 #: build/C/man2/signalfd.2:251
8570 msgid ""
8571 "The semantics of signalfd file descriptors in a multithreaded program mirror "
8572 "the standard semantics for signals.  In other words, when a thread reads "
8573 "from a signalfd file descriptor, it will read the signals that are directed "
8574 "to the thread itself and the signals that are directed to the process (i.e., "
8575 "the entire thread group).  (A thread will not be able to read signals that "
8576 "are directed to other threads in the process.)"
8577 msgstr ""
8578 "マルチスレッドプログラムにおける signalfd ファイルディスクリプタの扱いは シグ"
8579 "ナルの標準的な扱いと全く同じである。 言い換えると、あるスレッドが signalfd "
8580 "ファイルディスクリプタから 読み出しを行うと、そのスレッド自身宛てのシグナルと"
8581 "プロセス (すなわち スレッドグループ全体) 宛てのシグナルが読み出される。 (ス"
8582 "レッドは同じプロセスの他のスレッド宛てのシグナルを読み出すことはできない。)"
8583
8584 #. type: Plain text
8585 #: build/C/man2/signalfd.2:265
8586 msgid ""
8587 "On success, B<signalfd>()  returns a signalfd file descriptor; this is "
8588 "either a new file descriptor (if I<fd> was -1), or I<fd> if I<fd> was a "
8589 "valid signalfd file descriptor.  On error, -1 is returned and I<errno> is "
8590 "set to indicate the error."
8591 msgstr ""
8592 "成功すると、 B<signalfd>()  は signalfd ファイルディスクリプタを返す。 返され"
8593 "るファイルディスクリプタは、 I<fd> が -1 の場合は新規のファイルディスクリプタ"
8594 "であり、 I<fd> が有効な signalfd ファイルディスクリプタだった場合は I<fd> 自"
8595 "身である。 エラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
8596
8597 #. type: TP
8598 #: build/C/man2/signalfd.2:266 build/C/man2/timerfd_create.2:338
8599 #, no-wrap
8600 msgid "B<EBADF>"
8601 msgstr "B<EBADF>"
8602
8603 #. type: Plain text
8604 #: build/C/man2/signalfd.2:271
8605 msgid "The I<fd> file descriptor is not a valid file descriptor."
8606 msgstr "ファイルディスクリプタ I<fd> が有効なファイルディスクリプタでない。"
8607
8608 #.  or, the
8609 #.  .I sizemask
8610 #.  argument is not equal to
8611 #.  .IR sizeof(sigset_t) ;
8612 #. type: Plain text
8613 #: build/C/man2/signalfd.2:279
8614 msgid "I<fd> is not a valid signalfd file descriptor."
8615 msgstr "I<fd> が有効な signalfd ファイルディスクリプタではない。"
8616
8617 #. type: Plain text
8618 #: build/C/man2/signalfd.2:286 build/C/man2/timerfd_create.2:320
8619 msgid ""
8620 "I<flags> is invalid; or, in Linux 2.6.26 or earlier, I<flags> is nonzero."
8621 msgstr ""
8622 "I<flags> が無効である。もしくは、Linux 2.6.26 以前の場合には I<flags> が 0 以"
8623 "外である。"
8624
8625 #. type: Plain text
8626 #: build/C/man2/signalfd.2:289 build/C/man2/timerfd_create.2:323
8627 msgid "The per-process limit of open file descriptors has been reached."
8628 msgstr ""
8629 "オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。"
8630
8631 #. type: Plain text
8632 #: build/C/man2/signalfd.2:299
8633 msgid "There was insufficient memory to create a new signalfd file descriptor."
8634 msgstr ""
8635 "新しい signalfd ファイルディスクリプタを生成するのに十分なメモリがなかった。"
8636
8637 #.  signalfd() is in glibc 2.7, but reportedly does not build
8638 #. type: Plain text
8639 #: build/C/man2/signalfd.2:307
8640 msgid ""
8641 "B<signalfd>()  is available on Linux since kernel 2.6.22.  Working support "
8642 "is provided in glibc since version 2.8.  The B<signalfd4>()  system call "
8643 "(see NOTES) is available on Linux since kernel 2.6.27."
8644 msgstr ""
8645 "B<signalfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
8646 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<signalfd4>()  "
8647 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
8648 "る。"
8649
8650 #. type: Plain text
8651 #: build/C/man2/signalfd.2:312
8652 msgid "B<signalfd>()  and B<signalfd4>()  are Linux-specific."
8653 msgstr "B<signalfd>()  と B<signalfd4>()  は Linux 固有である。"
8654
8655 #. type: Plain text
8656 #: build/C/man2/signalfd.2:322
8657 msgid ""
8658 "The underlying Linux system call requires an additional argument, I<size_t "
8659 "sizemask>, which specifies the size of the I<mask> argument.  The glibc "
8660 "B<signalfd>()  wrapper function does not include this argument, since it "
8661 "provides the required value for the underlying system call."
8662 msgstr ""
8663 "実際の Linux のシステムコールでは I<size_t sizemask> という引き数が追加で必要"
8664 "である。この引き数で I<mask> のサイズを指定する。 glibc の B<signalfd>()  "
8665 "ラッパー関数にはこの引き数は含まれず、 ラッパー関数が必要な値を計算して内部で"
8666 "呼び出すシステムコールに提供する。"
8667
8668 #. type: Plain text
8669 #: build/C/man2/signalfd.2:336
8670 msgid ""
8671 "A process can create multiple signalfd file descriptors.  This makes it "
8672 "possible to accept different signals on different file descriptors.  (This "
8673 "may be useful if monitoring the file descriptors using B<select>(2), B<poll>"
8674 "(2), or B<epoll>(7): the arrival of different signals will make different "
8675 "descriptors ready.)  If a signal appears in the I<mask> of more than one of "
8676 "the file descriptors, then occurrences of that signal can be read (once) "
8677 "from any one of the descriptors."
8678 msgstr ""
8679 "一つのプロセスは複数の signalfd ファイルディスクリプタを生成することができ"
8680 "る。 これにより、異なるファイルディスクリプタで異なるシグナルを受け取ること"
8681 "が できる (この機能は B<select>(2), B<poll>(2), B<epoll>(7)  を使ってファイル"
8682 "ディスクリプタを監視する場合に有用かもしれない。 異なるシグナルが到着すると、"
8683 "異なるファイルディスクリプタが利用可能に なるからだ)。 一つのシグナルが二つ以"
8684 "上のファイルディスクリプタの I<mask> に含まれている場合、そのシグナルの発生は"
8685 "そのシグナルを I<mask> に含むファイルディスクリプタのうちいずれか一つから読み"
8686 "出すことができる。"
8687
8688 #. type: Plain text
8689 #: build/C/man2/signalfd.2:352
8690 msgid ""
8691 "There are two underlying Linux system calls: B<signalfd>()  and the more "
8692 "recent B<signalfd4>().  The former system call does not implement a I<flags> "
8693 "argument.  The latter system call implements the I<flags> values described "
8694 "above.  Starting with glibc 2.9, the B<signalfd>()  wrapper function will "
8695 "use B<signalfd4>()  where it is available."
8696 msgstr ""
8697 "下層にある Linux システムコールは二種類あり、 B<signalfd>()  と、もっと新し"
8698 "い B<signalfd4>()  である。 B<signalfd>()  は I<flags> 引き数を実装していな"
8699 "い。 B<signalfd4>()  では上記の値の I<flags> が実装されている。 glibc 2.9 以"
8700 "降では、 B<signalfd>()  のラッパー関数は、 B<signalfd4>()  が利用可能であれ"
8701 "ば、これを使用する。"
8702
8703 #.  The fix also was put into 2.6.24.5
8704 #. type: Plain text
8705 #: build/C/man2/signalfd.2:360
8706 msgid ""
8707 "In kernels before 2.6.25, the I<ssi_ptr> and I<ssi_int> fields are not "
8708 "filled in with the data accompanying a signal sent by B<sigqueue>(3)."
8709 msgstr ""
8710 "カーネル 2.6.25 より前では、 B<sigqueue>(3)  により送信されたシグナルと一緒に"
8711 "渡されるデータでは、フィールド I<ssi_ptr> と I<ssi_int> は設定されない。"
8712
8713 #. type: Plain text
8714 #: build/C/man2/signalfd.2:370
8715 msgid ""
8716 "The program below accepts the signals B<SIGINT> and B<SIGQUIT> via a "
8717 "signalfd file descriptor.  The program terminates after accepting a "
8718 "B<SIGQUIT> signal.  The following shell session demonstrates the use of the "
8719 "program:"
8720 msgstr ""
8721 "下記のプログラムは、シグナル B<SIGINT> と B<SIGQUIT> を signalfd ファイルディ"
8722 "スクリプタ経由で受信する。 シグナル B<SIGQUIT> 受信後にプログラムは終了す"
8723 "る。 以下に示すシェルセッションにこのプログラムの使い方を示す。"
8724
8725 #. type: Plain text
8726 #: build/C/man2/signalfd.2:381
8727 #, no-wrap
8728 msgid ""
8729 "$B< ./signalfd_demo>\n"
8730 "B<^C>                   # Control-C generates SIGINT\n"
8731 "Got SIGINT\n"
8732 "B<^C>\n"
8733 "Got SIGINT\n"
8734 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
8735 "Got SIGQUIT\n"
8736 "$\n"
8737 msgstr ""
8738 "$B< ./signalfd_demo>\n"
8739 "B<^C>                   # Control-C generates SIGINT\n"
8740 "Got SIGINT\n"
8741 "B<^C>\n"
8742 "Got SIGINT\n"
8743 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
8744 "Got SIGQUIT\n"
8745 "$\n"
8746
8747 #. type: Plain text
8748 #: build/C/man2/signalfd.2:391
8749 #, no-wrap
8750 msgid ""
8751 "#include E<lt>sys/signalfd.hE<gt>\n"
8752 "#include E<lt>signal.hE<gt>\n"
8753 "#include E<lt>unistd.hE<gt>\n"
8754 "#include E<lt>stdlib.hE<gt>\n"
8755 "#include E<lt>stdio.hE<gt>\n"
8756 msgstr ""
8757 "#include E<lt>sys/signalfd.hE<gt>\n"
8758 "#include E<lt>signal.hE<gt>\n"
8759 "#include E<lt>unistd.hE<gt>\n"
8760 "#include E<lt>stdlib.hE<gt>\n"
8761 "#include E<lt>stdio.hE<gt>\n"
8762
8763 #. type: Plain text
8764 #: build/C/man2/signalfd.2:402
8765 #, no-wrap
8766 msgid ""
8767 "int\n"
8768 "main(int argc, char *argv[])\n"
8769 "{\n"
8770 "    sigset_t mask;\n"
8771 "    int sfd;\n"
8772 "    struct signalfd_siginfo fdsi;\n"
8773 "    ssize_t s;\n"
8774 msgstr ""
8775 "int\n"
8776 "main(int argc, char *argv[])\n"
8777 "{\n"
8778 "    sigset_t mask;\n"
8779 "    int sfd;\n"
8780 "    struct signalfd_siginfo fdsi;\n"
8781 "    ssize_t s;\n"
8782
8783 #. type: Plain text
8784 #: build/C/man2/signalfd.2:406
8785 #, no-wrap
8786 msgid ""
8787 "    sigemptyset(&mask);\n"
8788 "    sigaddset(&mask, SIGINT);\n"
8789 "    sigaddset(&mask, SIGQUIT);\n"
8790 msgstr ""
8791 "    sigemptyset(&mask);\n"
8792 "    sigaddset(&mask, SIGINT);\n"
8793 "    sigaddset(&mask, SIGQUIT);\n"
8794
8795 #. type: Plain text
8796 #: build/C/man2/signalfd.2:409
8797 #, no-wrap
8798 msgid ""
8799 "    /* Block signals so that they aren\\(aqt handled\n"
8800 "       according to their default dispositions */\n"
8801 msgstr ""
8802 "    /* Block signals so that they aren\\(aqt handled\n"
8803 "       according to their default dispositions */\n"
8804
8805 #. type: Plain text
8806 #: build/C/man2/signalfd.2:412
8807 #, no-wrap
8808 msgid ""
8809 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
8810 "        handle_error(\"sigprocmask\");\n"
8811 msgstr ""
8812 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
8813 "        handle_error(\"sigprocmask\");\n"
8814
8815 #. type: Plain text
8816 #: build/C/man2/signalfd.2:416
8817 #, no-wrap
8818 msgid ""
8819 "    sfd = signalfd(-1, &mask, 0);\n"
8820 "    if (sfd == -1)\n"
8821 "        handle_error(\"signalfd\");\n"
8822 msgstr ""
8823 "    sfd = signalfd(-1, &mask, 0);\n"
8824 "    if (sfd == -1)\n"
8825 "        handle_error(\"signalfd\");\n"
8826
8827 #. type: Plain text
8828 #: build/C/man2/signalfd.2:421
8829 #, no-wrap
8830 msgid ""
8831 "    for (;;) {\n"
8832 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
8833 "        if (s != sizeof(struct signalfd_siginfo))\n"
8834 "            handle_error(\"read\");\n"
8835 msgstr ""
8836 "    for (;;) {\n"
8837 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
8838 "        if (s != sizeof(struct signalfd_siginfo))\n"
8839 "            handle_error(\"read\");\n"
8840
8841 #. type: Plain text
8842 #: build/C/man2/signalfd.2:432
8843 #, no-wrap
8844 msgid ""
8845 "        if (fdsi.ssi_signo == SIGINT) {\n"
8846 "            printf(\"Got SIGINT\\en\");\n"
8847 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
8848 "            printf(\"Got SIGQUIT\\en\");\n"
8849 "            exit(EXIT_SUCCESS);\n"
8850 "        } else {\n"
8851 "            printf(\"Read unexpected signal\\en\");\n"
8852 "        }\n"
8853 "    }\n"
8854 "}\n"
8855 msgstr ""
8856 "        if (fdsi.ssi_signo == SIGINT) {\n"
8857 "            printf(\"Got SIGINT\\en\");\n"
8858 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
8859 "            printf(\"Got SIGQUIT\\en\");\n"
8860 "            exit(EXIT_SUCCESS);\n"
8861 "        } else {\n"
8862 "            printf(\"Read unexpected signal\\en\");\n"
8863 "        }\n"
8864 "    }\n"
8865 "}\n"
8866
8867 #. type: Plain text
8868 #: build/C/man2/signalfd.2:446
8869 msgid ""
8870 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
8871 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
8872 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
8873 msgstr ""
8874 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
8875 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
8876 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
8877
8878 #. type: TH
8879 #: build/C/man3/sigpause.3:25
8880 #, no-wrap
8881 msgid "SIGPAUSE"
8882 msgstr "SIGPAUSE"
8883
8884 #. type: TH
8885 #: build/C/man3/sigpause.3:25
8886 #, no-wrap
8887 msgid "2010-09-12"
8888 msgstr "2010-09-12"
8889
8890 #. type: Plain text
8891 #: build/C/man3/sigpause.3:28
8892 msgid "sigpause - atomically release blocked signals and wait for interrupt"
8893 msgstr "sigpause - ブロックされたシグナルをアトミックに解放して割り込みを待つ"
8894
8895 #. type: Plain text
8896 #: build/C/man3/sigpause.3:33
8897 #, no-wrap
8898 msgid "B<int sigpause(int >I<sigmask>B<);  /* BSD */>\n"
8899 msgstr "B<int sigpause(int >I<sigmask>B<);  /* BSD */>\n"
8900
8901 #. type: Plain text
8902 #: build/C/man3/sigpause.3:35
8903 #, no-wrap
8904 msgid "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
8905 msgstr "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
8906
8907 #. type: Plain text
8908 #: build/C/man3/sigpause.3:41
8909 msgid "Don't use this function.  Use B<sigsuspend>(2)  instead."
8910 msgstr "この関数を使わないこと。 代わりに B<sigsuspend>(2)  を使うこと。"
8911
8912 #. type: Plain text
8913 #: build/C/man3/sigpause.3:48
8914 msgid ""
8915 "The function B<sigpause>()  is designed to wait for some signal.  It changes "
8916 "the process's signal mask (set of blocked signals), and then waits for a "
8917 "signal to arrive.  Upon arrival of a signal, the original signal mask is "
8918 "restored."
8919 msgstr ""
8920 "関数 B<sigpause>()  はシグナルを待つように設計されている。 この関数はプロセス"
8921 "のシグナルマスク (ブロックされたシグナルのセット) を変更し、 シグナルが到着す"
8922 "るのを待つ。 シグナルが到着すると、シグナルマスクは元に戻される。"
8923
8924 #. type: Plain text
8925 #: build/C/man3/sigpause.3:56
8926 msgid ""
8927 "If B<sigpause>()  returns, it was interrupted by a signal and the return "
8928 "value is -1 with I<errno> set to B<EINTR>."
8929 msgstr ""
8930 "B<sigpause>()  が返った場合、この関数はシグナルによって割り込まれている。 返"
8931 "り値は -1 で、 I<errno> は B<EINTR> に設定される。"
8932
8933 #. type: Plain text
8934 #: build/C/man3/sigpause.3:60
8935 msgid "The System V version of B<sigpause>()  is standardized in POSIX.1-2001."
8936 msgstr "System V 版の B<sigpause>()  は POSIX.1-2001 で標準化されている。"
8937
8938 #.  __xpg_sigpause: UNIX 95, spec 1170, SVID, SVr4, XPG
8939 #. type: Plain text
8940 #: build/C/man3/sigpause.3:77
8941 msgid ""
8942 "The classical BSD version of this function appeared in 4.2BSD.  It sets the "
8943 "process's signal mask to I<sigmask>.  UNIX 95 standardized the incompatible "
8944 "System V version of this function, which removes only the specified signal "
8945 "I<sig> from the process's signal mask.  The unfortunate situation with two "
8946 "incompatible functions with the same name was solved by the B<\\%sigsuspend>"
8947 "(2)  function, that takes a I<sigset_t\\ *> argument (instead of an I<int>)."
8948 msgstr ""
8949 "この関数の古典的な BSD 版は 4.2BSD で登場した。 この関数はプロセスのシグナル"
8950 "マスクを I<sigmask> に設定する。 UNIX 95 では BSD 版と互換性のない System V "
8951 "版のこの関数が標準化された。 UNIX 95 版は、指定されたシグナル I<sig> をプロセ"
8952 "スのシグナルマスクから削除するだけである。 同じ名前で互換性のない 2 つの関数"
8953 "があるという不幸な事態は、 B<\\%sigsuspend>(2)  関数によって解消された。 この"
8954 "関数は (I<int> の代わりに)  B<sigset_t\\ *> 引き数をとる。"
8955
8956 #. type: Plain text
8957 #: build/C/man3/sigpause.3:80
8958 msgid ""
8959 "On Linux, this routine is a system call only on the Sparc (sparc64)  "
8960 "architecture."
8961 msgstr ""
8962 "Linux では、このルーチンは Sparc (sparc64) アーキテクチャでのみ システムコー"
8963 "ルとなっている。"
8964
8965 #. type: Plain text
8966 #: build/C/man3/sigpause.3:82
8967 msgid "Libc4 and libc5 know only about the BSD version."
8968 msgstr "libc4 と libc5 には BSD 版しかない。"
8969
8970 #.  For the BSD version, one usually uses a zero
8971 #.  .I sigmask
8972 #.  to indicate that no signals are to be blocked.
8973 #. type: Plain text
8974 #: build/C/man3/sigpause.3:98
8975 msgid ""
8976 "Glibc uses the BSD version if the B<_BSD_SOURCE> feature test macro is "
8977 "defined and none of B<_POSIX_SOURCE>, B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, "
8978 "B<_GNU_SOURCE>, or B<_SVID_SOURCE> is defined.  Otherwise, the System V "
8979 "version is used."
8980 msgstr ""
8981 "機能検査マクロ B<_BSD_SOURCE> が定義され、 B<_POSIX_SOURCE>, "
8982 "B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, B<_GNU_SOURCE>, B<_SVID_SOURCE> のいず"
8983 "れも定義されていない場合、 glibc は BSD 版を使う。 それ以外の場合には、"
8984 "System V 版を使用する。"
8985
8986 #. type: Plain text
8987 #: build/C/man3/sigpause.3:106
8988 msgid ""
8989 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<sigblock>"
8990 "(3), B<sigvec>(3), B<feature_test_macros>(7)"
8991 msgstr ""
8992 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<sigblock>"
8993 "(3), B<sigvec>(3), B<feature_test_macros>(7)"
8994
8995 #. type: TH
8996 #: build/C/man2/sigpending.2:29
8997 #, no-wrap
8998 msgid "SIGPENDING"
8999 msgstr "SIGPENDING"
9000
9001 #. type: Plain text
9002 #: build/C/man2/sigpending.2:32
9003 msgid "sigpending - examine pending signals"
9004 msgstr "sigpending - 処理待ちのシグナルの検査"
9005
9006 #. type: Plain text
9007 #: build/C/man2/sigpending.2:36
9008 msgid "B<int sigpending(sigset_t *>I<set>B<);>"
9009 msgstr "B<int sigpending(sigset_t *>I<set>B<);>"
9010
9011 #. type: Plain text
9012 #: build/C/man2/sigpending.2:45
9013 msgid ""
9014 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9015 "_POSIX_SOURCE"
9016 msgstr ""
9017 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9018 "_POSIX_SOURCE"
9019
9020 #. type: Plain text
9021 #: build/C/man2/sigpending.2:53
9022 msgid ""
9023 "B<sigpending>()  returns the set of signals that are pending for delivery to "
9024 "the calling thread (i.e., the signals which have been raised while "
9025 "blocked).  The mask of pending signals is returned in I<set>."
9026 msgstr ""
9027 "B<sigpending>()  は、呼び出し元のスレッドへの配送を待っている (pending) シグ"
9028 "ナル集合 (すなわち、禁止中に発生したシグナル) を返す。 処理待ちのシグナルのマ"
9029 "スクが I<set> に格納される。"
9030
9031 #. type: Plain text
9032 #: build/C/man2/sigpending.2:59
9033 msgid ""
9034 "B<sigpending>()  returns 0 on success and -1 on error.  In the event of an "
9035 "error, I<errno> is set to indicate the cause."
9036 msgstr ""
9037 "B<sigpending>() は成功した場合 0 を返す。 エラーの場合、 -1 を返し、I<errno> "
9038 "にエラーの原因を示す値を設定する。"
9039
9040 #. type: Plain text
9041 #: build/C/man2/sigpending.2:64
9042 msgid ""
9043 "I<set> points to memory which is not a valid part of the process address "
9044 "space."
9045 msgstr ""
9046 "I<set> が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。"
9047
9048 #. type: Plain text
9049 #: build/C/man2/sigpending.2:75
9050 msgid ""
9051 "The set of signals that is pending for a thread is the union of the set of "
9052 "signals that is pending for that thread and the set of signals that is "
9053 "pending for the process as a whole; see B<signal>(7)."
9054 msgstr ""
9055 "あるスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体への処理待ち"
9056 "のシグナル集合と、プロセス全体への処理待ちの シグナル集合をあわせたものであ"
9057 "る。 B<signal>(7)  参照。"
9058
9059 #. type: Plain text
9060 #: build/C/man2/sigpending.2:87
9061 msgid ""
9062 "In versions of glibc up to and including 2.2.1, there is a bug in the "
9063 "wrapper function for B<sigpending>()  which means that information about "
9064 "pending real-time signals is not correctly returned."
9065 msgstr ""
9066 "バージョン 2.2.1 以前の glibc では、 B<sigpending>()  のラッパー関数に、処理"
9067 "待ちのリアルタイムシグナルに関する情報が 正しく返されないというバグがある。"
9068
9069 #. type: Plain text
9070 #: build/C/man2/sigpending.2:95
9071 msgid ""
9072 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), B<sigsuspend>"
9073 "(2), B<sigsetops>(3), B<signal>(7)"
9074 msgstr ""
9075 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), B<sigsuspend>"
9076 "(2), B<sigsetops>(3), B<signal>(7)"
9077
9078 #. type: TH
9079 #: build/C/man2/sigprocmask.2:29
9080 #, no-wrap
9081 msgid "SIGPROCMASK"
9082 msgstr "SIGPROCMASK"
9083
9084 #. type: Plain text
9085 #: build/C/man2/sigprocmask.2:32
9086 msgid "sigprocmask - examine and change blocked signals"
9087 msgstr "sigprocmask - 禁止するシグナルの確認と変更"
9088
9089 #. type: Plain text
9090 #: build/C/man2/sigprocmask.2:37
9091 msgid ""
9092 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
9093 "*>I<oldset>B<);>"
9094 msgstr ""
9095 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
9096 "*>I<oldset>B<);>"
9097
9098 #. type: Plain text
9099 #: build/C/man2/sigprocmask.2:46
9100 msgid ""
9101 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9102 "_POSIX_SOURCE"
9103 msgstr ""
9104 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9105 "_POSIX_SOURCE"
9106
9107 #. type: Plain text
9108 #: build/C/man2/sigprocmask.2:55
9109 msgid ""
9110 "B<sigprocmask>()  is used to fetch and/or change the signal mask of the "
9111 "calling thread.  The signal mask is the set of signals whose delivery is "
9112 "currently blocked for the caller (see also B<signal>(7)  for more details)."
9113 msgstr ""
9114 "B<sigprocmask>()  を使うと、呼び出したスレッドのシグナルマスクの取得/変更がで"
9115 "きる。 シグナルマスクは、呼び出し元に対して現在配送が禁止されているシグナル"
9116 "の 集合のことである (詳細については B<signal>(7)  も参照のこと)。"
9117
9118 #. type: Plain text
9119 #: build/C/man2/sigprocmask.2:59
9120 msgid ""
9121 "The behavior of the call is dependent on the value of I<how>, as follows."
9122 msgstr "このコールの動作は I<how> の値によって決まる:"
9123
9124 #. type: TP
9125 #: build/C/man2/sigprocmask.2:59
9126 #, no-wrap
9127 msgid "B<SIG_BLOCK>"
9128 msgstr "B<SIG_BLOCK>"
9129
9130 #. type: Plain text
9131 #: build/C/man2/sigprocmask.2:64
9132 msgid ""
9133 "The set of blocked signals is the union of the current set and the I<set> "
9134 "argument."
9135 msgstr ""
9136 "禁止されたシグナルの集合は現在の値と I<set> 引き数を結合したものとなる。"
9137
9138 #. type: TP
9139 #: build/C/man2/sigprocmask.2:64
9140 #, no-wrap
9141 msgid "B<SIG_UNBLOCK>"
9142 msgstr "B<SIG_UNBLOCK>"
9143
9144 #. type: Plain text
9145 #: build/C/man2/sigprocmask.2:70
9146 msgid ""
9147 "The signals in I<set> are removed from the current set of blocked signals.  "
9148 "It is permissible to attempt to unblock a signal which is not blocked."
9149 msgstr ""
9150 "現在禁止されているシグナルの集合から I<set> にあるシグナルを取り除く。禁止さ"
9151 "れていないシグナルを取り除こうと することも認められている。"
9152
9153 #. type: TP
9154 #: build/C/man2/sigprocmask.2:70
9155 #, no-wrap
9156 msgid "B<SIG_SETMASK>"
9157 msgstr "B<SIG_SETMASK>"
9158
9159 #. type: Plain text
9160 #: build/C/man2/sigprocmask.2:74
9161 msgid "The set of blocked signals is set to the argument I<set>."
9162 msgstr "禁止されているシグナルの集合に I<set> 引き数を設定する。"
9163
9164 #. type: Plain text
9165 #: build/C/man2/sigprocmask.2:79
9166 msgid ""
9167 "If I<oldset> is non-NULL, the previous value of the signal mask is stored in "
9168 "I<oldset>."
9169 msgstr ""
9170 "I<oldset> が NULL でなければ、シグナルマスクの今までの値を I<oldset> に格納す"
9171 "る。"
9172
9173 #. type: Plain text
9174 #: build/C/man2/sigprocmask.2:88
9175 msgid ""
9176 "If I<set> is NULL, then the signal mask is unchanged (i.e., I<how> is "
9177 "ignored), but the current value of the signal mask is nevertheless returned "
9178 "in I<oldset> (if it is not NULL)."
9179 msgstr ""
9180 "I<set> が NULL であれば、シグナルマスクは変更されない (すなわち、 I<how> は無"
9181 "視される)。 I<set> の値にかかわらず、現在のシグナルマスクの値は I<oldset> に"
9182 "入れて返される (但し、 I<oldset> が NULL でない場合)。"
9183
9184 #. type: Plain text
9185 #: build/C/man2/sigprocmask.2:93
9186 msgid ""
9187 "The use of B<sigprocmask>()  is unspecified in a multithreaded process; see "
9188 "B<pthread_sigmask>(3)."
9189 msgstr ""
9190 "マルチスレッドのプロセスで B<sigprocmask>()  を使用した場合の動作は規定されて"
9191 "いない。 B<pthread_sigmask>(3)  を参照のこと。"
9192
9193 #. type: Plain text
9194 #: build/C/man2/sigprocmask.2:99
9195 msgid ""
9196 "B<sigprocmask>()  returns 0 on success and -1 on error.  In the event of an "
9197 "error, I<errno> is set to indicate the cause."
9198 msgstr ""
9199 "B<sigprocmask>() は成功した場合 0 を返す。 エラーの場合、 -1 を返し、 "
9200 "I<errno> にエラーの原因を示す値を設定する。"
9201
9202 #. type: Plain text
9203 #: build/C/man2/sigprocmask.2:107
9204 msgid ""
9205 "the I<set> or I<oldset> argument points outside the process's allocated "
9206 "address space."
9207 msgstr ""
9208 "引き数 I<set> か I<oldset> がプロセスに割り当てられた\n"
9209 "アドレス空間の外を指している。"
9210
9211 #. type: Plain text
9212 #: build/C/man2/sigprocmask.2:112
9213 msgid "The value specified in I<how> was invalid."
9214 msgstr "I<how> に指定された値が有効ではない。"
9215
9216 #. type: Plain text
9217 #: build/C/man2/sigprocmask.2:118
9218 msgid ""
9219 "It is not possible to block B<SIGKILL> or B<SIGSTOP>.  Attempts to do so are "
9220 "silently ignored."
9221 msgstr ""
9222 "B<SIGKILL> や B<SIGSTOP> を禁止することはできない。 禁止しようとしても黙って"
9223 "無視される。"
9224
9225 #. type: Plain text
9226 #: build/C/man2/sigprocmask.2:120
9227 msgid "Each of the threads in a process has its own signal mask."
9228 msgstr "プロセス内の各スレッドはそれぞれ専用のシグナルマスクを持つ。"
9229
9230 #. type: Plain text
9231 #: build/C/man2/sigprocmask.2:140
9232 msgid ""
9233 "If B<SIGBUS>, B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> are generated while they "
9234 "are blocked, the result is undefined, unless the signal was generated by "
9235 "B<kill>(2), B<sigqueue>(3), or B<raise>(3)."
9236 msgstr ""
9237 "シグナル B<SIGBUS>, B<SIGFPE>, B<SIGILL>, B<SIGSEGV> が禁止されている間に生成"
9238 "された場合で、 そのシグナルが B<kill>(2), B<sigqueue>(3), B<raise>(3)  によっ"
9239 "て生成されたものでないときには、 その後の動作は未定義である。"
9240
9241 #. type: Plain text
9242 #: build/C/man2/sigprocmask.2:155
9243 msgid ""
9244 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
9245 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
9246 "B<signal>(7)"
9247 msgstr ""
9248 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
9249 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
9250 "B<signal>(7)"
9251
9252 #. type: TH
9253 #: build/C/man3/sigqueue.3:28
9254 #, no-wrap
9255 msgid "SIGQUEUE"
9256 msgstr "SIGQUEUE"
9257
9258 #. type: TH
9259 #: build/C/man3/sigqueue.3:28
9260 #, no-wrap
9261 msgid "2012-03-25"
9262 msgstr "2012-03-25"
9263
9264 #. type: Plain text
9265 #: build/C/man3/sigqueue.3:31
9266 msgid "sigqueue - queue a signal and data to a process"
9267 msgstr "sigqueue - シグナルとデータをプロセスに送る"
9268
9269 #. type: Plain text
9270 #: build/C/man3/sigqueue.3:35
9271 msgid ""
9272 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
9273 ">I<value>B<);>"
9274 msgstr ""
9275 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
9276 ">I<value>B<);>"
9277
9278 #. type: Plain text
9279 #: build/C/man3/sigqueue.3:43
9280 msgid "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
9281 msgstr "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
9282
9283 #. type: Plain text
9284 #: build/C/man3/sigqueue.3:55
9285 msgid ""
9286 "B<sigqueue>()  sends the signal specified in I<sig> to the process whose PID "
9287 "is given in I<pid>.  The permissions required to send a signal are the same "
9288 "as for B<kill>(2).  As with B<kill>(2), the null signal (0) can be used to "
9289 "check if a process with a given PID exists."
9290 msgstr ""
9291 "B<sigqueue>()  は I<sig> で指定されたシグナルを、PID が I<pid> であるプロセス"
9292 "に送る。 シグナルを送るのに必要な権限は B<kill>(2)  と同じである。 B<kill>"
9293 "(2)  と同様に、ヌル・シグナル (0) を使って 指定した PID のプロセスが存在する"
9294 "かをチェックすることができる。"
9295
9296 #. type: Plain text
9297 #: build/C/man3/sigqueue.3:60
9298 msgid ""
9299 "The I<value> argument is used to specify an accompanying item of data "
9300 "(either an integer or a pointer value) to be sent with the signal, and has "
9301 "the following type:"
9302 msgstr ""
9303 "I<value> 引き数はシグナルと一緒に送るデータの付属アイテムを指定する。 "
9304 "I<value> は (整数またはポインタの値であり) 以下のような型である。"
9305
9306 #. type: Plain text
9307 #: build/C/man3/sigqueue.3:67
9308 #, no-wrap
9309 msgid ""
9310 "union sigval {\n"
9311 "    int   sival_int;\n"
9312 "    void *sival_ptr;\n"
9313 "};\n"
9314 msgstr ""
9315 "union sigval {\n"
9316 "    int   sival_int;\n"
9317 "    void *sival_ptr;\n"
9318 "};\n"
9319
9320 #. type: Plain text
9321 #: build/C/man3/sigqueue.3:83
9322 msgid ""
9323 "If the receiving process has installed a handler for this signal using the "
9324 "B<SA_SIGINFO> flag to B<sigaction>(2), then it can obtain this data via the "
9325 "I<si_value> field of the I<siginfo_t> structure passed as the second "
9326 "argument to the handler.  Furthermore, the I<si_code> field of that "
9327 "structure will be set to B<SI_QUEUE>."
9328 msgstr ""
9329 "受取先のプロセスに、このシグナルに対するハンドラを (B<sigaction>(2)  に "
9330 "B<SA_SIGINFO> を指定して) インストールしておくと、 そのハンドラの第 2 引き数"
9331 "に渡される I<siginfo_t> 構造体の I<si_value> フィールドによって、このデータを"
9332 "取得できる。 さらに、この構造体の I<si_code> フィールドは B<SI_QUEUE> に設定"
9333 "される。"
9334
9335 #. type: Plain text
9336 #: build/C/man3/sigqueue.3:91
9337 msgid ""
9338 "On success, B<sigqueue>()  returns 0, indicating that the signal was "
9339 "successfully queued to the receiving process.  Otherwise -1 is returned and "
9340 "I<errno> is set to indicate the error."
9341 msgstr ""
9342 "成功した場合、 B<sigqueue>()  は 0 を返す。 これは受け取り側プロセスの待ち行"
9343 "列に シグナルが正しく入れられたことを示す。 失敗した場合は -1 が返され、 "
9344 "I<errno> がエラーを表す値に設定される。"
9345
9346 #. type: Plain text
9347 #: build/C/man3/sigqueue.3:102
9348 msgid "I<sig> was invalid."
9349 msgstr "I<sig> が不正である。"
9350
9351 #. type: Plain text
9352 #: build/C/man3/sigqueue.3:108
9353 msgid ""
9354 "The process does not have permission to send the signal to the receiving "
9355 "process.  For the required permissions, see B<kill>(2)."
9356 msgstr ""
9357 "このプロセスには、受け取り側プロセスにシグナルを送る権限がない。 必要な権限に"
9358 "ついては、 B<kill>(2)  を参照すること。"
9359
9360 #. type: Plain text
9361 #: build/C/man3/sigqueue.3:112
9362 msgid "No process has a PID matching I<pid>."
9363 msgstr "I<pid> にマッチする PID のプロセスがない。"
9364
9365 #. type: Plain text
9366 #: build/C/man3/sigqueue.3:114
9367 msgid "This system call first appeared in Linux 2.2."
9368 msgstr "このシステムコールは Linux 2.2 で初めて登場した。"
9369
9370 #. type: Plain text
9371 #: build/C/man3/sigqueue.3:124
9372 msgid ""
9373 "If this function results in the sending of a signal to the process that "
9374 "invoked it, and that signal was not blocked by the calling thread, and no "
9375 "other threads were willing to handle this signal (either by having it "
9376 "unblocked, or by waiting for it using B<sigwait>(3)), then at least some "
9377 "signal must be delivered to this thread before this function returns."
9378 msgstr ""
9379 "この関数を呼び出したプロセスにこの関数がシグナルを送ったときに、 シグナルが呼"
9380 "び出し側スレッドにブロックされず、 かつ (シグナルがブロックされなかった、また"
9381 "は B<sigwait>(3)  を使用するのを待っていることにより)  このシグナルを扱うス"
9382 "レッドが何もない場合は、 この関数がリターンする前に、少なくとも そのスレッド"
9383 "に対してシグナルが配送されていなければならない。"
9384
9385 #. type: Plain text
9386 #: build/C/man3/sigqueue.3:139
9387 msgid ""
9388 "On Linux, this function is implemented using the B<rt_sigqueueinfo>(2)  "
9389 "system call.  The system call differs in its third argument, which is the "
9390 "I<siginfo_t> structure that will be supplied to the receiving process's "
9391 "signal handler or returned by the receiving process's B<sigtimedwait>(2)  "
9392 "call.  Inside the glibc B<sigqueue>()  wrapper, this argument, I<uinfo>, is "
9393 "initialized as follows:"
9394 msgstr ""
9395 "Linux では、この関数は B<rt_sigqueueinfo>(2)  システムコールを使って実装され"
9396 "ている。 両者には 3 番目の引き数に違いがあり、 B<rt_sigqueueinfo>(2)  では 3 "
9397 "番目の引き数は I<siginfo_t> 構造体である。 I<siginfo_t> 構造体は、シグナルを"
9398 "受信するプロセスのシグナルハンドラに渡されたり、 シグナル受信プロセスの "
9399 "B<sigtimedwait>(2)  システムコールから返されたりする。 glibc の B<sigqueue>"
9400 "()  ラッパー関数内部では、 この引き数 I<uinfo> は以下のように初期化される。"
9401
9402 #. type: Plain text
9403 #: build/C/man3/sigqueue.3:147
9404 #, no-wrap
9405 msgid ""
9406 "uinfo.si_signo = sig;      /* argument supplied to sigqueue() */\n"
9407 "uinfo.si_code = SI_QUEUE;\n"
9408 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
9409 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
9410 "uinfo.si_value = val;      /* argument supplied to sigqueue() */\n"
9411 msgstr ""
9412 "uinfo.si_signo = sig;      /* argument supplied to sigqueue() */\n"
9413 "uinfo.si_code = SI_QUEUE;\n"
9414 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
9415 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
9416 "uinfo.si_value = val;      /* argument supplied to sigqueue() */\n"
9417
9418 #. type: Plain text
9419 #: build/C/man3/sigqueue.3:157
9420 msgid ""
9421 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
9422 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
9423 msgstr ""
9424 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
9425 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
9426
9427 #. type: TH
9428 #: build/C/man2/sigreturn.2:29
9429 #, no-wrap
9430 msgid "SIGRETURN"
9431 msgstr "SIGRETURN"
9432
9433 #. type: Plain text
9434 #: build/C/man2/sigreturn.2:32
9435 msgid "sigreturn - return from signal handler and cleanup stack frame"
9436 msgstr "sigreturn - シグナル・ハンドラから返り、スタックを掃除する"
9437
9438 #. type: Plain text
9439 #: build/C/man2/sigreturn.2:34
9440 msgid "B<int sigreturn(unsigned long >I<__unused>B<);>"
9441 msgstr "B<int sigreturn(unsigned long >I<__unused>B<);>"
9442
9443 #. type: Plain text
9444 #: build/C/man2/sigreturn.2:42
9445 msgid ""
9446 "When the Linux kernel creates the stack frame for a signal handler, a call "
9447 "to B<sigreturn>()  is inserted into the stack frame so that upon return from "
9448 "the signal handler, B<sigreturn>()  will be called."
9449 msgstr ""
9450 "Linux カーネルは、 シグナル・ハンドラ用にスタック・フレームを作成する際、 "
9451 "B<sigreturn>()  をスタック・フレームに挿入し、シグナル・ハンドラが返るときに "
9452 "B<sigreturn>()  が呼ばれるようにする。"
9453
9454 #. type: Plain text
9455 #: build/C/man2/sigreturn.2:53
9456 msgid ""
9457 "This B<sigreturn>()  call undoes everything that was done\\(emchanging the "
9458 "process's signal mask, switching stacks (see B<sigaltstack>(2))\\(emin order "
9459 "to invoke the signal handler: it restores the process's signal mask, "
9460 "switches stacks, and restores the process's context (registers, processor "
9461 "flags), so that the process directly resumes execution at the point where it "
9462 "was interrupted by the signal."
9463 msgstr ""
9464 "B<sigreturn>()  は、シグナル・ハンドラを起動するために行ったことの全て \\(em "
9465 "プロセスのシグナルマスクの変更、スタックの切り替え (B<sigaltstack>(2)  参照) "
9466 "\\(em の取り消しを行う。 プロセスのシグナルマスクの復元、スタックの切り替"
9467 "え、 プロセスのコンテキスト (レジスタ、プロセッサ・フラグ) の復元を行い、 プ"
9468 "ロセスがシグナルにより割り込まれた場所からそのまま実行を 再開できるようにす"
9469 "る。"
9470
9471 #. type: Plain text
9472 #: build/C/man2/sigreturn.2:56
9473 msgid "B<sigreturn>()  never returns."
9474 msgstr "B<sigreturn>()  が返ることはない。"
9475
9476 #. type: SH
9477 #: build/C/man2/sigreturn.2:56
9478 #, no-wrap
9479 msgid "FILES"
9480 msgstr "ファイル"
9481
9482 #. type: Plain text
9483 #: build/C/man2/sigreturn.2:58
9484 msgid "/usr/src/linux/arch/i386/kernel/signal.c"
9485 msgstr "/usr/src/linux/arch/i386/kernel/signal.c"
9486
9487 #. type: Plain text
9488 #: build/C/man2/sigreturn.2:60
9489 msgid "/usr/src/linux/arch/alpha/kernel/entry.S"
9490 msgstr "/usr/src/linux/arch/alpha/kernel/entry.S"
9491
9492 #. type: Plain text
9493 #: build/C/man2/sigreturn.2:64
9494 msgid ""
9495 "B<sigreturn>()  is specific to Linux and should not be used in programs "
9496 "intended to be portable."
9497 msgstr ""
9498 "B<sigreturn>()  は Linux 特有であり、移植を意図したプログラムでは使用してはい"
9499 "けない。"
9500
9501 #. type: Plain text
9502 #: build/C/man2/sigreturn.2:74
9503 msgid ""
9504 "The B<sigreturn>()  call is used by the kernel to implement signal "
9505 "handlers.  It should B<never> be called directly.  Better yet, the specific "
9506 "use of the I<__unused> argument varies depending on the architecture."
9507 msgstr ""
9508 "B<sigreturn>()  コールは、シグナル・ハンドラを実装するためにカーネルにより使"
9509 "用される。 これを直接呼び出しては B<決して> いけない。さらに I<__unused> 引き"
9510 "数がどのように使われるかはそのアーキテクチャに依存して変化する。"
9511
9512 #. type: Plain text
9513 #: build/C/man2/sigreturn.2:80
9514 msgid ""
9515 "B<kill>(2), B<restart_syscall>(2), B<sigaltstack>(2), B<signal>(2), B<signal>"
9516 "(7)"
9517 msgstr ""
9518 "B<kill>(2), B<restart_syscall>(2), B<sigaltstack>(2), B<signal>(2), B<signal>"
9519 "(7)"
9520
9521 #. type: TH
9522 #: build/C/man3/sigset.3:26
9523 #, no-wrap
9524 msgid "SIGSET"
9525 msgstr "SIGSET"
9526
9527 #. type: Plain text
9528 #: build/C/man3/sigset.3:29
9529 msgid "sigset, sighold, sigrelse, sigignore - System V signal API"
9530 msgstr "sigset, sighold, sigrelse, sigignore - System V 版シグナル API"
9531
9532 #. type: Plain text
9533 #: build/C/man3/sigset.3:35
9534 msgid "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
9535 msgstr "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
9536
9537 #. type: Plain text
9538 #: build/C/man3/sigset.3:37
9539 msgid "B<int sighold(int >I<sig>B<);>"
9540 msgstr "B<int sighold(int >I<sig>B<);>"
9541
9542 #. type: Plain text
9543 #: build/C/man3/sigset.3:39
9544 msgid "B<int sigrelse(int >I<sig>B<);>"
9545 msgstr "B<int sigrelse(int >I<sig>B<);>"
9546
9547 #. type: Plain text
9548 #: build/C/man3/sigset.3:41
9549 msgid "B<int sigignore(int >I<sig>B<);>"
9550 msgstr "B<int sigignore(int >I<sig>B<);>"
9551
9552 #. type: Plain text
9553 #: build/C/man3/sigset.3:52
9554 msgid "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
9555 msgstr "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
9556
9557 #. type: Plain text
9558 #: build/C/man3/sigset.3:56
9559 msgid ""
9560 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
9561 msgstr ""
9562 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
9563
9564 #. type: Plain text
9565 #: build/C/man3/sigset.3:65
9566 msgid ""
9567 "These functions are provided in glibc as a compatibility interface for "
9568 "programs that make use of the historical System V signal API.  This API is "
9569 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
9570 "B<sigprocmask>(2), etc.)"
9571 msgstr ""
9572 "これらの関数は、昔ながらの System V 版シグナル API を使用しているプログラム "
9573 "に対して互換性のあるインタフェースを glibc で提供するものである。 この API は"
9574 "過去のものであり、新しいアプリケーションでは POSIX シグナル API (B<sigaction>"
9575 "(2), B<sigprocmask>(2)  など) を使用すべきである。"
9576
9577 #. type: Plain text
9578 #: build/C/man3/sigset.3:74
9579 msgid ""
9580 "The B<sigset>()  function modifies the disposition of the signal I<sig>.  "
9581 "The I<disp> argument can be the address of a signal handler function, or one "
9582 "of the following constants:"
9583 msgstr ""
9584 "関数 B<sigset>()  はシグナル I<sig> のシグナルハンドラの動作を変更する。 "
9585 "I<disp> 引き数には、シグナルハンドラ関数のアドレスか、 以下の定数のいずれか一"
9586 "つを指定できる。"
9587
9588 #. type: TP
9589 #: build/C/man3/sigset.3:74
9590 #, no-wrap
9591 msgid "B<SIG_DFL>"
9592 msgstr "B<SIG_DFL>"
9593
9594 #. type: Plain text
9595 #: build/C/man3/sigset.3:79
9596 msgid "Reset the disposition of I<sig> to the default."
9597 msgstr "I<sig> の動作をデフォルトにリセットする。"
9598
9599 #. type: TP
9600 #: build/C/man3/sigset.3:79
9601 #, no-wrap
9602 msgid "B<SIG_IGN>"
9603 msgstr "B<SIG_IGN>"
9604
9605 #. type: Plain text
9606 #: build/C/man3/sigset.3:83
9607 msgid "Ignore I<sig>."
9608 msgstr "I<sig> を無視する。"
9609
9610 #. type: TP
9611 #: build/C/man3/sigset.3:83
9612 #, no-wrap
9613 msgid "B<SIG_HOLD>"
9614 msgstr "B<SIG_HOLD>"
9615
9616 #. type: Plain text
9617 #: build/C/man3/sigset.3:90
9618 msgid ""
9619 "Add I<sig> to the process's signal mask, but leave the disposition of I<sig> "
9620 "unchanged."
9621 msgstr ""
9622 "そのプロセスのシグナルマスクに I<sig> を追加するが、 I<sig> の動作は変更しな"
9623 "い。"
9624
9625 #. type: Plain text
9626 #: build/C/man3/sigset.3:96
9627 msgid ""
9628 "If I<disp> specifies the address of a signal handler, then I<sig> is added "
9629 "to the process's signal mask during execution of the handler."
9630 msgstr ""
9631 "I<disp> にシグナルハンドラのアドレスが指定された場合、 シグナルハンドラの実行"
9632 "中は、そのプロセスのシグナルマスクに I<sig> が追加される。"
9633
9634 #. type: Plain text
9635 #: build/C/man3/sigset.3:104
9636 msgid ""
9637 "If I<disp> was specified as a value other than B<SIG_HOLD>, then I<sig> is "
9638 "removed from the process's signal mask."
9639 msgstr ""
9640 "I<disp> に B<SIG_HOLD> 以外の値が指定された場合、 そのプロセスのシグナルマス"
9641 "クから I<sig> が削除される。"
9642
9643 #. type: Plain text
9644 #: build/C/man3/sigset.3:110 build/C/man3/sigvec.3:87
9645 msgid "The dispositions for B<SIGKILL> and B<SIGSTOP> cannot be changed."
9646 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> に対する動作は変更できない。"
9647
9648 #. type: Plain text
9649 #: build/C/man3/sigset.3:116
9650 msgid ""
9651 "The B<sighold>()  function adds I<sig> to the calling process's signal mask."
9652 msgstr ""
9653 "関数 B<sighold>()  は、呼び出し元プロセスのシグナルマスクに I<sig> を追加す"
9654 "る。"
9655
9656 #. type: Plain text
9657 #: build/C/man3/sigset.3:122
9658 msgid ""
9659 "The B<sigrelse>()  function removes I<sig> from the calling process's signal "
9660 "mask."
9661 msgstr ""
9662 "関数 B<sigrelse>()  は、呼び出し元プロセスのシグナルマスクから I<sig> を削除"
9663 "する。"
9664
9665 #. type: Plain text
9666 #: build/C/man3/sigset.3:129
9667 msgid ""
9668 "The B<sigignore>()  function sets the disposition of I<sig> to B<SIG_IGN>."
9669 msgstr "関数 B<sigignore>()  は、 I<sig> の動作を B<SIG_IGN> に設定する。"
9670
9671 #. type: Plain text
9672 #: build/C/man3/sigset.3:145
9673 msgid ""
9674 "On success, B<sigset>()  returns B<SIG_HOLD> if I<sig> was blocked before "
9675 "the call, or the signal's previous disposition if it was not blocked before "
9676 "the call.  On error, B<sigset>()  returns -1, with I<errno> set to indicate "
9677 "the error.  (But see BUGS below.)"
9678 msgstr ""
9679 "B<sigset>()  は成功すると、 呼び出し前に I<sig> がブロックされていた場合には "
9680 "B<SIG_HOLD> を返し、 ブロックされていなかった場合には 変更前のそのシグナルの"
9681 "動作を返す。 エラーの場合、 B<sigset>()  は -1 を返し、 I<errno> にエラーを示"
9682 "す値をセットする。 但し、以下の「バグ」の節も参照のこと。"
9683
9684 #. type: Plain text
9685 #: build/C/man3/sigset.3:154
9686 msgid ""
9687 "The B<sighold>(), B<sigrelse>(), and B<sigignore>()  functions return 0 on "
9688 "success; on error, these functions return -1 and set I<errno> to indicate "
9689 "the error."
9690 msgstr ""
9691 "関数 B<sighold>(), B<sigrelse>(), B<sigignore>()  は成功すると 0 を返す。エ"
9692 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値をセットする。"
9693
9694 #. type: Plain text
9695 #: build/C/man3/sigset.3:161
9696 msgid ""
9697 "For B<sigset>()  see the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
9698 msgstr ""
9699 "B<sigset>()  に関しては、 B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」"
9700 "の節を参照。"
9701
9702 #. type: Plain text
9703 #: build/C/man3/sigset.3:168
9704 msgid ""
9705 "For B<sighold>()  and B<sigrelse>()  see the ERRORS under B<sigprocmask>(2)."
9706 msgstr ""
9707 "B<sighold>()  と B<sigrelse>()  に関しては、 B<sigprocmask>(2)  の「エラー」"
9708 "の節を参照。"
9709
9710 #. type: Plain text
9711 #: build/C/man3/sigset.3:173
9712 msgid "For B<sigignore>(), see the errors under B<sigaction>(2)."
9713 msgstr "B<sigignore>()  に関しては、 B<sigaction>(2)  の「エラー」の節を参照。"
9714
9715 #. type: Plain text
9716 #: build/C/man3/sigset.3:190
9717 msgid ""
9718 "SVr4, POSIX.1-2001.  These functions are obsolete: do not use them in new "
9719 "programs.  POSIX.1-2008 marks B<sighold>(), B<sigignore>(), B<sigpause>(), "
9720 "B<sigrelse>(), and B<sigset>()  as obsolete, recommending the use of "
9721 "B<sigaction>(2), B<sigprocmask>(2), B<pthread_sigmask>(3), and B<sigsuspend>"
9722 "(2)  instead."
9723 msgstr ""
9724 "SVr4, POSIX.1-2001.  これらの関数は廃止予定である。新しいプログラムでは使用し"
9725 "ないこと。 POSIX.1-2008 は、 B<sighold>(), B<sigignore>(), B<sigpause>(), "
9726 "B<sigrelse>(), B<sigset>()  を廃止予定としている。 代わりに、 B<sigaction>"
9727 "(2), B<sigprocmask>(2), B<pthread_sigmask>(3), B<sigsuspend>(2)  の使用が推奨"
9728 "されている。"
9729
9730 #. type: Plain text
9731 #: build/C/man3/sigset.3:192
9732 msgid "These functions appeared in glibc version 2.1."
9733 msgstr "これらの関数は glibc 2.1 で登場した。"
9734
9735 #. type: Plain text
9736 #: build/C/man3/sigset.3:198
9737 msgid ""
9738 "The I<sighandler_t> type is a GNU extension; it is used on this page only to "
9739 "make the B<sigset>()  prototype more easily readable."
9740 msgstr ""
9741 "I<sighandler_t> 型は GNU による拡張であり、この man page で B<sigset>()  のプ"
9742 "ロトタイプをより読みやすくするために使われているだけである。"
9743
9744 #. type: Plain text
9745 #: build/C/man3/sigset.3:206
9746 msgid ""
9747 "The B<sigset>()  function provides reliable signal handling semantics (as "
9748 "when calling B<sigaction>(2)  with I<sa_mask> equal to 0)."
9749 msgstr ""
9750 "関数 B<sigset>()  は信頼性のあるシグナル処理機構を提供する (I<sa_mask> を 0 "
9751 "で B<sigaction>(2)  を呼び出したときと同様)。"
9752
9753 #. type: Plain text
9754 #: build/C/man3/sigset.3:224
9755 msgid ""
9756 "On System V, the B<signal>()  function provides unreliable semantics (as "
9757 "when calling B<sigaction>(2)  with I<sa_mask> equal to I<SA_RESETHAND | "
9758 "SA_NODEFER>).  On BSD, B<signal>()  provides reliable semantics.  "
9759 "POSIX.1-2001 leaves these aspects of B<signal>()  unspecified.  See B<signal>"
9760 "(2)  for further details."
9761 msgstr ""
9762 "System V では、関数 B<signal>()  が提供する処理機構は信頼性のないものである "
9763 "(I<sa_mask> を I<SA_RESETHAND | SA_NODEFER> として B<sigaction>(2)  を呼び出"
9764 "したときと同様)。 BSD では、 B<signal>()  は信頼性のある処理機構を提供する。 "
9765 "POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままとなっている。 さら"
9766 "なる詳細については B<signal>(2)  を参照。"
9767
9768 #. type: Plain text
9769 #: build/C/man3/sigset.3:232 build/C/man3/sigvec.3:252
9770 msgid ""
9771 "In order to wait for a signal, BSD and System V both provided a function "
9772 "named B<sigpause>(3), but this function has a different argument on the two "
9773 "systems.  See B<sigpause>(3)  for details."
9774 msgstr ""
9775 "BSD と System V のどちらのシステムでも シグナルを待つために、 B<sigpause>"
9776 "(3)  という名前の関数が提供されているが、 この関数の引き数は両方のシステムで"
9777 "異なる。 詳細は B<sigpause>(3)  を参照。"
9778
9779 #. type: Plain text
9780 #: build/C/man3/sigset.3:241
9781 msgid ""
9782 "In versions of glibc before 2.2, B<sigset>()  did not unblock I<sig> if "
9783 "I<disp> was specified as a value other than B<SIG_HOLD>."
9784 msgstr ""
9785 "2.2 より前のバージョンの glibc では、 I<disp> に B<SIG_HOLD> 以外の値が指定さ"
9786 "れた場合、 I<sig> のブロック解除を行っていなかった。"
9787
9788 #.  See http://sourceware.org/bugzilla/show_bug.cgi?id=1951
9789 #. type: Plain text
9790 #: build/C/man3/sigset.3:266
9791 msgid ""
9792 "In versions of glibc before 2.5, B<sigset>()  does not correctly return the "
9793 "previous disposition of the signal in two cases.  First, if I<disp> is "
9794 "specified as B<SIG_HOLD>, then a successful B<sigset>()  always returns "
9795 "B<SIG_HOLD>.  Instead, it should return the previous disposition of the "
9796 "signal (unless the signal was blocked, in which case B<SIG_HOLD> should be "
9797 "returned).  Second, if the signal is currently blocked, then the return "
9798 "value of a successful B<sigset>()  should be B<SIG_HOLD>.  Instead, the "
9799 "previous disposition of the signal is returned.  These problems have been "
9800 "fixed since glibc 2.5."
9801 msgstr ""
9802 "2.3.5 以前の全てのバージョンの glibc では、 B<sigset>()  が変更前のシグナルの"
9803 "動作を正しく返さない場合が 2つある。 一つめは、 I<disp> に B<SIG_HOLD> が指定"
9804 "されると、成功した場合 B<sigset>()  は常に B<SIG_HOLD> を返すことである。 正"
9805 "しくは、(シグナルがブロックされていなかった場合には)  変更前のシグナルの動作"
9806 "を返すべきである (シグナルがブロックされていた場合には、 B<SIG_HOLD> が返され"
9807 "る)。 もう一つは、シグナルが現在ブロックされている場合には、 成功した場合の "
9808 "B<sigset>()  の返り値は B<SIG_HOLD> になるべきであるが、実際には 変更前のシグ"
9809 "ナルの動作が返されることである。 これらの問題は glibc 2.5 以降で修正されてい"
9810 "る。"
9811
9812 #. type: Plain text
9813 #: build/C/man3/sigset.3:276
9814 msgid ""
9815 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9816 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
9817 msgstr ""
9818 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9819 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
9820
9821 #. type: TH
9822 #: build/C/man3/sigsetops.3:31
9823 #, no-wrap
9824 msgid "SIGSETOPS"
9825 msgstr "SIGSETOPS"
9826
9827 #. type: Plain text
9828 #: build/C/man3/sigsetops.3:35
9829 msgid ""
9830 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX signal "
9831 "set operations."
9832 msgstr ""
9833 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX シグナル集"
9834 "合の操作"
9835
9836 #. type: Plain text
9837 #: build/C/man3/sigsetops.3:39
9838 msgid "B<int sigemptyset(sigset_t *>I<set>B<);>"
9839 msgstr "B<int sigemptyset(sigset_t *>I<set>B<);>"
9840
9841 #. type: Plain text
9842 #: build/C/man3/sigsetops.3:41
9843 msgid "B<int sigfillset(sigset_t *>I<set>B<);>"
9844 msgstr "B<int sigfillset(sigset_t *>I<set>B<);>"
9845
9846 #. type: Plain text
9847 #: build/C/man3/sigsetops.3:43
9848 msgid "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9849 msgstr "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9850
9851 #. type: Plain text
9852 #: build/C/man3/sigsetops.3:45
9853 msgid "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9854 msgstr "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9855
9856 #. type: Plain text
9857 #: build/C/man3/sigsetops.3:47
9858 msgid "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
9859 msgstr "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
9860
9861 #. type: Plain text
9862 #: build/C/man3/sigsetops.3:59
9863 msgid ""
9864 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
9865 "B<sigismember>():"
9866 msgstr ""
9867 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
9868 "B<sigismember>():"
9869
9870 #. type: Plain text
9871 #: build/C/man3/sigsetops.3:61
9872 msgid "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
9873 msgstr "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
9874
9875 #. type: Plain text
9876 #: build/C/man3/sigsetops.3:65
9877 msgid "These functions allow the manipulation of POSIX signal sets."
9878 msgstr "これらの関数は POSIX シグナル集合(signal set)を操作するため使用する。"
9879
9880 #. type: Plain text
9881 #: build/C/man3/sigsetops.3:70
9882 msgid ""
9883 "B<sigemptyset>()  initializes the signal set given by I<set> to empty, with "
9884 "all signals excluded from the set."
9885 msgstr ""
9886 "B<sigemptyset>()  は I<set> で与えられたシグナル集合を空に初期化し、シグナル"
9887 "が一つも 含まれていない状態にする。"
9888
9889 #. type: Plain text
9890 #: build/C/man3/sigsetops.3:75
9891 msgid "B<sigfillset>()  initializes I<set> to full, including all signals."
9892 msgstr ""
9893 "B<sigfillset>()  は I<set> で与えられたシグナル集合が全てのシグナルを含むよう"
9894 "にする。"
9895
9896 #. type: Plain text
9897 #: build/C/man3/sigsetops.3:83
9898 msgid ""
9899 "B<sigaddset>()  and B<sigdelset>()  add and delete respectively signal "
9900 "I<signum> from I<set>."
9901 msgstr ""
9902 "B<sigaddset>()  と B<sigdelset>()  は I<set> に I<signum> シグナルをそれぞれ"
9903 "加えたり、削除したりする。"
9904
9905 #. type: Plain text
9906 #: build/C/man3/sigsetops.3:89
9907 msgid "B<sigismember>()  tests whether I<signum> is a member of I<set>."
9908 msgstr ""
9909 "B<sigismember>()  は I<signum> が I<set> に含まれているかどうかをテストする。"
9910
9911 #. type: Plain text
9912 #: build/C/man3/sigsetops.3:107
9913 msgid ""
9914 "Objects of type I<sigset_t> must be initialized by a call to either "
9915 "B<sigemptyset>()  or B<sigfillset>()  before being passed to the functions "
9916 "B<sigaddset>(), B<sigdelset>()  and B<sigismember>()  or the additional "
9917 "glibc functions described below (B<sigisemptyset>(), B<sigandset>(), and "
9918 "B<sigorset>()).  The results are undefined if this is not done."
9919 msgstr ""
9920 "I<sigset_t> 型のオブジェクトは、関数 B<sigaddset>(), B<sigdelset>(), "
9921 "B<sigismember>()  や後述の glibc の追加関数 (B<sigisemptyset>(), B<sigandset>"
9922 "(), B<sigorset>())  に渡す前に、 B<sigemptyset>()  か B<sigfillset>()  を呼び"
9923 "出して初期化しなければならない。 初期化しなかった場合の結果は未定義である。"
9924
9925 #. type: Plain text
9926 #: build/C/man3/sigsetops.3:114
9927 msgid ""
9928 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), and B<sigdelset>()  "
9929 "return 0 on success and -1 on error."
9930 msgstr ""
9931 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>()  は成功すれ"
9932 "ば 0 を、エラーの場合は -1 を返す。"
9933
9934 #. type: Plain text
9935 #: build/C/man3/sigsetops.3:126
9936 msgid ""
9937 "B<sigismember>()  returns 1 if I<signum> is a member of I<set>, 0 if "
9938 "I<signum> is not a member, and -1 on error.  On error, these functions set "
9939 "I<errno> to indicate the cause."
9940 msgstr ""
9941 "B<sigismember>()  は I<signum> が I<set> のメンバの場合 1 を返し、メンバでな"
9942 "い場合 0 を返す。 エラーの場合は -1 を返し、 I<errno> にエラーの原因を示す値"
9943 "を設定する。"
9944
9945 #. type: Plain text
9946 #: build/C/man3/sigsetops.3:131
9947 msgid "I<sig> is not a valid signal."
9948 msgstr "I<sig> が有効なシグナルではない。"
9949
9950 #. type: SS
9951 #: build/C/man3/sigsetops.3:134
9952 #, no-wrap
9953 msgid "Glibc notes"
9954 msgstr "glibc での注意"
9955
9956 #. type: Plain text
9957 #: build/C/man3/sigsetops.3:140
9958 msgid ""
9959 "If the B<_GNU_SOURCE> feature test macro is defined, then I<E<lt>signal."
9960 "hE<gt>> exposes three other functions for manipulating signal sets."
9961 msgstr ""
9962 "B<_GNU_SOURCE> 機能検査マクロが定義されていると、 I<E<lt>signal.hE<gt>> でシ"
9963 "グナル集合を操作する 3つの関数が追加で公開される。"
9964
9965 #. type: TP
9966 #: build/C/man3/sigsetops.3:140
9967 #, no-wrap
9968 msgid "B<int sigisemptyset(sigset_t *>I<set>B<);>"
9969 msgstr "B<int sigisemptyset(sigset_t *>I<set>B<);>"
9970
9971 #. type: Plain text
9972 #: build/C/man3/sigsetops.3:145
9973 msgid "returns 1 if I<set> contains no signals, and 0 otherwise."
9974 msgstr ""
9975 "I<set> にシグナルが一つも含まれていなければ 1 を返し、 それ以外は 0 を返す。"
9976
9977 #. type: TP
9978 #: build/C/man3/sigsetops.3:145
9979 #, no-wrap
9980 msgid "B<int sigorset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
9981 msgstr "B<int sigorset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
9982
9983 #. type: Plain text
9984 #: build/C/man3/sigsetops.3:154
9985 msgid "places the union of the sets I<left> and I<right> in I<dest>."
9986 msgstr "シグナル集合 I<left> と I<left> の和集合を I<dest> に書き込む。"
9987
9988 #. type: TP
9989 #: build/C/man3/sigsetops.3:154
9990 #, no-wrap
9991 msgid "B<int sigandset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
9992 msgstr "B<int sigandset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
9993
9994 #. type: Plain text
9995 #: build/C/man3/sigsetops.3:163
9996 msgid "places the intersection of the sets I<left> and I<right> in I<dest>."
9997 msgstr "シグナル集合 I<left> と I<left> の積集合を I<dest> に書き込む。"
9998
9999 #. type: Plain text
10000 #: build/C/man3/sigsetops.3:168
10001 msgid ""
10002 "B<sigorset>()  and B<sigandset>()  return 0 on success, and -1 on failure."
10003 msgstr ""
10004 "B<sigorset>()  と B<sigandset>()  は成功すると 0 を、失敗すると -1 を返す。"
10005
10006 #. type: Plain text
10007 #: build/C/man3/sigsetops.3:171
10008 msgid ""
10009 "These functions are nonstandard (a few other systems provide similar "
10010 "functions) and their use should be avoided in portable applications."
10011 msgstr ""
10012 "これらの関数は非標準であり、(他にも同様の関数を提供しているシステムも いくつ"
10013 "かはあるが) 移植性を考慮したアプリケーションでは使用を避けるべき である。"
10014
10015 #. type: Plain text
10016 #: build/C/man3/sigsetops.3:176
10017 msgid "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
10018 msgstr "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
10019
10020 #. type: TH
10021 #: build/C/man2/sigsuspend.2:29
10022 #, no-wrap
10023 msgid "SIGSUSPEND"
10024 msgstr "SIGSUSPEND"
10025
10026 #. type: Plain text
10027 #: build/C/man2/sigsuspend.2:32
10028 msgid "sigsuspend - wait for a signal"
10029 msgstr "sigsuspend - シグナルを待つ"
10030
10031 #. type: Plain text
10032 #: build/C/man2/sigsuspend.2:36
10033 msgid "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
10034 msgstr "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
10035
10036 #. type: Plain text
10037 #: build/C/man2/sigsuspend.2:45
10038 msgid ""
10039 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
10040 "_POSIX_SOURCE"
10041 msgstr ""
10042 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
10043 "_POSIX_SOURCE"
10044
10045 #. type: Plain text
10046 #: build/C/man2/sigsuspend.2:53
10047 msgid ""
10048 "B<sigsuspend>()  temporarily replaces the signal mask of the calling process "
10049 "with the mask given by I<mask> and then suspends the process until delivery "
10050 "of a signal whose action is to invoke a signal handler or to terminate a "
10051 "process."
10052 msgstr ""
10053 "B<sigsuspend>()  は、呼び出し元プロセスのシグナルマスクを I<mask> で指定され"
10054 "たマスクに一時的に置き換え、 シグナルハンドラの起動もしくはプロセスの終了がア"
10055 "クションとして 設定されたシグナルが配送されるまで、そのプロセスを停止する。"
10056
10057 #. type: Plain text
10058 #: build/C/man2/sigsuspend.2:62
10059 msgid ""
10060 "If the signal terminates the process, then B<sigsuspend>()  does not "
10061 "return.  If the signal is caught, then B<sigsuspend>()  returns after the "
10062 "signal handler returns, and the signal mask is restored to the state before "
10063 "the call to B<sigsuspend>()."
10064 msgstr ""
10065 "シグナルがプロセスを終了させるものの場合、 B<sigsuspend>()  は返らない。シグ"
10066 "ナルが捕捉された場合、 シグナルハンドラの処理が終わった後に B<sigsuspend>()  "
10067 "は返り、シグナルマスクは B<sigsuspend>()  が呼び出される前の状態に復元され"
10068 "る。"
10069
10070 #. type: Plain text
10071 #: build/C/man2/sigsuspend.2:70
10072 msgid ""
10073 "It is not possible to block B<SIGKILL> or B<SIGSTOP>; specifying these "
10074 "signals in I<mask>, has no effect on the process's signal mask."
10075 msgstr ""
10076 "B<SIGKILL> と B<SIGSTOP> を禁止 (block) することはできない; これらのシグナル"
10077 "を I<mask> に指定しても、プロセスのシグナルマスクは影響を受けない。"
10078
10079 #. type: Plain text
10080 #: build/C/man2/sigsuspend.2:76
10081 msgid ""
10082 "B<sigsuspend>()  always returns -1, with I<errno> set to inndicate the error "
10083 "(normally, B<EINTR>)."
10084 msgstr ""
10085 "B<sigsuspend>() は常に -1 を返し、 I<errno> にエラーの原因を示す値 (通常は "
10086 "B<EINTR>) を設定する。"
10087
10088 #. type: Plain text
10089 #: build/C/man2/sigsuspend.2:81
10090 msgid ""
10091 "I<mask> points to memory which is not a valid part of the process address "
10092 "space."
10093 msgstr ""
10094 "I<mask> が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。"
10095
10096 #. type: Plain text
10097 #: build/C/man2/sigsuspend.2:84
10098 msgid "The call was interrupted by a signal."
10099 msgstr "システムコールはシグナルにより割り込まれた。"
10100
10101 #. type: Plain text
10102 #: build/C/man2/sigsuspend.2:104
10103 msgid ""
10104 "Normally, B<sigsuspend>()  is used in conjunction with B<sigprocmask>(2)  in "
10105 "order to prevent delivery of a signal during the execution of a critical "
10106 "code section.  The caller first blocks the signals with B<sigprocmask>(2).  "
10107 "When the critical code has completed, the caller then waits for the signals "
10108 "by calling B<sigsuspend>()  with the signal mask that was returned by "
10109 "B<sigprocmask>(2)  (in the I<oldset> argument)."
10110 msgstr ""
10111 "B<sigsuspend>()  は、通常、クリティカル・コード・セクション (critical code "
10112 "section) の 実行中にシグナルが配送されるのを防止するために、 B<sigprocmask>"
10113 "(2)  と組み合わせて使用される。 まず最初に、呼び出し元は B<sigprocmask>(2)  "
10114 "を使ってシグナルを禁止する。 クリティカル・コードが完了すると、呼び出し元は "
10115 "B<sigprocmask>(2)  が (I<oldset> 引き数で) 返すシグナルマスクを指定して "
10116 "B<sigsuspend>()  を呼び出すことで、クリティカル・コード実行中に発生した シグ"
10117 "ナルを待つことができる。"
10118
10119 #. type: Plain text
10120 #: build/C/man2/sigsuspend.2:118
10121 msgid ""
10122 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10123 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
10124 msgstr ""
10125 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10126 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
10127
10128 #. type: TH
10129 #: build/C/man3/sigvec.3:26
10130 #, no-wrap
10131 msgid "SIGVEC"
10132 msgstr "SIGVEC"
10133
10134 #. type: TH
10135 #: build/C/man3/sigvec.3:26
10136 #, no-wrap
10137 msgid "2012-09-06"
10138 msgstr "2012-09-06"
10139
10140 #. type: Plain text
10141 #: build/C/man3/sigvec.3:29
10142 msgid "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD signal API"
10143 msgstr "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD 版シグナル API"
10144
10145 #. type: Plain text
10146 #: build/C/man3/sigvec.3:33
10147 msgid ""
10148 "B<int sigvec(int >I<sig>B<, struct sigvec *>I<vec>B<, struct sigvec "
10149 "*>I<ovec>B<);>"
10150 msgstr ""
10151 "B<int sigvec(int >I<sig>B<, struct sigvec *>I<vec>B<, struct sigvec "
10152 "*>I<ovec>B<);>"
10153
10154 #. type: Plain text
10155 #: build/C/man3/sigvec.3:35
10156 msgid "B<int sigmask(int >I<signum>B<);>"
10157 msgstr "B<int sigmask(int >I<signum>B<);>"
10158
10159 #. type: Plain text
10160 #: build/C/man3/sigvec.3:37
10161 msgid "B<int sigblock(int >I<mask>B<);>"
10162 msgstr "B<int sigblock(int >I<mask>B<);>"
10163
10164 #. type: Plain text
10165 #: build/C/man3/sigvec.3:39
10166 msgid "B<int sigsetmask(int >I<mask>B<);>"
10167 msgstr "B<int sigsetmask(int >I<mask>B<);>"
10168
10169 #. type: Plain text
10170 #: build/C/man3/sigvec.3:41
10171 msgid "B<int siggetmask(void);>"
10172 msgstr "B<int siggetmask(void);>"
10173
10174 #. type: Plain text
10175 #: build/C/man3/sigvec.3:49
10176 msgid "All functions shown above: _BSD_SOURCE"
10177 msgstr "上記の全ての関数: _BSD_SOURCE"
10178
10179 #. type: Plain text
10180 #: build/C/man3/sigvec.3:56
10181 msgid ""
10182 "These functions are provided in glibc as a compatibility interface for "
10183 "programs that make use of the historical BSD signal API.  This API is "
10184 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
10185 "B<sigprocmask>(2), etc.)."
10186 msgstr ""
10187 "これらの関数は、昔ながらの BSD 版シグナル API を使用しているプログラム に対し"
10188 "て互換性のあるインタフェースを glibc で提供するものである。 この API は過去の"
10189 "ものであり、新しいアプリケーションでは POSIX シグナル API (B<sigaction>(2), "
10190 "B<sigprocmask>(2)  など) を使用すべきである。"
10191
10192 #. type: Plain text
10193 #: build/C/man3/sigvec.3:81
10194 msgid ""
10195 "The B<sigvec>()  function sets and/or gets the disposition of the signal "
10196 "I<sig> (like the POSIX B<sigaction>(2)).  If I<vec> is not NULL, it points "
10197 "to a I<sigvec> structure that defines the new disposition for I<sig>.  If "
10198 "I<ovec> is not NULL, it points to a I<sigvec> structure that is used to "
10199 "return the previous disposition of I<sig>.  To obtain the current "
10200 "disposition of I<sig> without changing it, specify NULL for I<vec>, and a "
10201 "non-NULL pointer for I<ovec>."
10202 msgstr ""
10203 "関数 B<sigvec>()  は、(POSIX の B<sigaction>(2)  と同様に) シグナル I<sig> の"
10204 "動作の設定・取得を行う。 I<vec> は、NULL 以外の場合、 I<sig> の新しい動作を定"
10205 "義した I<sigvec> 構造体へのポインタである。 I<ovec> は、NULL 以外の場合、 "
10206 "I<sig> の変更前の動作を返すために使用される I<sigvec> 構造体へのポインタであ"
10207 "る。 I<sig> の動作を変更せずに現在の動作を取得するためには、 I<vec> に NULL "
10208 "を指定し、 I<ovec> に NULL でないポインタを指定すればよい。"
10209
10210 #. type: Plain text
10211 #: build/C/man3/sigvec.3:91
10212 msgid "The I<sigvec> structure has the following form:"
10213 msgstr "I<sigvec> 構造体は以下の通りである:"
10214
10215 #. type: Plain text
10216 #: build/C/man3/sigvec.3:99
10217 #, no-wrap
10218 msgid ""
10219 "struct sigvec {\n"
10220 "    void (*sv_handler)(int); /* Signal disposition */\n"
10221 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
10222 "    int    sv_flags;         /* Flags */\n"
10223 "};\n"
10224 msgstr ""
10225 "struct sigvec {\n"
10226 "    void (*sv_handler)(int); /* Signal disposition */\n"
10227 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
10228 "    int    sv_flags;         /* Flags */\n"
10229 "};\n"
10230
10231 #. type: Plain text
10232 #: build/C/man3/sigvec.3:110
10233 msgid ""
10234 "The I<sv_handler> field specifies the disposition of the signal, and is "
10235 "either: the address of a signal handler function; B<SIG_DFL>, meaning the "
10236 "default disposition applies for the signal; or B<SIG_IGN>, meaning that the "
10237 "signal is ignored."
10238 msgstr ""
10239 "I<sv_handler> フィールドはシグナルの動作を指定するもので、 シグナルハンドラ関"
10240 "数のアドレスか、 B<SIG_DFL> と B<SIG_IGN> のいずれかを指定できる。 "
10241 "B<SIG_DFL> はシグナルに適用されるデフォルトの動作を意味し、 B<SIG_IGN> はシグ"
10242 "ナルを無視することを意味する。"
10243
10244 #. type: Plain text
10245 #: build/C/man3/sigvec.3:124
10246 msgid ""
10247 "If I<sv_handler> specifies the address of a signal handler, then I<sv_mask> "
10248 "specifies a mask of signals that are to be blocked while the handler is "
10249 "executing.  In addition, the signal for which the handler is invoked is also "
10250 "blocked.  Attempts to block B<SIGKILL> or B<SIGSTOP> are silently ignored."
10251 msgstr ""
10252 "I<sv_handler> にシグナルハンドラのアドレスを指定した場合、 I<sv_mask> はハン"
10253 "ドラが実行中にブロックされるべきシグナルのマスクを指定する。 また、ハンドラを"
10254 "起動したシグナル自身はブロックされる。 B<SIGKILL> か B<SIGSTOP> をブロックし"
10255 "ようとした場合には、黙って無視される。"
10256
10257 #. type: Plain text
10258 #: build/C/man3/sigvec.3:131
10259 msgid ""
10260 "If I<sv_handler> specifies the address of a signal handler, then the "
10261 "I<sv_flags> field specifies flags controlling what happens when the handler "
10262 "is called.  This field may contain zero or more of the following flags:"
10263 msgstr ""
10264 "I<sv_handler> にシグナルハンドラのアドレスを指定した場合、 I<sv_flags> フィー"
10265 "ルドはハンドラが呼ばれた際の挙動を制御するフラグを指定する。 このフィールドに"
10266 "は、0 か、以下のフラグを 1個以上指定できる:"
10267
10268 #. type: TP
10269 #: build/C/man3/sigvec.3:131
10270 #, no-wrap
10271 msgid "B<SV_INTERRUPT>"
10272 msgstr "B<SV_INTERRUPT>"
10273
10274 #. type: Plain text
10275 #: build/C/man3/sigvec.3:139
10276 msgid ""
10277 "If the signal handler interrupts a blocking system call, then upon return "
10278 "from the handler the system call will not be restarted: instead it will fail "
10279 "with the error B<EINTR>.  If this flag is not specified, then system calls "
10280 "are restarted by default."
10281 msgstr ""
10282 "シグナルハンドラが停止中のシステムコールを中断した場合、 ハンドラから復帰して"
10283 "も、システムコールは再開されず、 エラー B<EINTR> で失敗する。 このフラグを指"
10284 "定しなかった場合、システムコールは デフォルトで再開される。"
10285
10286 #. type: TP
10287 #: build/C/man3/sigvec.3:139
10288 #, no-wrap
10289 msgid "B<SV_RESETHAND>"
10290 msgstr "B<SV_RESETHAND>"
10291
10292 #. type: Plain text
10293 #: build/C/man3/sigvec.3:148
10294 msgid ""
10295 "Reset the disposition of the signal to the default before calling the signal "
10296 "handler.  If this flag is not specified, then the handler remains "
10297 "established until explicitly removed by a later call to B<sigvec>()  or "
10298 "until the process performs an B<execve>(2)."
10299 msgstr ""
10300 "シグナルハンドラを呼び出す前にシグナルの動作を デフォルトにリセットする。 こ"
10301 "のフラグを指定しなかった場合、もう一度 B<sigvec>()  を呼び出して明示的に削除"
10302 "されるか、プロセスが B<execve>(2)  を実行するまで、ハンドラは設定されたままと"
10303 "なる。"
10304
10305 #. type: TP
10306 #: build/C/man3/sigvec.3:148
10307 #, no-wrap
10308 msgid "B<SV_ONSTACK>"
10309 msgstr "B<SV_ONSTACK>"
10310
10311 #. type: Plain text
10312 #: build/C/man3/sigvec.3:155
10313 msgid ""
10314 "Handle the signal on the alternate signal stack (historically established "
10315 "under BSD using the obsolete B<sigstack>()  function; the POSIX replacement "
10316 "is B<sigaltstack>(2))."
10317 msgstr ""
10318 "代替シグナルスタック上でシグナルハンドラを実行する (歴史的に、BSD では代替シ"
10319 "グナルスタックは廃止された関数 B<sigstack>()  を使って設定する。POSIX では、"
10320 "代わりに B<sigaltstack>(2)  を使用する)。"
10321
10322 #. type: Plain text
10323 #: build/C/man3/sigvec.3:165
10324 msgid ""
10325 "The B<sigmask>()  function constructs and returns a \"signal mask\" for "
10326 "I<signum>.  For example, we can initialize the I<vec.sv_mask> field given to "
10327 "B<sigvec>()  using code such as the following:"
10328 msgstr ""
10329 "関数 B<sigmask>()  は I<signum> に対する「シグナルマスク」を構成して返す。 例"
10330 "えば、以下のようなコードを使うと、 B<sigvec>()  に渡す I<vec.sv_mask> を初期"
10331 "化できる。"
10332
10333 #. type: Plain text
10334 #: build/C/man3/sigvec.3:170
10335 #, no-wrap
10336 msgid ""
10337 "    vec.sv_mask = sigmask(SIGQUIT) | sigpause(SIGABRT);\n"
10338 "                /* Block SIGQUIT and SIGABRT during\n"
10339 "                   handler execution */\n"
10340 msgstr ""
10341 "    vec.sv_mask = sigmask(SIGQUIT) | sigpause(SIGABRT);\n"
10342 "                /* Block SIGQUIT and SIGABRT during\n"
10343 "                   handler execution */\n"
10344
10345 #. type: Plain text
10346 #: build/C/man3/sigvec.3:185
10347 msgid ""
10348 "The B<sigblock>()  function adds the signals in I<mask> to the process's "
10349 "signal mask (like POSIX I<sigprocmask(SIG_BLOCK)>), and returns the "
10350 "process's previous signal mask.  Attempts to block B<SIGKILL> or B<SIGSTOP> "
10351 "are silently ignored."
10352 msgstr ""
10353 "B<sigblock>()  関数は、 I<mask> にあるシグナルをプロセスのシグナルマスクに追"
10354 "加し (POSIX の I<sigprocmask(SIG_BLOCK)> と同様)、変更前のプロセスのシグナル"
10355 "マスクを返す。 B<SIGKILL> や B<SIGSTOP> をブロックしようとした場合には、黙っ"
10356 "て無視される。"
10357
10358 #. type: Plain text
10359 #: build/C/man3/sigvec.3:193
10360 msgid ""
10361 "The B<sigsetmask>()  function sets the process's signal mask to the value "
10362 "given in I<mask> (like POSIX I<sigprocmask(SIG_SETMASK)>), and returns the "
10363 "process's previous signal mask."
10364 msgstr ""
10365 "B<sigsetmask>()  関数はプロセスのシグナルマスクを I<mask> で指定された値に設"
10366 "定し (POSIX の I<sigprocmask(SIG_SETMASK)> と同様)、変更前のプロセスのシグナ"
10367 "ルマスクを返す。"
10368
10369 #. type: Plain text
10370 #: build/C/man3/sigvec.3:199
10371 msgid ""
10372 "The B<siggetmask>()  function returns the process's current signal mask.  "
10373 "This call is equivalent to I<sigblock(0)>."
10374 msgstr ""
10375 "B<siggetmask>()  関数はプロセスの現在のシグナルマスクを返す。この関数は "
10376 "I<sigblock(0)> と等価である。"
10377
10378 #. type: Plain text
10379 #: build/C/man3/sigvec.3:205
10380 msgid ""
10381 "The B<sigvec>()  function returns 0 on success; on error, it returns -1 and "
10382 "sets I<errno> to indicate the error."
10383 msgstr ""
10384 "B<sigvec>()  関数は成功すると 0 を返す。エラーの場合、-1 を返し、 I<errno> に"
10385 "エラーを示す値をセットする。"
10386
10387 #. type: Plain text
10388 #: build/C/man3/sigvec.3:211
10389 msgid ""
10390 "The B<sigblock>()  and B<sigsetmask>()  functions return the previous signal "
10391 "mask."
10392 msgstr "B<sigblock>()  と B<sigsetmask>()  は変更前のシグナルマスクを返す。"
10393
10394 #. type: Plain text
10395 #: build/C/man3/sigvec.3:216
10396 msgid "The B<sigmask>()  function returns the signal mask for I<signum>."
10397 msgstr "B<sigmask>()  関数は I<signum> のシグナルマスクを返す。"
10398
10399 #. type: Plain text
10400 #: build/C/man3/sigvec.3:221
10401 msgid "See the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
10402 msgstr "B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」の節を参照。"
10403
10404 #. type: Plain text
10405 #: build/C/man3/sigvec.3:227
10406 msgid ""
10407 "All of these functions were in 4.3BSD, except B<siggetmask>(), whose origin "
10408 "is unclear.  These functions are obsolete: do not use them in new programs."
10409 msgstr ""
10410 "これらの関数のうち B<siggetmask>()  以外の全ては 4.3BSD にあった。 "
10411 "B<siggetmask>()  の出自ははっきりしない。 これらの関数は廃止予定であり、新し"
10412 "いプログラムでは使用しないこと。"
10413
10414 #. type: Plain text
10415 #: build/C/man3/sigvec.3:244
10416 msgid ""
10417 "On 4.3BSD, the B<signal>()  function provided reliable semantics (as when "
10418 "calling B<sigvec>()  with I<vec.sv_mask> equal to 0).  On System V, B<signal>"
10419 "()  provides unreliable semantics.  POSIX.1-2001 leaves these aspects of "
10420 "B<signal>()  unspecified.  See B<signal>(2)  for further details."
10421 msgstr ""
10422 "4.3BSD では、信頼性のあるシグナル処理機構を提供する (I<vec.sv_mask> を 0 で "
10423 "B<sigvec>()  を呼び出したときと同様)。 System V が提供する処理機構は信頼性の"
10424 "ないものである。 POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままと"
10425 "なっている。 さらなる詳細については B<signal>(2)  を参照。"
10426
10427 #. type: Plain text
10428 #: build/C/man3/sigvec.3:262
10429 msgid ""
10430 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10431 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
10432 msgstr ""
10433 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10434 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
10435
10436 #. type: TH
10437 #: build/C/man3/sigwait.3:26
10438 #, no-wrap
10439 msgid "SIGWAIT"
10440 msgstr "SIGWAIT"
10441
10442 #. type: TH
10443 #: build/C/man3/sigwait.3:26
10444 #, no-wrap
10445 msgid "2012-07-21"
10446 msgstr "2012-07-21"
10447
10448 #. type: Plain text
10449 #: build/C/man3/sigwait.3:29
10450 msgid "sigwait - wait for a signal"
10451 msgstr "sigwait - シグナルを待つ"
10452
10453 #. type: Plain text
10454 #: build/C/man3/sigwait.3:34
10455 #, no-wrap
10456 msgid "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
10457 msgstr "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
10458
10459 #. type: Plain text
10460 #: build/C/man3/sigwait.3:44
10461 msgid ""
10462 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10463 msgstr ""
10464 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10465
10466 #. type: Plain text
10467 #: build/C/man3/sigwait.3:56
10468 msgid ""
10469 "The B<sigwait>()  function suspends execution of the calling thread until "
10470 "one of the signals specified in the signal set I<set> becomes pending.  The "
10471 "function accepts the signal (removes it from the pending list of signals), "
10472 "and returns the signal number in I<sig>."
10473 msgstr ""
10474 "B<sigwait>()  関数は、シグナル集合 I<set> で指定されたシグナルの一つが処理待"
10475 "ち (pending) になるまで、 呼び出したスレッドの実行を中断する。 この関数はその"
10476 "シグナルを受け取り (つまり、処理待ちのシグナルのリスト からそのシグナルを削除"
10477 "し)、そのシグナル番号を I<sig> に格納して返す。"
10478
10479 #. type: Plain text
10480 #: build/C/man3/sigwait.3:62
10481 msgid ""
10482 "The operation of B<sigwait>()  is the same as B<sigwaitinfo>(2), except that:"
10483 msgstr ""
10484 "B<sigwait>()  の動作は B<sigwaitinfo>(2)  と同じだが、以下の点が異なる。"
10485
10486 #. type: Plain text
10487 #: build/C/man3/sigwait.3:67
10488 msgid ""
10489 "B<sigwait>()  returns only the signal number, rather than a I<siginfo_t> "
10490 "structure describing the signal."
10491 msgstr ""
10492 "B<sigwait>()  は、シグナルの内容を表す I<siginfo_t> 構造体を返すのではなく、"
10493 "単にシグナル番号を返す。"
10494
10495 #. type: Plain text
10496 #: build/C/man3/sigwait.3:69
10497 msgid "The return values of the two functions are different."
10498 msgstr "返り値が B<sigwaitinfo>(2)  とは異なる。"
10499
10500 #. type: Plain text
10501 #: build/C/man3/sigwait.3:74
10502 msgid ""
10503 "On success, B<sigwait>()  returns 0.  On error, it returns a positive error "
10504 "number (listed in ERRORS)."
10505 msgstr ""
10506 "成功すると、 B<sigwait>()  は 0 を返す。 エラーの場合、(「エラー」の節のリス"
10507 "トにある) 正のエラー番号を返す。"
10508
10509 #.  Does not occur for glibc.
10510 #. type: Plain text
10511 #: build/C/man3/sigwait.3:80
10512 msgid "I<set> contains an invalid signal number."
10513 msgstr "I<set> に無効なシグナル番号が入っている。"
10514
10515 #. type: Plain text
10516 #: build/C/man3/sigwait.3:86
10517 msgid "B<sigwait>()  is implemented using B<sigtimedwait>(2)."
10518 msgstr "B<sigwait>()  は B<sigtimedwait>(2)  を使って実装されている。"
10519
10520 #. type: Plain text
10521 #: build/C/man3/sigwait.3:89
10522 msgid "See B<pthread_sigmask>(3)."
10523 msgstr "B<pthread_sigmask>(3)  を参照。"
10524
10525 #. type: Plain text
10526 #: build/C/man3/sigwait.3:97
10527 msgid ""
10528 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
10529 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
10530 msgstr ""
10531 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
10532 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
10533
10534 #. type: TH
10535 #: build/C/man2/sigwaitinfo.2:25
10536 #, no-wrap
10537 msgid "SIGWAITINFO"
10538 msgstr "SIGWAITINFO"
10539
10540 #. type: TH
10541 #: build/C/man2/sigwaitinfo.2:25 build/C/man2/wait.2:49
10542 #, no-wrap
10543 msgid "2013-09-04"
10544 msgstr "2013-09-04"
10545
10546 #. type: Plain text
10547 #: build/C/man2/sigwaitinfo.2:28
10548 msgid "sigwaitinfo, sigtimedwait - synchronously wait for queued signals"
10549 msgstr "sigwaitinfo, sigtimedwait - キューに入れられたシグナルを同期して待つ"
10550
10551 #. type: Plain text
10552 #: build/C/man2/sigwaitinfo.2:33
10553 #, no-wrap
10554 msgid "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
10555 msgstr "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
10556
10557 #. type: Plain text
10558 #: build/C/man2/sigwaitinfo.2:36
10559 #, no-wrap
10560 msgid ""
10561 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
10562 "B<                 const struct timespec *>I<timeout>B<);>\n"
10563 msgstr ""
10564 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
10565 "B<                 const struct timespec *>I<timeout>B<);>\n"
10566
10567 #. type: Plain text
10568 #: build/C/man2/sigwaitinfo.2:46
10569 msgid "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10570 msgstr ""
10571 "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10572
10573 #. type: Plain text
10574 #: build/C/man2/sigwaitinfo.2:56
10575 msgid ""
10576 "B<sigwaitinfo>()  suspends execution of the calling thread until one of the "
10577 "signals in I<set> is pending (If one of the signals in I<set> is already "
10578 "pending for the calling thread, B<sigwaitinfo>()  will return immediately.)"
10579 msgstr ""
10580 "B<sigwaitinfo>()  は I<set> のうちのどれかのシグナルが処理待ちになるまで、 呼"
10581 "び出しスレッドの実行を一時停止する (呼び出しスレッドに対して I<set> のうちの"
10582 "どれかのシグナルが既に待機中 (pending) である場合、 B<sigwaitinfo>()  はすぐ"
10583 "に戻る)。"
10584
10585 #. type: Plain text
10586 #: build/C/man2/sigwaitinfo.2:68
10587 msgid ""
10588 "B<sigwaitinfo>()  removes the signal from the set of pending signals and "
10589 "returns the signal number as its function result.  If the I<info> argument "
10590 "is not NULL, then the buffer that it points to is used to return a structure "
10591 "of type I<siginfo_t> (see B<sigaction>(2))  containing information about the "
10592 "signal."
10593 msgstr ""
10594 "B<sigwaitinfo>()  はそのシグナルを待機中のシグナルの集合から削除し、関数の結"
10595 "果としてシグナル番号を返す。 I<info> 引き数が NULL でない場合、配送されたシグ"
10596 "ナルの情報が入った I<siginfo_t> 型 (B<sigaction>(2)  を参照) の構造体を "
10597 "I<info> が指すバッファに入れて返す。"
10598
10599 #. type: Plain text
10600 #: build/C/man2/sigwaitinfo.2:76
10601 msgid ""
10602 "If multiple signals in I<set> are pending for the caller, the signal that is "
10603 "retrieved by B<sigwaitinfo>()  is determined according to the usual ordering "
10604 "rules; see B<signal>(7)  for further details."
10605 msgstr ""
10606 "呼び出し元に対して I<set> の複数のシグナルが処理待ちの場合、 B<sigwaitinfo>"
10607 "() で取得するシグナルは通常の順序決定ルールに基づいて決定される。 詳細は "
10608 "B<signal>(7) を参照のこと。"
10609
10610 #. type: Plain text
10611 #: build/C/man2/sigwaitinfo.2:88
10612 msgid ""
10613 "B<sigtimedwait>()  operates in exactly the same way as B<sigwaitinfo>()  "
10614 "except that it has an additional argument, I<timeout>, which specifies the "
10615 "interval for which the thread is suspended waiting for a signal.  (This "
10616 "interval will be rounded up to the system clock granularity, and kernel "
10617 "scheduling delays mean that the interval may overrun by a small amount.)  "
10618 "This argument is of the following type:"
10619 msgstr ""
10620 "B<sigtimedwait>() は、 B<sigwaitinfo>() と次の点を除いて全く同じように\n"
10621 "動作する。この関数にはもう 1 つの引き数 I<timeout> があり、シグナル待ち\n"
10622 "でスレッドが一時停止する時間を指定することができる(この時間はシステ\n"
10623 "ムクロックの粒度に切り上げられ、カーネルのスケジューリング遅延により\n"
10624 "少しだけ長くなる可能性がある)。この引き数の型は以下のとおりである:"
10625
10626 #. type: Plain text
10627 #: build/C/man2/sigwaitinfo.2:95
10628 #, no-wrap
10629 msgid ""
10630 "struct timespec {\n"
10631 "    long    tv_sec;         /* seconds */\n"
10632 "    long    tv_nsec;        /* nanoseconds */\n"
10633 "}\n"
10634 msgstr ""
10635 "struct timespec {\n"
10636 "    long    tv_sec;         /* 秒 */\n"
10637 "    long    tv_nsec;        /* ナノ秒 */\n"
10638 "}\n"
10639
10640 #. type: Plain text
10641 #: build/C/man2/sigwaitinfo.2:105
10642 msgid ""
10643 "If both fields of this structure are specified as 0, a poll is performed: "
10644 "B<sigtimedwait>()  returns immediately, either with information about a "
10645 "signal that was pending for the caller, or with an error if none of the "
10646 "signals in I<set> was pending."
10647 msgstr ""
10648 "この構造体の 2 つのフィールドがともに 0 の場合、ポーリングが行われる: "
10649 "B<sigtimedwait>()  は、呼び出し側プロセスに対して 待機しているシグナルの情報"
10650 "を返して戻るか、 I<set> のうちのどのシグナルも待機していない場合はエラーを返"
10651 "して戻る。"
10652
10653 #. type: Plain text
10654 #: build/C/man2/sigwaitinfo.2:114
10655 msgid ""
10656 "On success, both B<sigwaitinfo>()  and B<sigtimedwait>()  return a signal "
10657 "number (i.e., a value greater than zero).  On failure both calls return -1, "
10658 "with I<errno> set to indicate the error."
10659 msgstr ""
10660 "成功した場合、 B<sigwaitinfo>()  と B<sigtimedwait>()  はシグナル番号 (すなわ"
10661 "ち 0 より大きい数) を返す。 失敗した場合、2 つの関数は -1 を返し、 I<errno> "
10662 "はエラーを表す値に設定される。"
10663
10664 #. type: Plain text
10665 #: build/C/man2/sigwaitinfo.2:123
10666 msgid ""
10667 "No signal in I<set> was became pending within the I<timeout> period "
10668 "specified to B<sigtimedwait>()."
10669 msgstr ""
10670 "I<set> のうちのどのシグナルも B<sigtimedwait>()  に指定された I<timeout> の期"
10671 "間内に処理待ちにならなかった。"
10672
10673 #. type: Plain text
10674 #: build/C/man2/sigwaitinfo.2:129
10675 msgid ""
10676 "The wait was interrupted by a signal handler; see B<signal>(7).  (This "
10677 "handler was for a signal other than one of those in I<set>.)"
10678 msgstr ""
10679 "シグナル待ちがシグナルハンドラによって中断 (interrupt) された (このハンドラ"
10680 "は I<set> にあるシグナル以外のものである)。 B<signal>(7)  参照。"
10681
10682 #. type: Plain text
10683 #: build/C/man2/sigwaitinfo.2:133
10684 msgid "I<timeout> was invalid."
10685 msgstr "I<timeout> が不正である。"
10686
10687 #. type: Plain text
10688 #: build/C/man2/sigwaitinfo.2:153
10689 msgid ""
10690 "In normal usage, the calling program blocks the signals in I<set> via a "
10691 "prior call to B<sigprocmask>(2)  (so that the default disposition for these "
10692 "signals does not occur if they become pending between successive calls to "
10693 "B<sigwaitinfo>()  or B<sigtimedwait>())  and does not establish handlers for "
10694 "these signals.  In a multithreaded program, the signal should be blocked in "
10695 "all threads, in order to prevent the signal being treated according to its "
10696 "default disposition in a thread other than the one calling B<sigwaitinfo>()  "
10697 "or B<sigtimedwait>())."
10698 msgstr ""
10699 "通常の使用法では、呼び出し側プロセスはこれらの関数より先に B<sigprocmask>"
10700 "(2)  の呼び出すことにより I<set> に含まれるシグナルをブロックし (そのためにこ"
10701 "れらのシグナルがこの後に続く B<sigwaitinfo>()  や B<sigtimedwait>()  の呼び出"
10702 "しの間に処理待ちになった場合には、デフォルトの動作は行われず)、 これらのシグ"
10703 "ナルに対するハンドラは設定しない。 マルチスレッドプログラムでは、 "
10704 "B<sigwaitinfo>()  や B<sigtimedwait>() を呼び出したスレッド以外のスレッドで、"
10705 "そのシグナルがデフォルトの動作に基いて処理されないように、全てのスレッドで該"
10706 "当シグナルをブロックすべきである。"
10707
10708 #. type: Plain text
10709 #: build/C/man2/sigwaitinfo.2:158
10710 msgid ""
10711 "The set of signals that is pending for a given thread is the union of the "
10712 "set of signals that is pending specifically for that thread and the set of "
10713 "signals that is pending for the process as a whole (see B<signal>(7))."
10714 msgstr ""
10715 "指定されたスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体宛ての"
10716 "処理待ちのシグナル集合と、プロセス全体宛ての 処理待ちのシグナル集合をあわせた"
10717 "ものである (B<signal>(7)  参照)。"
10718
10719 #. type: Plain text
10720 #: build/C/man2/sigwaitinfo.2:164
10721 msgid "Attempts to wait for B<SIGKILL> and B<SIGSTOP> are silently ignored."
10722 msgstr "B<SIGKILL> と B<SIGSTOP> を待とうとした場合、黙って無視される。"
10723
10724 #. type: Plain text
10725 #: build/C/man2/sigwaitinfo.2:173
10726 msgid ""
10727 "If multiple threads of a process are blocked waiting for the same signal(s) "
10728 "in B<sigwaitinfo>()  or B<sigtimedwait>(), then exactly one of the threads "
10729 "will actually receive the signal if it becomes pending for the process as a "
10730 "whole; which of the threads receives the signal is indeterminate."
10731 msgstr ""
10732 "一つのプロセス内の複数のスレッドが B<sigwaitinfo>()  や B<sigtimedwait>()  で"
10733 "同じシグナルを待って停止した場合、 プロセス全体宛てのシグナルが処理待ちになる"
10734 "と、複数のスレッドのうち一つだけが 実際にそのシグナルを受信することになる。 "
10735 "どのスレッドがシグナルを受信するかは決まっていない。"
10736
10737 #. type: Plain text
10738 #: build/C/man2/sigwaitinfo.2:182
10739 msgid ""
10740 "POSIX leaves the meaning of a NULL value for the I<timeout> argument of "
10741 "B<sigtimedwait>()  unspecified, permitting the possibility that this has the "
10742 "same meaning as a call to B<sigwaitinfo>(), and indeed this is what is done "
10743 "on Linux."
10744 msgstr ""
10745 "POSIX では B<sigtimedwait>()  の引き数 I<timeout> の値を NULL にした場合の意"
10746 "味を未定義としている。 B<sigwaitinfo>()  を呼び出したのと同じ意味としてもよい"
10747 "ことになっており、 実際 Linux ではこのように動作する。"
10748
10749 #. type: Plain text
10750 #: build/C/man2/sigwaitinfo.2:187
10751 msgid ""
10752 "On Linux, B<sigwaitinfo>()  is a library function implemented on top of "
10753 "B<sigtimedwait>()."
10754 msgstr ""
10755 "Linux では、 B<sigwaitinfo>()  は B<sigtimedwait>()  を用いて実装されたライブ"
10756 "ラリ関数である。"
10757
10758 #. type: Plain text
10759 #: build/C/man2/sigwaitinfo.2:199
10760 msgid ""
10761 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
10762 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), B<signal>"
10763 "(7), B<time>(7)"
10764 msgstr ""
10765 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
10766 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), B<signal>"
10767 "(7), B<time>(7)"
10768
10769 #. type: TH
10770 #: build/C/man3/sysv_signal.3:25
10771 #, no-wrap
10772 msgid "SYSV_SIGNAL"
10773 msgstr "SYSV_SIGNAL"
10774
10775 #. type: TH
10776 #: build/C/man3/sysv_signal.3:25
10777 #, no-wrap
10778 msgid "2007-05-04"
10779 msgstr "2007-05-04"
10780
10781 #. type: Plain text
10782 #: build/C/man3/sysv_signal.3:28
10783 msgid "sysv_signal - signal handling with System V semantics"
10784 msgstr "sysv_signal - System V 方式のシグナル処理"
10785
10786 #. type: Plain text
10787 #: build/C/man3/sysv_signal.3:30
10788 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
10789 msgstr "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */"
10790
10791 #. type: Plain text
10792 #: build/C/man3/sysv_signal.3:36
10793 msgid ""
10794 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
10795 msgstr ""
10796 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
10797
10798 #. type: Plain text
10799 #: build/C/man3/sysv_signal.3:41
10800 msgid ""
10801 "The B<sysv_signal>()  function takes the same arguments, and performs the "
10802 "same task, as B<signal>(2)."
10803 msgstr ""
10804 "B<sysv_signal>()  関数は B<signal>(2)  と同じ引き数をとり、同じ処理を実行す"
10805 "る。"
10806
10807 #. type: Plain text
10808 #: build/C/man3/sysv_signal.3:51
10809 msgid ""
10810 "However B<sysv_signal>()  provides the System V unreliable signal semantics, "
10811 "that is: a) the disposition of the signal is reset to the default when the "
10812 "handler is invoked; b) delivery of further instances of the signal is not "
10813 "blocked while the signal handler is executing; and c) if the handler "
10814 "interrupts (certain) blocking system calls, then the system call is not "
10815 "automatically restarted."
10816 msgstr ""
10817 "しかしながら、 B<sysv_signal>()  は System V の信頼性に欠けるシグナル処理方式"
10818 "を提供している。 信頼性に欠けるシグナル処理方式は以下の特徴を持つ。 a) ハンド"
10819 "ラが起動されると、シグナルの処理方法 (disposition) が デフォルトにリセットさ"
10820 "れる、 b) シグナルハンドラの実行中は、それ以降に発生した同じシグナルの配送が "
10821 "ブロックされない、 c) ハンドラが停止中の (blocking している) システムコールを"
10822 "中断した場合、 自動的に再開されないシステムコールがある。"
10823
10824 #. type: Plain text
10825 #: build/C/man3/sysv_signal.3:57
10826 msgid ""
10827 "The B<sysv_signal>()  function returns the previous value of the signal "
10828 "handler, or B<SIG_ERR> on error."
10829 msgstr ""
10830 "B<sysv_signal>()  関数はシグナルハンドラの直前の値を返す。 エラーの場合、 "
10831 "B<SIG_ERR> を返す。"
10832
10833 #. type: Plain text
10834 #: build/C/man3/sysv_signal.3:62
10835 msgid "This function is nonstandard."
10836 msgstr "この関数は非標準である。"
10837
10838 #. type: Plain text
10839 #: build/C/man3/sysv_signal.3:68
10840 msgid ""
10841 "Use of B<sysv_signal>()  should be avoided; use B<sigaction>(2)  instead."
10842 msgstr ""
10843 "B<sysv_signal>()  の使用は避けるべきである。代わりに B<sigaction>(2)  を使う"
10844 "こと。"
10845
10846 #. type: Plain text
10847 #: build/C/man3/sysv_signal.3:79
10848 msgid ""
10849 "On older Linux systems, B<sysv_signal>()  and B<signal>(2)  were "
10850 "equivalent.  But on newer systems, B<signal>(2)  provides reliable signal "
10851 "semantics; see B<signal>(2)  for details."
10852 msgstr ""
10853 "以前の Linux システムでは、 B<sysv_signal>()  と B<signal>(2)  は等価であっ"
10854 "た。しかし、新しめのシステムでは、 B<signal>(2)  は信頼性のあるシグナル処理方"
10855 "式を提供している。 詳細は B<signal>(2)  を参照。"
10856
10857 #. type: Plain text
10858 #: build/C/man3/sysv_signal.3:92
10859 msgid "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
10860 msgstr "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
10861
10862 #. type: TH
10863 #: build/C/man2/timer_create.2:31
10864 #, no-wrap
10865 msgid "TIMER_CREATE"
10866 msgstr "TIMER_CREATE"
10867
10868 #. type: TH
10869 #: build/C/man2/timer_create.2:31
10870 #, no-wrap
10871 msgid "2010-09-27"
10872 msgstr "2010-09-27"
10873
10874 #. type: Plain text
10875 #: build/C/man2/timer_create.2:34
10876 msgid "timer_create - create a POSIX per-process timer"
10877 msgstr ""
10878
10879 #. type: Plain text
10880 #: build/C/man2/timer_create.2:38
10881 #, no-wrap
10882 msgid ""
10883 "B<#include E<lt>signal.hE<gt>>\n"
10884 "B<#include E<lt>time.hE<gt>>\n"
10885 msgstr ""
10886 "B<#include E<lt>signal.hE<gt>>\n"
10887 "B<#include E<lt>time.hE<gt>>\n"
10888
10889 #. type: Plain text
10890 #: build/C/man2/timer_create.2:41
10891 #, no-wrap
10892 msgid ""
10893 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
10894 "B<                 timer_t *>I<timerid>B<);>\n"
10895 msgstr ""
10896 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
10897 "B<                 timer_t *>I<timerid>B<);>\n"
10898
10899 #. type: Plain text
10900 #: build/C/man2/timer_create.2:44 build/C/man2/timer_delete.2:37
10901 #: build/C/man2/timer_getoverrun.2:37 build/C/man2/timer_settime.2:41
10902 msgid "Link with I<-lrt>."
10903 msgstr "I<-lrt> でリンクする。"
10904
10905 #. type: Plain text
10906 #: build/C/man2/timer_create.2:52
10907 msgid "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10908 msgstr "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10909
10910 #. type: Plain text
10911 #: build/C/man2/timer_create.2:60
10912 msgid ""
10913 "B<timer_create>()  creates a new per-process interval timer.  The ID of the "
10914 "new timer is returned in the buffer pointed to by I<timerid>, which must be "
10915 "a non-NULL pointer.  This ID is unique within the process, until the timer "
10916 "is deleted.  The new timer is initially disarmed."
10917 msgstr ""
10918
10919 #. type: Plain text
10920 #: build/C/man2/timer_create.2:65
10921 msgid ""
10922 "The I<clockid> argument specifies the clock that the new timer uses to "
10923 "measure time.  It can be specified as one of the following values:"
10924 msgstr ""
10925
10926 #. type: TP
10927 #: build/C/man2/timer_create.2:65
10928 #, no-wrap
10929 msgid "B<CLOCK_REALTIME>"
10930 msgstr "B<CLOCK_REALTIME>"
10931
10932 #. type: Plain text
10933 #: build/C/man2/timer_create.2:68
10934 msgid "A settable system-wide real-time clock."
10935 msgstr ""
10936
10937 #. type: TP
10938 #: build/C/man2/timer_create.2:68
10939 #, no-wrap
10940 msgid "B<CLOCK_MONOTONIC>"
10941 msgstr "B<CLOCK_MONOTONIC>"
10942
10943 #.  Note: the CLOCK_MONOTONIC_RAW clock added for clock_gettime()
10944 #.  in 2.6.28 is not supported for POSIX timers -- mtk, Feb 2009
10945 #. type: Plain text
10946 #: build/C/man2/timer_create.2:75
10947 msgid ""
10948 "A nonsettable monotonically increasing clock that measures time from some "
10949 "unspecified point in the past that does not change after system startup."
10950 msgstr ""
10951
10952 #. type: TP
10953 #: build/C/man2/timer_create.2:75
10954 #, no-wrap
10955 msgid "B<CLOCK_PROCESS_CPUTIME_ID> (since Linux 2.6.12)"
10956 msgstr ""
10957
10958 #. type: Plain text
10959 #: build/C/man2/timer_create.2:79
10960 msgid ""
10961 "A clock that measures (user and system) CPU time consumed by (all of the "
10962 "threads in) the calling process."
10963 msgstr ""
10964
10965 #. type: TP
10966 #: build/C/man2/timer_create.2:79
10967 #, no-wrap
10968 msgid "B<CLOCK_THREAD_CPUTIME_ID> (since Linux 2.6.12)"
10969 msgstr ""
10970
10971 #.  The CLOCK_MONOTONIC_RAW that was added in 2.6.28 can't be used
10972 #.  to create a timer -- mtk, Feb 2009
10973 #. type: Plain text
10974 #: build/C/man2/timer_create.2:85
10975 msgid ""
10976 "A clock that measures (user and system) CPU time consumed by the calling "
10977 "thread."
10978 msgstr ""
10979
10980 #. type: Plain text
10981 #: build/C/man2/timer_create.2:94
10982 msgid ""
10983 "As well as the above values, I<clockid> can be specified as the I<clockid> "
10984 "returned by a call to B<clock_getcpuclockid>(3)  or B<pthread_getcpuclockid>"
10985 "(3)."
10986 msgstr ""
10987
10988 #. type: Plain text
10989 #: build/C/man2/timer_create.2:103
10990 msgid ""
10991 "The I<sevp> argument points to a I<sigevent> structure that specifies how "
10992 "the caller should be notified when the timer expires.  For the definition "
10993 "and general details of this structure, see B<sigevent>(7)."
10994 msgstr ""
10995
10996 #. type: Plain text
10997 #: build/C/man2/timer_create.2:107
10998 msgid "The I<sevp.sigev_notify> field can have the following values:"
10999 msgstr ""
11000
11001 #. type: Plain text
11002 #: build/C/man2/timer_create.2:112
11003 msgid ""
11004 "Don't asynchronously notify when the timer expires.  Progress of the timer "
11005 "can be monitored using B<timer_gettime>(2)."
11006 msgstr ""
11007
11008 #. type: Plain text
11009 #: build/C/man2/timer_create.2:130
11010 msgid ""
11011 "Upon timer expiration, generate the signal I<sigev_signo> for the process.  "
11012 "See B<sigevent>(7)  for general details.  The I<si_code> field of the "
11013 "I<siginfo_t> structure will be set to B<SI_TIMER>.  At any point in time, at "
11014 "most one signal is queued to the process for a given timer; see "
11015 "B<timer_getoverrun>(2)  for more details."
11016 msgstr ""
11017
11018 #. type: Plain text
11019 #: build/C/man2/timer_create.2:138
11020 msgid ""
11021 "Upon timer expiration, invoke I<sigev_notify_function> as if it were the "
11022 "start function of a new thread.  See B<sigevent>(7)  for details."
11023 msgstr ""
11024
11025 #. type: Plain text
11026 #: build/C/man2/timer_create.2:152
11027 msgid ""
11028 "As for B<SIGEV_SIGNAL>, but the signal is targeted at the thread whose ID is "
11029 "given in I<sigev_notify_thread_id>, which must be a thread in the same "
11030 "process as the caller.  The I<sigev_notify_thread_id> field specifies a "
11031 "kernel thread ID, that is, the value returned by B<clone>(2)  or B<gettid>"
11032 "(2).  This flag is intended only for use by threading libraries."
11033 msgstr ""
11034
11035 #. type: Plain text
11036 #: build/C/man2/timer_create.2:167
11037 msgid ""
11038 "Specifying I<sevp> as NULL is equivalent to specifying a pointer to a "
11039 "I<sigevent> structure in which I<sigev_notify> is B<SIGEV_SIGNAL>, "
11040 "I<sigev_signo> is B<SIGALRM>, and I<sigev_value.sival_int> is the timer ID."
11041 msgstr ""
11042
11043 #. type: Plain text
11044 #: build/C/man2/timer_create.2:175
11045 msgid ""
11046 "On success, B<timer_create>()  returns 0, and the ID of the new timer is "
11047 "placed in I<*timerid>.  On failure, -1 is returned, and I<errno> is set to "
11048 "indicate the error."
11049 msgstr ""
11050
11051 #. type: Plain text
11052 #: build/C/man2/timer_create.2:179
11053 msgid "Temporary error during kernel allocation of timer structures."
11054 msgstr ""
11055
11056 #. type: Plain text
11057 #: build/C/man2/timer_create.2:187
11058 msgid ""
11059 "Clock ID, I<sigev_notify>, I<sigev_signo>, or I<sigev_notify_thread_id> is "
11060 "invalid."
11061 msgstr ""
11062
11063 #.  glibc layer: malloc()
11064 #. type: Plain text
11065 #: build/C/man2/timer_create.2:191
11066 msgid "Could not allocate memory."
11067 msgstr ""
11068
11069 #. type: Plain text
11070 #: build/C/man2/timer_create.2:193 build/C/man2/timer_delete.2:67
11071 #: build/C/man2/timer_getoverrun.2:97
11072 msgid "This system call is available since Linux 2.6."
11073 msgstr "このシステムコールは Linux 2.6 以降で利用できる。"
11074
11075 #. type: Plain text
11076 #: build/C/man2/timer_create.2:198
11077 msgid "A program may create multiple interval timers using B<timer_create>()."
11078 msgstr ""
11079
11080 #. type: Plain text
11081 #: build/C/man2/timer_create.2:203
11082 msgid ""
11083 "Timers are not inherited by the child of a B<fork>(2), and are disarmed and "
11084 "deleted during an B<execve>(2)."
11085 msgstr ""
11086
11087 #. type: Plain text
11088 #: build/C/man2/timer_create.2:211
11089 msgid ""
11090 "The kernel preallocates a \"queued real-time signal\" for each timer created "
11091 "using B<timer_create>().  Consequently, the number of timers is limited by "
11092 "the B<RLIMIT_SIGPENDING> resource limit (see B<setrlimit>(2))."
11093 msgstr ""
11094
11095 #. type: Plain text
11096 #: build/C/man2/timer_create.2:216
11097 msgid ""
11098 "The timers created by B<timer_create>()  are commonly known as \"POSIX "
11099 "(interval) timers\".  The POSIX timers API consists of the following "
11100 "interfaces:"
11101 msgstr ""
11102
11103 #. type: Plain text
11104 #: build/C/man2/timer_create.2:219
11105 msgid "B<timer_create>(): Create a timer."
11106 msgstr ""
11107
11108 #. type: Plain text
11109 #: build/C/man2/timer_create.2:222
11110 msgid "B<timer_settime>(2): Arm (start) or disarm (stop) a timer."
11111 msgstr ""
11112
11113 #. type: Plain text
11114 #: build/C/man2/timer_create.2:226
11115 msgid ""
11116 "B<timer_gettime>(2): Fetch the time remaining until the next expiration of a "
11117 "timer, along with the interval setting of the timer."
11118 msgstr ""
11119
11120 #. type: Plain text
11121 #: build/C/man2/timer_create.2:229
11122 msgid ""
11123 "B<timer_getoverrun>(2): Return the overrun count for the last timer "
11124 "expiration."
11125 msgstr ""
11126
11127 #. type: Plain text
11128 #: build/C/man2/timer_create.2:232
11129 msgid "B<timer_delete>(2): Disarm and delete a timer."
11130 msgstr ""
11131
11132 #. type: Plain text
11133 #: build/C/man2/timer_create.2:235
11134 msgid ""
11135 "Part of the implementation of the POSIX timers API is provided by glibc.  In "
11136 "particular:"
11137 msgstr ""
11138
11139 #. type: Plain text
11140 #: build/C/man2/timer_create.2:239
11141 msgid ""
11142 "The functionality for B<SIGEV_THREAD> is implemented within glibc, rather "
11143 "than the kernel."
11144 msgstr ""
11145
11146 #.  See the glibc source file kernel-posix-timers.h for the structure
11147 #.  that glibc uses to map user-space timer IDs to kernel timer IDs
11148 #.  The kernel-level timer ID is exposed via siginfo.si_tid.
11149 #. type: Plain text
11150 #: build/C/man2/timer_create.2:245
11151 msgid ""
11152 "The timer IDs presented at user level are maintained by glibc, which maps "
11153 "these IDs to the timer IDs employed by the kernel."
11154 msgstr ""
11155
11156 #. type: Plain text
11157 #: build/C/man2/timer_create.2:253
11158 msgid ""
11159 "The POSIX timers system calls first appeared in Linux 2.6.  Prior to this, "
11160 "glibc provided an incomplete user-space implementation (B<CLOCK_REALTIME> "
11161 "timers only) using POSIX threads, and current glibc falls back to this "
11162 "implementation on systems running pre-2.6 Linux kernels."
11163 msgstr ""
11164
11165 #. type: Plain text
11166 #: build/C/man2/timer_create.2:265
11167 msgid ""
11168 "The program below takes two arguments: a sleep period in seconds, and a "
11169 "timer frequency in nanoseconds.  The program establishes a handler for the "
11170 "signal it uses for the timer, blocks that signal, creates and arms a timer "
11171 "that expires with the given frequency, sleeps for the specified number of "
11172 "seconds, and then unblocks the timer signal.  Assuming that the timer "
11173 "expired at least once while the program slept, the signal handler will be "
11174 "invoked, and the handler displays some information about the timer "
11175 "notification.  The program terminates after one invocation of the signal "
11176 "handler."
11177 msgstr ""
11178
11179 #. type: Plain text
11180 #: build/C/man2/timer_create.2:270
11181 msgid ""
11182 "In the following example run, the program sleeps for 1 second, after "
11183 "creating a timer that has a frequency of 100 nanoseconds.  By the time the "
11184 "signal is unblocked and delivered, there have been around ten million "
11185 "overruns."
11186 msgstr ""
11187
11188 #. type: Plain text
11189 #: build/C/man2/timer_create.2:282
11190 #, no-wrap
11191 msgid ""
11192 "$ B<./a.out 1 100>\n"
11193 "Establishing handler for signal 34\n"
11194 "Blocking signal 34\n"
11195 "timer ID is 0x804c008\n"
11196 "Sleeping for 1 seconds\n"
11197 "Unblocking signal 34\n"
11198 "Caught signal 34\n"
11199 "    sival_ptr = 0xbfb174f4;     *sival_ptr = 0x804c008\n"
11200 "    overrun count = 10004886\n"
11201 msgstr ""
11202
11203 #. type: Plain text
11204 #: build/C/man2/timer_create.2:292
11205 #, no-wrap
11206 msgid ""
11207 "#include E<lt>stdlib.hE<gt>\n"
11208 "#include E<lt>unistd.hE<gt>\n"
11209 "#include E<lt>stdio.hE<gt>\n"
11210 "#include E<lt>signal.hE<gt>\n"
11211 "#include E<lt>time.hE<gt>\n"
11212 msgstr ""
11213 "#include E<lt>stdlib.hE<gt>\n"
11214 "#include E<lt>unistd.hE<gt>\n"
11215 "#include E<lt>stdio.hE<gt>\n"
11216 "#include E<lt>signal.hE<gt>\n"
11217 "#include E<lt>time.hE<gt>\n"
11218
11219 #. type: Plain text
11220 #: build/C/man2/timer_create.2:295
11221 #, no-wrap
11222 msgid ""
11223 "#define CLOCKID CLOCK_REALTIME\n"
11224 "#define SIG SIGRTMIN\n"
11225 msgstr ""
11226 "#define CLOCKID CLOCK_REALTIME\n"
11227 "#define SIG SIGRTMIN\n"
11228
11229 #. type: Plain text
11230 #: build/C/man2/timer_create.2:298
11231 #, no-wrap
11232 msgid ""
11233 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
11234 "                        } while (0)\n"
11235 msgstr ""
11236 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
11237 "                        } while (0)\n"
11238
11239 #. type: Plain text
11240 #: build/C/man2/timer_create.2:304
11241 #, no-wrap
11242 msgid ""
11243 "static void\n"
11244 "print_siginfo(siginfo_t *si)\n"
11245 "{\n"
11246 "    timer_t *tidp;\n"
11247 "    int or;\n"
11248 msgstr ""
11249 "static void\n"
11250 "print_siginfo(siginfo_t *si)\n"
11251 "{\n"
11252 "    timer_t *tidp;\n"
11253 "    int or;\n"
11254
11255 #. type: Plain text
11256 #: build/C/man2/timer_create.2:306
11257 #, no-wrap
11258 msgid "    tidp = si-E<gt>si_value.sival_ptr;\n"
11259 msgstr "    tidp = si-E<gt>si_value.sival_ptr;\n"
11260
11261 #. type: Plain text
11262 #: build/C/man2/timer_create.2:309
11263 #, no-wrap
11264 msgid ""
11265 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
11266 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
11267 msgstr ""
11268 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
11269 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
11270
11271 #. type: Plain text
11272 #: build/C/man2/timer_create.2:316
11273 #, no-wrap
11274 msgid ""
11275 "    or = timer_getoverrun(*tidp);\n"
11276 "    if (or == -1)\n"
11277 "        errExit(\"timer_getoverrun\");\n"
11278 "    else\n"
11279 "        printf(\"    overrun count = %d\\en\", or);\n"
11280 "}\n"
11281 msgstr ""
11282 "    or = timer_getoverrun(*tidp);\n"
11283 "    if (or == -1)\n"
11284 "        errExit(\"timer_getoverrun\");\n"
11285 "    else\n"
11286 "        printf(\"    overrun count = %d\\en\", or);\n"
11287 "}\n"
11288
11289 #. type: Plain text
11290 #: build/C/man2/timer_create.2:323
11291 #, no-wrap
11292 msgid ""
11293 "static void\n"
11294 "handler(int sig, siginfo_t *si, void *uc)\n"
11295 "{\n"
11296 "    /* Note: calling printf() from a signal handler is not\n"
11297 "       strictly correct, since printf() is not async-signal-safe;\n"
11298 "       see signal(7) */\n"
11299 msgstr ""
11300 "static void\n"
11301 "handler(int sig, siginfo_t *si, void *uc)\n"
11302 "{\n"
11303 "    /* Note: calling printf() from a signal handler is not\n"
11304 "       strictly correct, since printf() is not async-signal-safe;\n"
11305 "       see signal(7) */\n"
11306
11307 #. type: Plain text
11308 #: build/C/man2/timer_create.2:328
11309 #, no-wrap
11310 msgid ""
11311 "    printf(\"Caught signal %d\\en\", sig);\n"
11312 "    print_siginfo(si);\n"
11313 "    signal(sig, SIG_IGN);\n"
11314 "}\n"
11315 msgstr ""
11316 "    printf(\"Caught signal %d\\en\", sig);\n"
11317 "    print_siginfo(si);\n"
11318 "    signal(sig, SIG_IGN);\n"
11319 "}\n"
11320
11321 #. type: Plain text
11322 #: build/C/man2/timer_create.2:338
11323 #, no-wrap
11324 msgid ""
11325 "int\n"
11326 "main(int argc, char *argv[])\n"
11327 "{\n"
11328 "    timer_t timerid;\n"
11329 "    struct sigevent sev;\n"
11330 "    struct itimerspec its;\n"
11331 "    long long freq_nanosecs;\n"
11332 "    sigset_t mask;\n"
11333 "    struct sigaction sa;\n"
11334 msgstr ""
11335 "int\n"
11336 "main(int argc, char *argv[])\n"
11337 "{\n"
11338 "    timer_t timerid;\n"
11339 "    struct sigevent sev;\n"
11340 "    struct itimerspec its;\n"
11341 "    long long freq_nanosecs;\n"
11342 "    sigset_t mask;\n"
11343 "    struct sigaction sa;\n"
11344
11345 #. type: Plain text
11346 #: build/C/man2/timer_create.2:344
11347 #, no-wrap
11348 msgid ""
11349 "    if (argc != 3) {\n"
11350 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
11351 "                argv[0]);\n"
11352 "        exit(EXIT_FAILURE);\n"
11353 "    }\n"
11354 msgstr ""
11355 "    if (argc != 3) {\n"
11356 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
11357 "                argv[0]);\n"
11358 "        exit(EXIT_FAILURE);\n"
11359 "    }\n"
11360
11361 #. type: Plain text
11362 #: build/C/man2/timer_create.2:346
11363 #, no-wrap
11364 msgid "    /* Establish handler for timer signal */\n"
11365 msgstr "    /* Establish handler for timer signal */\n"
11366
11367 #. type: Plain text
11368 #: build/C/man2/timer_create.2:353
11369 #, no-wrap
11370 msgid ""
11371 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
11372 "    sa.sa_flags = SA_SIGINFO;\n"
11373 "    sa.sa_sigaction = handler;\n"
11374 "    sigemptyset(&sa.sa_mask);\n"
11375 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
11376 "        errExit(\"sigaction\");\n"
11377 msgstr ""
11378 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
11379 "    sa.sa_flags = SA_SIGINFO;\n"
11380 "    sa.sa_sigaction = handler;\n"
11381 "    sigemptyset(&sa.sa_mask);\n"
11382 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
11383 "        errExit(\"sigaction\");\n"
11384
11385 #. type: Plain text
11386 #: build/C/man2/timer_create.2:355
11387 #, no-wrap
11388 msgid "    /* Block timer signal temporarily */\n"
11389 msgstr "    /* Block timer signal temporarily */\n"
11390
11391 #. type: Plain text
11392 #: build/C/man2/timer_create.2:361
11393 #, no-wrap
11394 msgid ""
11395 "    printf(\"Blocking signal %d\\en\", SIG);\n"
11396 "    sigemptyset(&mask);\n"
11397 "    sigaddset(&mask, SIG);\n"
11398 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
11399 "        errExit(\"sigprocmask\");\n"
11400 msgstr ""
11401 "    printf(\"Blocking signal %d\\en\", SIG);\n"
11402 "    sigemptyset(&mask);\n"
11403 "    sigaddset(&mask, SIG);\n"
11404 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
11405 "        errExit(\"sigprocmask\");\n"
11406
11407 #. type: Plain text
11408 #: build/C/man2/timer_create.2:363
11409 #, no-wrap
11410 msgid "    /* Create the timer */\n"
11411 msgstr "    /* Create the timer */\n"
11412
11413 #. type: Plain text
11414 #: build/C/man2/timer_create.2:369
11415 #, no-wrap
11416 msgid ""
11417 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
11418 "    sev.sigev_signo = SIG;\n"
11419 "    sev.sigev_value.sival_ptr = &timerid;\n"
11420 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
11421 "        errExit(\"timer_create\");\n"
11422 msgstr ""
11423 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
11424 "    sev.sigev_signo = SIG;\n"
11425 "    sev.sigev_value.sival_ptr = &timerid;\n"
11426 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
11427 "        errExit(\"timer_create\");\n"
11428
11429 #. type: Plain text
11430 #: build/C/man2/timer_create.2:371
11431 #, no-wrap
11432 msgid "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
11433 msgstr "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
11434
11435 #. type: Plain text
11436 #: build/C/man2/timer_create.2:373
11437 #, no-wrap
11438 msgid "    /* Start the timer */\n"
11439 msgstr "    /* Start the timer */\n"
11440
11441 #. type: Plain text
11442 #: build/C/man2/timer_create.2:379
11443 #, no-wrap
11444 msgid ""
11445 "    freq_nanosecs = atoll(argv[2]);\n"
11446 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
11447 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
11448 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
11449 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
11450 msgstr ""
11451 "    freq_nanosecs = atoll(argv[2]);\n"
11452 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
11453 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
11454 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
11455 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
11456
11457 #. type: Plain text
11458 #: build/C/man2/timer_create.2:382
11459 #, no-wrap
11460 msgid ""
11461 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
11462 "         errExit(\"timer_settime\");\n"
11463 msgstr ""
11464 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
11465 "         errExit(\"timer_settime\");\n"
11466
11467 #. type: Plain text
11468 #: build/C/man2/timer_create.2:385
11469 #, no-wrap
11470 msgid ""
11471 "    /* Sleep for a while; meanwhile, the timer may expire\n"
11472 "       multiple times */\n"
11473 msgstr ""
11474 "    /* Sleep for a while; meanwhile, the timer may expire\n"
11475 "       multiple times */\n"
11476
11477 #. type: Plain text
11478 #: build/C/man2/timer_create.2:388
11479 #, no-wrap
11480 msgid ""
11481 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
11482 "    sleep(atoi(argv[1]));\n"
11483 msgstr ""
11484 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
11485 "    sleep(atoi(argv[1]));\n"
11486
11487 #. type: Plain text
11488 #: build/C/man2/timer_create.2:391
11489 #, no-wrap
11490 msgid ""
11491 "    /* Unlock the timer signal, so that timer notification\n"
11492 "       can be delivered */\n"
11493 msgstr ""
11494 "    /* Unlock the timer signal, so that timer notification\n"
11495 "       can be delivered */\n"
11496
11497 #. type: Plain text
11498 #: build/C/man2/timer_create.2:395
11499 #, no-wrap
11500 msgid ""
11501 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
11502 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
11503 "        errExit(\"sigprocmask\");\n"
11504 msgstr ""
11505 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
11506 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
11507 "        errExit(\"sigprocmask\");\n"
11508
11509 #. type: Plain text
11510 #: build/C/man2/timer_create.2:398 build/C/man2/timerfd_create.2:540
11511 #, no-wrap
11512 msgid ""
11513 "    exit(EXIT_SUCCESS);\n"
11514 "}\n"
11515 msgstr ""
11516 "    exit(EXIT_SUCCESS);\n"
11517 "}\n"
11518
11519 #. type: Plain text
11520 #: build/C/man2/timer_create.2:414
11521 msgid ""
11522 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), B<timer_getoverrun>"
11523 "(2), B<timer_settime>(2), B<timerfd_create>(2), B<clock_getcpuclockid>(3), "
11524 "B<pthread_getcpuclockid>(3), B<pthreads>(7), B<sigevent>(7), B<signal>(7), "
11525 "B<time>(7)"
11526 msgstr ""
11527 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), B<timer_getoverrun>"
11528 "(2), B<timer_settime>(2), B<timerfd_create>(2), B<clock_getcpuclockid>(3), "
11529 "B<pthread_getcpuclockid>(3), B<pthreads>(7), B<sigevent>(7), B<signal>(7), "
11530 "B<time>(7)"
11531
11532 #. type: TH
11533 #: build/C/man2/timer_delete.2:26
11534 #, no-wrap
11535 msgid "TIMER_DELETE"
11536 msgstr "TIMER_DELETE"
11537
11538 #. type: TH
11539 #: build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26
11540 #, no-wrap
11541 msgid "2009-02-20"
11542 msgstr "2009-02-20"
11543
11544 #. type: Plain text
11545 #: build/C/man2/timer_delete.2:29
11546 msgid "timer_delete - delete a POSIX per-process timer"
11547 msgstr "timer_delete - プロセス単位の POSIX タイマーを削除する"
11548
11549 #. type: Plain text
11550 #: build/C/man2/timer_delete.2:32 build/C/man2/timer_getoverrun.2:32
11551 #: build/C/man2/timer_settime.2:33
11552 #, no-wrap
11553 msgid "B<#include E<lt>time.hE<gt>>\n"
11554 msgstr "B<#include E<lt>time.hE<gt>>\n"
11555
11556 #. type: Plain text
11557 #: build/C/man2/timer_delete.2:34
11558 #, no-wrap
11559 msgid "B<int timer_delete(timer_t >I<timerid>B<);>\n"
11560 msgstr "B<int timer_delete(timer_t >I<timerid>B<);>\n"
11561
11562 #. type: Plain text
11563 #: build/C/man2/timer_delete.2:45
11564 msgid "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11565 msgstr "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11566
11567 #. type: Plain text
11568 #: build/C/man2/timer_delete.2:53
11569 msgid ""
11570 "B<timer_delete>()  deletes the timer whose ID is given in I<timerid>.  If "
11571 "the timer was armed at the time of this call, it is disarmed before being "
11572 "deleted.  The treatment of any pending signal generated by the deleted timer "
11573 "is unspecified."
11574 msgstr ""
11575 "B<timer_delete>() は I<timerid> で指定された ID のタイマーを削除する。 "
11576 "B<timer_delete>() が呼び出された時点でタイマーが開始されている場合は、 削除す"
11577 "る前にタイマーの解除が行われる。 削除されるタイマーにより生成された処理待ちシ"
11578 "グナルの扱いは不定 (unspecified) である。"
11579
11580 #. type: Plain text
11581 #: build/C/man2/timer_delete.2:60
11582 msgid ""
11583 "On success, B<timer_delete>()  returns 0.  On failure, -1 is returned, and "
11584 "I<errno> is set to indicate the error."
11585 msgstr ""
11586 "成功すると、 B<timer_delete>() は 0 を返す。 失敗すると、 -1 が返り、 "
11587 "I<errno> にエラーを示す値が設定される。"
11588
11589 #. type: Plain text
11590 #: build/C/man2/timer_delete.2:65 build/C/man2/timer_getoverrun.2:95
11591 msgid "I<timerid> is not a valid timer ID."
11592 msgstr "I<timerid> が有効なタイマー ID ではない。"
11593
11594 #. type: Plain text
11595 #: build/C/man2/timer_delete.2:75
11596 msgid ""
11597 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
11598 "B<timer_settime>(2), B<time>(7)"
11599 msgstr ""
11600 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
11601 "B<timer_settime>(2), B<time>(7)"
11602
11603 #. type: TH
11604 #: build/C/man2/timer_getoverrun.2:26
11605 #, no-wrap
11606 msgid "TIMER_GETOVERRUN"
11607 msgstr "TIMER_GETOVERRUN"
11608
11609 #. type: Plain text
11610 #: build/C/man2/timer_getoverrun.2:29
11611 msgid "timer_getoverrun - get overrun count for a POSIX per-process timer"
11612 msgstr ""
11613
11614 #. type: Plain text
11615 #: build/C/man2/timer_getoverrun.2:34
11616 #, no-wrap
11617 msgid "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
11618 msgstr "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
11619
11620 #. type: Plain text
11621 #: build/C/man2/timer_getoverrun.2:45
11622 msgid "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11623 msgstr "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11624
11625 #. type: Plain text
11626 #: build/C/man2/timer_getoverrun.2:56
11627 msgid ""
11628 "B<timer_getoverrun>()  returns the \"overrun count\" for the timer referred "
11629 "to by I<timerid>.  An application can use the overrun count to accurately "
11630 "calculate the number of timer expirations that would have occurred over a "
11631 "given time interval.  Timer overruns can occur both when receiving "
11632 "expiration notifications via signals (B<SIGEV_SIGNAL>), and via threads "
11633 "(B<SIGEV_THREAD>)."
11634 msgstr ""
11635
11636 #. type: Plain text
11637 #: build/C/man2/timer_getoverrun.2:76
11638 msgid ""
11639 "When expiration notifications are delivered via a signal, overruns can occur "
11640 "as follows.  Regardless of whether or not a real-time signal is used for "
11641 "timer notifications, the system queues at most one signal per timer.  (This "
11642 "is the behavior specified by POSIX.1-2001.  The alternative, queuing one "
11643 "signal for each timer expiration, could easily result in overflowing the "
11644 "allowed limits for queued signals on the system.)  Because of system "
11645 "scheduling delays, or because the signal may be temporarily blocked, there "
11646 "can be a delay between the time when the notification signal is generated "
11647 "and the time when it is delivered (e.g., caught by a signal handler) or "
11648 "accepted (e.g., using B<sigwaitinfo>(2)).  In this interval, further timer "
11649 "expirations may occur.  The timer overrun count is the number of additional "
11650 "timer expirations that occurred between the time when the signal was "
11651 "generated and when it was delivered or accepted."
11652 msgstr ""
11653
11654 #. type: Plain text
11655 #: build/C/man2/timer_getoverrun.2:82
11656 msgid ""
11657 "Timer overruns can also occur when expiration notifications are delivered "
11658 "via invocation of a thread, since there may be an arbitrary delay between an "
11659 "expiration of the timer and the invocation of the notification thread, and "
11660 "in that delay interval, additional timer expirations may occur"
11661 msgstr ""
11662
11663 #. type: Plain text
11664 #: build/C/man2/timer_getoverrun.2:90
11665 msgid ""
11666 "On success, B<timer_getoverrun>()  returns the overrun count of the "
11667 "specified timer; this count may be 0 if no overruns have occurred.  On "
11668 "failure, -1 is returned, and I<errno> is set to indicate the error."
11669 msgstr ""
11670
11671 #. type: Plain text
11672 #: build/C/man2/timer_getoverrun.2:111
11673 msgid ""
11674 "When timer notifications are delivered via signals (B<SIGEV_SIGNAL>), on "
11675 "Linux it is also possible to obtain the overrun count via the I<si_overrun> "
11676 "field of the I<siginfo_t> structure (see B<sigaction>(2)).  This allows an "
11677 "application to avoid the overhead of making a system call to obtain the "
11678 "overrun count, but is a nonportable extension to POSIX.1-2001."
11679 msgstr ""
11680
11681 #.  FIXME . Austin bug filed, 11 Feb 09
11682 #. type: Plain text
11683 #: build/C/man2/timer_getoverrun.2:115
11684 msgid ""
11685 "POSIX.1-2001 discusses timer overruns only in the context of timer "
11686 "notifications using signals."
11687 msgstr ""
11688
11689 #.  Bug filed: http://bugzilla.kernel.org/show_bug.cgi?id=12665
11690 #.  http://thread.gmane.org/gmane.linux.kernel/113276/
11691 #. type: Plain text
11692 #: build/C/man2/timer_getoverrun.2:128
11693 msgid ""
11694 "POSIX.1-2001 specifies that if the timer overrun count is equal to or "
11695 "greater than an implementation-defined maximum, B<DELAYTIMER_MAX>, then "
11696 "B<timer_getoverrun>()  should return B<DELAYTIMER_MAX>.  However, Linux does "
11697 "not implement this feature: instead, if the timer overrun value exceeds the "
11698 "maximum representable integer, the counter cycles, starting once more from "
11699 "low values."
11700 msgstr ""
11701
11702 #. type: Plain text
11703 #: build/C/man2/timer_getoverrun.2:131 build/C/man2/timer_settime.2:212
11704 msgid "See B<timer_create>(2)."
11705 msgstr ""
11706
11707 #. type: Plain text
11708 #: build/C/man2/timer_getoverrun.2:141
11709 msgid ""
11710 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
11711 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
11712 "B<time>(7)"
11713 msgstr ""
11714 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
11715 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
11716 "B<time>(7)"
11717
11718 #. type: TH
11719 #: build/C/man2/timer_settime.2:26
11720 #, no-wrap
11721 msgid "TIMER_SETTIME"
11722 msgstr "TIMER_SETTIME"
11723
11724 #. type: TH
11725 #: build/C/man2/timer_settime.2:26
11726 #, no-wrap
11727 msgid "2012-10-15"
11728 msgstr "2012-10-15"
11729
11730 #. type: Plain text
11731 #: build/C/man2/timer_settime.2:30
11732 msgid ""
11733 "timer_settime, timer_gettime - arm/disarm and fetch state of POSIX per-"
11734 "process timer"
11735 msgstr ""
11736
11737 #. type: Plain text
11738 #: build/C/man2/timer_settime.2:38
11739 #, no-wrap
11740 msgid ""
11741 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
11742 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
11743 "B<                  struct itimerspec * >I<old_value>B<);>\n"
11744 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
11745 msgstr ""
11746 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
11747 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
11748 "B<                  struct itimerspec * >I<old_value>B<);>\n"
11749 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
11750
11751 #. type: Plain text
11752 #: build/C/man2/timer_settime.2:50
11753 msgid ""
11754 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11755 msgstr ""
11756 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11757
11758 #. type: Plain text
11759 #: build/C/man2/timer_settime.2:63
11760 msgid ""
11761 "B<timer_settime>()  arms or disarms the timer identified by I<timerid>.  The "
11762 "I<new_value> argument is pointer to an I<itimerspec> structure that "
11763 "specifies the new initial value and the new interval for the timer.  The "
11764 "I<itimerspec> structure is defined as follows:"
11765 msgstr ""
11766
11767 #. type: Plain text
11768 #: build/C/man2/timer_settime.2:70 build/C/man2/timerfd_create.2:128
11769 #, no-wrap
11770 msgid ""
11771 "struct timespec {\n"
11772 "    time_t tv_sec;                /* Seconds */\n"
11773 "    long   tv_nsec;               /* Nanoseconds */\n"
11774 "};\n"
11775 msgstr ""
11776 "struct timespec {\n"
11777 "    time_t tv_sec;                /* Seconds */\n"
11778 "    long   tv_nsec;               /* Nanoseconds */\n"
11779 "};\n"
11780
11781 #. type: Plain text
11782 #: build/C/man2/timer_settime.2:75
11783 #, no-wrap
11784 msgid ""
11785 "struct itimerspec {\n"
11786 "    struct timespec it_interval;  /* Timer interval */\n"
11787 "    struct timespec it_value;     /* Initial expiration */\n"
11788 "};\n"
11789 msgstr ""
11790 "struct itimerspec {\n"
11791 "    struct timespec it_interval;  /* Timer interval */\n"
11792 "    struct timespec it_value;     /* Initial expiration */\n"
11793 "};\n"
11794
11795 #. type: Plain text
11796 #: build/C/man2/timer_settime.2:87
11797 msgid ""
11798 "Each of the substructures of the I<itimerspec> structure is a I<timespec> "
11799 "structure that allows a time value to be specified in seconds and "
11800 "nanoseconds.  These time values are measured according to the clock that was "
11801 "specified when the timer was created by B<timer_create>(2)"
11802 msgstr ""
11803
11804 #. type: Plain text
11805 #: build/C/man2/timer_settime.2:101
11806 msgid ""
11807 "If I<new_value-E<gt>it_value> specifies a nonzero value (i.e., either "
11808 "subfield is nonzero), then B<timer_settime>()  arms (starts) the timer, "
11809 "setting it to initially expire at the given time.  (If the timer was already "
11810 "armed, then the previous settings are overwritten.)  If I<new_value-"
11811 "E<gt>it_value> specifies a zero value (i.e., both subfields are zero), then "
11812 "the timer is disarmed."
11813 msgstr ""
11814
11815 #. type: Plain text
11816 #: build/C/man2/timer_settime.2:113
11817 msgid ""
11818 "The I<new_value-E<gt>it_interval> field specifies the period of the timer, "
11819 "in seconds and nanoseconds.  If this field is nonzero, then each time that "
11820 "an armed timer expires, the timer is reloaded from the value specified in "
11821 "I<new_value-E<gt>it_interval>.  If I<new_value-E<gt>it_interval> specifies a "
11822 "zero value then the timer expires just once, at the time specified by "
11823 "I<it_value>."
11824 msgstr ""
11825
11826 #.  By experiment: the overrun count is set correctly, for CLOCK_REALTIME.
11827 #. type: Plain text
11828 #: build/C/man2/timer_settime.2:134
11829 msgid ""
11830 "By default, the initial expiration time specified in I<new_value-"
11831 "E<gt>it_value> is interpreted relative to the current time on the timer's "
11832 "clock at the time of the call.  This can be modified by specifying "
11833 "B<TIMER_ABSTIME> in I<flags>, in which case I<new_value-E<gt>it_value> is "
11834 "interpreted as an absolute value as measured on the timer's clock; that is, "
11835 "the timer will expire when the clock value reaches the value specified by "
11836 "I<new_value-E<gt>it_value>.  If the specified absolute time has already "
11837 "passed, then the timer expires immediately, and the overrun count (see "
11838 "B<timer_getoverrun>(2))  will be set correctly."
11839 msgstr ""
11840
11841 #.  Similar remarks might apply with respect to process and thread CPU time
11842 #.  clocks, but these clocks are not currently (2.6.28) settable on Linux.
11843 #. type: Plain text
11844 #: build/C/man2/timer_settime.2:144
11845 msgid ""
11846 "If the value of the B<CLOCK_REALTIME> clock is adjusted while an absolute "
11847 "timer based on that clock is armed, then the expiration of the timer will be "
11848 "appropriately adjusted.  Adjustments to the B<CLOCK_REALTIME> clock have no "
11849 "effect on relative timers based on that clock."
11850 msgstr ""
11851
11852 #. type: Plain text
11853 #: build/C/man2/timer_settime.2:153
11854 msgid ""
11855 "If I<old_value> is not NULL, then it points to a buffer that is used to "
11856 "return the previous interval of the timer (in I<old_value-"
11857 "E<gt>it_interval>)  and the amount of time until the timer would previously "
11858 "have next expired (in I<old_value-E<gt>it_value>)."
11859 msgstr ""
11860
11861 #. type: Plain text
11862 #: build/C/man2/timer_settime.2:173
11863 msgid ""
11864 "B<timer_gettime>()  returns the time until next expiration, and the "
11865 "interval, for the timer specified by I<timerid>, in the buffer pointed to by "
11866 "I<curr_value>.  The time remaining until the next timer expiration is "
11867 "returned in I<curr_value-E<gt>it_value>; this is always a relative value, "
11868 "regardless of whether the B<TIMER_ABSTIME> flag was used when arming the "
11869 "timer.  If the value returned in I<curr_value-E<gt>it_value> is zero, then "
11870 "the timer is currently disarmed.  The timer interval is returned in "
11871 "I<curr_value-E<gt>it_interval>.  If the value returned in I<curr_value-"
11872 "E<gt>it_interval> is zero, then this is a \"one-shot\" timer."
11873 msgstr ""
11874
11875 #. type: Plain text
11876 #: build/C/man2/timer_settime.2:182
11877 msgid ""
11878 "On success, B<timer_settime>()  and B<timer_gettime>()  return 0.  On error, "
11879 "-1 is returned, and I<errno> is set to indicate the error."
11880 msgstr ""
11881
11882 #. type: Plain text
11883 #: build/C/man2/timer_settime.2:184
11884 msgid "These functions may fail with the following errors:"
11885 msgstr ""
11886
11887 #. type: Plain text
11888 #: build/C/man2/timer_settime.2:191
11889 msgid "I<new_value>, I<old_value>, or I<curr_value> is not a valid pointer."
11890 msgstr ""
11891
11892 #.  FIXME . eventually: invalid value in flags
11893 #. type: Plain text
11894 #: build/C/man2/timer_settime.2:196
11895 msgid "I<timerid> is invalid."
11896 msgstr ""
11897
11898 #. type: Plain text
11899 #: build/C/man2/timer_settime.2:199
11900 msgid "B<timer_settime>()  may fail with the following errors:"
11901 msgstr ""
11902
11903 #. type: Plain text
11904 #: build/C/man2/timer_settime.2:205
11905 msgid ""
11906 "I<new_value.it_value> is negative; or I<new_value.it_value.tv_nsec> is "
11907 "negative or greater than 999,999,999."
11908 msgstr ""
11909
11910 #. type: Plain text
11911 #: build/C/man2/timer_settime.2:207
11912 msgid "These system calls are available since Linux 2.6."
11913 msgstr ""
11914
11915 #. type: Plain text
11916 #: build/C/man2/timer_settime.2:216
11917 msgid "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
11918 msgstr "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
11919
11920 #. type: TH
11921 #: build/C/man2/timerfd_create.2:21
11922 #, no-wrap
11923 msgid "TIMERFD_CREATE"
11924 msgstr "TIMERFD_CREATE"
11925
11926 #. type: TH
11927 #: build/C/man2/timerfd_create.2:21
11928 #, no-wrap
11929 msgid "2011-09-14"
11930 msgstr "2011-09-14"
11931
11932 #. type: Plain text
11933 #: build/C/man2/timerfd_create.2:25
11934 msgid ""
11935 "timerfd_create, timerfd_settime, timerfd_gettime - timers that notify via "
11936 "file descriptors"
11937 msgstr ""
11938 "timerfd_create, timerfd_settime, timerfd_gettime - ファイルディスクリプタ経由"
11939 "で通知するタイマー"
11940
11941 #. type: Plain text
11942 #: build/C/man2/timerfd_create.2:28
11943 #, no-wrap
11944 msgid "B<#include E<lt>sys/timerfd.hE<gt>>\n"
11945 msgstr "B<#include E<lt>sys/timerfd.hE<gt>>\n"
11946
11947 #. type: Plain text
11948 #: build/C/man2/timerfd_create.2:30
11949 #, no-wrap
11950 msgid "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
11951 msgstr "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
11952
11953 #. type: Plain text
11954 #: build/C/man2/timerfd_create.2:34
11955 #, no-wrap
11956 msgid ""
11957 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
11958 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
11959 "B<                    struct itimerspec *>I<old_value>B<);>\n"
11960 msgstr ""
11961 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
11962 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
11963 "B<                    struct itimerspec *>I<old_value>B<);>\n"
11964
11965 #. type: Plain text
11966 #: build/C/man2/timerfd_create.2:36
11967 #, no-wrap
11968 msgid "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
11969 msgstr "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
11970
11971 #. type: Plain text
11972 #: build/C/man2/timerfd_create.2:49
11973 msgid ""
11974 "These system calls create and operate on a timer that delivers timer "
11975 "expiration notifications via a file descriptor.  They provide an alternative "
11976 "to the use of B<setitimer>(2)  or B<timer_create>(2), with the advantage "
11977 "that the file descriptor may be monitored by B<select>(2), B<poll>(2), and "
11978 "B<epoll>(7)."
11979 msgstr ""
11980 "これらのシステムコールは、満了通知をファイルディスクリプタ経由で配送する タイ"
11981 "マーの生成と操作を行う。 これらは、 B<setitimer>(2)  や B<timer_create>(2)  "
11982 "を用いる方法の代わりとなるものであり、このファイルディスクリプタを B<select>"
11983 "(2), B<poll>(2), B<epoll>(7)  で監視できるという利点がある。"
11984
11985 #. type: Plain text
11986 #: build/C/man2/timerfd_create.2:61
11987 msgid ""
11988 "The use of these three system calls is analogous to the use of "
11989 "B<timer_create>(2), B<timer_settime>(2), and B<timer_gettime>(2).  (There is "
11990 "no analog of B<timer_getoverrun>(2), since that functionality is provided by "
11991 "B<read>(2), as described below.)"
11992 msgstr ""
11993 "これらのシステムコールを使うのは、それぞれ B<timer_create>(2), "
11994 "B<timer_settime>(2), B<timer_gettime>(2)  を使うのと同様である "
11995 "(B<timer_getoverrun>(2)  に対応するものはなく、以下で説明するように この機能"
11996 "は B<read>(2)  により提供される)。"
11997
11998 #. type: SS
11999 #: build/C/man2/timerfd_create.2:61
12000 #, no-wrap
12001 msgid "timerfd_create()"
12002 msgstr "timerfd_create()"
12003
12004 #. type: Plain text
12005 #: build/C/man2/timerfd_create.2:80
12006 msgid ""
12007 "B<timerfd_create>()  creates a new timer object, and returns a file "
12008 "descriptor that refers to that timer.  The I<clockid> argument specifies the "
12009 "clock that is used to mark the progress of the timer, and must be either "
12010 "B<CLOCK_REALTIME> or B<CLOCK_MONOTONIC>.  B<CLOCK_REALTIME> is a settable "
12011 "system-wide clock.  B<CLOCK_MONOTONIC> is a nonsettable clock that is not "
12012 "affected by discontinuous changes in the system clock (e.g., manual changes "
12013 "to system time).  The current value of each of these clocks can be retrieved "
12014 "using B<clock_gettime>(2)."
12015 msgstr ""
12016 "B<timerfd_create>()  は新規のタイマーオブジェクトを生成し、そのタイマーを参照"
12017 "するファイル ディスクリプタを返す。 I<clockid> 引き数は、タイマーの進捗を管理"
12018 "するためのクロックを指定するもので、 B<CLOCK_REALTIME> か B<CLOCK_MONOTONIC> "
12019 "のいずれかでなければならない。 B<CLOCK_REALTIME> はシステム全体で使用されるク"
12020 "ロックで、このクロックは変更可能である。 B<CLOCK_MONOTONIC> は変更されること"
12021 "のないクロックで、(システム時刻の手動での変更などの)  システムクロックの不連"
12022 "続な変化の影響を受けない。 これらのクロックの現在の値は B<clock_gettime>(2)  "
12023 "を使って取得できる。"
12024
12025 #. type: Plain text
12026 #: build/C/man2/timerfd_create.2:85
12027 msgid ""
12028 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
12029 "I<flags> to change the behavior of B<timerfd_create>():"
12030 msgstr ""
12031 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
12032 "ることで、 B<timerfd_create>()  の振舞いを変更することができる。"
12033
12034 #. type: TP
12035 #: build/C/man2/timerfd_create.2:85
12036 #, no-wrap
12037 msgid "B<TFD_NONBLOCK>"
12038 msgstr "B<TFD_NONBLOCK>"
12039
12040 #. type: TP
12041 #: build/C/man2/timerfd_create.2:93
12042 #, no-wrap
12043 msgid "B<TFD_CLOEXEC>"
12044 msgstr "B<TFD_CLOEXEC>"
12045
12046 #. type: Plain text
12047 #: build/C/man2/timerfd_create.2:107
12048 msgid ""
12049 "In Linux versions up to and including 2.6.26, I<flags> must be specified as "
12050 "zero."
12051 msgstr ""
12052 "バージョン 2.6.26 以前の Linux では、 I<flags> 引き数は未使用であり、0 を指定"
12053 "しなければならない。"
12054
12055 #. type: SS
12056 #: build/C/man2/timerfd_create.2:107
12057 #, no-wrap
12058 msgid "timerfd_settime()"
12059 msgstr "timerfd_settime()"
12060
12061 #. type: Plain text
12062 #: build/C/man2/timerfd_create.2:112
12063 msgid ""
12064 "B<timerfd_settime>()  arms (starts) or disarms (stops)  the timer referred "
12065 "to by the file descriptor I<fd>."
12066 msgstr ""
12067 "B<timerfd_settime>()  は、ファイルディスクリプタ I<fd> により参照されるタイ"
12068 "マーを開始したり停止したりする。"
12069
12070 #. type: Plain text
12071 #: build/C/man2/timerfd_create.2:121
12072 msgid ""
12073 "The I<new_value> argument specifies the initial expiration and interval for "
12074 "the timer.  The I<itimer> structure used for this argument contains two "
12075 "fields, each of which is in turn a structure of type I<timespec>:"
12076 msgstr ""
12077 "I<new_value> 引き数は、タイマーの満了時間 (expiration) の初期値と間隔 "
12078 "(interval) を 指定する。この引き数で使用されている I<itimerspec> 構造体には "
12079 "2 つのフィールドがあり、各フィールドは I<timespec> 型の構造体である。"
12080
12081 #. type: Plain text
12082 #: build/C/man2/timerfd_create.2:133
12083 #, no-wrap
12084 msgid ""
12085 "struct itimerspec {\n"
12086 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
12087 "    struct timespec it_value;     /* Initial expiration */\n"
12088 "};\n"
12089 msgstr ""
12090 "struct itimerspec {\n"
12091 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
12092 "    struct timespec it_value;     /* Initial expiration */\n"
12093 "};\n"
12094
12095 #. type: Plain text
12096 #: build/C/man2/timerfd_create.2:145
12097 msgid ""
12098 "I<new_value.it_value> specifies the initial expiration of the timer, in "
12099 "seconds and nanoseconds.  Setting either field of I<new_value.it_value> to a "
12100 "nonzero value arms the timer.  Setting both fields of I<new_value.it_value> "
12101 "to zero disarms the timer."
12102 msgstr ""
12103 "I<new_value.it_value> はタイマーの満了時間の初期値を、秒とナノ秒で指定する。 "
12104 "I<new_value.it_value> のフィールドのうち少なくとも一方に 0 以外の値を設定する"
12105 "と、 タイマーが開始される。 両方のフィールドに 0 を設定すると、タイマーが停止"
12106 "する。"
12107
12108 #. type: Plain text
12109 #: build/C/man2/timerfd_create.2:154
12110 msgid ""
12111 "Setting one or both fields of I<new_value.it_interval> to nonzero values "
12112 "specifies the period, in seconds and nanoseconds, for repeated timer "
12113 "expirations after the initial expiration.  If both fields of I<new_value."
12114 "it_interval> are zero, the timer expires just once, at the time specified by "
12115 "I<new_value.it_value>."
12116 msgstr ""
12117 "I<new_value.it_interval> はタイマーの一回目の満了後に繰り返しタイマーの満了間"
12118 "隔を、秒とナノ秒で指定する。 I<new_value.it_interval> のフィールドのうち少な"
12119 "くとも一方に 0 以外の値を設定すると、 繰り返しタイマーが有効になる。 両方の"
12120 "フィールドに 0 を設定した場合、タイマーは I<new_value.it_value> で指定された"
12121 "時間後に、一回だけ満了して停止する。"
12122
12123 #. type: Plain text
12124 #: build/C/man2/timerfd_create.2:170
12125 msgid ""
12126 "The I<flags> argument is either 0, to start a relative timer (I<new_value."
12127 "it_value> specifies a time relative to the current value of the clock "
12128 "specified by I<clockid>), or B<TFD_TIMER_ABSTIME>, to start an absolute "
12129 "timer (I<new_value.it_value> specifies an absolute time for the clock "
12130 "specified by I<clockid>; that is, the timer will expire when the value of "
12131 "that clock reaches the value specified in I<new_value.it_value>)."
12132 msgstr ""
12133 "I<flags> 引き数には 0 か B<TFD_TIMER_ABSTIME> を指定する。 0 は相対時刻\n"
12134 "タイマーを意味し、 I<new_value.it_value> では I<clockid> で指定された\n"
12135 "クロックの現在の値からの相対的な時刻を指定する。 B<TFD_TIMER_ABSTIME>\n"
12136 "は絶対時刻タイマーを意味し、 I<new_value.it_interval> では I<clockid>\n"
12137 "で指定されたクロックの絶対時刻を指定する。\n"
12138 "つまり、クロックの値が I<new_value.it_interval> で指定された時刻に\n"
12139 "達したら、タイマーが満了する。"
12140
12141 #. type: Plain text
12142 #: build/C/man2/timerfd_create.2:181
12143 msgid ""
12144 "If the I<old_value> argument is not NULL, then the I<itimerspec> structure "
12145 "that it points to is used to return the setting of the timer that was "
12146 "current at the time of the call; see the description of B<timerfd_gettime>"
12147 "()  following."
12148 msgstr ""
12149 "I<old_value> 引き数が NULL でない場合、 I<old_value> 引き数が指す\n"
12150 "I<itimerspec> 構造体は、 B<timerfd_settime>() を呼び出した時点での\n"
12151 "タイマーの設定を返すのに使用される。\n"
12152 "下記の B<timerfd_gettime>() の説明を参照。"
12153
12154 #. type: SS
12155 #: build/C/man2/timerfd_create.2:181
12156 #, no-wrap
12157 msgid "timerfd_gettime()"
12158 msgstr "timerfd_gettime()"
12159
12160 #. type: Plain text
12161 #: build/C/man2/timerfd_create.2:190
12162 msgid ""
12163 "B<timerfd_gettime>()  returns, in I<curr_value>, an I<itimerspec> structure "
12164 "that contains the current setting of the timer referred to by the file "
12165 "descriptor I<fd>."
12166 msgstr ""
12167 "B<timerfd_gettime>()  は、ファイルディスクリプタ I<fd> で参照されるタイマーの"
12168 "現在の設定が入った I<itimerspec> 構造体を、 I<curr_value> に格納して返す。"
12169
12170 #. type: Plain text
12171 #: build/C/man2/timerfd_create.2:200
12172 msgid ""
12173 "The I<it_value> field returns the amount of time until the timer will next "
12174 "expire.  If both fields of this structure are zero, then the timer is "
12175 "currently disarmed.  This field always contains a relative value, regardless "
12176 "of whether the B<TFD_TIMER_ABSTIME> flag was specified when setting the "
12177 "timer."
12178 msgstr ""
12179 "I<it_value> フィールドは、タイマーが次に満了するまでの残り時間を返す。 この構"
12180 "造体の両方のフィールドが 0 であれば、タイマーは現在停止している。 タイマー設"
12181 "定時に B<TFD_TIMER_ABSTIME> フラグが指定されたかに関わらず、このフィールドは"
12182 "常に相対値が格納される。"
12183
12184 #. type: Plain text
12185 #: build/C/man2/timerfd_create.2:207
12186 msgid ""
12187 "The I<it_interval> field returns the interval of the timer.  If both fields "
12188 "of this structure are zero, then the timer is set to expire just once, at "
12189 "the time specified by I<curr_value.it_value>."
12190 msgstr ""
12191 "I<it_interval> フィールドは、タイマーの間隔を返す。 この構造体の両方のフィー"
12192 "ルドが 0 であれば、タイマーは I<new_value.it_value> で指定された時間後に一回"
12193 "だけ満了して停止するように設定されている。"
12194
12195 #. type: SS
12196 #: build/C/man2/timerfd_create.2:207
12197 #, no-wrap
12198 msgid "Operating on a timer file descriptor"
12199 msgstr "タイマー・ファイルディスクリプタに対する操作"
12200
12201 #. type: Plain text
12202 #: build/C/man2/timerfd_create.2:211
12203 msgid ""
12204 "The file descriptor returned by B<timerfd_create>()  supports the following "
12205 "operations:"
12206 msgstr ""
12207 "B<timerfd_create>()  が返すファイルディスクリプタは以下の操作をサポートしてい"
12208 "る。"
12209
12210 #. type: Plain text
12211 #: build/C/man2/timerfd_create.2:225
12212 msgid ""
12213 "If the timer has already expired one or more times since its settings were "
12214 "last modified using B<timerfd_settime>(), or since the last successful "
12215 "B<read>(2), then the buffer given to B<read>(2)  returns an unsigned 8-byte "
12216 "integer (I<uint64_t>)  containing the number of expirations that have "
12217 "occurred.  (The returned value is in host byte order, i.e., the native byte "
12218 "order for integers on the host machine.)"
12219 msgstr ""
12220 "B<timerfd_settime>()  を使ってタイマーの設定が最後変更されて以降、または "
12221 "B<read>(2)  の呼び出しに最後に成功して以降に、タイマーの満了が一回以上発生し"
12222 "ていれば、 B<read>(2)  に渡されたバッファに、タイマー満了回数を示す 8 バイト"
12223 "の unsigned 型の整数 (I<uint64_t>)  が返される (返される値はホストバイトオー"
12224 "ダ、つまりそのホストマシンにおける 整数の通常のバイトオーダである)。"
12225
12226 #. type: Plain text
12227 #: build/C/man2/timerfd_create.2:238
12228 msgid ""
12229 "If no timer expirations have occurred at the time of the B<read>(2), then "
12230 "the call either blocks until the next timer expiration, or fails with the "
12231 "error B<EAGAIN> if the file descriptor has been made nonblocking (via the "
12232 "use of the B<fcntl>(2)  B<F_SETFL> operation to set the B<O_NONBLOCK> flag)."
12233 msgstr ""
12234 "B<read>(2)  を行った時点でタイマーの満了が発生していなければ、 B<read>(2)  は"
12235 "停止 (block) する、もしくはファイルディスクリプタが 非停止 (nonblocking) に設"
12236 "定されている場合はエラー B<EAGAIN> で失敗する (非停止モードにするには、 "
12237 "B<fcntl>(2)  の B<F_SETFL> 命令で B<O_NONBLOCK> フラグをセットする)。"
12238
12239 #. type: Plain text
12240 #: build/C/man2/timerfd_create.2:244
12241 msgid ""
12242 "A B<read>(2)  will fail with the error B<EINVAL> if the size of the supplied "
12243 "buffer is less than 8 bytes."
12244 msgstr ""
12245 "渡されたバッファの大きさが 8 バイト未満の場合、 B<read>(2)  はエラー "
12246 "B<EINVAL> で失敗する。"
12247
12248 #. type: Plain text
12249 #: build/C/man2/timerfd_create.2:255
12250 msgid ""
12251 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
12252 "B<poll>(2)  B<POLLIN> flag)  if one or more timer expirations have occurred."
12253 msgstr ""
12254 "一つ以上のタイマー満了が発生していれば、 ファイルディスクリプタは読み出し可能"
12255 "となる (B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラ"
12256 "グ)。"
12257
12258 #. type: Plain text
12259 #: build/C/man2/timerfd_create.2:262
12260 msgid ""
12261 "The file descriptor also supports the other file-descriptor multiplexing "
12262 "APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
12263 msgstr ""
12264 "このファイルディスクリプタは、他のファイルディスクリプタ多重 API である "
12265 "B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
12266
12267 #. type: Plain text
12268 #: build/C/man2/timerfd_create.2:269
12269 msgid ""
12270 "When the file descriptor is no longer required it should be closed.  When "
12271 "all file descriptors associated with the same timer object have been closed, "
12272 "the timer is disarmed and its resources are freed by the kernel."
12273 msgstr ""
12274 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
12275 "る。 同じ timer オブジェクトに関連付けられたファイルディスクリプタが全て ク"
12276 "ローズされると、そのタイマーは解除され、 そのオブジェクト用の資源がカーネルに"
12277 "より解放される。"
12278
12279 #. type: Plain text
12280 #: build/C/man2/timerfd_create.2:281
12281 msgid ""
12282 "After a B<fork>(2), the child inherits a copy of the file descriptor created "
12283 "by B<timerfd_create>().  The file descriptor refers to the same underlying "
12284 "timer object as the corresponding file descriptor in the parent, and B<read>"
12285 "(2)s in the child will return information about expirations of the timer."
12286 msgstr ""
12287 "B<fork>(2)  が行われると、子プロセスは B<timerfd_create>()  により生成された"
12288 "ファイルディスクリプタのコピーを 継承する。そのファイルディスクリプタは、親プ"
12289 "ロセスの対応する ファイルディスクリプタと同じタイマーオブジェクトを参照してお"
12290 "り、 子プロセスの B<read>(2)  でも同じタイマーの満了に関する情報が返される。"
12291
12292 #. type: Plain text
12293 #: build/C/man2/timerfd_create.2:287
12294 msgid ""
12295 "A file descriptor created by B<timerfd_create>()  is preserved across "
12296 "B<execve>(2), and continues to generate timer expirations if the timer was "
12297 "armed."
12298 msgstr ""
12299 "B<execve>(2)  の前後で B<timerfd_create>()  により生成されたファイルディスク"
12300 "リプタは保持され、 タイマーが開始されていた場合にはタイマーの満了が発生し続け"
12301 "る。"
12302
12303 #. type: Plain text
12304 #: build/C/man2/timerfd_create.2:294
12305 msgid ""
12306 "On success, B<timerfd_create>()  returns a new file descriptor.  On error, "
12307 "-1 is returned and I<errno> is set to indicate the error."
12308 msgstr ""
12309 "成功すると、 B<timerfd_create>()  は新しいファイルディスクリプタを返す。 エ"
12310 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
12311
12312 #. type: Plain text
12313 #: build/C/man2/timerfd_create.2:302
12314 msgid ""
12315 "B<timerfd_settime>()  and B<timerfd_gettime>()  return 0 on success; on "
12316 "error they return -1, and set I<errno> to indicate the error."
12317 msgstr ""
12318 "B<timerfd_settime>()  と B<timerfd_gettime>()  は成功すると 0 を返す。 エラー"
12319 "の場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
12320
12321 #. type: Plain text
12322 #: build/C/man2/timerfd_create.2:305
12323 msgid "B<timerfd_create>()  can fail with the following errors:"
12324 msgstr "B<timerfd_create>()  は以下のエラーで失敗する可能性がある。"
12325
12326 #. type: Plain text
12327 #: build/C/man2/timerfd_create.2:313
12328 msgid ""
12329 "The I<clockid> argument is neither B<CLOCK_MONOTONIC> nor B<CLOCK_REALTIME>;"
12330 msgstr ""
12331 "I<clockid> 引き数が B<CLOCK_MONOTONIC> でも B<CLOCK_REALTIME> でもない。"
12332
12333 #. type: Plain text
12334 #: build/C/man2/timerfd_create.2:333
12335 msgid "There was insufficient kernel memory to create the timer."
12336 msgstr "タイマーを作成するのに十分なカーネルメモリがなかった。"
12337
12338 #. type: Plain text
12339 #: build/C/man2/timerfd_create.2:338
12340 msgid ""
12341 "B<timerfd_settime>()  and B<timerfd_gettime>()  can fail with the following "
12342 "errors:"
12343 msgstr ""
12344 "B<timerfd_settime>()  と B<timerfd_gettime>()  は以下のエラーで失敗する可能性"
12345 "がある。"
12346
12347 #. type: Plain text
12348 #: build/C/man2/timerfd_create.2:342
12349 msgid "I<fd> is not a valid file descriptor."
12350 msgstr "I<fd> が有効なファイルディスクリプタでない。"
12351
12352 #. type: Plain text
12353 #: build/C/man2/timerfd_create.2:353
12354 msgid "I<fd> is not a valid timerfd file descriptor."
12355 msgstr "I<fd> が有効な timerfd ファイルディスクリプタでない。"
12356
12357 #. type: Plain text
12358 #: build/C/man2/timerfd_create.2:356
12359 msgid "B<timerfd_settime>()  can also fail with the following errors:"
12360 msgstr "B<timerfd_settime>()  は以下のエラーで失敗することもある。"
12361
12362 #. type: Plain text
12363 #: build/C/man2/timerfd_create.2:362
12364 msgid ""
12365 "I<new_value> is not properly initialized (one of the I<tv_nsec> falls "
12366 "outside the range zero to 999,999,999)."
12367 msgstr ""
12368 "I<new_value> が適切に初期化されていない (I<tv_nsec> の一つが 0 から "
12369 "999,999,999 までの範囲に入っていない)。"
12370
12371 #.  This case only checked since 2.6.29, and 2.2.2[78].some-stable-version.
12372 #.  In older kernel versions, no check was made for invalid flags.
12373 #. type: Plain text
12374 #: build/C/man2/timerfd_create.2:368
12375 msgid "I<flags> is invalid."
12376 msgstr "I<flags> が無効である。"
12377
12378 #. type: Plain text
12379 #: build/C/man2/timerfd_create.2:371
12380 msgid ""
12381 "These system calls are available on Linux since kernel 2.6.25.  Library "
12382 "support is provided by glibc since version 2.8."
12383 msgstr ""
12384 "これらのシステムコールはカーネル 2.6.25 以降の Linux で利用可能である。 ライ"
12385 "ブラリ側のサポートはバージョン 2.8 以降の glibc で提供されている。"
12386
12387 #.  2.6.29
12388 #. type: Plain text
12389 #: build/C/man2/timerfd_create.2:379
12390 msgid ""
12391 "Currently, B<timerfd_create>()  supports fewer types of clock IDs than "
12392 "B<timer_create>(2)."
12393 msgstr ""
12394 "現在のところ、 B<timerfd_create>()  が対応している clockid の種類は "
12395 "B<timer_create>(2)  よりも少ない。"
12396
12397 #. type: Plain text
12398 #: build/C/man2/timerfd_create.2:388
12399 msgid ""
12400 "The following program creates a timer and then monitors its progress.  The "
12401 "program accepts up to three command-line arguments.  The first argument "
12402 "specifies the number of seconds for the initial expiration of the timer.  "
12403 "The second argument specifies the interval for the timer, in seconds.  The "
12404 "third argument specifies the number of times the program should allow the "
12405 "timer to expire before terminating.  The second and third command-line "
12406 "arguments are optional."
12407 msgstr ""
12408 "以下のプログラムは、タイマーを作成し、その進捗をモニターするものである。 この"
12409 "プログラムは最大で 3 個のコマンドライン引き数を取り、 第一引き数ではタイマー"
12410 "の満了時間の初期値 (秒数単位) を、 第二引き数ではタイマーの間隔 (秒数単位) "
12411 "を、 第三引き数ではタイマーが何回満了したらプログラムが終了するかを指定す"
12412 "る。 第二引き数と第三引き数は省略可能である。"
12413
12414 #. type: Plain text
12415 #: build/C/man2/timerfd_create.2:390 build/C/man2/wait.2:569
12416 msgid "The following shell session demonstrates the use of the program:"
12417 msgstr "以下のシェルのセッションはこのプログラムの使用例を示したものである。"
12418
12419 #. type: Plain text
12420 #: build/C/man2/timerfd_create.2:405
12421 #, no-wrap
12422 msgid ""
12423 "$B< a.out 3 1 100>\n"
12424 "0.000: timer started\n"
12425 "3.000: read: 1; total=1\n"
12426 "4.000: read: 1; total=2\n"
12427 "B<^Z >                 # type control-Z to suspend the program\n"
12428 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
12429 "$ B<fg>                # Resume execution after a few seconds\n"
12430 "a.out 3 1 100\n"
12431 "9.660: read: 5; total=7\n"
12432 "10.000: read: 1; total=8\n"
12433 "11.000: read: 1; total=9\n"
12434 "B<^C >                 # type control-C to suspend the program\n"
12435 msgstr ""
12436 "$B< a.out 3 1 100>\n"
12437 "0.000: timer started\n"
12438 "3.000: read: 1; total=1\n"
12439 "4.000: read: 1; total=2\n"
12440 "B<^Z >                 # type control-Z to suspend the program\n"
12441 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
12442 "$ B<fg>                # Resume execution after a few seconds\n"
12443 "a.out 3 1 100\n"
12444 "9.660: read: 5; total=7\n"
12445 "10.000: read: 1; total=8\n"
12446 "11.000: read: 1; total=9\n"
12447 "B<^C >                 # type control-C to suspend the program\n"
12448
12449 #.  The commented out code here is what we currently need until
12450 #.  the required stuff is in glibc
12451 #. /* Link with -lrt */
12452 #. #define _GNU_SOURCE
12453 #. #include <sys/syscall.h>
12454 #. #include <unistd.h>
12455 #. #include <time.h>
12456 #. #if defined(__i386__)
12457 #. #define __NR_timerfd_create 322
12458 #. #define __NR_timerfd_settime 325
12459 #. #define __NR_timerfd_gettime 326
12460 #. #endif
12461 #. static int
12462 #. timerfd_create(int clockid, int flags)
12463 #. {
12464 #.     return syscall(__NR_timerfd_create, clockid, flags);
12465 #. }
12466 #. static int
12467 #. timerfd_settime(int fd, int flags, struct itimerspec *new_value,
12468 #.         struct itimerspec *curr_value)
12469 #. {
12470 #.     return syscall(__NR_timerfd_settime, fd, flags, new_value,
12471 #.                    curr_value);
12472 #. }
12473 #. static int
12474 #. timerfd_gettime(int fd, struct itimerspec *curr_value)
12475 #. {
12476 #.     return syscall(__NR_timerfd_gettime, fd, curr_value);
12477 #. }
12478 #. #define TFD_TIMER_ABSTIME (1 << 0)
12479 #. ////////////////////////////////////////////////////////////
12480 #. type: Plain text
12481 #: build/C/man2/timerfd_create.2:454
12482 #, no-wrap
12483 msgid ""
12484 "#include E<lt>sys/timerfd.hE<gt>\n"
12485 "#include E<lt>time.hE<gt>\n"
12486 "#include E<lt>unistd.hE<gt>\n"
12487 "#include E<lt>stdlib.hE<gt>\n"
12488 "#include E<lt>stdio.hE<gt>\n"
12489 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
12490 msgstr ""
12491 "#include E<lt>sys/timerfd.hE<gt>\n"
12492 "#include E<lt>time.hE<gt>\n"
12493 "#include E<lt>unistd.hE<gt>\n"
12494 "#include E<lt>stdlib.hE<gt>\n"
12495 "#include E<lt>stdio.hE<gt>\n"
12496 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
12497
12498 #. type: Plain text
12499 #: build/C/man2/timerfd_create.2:457
12500 #, no-wrap
12501 msgid ""
12502 "#define handle_error(msg) \\e\n"
12503 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
12504 msgstr ""
12505 "#define handle_error(msg) \\e\n"
12506 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
12507
12508 #. type: Plain text
12509 #: build/C/man2/timerfd_create.2:465
12510 #, no-wrap
12511 msgid ""
12512 "static void\n"
12513 "print_elapsed_time(void)\n"
12514 "{\n"
12515 "    static struct timespec start;\n"
12516 "    struct timespec curr;\n"
12517 "    static int first_call = 1;\n"
12518 "    int secs, nsecs;\n"
12519 msgstr ""
12520 "static void\n"
12521 "print_elapsed_time(void)\n"
12522 "{\n"
12523 "    static struct timespec start;\n"
12524 "    struct timespec curr;\n"
12525 "    static int first_call = 1;\n"
12526 "    int secs, nsecs;\n"
12527
12528 #. type: Plain text
12529 #: build/C/man2/timerfd_create.2:471
12530 #, no-wrap
12531 msgid ""
12532 "    if (first_call) {\n"
12533 "        first_call = 0;\n"
12534 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
12535 "            handle_error(\"clock_gettime\");\n"
12536 "    }\n"
12537 msgstr ""
12538 "    if (first_call) {\n"
12539 "        first_call = 0;\n"
12540 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
12541 "            handle_error(\"clock_gettime\");\n"
12542 "    }\n"
12543
12544 #. type: Plain text
12545 #: build/C/man2/timerfd_create.2:474
12546 #, no-wrap
12547 msgid ""
12548 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
12549 "        handle_error(\"clock_gettime\");\n"
12550 msgstr ""
12551 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
12552 "        handle_error(\"clock_gettime\");\n"
12553
12554 #. type: Plain text
12555 #: build/C/man2/timerfd_create.2:483
12556 #, no-wrap
12557 msgid ""
12558 "    secs = curr.tv_sec - start.tv_sec;\n"
12559 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
12560 "    if (nsecs E<lt> 0) {\n"
12561 "        secs--;\n"
12562 "        nsecs += 1000000000;\n"
12563 "    }\n"
12564 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
12565 "}\n"
12566 msgstr ""
12567 "    secs = curr.tv_sec - start.tv_sec;\n"
12568 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
12569 "    if (nsecs E<lt> 0) {\n"
12570 "        secs--;\n"
12571 "        nsecs += 1000000000;\n"
12572 "    }\n"
12573 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
12574 "}\n"
12575
12576 #. type: Plain text
12577 #: build/C/man2/timerfd_create.2:492
12578 #, no-wrap
12579 msgid ""
12580 "int\n"
12581 "main(int argc, char *argv[])\n"
12582 "{\n"
12583 "    struct itimerspec new_value;\n"
12584 "    int max_exp, fd;\n"
12585 "    struct timespec now;\n"
12586 "    uint64_t exp, tot_exp;\n"
12587 "    ssize_t s;\n"
12588 msgstr ""
12589 "int\n"
12590 "main(int argc, char *argv[])\n"
12591 "{\n"
12592 "    struct itimerspec new_value;\n"
12593 "    int max_exp, fd;\n"
12594 "    struct timespec now;\n"
12595 "    uint64_t exp, tot_exp;\n"
12596 "    ssize_t s;\n"
12597
12598 #. type: Plain text
12599 #: build/C/man2/timerfd_create.2:498
12600 #, no-wrap
12601 msgid ""
12602 "    if ((argc != 2) && (argc != 4)) {\n"
12603 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
12604 "                argv[0]);\n"
12605 "        exit(EXIT_FAILURE);\n"
12606 "    }\n"
12607 msgstr ""
12608 "    if ((argc != 2) && (argc != 4)) {\n"
12609 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
12610 "                argv[0]);\n"
12611 "        exit(EXIT_FAILURE);\n"
12612 "    }\n"
12613
12614 #. type: Plain text
12615 #: build/C/man2/timerfd_create.2:501
12616 #, no-wrap
12617 msgid ""
12618 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
12619 "        handle_error(\"clock_gettime\");\n"
12620 msgstr ""
12621 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
12622 "        handle_error(\"clock_gettime\");\n"
12623
12624 #. type: Plain text
12625 #: build/C/man2/timerfd_create.2:504
12626 #, no-wrap
12627 msgid ""
12628 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
12629 "       expiration and interval as specified in command line */\n"
12630 msgstr ""
12631 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
12632 "       expiration and interval as specified in command line */\n"
12633
12634 #. type: Plain text
12635 #: build/C/man2/timerfd_create.2:515
12636 #, no-wrap
12637 msgid ""
12638 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
12639 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
12640 "    if (argc == 2) {\n"
12641 "        new_value.it_interval.tv_sec = 0;\n"
12642 "        max_exp = 1;\n"
12643 "    } else {\n"
12644 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
12645 "        max_exp = atoi(argv[3]);\n"
12646 "    }\n"
12647 "    new_value.it_interval.tv_nsec = 0;\n"
12648 msgstr ""
12649 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
12650 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
12651 "    if (argc == 2) {\n"
12652 "        new_value.it_interval.tv_sec = 0;\n"
12653 "        max_exp = 1;\n"
12654 "    } else {\n"
12655 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
12656 "        max_exp = atoi(argv[3]);\n"
12657 "    }\n"
12658 "    new_value.it_interval.tv_nsec = 0;\n"
12659
12660 #. type: Plain text
12661 #: build/C/man2/timerfd_create.2:519
12662 #, no-wrap
12663 msgid ""
12664 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
12665 "    if (fd == -1)\n"
12666 "        handle_error(\"timerfd_create\");\n"
12667 msgstr ""
12668 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
12669 "    if (fd == -1)\n"
12670 "        handle_error(\"timerfd_create\");\n"
12671
12672 #. type: Plain text
12673 #: build/C/man2/timerfd_create.2:522
12674 #, no-wrap
12675 msgid ""
12676 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
12677 "        handle_error(\"timerfd_settime\");\n"
12678 msgstr ""
12679 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
12680 "        handle_error(\"timerfd_settime\");\n"
12681
12682 #. type: Plain text
12683 #: build/C/man2/timerfd_create.2:525
12684 #, no-wrap
12685 msgid ""
12686 "    print_elapsed_time();\n"
12687 "    printf(\"timer started\\en\");\n"
12688 msgstr ""
12689 "    print_elapsed_time();\n"
12690 "    printf(\"timer started\\en\");\n"
12691
12692 #. type: Plain text
12693 #: build/C/man2/timerfd_create.2:530
12694 #, no-wrap
12695 msgid ""
12696 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
12697 "        s = read(fd, &exp, sizeof(uint64_t));\n"
12698 "        if (s != sizeof(uint64_t))\n"
12699 "            handle_error(\"read\");\n"
12700 msgstr ""
12701 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
12702 "        s = read(fd, &exp, sizeof(uint64_t));\n"
12703 "        if (s != sizeof(uint64_t))\n"
12704 "            handle_error(\"read\");\n"
12705
12706 #. type: Plain text
12707 #: build/C/man2/timerfd_create.2:537
12708 #, no-wrap
12709 msgid ""
12710 "        tot_exp += exp;\n"
12711 "        print_elapsed_time();\n"
12712 "        printf(\"read: %llu; total=%llu\\en\",\n"
12713 "                (unsigned long long) exp,\n"
12714 "                (unsigned long long) tot_exp);\n"
12715 "    }\n"
12716 msgstr ""
12717 "        tot_exp += exp;\n"
12718 "        print_elapsed_time();\n"
12719 "        printf(\"read: %llu; total=%llu\\en\",\n"
12720 "                (unsigned long long) exp,\n"
12721 "                (unsigned long long) tot_exp);\n"
12722 "    }\n"
12723
12724 #. type: Plain text
12725 #: build/C/man2/timerfd_create.2:553
12726 msgid ""
12727 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
12728 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), B<timer_settime>"
12729 "(2), B<epoll>(7), B<time>(7)"
12730 msgstr ""
12731 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
12732 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), B<timer_settime>"
12733 "(2), B<epoll>(7), B<time>(7)"
12734
12735 #. type: TH
12736 #: build/C/man2/tkill.2:29
12737 #, no-wrap
12738 msgid "TKILL"
12739 msgstr "TKILL"
12740
12741 #. type: Plain text
12742 #: build/C/man2/tkill.2:32
12743 msgid "tkill, tgkill - send a signal to a thread"
12744 msgstr "tkill, tgkill - スレッドにシグナルを送る"
12745
12746 #. type: Plain text
12747 #: build/C/man2/tkill.2:35
12748 #, no-wrap
12749 msgid "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
12750 msgstr "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
12751
12752 #. type: Plain text
12753 #: build/C/man2/tkill.2:37
12754 #, no-wrap
12755 msgid "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
12756 msgstr "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
12757
12758 #. type: Plain text
12759 #: build/C/man2/tkill.2:54
12760 msgid ""
12761 "B<tgkill>()  sends the signal I<sig> to the thread with the thread ID I<tid> "
12762 "in the thread group I<tgid>.  (By contrast, B<kill>(2)  can be used to send "
12763 "a signal only to a process (i.e., thread group)  as a whole, and the signal "
12764 "will be delivered to an arbitrary thread within that process.)"
12765 msgstr ""
12766 "B<tgkill>()  はスレッド・グループ I<tgid> に属するスレッド ID が I<tid> のス"
12767 "レッドにシグナル I<sig> を送る。 (これに対し、 B<kill>(2)  は一つのプロセス "
12768 "(すなわち、スレッド・グループ) にまとめてシグナルを 送るのにだけ利用できる。 "
12769 "B<kill>(2)  で送信されたシグナルはプロセス内の任意のスレッドに配送される。)"
12770
12771 #.  FIXME: Maybe say something about the following:
12772 #.  http://sourceware.org/bugzilla/show_bug.cgi?id=12889
12773 #.      Rich Felker <bugdal@aerifal.cx>
12774 #.      There is a race condition in pthread_kill: it is possible that,
12775 #.      between the time pthread_kill reads the pid/tid from the target
12776 #.      thread descriptor and the time it makes the tgkill syscall,
12777 #.      the target thread terminates and the same tid gets assigned
12778 #.      to a new thread in the same process.
12779 #.      (The tgkill syscall was designed to eliminate a similar race
12780 #.      condition in tkill, but it only succeeded in eliminating races
12781 #.      where the tid gets reused in a different process, and does not
12782 #.      help if the same tid gets assigned to a new thread in the
12783 #.      same process.)
12784 #.      The only solution I can see is to introduce a mutex that ensures
12785 #.      that a thread cannot exit while pthread_kill is being called on it.
12786 #.      Note that in most real-world situations, like almost all race
12787 #.      conditions, this one will be extremely rare. To make it
12788 #.      measurable, one could exhaust all but 1-2 available pid values,
12789 #.      possibly by lowering the max pid parameter in /proc, forcing
12790 #.      the same tid to be reused rapidly.
12791 #. type: Plain text
12792 #: build/C/man2/tkill.2:85
12793 msgid ""
12794 "B<tkill>()  is an obsolete predecessor to B<tgkill>().  It allows only the "
12795 "target thread ID to be specified, which may result in the wrong thread being "
12796 "signaled if a thread terminates and its thread ID is recycled.  Avoid using "
12797 "this system call."
12798 msgstr ""
12799 "B<tkill>()  はもう使われなくなった B<tgkill>()  の先祖である。 B<tkill>()  で"
12800 "はシグナルの送り先のスレッド ID しか指定できない。 そのため、スレッドが終了し"
12801 "て、そのスレッド ID が再利用される場合に、 意図しないスレッドにシグナルが送ら"
12802 "れる可能性がある。 このシステムコールの使用は避けること。"
12803
12804 #. type: Plain text
12805 #: build/C/man2/tkill.2:92
12806 msgid ""
12807 "If I<tgid> is specified as -1, B<tgkill>()  is equivalent to B<tkill>()."
12808 msgstr ""
12809 "I<tgid> に -1 が指定された場合、 B<tgkill>()  は B<tkill>()  と等価である。"
12810
12811 #. type: Plain text
12812 #: build/C/man2/tkill.2:95
12813 msgid ""
12814 "These are the raw system call interfaces, meant for internal thread library "
12815 "use."
12816 msgstr ""
12817 "これらはシステムコールへの直接のインターフェースであり、 スレッド・ライブラリ"
12818 "内部での使用を意図したものである。"
12819
12820 #. type: Plain text
12821 #: build/C/man2/tkill.2:103
12822 msgid "An invalid thread ID, thread group ID, or signal was specified."
12823 msgstr "指定されたスレッド ID、スレッドグループ ID、シグナルが不正であった。"
12824
12825 #. type: Plain text
12826 #: build/C/man2/tkill.2:108
12827 msgid "Permission denied.  For the required permissions, see B<kill>(2)."
12828 msgstr ""
12829 "許可がなかった。どのような許可が必要かについては、 B<kill>(2)  を参照のこと。"
12830
12831 #. type: Plain text
12832 #: build/C/man2/tkill.2:111
12833 msgid "No process with the specified thread ID (and thread group ID) exists."
12834 msgstr ""
12835 "指定されたスレッドID (とスレッド・グループID) を持つプロセスが存在しない。"
12836
12837 #. type: Plain text
12838 #: build/C/man2/tkill.2:116
12839 msgid ""
12840 "B<tkill>()  is supported since Linux 2.4.19 / 2.5.4.  B<tgkill>()  was added "
12841 "in Linux 2.5.75."
12842 msgstr ""
12843 "B<tkill>()  は Linux 2.4.19 / 2.5.4 以降でサポートされ、 B<tgkill>()  は "
12844 "Linux 2.5.75 で追加された。"
12845
12846 #. type: Plain text
12847 #: build/C/man2/tkill.2:122
12848 msgid ""
12849 "B<tkill>()  and B<tgkill>()  are Linux-specific and should not be used in "
12850 "programs that are intended to be portable."
12851 msgstr ""
12852 "B<tkill>()  と B<tgkill>()  は Linux 固有であり、 移植を想定したプログラムで"
12853 "は使用すべきではない。"
12854
12855 #. type: Plain text
12856 #: build/C/man2/tkill.2:128
12857 msgid ""
12858 "See the description of B<CLONE_THREAD> in B<clone>(2)  for an explanation of "
12859 "thread groups."
12860 msgstr ""
12861 "スレッド・グループの説明については B<clone>(2)  の B<CLONE_THREAD> の説明を参"
12862 "照のこと。"
12863
12864 #. type: Plain text
12865 #: build/C/man2/tkill.2:131
12866 msgid ""
12867 "Glibc does not provide wrappers for these system calls; call them using "
12868 "B<syscall>(2)."
12869 msgstr ""
12870 "glibc はこれらのシステムコールに対するラッパー関数を提供していない。 "
12871 "B<syscall>(2)  を使って呼び出すこと。"
12872
12873 #. type: Plain text
12874 #: build/C/man2/tkill.2:136
12875 msgid "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
12876 msgstr "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
12877
12878 #. type: TH
12879 #: build/C/man2/wait.2:49
12880 #, no-wrap
12881 msgid "WAIT"
12882 msgstr "WAIT"
12883
12884 #. type: Plain text
12885 #: build/C/man2/wait.2:52
12886 msgid "wait, waitpid, waitid - wait for process to change state"
12887 msgstr "wait, waitpid, waitid - プロセスの状態変化を待つ"
12888
12889 #. type: Plain text
12890 #: build/C/man2/wait.2:54
12891 msgid "B<#include E<lt>sys/types.hE<gt>>"
12892 msgstr "B<#include E<lt>sys/types.hE<gt>>"
12893
12894 #. type: Plain text
12895 #: build/C/man2/wait.2:56
12896 msgid "B<#include E<lt>sys/wait.hE<gt>>"
12897 msgstr "B<#include E<lt>sys/wait.hE<gt>>"
12898
12899 #. type: Plain text
12900 #: build/C/man2/wait.2:58
12901 msgid "B<pid_t wait(int *>I<status>B<);>"
12902 msgstr "B<pid_t wait(int *>I<status>B<);>"
12903
12904 #. type: Plain text
12905 #: build/C/man2/wait.2:60
12906 msgid ""
12907 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
12908 msgstr ""
12909 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
12910
12911 #. type: Plain text
12912 #: build/C/man2/wait.2:65
12913 #, no-wrap
12914 msgid ""
12915 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, int >I<options>B<);>\n"
12916 "                /* This is the glibc and POSIX interface; see\n"
12917 "                   NOTES for information on the raw system call. */\n"
12918 msgstr ""
12919 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, int >I<options>B<);>\n"
12920 "                /* これは glibc と POSIX のインターフェイスである。\n"
12921 "                   生のシステムコールについての情報は「注意」の節を参照。 */\n"
12922
12923 #. type: Plain text
12924 #: build/C/man2/wait.2:74
12925 msgid "B<waitid>():"
12926 msgstr "B<waitid>():"
12927
12928 #. type: Plain text
12929 #: build/C/man2/wait.2:78
12930 msgid ""
12931 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
12932 "_XOPEN_SOURCE_EXTENDED"
12933 msgstr ""
12934 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
12935 "_XOPEN_SOURCE_EXTENDED"
12936
12937 #. type: Plain text
12938 #: build/C/man2/wait.2:93
12939 msgid ""
12940 "All of these system calls are used to wait for state changes in a child of "
12941 "the calling process, and obtain information about the child whose state has "
12942 "changed.  A state change is considered to be: the child terminated; the "
12943 "child was stopped by a signal; or the child was resumed by a signal.  In the "
12944 "case of a terminated child, performing a wait allows the system to release "
12945 "the resources associated with the child; if a wait is not performed, then "
12946 "the terminated child remains in a \"zombie\" state (see NOTES below)."
12947 msgstr ""
12948 "これらのシステムコールはいずれも、呼び出し元プロセスの子プロセスの 状態変化を"
12949 "待ち、状態が変化したその子プロセスの情報を取得するのに 使用される。 状態変化"
12950 "とは以下のいずれかである: 子プロセスの終了、シグナルによる子プロセスの停止、 "
12951 "シグナルによる子プロセスの再開。 子プロセスが終了した場合は、wait を実行する"
12952 "ことで、 システムがその子プロセスに関連するリソースを解放できるようになる。 "
12953 "wait が実行されなかった場合には、終了した子プロセスは 「ゾンビ」状態で残り続"
12954 "ける (下記の注意の章を参照のこと)。"
12955
12956 #. type: Plain text
12957 #: build/C/man2/wait.2:105
12958 msgid ""
12959 "If a child has already changed state, then these calls return immediately.  "
12960 "Otherwise they block until either a child changes state or a signal handler "
12961 "interrupts the call (assuming that system calls are not automatically "
12962 "restarted using the B<SA_RESTART> flag of B<sigaction>(2)).  In the "
12963 "remainder of this page, a child whose state has changed and which has not "
12964 "yet been waited upon by one of these system calls is termed I<waitable>."
12965 msgstr ""
12966 "子プロセスの状態変化がすでに発生していた場合、これらのコールは すぐに復帰す"
12967 "る。それ以外の場合は、子プロセスの状態変化が起こるか、 シグナルハンドラにより"
12968 "システムコールが中断されるまで、 停止 (block) する (後者は、 B<sigaction>"
12969 "(2)  の B<SA_RESTART> フラグによりシステムコールが自動的に再スタートするよう"
12970 "になっていない 場合の動作である)。 以下の説明では、状態変化が起こったがこれら"
12971 "のシステムコールのいずれかに よって待たれていない子プロセスを I<waitable> (待"
12972 "ち可能) と呼ぶ。"
12973
12974 #. type: SS
12975 #: build/C/man2/wait.2:105
12976 #, no-wrap
12977 msgid "wait() and waitpid()"
12978 msgstr "wait() と waitpid()"
12979
12980 #. type: Plain text
12981 #: build/C/man2/wait.2:113
12982 msgid ""
12983 "The B<wait>()  system call suspends execution of the calling process until "
12984 "one of its children terminates.  The call I<wait(&status)> is equivalent to:"
12985 msgstr ""
12986 "B<wait>()  システムコールは、子プロセスのいずれかが終了するまで 呼び出し元の"
12987 "プロセスの実行を一時停止する。 呼び出し I<wait(&status)> は以下と等価である:"
12988
12989 #. type: Plain text
12990 #: build/C/man2/wait.2:116
12991 #, no-wrap
12992 msgid "    waitpid(-1, &status, 0);\n"
12993 msgstr "    waitpid(-1, &status, 0);\n"
12994
12995 #. type: Plain text
12996 #: build/C/man2/wait.2:130
12997 msgid ""
12998 "The B<waitpid>()  system call suspends execution of the calling process "
12999 "until a child specified by I<pid> argument has changed state.  By default, "
13000 "B<waitpid>()  waits only for terminated children, but this behavior is "
13001 "modifiable via the I<options> argument, as described below."
13002 msgstr ""
13003 "B<waitpid>()  システムコールは、 I<pid> 引き数で指定した子プロセスの状態変化"
13004 "が起こるまで、 呼び出し元のプロセスの実行を一時停止する。デフォルトでは、 "
13005 "B<waitpid>()  は子プロセスの終了だけを待つが、この動作は I<options> 引き数に"
13006 "より変更可能である。"
13007
13008 #. type: Plain text
13009 #: build/C/man2/wait.2:134
13010 msgid "The value of I<pid> can be:"
13011 msgstr "I<pid> に指定できる値は以下の通り:"
13012
13013 #. type: IP
13014 #: build/C/man2/wait.2:134
13015 #, no-wrap
13016 msgid "E<lt> -1"
13017 msgstr "E<lt> -1"
13018
13019 #. type: Plain text
13020 #: build/C/man2/wait.2:138
13021 msgid ""
13022 "meaning wait for any child process whose process group ID is equal to the "
13023 "absolute value of I<pid>."
13024 msgstr ""
13025 "プロセスグループID が I<pid> の絶対値に等しい子プロセスのいずれかが終了するま"
13026 "でを待つ。"
13027
13028 #. type: IP
13029 #: build/C/man2/wait.2:138
13030 #, no-wrap
13031 msgid "-1"
13032 msgstr "-1"
13033
13034 #. type: Plain text
13035 #: build/C/man2/wait.2:140
13036 msgid "meaning wait for any child process."
13037 msgstr "子プロセスのどれかが終了するまで待つ。"
13038
13039 #. type: IP
13040 #: build/C/man2/wait.2:140
13041 #, no-wrap
13042 msgid "0"
13043 msgstr "0"
13044
13045 #. type: Plain text
13046 #: build/C/man2/wait.2:143
13047 msgid ""
13048 "meaning wait for any child process whose process group ID is equal to that "
13049 "of the calling process."
13050 msgstr ""
13051 "プロセスグループID が呼び出したプロセスのものと等しい 子プロセスを待つ。"
13052
13053 #. type: IP
13054 #: build/C/man2/wait.2:143
13055 #, no-wrap
13056 msgid "E<gt> 0"
13057 msgstr "E<gt> 0"
13058
13059 #. type: Plain text
13060 #: build/C/man2/wait.2:147
13061 msgid ""
13062 "meaning wait for the child whose process ID is equal to the value of I<pid>."
13063 msgstr "プロセスID が I<pid> に等しい子プロセスを待つ。"
13064
13065 #. type: Plain text
13066 #: build/C/man2/wait.2:151
13067 msgid ""
13068 "The value of I<options> is an OR of zero or more of the following constants:"
13069 msgstr "I<options> の値は次の定数の 0 個以上の論理和である:"
13070
13071 #. type: TP
13072 #: build/C/man2/wait.2:151 build/C/man2/wait.2:280
13073 #, no-wrap
13074 msgid "B<WNOHANG>"
13075 msgstr "B<WNOHANG>"
13076
13077 #. type: Plain text
13078 #: build/C/man2/wait.2:154
13079 msgid "return immediately if no child has exited."
13080 msgstr "状態変化が起こった子プロセスがない場合にすぐに復帰する。"
13081
13082 #. type: TP
13083 #: build/C/man2/wait.2:154
13084 #, no-wrap
13085 msgid "B<WUNTRACED>"
13086 msgstr "B<WUNTRACED>"
13087
13088 #. type: Plain text
13089 #: build/C/man2/wait.2:163
13090 msgid ""
13091 "also return if a child has stopped (but not traced via B<ptrace>(2)).  "
13092 "Status for I<traced> children which have stopped is provided even if this "
13093 "option is not specified."
13094 msgstr ""
13095 "子プロセスが停止した場合にも復帰する (子プロセスが B<ptrace>(2)  でトレースさ"
13096 "れている場合は除く)。 このオプションが指定されていない場合でも、停止したプロ"
13097 "セスが 「トレース (traced)」されていれば、子プロセスの状態が報告される。"
13098
13099 #. type: TP
13100 #: build/C/man2/wait.2:163
13101 #, no-wrap
13102 msgid "B<WCONTINUED> (since Linux 2.6.10)"
13103 msgstr "B<WCONTINUED> (Linux 2.6.10 以降)"
13104
13105 #. type: Plain text
13106 #: build/C/man2/wait.2:167
13107 msgid ""
13108 "also return if a stopped child has been resumed by delivery of B<SIGCONT>."
13109 msgstr "停止した子プロセスが B<SIGCONT> の配送により再開した場合にも復帰する。"
13110
13111 #. type: Plain text
13112 #: build/C/man2/wait.2:169
13113 msgid "(For Linux-only options, see below.)"
13114 msgstr "(Linux 専用オプションについては後述する)"
13115
13116 #. type: Plain text
13117 #: build/C/man2/wait.2:183
13118 msgid ""
13119 "If I<status> is not NULL, B<wait>()  and B<waitpid>()  store status "
13120 "information in the I<int> to which it points.  This integer can be inspected "
13121 "with the following macros (which take the integer itself as an argument, not "
13122 "a pointer to it, as is done in B<wait>()  and B<waitpid>()!):"
13123 msgstr ""
13124 "I<status> が NULL でなければ、 B<wait>()  や B<waitpid>()  は I<status> で指"
13125 "す I<int> に状態情報を格納する。 この整数は以下のマクロを使って検査できる。 "
13126 "(これらのマクロの引き数には、 B<wait>()  や B<waitpid>()  が書き込んだ整数そ"
13127 "のものを指定する。ポインタではない!)"
13128
13129 #. type: TP
13130 #: build/C/man2/wait.2:183
13131 #, no-wrap
13132 msgid "B<WIFEXITED(>I<status>B<)>"
13133 msgstr "B<WIFEXITED(>I<status>B<)>"
13134
13135 #. type: Plain text
13136 #: build/C/man2/wait.2:191
13137 msgid ""
13138 "returns true if the child terminated normally, that is, by calling B<exit>"
13139 "(3)  or B<_exit>(2), or by returning from main()."
13140 msgstr ""
13141 "子プロセスが正常に終了した場合に真を返す。 「正常に」とは、 B<exit>(3)  か "
13142 "B<_exit>(2)  が呼び出された場合、もしくは main() から復帰した場合である。"
13143
13144 #. type: TP
13145 #: build/C/man2/wait.2:191
13146 #, no-wrap
13147 msgid "B<WEXITSTATUS(>I<status>B<)>"
13148 msgstr "B<WEXITSTATUS(>I<status>B<)>"
13149
13150 #. type: Plain text
13151 #: build/C/man2/wait.2:204
13152 msgid ""
13153 "returns the exit status of the child.  This consists of the least "
13154 "significant 8 bits of the I<status> argument that the child specified in a "
13155 "call to B<exit>(3)  or B<_exit>(2)  or as the argument for a return "
13156 "statement in main().  This macro should be employed only if B<WIFEXITED> "
13157 "returned true."
13158 msgstr ""
13159 "子プロセスの終了ステータスを返す。 終了ステータスは I<status> 引き数の下位 8"
13160 "ビットで構成されており、 B<exit>(3)  や B<_exit>(2)  の呼び出し時に渡された"
13161 "値、もしくは main() の return 文の 引き数として指定された値である。 このマク"
13162 "ロを使用するのは B<WIFEXITED> が真を返した場合だけにすべきである。"
13163
13164 #. type: TP
13165 #: build/C/man2/wait.2:204
13166 #, no-wrap
13167 msgid "B<WIFSIGNALED(>I<status>B<)>"
13168 msgstr "B<WIFSIGNALED(>I<status>B<)>"
13169
13170 #. type: Plain text
13171 #: build/C/man2/wait.2:207
13172 msgid "returns true if the child process was terminated by a signal."
13173 msgstr "子プロセスがシグナルにより終了した場合に真を返す。"
13174
13175 #. type: TP
13176 #: build/C/man2/wait.2:207
13177 #, no-wrap
13178 msgid "B<WTERMSIG(>I<status>B<)>"
13179 msgstr "B<WTERMSIG(>I<status>B<)>"
13180
13181 #. type: Plain text
13182 #: build/C/man2/wait.2:214
13183 msgid ""
13184 "returns the number of the signal that caused the child process to "
13185 "terminate.  This macro should be employed only if B<WIFSIGNALED> returned "
13186 "true."
13187 msgstr ""
13188 "子プロセス終了の原因となったシグナルの番号を返す。 このマクロを使用するのは "
13189 "B<WIFSIGNALED> が真を返した場合だけにすべきである。"
13190
13191 #. type: TP
13192 #: build/C/man2/wait.2:214
13193 #, no-wrap
13194 msgid "B<WCOREDUMP(>I<status>B<)>"
13195 msgstr "B<WCOREDUMP(>I<status>B<)>"
13196
13197 #. type: Plain text
13198 #: build/C/man2/wait.2:223
13199 msgid ""
13200 "returns true if the child produced a core dump.  This macro should be "
13201 "employed only if B<WIFSIGNALED> returned true.  This macro is not specified "
13202 "in POSIX.1-2001 and is not available on some UNIX implementations (e.g., "
13203 "AIX, SunOS).  Only use this enclosed in #ifdef WCOREDUMP ... #endif."
13204 msgstr ""
13205 "子プロセスがコアダンプを生成した場合に真を返す。 このマクロを使用するのは "
13206 "B<WIFSIGNALED> が真を返した場合だけにすべきである。 このマクロは "
13207 "POSIX.1-2001 では規定されておらず、 (AIX, SunOS などの) いくつかの UNIX の実"
13208 "装では利用できない。 必ず #ifdef WCOREDUMP ... #endif で括って使用すること。"
13209
13210 #. type: TP
13211 #: build/C/man2/wait.2:223
13212 #, no-wrap
13213 msgid "B<WIFSTOPPED(>I<status>B<)>"
13214 msgstr "B<WIFSTOPPED(>I<status>B<)>"
13215
13216 #. type: Plain text
13217 #: build/C/man2/wait.2:230
13218 msgid ""
13219 "returns true if the child process was stopped by delivery of a signal; this "
13220 "is possible only if the call was done using B<WUNTRACED> or when the child "
13221 "is being traced (see B<ptrace>(2))."
13222 msgstr ""
13223 "子プロセスがシグナルの配送により停止した場合に真を返す。 これが真になるのは、"
13224 "システムコールが B<WUNTRACED> を指定して呼び出された場合か、子プロセスがト"
13225 "レースされている場合 (B<ptrace>(2)  参照) だけである。"
13226
13227 #. type: TP
13228 #: build/C/man2/wait.2:230
13229 #, no-wrap
13230 msgid "B<WSTOPSIG(>I<status>B<)>"
13231 msgstr "B<WSTOPSIG(>I<status>B<)>"
13232
13233 #. type: Plain text
13234 #: build/C/man2/wait.2:236
13235 msgid ""
13236 "returns the number of the signal which caused the child to stop.  This macro "
13237 "should be employed only if B<WIFSTOPPED> returned true."
13238 msgstr ""
13239 "子プロセスを停止させたシグナルの番号を返す。 このマクロを使用するのは "
13240 "B<WIFSTOPPED> が 0 以外を返した場合だけにすべきである。"
13241
13242 #. type: TP
13243 #: build/C/man2/wait.2:236
13244 #, no-wrap
13245 msgid "B<WIFCONTINUED(>I<status>B<)>"
13246 msgstr "B<WIFCONTINUED(>I<status>B<)>"
13247
13248 #. type: Plain text
13249 #: build/C/man2/wait.2:241
13250 msgid ""
13251 "(since Linux 2.6.10)  returns true if the child process was resumed by "
13252 "delivery of B<SIGCONT>."
13253 msgstr ""
13254 "(Linux 2.6.10 以降)  子プロセスが B<SIGCONT> の配送により再開した場合に真を返"
13255 "す。"
13256
13257 #. type: SS
13258 #: build/C/man2/wait.2:241
13259 #, no-wrap
13260 msgid "waitid()"
13261 msgstr "waitid()"
13262
13263 #. type: Plain text
13264 #: build/C/man2/wait.2:246
13265 msgid ""
13266 "The B<waitid>()  system call (available since Linux 2.6.9) provides more "
13267 "precise control over which child state changes to wait for."
13268 msgstr ""
13269 "B<waitid>()  システムコール (Linux 2.6.9 以降で利用可能) を使うと、 子プロセ"
13270 "スのどの状態変化を待つかについてより細かな制御ができる。"
13271
13272 #. type: Plain text
13273 #: build/C/man2/wait.2:252
13274 msgid ""
13275 "The I<idtype> and I<id> arguments select the child(ren) to wait for, as "
13276 "follows:"
13277 msgstr "引き数 I<idtype> と I<id> でどの子プロセスを待つかを選択する:"
13278
13279 #. type: IP
13280 #: build/C/man2/wait.2:252
13281 #, no-wrap
13282 msgid "I<idtype> == B<P_PID>"
13283 msgstr "I<idtype> == B<P_PID>"
13284
13285 #. type: Plain text
13286 #: build/C/man2/wait.2:255
13287 msgid "Wait for the child whose process ID matches I<id>."
13288 msgstr "プロセスID が I<id> と一致する子プロセスを待つ。"
13289
13290 #. type: IP
13291 #: build/C/man2/wait.2:255
13292 #, no-wrap
13293 msgid "I<idtype> == B<P_PGID>"
13294 msgstr "I<idtype> == B<P_PGID>"
13295
13296 #. type: Plain text
13297 #: build/C/man2/wait.2:258
13298 msgid "Wait for any child whose process group ID matches I<id>."
13299 msgstr "プロセスグループID が I<id> と一致する子プロセスを待つ。"
13300
13301 #. type: IP
13302 #: build/C/man2/wait.2:258
13303 #, no-wrap
13304 msgid "I<idtype> == B<P_ALL>"
13305 msgstr "I<idtype> == B<P_ALL>"
13306
13307 #. type: Plain text
13308 #: build/C/man2/wait.2:262
13309 msgid "Wait for any child; I<id> is ignored."
13310 msgstr "子プロセス全部を対象に待つ。 I<id> は無視される。"
13311
13312 #. type: Plain text
13313 #: build/C/man2/wait.2:266
13314 msgid ""
13315 "The child state changes to wait for are specified by ORing one or more of "
13316 "the following flags in I<options>:"
13317 msgstr ""
13318 "子プロセスのどの状態変化を待つかは以下のフラグで指定する (I<options> には 1個"
13319 "以上のフラグの論理和をとって指定する):"
13320
13321 #. type: TP
13322 #: build/C/man2/wait.2:266
13323 #, no-wrap
13324 msgid "B<WEXITED>"
13325 msgstr "B<WEXITED>"
13326
13327 #. type: Plain text
13328 #: build/C/man2/wait.2:269
13329 msgid "Wait for children that have terminated."
13330 msgstr "子プロセスの終了を待つ。"
13331
13332 #. type: TP
13333 #: build/C/man2/wait.2:269
13334 #, no-wrap
13335 msgid "B<WSTOPPED>"
13336 msgstr "B<WSTOPPED>"
13337
13338 #. type: Plain text
13339 #: build/C/man2/wait.2:272
13340 msgid "Wait for children that have been stopped by delivery of a signal."
13341 msgstr "子プロセスがシグナルの配送により停止するのを待つ。"
13342
13343 #. type: TP
13344 #: build/C/man2/wait.2:272
13345 #, no-wrap
13346 msgid "B<WCONTINUED>"
13347 msgstr "B<WCONTINUED>"
13348
13349 #. type: Plain text
13350 #: build/C/man2/wait.2:277
13351 msgid ""
13352 "Wait for (previously stopped) children that have been resumed by delivery of "
13353 "B<SIGCONT>."
13354 msgstr "(停止していた) 子プロセスが B<SIGCONT> が配送されて再開するのを待つ。"
13355
13356 #. type: Plain text
13357 #: build/C/man2/wait.2:280
13358 msgid "The following flags may additionally be ORed in I<options>:"
13359 msgstr "さらに以下のフラグを論理和の形で I<options> に指定できる:"
13360
13361 #. type: Plain text
13362 #: build/C/man2/wait.2:284
13363 msgid "As for B<waitpid>()."
13364 msgstr "B<waitpid>()  と同様。"
13365
13366 #. type: TP
13367 #: build/C/man2/wait.2:284
13368 #, no-wrap
13369 msgid "B<WNOWAIT>"
13370 msgstr "B<WNOWAIT>"
13371
13372 #. type: Plain text
13373 #: build/C/man2/wait.2:288
13374 msgid ""
13375 "Leave the child in a waitable state; a later wait call can be used to again "
13376 "retrieve the child status information."
13377 msgstr ""
13378 "waitable 状態のプロセスをそのままにする。この後で wait コールを 使って、同じ"
13379 "子プロセスの状態情報をもう一度取得することができる。"
13380
13381 #. type: Plain text
13382 #: build/C/man2/wait.2:295
13383 msgid ""
13384 "Upon successful return, B<waitid>()  fills in the following fields of the "
13385 "I<siginfo_t> structure pointed to by I<infop>:"
13386 msgstr ""
13387 "成功した場合には、 B<waitid>()  は I<infop> が指す I<siginfo_t> 構造体の以下"
13388 "のフィールドを設定する:"
13389
13390 #. type: Plain text
13391 #: build/C/man2/wait.2:298
13392 msgid "The process ID of the child."
13393 msgstr "子プロセスのプロセスID。"
13394
13395 #. type: Plain text
13396 #: build/C/man2/wait.2:302
13397 msgid ""
13398 "The real user ID of the child.  (This field is not set on most other "
13399 "implementations.)"
13400 msgstr ""
13401 "子プロセスの実ユーザID (このフィールドは他のほとんどの実装では設定されない)。"
13402
13403 #. type: Plain text
13404 #: build/C/man2/wait.2:306
13405 msgid "Always set to B<SIGCHLD>."
13406 msgstr "常に B<SIGCHLD> が設定される。"
13407
13408 #. type: TP
13409 #: build/C/man2/wait.2:306
13410 #, no-wrap
13411 msgid "I<si_status>"
13412 msgstr "I<si_status>"
13413
13414 #. type: Plain text
13415 #: build/C/man2/wait.2:316
13416 msgid ""
13417 "Either the exit status of the child, as given to B<_exit>(2)  (or B<exit>"
13418 "(3)), or the signal that caused the child to terminate, stop, or continue.  "
13419 "The I<si_code> field can be used to determine how to interpret this field."
13420 msgstr ""
13421 "B<_exit>(2)  (か B<exit>(3))  に指定された子プロセスの終了ステータス、もしく"
13422 "は 子プロセスの終了、停止、再開の原因となったシグナルが設定される。 この"
13423 "フィールドをどう解釈するかは、 I<si_code> フィールドを参照して決めることがで"
13424 "きる。"
13425
13426 #. type: Plain text
13427 #: build/C/man2/wait.2:333
13428 msgid ""
13429 "Set to one of: B<CLD_EXITED> (child called B<_exit>(2)); B<CLD_KILLED> "
13430 "(child killed by signal); B<CLD_DUMPED> (child killed by signal, and dumped "
13431 "core); B<CLD_STOPPED> (child stopped by signal); B<CLD_TRAPPED> (traced "
13432 "child has trapped); or B<CLD_CONTINUED> (child continued by B<SIGCONT>)."
13433 msgstr ""
13434 "以下のいずれかが設定される: B<CLD_EXITED> (子プロセスが B<_exit>(2)  を呼び出"
13435 "した); B<CLD_KILLED> (シグナルにより子プロセスが kill された); B<CLD_DUMPED> "
13436 "(シグナルにより子プロセスが kill され、コア・ダンプが行われた); "
13437 "B<CLD_STOPPED> (シグナルにより子プロセスが停止した); B<CLD_TRAPPED> (トレース"
13438 "されていた子プロセスがトラップを受信した); B<CLD_CONTINUED> (B<SIGCONT> によ"
13439 "り子プロセスが再開された)。"
13440
13441 #.  POSIX.1-2001 leaves this possibility unspecified; most
13442 #.  implementations (including Linux) zero out the structure
13443 #.  in this case, but at least one implementation (AIX 5.1)
13444 #.  does not -- MTK Nov 04
13445 #. type: Plain text
13446 #: build/C/man2/wait.2:355
13447 msgid ""
13448 "If B<WNOHANG> was specified in I<options> and there were no children in a "
13449 "waitable state, then B<waitid>()  returns 0 immediately and the state of the "
13450 "I<siginfo_t> structure pointed to by I<infop> is unspecified.  To "
13451 "distinguish this case from that where a child was in a waitable state, zero "
13452 "out the I<si_pid> field before the call and check for a nonzero value in "
13453 "this field after the call returns."
13454 msgstr ""
13455 "B<WNOHANG> が I<options> に指定されていて、 waitable 状態の子プロセスがなかっ"
13456 "た場合には、 B<waitid>()  はすぐに 0 を返す。このとき、 I<infop> が指す "
13457 "I<siginfo_t> 構造体の内容は不定である。 この場合を waitable 状態の子プロセス"
13458 "があった場合と区別するには、 B<waitid>()  を呼び出す前に I<si_pid> を 0 にし"
13459 "ておき、コールが復帰した後でこのフィールドが 0 以外の値かどうか をチェックす"
13460 "ればよい。"
13461
13462 #. type: Plain text
13463 #: build/C/man2/wait.2:359
13464 msgid ""
13465 "B<wait>(): on success, returns the process ID of the terminated child; on "
13466 "error, -1 is returned."
13467 msgstr ""
13468 "B<wait>(): 成功すると、終了した子プロセスのプロセスID を返す。 エラーの場合 "
13469 "-1 を返す。"
13470
13471 #. type: Plain text
13472 #: build/C/man2/wait.2:368
13473 msgid ""
13474 "B<waitpid>(): on success, returns the process ID of the child whose state "
13475 "has changed; if B<WNOHANG> was specified and one or more child(ren) "
13476 "specified by I<pid> exist, but have not yet changed state, then 0 is "
13477 "returned.  On error, -1 is returned."
13478 msgstr ""
13479 "B<waitpid>(): 成功すると、状態が変化した子プロセスのプロセスID を返す。 "
13480 "B<WNOHANG> が指定されていて、 I<pid> で指示された子プロセスが一つ以上存在する"
13481 "が、どの子プロセスでも 状態変化が起こっていなかった場合は、 0 を返す。 エラー"
13482 "の場合 -1 を返す。"
13483
13484 #.  FIXME: As reported by Vegard Nossum, if infop is NULL, then waitid()
13485 #.  returns the PID of the child.  Either this is a bug, or it is intended
13486 #.  behavior that needs to be documented.  See my Jan 2009 LKML mail
13487 #.  "waitid() return value strangeness when infop is NULL".
13488 #. type: Plain text
13489 #: build/C/man2/wait.2:384
13490 msgid ""
13491 "B<waitid>(): returns 0 on success or if B<WNOHANG> was specified and no child"
13492 "(ren) specified by I<id> has yet changed state; on error, -1 is returned.  "
13493 "Each of these calls sets I<errno> to an appropriate value in the case of an "
13494 "error."
13495 msgstr ""
13496 "B<waitid>(): 成功すると 0 を返す。 B<WNOHANG> が指定されていて、 I<pid> で指"
13497 "示された子プロセスで状態変化が起こっていなかった場合にも 0 を返す。 エラーの"
13498 "場合 -1 を返す。 エラーの場合、これらのシステムコールはいずれも I<errno> に適"
13499 "切な値を設定する。"
13500
13501 #. type: TP
13502 #: build/C/man2/wait.2:385 build/C/man2/wait.2:390
13503 #, no-wrap
13504 msgid "B<ECHILD>"
13505 msgstr "B<ECHILD>"
13506
13507 #. type: Plain text
13508 #: build/C/man2/wait.2:390
13509 msgid ""
13510 "(for B<wait>())  The calling process does not have any unwaited-for children."
13511 msgstr ""
13512 "(B<wait>()  の場合)  呼び出し元プロセスには、wait を行っていない子プロセスは"
13513 "ない。"
13514
13515 #. type: Plain text
13516 #: build/C/man2/wait.2:410
13517 msgid ""
13518 "(for B<waitpid>()  or B<waitid>())  The process specified by I<pid> "
13519 "(B<waitpid>())  or I<idtype> and I<id> (B<waitid>())  does not exist or is "
13520 "not a child of the calling process.  (This can happen for one's own child if "
13521 "the action for B<SIGCHLD> is set to B<SIG_IGN>.  See also the I<Linux Notes> "
13522 "section about threads.)"
13523 msgstr ""
13524 "(B<waitpid>()  か B<waitid>()  の場合)  I<pid> (B<waitpid>())  か I<idtype> "
13525 "と I<id> (B<waitid>())  で指定したプロセスが存在しないか、呼び出し元プロセス"
13526 "の子プロセスでない (B<SIGCHLD> の動作に B<SIG_IGN> を設定した場合には、自分自"
13527 "身の子プロセスでも起こりうる。 スレッドに関しては「Linux での注意」の節も参照"
13528 "すること)。"
13529
13530 #. type: Plain text
13531 #: build/C/man2/wait.2:417
13532 msgid ""
13533 "B<WNOHANG> was not set and an unblocked signal or a B<SIGCHLD> was caught; "
13534 "see B<signal>(7)."
13535 msgstr ""
13536 "B<WNOHANG> が設定されておらず、禁止 (block) されていないシグナルや "
13537 "B<SIGCHLD> を受信した。 B<signal>(7)  参照。"
13538
13539 #. type: Plain text
13540 #: build/C/man2/wait.2:422
13541 msgid "The I<options> argument was invalid."
13542 msgstr "I<options> 引き数が不正である。"
13543
13544 #. type: Plain text
13545 #: build/C/man2/wait.2:437
13546 msgid ""
13547 "A child that terminates, but has not been waited for becomes a \"zombie\".  "
13548 "The kernel maintains a minimal set of information about the zombie process "
13549 "(PID, termination status, resource usage information)  in order to allow the "
13550 "parent to later perform a wait to obtain information about the child.  As "
13551 "long as a zombie is not removed from the system via a wait, it will consume "
13552 "a slot in the kernel process table, and if this table fills, it will not be "
13553 "possible to create further processes.  If a parent process terminates, then "
13554 "its \"zombie\" children (if any)  are adopted by B<init>(8), which "
13555 "automatically performs a wait to remove the zombies."
13556 msgstr ""
13557 "終了したが、wait されていない子プロセスは「ゾンビ」になる。 後で親プロセスが "
13558 "wait を実行して子プロセスについての情報を取得できるように、 カーネルはゾンビ"
13559 "プロセスについて最小限の情報 (PID、終了ステータス、 リソース使用状況) を保持"
13560 "する。 ゾンビプロセスは、 wait によってシステムから削除されない限り、 カーネ"
13561 "ルのプロセステーブルの 1 エントリを消費する。このプロセステーブルが 一杯にな"
13562 "ると、新たにプロセスを作ることができなくなる。 親プロセスが終了すると、その親"
13563 "プロセスの「ゾンビ」の 子プロセスは (もしあれば)  B<init>(8)  の養子となる。 "
13564 "B<init>(8)  は wait を自動的に実行し、ゾンビを削除する。"
13565
13566 #. type: Plain text
13567 #: build/C/man2/wait.2:478
13568 msgid ""
13569 "POSIX.1-2001 specifies that if the disposition of B<SIGCHLD> is set to "
13570 "B<SIG_IGN> or the B<SA_NOCLDWAIT> flag is set for B<SIGCHLD> (see "
13571 "B<sigaction>(2)), then children that terminate do not become zombies and a "
13572 "call to B<wait>()  or B<waitpid>()  will block until all children have "
13573 "terminated, and then fail with I<errno> set to B<ECHILD>.  (The original "
13574 "POSIX standard left the behavior of setting B<SIGCHLD> to B<SIG_IGN> "
13575 "unspecified.  Note that even though the default disposition of B<SIGCHLD> is "
13576 "\"ignore\", explicitly setting the disposition to B<SIG_IGN> results in "
13577 "different treatment of zombie process children.)  Linux 2.6 conforms to this "
13578 "specification.  However, Linux 2.4 (and earlier) does not: if a B<wait>()  "
13579 "or B<waitpid>()  call is made while B<SIGCHLD> is being ignored, the call "
13580 "behaves just as though B<SIGCHLD> were not being ignored, that is, the call "
13581 "blocks until the next child terminates and then returns the process ID and "
13582 "status of that child."
13583 msgstr ""
13584 "POSIX.1-2001 では以下のように規定されている。 B<SIGCHLD> の動作が B<SIG_IGN> "
13585 "に設定されたか、 B<SIGCHLD> に対して B<SA_NOCLDWAIT> フラグが設定された場合 "
13586 "(B<sigaction>(2)  参照)、終了した子プロセスはゾンビにはならず、 B<wait>()  "
13587 "や B<waitpid>()  の呼び出しは全ての子プロセスが終了するまで停止し、 子プロセ"
13588 "スが全部終了した後 I<errno> に B<ECHILD> を設定して失敗する。 (もともとの "
13589 "POSIX 標準は B<SIGCHLD> に B<SIG_IGN> を設定した場合の振る舞いを未規定のまま"
13590 "にしている。 B<SIGCHLD> のデフォルトの動作が「無視」であるにもかかわらず、 "
13591 "B<SIGCHLD> の動作として B<SIG_IGN> を明示的に設定した場合にはゾンビプロセスの"
13592 "子プロセスの扱いが 異なる点に注意すること。)  Linux 2.6 はこの仕様に準拠して"
13593 "いる。 しかし、Linux 2.4 (とそれ以前のバージョン) はそうではない: B<SIGCHLD> "
13594 "が無視される状態で B<wait>()  または B<waitpid>()  が呼び出された場合、 "
13595 "B<SIGCHLD> が無視されていないかのように振る舞う。 つまり、呼び出しによって次"
13596 "の子プロセスの終了までブロックされ、 終了した子プロセスの PID と状態が返され"
13597 "る。"
13598
13599 #. type: Plain text
13600 #: build/C/man2/wait.2:494
13601 msgid ""
13602 "In the Linux kernel, a kernel-scheduled thread is not a distinct construct "
13603 "from a process.  Instead, a thread is simply a process that is created using "
13604 "the Linux-unique B<clone>(2)  system call; other routines such as the "
13605 "portable B<pthread_create>(3)  call are implemented using B<clone>(2).  "
13606 "Before Linux 2.4, a thread was just a special case of a process, and as a "
13607 "consequence one thread could not wait on the children of another thread, "
13608 "even when the latter belongs to the same thread group.  However, POSIX "
13609 "prescribes such functionality, and since Linux 2.4 a thread can, and by "
13610 "default will, wait on children of other threads in the same thread group."
13611 msgstr ""
13612 "Linux カーネルでは、カーネルによってスケジュールされるスレッドは プロセスと明"
13613 "確に区別できる構成要素ではない。スレッドは Linux 固有の B<clone>(2)  システム"
13614 "コールを使用して生成されるプロセスに過ぎない。 移植性のある B<pthread_create>"
13615 "(3)  コールのような他のルーチンは B<clone>(2)  を使用して実装されている; これ"
13616 "らでは B<waitid>()  を使うことはできない。 Linux 2.4 より前では、スレッドは単"
13617 "に特殊なプロセスであったので、 例え同じスレッドグループであっても、 あるス"
13618 "レッドが別のスレッドの子プロセスが終了するのを待つことは出来なかった。 しか"
13619 "し、POSIX ではこのような機能を規定しており、 Linux 2.4 以降では、あるスレッド"
13620 "が同じスレッドグループの他のスレッドの 子プロセスが終了するのを待つことができ"
13621 "るようになった。 そして将来はこれがデフォルトの動作になるであろう。"
13622
13623 #. type: Plain text
13624 #: build/C/man2/wait.2:501
13625 msgid ""
13626 "The following Linux-specific I<options> are for use with children created "
13627 "using B<clone>(2); they cannot be used with B<waitid>():"
13628 msgstr ""
13629 "B<clone>(2)  を用いて作られた子プロセスには、以下の Linux 固有の I<options> "
13630 "が使用できる。"
13631
13632 #. type: TP
13633 #: build/C/man2/wait.2:501
13634 #, no-wrap
13635 msgid "B<__WCLONE>"
13636 msgstr "B<__WCLONE>"
13637
13638 #.  since 0.99pl10
13639 #. type: Plain text
13640 #: build/C/man2/wait.2:512
13641 msgid ""
13642 "Wait for \"clone\" children only.  If omitted then wait for \"non-clone\" "
13643 "children only.  (A \"clone\" child is one which delivers no signal, or a "
13644 "signal other than B<SIGCHLD> to its parent upon termination.)  This option "
13645 "is ignored if B<__WALL> is also specified."
13646 msgstr ""
13647 "\"clone\" な子プロセスだけを待つ。 指定されなかった場合は非 \"clone\" な子プ"
13648 "ロセスだけを待つ (\"clone\" な子プロセスは、終了時に親プロセスへ全くシグナル"
13649 "を送らないか、 B<SIGCHLD> 以外のシグナルを送る)。 このオプションは B<__WALL> "
13650 "も指定された場合は無視される。"
13651
13652 #. type: TP
13653 #: build/C/man2/wait.2:512
13654 #, no-wrap
13655 msgid "B<__WALL> (since Linux 2.4)"
13656 msgstr "B<__WALL> (Linux 2.4 以降)"
13657
13658 #.  since patch-2.3.48
13659 #. type: Plain text
13660 #: build/C/man2/wait.2:517
13661 msgid "Wait for all children, regardless of type (\"clone\" or \"non-clone\")."
13662 msgstr "\"clone\" であるかないかに関わらず、 全ての子プロセスを待つ。"
13663
13664 #. type: TP
13665 #: build/C/man2/wait.2:517
13666 #, no-wrap
13667 msgid "B<__WNOTHREAD> (since Linux 2.4)"
13668 msgstr "B<__WNOTHREAD> (Linux 2.4 以降)"
13669
13670 #.  since patch-2.4.0-test8
13671 #. type: Plain text
13672 #: build/C/man2/wait.2:523
13673 msgid ""
13674 "Do not wait for children of other threads in the same thread group.  This "
13675 "was the default before Linux 2.4."
13676 msgstr ""
13677 "同じスレッドグループの他のスレッドの子プロセスは待たない。 Linux 2.4 より前で"
13678 "はデフォルトであった。"
13679
13680 #. type: Plain text
13681 #: build/C/man2/wait.2:535
13682 msgid ""
13683 "The raw B<waitid>()  system call takes a fith argument, of type I<struct "
13684 "rusage\\ *>.  If this argument is non-NULL, then it is used to return "
13685 "resource usage information about the child, in the same manner as B<wait4>"
13686 "(2).  See B<getrusage>(2)  for details."
13687 msgstr "生の B<waitid>() システムコールは I<struct rusage\\ *> 型の第 5 引数を取る。 この引数が NULL 以外の場合、 この引数が子プロセスのリソース使用状況を返すのに使用される。 これは B<wait4>(2) と同じ方法である。 詳細は B<getrusage>(2) を参照。"
13688
13689 #. type: Plain text
13690 #: build/C/man2/wait.2:550
13691 msgid ""
13692 "According to POSIX.1-2008, an application calling B<waitid>()  must ensure "
13693 "that I<infop> points to a I<siginfo_t> structure (i.e., that it is a non-"
13694 "NULL pointer).  On Linux, if I<infop> is NULL, B<waitid>()  succeeds, and "
13695 "returns the process ID of the waited-for child.  Applications should avoid "
13696 "relying on this inconsistent, nonstandard, and unnecessary feature."
13697 msgstr ""
13698 "POSIX.1-2008 によると、 B<waitid>() を呼び出すアプリケーションは、 I<infop> "
13699 "が I<siginfo_t> 構造体を指していること (つまり I<infop> が NULL でないポイン"
13700 "タであること) を保証しなければならない。 Linux では、 I<infop> が NULL の場"
13701 "合、 B<waitid>() は成功し、wait している子プロセスのプロセス ID を返す。 アプ"
13702 "リケーションは、この食い違った、非標準で、不必要な機能に依存しないようにすべ"
13703 "きである。"
13704
13705 #.  fork.2 refers to this example program.
13706 #. type: Plain text
13707 #: build/C/man2/wait.2:567
13708 msgid ""
13709 "The following program demonstrates the use of B<fork>(2)  and B<waitpid>().  "
13710 "The program creates a child process.  If no command-line argument is "
13711 "supplied to the program, then the child suspends its execution using B<pause>"
13712 "(2), to allow the user to send signals to the child.  Otherwise, if a "
13713 "command-line argument is supplied, then the child exits immediately, using "
13714 "the integer supplied on the command line as the exit status.  The parent "
13715 "process executes a loop that monitors the child using B<waitpid>(), and uses "
13716 "the W*() macros described above to analyze the wait status value."
13717 msgstr ""
13718 "以下のプログラムは、 B<fork>(2)  と B<waitpid>()  の使用方法の例を示してい"
13719 "る。 このプログラムでは子プロセスを生成する。 コマンドライン引き数が指定され"
13720 "なかったときは、 子プロセスは B<pause>(2)  を使ってその実行を一時停止し、ユー"
13721 "ザがその子プロセスに シグナルを送信できるようにする。 コマンドライン引き数が"
13722 "指定された場合は、 子プロセスは直ちに終了し、 コマンドラインで指定された整数"
13723 "を終了ステータスとして使用する。 親プロセスは、 B<waitpid>()  を使って子プロ"
13724 "セスを監視し、 wait のステータス値を上記の W*() マクロを使って解析するという "
13725 "ループを実行する。"
13726
13727 #. type: Plain text
13728 #: build/C/man2/wait.2:583
13729 #, no-wrap
13730 msgid ""
13731 "$B< ./a.out &>\n"
13732 "Child PID is 32360\n"
13733 "[1] 32359\n"
13734 "$B< kill -STOP 32360>\n"
13735 "stopped by signal 19\n"
13736 "$B< kill -CONT 32360>\n"
13737 "continued\n"
13738 "$B< kill -TERM 32360>\n"
13739 "killed by signal 15\n"
13740 "[1]+  Done                    ./a.out\n"
13741 "$\n"
13742 msgstr ""
13743 "$B< ./a.out &>\n"
13744 "Child PID is 32360\n"
13745 "[1] 32359\n"
13746 "$B< kill -STOP 32360>\n"
13747 "stopped by signal 19\n"
13748 "$B< kill -CONT 32360>\n"
13749 "continued\n"
13750 "$B< kill -TERM 32360>\n"
13751 "killed by signal 15\n"
13752 "[1]+  Done                    ./a.out\n"
13753 "$\n"
13754
13755 #. type: Plain text
13756 #: build/C/man2/wait.2:592
13757 #, no-wrap
13758 msgid ""
13759 "#include E<lt>sys/wait.hE<gt>\n"
13760 "#include E<lt>stdlib.hE<gt>\n"
13761 "#include E<lt>unistd.hE<gt>\n"
13762 "#include E<lt>stdio.hE<gt>\n"
13763 msgstr ""
13764 "#include E<lt>sys/wait.hE<gt>\n"
13765 "#include E<lt>stdlib.hE<gt>\n"
13766 "#include E<lt>unistd.hE<gt>\n"
13767 "#include E<lt>stdio.hE<gt>\n"
13768
13769 #. type: Plain text
13770 #: build/C/man2/wait.2:598
13771 #, no-wrap
13772 msgid ""
13773 "int\n"
13774 "main(int argc, char *argv[])\n"
13775 "{\n"
13776 "    pid_t cpid, w;\n"
13777 "    int status;\n"
13778 msgstr ""
13779 "int\n"
13780 "main(int argc, char *argv[])\n"
13781 "{\n"
13782 "    pid_t cpid, w;\n"
13783 "    int status;\n"
13784
13785 #. type: Plain text
13786 #: build/C/man2/wait.2:604
13787 #, no-wrap
13788 msgid ""
13789 "    cpid = fork();\n"
13790 "    if (cpid == -1) {\n"
13791 "        perror(\"fork\");\n"
13792 "        exit(EXIT_FAILURE);\n"
13793 "    }\n"
13794 msgstr ""
13795 "    cpid = fork();\n"
13796 "    if (cpid == -1) {\n"
13797 "        perror(\"fork\");\n"
13798 "        exit(EXIT_FAILURE);\n"
13799 "    }\n"
13800
13801 #. type: Plain text
13802 #: build/C/man2/wait.2:610
13803 #, no-wrap
13804 msgid ""
13805 "    if (cpid == 0) {            /* Code executed by child */\n"
13806 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
13807 "        if (argc == 1)\n"
13808 "            pause();                    /* Wait for signals */\n"
13809 "        _exit(atoi(argv[1]));\n"
13810 msgstr ""
13811 "    if (cpid == 0) {            /* Code executed by child */\n"
13812 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
13813 "        if (argc == 1)\n"
13814 "            pause();                    /* Wait for signals */\n"
13815 "        _exit(atoi(argv[1]));\n"
13816
13817 #. type: Plain text
13818 #: build/C/man2/wait.2:618
13819 #, no-wrap
13820 msgid ""
13821 "    } else {                    /* Code executed by parent */\n"
13822 "        do {\n"
13823 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
13824 "            if (w == -1) {\n"
13825 "                perror(\"waitpid\");\n"
13826 "                exit(EXIT_FAILURE);\n"
13827 "            }\n"
13828 msgstr ""
13829 "    } else {                    /* Code executed by parent */\n"
13830 "        do {\n"
13831 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
13832 "            if (w == -1) {\n"
13833 "                perror(\"waitpid\");\n"
13834 "                exit(EXIT_FAILURE);\n"
13835 "            }\n"
13836
13837 #. type: Plain text
13838 #: build/C/man2/wait.2:632
13839 #, no-wrap
13840 msgid ""
13841 "            if (WIFEXITED(status)) {\n"
13842 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
13843 "            } else if (WIFSIGNALED(status)) {\n"
13844 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
13845 "            } else if (WIFSTOPPED(status)) {\n"
13846 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
13847 "            } else if (WIFCONTINUED(status)) {\n"
13848 "                printf(\"continued\\en\");\n"
13849 "            }\n"
13850 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
13851 "        exit(EXIT_SUCCESS);\n"
13852 "    }\n"
13853 "}\n"
13854 msgstr ""
13855 "            if (WIFEXITED(status)) {\n"
13856 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
13857 "            } else if (WIFSIGNALED(status)) {\n"
13858 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
13859 "            } else if (WIFSTOPPED(status)) {\n"
13860 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
13861 "            } else if (WIFCONTINUED(status)) {\n"
13862 "                printf(\"continued\\en\");\n"
13863 "            }\n"
13864 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
13865 "        exit(EXIT_SUCCESS);\n"
13866 "    }\n"
13867 "}\n"
13868
13869 #. type: Plain text
13870 #: build/C/man2/wait.2:645
13871 msgid ""
13872 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), B<sigaction>"
13873 "(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), B<credentials>(7), "
13874 "B<signal>(7)"
13875 msgstr ""
13876 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), B<sigaction>"
13877 "(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), B<credentials>(7), "
13878 "B<signal>(7)"
13879
13880 #. type: TH
13881 #: build/C/man2/wait4.2:33
13882 #, no-wrap
13883 msgid "WAIT4"
13884 msgstr "WAIT4"
13885
13886 #. type: TH
13887 #: build/C/man2/wait4.2:33
13888 #, no-wrap
13889 msgid "2012-09-23"
13890 msgstr "2012-09-23"
13891
13892 #. type: Plain text
13893 #: build/C/man2/wait4.2:36
13894 msgid "wait3, wait4 - wait for process to change state, BSD style"
13895 msgstr "wait3, wait4 - BSD スタイルでプロセスの状態変化を待つ"
13896
13897 #. type: Plain text
13898 #: build/C/man2/wait4.2:42
13899 #, no-wrap
13900 msgid ""
13901 "B<#include E<lt>sys/types.hE<gt>>\n"
13902 "B<#include E<lt>sys/time.hE<gt>>\n"
13903 "B<#include E<lt>sys/resource.hE<gt>>\n"
13904 "B<#include E<lt>sys/wait.hE<gt>>\n"
13905 msgstr ""
13906 "B<#include E<lt>sys/types.hE<gt>>\n"
13907 "B<#include E<lt>sys/time.hE<gt>>\n"
13908 "B<#include E<lt>sys/resource.hE<gt>>\n"
13909 "B<#include E<lt>sys/wait.hE<gt>>\n"
13910
13911 #. type: Plain text
13912 #: build/C/man2/wait4.2:45
13913 #, no-wrap
13914 msgid ""
13915 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
13916 "B<            struct rusage *>I<rusage>B<);>\n"
13917 msgstr ""
13918 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
13919 "B<            struct rusage *>I<rusage>B<);>\n"
13920
13921 #. type: Plain text
13922 #: build/C/man2/wait4.2:48
13923 #, no-wrap
13924 msgid ""
13925 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
13926 "B<            struct rusage *>I<rusage>B<);>\n"
13927 msgstr ""
13928 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
13929 "B<            struct rusage *>I<rusage>B<);>\n"
13930
13931 #. type: Plain text
13932 #: build/C/man2/wait4.2:57
13933 msgid "B<wait3>():"
13934 msgstr "B<wait3>():"
13935
13936 #. type: Plain text
13937 #: build/C/man2/wait4.2:63
13938 msgid "B<wait4>():"
13939 msgstr "B<wait4>():"
13940
13941 #. type: Plain text
13942 #: build/C/man2/wait4.2:65
13943 msgid "_BSD_SOURCE"
13944 msgstr "_BSD_SOURCE"
13945
13946 #. type: Plain text
13947 #: build/C/man2/wait4.2:73
13948 msgid ""
13949 "These functions are obsolete; use B<waitpid>(2)  or B<waitid>(2)  in new "
13950 "programs."
13951 msgstr ""
13952 "これらの関数は廃止予定である。 新しいプログラムでは B<waitpid>(2) や "
13953 "B<waitid>(2) を使用すること。"
13954
13955 #. type: Plain text
13956 #: build/C/man2/wait4.2:83
13957 msgid ""
13958 "The B<wait3>()  and B<wait4>()  system calls are similar to B<waitpid>(2), "
13959 "but additionally return resource usage information about the child in the "
13960 "structure pointed to by I<rusage>."
13961 msgstr ""
13962 "システムコール B<wait3>()  と B<wait4>()  は B<waitpid>(2)  と同様の動作をす"
13963 "る。それに加え、子プロセスのリソース使用状況の情報を I<rusage> が指す構造体に"
13964 "入れて返す。"
13965
13966 #. type: Plain text
13967 #: build/C/man2/wait4.2:89
13968 msgid ""
13969 "Other than the use of the I<rusage> argument, the following B<wait3>()  call:"
13970 msgstr "I<rusage> を使用する点を除けば、次の B<wait3>()  の呼び出し"
13971
13972 #. type: Plain text
13973 #: build/C/man2/wait4.2:92
13974 #, no-wrap
13975 msgid "    wait3(status, options, rusage);\n"
13976 msgstr "    wait3(status, options, rusage);\n"
13977
13978 #. type: Plain text
13979 #: build/C/man2/wait4.2:95 build/C/man2/wait4.2:109
13980 msgid "is equivalent to:"
13981 msgstr "は以下と等価である。"
13982
13983 #. type: Plain text
13984 #: build/C/man2/wait4.2:98
13985 #, no-wrap
13986 msgid "    waitpid(-1, status, options);\n"
13987 msgstr "    waitpid(-1, status, options);\n"
13988
13989 #. type: Plain text
13990 #: build/C/man2/wait4.2:103
13991 msgid "Similarly, the following B<wait4>()  call:"
13992 msgstr "同様に、次の B<wait4>()  の呼び出し"
13993
13994 #. type: Plain text
13995 #: build/C/man2/wait4.2:106
13996 #, no-wrap
13997 msgid "    wait4(pid, status, options, rusage);\n"
13998 msgstr "    wait4(pid, status, options, rusage);\n"
13999
14000 #. type: Plain text
14001 #: build/C/man2/wait4.2:112
14002 #, no-wrap
14003 msgid "    waitpid(pid, status, options);\n"
14004 msgstr "    waitpid(pid, status, options);\n"
14005
14006 #. type: Plain text
14007 #: build/C/man2/wait4.2:122
14008 msgid ""
14009 "In other words, B<wait3>()  waits of any child, while B<wait4>()  can be "
14010 "used to select a specific child, or children, on which to wait.  See B<wait>"
14011 "(2)  for further details."
14012 msgstr ""
14013 "言い換えると、 B<wait3>()  は全ての子プロセスを対象に待つが、 B<wait4>()  で"
14014 "は特定の子プロセス (複数可) を選んで待つことができる。"
14015
14016 #. type: Plain text
14017 #: build/C/man2/wait4.2:132
14018 msgid ""
14019 "If I<rusage> is not NULL, the I<struct rusage> to which it points will be "
14020 "filled with accounting information about the child.  See B<getrusage>(2)  "
14021 "for details."
14022 msgstr ""
14023 "I<rusage> が NULL でない場合、 I<rusage> が指す I<rusage 構造体> には子プロセ"
14024 "スのアカウント情報が格納される。 詳しくは B<getrusage>(2)  を参照のこと。"
14025
14026 #. type: Plain text
14027 #: build/C/man2/wait4.2:135 build/C/man2/wait4.2:138
14028 msgid "As for B<waitpid>(2)."
14029 msgstr "B<waitpid>(2)  と同様。"
14030
14031 #. type: Plain text
14032 #: build/C/man2/wait4.2:140
14033 msgid "4.3BSD."
14034 msgstr "4.3BSD."
14035
14036 #. type: Plain text
14037 #: build/C/man2/wait4.2:147
14038 msgid ""
14039 "SUSv1 included a specification of B<wait3>(); SUSv2 included B<wait3>(), but "
14040 "marked it LEGACY; SUSv3 removed it."
14041 msgstr ""
14042 "SUSv1 には B<wait3>() の規定があった。 SUSv2 には B<wait3>() が含まれていた"
14043 "が、「過去の名残 (LEGACY)」となっていた。 SUSv3 では B<wait3>() は削除され"
14044 "た。"
14045
14046 #. type: Plain text
14047 #: build/C/man2/wait4.2:159
14048 msgid ""
14049 "Including I<E<lt>sys/time.hE<gt>> is not required these days, but increases "
14050 "portability.  (Indeed, I<E<lt>sys/resource.hE<gt>> defines the I<rusage> "
14051 "structure with fields of type I<struct timeval> defined in I<E<lt>sys/time."
14052 "hE<gt>>.)"
14053 msgstr ""
14054 "現在では I<E<lt>sys/time.hE<gt>> をインクルードする必要はないが、インクルード"
14055 "しておくと 移植性を高めることができる (実際には I<E<lt>sys/resource.hE<gt>> "
14056 "で I<rusage> 構造体が定義されているが、そのフィールドで使用されている "
14057 "I<struct timeval> 型は I<E<lt>sys/time.hE<gt>> で定義されている)。"
14058
14059 #. type: Plain text
14060 #: build/C/man2/wait4.2:165
14061 msgid ""
14062 "On Linux, B<wait3>()  is a library function implemented on top of the "
14063 "B<wait4>()  system call."
14064 msgstr ""
14065 "Linux では、 B<wait3>()  はライブラリ関数であり、 B<wait4>()  システムコール"
14066 "を使って実装されている。"
14067
14068 #. type: Plain text
14069 #: build/C/man2/wait4.2:172
14070 msgid ""
14071 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
14072 "B<signal>(7)"
14073 msgstr ""
14074 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
14075 "B<signal>(7)"