OSDN Git Service

(split) LDP: Update POT and ja.po to LDP v3.51.
[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-04-30 20:30+0900\n"
10 "PO-Revision-Date: 2013-04-02 17:24+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/rt_sigqueueinfo.2:25
36 #: build/C/man2/s390_runtime_instr.2:25 build/C/man2/sgetmask.2:26
37 #: build/C/man2/sigaction.2:47 build/C/man2/sigaltstack.2:27
38 #: build/C/man7/sigevent.7:26 build/C/man3/siginterrupt.3:31
39 #: build/C/man2/signal.2:36 build/C/man7/signal.7:46
40 #: build/C/man2/signalfd.2:20 build/C/man3/sigpause.3:25
41 #: build/C/man2/sigpending.2:29 build/C/man2/sigprocmask.2:29
42 #: build/C/man3/sigqueue.3:28 build/C/man2/sigreturn.2:29
43 #: build/C/man3/sigset.3:26 build/C/man3/sigsetops.3:31
44 #: build/C/man2/sigsuspend.2:29 build/C/man3/sigvec.3:26
45 #: build/C/man3/sigwait.3:26 build/C/man2/sigwaitinfo.2:25
46 #: build/C/man3/sysv_signal.3:25 build/C/man2/timer_create.2:31
47 #: build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26
48 #: build/C/man2/timer_settime.2:26 build/C/man2/timerfd_create.2:21
49 #: build/C/man2/tkill.2:29 build/C/man2/wait.2:49 build/C/man2/wait4.2:33
50 #, no-wrap
51 msgid "Linux Programmer's Manual"
52 msgstr "Linux Programmer's Manual"
53
54 #. type: SH
55 #: build/C/man3/bsd_signal.3:26 build/C/man2/eventfd.2:23
56 #: build/C/man2/getitimer.2:13 build/C/man3/gsignal.3:28
57 #: build/C/man2/kill.2:45 build/C/man2/killpg.2:43 build/C/man2/pause.2:31
58 #: build/C/man2/prctl.2:53 build/C/man3/profil.3:29 build/C/man3/psignal.3:31
59 #: build/C/man3/raise.3:30 build/C/man2/rt_sigqueueinfo.2:26
60 #: build/C/man2/s390_runtime_instr.2:26 build/C/man2/sgetmask.2:27
61 #: build/C/man2/sigaction.2:48 build/C/man2/sigaltstack.2:28
62 #: build/C/man7/sigevent.7:27 build/C/man3/siginterrupt.3:32
63 #: build/C/man2/signal.2:37 build/C/man7/signal.7:47
64 #: build/C/man2/signalfd.2:21 build/C/man3/sigpause.3:26
65 #: build/C/man2/sigpending.2:30 build/C/man2/sigprocmask.2:30
66 #: build/C/man3/sigqueue.3:29 build/C/man2/sigreturn.2:30
67 #: build/C/man3/sigset.3:27 build/C/man3/sigsetops.3:32
68 #: build/C/man2/sigsuspend.2:30 build/C/man3/sigvec.3:27
69 #: build/C/man3/sigwait.3:27 build/C/man2/sigwaitinfo.2:26
70 #: build/C/man3/sysv_signal.3:26 build/C/man2/timer_create.2:32
71 #: build/C/man2/timer_delete.2:27 build/C/man2/timer_getoverrun.2:27
72 #: build/C/man2/timer_settime.2:27 build/C/man2/timerfd_create.2:22
73 #: build/C/man2/tkill.2:30 build/C/man2/wait.2:50 build/C/man2/wait4.2:34
74 #, no-wrap
75 msgid "NAME"
76 msgstr "名前"
77
78 #. type: Plain text
79 #: build/C/man3/bsd_signal.3:28
80 msgid "bsd_signal - signal handling with BSD semantics"
81 msgstr "bsd_signal - BSD 方式のシグナル処理"
82
83 #. type: SH
84 #: build/C/man3/bsd_signal.3:28 build/C/man2/eventfd.2:25
85 #: build/C/man2/getitimer.2:15 build/C/man3/gsignal.3:30
86 #: build/C/man2/kill.2:47 build/C/man2/killpg.2:45 build/C/man2/pause.2:33
87 #: build/C/man2/prctl.2:55 build/C/man3/profil.3:31 build/C/man3/psignal.3:33
88 #: build/C/man3/raise.3:32 build/C/man2/rt_sigqueueinfo.2:28
89 #: build/C/man2/s390_runtime_instr.2:28 build/C/man2/sgetmask.2:29
90 #: build/C/man2/sigaction.2:50 build/C/man2/sigaltstack.2:30
91 #: build/C/man7/sigevent.7:29 build/C/man3/siginterrupt.3:34
92 #: build/C/man2/signal.2:39 build/C/man2/signalfd.2:23
93 #: build/C/man3/sigpause.3:28 build/C/man2/sigpending.2:32
94 #: build/C/man2/sigprocmask.2:32 build/C/man3/sigqueue.3:31
95 #: build/C/man2/sigreturn.2:32 build/C/man3/sigset.3:29
96 #: build/C/man3/sigsetops.3:35 build/C/man2/sigsuspend.2:32
97 #: build/C/man3/sigvec.3:29 build/C/man3/sigwait.3:29
98 #: build/C/man2/sigwaitinfo.2:28 build/C/man3/sysv_signal.3:28
99 #: build/C/man2/timer_create.2:34 build/C/man2/timer_delete.2:29
100 #: build/C/man2/timer_getoverrun.2:29 build/C/man2/timer_settime.2:30
101 #: build/C/man2/timerfd_create.2:25 build/C/man2/tkill.2:32
102 #: build/C/man2/wait.2:52 build/C/man2/wait4.2:36
103 #, no-wrap
104 msgid "SYNOPSIS"
105 msgstr "書式"
106
107 #. type: Plain text
108 #: build/C/man3/bsd_signal.3:30
109 msgid "B<#define _XOPEN_SOURCE> /* See feature_test_macros(7) */"
110 msgstr "B<#define _XOPEN_SOURCE> /* feature_test_macros(7) 参照 */"
111
112 #. type: Plain text
113 #: build/C/man3/bsd_signal.3:32 build/C/man2/killpg.2:47
114 #: build/C/man2/sigaltstack.2:32 build/C/man2/signal.2:41
115 #: build/C/man2/sigpending.2:34 build/C/man2/sigprocmask.2:34
116 #: build/C/man3/sigqueue.3:33 build/C/man3/sigset.3:31
117 #: build/C/man3/sigsetops.3:37 build/C/man2/sigsuspend.2:34
118 #: build/C/man3/sigvec.3:31 build/C/man3/sysv_signal.3:32
119 msgid "B<#include E<lt>signal.hE<gt>>"
120 msgstr "B<#include E<lt>signal.hE<gt>>"
121
122 #. type: Plain text
123 #: build/C/man3/bsd_signal.3:34 build/C/man2/signal.2:43
124 #: build/C/man3/sigset.3:33 build/C/man3/sysv_signal.3:34
125 msgid "B<typedef void (*sighandler_t)(int);>"
126 msgstr "B<typedef void (*sighandler_t)(int);>"
127
128 #. type: Plain text
129 #: build/C/man3/bsd_signal.3:36
130 msgid ""
131 "B<sighandler_t bsd_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
132 msgstr ""
133 "B<sighandler_t bsd_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
134
135 #. type: SH
136 #: build/C/man3/bsd_signal.3:36 build/C/man2/eventfd.2:29
137 #: build/C/man2/getitimer.2:24 build/C/man3/gsignal.3:49
138 #: build/C/man2/kill.2:65 build/C/man2/killpg.2:60 build/C/man2/pause.2:37
139 #: build/C/man2/prctl.2:62 build/C/man3/profil.3:44 build/C/man3/psignal.3:56
140 #: build/C/man3/raise.3:38 build/C/man2/rt_sigqueueinfo.2:38
141 #: build/C/man2/s390_runtime_instr.2:34 build/C/man2/sgetmask.2:36
142 #: build/C/man2/sigaction.2:70 build/C/man2/sigaltstack.2:51
143 #: build/C/man7/sigevent.7:52 build/C/man3/siginterrupt.3:55
144 #: build/C/man2/signal.2:45 build/C/man7/signal.7:49
145 #: build/C/man2/signalfd.2:27 build/C/man3/sigpause.3:36
146 #: build/C/man2/sigpending.2:46 build/C/man2/sigprocmask.2:47
147 #: build/C/man3/sigqueue.3:43 build/C/man2/sigreturn.2:34
148 #: build/C/man3/sigset.3:58 build/C/man3/sigsetops.3:63
149 #: build/C/man2/sigsuspend.2:46 build/C/man3/sigvec.3:49
150 #: build/C/man3/sigwait.3:45 build/C/man2/sigwaitinfo.2:46
151 #: build/C/man3/sysv_signal.3:36 build/C/man2/timer_create.2:52
152 #: build/C/man2/timer_delete.2:45 build/C/man2/timer_getoverrun.2:45
153 #: build/C/man2/timer_settime.2:50 build/C/man2/timerfd_create.2:37
154 #: build/C/man2/tkill.2:41 build/C/man2/wait.2:81 build/C/man2/wait4.2:67
155 #, no-wrap
156 msgid "DESCRIPTION"
157 msgstr "説明"
158
159 #. type: Plain text
160 #: build/C/man3/bsd_signal.3:41
161 msgid ""
162 "The B<bsd_signal>()  function takes the same arguments, and performs the "
163 "same task, as B<signal>(2)."
164 msgstr ""
165 "B<bsd_signal>()  関数は B<signal>(2)  と同じ引き数をとり、同じ処理を実行す"
166 "る。"
167
168 #. type: Plain text
169 #: build/C/man3/bsd_signal.3:54
170 msgid ""
171 "The difference between the two is that B<bsd_signal>()  is guaranteed to "
172 "provide reliable signal semantics, that is: a) the disposition of the signal "
173 "is not reset to the default when the handler is invoked; b) delivery of "
174 "further instances of the signal is blocked while the signal handler is "
175 "executing; and c) if the handler interrupts a blocking system call, then the "
176 "system call is automatically restarted.  A portable application cannot rely "
177 "on B<signal>(2)  to provide these guarantees."
178 msgstr ""
179 "両者の違いは、 B<bsd_signal>()  では信頼性のあるシグナル処理方式の提供が保証"
180 "されていることである。 信頼性のあるシグナル処理方式は以下の特徴を持つ。 a) ハ"
181 "ンドラが起動された場合に、シグナルの処理方法 (disposition) が デフォルトにリ"
182 "セットされない、 b) シグナルハンドラの実行中は、それ以降に発生した同じシグナ"
183 "ルの配送が ブロックされない、 c) ハンドラが停止中の (blocking している) シス"
184 "テムコールを 中断した場合、そのシステムコールが自動的に再開される。 移植性が"
185 "必要なアプリケーションでは、 B<signal>(2)  でこれらが保証されることを前提にす"
186 "べきではない。"
187
188 #. type: SH
189 #: build/C/man3/bsd_signal.3:54 build/C/man2/eventfd.2:222
190 #: build/C/man2/getitimer.2:122 build/C/man2/kill.2:99
191 #: build/C/man2/killpg.2:89 build/C/man2/pause.2:42 build/C/man2/prctl.2:766
192 #: build/C/man3/profil.3:66 build/C/man3/psignal.3:89 build/C/man3/raise.3:61
193 #: build/C/man2/rt_sigqueueinfo.2:129 build/C/man2/s390_runtime_instr.2:54
194 #: build/C/man2/sgetmask.2:59 build/C/man2/sigaction.2:660
195 #: build/C/man2/sigaltstack.2:133 build/C/man3/siginterrupt.3:73
196 #: build/C/man2/signal.2:97 build/C/man2/signalfd.2:251
197 #: build/C/man3/sigpause.3:48 build/C/man2/sigpending.2:53
198 #: build/C/man2/sigprocmask.2:93 build/C/man3/sigqueue.3:83
199 #: build/C/man2/sigreturn.2:53 build/C/man3/sigset.3:129
200 #: build/C/man3/sigsetops.3:107 build/C/man2/sigsuspend.2:70
201 #: build/C/man3/sigvec.3:199 build/C/man3/sigwait.3:69
202 #: build/C/man2/sigwaitinfo.2:105 build/C/man3/sysv_signal.3:51
203 #: build/C/man2/timer_create.2:167 build/C/man2/timer_delete.2:53
204 #: build/C/man2/timer_getoverrun.2:82 build/C/man2/timer_settime.2:173
205 #: build/C/man2/timerfd_create.2:287 build/C/man2/tkill.2:95
206 #: build/C/man2/wait.2:353 build/C/man2/wait4.2:132
207 #, no-wrap
208 msgid "RETURN VALUE"
209 msgstr "返り値"
210
211 #. type: Plain text
212 #: build/C/man3/bsd_signal.3:60
213 msgid ""
214 "The B<bsd_signal>()  function returns the previous value of the signal "
215 "handler, or B<SIG_ERR> on error."
216 msgstr ""
217 "B<bsd_signal>()  関数はシグナルハンドラの直前の値を返す。 エラーの場合、 "
218 "B<SIG_ERR> を返す。"
219
220 #. type: SH
221 #: build/C/man3/bsd_signal.3:60 build/C/man2/eventfd.2:229
222 #: build/C/man2/getitimer.2:127 build/C/man2/kill.2:104
223 #: build/C/man2/killpg.2:94 build/C/man2/pause.2:53 build/C/man2/prctl.2:784
224 #: build/C/man2/rt_sigqueueinfo.2:134 build/C/man2/s390_runtime_instr.2:65
225 #: build/C/man2/sgetmask.2:64 build/C/man2/sigaction.2:663
226 #: build/C/man2/sigaltstack.2:137 build/C/man3/siginterrupt.3:78
227 #: build/C/man2/signal.2:102 build/C/man2/signalfd.2:265
228 #: build/C/man2/sigpending.2:56 build/C/man2/sigprocmask.2:96
229 #: build/C/man3/sigqueue.3:91 build/C/man3/sigset.3:154
230 #: build/C/man3/sigsetops.3:123 build/C/man2/sigsuspend.2:74
231 #: build/C/man3/sigvec.3:216 build/C/man3/sigwait.3:74
232 #: build/C/man2/sigwaitinfo.2:114 build/C/man3/sysv_signal.3:57
233 #: build/C/man2/timer_create.2:175 build/C/man2/timer_delete.2:60
234 #: build/C/man2/timer_getoverrun.2:90 build/C/man2/timer_settime.2:182
235 #: build/C/man2/timerfd_create.2:302 build/C/man2/tkill.2:99
236 #: build/C/man2/wait.2:382 build/C/man2/wait4.2:135
237 #, no-wrap
238 msgid "ERRORS"
239 msgstr "エラー"
240
241 #. type: Plain text
242 #: build/C/man3/bsd_signal.3:63 build/C/man3/sysv_signal.3:60
243 msgid "As for B<signal>(2)."
244 msgstr "B<signal>(2)  と同じ。"
245
246 #. type: SH
247 #: build/C/man3/bsd_signal.3:63 build/C/man2/eventfd.2:266
248 #: build/C/man2/getitimer.2:148 build/C/man3/gsignal.3:95
249 #: build/C/man2/kill.2:120 build/C/man2/killpg.2:111 build/C/man2/pause.2:57
250 #: build/C/man2/prctl.2:956 build/C/man3/profil.3:68 build/C/man3/psignal.3:99
251 #: build/C/man3/raise.3:64 build/C/man2/rt_sigqueueinfo.2:176
252 #: build/C/man2/s390_runtime_instr.2:81 build/C/man2/sgetmask.2:66
253 #: build/C/man2/sigaction.2:675 build/C/man2/sigaltstack.2:156
254 #: build/C/man7/sigevent.7:130 build/C/man3/siginterrupt.3:82
255 #: build/C/man2/signal.2:107 build/C/man7/signal.7:838
256 #: build/C/man2/signalfd.2:307 build/C/man3/sigpause.3:56
257 #: build/C/man2/sigpending.2:61 build/C/man2/sigprocmask.2:109
258 #: build/C/man3/sigqueue.3:114 build/C/man2/sigreturn.2:60
259 #: build/C/man3/sigset.3:173 build/C/man3/sigsetops.3:128
260 #: build/C/man2/sigsuspend.2:82 build/C/man3/sigvec.3:221
261 #: build/C/man3/sigwait.3:80 build/C/man2/sigwaitinfo.2:133
262 #: build/C/man3/sysv_signal.3:60 build/C/man2/timer_create.2:193
263 #: build/C/man2/timer_delete.2:67 build/C/man2/timer_getoverrun.2:97
264 #: build/C/man2/timer_settime.2:207 build/C/man2/timerfd_create.2:371
265 #: build/C/man2/tkill.2:116 build/C/man2/wait.2:420 build/C/man2/wait4.2:138
266 #, no-wrap
267 msgid "CONFORMING TO"
268 msgstr "準拠"
269
270 #. type: Plain text
271 #: build/C/man3/bsd_signal.3:70
272 msgid ""
273 "4.2BSD, POSIX.1-2001.  POSIX.1-2008 removes the specification of "
274 "B<bsd_signal>(), recommending the use of B<sigaction>(2)  instead."
275 msgstr ""
276 "4.2BSD, POSIX.1-2001.  POSIX.1-2008 では B<bsd_signal>()  の仕様が削除されて"
277 "いる。 代わりに、 B<sigaction>(2)  の使用が推奨されている。"
278
279 #. type: SH
280 #: build/C/man3/bsd_signal.3:70 build/C/man2/eventfd.2:271
281 #: build/C/man2/getitimer.2:158 build/C/man2/kill.2:122
282 #: build/C/man2/killpg.2:115 build/C/man3/raise.3:66
283 #: build/C/man2/rt_sigqueueinfo.2:178 build/C/man2/s390_runtime_instr.2:84
284 #: build/C/man2/sgetmask.2:68 build/C/man2/sigaction.2:678
285 #: build/C/man2/sigaltstack.2:158 build/C/man2/signal.2:109
286 #: build/C/man2/signalfd.2:312 build/C/man3/sigpause.3:60
287 #: build/C/man2/sigpending.2:63 build/C/man2/sigprocmask.2:111
288 #: build/C/man3/sigqueue.3:116 build/C/man2/sigreturn.2:64
289 #: build/C/man3/sigset.3:190 build/C/man3/sigsetops.3:130
290 #: build/C/man2/sigsuspend.2:84 build/C/man3/sigvec.3:227
291 #: build/C/man3/sigwait.3:82 build/C/man2/sigwaitinfo.2:135
292 #: build/C/man3/sysv_signal.3:62 build/C/man2/timer_create.2:195
293 #: build/C/man2/timer_getoverrun.2:99 build/C/man2/tkill.2:122
294 #: build/C/man2/wait.2:422 build/C/man2/wait4.2:147
295 #, no-wrap
296 msgid "NOTES"
297 msgstr "注意"
298
299 #. type: Plain text
300 #: build/C/man3/bsd_signal.3:76
301 msgid ""
302 "Use of B<bsd_signal>()  should be avoided; use B<sigaction>(2)  instead."
303 msgstr ""
304 "B<bsd_signal>()  の使用は避けるべきである。代わりに B<sigaction>(2)  を使うこ"
305 "と。"
306
307 #. type: Plain text
308 #: build/C/man3/bsd_signal.3:87
309 msgid ""
310 "On modern Linux systems, B<bsd_signal>()  and B<signal>(2)  are equivalent.  "
311 "But on older systems, B<signal>(2)  provided unreliable signal semantics; "
312 "see B<signal>(2)  for details."
313 msgstr ""
314 "最近の Linux システムでは、 B<bsd_signal>()  と B<signal>(2)  は等価である。"
315 "しかし、以前のシステムでは、 B<signal>(2)  は信頼性に欠けるシグナル処理方式を"
316 "提供していた。 詳細は B<signal>(2)  を参照。"
317
318 #. type: Plain text
319 #: build/C/man3/bsd_signal.3:94 build/C/man3/sysv_signal.3:87
320 #, fuzzy
321 #| msgid ""
322 #| "The use of I<sighandler_t> is a GNU extension; this type is only defined "
323 #| "if the B<_GNU_SOURCE> feature test macro is defined."
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:170 build/C/man2/killpg.2:134 build/C/man2/pause.2:59
335 #: build/C/man2/prctl.2:970 build/C/man3/profil.3:79
336 #: build/C/man3/psignal.3:113 build/C/man3/raise.3:77
337 #: build/C/man2/rt_sigqueueinfo.2:188 build/C/man2/s390_runtime_instr.2:88
338 #: build/C/man2/sgetmask.2:80 build/C/man2/sigaction.2:791
339 #: build/C/man2/sigaltstack.2:232 build/C/man7/sigevent.7:132
340 #: build/C/man3/siginterrupt.3:91 build/C/man2/signal.2:275
341 #: build/C/man7/signal.7:850 build/C/man2/signalfd.2:433
342 #: build/C/man3/sigpause.3:98 build/C/man2/sigpending.2:84
343 #: build/C/man2/sigprocmask.2:141 build/C/man3/sigqueue.3:149
344 #: build/C/man2/sigreturn.2:74 build/C/man3/sigset.3:266
345 #: build/C/man3/sigsetops.3:168 build/C/man2/sigsuspend.2:106
346 #: build/C/man3/sigvec.3:252 build/C/man3/sigwait.3:89
347 #: build/C/man2/sigwaitinfo.2:187 build/C/man3/sysv_signal.3:87
348 #: build/C/man2/timer_create.2:399 build/C/man2/timer_delete.2:69
349 #: build/C/man2/timer_getoverrun.2:131 build/C/man2/timer_settime.2:212
350 #: build/C/man2/timerfd_create.2:541 build/C/man2/tkill.2:131
351 #: build/C/man2/wait.2:619 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:180 build/C/man2/killpg.2:140 build/C/man2/pause.2:64
365 #: build/C/man2/prctl.2:973 build/C/man3/profil.3:84
366 #: build/C/man3/psignal.3:118 build/C/man3/raise.3:84
367 #: build/C/man2/rt_sigqueueinfo.2:196 build/C/man2/s390_runtime_instr.2:91
368 #: build/C/man2/sgetmask.2:83 build/C/man2/sigaction.2:810
369 #: build/C/man2/sigaltstack.2:239 build/C/man7/sigevent.7:142
370 #: build/C/man3/siginterrupt.3:93 build/C/man2/signal.2:294
371 #: build/C/man7/signal.7:883 build/C/man2/signalfd.2:446
372 #: build/C/man3/sigpause.3:106 build/C/man2/sigpending.2:92
373 #: build/C/man2/sigprocmask.2:152 build/C/man3/sigqueue.3:157
374 #: build/C/man2/sigreturn.2:79 build/C/man3/sigset.3:276
375 #: build/C/man3/sigsetops.3:173 build/C/man2/sigsuspend.2:116
376 #: build/C/man3/sigvec.3:262 build/C/man3/sigwait.3:97
377 #: build/C/man2/sigwaitinfo.2:199 build/C/man3/sysv_signal.3:92
378 #: build/C/man2/timer_create.2:414 build/C/man2/timer_delete.2:75
379 #: build/C/man2/timer_getoverrun.2:141 build/C/man2/timer_settime.2:216
380 #: build/C/man2/timerfd_create.2:553 build/C/man2/tkill.2:136
381 #: build/C/man2/wait.2:631 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:187 build/C/man2/killpg.2:147 build/C/man2/pause.2:71
390 #: build/C/man2/prctl.2:980 build/C/man3/profil.3:91
391 #: build/C/man3/psignal.3:125 build/C/man3/raise.3:91
392 #: build/C/man2/rt_sigqueueinfo.2:203 build/C/man2/s390_runtime_instr.2:98
393 #: build/C/man2/sgetmask.2:90 build/C/man2/sigaction.2:817
394 #: build/C/man2/sigaltstack.2:246 build/C/man7/sigevent.7:149
395 #: build/C/man3/siginterrupt.3:100 build/C/man2/signal.2:301
396 #: build/C/man7/signal.7:890 build/C/man2/signalfd.2:453
397 #: build/C/man3/sigpause.3:113 build/C/man2/sigpending.2:99
398 #: build/C/man2/sigprocmask.2:159 build/C/man3/sigqueue.3:164
399 #: build/C/man2/sigreturn.2:86 build/C/man3/sigset.3:283
400 #: build/C/man3/sigsetops.3:180 build/C/man2/sigsuspend.2:123
401 #: build/C/man3/sigvec.3:269 build/C/man3/sigwait.3:104
402 #: build/C/man2/sigwaitinfo.2:206 build/C/man3/sysv_signal.3:99
403 #: build/C/man2/timer_create.2:421 build/C/man2/timer_delete.2:82
404 #: build/C/man2/timer_getoverrun.2:148 build/C/man2/timer_settime.2:223
405 #: build/C/man2/timerfd_create.2:560 build/C/man2/tkill.2:143
406 #: build/C/man2/wait.2:638 build/C/man2/wait4.2:179
407 #, fuzzy
408 #| msgid ""
409 #| "This page is part of release 3.50 of the Linux I<man-pages> project.  A "
410 #| "description of the project, and information about reporting bugs, can be "
411 #| "found at http://www.kernel.org/doc/man-pages/."
412 msgid ""
413 "This page is part of release 3.51 of the Linux I<man-pages> project.  A "
414 "description of the project, and information about reporting bugs, can be "
415 "found at http://www.kernel.org/doc/man-pages/."
416 msgstr ""
417 "この man ページは Linux I<man-pages> プロジェクトのリリース 3.50 の一部\n"
418 "である。プロジェクトの説明とバグ報告に関する情報は\n"
419 "http://www.kernel.org/doc/man-pages/ に書かれている。"
420
421 #. type: TH
422 #: build/C/man2/eventfd.2:22
423 #, no-wrap
424 msgid "EVENTFD"
425 msgstr "EVENTFD"
426
427 #. type: TH
428 #: build/C/man2/eventfd.2:22
429 #, no-wrap
430 msgid "2010-08-30"
431 msgstr "2010-08-30"
432
433 #. type: TH
434 #: build/C/man2/eventfd.2:22 build/C/man2/getitimer.2:12
435 #: build/C/man2/kill.2:44 build/C/man2/killpg.2:42 build/C/man2/pause.2:30
436 #: build/C/man2/prctl.2:52 build/C/man3/profil.3:28
437 #: build/C/man2/rt_sigqueueinfo.2:25 build/C/man2/sgetmask.2:26
438 #: build/C/man2/sigaction.2:47 build/C/man2/sigaltstack.2:27
439 #: build/C/man2/signal.2:36 build/C/man7/signal.7:46
440 #: build/C/man2/signalfd.2:20 build/C/man3/sigpause.3:25
441 #: build/C/man2/sigpending.2:29 build/C/man2/sigprocmask.2:29
442 #: build/C/man3/sigqueue.3:28 build/C/man2/sigreturn.2:29
443 #: build/C/man3/sigset.3:26 build/C/man3/sigsetops.3:31
444 #: build/C/man2/sigsuspend.2:29 build/C/man3/sigvec.3:26
445 #: build/C/man3/sigwait.3:26 build/C/man2/sigwaitinfo.2:25
446 #: build/C/man2/timer_create.2:31 build/C/man2/timer_delete.2:26
447 #: build/C/man2/timer_getoverrun.2:26 build/C/man2/timer_settime.2:26
448 #: build/C/man2/timerfd_create.2:21 build/C/man2/tkill.2:29
449 #: build/C/man2/wait.2:49 build/C/man2/wait4.2:33
450 #, no-wrap
451 msgid "Linux"
452 msgstr "Linux"
453
454 #. type: Plain text
455 #: build/C/man2/eventfd.2:25
456 msgid "eventfd - create a file descriptor for event notification"
457 msgstr "eventfd - イベント通知用のファイルディスクリプタを生成する"
458
459 #. type: Plain text
460 #: build/C/man2/eventfd.2:27
461 msgid "B<#include E<lt>sys/eventfd.hE<gt>>"
462 msgstr "B<#include E<lt>sys/eventfd.hE<gt>>"
463
464 #. type: Plain text
465 #: build/C/man2/eventfd.2:29
466 msgid "B<int eventfd(unsigned int >I<initval>B<, int >I<flags>B<);>"
467 msgstr "B<int eventfd(unsigned int >I<initval>B<, int >I<flags>B<);>"
468
469 #. type: Plain text
470 #: build/C/man2/eventfd.2:39
471 msgid ""
472 "B<eventfd>()  creates an \"eventfd object\" that can be used as an event "
473 "wait/notify mechanism by user-space applications, and by the kernel to "
474 "notify user-space applications of events.  The object contains an unsigned "
475 "64-bit integer (I<uint64_t>)  counter that is maintained by the kernel.  "
476 "This counter is initialized with the value specified in the argument "
477 "I<initval>."
478 msgstr ""
479 "B<eventfd>()  は \"eventfd オブジェクト\" を生成する。 eventfd オブジェクトは"
480 "ユーザ空間アプリケーションがイベント待ち受け/通知用の 仕組みとして使うことが"
481 "できる。また、カーネルがユーザ空間アプリケーションに イベントを通知するために"
482 "も使うことができる。 このオブジェクトには、unsigned の 64 ビット整数 "
483 "(I<uint64_t>)  型のカウンタが含まれており、このカウンタはカーネルにより管理さ"
484 "れる。 このカウンタは I<initval> 引き数で指定された値で初期化される。"
485
486 #. type: Plain text
487 #: build/C/man2/eventfd.2:44
488 msgid ""
489 "The following values may be bitwise ORed in I<flags> to change the behaviour "
490 "of B<eventfd>():"
491 msgstr ""
492 "以下の値のいくつかをビット単位の論理和 (OR) で指定することで、\n"
493 "B<eventfd>() の振舞いを変更することができる。"
494
495 #. type: TP
496 #: build/C/man2/eventfd.2:44
497 #, no-wrap
498 msgid "B<EFD_CLOEXEC> (since Linux 2.6.27)"
499 msgstr "B<EFD_CLOEXEC> (Linux 2.6.27 以降)"
500
501 #. type: Plain text
502 #: build/C/man2/eventfd.2:54 build/C/man2/signalfd.2:95
503 #: build/C/man2/timerfd_create.2:103
504 msgid ""
505 "Set the close-on-exec (B<FD_CLOEXEC>)  flag on the new file descriptor.  See "
506 "the description of the B<O_CLOEXEC> flag in B<open>(2)  for reasons why this "
507 "may be useful."
508 msgstr ""
509 "新しいファイルディスクリプタに対して close-on-exec (B<FD_CLOEXEC>)  フラグを"
510 "セットする。 このフラグが役に立つ理由については、 B<open>(2)  の "
511 "B<O_CLOEXEC> フラグの説明を参照のこと。"
512
513 #. type: TP
514 #: build/C/man2/eventfd.2:54
515 #, no-wrap
516 msgid "B<EFD_NONBLOCK> (since Linux 2.6.27)"
517 msgstr "B<EFD_NONBLOCK> (Linux 2.6.27 以降)"
518
519 #. type: Plain text
520 #: build/C/man2/eventfd.2:62 build/C/man2/signalfd.2:85
521 #: build/C/man2/timerfd_create.2:93
522 msgid ""
523 "Set the B<O_NONBLOCK> file status flag on the new open file description.  "
524 "Using this flag saves extra calls to B<fcntl>(2)  to achieve the same result."
525 msgstr ""
526 "新しく生成されるオープンファイル記述 (open file description) の "
527 "B<O_NONBLOCK> ファイルステータスフラグをセットする。 このフラグを使うこと"
528 "で、 B<O_NONBLOCK> をセットするために B<fcntl>(2)  を追加で呼び出す必要がなく"
529 "なる。"
530
531 #. type: TP
532 #: build/C/man2/eventfd.2:62
533 #, no-wrap
534 msgid "B<EFD_SEMAPHORE> (since Linux 2.6.30)"
535 msgstr "B<EFD_SEMAPHORE> (Linux 2.6.30 以降)"
536
537 #. type: Plain text
538 #: build/C/man2/eventfd.2:66
539 msgid ""
540 "Provide semaphore-like semantics for reads from the new file descriptor.  "
541 "See below."
542 msgstr ""
543 "新しいファイルディスクリプタからの読み出しにおいて、セマフォ風の動作を行"
544 "う。\n"
545 "下記参照。"
546
547 #. type: Plain text
548 #: build/C/man2/eventfd.2:70 build/C/man2/signalfd.2:99
549 msgid ""
550 "In Linux up to version 2.6.26, the I<flags> argument is unused, and must be "
551 "specified as zero."
552 msgstr ""
553 "バージョン 2.6.26 以前の Linux では、 I<flags> 引き数は未使用であり、0 を指定"
554 "しなければならない。"
555
556 #. type: Plain text
557 #: build/C/man2/eventfd.2:76
558 msgid ""
559 "As its return value, B<eventfd>()  returns a new file descriptor that can be "
560 "used to refer to the eventfd object.  The following operations can be "
561 "performed on the file descriptor:"
562 msgstr ""
563 "B<eventfd>()  は eventfd オブジェクトを参照するのに使用できる新しいファイル"
564 "ディスクリプタ を返す。返されたファイルディスクリプタに対しては以下の操作を実"
565 "行できる。"
566
567 #. type: TP
568 #: build/C/man2/eventfd.2:76 build/C/man2/signalfd.2:102
569 #: build/C/man2/timerfd_create.2:211
570 #, no-wrap
571 msgid "B<read>(2)"
572 msgstr "B<read>(2)"
573
574 #. type: Plain text
575 #: build/C/man2/eventfd.2:86
576 msgid ""
577 "Each successful B<read>(2)  returns an 8-byte integer.  A B<read>(2)  will "
578 "fail with the error B<EINVAL> if the size of the supplied buffer is less "
579 "than 8 bytes."
580 msgstr ""
581 "B<read>(2) は成功すると、8 バイトの整数を返す。\n"
582 "渡されたバッファの大きさが 8 バイト未満の場合、\n"
583 "B<read>(2)  はエラー B<EINVAL> で失敗する。"
584
585 #. type: Plain text
586 #: build/C/man2/eventfd.2:91
587 msgid ""
588 "The value returned by B<read>(2)  is in host byte order, i.e., the native "
589 "byte order for integers on the host machine."
590 msgstr ""
591 "B<read>(2) が返す値は、ホストバイトオーダ、つまり\n"
592 "そのホストマシンにおける整数の通常のバイトオーダである。"
593
594 #. type: Plain text
595 #: build/C/man2/eventfd.2:98
596 msgid ""
597 "The semantics of B<read>(2)  depend on whether the eventfd counter currently "
598 "has a nonzero value and whether the B<EFD_SEMAPHORE> flag was specified when "
599 "creating the eventfd file descriptor:"
600 msgstr ""
601 "B<read>(2) の動作は、 eventfd カウンタの現在の値が 0 以外であるかと、\n"
602 "eventfd ファイルディスクリプタを作成する際に B<EFD_SEMAPHORE> フラグが\n"
603 "指定されたか、により変化する。"
604
605 #. type: IP
606 #: build/C/man2/eventfd.2:99 build/C/man2/eventfd.2:106
607 #: build/C/man2/eventfd.2:113 build/C/man2/eventfd.2:158
608 #: build/C/man2/eventfd.2:168 build/C/man2/eventfd.2:178
609 #: build/C/man2/prctl.2:827 build/C/man2/prctl.2:832 build/C/man2/prctl.2:837
610 #: build/C/man2/prctl.2:847 build/C/man3/psignal.3:105
611 #: build/C/man3/psignal.3:109 build/C/man2/sigaction.2:298
612 #: build/C/man2/sigaction.2:313 build/C/man2/sigaction.2:329
613 #: build/C/man2/sigaction.2:344 build/C/man2/sigaction.2:391
614 #: build/C/man2/sigaction.2:427 build/C/man2/signal.2:68
615 #: build/C/man2/signal.2:73 build/C/man2/signal.2:80 build/C/man2/signal.2:221
616 #: build/C/man2/signal.2:225 build/C/man2/signal.2:264
617 #: build/C/man7/signal.7:149 build/C/man7/signal.7:157
618 #: build/C/man7/signal.7:615 build/C/man7/signal.7:617
619 #: build/C/man7/signal.7:638 build/C/man7/signal.7:653
620 #: build/C/man7/signal.7:657 build/C/man7/signal.7:664
621 #: build/C/man7/signal.7:680 build/C/man7/signal.7:686
622 #: build/C/man7/signal.7:693 build/C/man7/signal.7:698
623 #: build/C/man7/signal.7:717 build/C/man7/signal.7:736
624 #: build/C/man7/signal.7:743 build/C/man7/signal.7:752
625 #: build/C/man7/signal.7:760 build/C/man7/signal.7:766
626 #: build/C/man7/signal.7:771 build/C/man7/signal.7:791
627 #: build/C/man7/signal.7:810 build/C/man7/signal.7:813
628 #: build/C/man7/signal.7:816 build/C/man7/signal.7:819
629 #: build/C/man7/signal.7:824 build/C/man7/signal.7:830
630 #: build/C/man7/signal.7:834 build/C/man3/sigwait.3:62
631 #: build/C/man3/sigwait.3:67 build/C/man2/timer_create.2:216
632 #: build/C/man2/timer_create.2:219 build/C/man2/timer_create.2:222
633 #: build/C/man2/timer_create.2:226 build/C/man2/timer_create.2:229
634 #: build/C/man2/timer_create.2:235 build/C/man2/timer_create.2:239
635 #, no-wrap
636 msgid "*"
637 msgstr "*"
638
639 #. type: Plain text
640 #: build/C/man2/eventfd.2:106
641 msgid ""
642 "If B<EFD_SEMAPHORE> was not specified and the eventfd counter has a nonzero "
643 "value, then a B<read>(2)  returns 8 bytes containing that value, and the "
644 "counter's value is reset to zero."
645 msgstr ""
646 "B<EFD_SEMAPHORE> が指定されておらず、eventfd カウンタが 0 以外の値\n"
647 "の場合、 B<read>(2) はカウンタ値を格納した 8 バイトの値を返し、\n"
648 "カウンタ値は 0 にリセットされる。"
649
650 #. type: Plain text
651 #: build/C/man2/eventfd.2:113
652 msgid ""
653 "If B<EFD_SEMAPHORE> was specified and the eventfd counter has a nonzero "
654 "value, then a B<read>(2)  returns 8 bytes containing the value 1, and the "
655 "counter's value is decremented by 1."
656 msgstr ""
657 "B<EFD_SEMAPHORE> が指定されていて eventfd カウンタが 0 以外の値の場合、\n"
658 "B<read>(2) は値 1 の 8 バイト値を返し、カウンタ値は 1 減算される。"
659
660 #. type: Plain text
661 #: build/C/man2/eventfd.2:123
662 msgid ""
663 "If the eventfd counter is zero at the time of the call to B<read>(2), then "
664 "the call either blocks until the counter becomes nonzero (at which time, the "
665 "B<read>(2)  proceeds as described above)  or fails with the error B<EAGAIN> "
666 "if the file descriptor has been made nonblocking."
667 msgstr ""
668 "B<read>(2) を呼び出した時点で eventfd カウンタが 0 の場合、 B<read>(2)\n"
669 "はカウンタが 0 以外になるまで停止 (block) する (0 以外になった時点で\n"
670 "B<read>(2) は上記で述べた通り実行を再開する)、 もしくはファイルディスク\n"
671 "リプタが非停止 (nonblocking) に設定されている場合はエラー B<EAGAIN>で\n"
672 "失敗する。"
673
674 #. type: TP
675 #: build/C/man2/eventfd.2:124
676 #, no-wrap
677 msgid "B<write>(2)"
678 msgstr "B<write>(2)"
679
680 #. type: Plain text
681 #: build/C/man2/eventfd.2:141
682 msgid ""
683 "A B<write>(2)  call adds the 8-byte integer value supplied in its buffer to "
684 "the counter.  The maximum value that may be stored in the counter is the "
685 "largest unsigned 64-bit value minus 1 (i.e., 0xfffffffffffffffe).  If the "
686 "addition would cause the counter's value to exceed the maximum, then the "
687 "B<write>(2)  either blocks until a B<read>(2)  is performed on the file "
688 "descriptor, or fails with the error B<EAGAIN> if the file descriptor has "
689 "been made nonblocking."
690 msgstr ""
691 "B<write>(2)  は、引き数のバッファで渡された 8 バイトの整数値をカウンタに加算"
692 "する。 カウンタに格納可能な最大値は unsigned の 64 ビット整数の最大値から 1 "
693 "を引いた値 (すなわち 0xfffffffffffffffe) である。 加算を行うとカウンタ値が最"
694 "大値を超過する場合には、 そのファイルディスクリプタに対して B<read>(2)  が実"
695 "行されるまで、 B<write>(2)  は停止 (block) する、 もしくはファイルディスクリ"
696 "プタが非停止 (nonblocking)  に設定されている場合はエラー B<EAGAIN> で失敗す"
697 "る。"
698
699 #. type: Plain text
700 #: build/C/man2/eventfd.2:148
701 msgid ""
702 "A B<write>(2)  will fail with the error B<EINVAL> if the size of the "
703 "supplied buffer is less than 8 bytes, or if an attempt is made to write the "
704 "value 0xffffffffffffffff."
705 msgstr ""
706 "渡されたバッファの大きさが 8 バイト未満の場合、もしくは 値 "
707 "0xffffffffffffffff を書き込もうとした場合、 B<write>(2)  はエラー B<EINVAL> "
708 "で失敗する。"
709
710 #. type: TP
711 #: build/C/man2/eventfd.2:148 build/C/man2/signalfd.2:140
712 #: build/C/man2/timerfd_create.2:244
713 #, no-wrap
714 msgid "B<poll>(2), B<select>(2) (and similar)"
715 msgstr "B<poll>(2), B<select>(2) (と同様の操作)"
716
717 #. type: Plain text
718 #: build/C/man2/eventfd.2:157
719 msgid ""
720 "The returned file descriptor supports B<poll>(2)  (and analogously B<epoll>"
721 "(7))  and B<select>(2), as follows:"
722 msgstr ""
723 "返されたファイルディスクリプタは、 B<poll>(2)  (B<epoll>(7)  も同じ) や "
724 "B<select>(2)  をサポートしており、以下のような動作をする。"
725
726 #. type: Plain text
727 #: build/C/man2/eventfd.2:168
728 msgid ""
729 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
730 "B<poll>(2)  B<POLLIN> flag)  if the counter has a value greater than 0."
731 msgstr ""
732 "カウンタが 0 より大きい値の場合、 ファイルディスクリプタは読み出し可能となる "
733 "(B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
734
735 #. type: Plain text
736 #: build/C/man2/eventfd.2:178
737 msgid ""
738 "The file descriptor is writable (the B<select>(2)  I<writefds> argument; the "
739 "B<poll>(2)  B<POLLOUT> flag)  if it is possible to write a value of at least "
740 "\"1\" without blocking."
741 msgstr ""
742 "少なくとも値 \"1\" を、停止 (block) を伴わずに書き込める場合、 ファイルディス"
743 "クリプタは書き込み可能となる (B<select>(2)  の I<writefds> 引き数や B<poll>"
744 "(2)  の B<POLLOUT> フラグ)。"
745
746 #. type: Plain text
747 #: build/C/man2/eventfd.2:198
748 msgid ""
749 "If an overflow of the counter value was detected, then B<select>(2)  "
750 "indicates the file descriptor as being both readable and writable, and "
751 "B<poll>(2)  returns a B<POLLERR> event.  As noted above, B<write>(2)  can "
752 "never overflow the counter.  However an overflow can occur if 2^64 eventfd "
753 "\"signal posts\" were performed by the KAIO subsystem (theoretically "
754 "possible, but practically unlikely).  If an overflow has occurred, then "
755 "B<read>(2)  will return that maximum I<uint64_t> value (i.e., "
756 "0xffffffffffffffff)."
757 msgstr ""
758 "カウンタ値のオーバーフローが検出された場合、 B<select>(2)  はファイルディスク"
759 "リプタは読み出し可能と書き込み可能の両方を通知し、 B<poll>(2)  は B<POLLERR> "
760 "イベントを返す。 上述の通り、 B<write>(2)  でカウンタがオーバーフローすること"
761 "は決してない。 しかしながら、 KAIO サブシステムによって 2^64 回の eventfd "
762 "\"signal posts\" が 実行された場合にはオーバーフローが起こり得る (理論的には"
763 "あり得るが、実用的にはあり得ない)。 オーバーフローが発生した場合、 B<read>"
764 "(2)  は I<uint64_t> の最大値 (すなわち 0xffffffffffffffff) を返す。"
765
766 #. type: Plain text
767 #: build/C/man2/eventfd.2:205
768 msgid ""
769 "The eventfd file descriptor also supports the other file-descriptor "
770 "multiplexing APIs: B<pselect>(2)  and B<ppoll>(2)."
771 msgstr ""
772 "eventfd ファイルディスクリプタは、これ以外のファイルディスクリプタ 多重 API "
773 "である B<pselect>(2) と B<ppoll>(2) もサポートしている。"
774
775 #. type: TP
776 #: build/C/man2/eventfd.2:205 build/C/man2/signalfd.2:160
777 #: build/C/man2/timerfd_create.2:262
778 #, no-wrap
779 msgid "B<close>(2)"
780 msgstr "B<close>(2)"
781
782 #. type: Plain text
783 #: build/C/man2/eventfd.2:210
784 msgid ""
785 "When the file descriptor is no longer required it should be closed.  When "
786 "all file descriptors associated with the same eventfd object have been "
787 "closed, the resources for object are freed by the kernel."
788 msgstr ""
789 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
790 "る。 同じ eventfd オブジェクトに関連付けられたファイルディスクリプタが全て ク"
791 "ローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
792
793 #. type: Plain text
794 #: build/C/man2/eventfd.2:222
795 msgid ""
796 "A copy of the file descriptor created by B<eventfd>()  is inherited by the "
797 "child produced by B<fork>(2).  The duplicate file descriptor is associated "
798 "with the same eventfd object.  File descriptors created by B<eventfd>()  are "
799 "preserved across B<execve>(2), unless the close-on-exec flag has been set."
800 msgstr ""
801 "B<fork>(2) で生成された子プロセスは、 B<eventfd>() で生成されたファイル\n"
802 "ディスクリプタのコピーを継承する。 複製されたファイルディスクリプタは同\n"
803 "じ eventfd オブジェクトに関連付けられる。\n"
804 "close-on-exec フラグが設定されていない場合、 B<execve>(2) の前後で\n"
805 "B<eventfd>() で生成されたファイルディスクリプタは保持される。"
806
807 #. type: Plain text
808 #: build/C/man2/eventfd.2:229
809 msgid ""
810 "On success, B<eventfd>()  returns a new eventfd file descriptor.  On error, "
811 "-1 is returned and I<errno> is set to indicate the error."
812 msgstr ""
813 "成功すると、 B<eventfd>()  は新規の eventfd ファイルディスクリプタを返す。 エ"
814 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
815
816 #. type: TP
817 #: build/C/man2/eventfd.2:230 build/C/man2/getitimer.2:135
818 #: build/C/man2/kill.2:105 build/C/man2/killpg.2:95 build/C/man2/prctl.2:789
819 #: build/C/man2/prctl.2:794 build/C/man2/prctl.2:806 build/C/man2/prctl.2:811
820 #: build/C/man2/prctl.2:820 build/C/man2/prctl.2:860
821 #: build/C/man2/rt_sigqueueinfo.2:141 build/C/man2/s390_runtime_instr.2:66
822 #: build/C/man2/sigaction.2:668 build/C/man2/sigaltstack.2:142
823 #: build/C/man3/siginterrupt.3:79 build/C/man2/signal.2:103
824 #: build/C/man2/signalfd.2:271 build/C/man2/signalfd.2:279
825 #: build/C/man2/sigprocmask.2:104 build/C/man3/sigqueue.3:98
826 #: build/C/man3/sigsetops.3:124 build/C/man3/sigwait.3:75
827 #: build/C/man2/sigwaitinfo.2:129 build/C/man2/timer_create.2:179
828 #: build/C/man2/timer_delete.2:61 build/C/man2/timer_getoverrun.2:91
829 #: build/C/man2/timer_settime.2:191 build/C/man2/timer_settime.2:199
830 #: build/C/man2/timerfd_create.2:305 build/C/man2/timerfd_create.2:313
831 #: build/C/man2/timerfd_create.2:349 build/C/man2/timerfd_create.2:356
832 #: build/C/man2/timerfd_create.2:362 build/C/man2/tkill.2:100
833 #: build/C/man2/wait.2:415
834 #, no-wrap
835 msgid "B<EINVAL>"
836 msgstr "B<EINVAL>"
837
838 #. type: Plain text
839 #: build/C/man2/eventfd.2:234
840 msgid "An unsupported value was specified in I<flags>."
841 msgstr "I<flags> にサポートされていない値が指定された。"
842
843 #. type: TP
844 #: build/C/man2/eventfd.2:234 build/C/man2/signalfd.2:286
845 #: build/C/man2/timerfd_create.2:320
846 #, no-wrap
847 msgid "B<EMFILE>"
848 msgstr "B<EMFILE>"
849
850 #. type: Plain text
851 #: build/C/man2/eventfd.2:237
852 msgid "The per-process limit on open file descriptors has been reached."
853 msgstr ""
854 "オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。"
855
856 #. type: TP
857 #: build/C/man2/eventfd.2:237 build/C/man2/signalfd.2:289
858 #: build/C/man2/timerfd_create.2:323
859 #, no-wrap
860 msgid "B<ENFILE>"
861 msgstr "B<ENFILE>"
862
863 #. type: Plain text
864 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
865 #: build/C/man2/timerfd_create.2:327
866 msgid ""
867 "The system-wide limit on the total number of open files has been reached."
868 msgstr "オープン済みのファイル総数がシステム全体の上限に達していた。"
869
870 #. type: TP
871 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
872 #: build/C/man2/timerfd_create.2:327
873 #, no-wrap
874 msgid "B<ENODEV>"
875 msgstr "B<ENODEV>"
876
877 #. type: Plain text
878 #: build/C/man2/eventfd.2:249 build/C/man2/signalfd.2:296
879 #: build/C/man2/timerfd_create.2:330
880 msgid "Could not mount (internal) anonymous inode device."
881 msgstr "(カーネル内の) 無名 inode デバイスをマウントできなかった。"
882
883 #. type: TP
884 #: build/C/man2/eventfd.2:249 build/C/man2/s390_runtime_instr.2:73
885 #: build/C/man2/sigaltstack.2:147 build/C/man2/signalfd.2:296
886 #: build/C/man2/timer_create.2:187 build/C/man2/timerfd_create.2:330
887 #, no-wrap
888 msgid "B<ENOMEM>"
889 msgstr "B<ENOMEM>"
890
891 #. type: Plain text
892 #: build/C/man2/eventfd.2:253
893 msgid "There was insufficient memory to create a new eventfd file descriptor."
894 msgstr ""
895 "新しい eventfd ファイルディスクリプタを生成するのに十分なメモリがなかった。"
896
897 #. type: SH
898 #: build/C/man2/eventfd.2:253 build/C/man2/prctl.2:951
899 #: build/C/man3/psignal.3:95 build/C/man2/rt_sigqueueinfo.2:169
900 #: build/C/man2/s390_runtime_instr.2:79 build/C/man2/signalfd.2:299
901 #: build/C/man3/sigqueue.3:112 build/C/man2/timer_create.2:191
902 #: build/C/man2/timer_delete.2:65 build/C/man2/timer_getoverrun.2:95
903 #: build/C/man2/timer_settime.2:205 build/C/man2/timerfd_create.2:368
904 #: build/C/man2/tkill.2:111
905 #, no-wrap
906 msgid "VERSIONS"
907 msgstr "バージョン"
908
909 #.  eventfd() is in glibc 2.7, but reportedly does not build
910 #. type: Plain text
911 #: build/C/man2/eventfd.2:266
912 msgid ""
913 "B<eventfd>()  is available on Linux since kernel 2.6.22.  Working support is "
914 "provided in glibc since version 2.8.  The B<eventfd2>()  system call (see "
915 "NOTES) is available on Linux since kernel 2.6.27.  Since version 2.9, the "
916 "glibc B<eventfd>()  wrapper will employ the B<eventfd2>()  system call, if "
917 "it is supported by the kernel."
918 msgstr ""
919 "B<eventfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
920 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<eventfd2>()  "
921 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
922 "る。 バージョン 2.9 以降では、glibc の B<eventfd>()  のラッパー関数は、カーネ"
923 "ルが対応していれば B<eventfd2>()  システムコールを利用する。"
924
925 #. type: Plain text
926 #: build/C/man2/eventfd.2:271
927 msgid "B<eventfd>()  and B<eventfd2>()  are Linux-specific."
928 msgstr "B<eventfd>()  と B<eventfd2>()  は Linux 固有である。"
929
930 #. type: Plain text
931 #: build/C/man2/eventfd.2:279
932 msgid ""
933 "Applications can use an eventfd file descriptor instead of a pipe (see "
934 "B<pipe>(2))  in all cases where a pipe is used simply to signal events.  The "
935 "kernel overhead of an eventfd file descriptor is much lower than that of a "
936 "pipe, and only one file descriptor is required (versus the two required for "
937 "a pipe)."
938 msgstr ""
939 "アプリケーションは、パイプをイベントを通知するためだけに使用している 全ての場"
940 "面において、パイプの代わりに eventfd ファイルディスクリプタを 使用することが"
941 "できる。 eventfd ファイルディスクリプタを使う方が、パイプを使う場合に比べて "
942 "カーネルでのオーバヘッドは比べるとずっと小さく、ファイルディスクリプタも 一つ"
943 "しか必要としない (パイプの場合は二つ必要である)。"
944
945 #.  or eventually syslets/threadlets
946 #. type: Plain text
947 #: build/C/man2/eventfd.2:285
948 msgid ""
949 "When used in the kernel, an eventfd file descriptor can provide a bridge "
950 "from kernel to user space, allowing, for example, functionalities like KAIO "
951 "(kernel AIO)  to signal to a file descriptor that some operation is complete."
952 msgstr ""
953 "カーネル内で使用すると、eventfd ファイルディスクリプタはカーネル空間からユー"
954 "ザ空間へのブリッジ機能を提供することができ、 例えば KAIO (kernel AIO)  のよう"
955 "な機能が、あるファイルディスクリプタに何らかの操作が完了したことを 通知するこ"
956 "とができる。"
957
958 #. type: Plain text
959 #: build/C/man2/eventfd.2:302
960 msgid ""
961 "A key point about an eventfd file descriptor is that it can be monitored "
962 "just like any other file descriptor using B<select>(2), B<poll>(2), or "
963 "B<epoll>(7).  This means that an application can simultaneously monitor the "
964 "readiness of \"traditional\" files and the readiness of other kernel "
965 "mechanisms that support the eventfd interface.  (Without the B<eventfd>()  "
966 "interface, these mechanisms could not be multiplexed via B<select>(2), "
967 "B<poll>(2), or B<epoll>(7).)"
968 msgstr ""
969 "eventfd ファイルディスクリプタの重要な点は、 eventfd ファイルディスクリプタ"
970 "が B<select>(2), B<poll>(2), B<epoll>(7)  を使って他のファイルディスクリプタ"
971 "と全く同様に監視できる点である。 このことは、アプリケーションは「従来の "
972 "(traditional)」 ファイルの状態変化と eventfd インタフェースをサポートする他の"
973 "カーネル機構の状態変化を同時に監視 できることを意味する (B<eventfd>()  インタ"
974 "フェースがない時には、これらのカーネル機構は B<select>(2), B<poll>(2), "
975 "B<epoll>(7)  経由で多重することはできなかった)。"
976
977 #. type: SS
978 #: build/C/man2/eventfd.2:302 build/C/man2/signalfd.2:336
979 #, no-wrap
980 msgid "Underlying Linux system calls"
981 msgstr "下層にある Linux のシステムコール"
982
983 #. type: Plain text
984 #: build/C/man2/eventfd.2:316
985 msgid ""
986 "There are two underlying Linux system calls: B<eventfd>()  and the more "
987 "recent B<eventfd2>().  The former system call does not implement a I<flags> "
988 "argument.  The latter system call implements the I<flags> values described "
989 "above.  The glibc wrapper function will use B<eventfd2>()  where it is "
990 "available."
991 msgstr ""
992 "下層にある Linux システムコールは二種類あり、 B<eventfd>()  と、もっと新しい "
993 "B<eventfd2>()  である。 B<eventfd>()  は I<flags> 引き数を実装していない。 "
994 "B<eventfd2>()  では上記の値の I<flags> が実装されている。 glibc のラッパー関"
995 "数は、 B<eventfd2>()  が利用可能であれば、これを使用する。"
996
997 #. type: SS
998 #: build/C/man2/eventfd.2:316
999 #, no-wrap
1000 msgid "Additional glibc features"
1001 msgstr "glibc の追加機能"
1002
1003 #. type: Plain text
1004 #: build/C/man2/eventfd.2:320
1005 msgid ""
1006 "The GNU C library defines an additional type, and two functions that attempt "
1007 "to abstract some of the details of reading and writing on an eventfd file "
1008 "descriptor:"
1009 msgstr ""
1010 "GNU C ライブラリは、eventfd ファイルディスクリプタの読み出しと書き込みに を関"
1011 "する詳細のいくつか抽象化するために、一つの型と、二つの関数を追加で 定義してい"
1012 "る。"
1013
1014 #. type: Plain text
1015 #: build/C/man2/eventfd.2:324
1016 #, no-wrap
1017 msgid "typedef uint64_t eventfd_t;\n"
1018 msgstr "typedef uint64_t eventfd_t;\n"
1019
1020 #. type: Plain text
1021 #: build/C/man2/eventfd.2:327
1022 #, no-wrap
1023 msgid ""
1024 "int eventfd_read(int fd, eventfd_t *value);\n"
1025 "int eventfd_write(int fd, eventfd_t value);\n"
1026 msgstr ""
1027 "int eventfd_read(int fd, eventfd_t *value);\n"
1028 "int eventfd_write(int fd, eventfd_t value);\n"
1029
1030 #. type: Plain text
1031 #: build/C/man2/eventfd.2:334
1032 msgid ""
1033 "The functions perform the read and write operations on an eventfd file "
1034 "descriptor, returning 0 if the correct number of bytes was transferred, or "
1035 "-1 otherwise."
1036 msgstr ""
1037 "これらの関数は、eventfd ファイルディスクリプタに対する読み出しと 書き込みの操"
1038 "作を実行し、正しいバイト数が転送された場合には 0 を返し、そうでない場合は -1 "
1039 "を返す。"
1040
1041 #. type: SH
1042 #: build/C/man2/eventfd.2:334 build/C/man2/sigaction.2:788
1043 #: build/C/man2/sigaltstack.2:215 build/C/man2/signalfd.2:360
1044 #: build/C/man3/sigwait.3:86 build/C/man2/timer_create.2:253
1045 #: build/C/man2/timer_getoverrun.2:128 build/C/man2/timer_settime.2:209
1046 #: build/C/man2/timerfd_create.2:379 build/C/man2/wait.2:536
1047 #, no-wrap
1048 msgid "EXAMPLE"
1049 msgstr "例"
1050
1051 #. type: Plain text
1052 #: build/C/man2/eventfd.2:343
1053 msgid ""
1054 "The following program creates an eventfd file descriptor and then forks to "
1055 "create a child process.  While the parent briefly sleeps, the child writes "
1056 "each of the integers supplied in the program's command-line arguments to the "
1057 "eventfd file descriptor.  When the parent has finished sleeping, it reads "
1058 "from the eventfd file descriptor."
1059 msgstr ""
1060 "以下のプログラムは eventfd ファイルディスクリプタを生成し、 その後 fork を実"
1061 "行して子プロセスを生成する。 親プロセスが少しの間 sleep する間に、子プロセス"
1062 "は プログラムのコマンドライン引き数で指定された整数(列)をそれぞれ eventfd "
1063 "ファイルディスクリプタに書き込む。 親プロセスは sleep を完了すると eventfd "
1064 "ファイルディスクリプタから 読み出しを行う。"
1065
1066 #. type: Plain text
1067 #: build/C/man2/eventfd.2:345
1068 msgid "The following shell session shows a sample run of the program:"
1069 msgstr "以下に示すシェルセッションにこのプログラムの使い方を示す。"
1070
1071 #. type: Plain text
1072 #: build/C/man2/eventfd.2:357
1073 #, no-wrap
1074 msgid ""
1075 "$B< ./a.out 1 2 4 7 14>\n"
1076 "Child writing 1 to efd\n"
1077 "Child writing 2 to efd\n"
1078 "Child writing 4 to efd\n"
1079 "Child writing 7 to efd\n"
1080 "Child writing 14 to efd\n"
1081 "Child completed write loop\n"
1082 "Parent about to read\n"
1083 "Parent read 28 (0x1c) from efd\n"
1084 msgstr ""
1085 "$B< ./a.out 1 2 4 7 14>\n"
1086 "Child writing 1 to efd\n"
1087 "Child writing 2 to efd\n"
1088 "Child writing 4 to efd\n"
1089 "Child writing 7 to efd\n"
1090 "Child writing 14 to efd\n"
1091 "Child completed write loop\n"
1092 "Parent about to read\n"
1093 "Parent read 28 (0x1c) from efd\n"
1094
1095 #. type: SS
1096 #: build/C/man2/eventfd.2:359 build/C/man2/signalfd.2:383
1097 #: build/C/man2/timer_create.2:284 build/C/man2/timerfd_create.2:407
1098 #: build/C/man2/wait.2:571
1099 #, no-wrap
1100 msgid "Program source"
1101 msgstr "プログラムのソース"
1102
1103 #. type: Plain text
1104 #: build/C/man2/eventfd.2:367
1105 #, no-wrap
1106 msgid ""
1107 "#include E<lt>sys/eventfd.hE<gt>\n"
1108 "#include E<lt>unistd.hE<gt>\n"
1109 "#include E<lt>stdlib.hE<gt>\n"
1110 "#include E<lt>stdio.hE<gt>\n"
1111 "#include E<lt>stdint.hE<gt>             /* Definition of uint64_t */\n"
1112 msgstr ""
1113 "#include E<lt>sys/eventfd.hE<gt>\n"
1114 "#include E<lt>unistd.hE<gt>\n"
1115 "#include E<lt>stdlib.hE<gt>\n"
1116 "#include E<lt>stdio.hE<gt>\n"
1117 "#include E<lt>stdint.hE<gt>             /* Definition of uint64_t */\n"
1118
1119 #. type: Plain text
1120 #: build/C/man2/eventfd.2:370 build/C/man2/signalfd.2:394
1121 #, no-wrap
1122 msgid ""
1123 "#define handle_error(msg) \\e\n"
1124 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1125 msgstr ""
1126 "#define handle_error(msg) \\e\n"
1127 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1128
1129 #. type: Plain text
1130 #: build/C/man2/eventfd.2:377
1131 #, no-wrap
1132 msgid ""
1133 "int\n"
1134 "main(int argc, char *argv[])\n"
1135 "{\n"
1136 "    int efd, j;\n"
1137 "    uint64_t u;\n"
1138 "    ssize_t s;\n"
1139 msgstr ""
1140 "int\n"
1141 "main(int argc, char *argv[])\n"
1142 "{\n"
1143 "    int efd, j;\n"
1144 "    uint64_t u;\n"
1145 "    ssize_t s;\n"
1146
1147 #. type: Plain text
1148 #: build/C/man2/eventfd.2:382
1149 #, no-wrap
1150 msgid ""
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 msgstr ""
1156 "    if (argc E<lt> 2) {\n"
1157 "        fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n"
1158 "        exit(EXIT_FAILURE);\n"
1159 "    }\n"
1160
1161 #. type: Plain text
1162 #: build/C/man2/eventfd.2:386
1163 #, no-wrap
1164 msgid ""
1165 "    efd = eventfd(0, 0);\n"
1166 "    if (efd == -1)\n"
1167 "        handle_error(\"eventfd\");\n"
1168 msgstr ""
1169 "    efd = eventfd(0, 0);\n"
1170 "    if (efd == -1)\n"
1171 "        handle_error(\"eventfd\");\n"
1172
1173 #. type: Plain text
1174 #: build/C/man2/eventfd.2:398
1175 #, no-wrap
1176 msgid ""
1177 "    switch (fork()) {\n"
1178 "    case 0:\n"
1179 "        for (j = 1; j E<lt> argc; j++) {\n"
1180 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1181 "            u = strtoull(argv[j], NULL, 0);\n"
1182 "                    /* strtoull() allows various bases */\n"
1183 "            s = write(efd, &u, sizeof(uint64_t));\n"
1184 "            if (s != sizeof(uint64_t))\n"
1185 "                handle_error(\"write\");\n"
1186 "        }\n"
1187 "        printf(\"Child completed write loop\\en\");\n"
1188 msgstr ""
1189 "    switch (fork()) {\n"
1190 "    case 0:\n"
1191 "        for (j = 1; j E<lt> argc; j++) {\n"
1192 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1193 "            u = strtoull(argv[j], NULL, 0);\n"
1194 "                    /* strtoull() allows various bases */\n"
1195 "            s = write(efd, &u, sizeof(uint64_t));\n"
1196 "            if (s != sizeof(uint64_t))\n"
1197 "                handle_error(\"write\");\n"
1198 "        }\n"
1199 "        printf(\"Child completed write loop\\en\");\n"
1200
1201 #. type: Plain text
1202 #: build/C/man2/eventfd.2:400
1203 #, no-wrap
1204 msgid "        exit(EXIT_SUCCESS);\n"
1205 msgstr "        exit(EXIT_SUCCESS);\n"
1206
1207 #. type: Plain text
1208 #: build/C/man2/eventfd.2:403
1209 #, no-wrap
1210 msgid ""
1211 "    default:\n"
1212 "        sleep(2);\n"
1213 msgstr ""
1214 "    default:\n"
1215 "        sleep(2);\n"
1216
1217 #. type: Plain text
1218 #: build/C/man2/eventfd.2:411
1219 #, no-wrap
1220 msgid ""
1221 "        printf(\"Parent about to read\\en\");\n"
1222 "        s = read(efd, &u, sizeof(uint64_t));\n"
1223 "        if (s != sizeof(uint64_t))\n"
1224 "            handle_error(\"read\");\n"
1225 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1226 "                (unsigned long long) u, (unsigned long long) u);\n"
1227 "        exit(EXIT_SUCCESS);\n"
1228 msgstr ""
1229 "        printf(\"Parent about to read\\en\");\n"
1230 "        s = read(efd, &u, sizeof(uint64_t));\n"
1231 "        if (s != sizeof(uint64_t))\n"
1232 "            handle_error(\"read\");\n"
1233 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1234 "                (unsigned long long) u, (unsigned long long) u);\n"
1235 "        exit(EXIT_SUCCESS);\n"
1236
1237 #. type: Plain text
1238 #: build/C/man2/eventfd.2:416
1239 #, no-wrap
1240 msgid ""
1241 "    case -1:\n"
1242 "        handle_error(\"fork\");\n"
1243 "    }\n"
1244 "}\n"
1245 msgstr ""
1246 "    case -1:\n"
1247 "        handle_error(\"fork\");\n"
1248 "    }\n"
1249 "}\n"
1250
1251 #. type: Plain text
1252 #: build/C/man2/eventfd.2:428
1253 msgid ""
1254 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), B<signalfd>"
1255 "(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), B<sem_overview>(7)"
1256 msgstr ""
1257 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), B<signalfd>"
1258 "(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), B<sem_overview>(7)"
1259
1260 #. type: TH
1261 #: build/C/man2/getitimer.2:12
1262 #, no-wrap
1263 msgid "GETITIMER"
1264 msgstr "GETITIMER"
1265
1266 #. type: TH
1267 #: build/C/man2/getitimer.2:12
1268 #, no-wrap
1269 msgid "2012-10-01"
1270 msgstr "2012-10-01"
1271
1272 #. type: Plain text
1273 #: build/C/man2/getitimer.2:15
1274 msgid "getitimer, setitimer - get or set value of an interval timer"
1275 msgstr "getitimer, setitimer - インターバル・タイマーの値を取得または設定する"
1276
1277 #. type: Plain text
1278 #: build/C/man2/getitimer.2:18
1279 #, no-wrap
1280 msgid "B<#include E<lt>sys/time.hE<gt>>\n"
1281 msgstr "B<#include E<lt>sys/time.hE<gt>>\n"
1282
1283 #. type: Plain text
1284 #: build/C/man2/getitimer.2:20
1285 #, no-wrap
1286 msgid "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1287 msgstr "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1288
1289 #. type: Plain text
1290 #: build/C/man2/getitimer.2:23
1291 #, no-wrap
1292 msgid ""
1293 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1294 "B<              struct itimerval *>I<old_value>B<);>\n"
1295 msgstr ""
1296 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1297 "B<              struct itimerval *>I<old_value>B<);>\n"
1298
1299 #. type: Plain text
1300 #: build/C/man2/getitimer.2:29
1301 msgid ""
1302 "The system provides each process with three interval timers, each "
1303 "decrementing in a distinct time domain.  When any timer expires, a signal is "
1304 "sent to the process, and the timer (potentially) restarts."
1305 msgstr ""
1306 "システムは 1 個のプロセスにつき 3 個のインターバル・タイマーを提供する。 それ"
1307 "ぞれのタイマーは別々の時間領域で減少する。 どのタイマーも満了するとプロセスに"
1308 "シグナルが送られ、 タイマーは (設定によっては) 再び開始される。"
1309
1310 #. type: TP
1311 #: build/C/man2/getitimer.2:29
1312 #, no-wrap
1313 msgid "B<ITIMER_REAL>"
1314 msgstr "B<ITIMER_REAL>"
1315
1316 #. type: Plain text
1317 #: build/C/man2/getitimer.2:34
1318 msgid "decrements in real time, and delivers B<SIGALRM> upon expiration."
1319 msgstr "実時間 (real time) で減少し、満了すると B<SIGALRM> が送られる。"
1320
1321 #. type: TP
1322 #: build/C/man2/getitimer.2:34
1323 #, no-wrap
1324 msgid "B<ITIMER_VIRTUAL>"
1325 msgstr "B<ITIMER_VIRTUAL>"
1326
1327 #. type: Plain text
1328 #: build/C/man2/getitimer.2:39
1329 msgid ""
1330 "decrements only when the process is executing, and delivers B<SIGVTALRM> "
1331 "upon expiration."
1332 msgstr ""
1333 "プロセスが実行されている間のみ減少し、満了すると B<SIGVTALRM> が送られる。"
1334
1335 #. type: TP
1336 #: build/C/man2/getitimer.2:39
1337 #, no-wrap
1338 msgid "B<ITIMER_PROF>"
1339 msgstr "B<ITIMER_PROF>"
1340
1341 #. type: Plain text
1342 #: build/C/man2/getitimer.2:49
1343 msgid ""
1344 "decrements both when the process executes and when the system is executing "
1345 "on behalf of the process.  Coupled with B<ITIMER_VIRTUAL>, this timer is "
1346 "usually used to profile the time spent by the application in user and kernel "
1347 "space.  B<SIGPROF> is delivered upon expiration."
1348 msgstr ""
1349 "プロセスが実行されていて、 かつシステムがそのプロセスのために処理を行なってい"
1350 "る間に減少する。 多くの場合、このタイマーは B<ITIMER_VIRTUAL> と組み合わされ"
1351 "て、アプリケーションがカーネル空間とユーザー空間で どれだけの時間を過ごしたか"
1352 "をプロファイルするのに使用される。 満了すると B<SIGPROF> が送られる。"
1353
1354 #. type: Plain text
1355 #: build/C/man2/getitimer.2:51
1356 msgid "Timer values are defined by the following structures:"
1357 msgstr "タイマーの値は以下の構造体によって定義される:"
1358
1359 #. type: Plain text
1360 #: build/C/man2/getitimer.2:59
1361 #, no-wrap
1362 msgid ""
1363 "struct itimerval {\n"
1364 "    struct timeval it_interval; /* next value */\n"
1365 "    struct timeval it_value;    /* current value */\n"
1366 "};\n"
1367 msgstr ""
1368 "struct itimerval {\n"
1369 "    struct timeval it_interval; /* next value */\n"
1370 "    struct timeval it_value;    /* current value */\n"
1371 "};\n"
1372
1373 #. type: Plain text
1374 #: build/C/man2/getitimer.2:64
1375 #, no-wrap
1376 msgid ""
1377 "struct timeval {\n"
1378 "    time_t      tv_sec;         /* seconds */\n"
1379 "    suseconds_t tv_usec;        /* microseconds */\n"
1380 "};\n"
1381 msgstr ""
1382 "struct timeval {\n"
1383 "    time_t      tv_sec;         /* seconds */\n"
1384 "    suseconds_t tv_usec;        /* microseconds */\n"
1385 "};\n"
1386
1387 #. type: Plain text
1388 #: build/C/man2/getitimer.2:86
1389 msgid ""
1390 "The function B<getitimer>()  fills the structure pointed to by I<curr_value> "
1391 "with the current setting for the timer specified by I<which> (one of "
1392 "B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>).  The element "
1393 "I<it_value> is set to the amount of time remaining on the timer, or zero if "
1394 "the timer is disabled.  Similarly, I<it_interval> is set to the reset value."
1395 msgstr ""
1396 "B<getitimer>()  関数は、 I<which> で指定されたタイマー (B<ITIMER_REAL>, "
1397 "B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれか) の現在の設定を、 I<curr_value> で"
1398 "指定された構造体に格納する。 I<it_value> 要素にはタイマーの残り時間が設定され"
1399 "る。タイマーがオフの場合は ゼロが設定される。同様に I<it_interval> には初期値"
1400 "が設定される。"
1401
1402 #. type: Plain text
1403 #: build/C/man2/getitimer.2:94
1404 msgid ""
1405 "The function B<setitimer>()  sets the specified timer to the value in "
1406 "I<new_value>.  If I<old_value> is non-NULL, the old value of the timer is "
1407 "stored there."
1408 msgstr ""
1409 "B<setitimer>()  関数は指定されたタイマーに I<new_value> の値を設定する。 "
1410 "I<old_value> が NULL 以外の場合、タイマーの古い値が I<old_value> に格納され"
1411 "る。"
1412
1413 #. type: Plain text
1414 #: build/C/man2/getitimer.2:104
1415 msgid ""
1416 "Timers decrement from I<it_value> to zero, generate a signal, and reset to "
1417 "I<it_interval>.  A timer which is set to zero (I<it_value> is zero or the "
1418 "timer expires and I<it_interval> is zero) stops."
1419 msgstr ""
1420 "タイマーは I<it_value> からゼロへ向けて減っていき、シグナルを生成し、 "
1421 "I<it_interval> に初期化される。 タイマーがゼロに設定された場合 (I<it_value> "
1422 "がゼロか、タイマーが満了した時に I<it_interval> がゼロの場合) は停止する。"
1423
1424 #. type: Plain text
1425 #: build/C/man2/getitimer.2:110
1426 msgid ""
1427 "Both I<tv_sec> and I<tv_usec> are significant in determining the duration of "
1428 "a timer."
1429 msgstr "タイマーの期間は I<tv_sec> と I<tv_usec> の両方により決定される。"
1430
1431 #. type: Plain text
1432 #: build/C/man2/getitimer.2:122
1433 msgid ""
1434 "Timers will never expire before the requested time, but may expire some "
1435 "(short) time afterward, which depends on the system timer resolution and on "
1436 "the system load; see B<time>(7).  (But see BUGS below.)  Upon expiration, a "
1437 "signal will be generated and the timer reset.  If the timer expires while "
1438 "the process is active (always true for B<ITIMER_VIRTUAL>)  the signal will "
1439 "be delivered immediately when generated.  Otherwise the delivery will be "
1440 "offset by a small time dependent on the system loading."
1441 msgstr ""
1442 "要求した時間がくる前にタイマーが満了することはないが、 逆にある (短い) 時間だ"
1443 "け満了が遅れることはある。 どれだけ遅れるかはシステムの時間分解能とシステムの"
1444 "負荷に依存する (B<time>(7)  参照; 但し、バグの項も参照のこと)。 タイマーが満"
1445 "了するとシグナルが生成され、タイマーは初期化される。 プロセスがアクティブな"
1446 "時 (B<ITIMER_VIRTUAL> の場合には常にそうである) にタイマーが満了した場合、生"
1447 "成されたシグナルは すぐに配送される。それ以外の場合は、システムの負荷により少"
1448 "しの時間だけ 遅れて配送される。"
1449
1450 #. type: Plain text
1451 #: build/C/man2/getitimer.2:127 build/C/man2/killpg.2:94
1452 #: build/C/man2/tkill.2:99
1453 msgid ""
1454 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
1455 "appropriately."
1456 msgstr ""
1457 "成功した場合、0 が返される。エラーが発生した場合、-1 が返され、 I<errno> が適"
1458 "切に設定される。"
1459
1460 #. type: TP
1461 #: build/C/man2/getitimer.2:128 build/C/man2/prctl.2:785
1462 #: build/C/man2/sigaction.2:664 build/C/man2/sigaltstack.2:138
1463 #: build/C/man2/sigpending.2:57 build/C/man2/sigprocmask.2:97
1464 #: build/C/man2/sigsuspend.2:75 build/C/man2/timer_settime.2:184
1465 #: build/C/man2/timerfd_create.2:342
1466 #, no-wrap
1467 msgid "B<EFAULT>"
1468 msgstr "B<EFAULT>"
1469
1470 #. type: Plain text
1471 #: build/C/man2/getitimer.2:135 build/C/man2/timerfd_create.2:349
1472 msgid "I<new_value>, I<old_value>, or I<curr_value> is not valid a pointer."
1473 msgstr "I<new_value>, I<old_value>, I<curr_value> が有効なポインタではない。"
1474
1475 #. type: Plain text
1476 #: build/C/man2/getitimer.2:148
1477 msgid ""
1478 "I<which> is not one of B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>; "
1479 "or (since Linux 2.6.22) one of the I<tv_usec> fields in the structure "
1480 "pointed to by I<new_value> contains a value outside the range 0 to 999999."
1481 msgstr ""
1482 "I<which> が B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれでもな"
1483 "い。 または (Linux 2.6.22 以降で)  I<new_value> で指定された構造体の "
1484 "I<tv_usec> フィールドの一つが 0 以上 999999 以下の範囲に入らない値である。"
1485
1486 #. type: Plain text
1487 #: build/C/man2/getitimer.2:158
1488 msgid ""
1489 "POSIX.1-2001, SVr4, 4.4BSD (this call first appeared in 4.2BSD).  "
1490 "POSIX.1-2008 marks B<getitimer>()  and B<setitimer>()  obsolete, "
1491 "recommending the use of the POSIX timers API (B<timer_gettime>(2), "
1492 "B<timer_settime>(2), etc.) instead."
1493 msgstr ""
1494 "POSIX.1-2001, SVr4, 4.4BSD (このコールは 4.2BSD で始めて現われた).  "
1495 "POSIX.1-2008 では、 B<getitimer>()  と B<setitimer>()  は廃止予定とされてお"
1496 "り、 代わりに POSIX タイマー API (B<timer_gettime>(2), B<timer_settime>(2)  "
1497 "など) を使うことが推奨されている。"
1498
1499 #. type: Plain text
1500 #: build/C/man2/getitimer.2:164
1501 msgid ""
1502 "A child created via B<fork>(2)  does not inherit its parent's interval "
1503 "timers.  Interval timers are preserved across an B<execve>(2)."
1504 msgstr ""
1505 "B<fork>(2)  で作成された子プロセスは、 親プロセスのインターバル・タイマーを継"
1506 "承しない。 B<execve>(2)  の前後ではインターバル・タイマーは保存される。"
1507
1508 #. type: Plain text
1509 #: build/C/man2/getitimer.2:174
1510 msgid ""
1511 "POSIX.1 leaves the interaction between B<setitimer>()  and the three "
1512 "interfaces B<alarm>(2), B<sleep>(3), and B<usleep>(3)  unspecified."
1513 msgstr ""
1514 "POSIX.1 では、 B<setitimer>()  と、 B<alarm>(2), B<sleep>(3), B<usleep>(3)  "
1515 "という 3 つのインタフェースとの相互の影響については規定していない。"
1516
1517 #. type: Plain text
1518 #: build/C/man2/getitimer.2:176
1519 msgid "The standards are silent on the meaning of the call:"
1520 msgstr ""
1521
1522 #. type: Plain text
1523 #: build/C/man2/getitimer.2:178
1524 #, no-wrap
1525 msgid "    setitimer(which, NULL, &old_value);\n"
1526 msgstr ""
1527
1528 #. type: Plain text
1529 #: build/C/man2/getitimer.2:181
1530 msgid ""
1531 "Many systems (Solaris, the BSDs, and perhaps others)  treat this as "
1532 "equivalent to:"
1533 msgstr ""
1534
1535 #. type: Plain text
1536 #: build/C/man2/getitimer.2:183
1537 #, no-wrap
1538 msgid "    getitimer(which, &old_value);\n"
1539 msgstr ""
1540
1541 #. type: Plain text
1542 #: build/C/man2/getitimer.2:189
1543 msgid ""
1544 "In Linux, this is treated as being equivalent to a call in which the "
1545 "I<new_value> fields are zero; that is, the timer is disabled.  I<Don't use "
1546 "this Linux misfeature>: it is nonportable and unnecessary."
1547 msgstr ""
1548
1549 #. type: SH
1550 #: build/C/man2/getitimer.2:189 build/C/man2/kill.2:160
1551 #: build/C/man3/profil.3:70 build/C/man3/psignal.3:101
1552 #: build/C/man2/sigaction.2:779 build/C/man2/signalfd.2:352
1553 #: build/C/man2/sigpending.2:78 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:521
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:40 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:67 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-02-05"
1769 msgstr "2013-02-05"
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:99 build/C/man2/killpg.2:89
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 msgstr ""
1862 "プロセスがシグナルを送信する許可を持つためには、 プロセスが特権 (Linux では "
1863 "B<CAP_KILL> ケーパビリティ (capability)) を持つか、 送信元プロセスの実ユー"
1864 "ザー ID または実効ユーザー ID が 送信先プロセスの実 set-user-ID または保存 "
1865 "set-user-ID と 等しくなければならない。 B<SIGCONT> の場合、送信プロセスと受信"
1866 "プロセスが 同じセッションに属していれば十分である。"
1867
1868 #. type: Plain text
1869 #: build/C/man2/kill.2:104
1870 msgid ""
1871 "On success (at least one signal was sent), zero is returned.  On error, -1 "
1872 "is returned, and I<errno> is set appropriately."
1873 msgstr ""
1874 "成功した場合 (少なくとも一つのシグナルが送信された場合)、 0 が返される。エ"
1875 "ラーの場合 -1 が返され、 I<errno> が適切に設定される。"
1876
1877 #. type: Plain text
1878 #: build/C/man2/kill.2:108
1879 msgid "An invalid signal was specified."
1880 msgstr "無効なシグナルを指定した。"
1881
1882 #. type: TP
1883 #: build/C/man2/kill.2:108 build/C/man2/killpg.2:99 build/C/man2/prctl.2:870
1884 #: build/C/man2/prctl.2:882 build/C/man2/prctl.2:892 build/C/man2/prctl.2:900
1885 #: build/C/man2/rt_sigqueueinfo.2:148 build/C/man2/sigaltstack.2:151
1886 #: build/C/man3/sigqueue.3:102 build/C/man2/tkill.2:103
1887 #, no-wrap
1888 msgid "B<EPERM>"
1889 msgstr "B<EPERM>"
1890
1891 #. type: Plain text
1892 #: build/C/man2/kill.2:112 build/C/man2/killpg.2:103
1893 msgid ""
1894 "The process does not have permission to send the signal to any of the target "
1895 "processes."
1896 msgstr ""
1897 "プロセスが、受信するプロセスのいずれに対しても シグナルを送る許可を持っていな"
1898 "い。"
1899
1900 #. type: TP
1901 #: build/C/man2/kill.2:112 build/C/man2/killpg.2:103 build/C/man2/killpg.2:107
1902 #: build/C/man2/rt_sigqueueinfo.2:156 build/C/man3/sigqueue.3:108
1903 #: build/C/man2/tkill.2:108
1904 #, no-wrap
1905 msgid "B<ESRCH>"
1906 msgstr "B<ESRCH>"
1907
1908 #. type: Plain text
1909 #: build/C/man2/kill.2:120
1910 msgid ""
1911 "The pid or process group does not exist.  Note that an existing process "
1912 "might be a zombie, a process which already committed termination, but has "
1913 "not yet been B<wait>(2)ed for."
1914 msgstr ""
1915 "指定したプロセスまたはプロセス・グループが存在しなかった。 ゾンビプロセスは存"
1916 "在するプロセスとしてみなされる。 ゾンビプロセスとはすでに処理は終了している"
1917 "が、親プロセスによる B<wait>()  処理が行われていないプロセスのことである。"
1918
1919 #. type: Plain text
1920 #: build/C/man2/kill.2:122 build/C/man2/pause.2:59 build/C/man2/wait.2:422
1921 msgid "SVr4, 4.3BSD, POSIX.1-2001."
1922 msgstr "SVr4, 4.3BSD, POSIX.1-2001."
1923
1924 #. type: Plain text
1925 #: build/C/man2/kill.2:130
1926 msgid ""
1927 "The only signals that can be sent to process ID 1, the I<init> process, are "
1928 "those for which I<init> has explicitly installed signal handlers.  This is "
1929 "done to assure the system is not brought down accidentally."
1930 msgstr ""
1931 "プロセス番号 1 の I<init> プロセスに送ることができるシグナルは、 I<init> が明"
1932 "示的にシグナルハンドラを設定したシグナルだけである。 こうなっているのは、誤っ"
1933 "てシステムをダウンさせないようにするためである。"
1934
1935 #. type: Plain text
1936 #: build/C/man2/kill.2:136
1937 msgid ""
1938 "POSIX.1-2001 requires that I<kill(-1,sig)> send I<sig> to all processes that "
1939 "the calling process may send signals to, except possibly for some "
1940 "implementation-defined system processes.  Linux allows a process to signal "
1941 "itself, but on Linux the call I<kill(-1,sig)> does not signal the calling "
1942 "process."
1943 msgstr ""
1944 "POSIX.1-2001 では、 I<kill(-1,sig)> が 呼び出し元のプロセスがシグナルを送るこ"
1945 "とが出来るプロセス全てに I<sig> を送ることを要求している。 但し、システム実装"
1946 "時に定められたシステムプロセスは シグナルの送信対象から除外される。 Linux で"
1947 "は、プロセスが自分自身にシグナルを送れるようになっているが、 Linux の I<kill"
1948 "(-1,sig)> は呼び出し元のプロセスにはシグナルを送らない。"
1949
1950 #. type: Plain text
1951 #: build/C/man2/kill.2:146
1952 msgid ""
1953 "POSIX.1-2001 requires that if a process sends a signal to itself, and the "
1954 "sending thread does not have the signal blocked, and no other thread has it "
1955 "unblocked or is waiting for it in B<sigwait>(3), at least one unblocked "
1956 "signal must be delivered to the sending thread before the B<kill>()  returns."
1957 msgstr ""
1958 "POSIX.1-2001 では以下の動作になることを要求している。 自分自身にシグナルを送"
1959 "ると、シグナルを送ったスレッドがそのシグナルをブロック しておらず、他のどのス"
1960 "レッドもそのシグナルを受ける状態にもなく B<sigwait>(3)  でそのシグナルを待っ"
1961 "てもいない場合、 B<kill>()  が返る前に少なくとも一つのブロックされていない シ"
1962 "グナルがシグナルを送ったスレッドに配送されなければならない。"
1963
1964 #. type: SS
1965 #: build/C/man2/kill.2:146 build/C/man3/sigpause.3:77 build/C/man2/wait.2:476
1966 #, no-wrap
1967 msgid "Linux notes"
1968 msgstr "Linux での注意"
1969
1970 #.  In the 0.* kernels things chopped and changed quite
1971 #.  a bit - MTK, 24 Jul 02
1972 #. type: Plain text
1973 #: build/C/man2/kill.2:160
1974 msgid ""
1975 "Across different kernel versions, Linux has enforced different rules for the "
1976 "permissions required for an unprivileged process to send a signal to another "
1977 "process.  In kernels 1.0 to 1.2.2, a signal could be sent if the effective "
1978 "user ID of the sender matched that of the receiver, or the real user ID of "
1979 "the sender matched that of the receiver.  From kernel 1.2.3 until 1.3.77, a "
1980 "signal could be sent if the effective user ID of the sender matched either "
1981 "the real or effective user ID of the receiver.  The current rules, which "
1982 "conform to POSIX.1-2001, were adopted in kernel 1.3.78."
1983 msgstr ""
1984 "Linux では、特権のないプロセスが他のプロセスにシグナルを送信するために 必要な"
1985 "権限についてのルールが、カーネルバージョンにより違っている。 カーネル 1.0 か"
1986 "ら 1.2.2 では、送信側の実効ユーザーID が受信側の 実効ユーザー IDと一致すれば"
1987 "シグナルを送信できた。 カーネル 1.2.3 から 1.3.77では、送信側の実効ユーザー"
1988 "ID が受信側の 実ユーザーID か実効ユーザーID のいずれかと一致すればシグナルを"
1989 "送信できた。 現在のルールは、POSIX.1-2001 に準拠しており、カーネル 1.3.78 以"
1990 "降で 適用されている。"
1991
1992 #. type: Plain text
1993 #: build/C/man2/kill.2:170
1994 msgid ""
1995 "In 2.6 kernels up to and including 2.6.7, there was a bug that meant that "
1996 "when sending signals to a process group, B<kill>()  failed with the error "
1997 "B<EPERM> if the caller did not have permission to send the signal to I<any> "
1998 "(rather than I<all>) of the members of the process group.  Notwithstanding "
1999 "this error return, the signal was still delivered to all of the processes "
2000 "for which the caller had permission to signal."
2001 msgstr ""
2002 "バージョン 2.6.7 以前の 2.6 系のカーネルには、 プロセスグループにシグナルを"
2003 "送ったときに、 呼び出し元のプロセスがプロセスグループの (全メンバーではなく) "
2004 "一部のメンバーに対してのみシグナルを送る許可を持っていない場合に、 B<kill>"
2005 "()  がエラー B<EPERM> で失敗するというバグがある。 このエラーが返るにもかかわ"
2006 "らず、そのシグナルは呼び出し元が シグナルを送る許可を持つ全てのプロセスへ送ら"
2007 "れる。"
2008
2009 #. type: Plain text
2010 #: build/C/man2/kill.2:180
2011 msgid ""
2012 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), B<sigqueue>"
2013 "(3), B<capabilities>(7), B<credentials>(7), B<signal>(7)"
2014 msgstr ""
2015 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), B<sigqueue>"
2016 "(3), B<credentials>(7), B<capabilities>(7), B<signal>(7)"
2017
2018 #. type: TH
2019 #: build/C/man2/killpg.2:42
2020 #, no-wrap
2021 msgid "KILLPG"
2022 msgstr "KILLPG"
2023
2024 #. type: TH
2025 #: build/C/man2/killpg.2:42 build/C/man3/sigset.3:26
2026 #, no-wrap
2027 msgid "2010-09-20"
2028 msgstr "2010-09-20"
2029
2030 #. type: Plain text
2031 #: build/C/man2/killpg.2:45
2032 msgid "killpg - send signal to a process group"
2033 msgstr "killpg - シグナルをプロセス・グループに送る"
2034
2035 #. type: Plain text
2036 #: build/C/man2/killpg.2:49
2037 msgid "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2038 msgstr "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2039
2040 #. type: TP
2041 #: build/C/man2/killpg.2:55
2042 #, no-wrap
2043 msgid "B<killpg>():"
2044 msgstr "B<killpg>():"
2045
2046 #. type: Plain text
2047 #: build/C/man2/killpg.2:59 build/C/man2/sigaltstack.2:46
2048 #: build/C/man3/siginterrupt.3:51 build/C/man2/wait4.2:60
2049 msgid ""
2050 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2051 "_XOPEN_SOURCE_EXTENDED"
2052 msgstr ""
2053 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2054 "_XOPEN_SOURCE_EXTENDED"
2055
2056 #. type: Plain text
2057 #: build/C/man2/killpg.2:69
2058 msgid ""
2059 "B<killpg>()  sends the signal I<sig> to the process group I<pgrp>.  See "
2060 "B<signal>(7)  for a list of signals."
2061 msgstr ""
2062 "B<killpg>()  は I<sig> で指定したシグナルを I<pgrp> で指定したプロセス・グ"
2063 "ループに送る。 シグナルの定義の一覧は B<signal>(7)  を参照のこと。"
2064
2065 #. type: Plain text
2066 #: build/C/man2/killpg.2:78
2067 msgid ""
2068 "If I<pgrp> is 0, B<killpg>()  sends the signal to the calling process's "
2069 "process group.  (POSIX says: If I<pgrp> is less than or equal to 1, the "
2070 "behavior is undefined.)"
2071 msgstr ""
2072 "引き数 I<pgrp> に 0 を指定した場合には B<killpg>()  は呼び出し元のプロセスが"
2073 "属しているプロセス・グループに対してシグナルを送る。 (POSIX では以下のように"
2074 "記述されている: I<pgrp> が 1 以下である場合、動作は未定義である。)"
2075
2076 #. type: Plain text
2077 #: build/C/man2/killpg.2:99
2078 msgid "I<Sig> is not a valid signal number."
2079 msgstr "I<sig> で指定された値は無効なシグナル番号である。"
2080
2081 #. type: Plain text
2082 #: build/C/man2/killpg.2:107
2083 msgid "No process can be found in the process group specified by I<pgrp>."
2084 msgstr ""
2085 "I<pgrp> で指定されたプロセス・グループに属するプロセスが存在しなかった。"
2086
2087 #. type: Plain text
2088 #: build/C/man2/killpg.2:111
2089 msgid ""
2090 "The process group was given as 0 but the sending process does not have a "
2091 "process group."
2092 msgstr ""
2093 "プロセス・グループとして 0 が指定されたが、送信プロセスは プロセス・グループ"
2094 "を持っていない。"
2095
2096 #. type: Plain text
2097 #: build/C/man2/killpg.2:115
2098 msgid ""
2099 "SVr4, 4.4BSD (the B<killpg>()  function call first appeared in 4BSD), "
2100 "POSIX.1-2001."
2101 msgstr "SVr4, 4.4BSD (B<killpg>()  は 4BSD で初めて追加された), POSIX.1-2001。"
2102
2103 #. type: Plain text
2104 #: build/C/man2/killpg.2:129
2105 msgid ""
2106 "There are various differences between the permission checking in BSD-type "
2107 "systems and System V-type systems.  See the POSIX rationale for B<kill>().  "
2108 "A difference not mentioned by POSIX concerns the return value B<EPERM>: BSD "
2109 "documents that no signal is sent and B<EPERM> returned when the permission "
2110 "check failed for at least one target process, while POSIX documents B<EPERM> "
2111 "only when the permission check failed for all target processes."
2112 msgstr ""
2113 "BSD 系システムと System V 系システムでは、 許可のチェックに様々な違いがあ"
2114 "る。 B<kill>(2)  についての POSIX の原理 (rationale) を参照すること。 POSIX "
2115 "で記述されていない違いとしては、返り値 B<EPERM> がある。 BSD では「送信先プロ"
2116 "セスの許可のチェックが 1 つでも失敗した場合は、 シグナルが送信されず、 "
2117 "B<EPERM> が返される」と記述されている。 POSIX では「送信先プロセスの許可の"
2118 "チェックが全て失敗した場合にのみ、 B<EPERM> が返される」と記述されている。"
2119
2120 #. type: Plain text
2121 #: build/C/man2/killpg.2:134
2122 msgid ""
2123 "On Linux, B<killpg>()  is implemented as a library function that makes the "
2124 "call I<kill(-pgrp,\\ sig)>."
2125 msgstr ""
2126 "Linux では、 B<killpg>()  はライブラリ関数として実装されており、 I<kill(-"
2127 "pgrp,\\ sig)> の呼び出しが行われる。"
2128
2129 #. type: Plain text
2130 #: build/C/man2/killpg.2:140
2131 msgid ""
2132 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<capabilities>(7), B<credentials>"
2133 "(7)"
2134 msgstr ""
2135 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<credentials>(7), B<capabilities>"
2136 "(7)"
2137
2138 #. type: TH
2139 #: build/C/man2/pause.2:30
2140 #, no-wrap
2141 msgid "PAUSE"
2142 msgstr "PAUSE"
2143
2144 #. type: TH
2145 #: build/C/man2/pause.2:30
2146 #, no-wrap
2147 msgid "2008-10-06"
2148 msgstr "2008-10-06"
2149
2150 #. type: Plain text
2151 #: build/C/man2/pause.2:33
2152 msgid "pause - wait for signal"
2153 msgstr "pause - シグナルを待つ"
2154
2155 #. type: Plain text
2156 #: build/C/man2/pause.2:35 build/C/man3/profil.3:33
2157 msgid "B<#include E<lt>unistd.hE<gt>>"
2158 msgstr "B<#include E<lt>unistd.hE<gt>>"
2159
2160 #. type: Plain text
2161 #: build/C/man2/pause.2:37
2162 msgid "B<int pause(void);>"
2163 msgstr "B<int pause(void);>"
2164
2165 #. type: Plain text
2166 #: build/C/man2/pause.2:42
2167 msgid ""
2168 "B<pause>()  causes the calling process (or thread) to sleep until a signal "
2169 "is delivered that either terminates the process or causes the invocation of "
2170 "a signal-catching function."
2171 msgstr ""
2172 "B<pause>()  は、呼び出したプロセス (またはスレッド) を、 そのプロセスを終了さ"
2173 "せたり、シグナル捕捉関数が起動されるような シグナルが配送されるまで、スリープ"
2174 "させる。"
2175
2176 #.  .BR ERESTARTNOHAND .
2177 #. type: Plain text
2178 #: build/C/man2/pause.2:53
2179 #, fuzzy
2180 #| msgid ""
2181 #| "B<pause>()  only returns when a signal was caught and the signal-catching "
2182 #| "function returned.  In this case B<pause>()  returns -1, and I<errno> is "
2183 #| "set to B<EINTR>."
2184 msgid ""
2185 "B<pause>()  returns only when a signal was caught and the signal-catching "
2186 "function returned.  In this case B<pause>()  returns -1, and I<errno> is set "
2187 "to B<EINTR>."
2188 msgstr ""
2189 "B<pause>()  が返るのは、シグナルを受け取りシグナル捕獲関数から返った場合だけ"
2190 "である。 この場合は B<pause>()  は -1 を返し、 I<errno> に B<EINTR> が設定さ"
2191 "れる。"
2192
2193 #. type: TP
2194 #: build/C/man2/pause.2:54 build/C/man2/sigsuspend.2:79
2195 #: build/C/man2/sigwaitinfo.2:123 build/C/man2/wait.2:408
2196 #, no-wrap
2197 msgid "B<EINTR>"
2198 msgstr "B<EINTR>"
2199
2200 #. type: Plain text
2201 #: build/C/man2/pause.2:57
2202 msgid "a signal was caught and the signal-catching function returned."
2203 msgstr "シグナルを受け取り、シグナル捕獲関数から帰ってきた。"
2204
2205 #. type: Plain text
2206 #: build/C/man2/pause.2:64
2207 msgid "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2208 msgstr "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2209
2210 #. type: TH
2211 #: build/C/man2/prctl.2:52
2212 #, no-wrap
2213 msgid "PRCTL"
2214 msgstr "PRCTL"
2215
2216 #. type: TH
2217 #: build/C/man2/prctl.2:52
2218 #, no-wrap
2219 msgid "2013-02-25"
2220 msgstr "2013-02-25"
2221
2222 #. type: Plain text
2223 #: build/C/man2/prctl.2:55
2224 msgid "prctl - operations on a process"
2225 msgstr "prctl - プロセスの操作を行なう"
2226
2227 #. type: Plain text
2228 #: build/C/man2/prctl.2:58
2229 #, no-wrap
2230 msgid "B<#include E<lt>sys/prctl.hE<gt>>\n"
2231 msgstr "B<#include E<lt>sys/prctl.hE<gt>>\n"
2232
2233 #. type: Plain text
2234 #: build/C/man2/prctl.2:61
2235 #, no-wrap
2236 msgid ""
2237 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2238 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2239 msgstr ""
2240 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2241 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2242
2243 #. type: Plain text
2244 #: build/C/man2/prctl.2:68
2245 msgid ""
2246 "B<prctl>()  is called with a first argument describing what to do (with "
2247 "values defined in I<E<lt>linux/prctl.hE<gt>>), and further arguments with a "
2248 "significance depending on the first one.  The first argument can be:"
2249 msgstr ""
2250 "B<prctl>()  の動作は最初の引き数によって決定される (この値は I<E<lt>linux/"
2251 "prctl.hE<gt>> に定義されている)。 残りの引き数は最初の引き数によって変化す"
2252 "る。 一番目の引き数として以下のものを指定できる:"
2253
2254 #. type: TP
2255 #: build/C/man2/prctl.2:68
2256 #, no-wrap
2257 msgid "B<PR_CAPBSET_READ> (since Linux 2.6.25)"
2258 msgstr "B<PR_CAPBSET_READ> (Linux 2.6.25 以降)"
2259
2260 #. type: Plain text
2261 #: build/C/man2/prctl.2:80
2262 msgid ""
2263 "Return (as the function result) 1 if the capability specified in I<arg2> is "
2264 "in the calling thread's capability bounding set, or 0 if it is not.  (The "
2265 "capability constants are defined in I<E<lt>linux/capability.hE<gt>>.)  The "
2266 "capability bounding set dictates whether the process can receive the "
2267 "capability through a file's permitted capability set on a subsequent call to "
2268 "B<execve>(2)."
2269 msgstr ""
2270 "で指定されたケーパビリティが呼び出したスレッドのケーパビリティ バインディング"
2271 "セット (capability bounding set) に含まれている場合、 (関数の返り値として) 1 "
2272 "を返し、そうでない場合 0 を返す (ケーパビリティ定数は I<E<lt>linux/"
2273 "capability.hE<gt>> で定義されている)。 ケーパビリティバウンディングセット"
2274 "は、 B<execve>(2)  を呼び出した際に、ファイルの許可 (permitted) ケーパビリ"
2275 "ティの中で そのプロセスが獲得できるケーパビリティを指示するものである。"
2276
2277 #. type: Plain text
2278 #: build/C/man2/prctl.2:85
2279 msgid ""
2280 "If the capability specified in I<arg2> is not valid, then the call fails "
2281 "with the error B<EINVAL>."
2282 msgstr ""
2283 "I<arg2> に指定されたケーパビリティが有効でない場合、 呼び出しはエラー "
2284 "B<EINVAL> で失敗する。"
2285
2286 #. type: TP
2287 #: build/C/man2/prctl.2:85
2288 #, no-wrap
2289 msgid "B<PR_CAPBSET_DROP> (since Linux 2.6.25)"
2290 msgstr "B<PR_CAPBSET_DROP> (Linux 2.6.25 以降)"
2291
2292 #. type: Plain text
2293 #: build/C/man2/prctl.2:94
2294 msgid ""
2295 "If the calling thread has the B<CAP_SETPCAP> capability, then drop the "
2296 "capability specified by I<arg2> from the calling thread's capability "
2297 "bounding set.  Any children of the calling thread will inherit the newly "
2298 "reduced bounding set."
2299 msgstr ""
2300 "呼び出したスレッドがケーパビリティ B<CAP_SETPCAP> を持っている場合、 呼び出し"
2301 "たスレッドのケーパビリティバウンディングセットから I<arg2> で指定されたケーパ"
2302 "ビリティを外す。 呼び出したスレッドの子プロセスは変更後のバウンディングセット"
2303 "を 継承する。"
2304
2305 #. type: Plain text
2306 #: build/C/man2/prctl.2:106
2307 msgid ""
2308 "The call fails with the error: B<EPERM> if the calling thread does not have "
2309 "the B<CAP_SETPCAP>; B<EINVAL> if I<arg2> does not represent a valid "
2310 "capability; or B<EINVAL> if file capabilities are not enabled in the kernel, "
2311 "in which case bounding sets are not supported."
2312 msgstr ""
2313 "呼び出したスレッドが B<CAP_SETPCAP> を持っていない場合、呼び出しはエラー "
2314 "B<EPERM> で失敗する。 I<arg2> に指定されたケーパビリティが有効でない場合、 "
2315 "B<EINVAL> で失敗する。 ファイルケーパビリティがカーネルで有効になっていない場"
2316 "合 (この場合にはバウンディングセットがサポートされない)、 B<EINVAL> で失敗す"
2317 "る。"
2318
2319 #. type: TP
2320 #: build/C/man2/prctl.2:106
2321 #, no-wrap
2322 msgid "B<PR_SET_CHILD_SUBREAPER> (since Linux 3.4)"
2323 msgstr "B<PR_SET_CHILD_SUBREAPER> (Linux 3.4 以降)"
2324
2325 #.  commit ebec18a6d3aa1e7d84aab16225e87fd25170ec2b
2326 #. type: Plain text
2327 #: build/C/man2/prctl.2:131
2328 msgid ""
2329 "If I<arg2> is nonzero, set the \"child subreaper\" attribute of the calling "
2330 "process; if I<arg2> is zero, unset the attribute.  When a process is marked "
2331 "as a child subreaper, all of the children that it creates, and their "
2332 "descendants, will be marked as having a subreaper.  In effect, a subreaper "
2333 "fulfills the role of B<init>(1)  for its descendant processes.  Upon "
2334 "termination of a process that is orphaned (i.e., its immediate parent has "
2335 "already terminated)  and marked as having a subreaper, the nearest still "
2336 "living ancestor subreaper will receive a B<SIGCHLD> signal and be able to "
2337 "B<wait>(2)  on the process to discover its termination status."
2338 msgstr ""
2339
2340 #. type: TP
2341 #: build/C/man2/prctl.2:131
2342 #, no-wrap
2343 msgid "B<PR_GET_CHILD_SUBREAPER> (since Linux 3.4)"
2344 msgstr "B<PR_GET_CHILD_SUBREAPER> (Linux 3.4 以降)"
2345
2346 #. type: Plain text
2347 #: build/C/man2/prctl.2:136
2348 #, fuzzy
2349 #| msgid ""
2350 #| "Return the endian-ness of the calling process, in the location pointed to "
2351 #| "by I<(int\\ *) arg2>."
2352 msgid ""
2353 "Return the \"child subreaper\" setting of the caller, in the location "
2354 "pointed to by I<(int\\ *) arg2>."
2355 msgstr ""
2356 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<(int\\ *) arg2> が指"
2357 "す場所に格納して返す。"
2358
2359 #. type: TP
2360 #: build/C/man2/prctl.2:136
2361 #, no-wrap
2362 msgid "B<PR_SET_DUMPABLE> (since Linux 2.3.20)"
2363 msgstr "B<PR_SET_DUMPABLE> (Linux 2.3.20 以降)"
2364
2365 #.  See http://marc.theaimsgroup.com/?l=linux-kernel&m=115270289030630&w=2
2366 #.  Subject:    Fix prctl privilege escalation (CVE-2006-2451)
2367 #.  From:       Marcel Holtmann <marcel () holtmann ! org>
2368 #.  Date:       2006-07-12 11:12:00
2369 #. type: Plain text
2370 #: build/C/man2/prctl.2:162
2371 msgid ""
2372 "Set the state of the flag determining whether core dumps are produced for "
2373 "the calling process upon delivery of a signal whose default behavior is to "
2374 "produce a core dump.  (Normally, this flag is set for a process by default, "
2375 "but it is cleared when a set-user-ID or set-group-ID program is executed and "
2376 "also by various system calls that manipulate process UIDs and GIDs).  In "
2377 "kernels up to and including 2.6.12, I<arg2> must be either 0 (process is not "
2378 "dumpable) or 1 (process is dumpable).  Between kernels 2.6.13 and 2.6.17, "
2379 "the value 2 was also permitted, which caused any binary which normally would "
2380 "not be dumped to be dumped readable by root only; for security reasons, this "
2381 "feature has been removed.  (See also the description of I</proc/sys/fs/"
2382 "suid_dumpable> in B<proc>(5).)  Processes that are not dumpable can not be "
2383 "attached via B<ptrace>(2)  B<PTRACE_ATTACH>."
2384 msgstr ""
2385 "(Linux 2.3.20 以降) デフォルトの振る舞いではコアダンプを引き起こすよう\n"
2386 "なシグナルを受信したときに、呼び出し元のプロセスでコアダンプを\n"
2387 "生成するかどうかを決定するフラグを\n"
2388 "設定する (通常このフラグは、デフォルトではセットされているが、\n"
2389 "set-user-ID あるいは set-group-ID プログラムが実行されたり、 さまざまな\n"
2390 "システムコールによってプロセスの UID や GID が操作されたときに クリアさ\n"
2391 "れる)。 2.6.12 以前のカーネルでは、 I<arg2> は 0 (プロセスはダンプ不可)\n"
2392 "あるいは 1 (プロセスはダンプ可能) の どちらかでなければならない。\n"
2393 "2.6.13 から 2.6.17 までのカーネルでは、値 2 も認められていた。 この値を\n"
2394 "指定すると、通常はダンプされないバイナリが root だけが 読み込み可能な形\n"
2395 "でダンプされた。 セキュリティ上の理由から、この機能は削除された\n"
2396 "(B<proc>(5) の I</proc/sys/fs/suid_dumpable> の説明も参照)。\n"
2397 "ダンプ不可のプロセスを B<ptrace>(2) B<PTRACE_ATTACH> 経由で接続すること\n"
2398 "はできない。"
2399
2400 #. type: TP
2401 #: build/C/man2/prctl.2:162
2402 #, no-wrap
2403 msgid "B<PR_GET_DUMPABLE> (since Linux 2.3.20)"
2404 msgstr "B<PR_GET_DUMPABLE> (Linux 2.3.20 以降)"
2405
2406 #.  Since Linux 2.6.13, the dumpable flag can have the value 2,
2407 #.  but in 2.6.13 PR_GET_DUMPABLE simply returns 1 if the dumpable
2408 #.  flags has a nonzero value.  This was fixed in 2.6.14.
2409 #. type: Plain text
2410 #: build/C/man2/prctl.2:169
2411 msgid ""
2412 "Return (as the function result) the current state of the calling process's "
2413 "dumpable flag."
2414 msgstr ""
2415 "(Linux 2.3.20 以降)  呼び出し元プロセスにおけるダンプ可能フラグの 現在の状態"
2416 "を (関数の返り値として) 返す。"
2417
2418 #. type: TP
2419 #: build/C/man2/prctl.2:169
2420 #, no-wrap
2421 msgid "B<PR_SET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2422 msgstr "B<PR_SET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2423
2424 #.  Respectively 0, 1, 2
2425 #. type: Plain text
2426 #: build/C/man2/prctl.2:179
2427 msgid ""
2428 "Set the endian-ness of the calling process to the value given in I<arg2>, "
2429 "which should be one of the following: B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2430 "or B<PR_ENDIAN_PPC_LITTLE> (PowerPC pseudo little endian)."
2431 msgstr ""
2432 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<arg2> で指定された値"
2433 "に設定する。 指定できる値は B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2434 "B<PR_ENDIAN_PPC_LITTLE> (PowerPC 擬似リトルエンディアン)  のいずれか一つであ"
2435 "る。"
2436
2437 #. type: TP
2438 #: build/C/man2/prctl.2:179
2439 #, no-wrap
2440 msgid "B<PR_GET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2441 msgstr "B<PR_GET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2442
2443 #. type: Plain text
2444 #: build/C/man2/prctl.2:184
2445 msgid ""
2446 "Return the endian-ness of the calling process, in the location pointed to by "
2447 "I<(int\\ *) arg2>."
2448 msgstr ""
2449 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<(int\\ *) arg2> が指"
2450 "す場所に格納して返す。"
2451
2452 #. type: TP
2453 #: build/C/man2/prctl.2:184
2454 #, no-wrap
2455 msgid "B<PR_SET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2456 msgstr "B<PR_SET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2457
2458 #. type: Plain text
2459 #: build/C/man2/prctl.2:191
2460 msgid ""
2461 "Set floating-point emulation control bits to I<arg2>.  Pass "
2462 "B<PR_FPEMU_NOPRINT> to silently emulate fp operations accesses, or "
2463 "B<PR_FPEMU_SIGFPE> to not emulate fp operations and send B<SIGFPE> instead."
2464 msgstr ""
2465 "浮動小数点エミュレーション (floating-point emulation) 制御ビットを I<arg2> で"
2466 "指定された値に設定する。 指定できる値は B<PR_FPEMU_NOPRINT> (浮動小数点命令ア"
2467 "クセスを黙って エミュレートする) か B<PR_FPEMU_SIGFPE> (浮動小数点命令をエ"
2468 "ミュレートせず、 代わりに B<SIGFPE> を送る) である。"
2469
2470 #. type: TP
2471 #: build/C/man2/prctl.2:191
2472 #, no-wrap
2473 msgid "B<PR_GET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2474 msgstr "B<PR_GET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2475
2476 #. type: Plain text
2477 #: build/C/man2/prctl.2:196
2478 msgid ""
2479 "Return floating-point emulation control bits, in the location pointed to by "
2480 "I<(int\\ *) arg2>."
2481 msgstr ""
2482 "浮動小数点エミュレーション制御ビットの値を I<(int\\ *) arg2> が指す場所に格納"
2483 "して返す。"
2484
2485 #. type: TP
2486 #: build/C/man2/prctl.2:196
2487 #, no-wrap
2488 msgid "B<PR_SET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2489 msgstr "B<PR_SET_FPEXC> (Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2490
2491 #. type: Plain text
2492 #: build/C/man2/prctl.2:209
2493 msgid ""
2494 "Set floating-point exception mode to I<arg2>.  Pass B<PR_FP_EXC_SW_ENABLE> "
2495 "to use FPEXC for FP exception enables, B<PR_FP_EXC_DIV> for floating-point "
2496 "divide by zero, B<PR_FP_EXC_OVF> for floating-point overflow, "
2497 "B<PR_FP_EXC_UND> for floating-point underflow, B<PR_FP_EXC_RES> for floating-"
2498 "point inexact result, B<PR_FP_EXC_INV> for floating-point invalid operation, "
2499 "B<PR_FP_EXC_DISABLED> for FP exceptions disabled, B<PR_FP_EXC_NONRECOV> for "
2500 "async nonrecoverable exception mode, B<PR_FP_EXC_ASYNC> for async "
2501 "recoverable exception mode, B<PR_FP_EXC_PRECISE> for precise exception mode."
2502 msgstr ""
2503 "浮動小数点例外モード (floating-point exception mode) を I<arg2> で指定された"
2504 "値に設定する。 指定できるのは以下の値である: B<PR_FP_EXC_SW_ENABLE> (FPEXC で"
2505 "浮動小数点例外を有効にする)、 B<PR_FP_EXC_DIV> (0 除算)、 B<PR_FP_EXC_OVF> "
2506 "(オーバーフロー)、 B<PR_FP_EXC_UND> (アンダーフロー)、 B<PR_FP_EXC_RES> (不正"
2507 "確な結果 (inexact result))、 B<PR_FP_EXC_INV> (不正な命令 (invalid "
2508 "operation))、 B<PR_FP_EXC_DISABLED> (浮動小数点例外を無効にする)、 "
2509 "B<PR_FP_EXC_NONRECOV> (async nonrecoverable exception mode)、 "
2510 "B<PR_FP_EXC_ASYNC> (async recoverable exception mode)、 B<PR_FP_EXC_PRECISE> "
2511 "(precise exception mode)。"
2512
2513 #. type: TP
2514 #: build/C/man2/prctl.2:209
2515 #, no-wrap
2516 msgid "B<PR_GET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2517 msgstr "B<PR_GET_FPEXC>(Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2518
2519 #. type: Plain text
2520 #: build/C/man2/prctl.2:214
2521 msgid ""
2522 "Return floating-point exception mode, in the location pointed to by I<(int\\ "
2523 "*) arg2>."
2524 msgstr ""
2525 "浮動小数点例外モードの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
2526
2527 #. type: TP
2528 #: build/C/man2/prctl.2:214
2529 #, no-wrap
2530 msgid "B<PR_SET_KEEPCAPS> (since Linux 2.2.18)"
2531 msgstr "B<PR_SET_KEEPCAPS> (Linux 2.2.18 以降)"
2532
2533 #. type: Plain text
2534 #: build/C/man2/prctl.2:232
2535 msgid ""
2536 "Set the state of the thread's \"keep capabilities\" flag, which determines "
2537 "whether the threads's permitted capability set is cleared when a change is "
2538 "made to the threads's user IDs such that the threads's real UID, effective "
2539 "UID, and saved set-user-ID all become nonzero when at least one of them "
2540 "previously had the value 0.  By default, the permitted capability set is "
2541 "cleared when such a change is made; setting the \"keep capabilities\" flag "
2542 "prevents it from being cleared.  I<arg2> must be either 0 (permitted "
2543 "capabilities are cleared)  or 1 (permitted capabilities are kept).  (A "
2544 "thread's I<effective> capability set is always cleared when such a "
2545 "credential change is made, regardless of the setting of the \"keep "
2546 "capabilities\" flag.)  The \"keep capabilities\" value will be reset to 0 on "
2547 "subsequent calls to B<execve>(2)."
2548 msgstr ""
2549 "スレッドの「ケーパビリティ保持」フラグを設定する。\n"
2550 "このフラグは、スレッドの実 UID、実効 UID、保存 set-user-ID のうち少なく\n"
2551 "とも一つが 0 であった状態から、これら全てが 0 以外に変更されたとき、\n"
2552 "スレッドの許可ケーパビリティ集合がクリアされるかどうかを決定する。\n"
2553 "デフォルトでは、このような変更が行われた場合、許可ケーパビリティセット\n"
2554 "はクリアされる。「ケーパビリティ保持」フラグを設定すると、\n"
2555 "許可ケーパビリティセットはクリアされなくなる。\n"
2556 "I<arg2> は 0 (許可ケーパビリティをクリアする) か 1 (許可ケーパビリティ\n"
2557 "を保持する) の どちらかでなければならない。\n"
2558 "(このような ID の変更が行われた場合、「ケーパビリティ保持」フラグの設定\n"
2559 "に関わらず、スレッドのI<実効>ケーパビリティセットは常にクリアされる。)\n"
2560 "B<execve>(2) が呼び出されると、「ケーパビリティ保持」フラグは 0\n"
2561 "にリセットされる。"
2562
2563 #. type: TP
2564 #: build/C/man2/prctl.2:232
2565 #, no-wrap
2566 msgid "B<PR_GET_KEEPCAPS> (since Linux 2.2.18)"
2567 msgstr "B<PR_GET_KEEPCAPS> (Linux 2.2.18 以降)"
2568
2569 #. type: Plain text
2570 #: build/C/man2/prctl.2:236
2571 msgid ""
2572 "Return (as the function result) the current state of the calling threads's "
2573 "\"keep capabilities\" flag."
2574 msgstr ""
2575 "呼び出し元スレッドにおける「ケーパビリティ保持」フラグの 現在の状態を (関数の"
2576 "返り値として) 返す。"
2577
2578 #. type: TP
2579 #: build/C/man2/prctl.2:236
2580 #, no-wrap
2581 msgid "B<PR_SET_NAME> (since Linux 2.6.9)"
2582 msgstr "B<PR_SET_NAME> (Linux 2.6.9 以降)"
2583
2584 #.  TASK_COMM_LEN in include/linux/sched.h
2585 #. type: Plain text
2586 #: build/C/man2/prctl.2:244
2587 msgid ""
2588 "Set the process name for the calling thread, using the value in the location "
2589 "pointed to by I<(char\\ *) arg2>.  The name can be up to 16 bytes long, and "
2590 "should be null-terminated if it contains fewer bytes."
2591 msgstr ""
2592 "呼び出し元スレッドのプロセス名を I<(char\\ *) arg2> が指す場所に格納された値"
2593 "を使って設定する。 名前は最大で 16 バイトであり、 それより少ないバイト数の場"
2594 "合は NULL で終端すべきである。"
2595
2596 #. type: TP
2597 #: build/C/man2/prctl.2:244
2598 #, no-wrap
2599 msgid "B<PR_GET_NAME> (since Linux 2.6.11)"
2600 msgstr "B<PR_GET_NAME> (Linux 2.6.11 以降)"
2601
2602 #. type: Plain text
2603 #: build/C/man2/prctl.2:251
2604 msgid ""
2605 "Return the name for the calling thread, in the buffer pointed to by I<(char"
2606 "\\ *) arg2>.  The buffer should allow space for up to 16 bytes; the returned "
2607 "string will be null-terminated if it is shorter than that."
2608 msgstr ""
2609 "呼び出し元スレッドの名前を I<(char\\ *) arg2> が指す場所に格納して返す。 バッ"
2610 "ファは最大で 16 バイトを格納できるようにすべきである。 返される文字列は、長さ"
2611 "が 16 バイトより短い場合は NULL 終端される。"
2612
2613 #. type: TP
2614 #: build/C/man2/prctl.2:251
2615 #, no-wrap
2616 msgid "B<PR_SET_NO_NEW_PRIVS> (since Linux 3.5)"
2617 msgstr "B<PR_SET_NO_NEW_PRIVS> (Linux 3.5 以降)"
2618
2619 #. type: Plain text
2620 #: build/C/man2/prctl.2:274
2621 msgid ""
2622 "Set the calling process's I<no_new_privs> bit to the value in I<arg2>.  With "
2623 "I<no_new_privs> set to 1, B<execve>(2)  promises not to grant privileges to "
2624 "do anything that could not have been done without the B<execve>(2)  call "
2625 "(for example, rendering the set-user-ID and set-group-ID permission bits, "
2626 "and file capabilities non-functional).  Once set, this bit cannot be unset.  "
2627 "The setting of this bit is inherited by children created by B<fork>(2)  and "
2628 "B<clone>(2), and preserved across B<execve>(2)."
2629 msgstr ""
2630
2631 #. type: Plain text
2632 #: build/C/man2/prctl.2:277
2633 msgid ""
2634 "For more information, see the kernel source file I<Documentation/prctl/"
2635 "no_new_privs.txt>."
2636 msgstr ""
2637
2638 #. type: TP
2639 #: build/C/man2/prctl.2:277
2640 #, no-wrap
2641 msgid "B<PR_GET_NO_NEW_PRIVS> (since Linux 3.5)"
2642 msgstr "B<PR_GET_NO_NEW_PRIVS> (Linux 3.5 以降)"
2643
2644 #. type: Plain text
2645 #: build/C/man2/prctl.2:288
2646 msgid ""
2647 "Return the value of the I<no_new_privs> bit for the current process.  A "
2648 "value of 0 indicates the regular B<execve>(2)  behavior.  A value of 1 "
2649 "indicates B<execve>(2)  will operate in the privilege-restricting mode "
2650 "described above."
2651 msgstr ""
2652
2653 #. type: TP
2654 #: build/C/man2/prctl.2:288
2655 #, no-wrap
2656 msgid "B<PR_SET_PDEATHSIG> (since Linux 2.1.57)"
2657 msgstr "B<PR_SET_PDEATHSIG> (Linux 2.1.57 以降)"
2658
2659 #. type: Plain text
2660 #: build/C/man2/prctl.2:299
2661 msgid ""
2662 "Set the parent process death signal of the calling process to I<arg2> "
2663 "(either a signal value in the range 1..maxsig, or 0 to clear).  This is the "
2664 "signal that the calling process will get when its parent dies.  This value "
2665 "is cleared for the child of a B<fork>(2)  and (since Linux 2.4.36 / 2.6.23)  "
2666 "when executing a set-user-ID or set-group-ID binary."
2667 msgstr ""
2668 "親プロセス死亡シグナル (parent process death signal) を I<arg2> に設定\n"
2669 "する (設定できるシグナル値の範囲は 1..maxsig であり、0 は通知の解除であ\n"
2670 "る)。 呼び出し元プロセスの親プロセスが死んだ際に、ここで設定した値が シ\n"
2671 "グナルとして通知される。この値は B<fork>(2) の子プロセスでは解除される。\n"
2672 "(Linux 2.4.36 以降および 2.6.23 以降では) set-user-ID もしくは\n"
2673 "set-group-ID されたバイナリを実行した場合にも、このフラグは解除される。"
2674
2675 #. type: TP
2676 #: build/C/man2/prctl.2:299
2677 #, no-wrap
2678 msgid "B<PR_GET_PDEATHSIG> (since Linux 2.3.15)"
2679 msgstr "B<PR_GET_PDEATHSIG> (Linux 2.3.15 以降)"
2680
2681 #. type: Plain text
2682 #: build/C/man2/prctl.2:304
2683 msgid ""
2684 "Return the current value of the parent process death signal, in the location "
2685 "pointed to by I<(int\\ *) arg2>."
2686 msgstr ""
2687 "親プロセス死亡シグナルの現在の値を I<(int\\ *) arg2> が指す場所に格納して返"
2688 "す。"
2689
2690 #. type: TP
2691 #: build/C/man2/prctl.2:304
2692 #, no-wrap
2693 msgid "B<PR_SET_PTRACER> (since Linux 3.4)"
2694 msgstr "B<PR_SET_PTRACER> (Linux 3.4 以降)"
2695
2696 #.  commit 2d514487faf188938a4ee4fb3464eeecfbdcf8eb
2697 #.  commit bf06189e4d14641c0148bea16e9dd24943862215
2698 #. type: Plain text
2699 #: build/C/man2/prctl.2:329
2700 msgid ""
2701 "This is meaningful only when the Yama LSM is enabled and in mode 1 "
2702 "(\"restricted ptrace\", visible via I</proc/sys/kernel/yama/ptrace_scope>).  "
2703 "When a \"ptracer process ID\" is passed in I<arg2>, the caller is declaring "
2704 "that the ptracer process can B<ptrace>(2)  the calling process as if it were "
2705 "a direct process ancestor.  Each B<PR_SET_PTRACER> operation replaces the "
2706 "previous \"ptracer process ID\".  Employing B<PR_SET_PTRACER> with I<arg2> "
2707 "set to 0 clears the caller's \"ptracer process ID\".  If I<arg2> is "
2708 "B<PR_SET_PTRACER_ANY,> the ptrace restrictions introduced by Yama are "
2709 "effectively disabled for the calling process."
2710 msgstr ""
2711
2712 #. type: Plain text
2713 #: build/C/man2/prctl.2:332
2714 msgid ""
2715 "For further information, see the kernel source file I<Documentation/security/"
2716 "Yama.txt>."
2717 msgstr ""
2718
2719 #. type: TP
2720 #: build/C/man2/prctl.2:332
2721 #, no-wrap
2722 msgid "B<PR_SET_SECCOMP> (since Linux 2.6.23)"
2723 msgstr "B<PR_SET_SECCOMP> (Linux 2.6.23 以降)"
2724
2725 #.  See http://thread.gmane.org/gmane.linux.kernel/542632
2726 #.  [PATCH 0 of 2] seccomp updates
2727 #.  andrea@cpushare.com
2728 #. type: Plain text
2729 #: build/C/man2/prctl.2:343
2730 msgid ""
2731 "Set the secure computing (seccomp) mode for the calling thread, to limit the "
2732 "available system calls.  The seccomp mode is selected via I<arg2>.  (The "
2733 "seccomp constants are defined in I<E<lt>linux/seccomp.hE<gt>>.)"
2734 msgstr ""
2735
2736 #. type: Plain text
2737 #: build/C/man2/prctl.2:364
2738 #, fuzzy
2739 #| msgid ""
2740 #| "Set the secure computing mode for the calling thread.  In the current "
2741 #| "implementation, I<arg2> must be 1.  After the secure computing mode has "
2742 #| "been set to 1, the only system calls that the thread is permitted to make "
2743 #| "are B<read>(2), B<write>(2), B<_exit>(2), and B<sigreturn>(2).  Other "
2744 #| "system calls result in the delivery of a B<SIGKILL> signal.  Secure "
2745 #| "computing mode is useful for number-crunching applications that may need "
2746 #| "to execute untrusted byte code, perhaps obtained by reading from a pipe "
2747 #| "or socket.  This operation is only available if the kernel is configured "
2748 #| "with CONFIG_SECCOMP enabled."
2749 msgid ""
2750 "With I<arg2> set to B<SECCOMP_MODE_STRICT> the only system calls that the "
2751 "thread is permitted to make are B<read>(2), B<write>(2), B<_exit>(2), and "
2752 "B<sigreturn>(2).  Other system calls result in the delivery of a B<SIGKILL> "
2753 "signal.  Strict secure computing mode is useful for number-crunching "
2754 "applications that may need to execute untrusted byte code, perhaps obtained "
2755 "by reading from a pipe or socket.  This operation is available only if the "
2756 "kernel is configured with B<CONFIG_SECCOMP> enabled."
2757 msgstr ""
2758 "呼び出したスレッドの secure computing モードを設定する。 現在の実装では、 "
2759 "I<arg2> は 1 にしなければならない。 secure computing モードを 1 に設定する"
2760 "と、 そのスレッドが呼び出しを許可されるシステムコールは B<read>(2), B<write>"
2761 "(2), B<_exit>(2), B<sigreturn>(2)  だけになる。 それ以外のシステムコールを呼"
2762 "び出すと、シグナル B<SIGKILL> が配送される。 パイプやソケットから読み込んだ、"
2763 "信頼できないバイトコードを実行する 必要がある大量の演算を行うアプリケーション"
2764 "において、 secure computing モードは役立つ。 この操作は利用できるのは、カーネ"
2765 "ルが CONFIG_SECCOMP を有効にして 作成されている場合だけである。"
2766
2767 #. type: Plain text
2768 #: build/C/man2/prctl.2:379
2769 msgid ""
2770 "With I<arg2> set to B<SECCOMP_MODE_FILTER> (since Linux 3.5)  the system "
2771 "calls allowed are defined by a pointer to a Berkeley Packet Filter passed in "
2772 "I<arg3>.  This argument is a pointer to I<struct sock_fprog>; it can be "
2773 "designed to filter arbitrary system calls and system call arguments.  This "
2774 "mode is available only if the kernel is configured with "
2775 "B<CONFIG_SECCOMP_FILTER> enabled."
2776 msgstr ""
2777
2778 #. type: Plain text
2779 #: build/C/man2/prctl.2:394
2780 msgid ""
2781 "If B<SECCOMP_MODE_FILTER> filters permit B<fork>(2), then the seccomp mode "
2782 "is inherited by children created by B<fork>(2); if B<execve>(2)  is "
2783 "permitted, then the seccomp mode is preserved across B<execve>(2).  If the "
2784 "filters permit B<prctl>()  calls, then additional filters can be added; they "
2785 "are run in order until the first non-allow result is seen."
2786 msgstr ""
2787
2788 #. type: Plain text
2789 #: build/C/man2/prctl.2:397
2790 msgid ""
2791 "For further information, see the kernel source file I<Documentation/prctl/"
2792 "seccomp_filter.txt>."
2793 msgstr ""
2794
2795 #. type: TP
2796 #: build/C/man2/prctl.2:397
2797 #, no-wrap
2798 msgid "B<PR_GET_SECCOMP> (since Linux 2.6.23)"
2799 msgstr "B<PR_GET_SECCOMP> (Linux 2.6.23 以降)"
2800
2801 #. type: Plain text
2802 #: build/C/man2/prctl.2:412
2803 #, fuzzy
2804 #| msgid ""
2805 #| "Return the secure computing mode of the calling thread.  Not very useful "
2806 #| "for the current implementation (mode equals 1), but may be useful for "
2807 #| "other possible future modes: if the caller is not in secure computing "
2808 #| "mode, this operation returns 0; if the caller is in secure computing "
2809 #| "mode, then the B<prctl>()  call will cause a B<SIGKILL> signal to be sent "
2810 #| "to the process.  This operation is only available if the kernel is "
2811 #| "configured with CONFIG_SECCOMP enabled."
2812 msgid ""
2813 "Return the secure computing mode of the calling thread.  If the caller is "
2814 "not in secure computing mode, this operation returns 0; if the caller is in "
2815 "strict secure computing mode, then the B<prctl>()  call will cause a "
2816 "B<SIGKILL> signal to be sent to the process.  If the caller is in filter "
2817 "mode, and this system call is allowed by the seccomp filters, it returns 2.  "
2818 "This operation is available only if the kernel is configured with "
2819 "B<CONFIG_SECCOMP> enabled."
2820 msgstr ""
2821 "呼び出したスレッドの secure computing モードを返す。 現在の実装 (モードは 1 "
2822 "固定) はあまり役に立たないが、 将来他のモードが実装されると役立つようになるか"
2823 "もしれない。 呼び出したスレッドが secure computing モードでなかった場合、 こ"
2824 "の操作は 0 を返す。 呼び出したスレッドが secure computing モードの場合、 "
2825 "B<prctl>()  を呼び出すとシグナル B<SIGKILL> がそのプロセスに送信される。 この"
2826 "操作が利用できるのは、カーネルが CONFIG_SECCOMP を有効にして 作成されている場"
2827 "合だけである。"
2828
2829 #. type: TP
2830 #: build/C/man2/prctl.2:412
2831 #, no-wrap
2832 msgid "B<PR_SET_SECUREBITS> (since Linux 2.6.26)"
2833 msgstr "B<PR_SET_SECUREBITS> (Linux 2.6.26 以降)"
2834
2835 #. type: Plain text
2836 #: build/C/man2/prctl.2:418
2837 msgid ""
2838 "Set the \"securebits\" flags of the calling thread to the value supplied in "
2839 "I<arg2>.  See B<capabilities>(7)."
2840 msgstr ""
2841 "呼び出したスレッドの \"securebits\" フラグを I<arg2> で渡された値に設定す"
2842 "る。 B<capabilities>(7)  参照。"
2843
2844 #. type: TP
2845 #: build/C/man2/prctl.2:418
2846 #, no-wrap
2847 msgid "B<PR_GET_SECUREBITS> (since Linux 2.6.26)"
2848 msgstr "B<PR_GET_SECUREBITS> (Linux 2.6.26 以降)"
2849
2850 #. type: Plain text
2851 #: build/C/man2/prctl.2:424
2852 msgid ""
2853 "Return (as the function result)  the \"securebits\" flags of the calling "
2854 "thread.  See B<capabilities>(7)."
2855 msgstr ""
2856 "呼び出したスレッドの \"securebits\" フラグを (関数の返り値として) 返す。 "
2857 "B<capabilities>(7)  参照。"
2858
2859 #. type: TP
2860 #: build/C/man2/prctl.2:424
2861 #, no-wrap
2862 msgid "B<PR_GET_TID_ADDRESS> (since Linux 3.5)"
2863 msgstr "B<PR_GET_TID_ADDRESS> (Linux 3.5 以降)"
2864
2865 #.  commit 300f786b2683f8bb1ec0afb6e1851183a479c86d
2866 #. type: Plain text
2867 #: build/C/man2/prctl.2:439
2868 msgid ""
2869 "Retrieve the I<clear_child_tid> address set by B<set_tid_address>(2)  and "
2870 "the B<clone>(2)  B<CLONE_CHILD_CLEARTID> flag, in the location pointed to by "
2871 "I<(int\\ **)\\ arg2>.  This feature is available only if the kernel is built "
2872 "with the B<CONFIG_CHECKPOINT_RESTORE> option enabled."
2873 msgstr ""
2874
2875 #. type: TP
2876 #: build/C/man2/prctl.2:439
2877 #, no-wrap
2878 msgid "B<PR_SET_TIMERSLACK> (since Linux 2.6.28)"
2879 msgstr "B<PR_SET_TIMERSLACK> (Linux 2.6.28 以降)"
2880
2881 #.  See https://lwn.net/Articles/369549/
2882 #.  commit 6976675d94042fbd446231d1bd8b7de71a980ada
2883 #.  It seems that it's not possible to set the timer slack to zero;
2884 #.  The minimum value is 1? Seems a little strange.
2885 #. type: Plain text
2886 #: build/C/man2/prctl.2:458
2887 msgid ""
2888 "Set the current timer slack for the calling thread to the nanosecond value "
2889 "supplied in I<arg2>.  If I<arg2> is less than or equal to zero, reset the "
2890 "current timer slack to the thread's default timer slack value.  The timer "
2891 "slack is used by the kernel to group timer expirations for the calling "
2892 "thread that are close to one another; as a consequence, timer expirations "
2893 "for the thread may be up to the specified number of nanoseconds late (but "
2894 "will never expire early).  Grouping timer expirations can help reduce system "
2895 "power consumption by minimizing CPU wake-ups."
2896 msgstr ""
2897
2898 #.  List obtained by grepping for futex usage in glibc source
2899 #. type: Plain text
2900 #: build/C/man2/prctl.2:478
2901 msgid ""
2902 "The timer expirations affected by timer slack are those set by B<select>(2), "
2903 "B<pselect>(2), B<poll>(2), B<ppoll>(2), B<epoll_wait>(2), B<epoll_pwait>(2), "
2904 "B<clock_nanosleep>(2), B<nanosleep>(2), and B<futex>(2)  (and thus the "
2905 "library functions implemented via futexes, including "
2906 "B<pthread_cond_timedwait>(3), B<pthread_mutex_timedlock>(3), "
2907 "B<pthread_rwlock_timedrdlock>(3), B<pthread_rwlock_timedwrlock>(3), and "
2908 "B<sem_timedwait>(3))."
2909 msgstr ""
2910
2911 #. type: Plain text
2912 #: build/C/man2/prctl.2:482
2913 msgid ""
2914 "Timer slack is not applied to threads that are scheduled under a realtime "
2915 "scheduling policy (see B<sched_setscheduler>(2))."
2916 msgstr ""
2917
2918 #. type: Plain text
2919 #: build/C/man2/prctl.2:499
2920 msgid ""
2921 "Each thread has two associated timer slack values: a \"default\" value, and "
2922 "a \"current\" value.  The current value is the one that governs grouping of "
2923 "timer expirations.  When a new thread is created, the two timer slack values "
2924 "are made the same as the current value of the creating thread.  Thereafter, "
2925 "a thread can adjust its current timer slack value via B<PR_SET_TIMERSLACK> "
2926 "(the default value can't be changed).  The timer slack values of I<init> "
2927 "(PID 1), the ancestor of all processes, are 50,000 nanoseconds (50 "
2928 "microseconds).  The timer slack values are preserved across B<execve>(2)."
2929 msgstr ""
2930
2931 #. type: TP
2932 #: build/C/man2/prctl.2:499
2933 #, no-wrap
2934 msgid "B<PR_GET_TIMERSLACK> (since Linux 2.6.28)"
2935 msgstr "B<PR_GET_TIMERSLACK> (Linux 2.6.28 以降)"
2936
2937 #. type: Plain text
2938 #: build/C/man2/prctl.2:502
2939 msgid "Return the current timer slack value of the calling thread."
2940 msgstr ""
2941
2942 #. type: TP
2943 #: build/C/man2/prctl.2:502
2944 #, no-wrap
2945 msgid "B<PR_SET_TIMING> (since Linux 2.6.0-test4)"
2946 msgstr "B<PR_SET_TIMING> (Linux 2.6.0-test4 以降)"
2947
2948 #.  0
2949 #.  1
2950 #.  PR_TIMING_TIMESTAMP doesn't do anything in 2.6.26-rc8,
2951 #.  and looking at the patch history, it appears
2952 #.  that it never did anything.
2953 #. type: Plain text
2954 #: build/C/man2/prctl.2:519
2955 msgid ""
2956 "Set whether to use (normal, traditional) statistical process timing or "
2957 "accurate timestamp-based process timing, by passing B<PR_TIMING_STATISTICAL> "
2958 "or B<PR_TIMING_TIMESTAMP> to I<arg2>.  B<PR_TIMING_TIMESTAMP> is not "
2959 "currently implemented (attempting to set this mode will yield the error "
2960 "B<EINVAL>)."
2961 msgstr ""
2962 "(通常の、伝統的に使われてきた) 統計的なプロセスタイミングを使用するか、\n"
2963 "正確なタイムスタンプに基づくプロセスタイミングを使用するかを設定する。\n"
2964 "I<arg2> に指定できる値は B<PR_TIMING_STATISTICAL> か\n"
2965 "B<PR_TIMING_TIMESTAMP> である。 B<PR_TIMING_TIMESTAMP> は現在のところ実\n"
2966 "装されていない (このモードに設定しようとするとエラー B<EINVAL> が起こる\n"
2967 "ことだろう)。"
2968
2969 #. type: TP
2970 #: build/C/man2/prctl.2:519
2971 #, no-wrap
2972 msgid "B<PR_GET_TIMING> (since Linux 2.6.0-test4)"
2973 msgstr "B<PR_GET_TIMING> (Linux 2.6.0-test4 以降)"
2974
2975 #. type: Plain text
2976 #: build/C/man2/prctl.2:523
2977 msgid ""
2978 "Return (as the function result) which process timing method is currently in "
2979 "use."
2980 msgstr "現在使用中のプロセスタイミングを決める方法を返す。"
2981
2982 #. type: TP
2983 #: build/C/man2/prctl.2:523
2984 #, no-wrap
2985 msgid "B<PR_TASK_PERF_EVENTS_DISABLE> (since Linux 2.6.31)"
2986 msgstr "B<PR_TASK_PERF_EVENTS_DISABLE> (Linux 2.6.31 以降)"
2987
2988 #. type: Plain text
2989 #: build/C/man2/prctl.2:532
2990 msgid ""
2991 "Disable all performance counters attached to the calling process, regardless "
2992 "of whether the counters were created by this process or another process.  "
2993 "Performance counters created by the calling process for other processes are "
2994 "unaffected.  For more information on performance counters, see the Linux "
2995 "kernel source file I<tools/perf/design.txt>."
2996 msgstr ""
2997
2998 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
2999 #. type: Plain text
3000 #: build/C/man2/prctl.2:538
3001 msgid ""
3002 "Originally called B<PR_TASK_PERF_COUNTERS_DISABLE>; renamed (with same "
3003 "numerical value)  in Linux 2.6.32."
3004 msgstr ""
3005 "以前は B<PR_TASK_PERF_COUNTERS_DISABLE> と呼ばれていた。\n"
3006 "Linux 2.6.32 で名前が変更された (数値は同じままである)。"
3007
3008 #. type: TP
3009 #: build/C/man2/prctl.2:538
3010 #, no-wrap
3011 msgid "B<PR_TASK_PERF_EVENTS_ENABLE> (since Linux 2.6.31)"
3012 msgstr "B<PR_TASK_PERF_EVENTS_ENABLE> (Linux 2.6.31 以降)"
3013
3014 #. type: Plain text
3015 #: build/C/man2/prctl.2:543
3016 msgid ""
3017 "The converse of B<PR_TASK_PERF_EVENTS_DISABLE>; enable performance counters "
3018 "attached to the calling process."
3019 msgstr ""
3020
3021 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
3022 #.  commit cdd6c482c9ff9c55475ee7392ec8f672eddb7be6
3023 #. type: Plain text
3024 #: build/C/man2/prctl.2:550
3025 msgid ""
3026 "Originally called B<PR_TASK_PERF_COUNTERS_ENABLE>; renamed in Linux 2.6.32."
3027 msgstr ""
3028 "以前は B<PR_TASK_PERF_COUNTERS_ENABLE> と呼ばれていた。\n"
3029 "Linux 2.6.32 で名前が変更された。"
3030
3031 #. type: TP
3032 #: build/C/man2/prctl.2:550
3033 #, no-wrap
3034 msgid "B<PR_SET_TSC> (since Linux 2.6.26, x86 only)"
3035 msgstr "B<PR_SET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3036
3037 #. type: Plain text
3038 #: build/C/man2/prctl.2:563
3039 msgid ""
3040 "Set the state of the flag determining whether the timestamp counter can be "
3041 "read by the process.  Pass B<PR_TSC_ENABLE> to I<arg2> to allow it to be "
3042 "read, or B<PR_TSC_SIGSEGV> to generate a B<SIGSEGV> when the process tries "
3043 "to read the timestamp counter."
3044 msgstr ""
3045 "そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する フラグの状態を"
3046 "設定する。 読み出しを許可する場合は I<arg2> に B<PR_TSC_ENABLE> を、そのプロ"
3047 "セスがタイムスタンプ・カウンタを読み出そうとした際に B<SIGSEGV> を発生させる"
3048 "場合には B<PR_TSC_SIGSEGV> を渡す。"
3049
3050 #. type: TP
3051 #: build/C/man2/prctl.2:563
3052 #, no-wrap
3053 msgid "B<PR_GET_TSC> (since Linux 2.6.26, x86 only)"
3054 msgstr "B<PR_GET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3055
3056 #. type: Plain text
3057 #: build/C/man2/prctl.2:569
3058 msgid ""
3059 "Return the state of the flag determining whether the timestamp counter can "
3060 "be read, in the location pointed to by I<(int\\ *) arg2>."
3061 msgstr ""
3062 "そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する フラグの状態"
3063 "を I<(int\\ *) arg2> が指す場所に格納して返す。"
3064
3065 #. type: TP
3066 #: build/C/man2/prctl.2:569
3067 #, no-wrap
3068 msgid "B<PR_SET_UNALIGN>"
3069 msgstr "B<PR_SET_UNALIGN>"
3070
3071 #. type: Plain text
3072 #: build/C/man2/prctl.2:579
3073 msgid ""
3074 "(Only on: ia64, since Linux 2.3.48; parisc, since Linux 2.6.15; PowerPC, "
3075 "since Linux 2.6.18; Alpha, since Linux 2.6.22)  Set unaligned access control "
3076 "bits to I<arg2>.  Pass B<PR_UNALIGN_NOPRINT> to silently fix up unaligned "
3077 "user accesses, or B<PR_UNALIGN_SIGBUS> to generate B<SIGBUS> on unaligned "
3078 "user access."
3079 msgstr ""
3080 "(ia64 では Linux 2.3.48 以降; parisc では Linux 2.6.15 以降; PowerPC では "
3081 "Linux 2.6.18 以降; Alpha では Linux 2.6.22 以降; これらのアーキテクチャの"
3082 "み)  unaligned アクセス制御ビットを I<arg2> で指定された値に設定する。 指定で"
3083 "きる値は B<PR_UNALIGN_NOPRINT> (unaligned なユーザアクセスを黙って 修正する) "
3084 "か B<PR_UNALIGN_SIGBUS> (unaligned なユーザアクセスがあった場合 B<SIGBUS> を"
3085 "生成する) である。"
3086
3087 #. type: TP
3088 #: build/C/man2/prctl.2:579
3089 #, no-wrap
3090 msgid "B<PR_GET_UNALIGN>"
3091 msgstr "B<PR_GET_UNALIGN>"
3092
3093 #. type: Plain text
3094 #: build/C/man2/prctl.2:586
3095 msgid ""
3096 "(see B<PR_SET_UNALIGN> for information on versions and architectures)  "
3097 "Return unaligned access control bits, in the location pointed to by I<(int\\ "
3098 "*) arg2>."
3099 msgstr ""
3100 "(バージョンとアーキテクチャの情報は B<PR_SET_UNALIGN> 参照)  unaligned アクセ"
3101 "ス制御ビットの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
3102
3103 #. type: TP
3104 #: build/C/man2/prctl.2:586
3105 #, no-wrap
3106 msgid "B<PR_MCE_KILL> (since Linux 2.6.32)"
3107 msgstr "B<PR_MCE_KILL> (Linux 2.6.32 以降)"
3108
3109 #. type: Plain text
3110 #: build/C/man2/prctl.2:626
3111 msgid ""
3112 "Set the machine check memory corruption kill policy for the current thread.  "
3113 "If I<arg2> is B<PR_MCE_KILL_CLEAR>, clear the thread memory corruption kill "
3114 "policy and use the system-wide default.  (The system-wide default is defined "
3115 "by I</proc/sys/vm/memory_failure_early_kill>; see B<proc>(5).)  If I<arg2> "
3116 "is B<PR_MCE_KILL_SET>, use a thread-specific memory corruption kill policy.  "
3117 "In this case, I<arg3> defines whether the policy is I<early kill> "
3118 "(B<PR_MCE_KILL_EARLY>), I<late kill> (B<PR_MCE_KILL_LATE>), or the system-"
3119 "wide default (B<PR_MCE_KILL_DEFAULT>).  Early kill means that the thread "
3120 "receives a B<SIGBUS> signal as soon as hardware memory corruption is "
3121 "detected inside its address space.  In late kill mode, the process is killed "
3122 "only when it accesses a corrupted page.  See B<sigaction>(2)  for more "
3123 "information on the B<SIGBUS> signal.  The policy is inherited by children.  "
3124 "The remaining unused B<prctl>()  arguments must be zero for future "
3125 "compatibility."
3126 msgstr ""
3127
3128 #. type: TP
3129 #: build/C/man2/prctl.2:626
3130 #, no-wrap
3131 msgid "B<PR_MCE_KILL_GET> (since Linux 2.6.32)"
3132 msgstr "B<PR_MCE_KILL_GET> (Linux 2.6.32 以降)"
3133
3134 #. type: Plain text
3135 #: build/C/man2/prctl.2:632
3136 msgid ""
3137 "Return the current per-process machine check kill policy.  All unused "
3138 "B<prctl>()  arguments must be zero."
3139 msgstr ""
3140
3141 #. type: TP
3142 #: build/C/man2/prctl.2:632
3143 #, no-wrap
3144 msgid "B<PR_SET_MM> (since Linux 3.3)"
3145 msgstr "B<PR_SET_MM> (Linux 3.3 以降)"
3146
3147 #. type: Plain text
3148 #: build/C/man2/prctl.2:652
3149 msgid ""
3150 "Modify certain kernel memory map descriptor fields of the calling process.  "
3151 "Usually these fields are set by the kernel and dynamic loader (see B<ld.so>"
3152 "(8)  for more information) and a regular application should not use this "
3153 "feature.  However, there are cases, such as self-modifying programs, where a "
3154 "program might find it useful to change its own memory map.  This feature is "
3155 "available only if the kernel is built with the B<CONFIG_CHECKPOINT_RESTORE> "
3156 "option enabled.  The calling process must have the B<CAP_SYS_RESOURCE> "
3157 "capability.  The value in I<arg2> is one of the options below, while I<arg3> "
3158 "provides a new value for the option."
3159 msgstr ""
3160
3161 #. type: TP
3162 #: build/C/man2/prctl.2:653
3163 #, no-wrap
3164 msgid "B<PR_SET_MM_START_CODE>"
3165 msgstr "B<PR_SET_MM_START_CODE>"
3166
3167 #. type: Plain text
3168 #: build/C/man2/prctl.2:662
3169 msgid ""
3170 "Set the address above which the program text can run.  The corresponding "
3171 "memory area must be readable and executable, but not writable or sharable "
3172 "(see B<mprotect>(2)  and B<mmap>(2)  for more information)."
3173 msgstr ""
3174
3175 #. type: TP
3176 #: build/C/man2/prctl.2:662
3177 #, no-wrap
3178 msgid "B<PR_SET_MM_END_CODE>"
3179 msgstr "B<PR_SET_MM_END_CODE>"
3180
3181 #. type: Plain text
3182 #: build/C/man2/prctl.2:667
3183 msgid ""
3184 "Set the address below which the program text can run.  The corresponding "
3185 "memory area must be readable and executable, but not writable or sharable."
3186 msgstr ""
3187
3188 #. type: TP
3189 #: build/C/man2/prctl.2:667
3190 #, no-wrap
3191 msgid "B<PR_SET_MM_START_DATA>"
3192 msgstr "B<PR_SET_MM_START_DATA>"
3193
3194 #. type: Plain text
3195 #: build/C/man2/prctl.2:673
3196 msgid ""
3197 "Set the address above which initialized and uninitialized (bss) data are "
3198 "placed.  The corresponding memory area must be readable and writable, but "
3199 "not executable or sharable."
3200 msgstr ""
3201
3202 #. type: TP
3203 #: build/C/man2/prctl.2:673
3204 #, no-wrap
3205 msgid "B<PR_SET_MM_END_DATA>"
3206 msgstr "B<PR_SET_MM_END_DATA>"
3207
3208 #. type: Plain text
3209 #: build/C/man2/prctl.2:679
3210 msgid ""
3211 "Set the address below which initialized and uninitialized (bss) data are "
3212 "placed.  The corresponding memory area must be readable and writable, but "
3213 "not executable or sharable."
3214 msgstr ""
3215
3216 #. type: TP
3217 #: build/C/man2/prctl.2:679
3218 #, no-wrap
3219 msgid "B<PR_SET_MM_START_STACK>"
3220 msgstr "B<PR_SET_MM_START_STACK>"
3221
3222 #. type: Plain text
3223 #: build/C/man2/prctl.2:683
3224 msgid ""
3225 "Set the start address of the stack.  The corresponding memory area must be "
3226 "readable and writable."
3227 msgstr ""
3228
3229 #. type: TP
3230 #: build/C/man2/prctl.2:683
3231 #, no-wrap
3232 msgid "B<PR_SET_MM_START_BRK>"
3233 msgstr "B<PR_SET_MM_START_BRK>"
3234
3235 #. type: Plain text
3236 #: build/C/man2/prctl.2:695
3237 msgid ""
3238 "Set the address above which the program heap can be expanded with B<brk>(2)  "
3239 "call.  The address must be greater than the ending address of the current "
3240 "program data segment.  In addition, the combined size of the resulting heap "
3241 "and the size of the data segment can't exceed the B<RLIMIT_DATA> resource "
3242 "limit (see B<setrlimit>(2))."
3243 msgstr ""
3244
3245 #. type: TP
3246 #: build/C/man2/prctl.2:695
3247 #, no-wrap
3248 msgid "B<PR_SET_MM_BRK>"
3249 msgstr "B<PR_SET_MM_BRK>"
3250
3251 #.  FIXME The following (until ========) is not yet in mainline kernel,
3252 #.  so commented out for the moment.
3253 #.  .TP
3254 #.  .BR PR_SET_MM_ARG_START
3255 #.  Set the address above which the program command line is placed.
3256 #.  .TP
3257 #.  .BR PR_SET_MM_ARG_END
3258 #.  Set the address below which the program command line is placed.
3259 #.  .TP
3260 #.  .BR PR_SET_MM_ENV_START
3261 #.  Set the address above which the program environment is placed.
3262 #.  .TP
3263 #.  .BR PR_SET_MM_ENV_END
3264 #.  Set the address below which the program environment is placed.
3265 #.  .IP
3266 #.  The address passed with
3267 #.  .BR PR_SET_MM_ARG_START ,
3268 #.  .BR PR_SET_MM_ARG_END ,
3269 #.  .BR PR_SET_MM_ENV_START ,
3270 #.  and
3271 #.  .BR PR_SET_MM_ENV_END
3272 #.  should belong to a process stack area.
3273 #.  Thus, the corresponding memory area must be readable, writable, and
3274 #.  (depending on the kernel configuration) have the
3275 #.  .BR MAP_GROWSDOWN
3276 #.  attribute set (see
3277 #.  .BR mmap (2)).
3278 #.  .TP
3279 #.  .BR PR_SET_MM_AUXV
3280 #.  Set a new auxiliary vector.
3281 #.  The
3282 #.  .I arg3
3283 #.  argument should provide the address of the vector.
3284 #.  The
3285 #.  .I arg4
3286 #.  is the size of the vector.
3287 #.  .TP
3288 #.  .BR PR_SET_MM_EXE_FILE
3289 #.  Supersede the
3290 #.  .IR /proc/pid/exe
3291 #.  symbolic link with a new one pointing to a new executable file
3292 #.  identified by the file descriptor provided in
3293 #.  .I arg3
3294 #.  argument.
3295 #.  The file descriptor should be obtained with a regular
3296 #.  .BR open (2)
3297 #.  call.
3298 #.  .IP
3299 #.  To change the symbolic link, one needs to unmap all existing
3300 #.  executable memory areas, including those created by the kernel itself
3301 #.  (for example the kernel usually creates at least one executable
3302 #.  memory area for the ELF
3303 #.  .IR .text
3304 #.  section).
3305 #.  .IP
3306 #.  The second limitation is that such transitions can be done only once
3307 #.  in a process life time.
3308 #.  Any further attempts will be rejected.
3309 #.  This should help system administrators to monitor unusual
3310 #.  symbolic-link transitions over all process running in a system.
3311 #.  ========== END FIXME
3312 #. type: Plain text
3313 #: build/C/man2/prctl.2:764
3314 msgid ""
3315 "Set the current B<brk>(2)  value.  The requirements for the address are the "
3316 "same as for the B<PR_SET_MM_START_BRK> option."
3317 msgstr ""
3318
3319 #. type: Plain text
3320 #: build/C/man2/prctl.2:784
3321 msgid ""
3322 "On success, B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, B<PR_GET_NO_NEW_PRIVS>, "
3323 "B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, B<PR_GET_SECUREBITS>, "
3324 "B<PR_MCE_KILL_GET>, and (if it returns)  B<PR_GET_SECCOMP> return the "
3325 "nonnegative values described above.  All other I<option> values return 0 on "
3326 "success.  On error, -1 is returned, and I<errno> is set appropriately."
3327 msgstr ""
3328 "成功すると、 B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, "
3329 "B<PR_GET_NO_NEW_PRIVS>,\n"
3330 "B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, B<PR_GET_SECUREBITS>,\n"
3331 "B<PR_MCE_KILL_GET>, B<PR_GET_SECCOMP> は上述の負でない値を返す (なお、\n"
3332 "B<PR_GET_SECCOMP> は返らない場合もある)。 I<option> が他の値の場合は\n"
3333 "成功時に 0 を返す。\n"
3334 "エラーの場合、-1 を返し、 I<errno> に適切な値を設定する。"
3335
3336 #. type: Plain text
3337 #: build/C/man2/prctl.2:789
3338 msgid "I<arg2> is an invalid address."
3339 msgstr "I<arg2> が不正なアドレスである。"
3340
3341 #. type: Plain text
3342 #: build/C/man2/prctl.2:794
3343 msgid "The value of I<option> is not recognized."
3344 msgstr "I<option> の値が理解できない。"
3345
3346 #. type: Plain text
3347 #: build/C/man2/prctl.2:806
3348 msgid ""
3349 "I<option> is B<PR_MCE_KILL> or B<PR_MCE_KILL_GET> or B<PR_SET_MM>, and "
3350 "unused B<prctl>()  arguments were not specified as zero."
3351 msgstr ""
3352
3353 #. type: Plain text
3354 #: build/C/man2/prctl.2:811
3355 msgid "I<arg2> is not valid value for this I<option>."
3356 msgstr "I<arg2> が指定された I<option> で有効な値ではない。"
3357
3358 #. type: Plain text
3359 #: build/C/man2/prctl.2:820
3360 msgid ""
3361 "I<option> is B<PR_SET_SECCOMP> or B<PR_GET_SECCOMP>, and the kernel was not "
3362 "configured with B<CONFIG_SECCOMP>."
3363 msgstr ""
3364 "I<option> が B<PR_SET_SECCOMP> か B<PR_GET_SECCOMP> だが、カーネルが "
3365 "B<CONFIG_SECCOMP> を有効にして作成されていなかった。"
3366
3367 #. type: Plain text
3368 #: build/C/man2/prctl.2:826
3369 msgid "I<option> is B<PR_SET_MM>, and one of the following is true"
3370 msgstr ""
3371
3372 #. type: Plain text
3373 #: build/C/man2/prctl.2:832
3374 msgid "I<arg4> or I<arg5> is nonzero;"
3375 msgstr ""
3376
3377 #. type: Plain text
3378 #: build/C/man2/prctl.2:837
3379 msgid ""
3380 "I<arg3> is greater than B<TASK_SIZE> (the limit on the size of the user "
3381 "address space for this architecture);"
3382 msgstr ""
3383
3384 #. type: Plain text
3385 #: build/C/man2/prctl.2:847
3386 msgid ""
3387 "I<arg2> is B<PR_SET_MM_START_CODE>, B<PR_SET_MM_END_CODE>, "
3388 "B<PR_SET_MM_START_DATA>, B<PR_SET_MM_END_DATA>, or B<PR_SET_MM_START_STACK,> "
3389 "and the permissions of the corresponding memory area are not as required;"
3390 msgstr ""
3391
3392 #. type: Plain text
3393 #: build/C/man2/prctl.2:859
3394 msgid ""
3395 "I<arg2> is B<PR_SET_MM_START_BRK> or B<PR_SET_MM_BRK>, and I<arg3> is less "
3396 "than or equal to the end of the data segment or specifies a value that would "
3397 "cause the B<RLIMIT_DATA> resource limit to be exceeded."
3398 msgstr ""
3399
3400 #. type: Plain text
3401 #: build/C/man2/prctl.2:870
3402 msgid ""
3403 "I<option> is B<PR_SET_PTRACER> and I<arg2> is not 0, B<PR_SET_PTRACER_ANY>, "
3404 "or the PID of an existing process."
3405 msgstr ""
3406
3407 #. type: Plain text
3408 #: build/C/man2/prctl.2:882
3409 msgid ""
3410 "I<option> is B<PR_SET_SECUREBITS>, and the caller does not have the "
3411 "B<CAP_SETPCAP> capability, or tried to unset a \"locked\" flag, or tried to "
3412 "set a flag whose corresponding locked flag was set (see B<capabilities>(7))."
3413 msgstr ""
3414 "I<option> が B<PR_SET_SECUREBITS> で、呼び出し元がケーパビリティ "
3415 "B<CAP_SETPCAP> を持っていない。 または、\"locked\" フラグを解除しようとし"
3416 "た。 または、locked フラグがセットされているフラグをセットしようとした "
3417 "(B<capabilities>(7)  参照)。"
3418
3419 #. type: Plain text
3420 #: build/C/man2/prctl.2:892
3421 msgid ""
3422 "I<option> is B<PR_SET_KEEPCAPS>, and the callers's "
3423 "B<SECURE_KEEP_CAPS_LOCKED> flag is set (see B<capabilities>(7))."
3424 msgstr ""
3425 "I<option> が B<PR_SET_KEEPCAPS> で、呼び出し元のフラグ "
3426 "B<SECURE_KEEP_CAPS_LOCKED> がセットされている (B<capabilities>(7)  参照)。"
3427
3428 #. type: Plain text
3429 #: build/C/man2/prctl.2:900
3430 msgid ""
3431 "I<option> is B<PR_CAPBSET_DROP>, and the caller does not have the "
3432 "B<CAP_SETPCAP> capability."
3433 msgstr ""
3434 "I<option> が B<PR_CAPBSET_DROP> で、呼び出し元がケーパビリティ "
3435 "B<CAP_SETPCAP> を持っていない。"
3436
3437 #.  FIXME The following (until ========) is not yet in mainline kernel,
3438 #.  so commented out for the moment.
3439 #.  .TP
3440 #.  .B EACCES
3441 #.  .I option
3442 #.  is
3443 #.  .BR PR_SET_MM ,
3444 #.  and
3445 #.  .I arg3
3446 #.  is
3447 #.  .BR PR_SET_MM_EXE_FILE ,
3448 #.  the file is not executable.
3449 #.  .TP
3450 #.  .B EBUSY
3451 #.  .I option
3452 #.  is
3453 #.  .BR PR_SET_MM ,
3454 #.  .I arg3
3455 #.  is
3456 #.  .BR PR_SET_MM_EXE_FILE ,
3457 #.  and this the second attempt to change the
3458 #.  .I /proc/pid/exe
3459 #.  symbolic link, which is prohibited.
3460 #.  .TP
3461 #.  .B EBADF
3462 #.  .I option
3463 #.  is
3464 #.  .BR PR_SET_MM ,
3465 #.  .I arg3
3466 #.  is
3467 #.  .BR PR_SET_MM_EXE_FILE ,
3468 #.  and the file descriptor passed in
3469 #.  .I arg4
3470 #.  is not valid.
3471 #.  ========== END FIXME
3472 #.  The following can't actually happen, because prctl() in
3473 #.  seccomp mode will cause SIGKILL.
3474 #.  .TP
3475 #.  .B EPERM
3476 #.  .I option
3477 #.  is
3478 #.  .BR PR_SET_SECCOMP ,
3479 #.  and secure computing mode is already 1.
3480 #. type: Plain text
3481 #: build/C/man2/prctl.2:951
3482 msgid ""
3483 "I<option> is B<PR_SET_MM>, and the caller does not have the "
3484 "B<CAP_SYS_RESOURCE> capability."
3485 msgstr ""
3486 "I<option> が B<PR_SET_MM> で、呼び出し元がケーパビリティ\n"
3487 "B<CAP_SYS_RESOURCE> を持っていない。"
3488
3489 #.  The library interface was added in glibc 2.0.6
3490 #. type: Plain text
3491 #: build/C/man2/prctl.2:956
3492 msgid "The B<prctl>()  system call was introduced in Linux 2.1.57."
3493 msgstr "B<prctl>()  システムコールは Linux 2.1.57 で導入された。"
3494
3495 #. type: Plain text
3496 #: build/C/man2/prctl.2:963
3497 msgid ""
3498 "This call is Linux-specific.  IRIX has a B<prctl>()  system call (also "
3499 "introduced in Linux 2.1.44 as irix_prctl on the MIPS architecture), with "
3500 "prototype"
3501 msgstr ""
3502 "このコールは Linux 特有である。 IRIX には B<prctl>()  システム・コールがある"
3503 "が (MIPS アーキテクチャにおいて irix_prctl として Linux 2.1.44 で同様に導入さ"
3504 "れた)、 そのプロトタイプは"
3505
3506 #. type: Plain text
3507 #: build/C/man2/prctl.2:965
3508 msgid "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
3509 msgstr "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
3510
3511 #. type: Plain text
3512 #: build/C/man2/prctl.2:970
3513 msgid ""
3514 "and options to get the maximum number of processes per user, get the maximum "
3515 "number of processors the calling process can use, find out whether a "
3516 "specified process is currently blocked, get or set the maximum stack size, "
3517 "and so on."
3518 msgstr ""
3519 "である。ユーザー当りのプロセス最大数を取得するオプション、 プロセスの使用でき"
3520 "る最大プロッサー数を取得するオプション、 現在特定のプロセスが停止(block)させ"
3521 "られているかどうか調べるオプション、 スタックサイズの最大値の取得や設定を行な"
3522 "うオプションなどがある。"
3523
3524 #. type: Plain text
3525 #: build/C/man2/prctl.2:973
3526 msgid "B<signal>(2), B<core>(5)"
3527 msgstr "B<signal>(2), B<core>(5)"
3528
3529 #. type: TH
3530 #: build/C/man3/profil.3:28
3531 #, no-wrap
3532 msgid "PROFIL"
3533 msgstr "PROFIL"
3534
3535 #. type: Plain text
3536 #: build/C/man3/profil.3:31
3537 msgid "profil - execution time profile"
3538 msgstr "profil - 実行時間プロファイル (profile)"
3539
3540 #. type: Plain text
3541 #: build/C/man3/profil.3:36
3542 msgid ""
3543 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<, size_t "
3544 ">I<offset>B<, unsigned int >I<scale>B<);>"
3545 msgstr ""
3546 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<, size_t "
3547 ">I<offset>B<, unsigned int >I<scale>B<);>"
3548
3549 #. type: Plain text
3550 #: build/C/man3/profil.3:44
3551 msgid ""
3552 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
3553 msgstr ""
3554 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
3555
3556 #. type: Plain text
3557 #: build/C/man3/profil.3:66
3558 msgid ""
3559 "This routine provides a means to find out in what areas your program spends "
3560 "most of its time.  The argument I<buf> points to I<bufsiz> bytes of core.  "
3561 "Every virtual 10 milliseconds, the user's program counter (PC)  is examined: "
3562 "I<offset> is subtracted and the result is multiplied by I<scale> and divided "
3563 "by 65536.  If the resulting value is less than I<bufsiz>, then the "
3564 "corresponding entry in I<buf> is incremented.  If I<buf> is NULL, profiling "
3565 "is disabled."
3566 msgstr ""
3567 "このルーティンはプログラムのどこの部分で時間を費やしているかを調べる 手段を提"
3568 "供する。引き数 I<buf> は I<bufsiz> バイトのメモリを指している。仮想の 10 ミリ"
3569 "秒ごとに、ユーザーの プログラム・カウンター (PC) が検査される: I<offset> が引"
3570 "かれ、その結果が I<scale> 倍され 65536 で割られる。 結果が I<bufsiz> より小さ"
3571 "い場合は I<buf> の対応するエントリがインクリメントされる。 I<buf> が NULL な"
3572 "らば、プロファイル (profile) は無効にされる。"
3573
3574 #. type: Plain text
3575 #: build/C/man3/profil.3:68
3576 msgid "Zero is always returned."
3577 msgstr "常に 0 が返される。"
3578
3579 #. type: Plain text
3580 #: build/C/man3/profil.3:70
3581 msgid "Similar to a call in SVr4 (but not POSIX.1-2001)."
3582 msgstr "SVr4 のコールに似ている (しかし POSIX.1-2001 ではない)。"
3583
3584 #. type: Plain text
3585 #: build/C/man3/profil.3:76
3586 msgid ""
3587 "B<profil>()  cannot be used on a program that also uses B<ITIMER_PROF> "
3588 "interval timers (see B<setitimer>(2))."
3589 msgstr ""
3590 "B<profil>()  は B<ITIMER_PROF> インターバル・タイマーも使用しているプログラム"
3591 "では使用できない (B<setitimer>(2)  参照)。"
3592
3593 #. type: Plain text
3594 #: build/C/man3/profil.3:79
3595 msgid ""
3596 "True kernel profiling provides more accurate results.  Libc 4.4 contained a "
3597 "kernel patch providing a system call profil."
3598 msgstr ""
3599 "本当のカーネル・プロファイルはより正確な結果を与える。 libc 4.4 にはシステム"
3600 "コール profil を提供するための カーネルパッチが含まれていた。"
3601
3602 #. type: Plain text
3603 #: build/C/man3/profil.3:84
3604 msgid "B<gprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
3605 msgstr "B<gprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
3606
3607 #. type: TH
3608 #: build/C/man3/psignal.3:30
3609 #, no-wrap
3610 msgid "PSIGNAL"
3611 msgstr "PSIGNAL"
3612
3613 #. type: TH
3614 #: build/C/man3/psignal.3:30
3615 #, no-wrap
3616 msgid "2010-10-06"
3617 msgstr "2010-10-06"
3618
3619 #. type: TH
3620 #: build/C/man3/psignal.3:30 build/C/man3/raise.3:29
3621 #: build/C/man7/sigevent.7:26
3622 #, no-wrap
3623 msgid "GNU"
3624 msgstr "GNU"
3625
3626 #. type: Plain text
3627 #: build/C/man3/psignal.3:33
3628 msgid "psignal, psiginfo - print signal message"
3629 msgstr "psignal, psiginfo - シグナルメッセージを表示"
3630
3631 #. type: Plain text
3632 #: build/C/man3/psignal.3:39
3633 #, no-wrap
3634 msgid ""
3635 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
3636 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
3637 msgstr ""
3638 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
3639 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
3640
3641 #. type: Plain text
3642 #: build/C/man3/psignal.3:41
3643 #, no-wrap
3644 msgid "B<extern const char *const >I<sys_siglist>B<[];>\n"
3645 msgstr "B<extern const char *const >I<sys_siglist>B<[];>\n"
3646
3647 #. type: Plain text
3648 #: build/C/man3/psignal.3:50
3649 msgid "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
3650 msgstr "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
3651
3652 #. type: Plain text
3653 #: build/C/man3/psignal.3:53
3654 msgid ""
3655 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
3656 "200809L"
3657 msgstr ""
3658 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
3659 "200809L"
3660
3661 #. type: Plain text
3662 #: build/C/man3/psignal.3:56
3663 msgid "I<sys_siglist>: _BSD_SOURCE"
3664 msgstr "I<sys_siglist>: _BSD_SOURCE"
3665
3666 #. type: Plain text
3667 #: build/C/man3/psignal.3:65
3668 msgid ""
3669 "The B<psignal>()  function displays a message on I<stderr> consisting of the "
3670 "string I<s>, a colon, a space, a string describing the signal number I<sig>, "
3671 "and a trailing newline.  If the string I<s> is NULL or empty, the colon and "
3672 "space are omitted.  If I<sig> is invalid, the message displayed will "
3673 "indicate an unknown signal."
3674 msgstr ""
3675 "B<psignal>() 関数は、文字列 I<s>、コロン、スペース、\n"
3676 "シグナル番号 I<sig> を説明する文字列、終端の改行から\n"
3677 "構成されるメッセージを I<stderr> に表示する。\n"
3678 "文字列 I<s> が NULL か空の場合、コロンとスペースは省略される。\n"
3679 "I<sig> が不正ならば、表示される メッセージは未知のシグナルを示す。"
3680
3681 #. type: Plain text
3682 #: build/C/man3/psignal.3:86
3683 msgid ""
3684 "The B<psiginfo>()  function is like B<psignal>(), except that it displays "
3685 "information about the signal described by I<pinfo>, which should point to a "
3686 "valid I<siginfo_t> structure.  As well as the signal description, B<psiginfo>"
3687 "()  displays information about the origin of the signal, and other "
3688 "information relevant to the signal (e.g., the relevant memory address for "
3689 "hardware-generated signals, the child process ID for B<SIGCHLD>, and the "
3690 "user ID and process ID of the sender, for signals set using B<kill>(2)  or "
3691 "B<sigqueue>(3))."
3692 msgstr ""
3693
3694 #. type: Plain text
3695 #: build/C/man3/psignal.3:89
3696 msgid ""
3697 "The array I<sys_siglist> holds the signal description strings indexed by "
3698 "signal number."
3699 msgstr ""
3700 "配列 I<sys_siglist> はシグナルを説明する文字列を保持しており、 配列へのアクセ"
3701 "スにはシグナル番号を添え字として用いる事ができる。"
3702
3703 #. type: Plain text
3704 #: build/C/man3/psignal.3:95
3705 msgid "The B<psignal>()  and B<psiginfo>()  functions return no value."
3706 msgstr "関数 B<psignal>() と B<psiginfo>() は、値を返さない。"
3707
3708 #. type: Plain text
3709 #: build/C/man3/psignal.3:99
3710 msgid "The B<psiginfo>()  function was added to glibc in version 2.10."
3711 msgstr "B<psiginfo>() 関数は glibc バージョン 2.10 で追加された。"
3712
3713 #. type: Plain text
3714 #: build/C/man3/psignal.3:101
3715 msgid "POSIX.1-2008, 4.3BSD."
3716 msgstr "POSIX.1-2008, 4.3BSD."
3717
3718 #. type: Plain text
3719 #: build/C/man3/psignal.3:105
3720 msgid "In glibc versions up to 2.12, B<psiginfo>()  had the following bugs:"
3721 msgstr ""
3722 "バージョン 2.12 までの glibc では B<psiginfo>() には以下のバグがあった。"
3723
3724 #.  FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=12107
3725 #.  Reportedly now fixed; check glibc 2.13
3726 #. type: Plain text
3727 #: build/C/man3/psignal.3:109
3728 msgid "In some circumstances, a trailing newline is not printed."
3729 msgstr ""
3730
3731 #.  FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=12108
3732 #.  Reportedly now fixed; check glibc 2.13
3733 #. type: Plain text
3734 #: build/C/man3/psignal.3:113
3735 msgid "Additional details are not displayed for real-time signals."
3736 msgstr ""
3737
3738 #. type: Plain text
3739 #: build/C/man3/psignal.3:118
3740 msgid "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
3741 msgstr "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
3742
3743 #. type: TH
3744 #: build/C/man3/raise.3:29
3745 #, no-wrap
3746 msgid "RAISE"
3747 msgstr "RAISE"
3748
3749 #. type: TH
3750 #: build/C/man3/raise.3:29
3751 #, no-wrap
3752 msgid "2012-04-20"
3753 msgstr "2012-04-20"
3754
3755 #. type: Plain text
3756 #: build/C/man3/raise.3:32
3757 msgid "raise - send a signal to the caller"
3758 msgstr "raise - 呼び出し元にシグナルを送る"
3759
3760 #. type: Plain text
3761 #: build/C/man3/raise.3:37
3762 #, no-wrap
3763 msgid "B<int raise(int >I<sig>B<);>\n"
3764 msgstr "B<int raise(int >I<sig>B<);>\n"
3765
3766 #. type: Plain text
3767 #: build/C/man3/raise.3:43
3768 msgid ""
3769 "The B<raise>()  function sends a signal to the calling process or thread.  "
3770 "In a single-threaded program it is equivalent to"
3771 msgstr ""
3772 "B<raise>()  関数は、呼び出し元のプロセスもしくはスレッドにシグナルを送る。 シ"
3773 "ングルスレッドのプログラムでは、以下と等価である。"
3774
3775 #. type: Plain text
3776 #: build/C/man3/raise.3:47
3777 #, no-wrap
3778 msgid "kill(getpid(), sig);\n"
3779 msgstr "kill(getpid(), sig);\n"
3780
3781 #. type: Plain text
3782 #: build/C/man3/raise.3:51
3783 msgid "In a multithreaded program it is equivalent to"
3784 msgstr "マルチスレッドのプログラムでは、以下と等価である。"
3785
3786 #. type: Plain text
3787 #: build/C/man3/raise.3:55
3788 #, no-wrap
3789 msgid "pthread_kill(pthread_self(), sig);\n"
3790 msgstr "pthread_kill(pthread_self(), sig);\n"
3791
3792 #. type: Plain text
3793 #: build/C/man3/raise.3:61
3794 #, fuzzy
3795 #| msgid ""
3796 #| "If the signal causes a handler to be called, B<raise>()  will only return "
3797 #| "after the signal handler has returned."
3798 msgid ""
3799 "If the signal causes a handler to be called, B<raise>()  will return only "
3800 "after the signal handler has returned."
3801 msgstr ""
3802 "シグナルに起因してシグナル・ハンドラが呼び出される場合には、 B<raise>()  が返"
3803 "るのは必ずシグナル・ハンドラが返った後になる。"
3804
3805 #. type: Plain text
3806 #: build/C/man3/raise.3:64
3807 msgid "B<raise>()  returns 0 on success, and nonzero for failure."
3808 msgstr "成功した場合は 0 を、失敗した場合は 0 以外の値を返す。"
3809
3810 #. type: Plain text
3811 #: build/C/man3/raise.3:66 build/C/man2/signal.2:109
3812 msgid "C89, C99, POSIX.1-2001."
3813 msgstr "C89, C99, POSIX.1-2001."
3814
3815 #.  2.3.2 used the obsolete tkill(), if available.
3816 #. type: Plain text
3817 #: build/C/man3/raise.3:77
3818 msgid ""
3819 "Since version 2.3.3, glibc implements B<raise>()  by calling B<tgkill>(2), "
3820 "if the kernel supports that system call.  Older glibc versions implemented "
3821 "B<raise>()  using B<kill>(2)."
3822 msgstr ""
3823 "glibc バージョン 2.3.3 以降では、カーネルが B<tgkill>(2) システムコール\n"
3824 "をサポートしている場合はB<raise>() は B<tgkill>(2) を使って実装されて\n"
3825 "いる。古いバージョンの glibc では、B<raise>() は B<kill>(2) を使って\n"
3826 "実装されている。"
3827
3828 #. type: Plain text
3829 #: build/C/man3/raise.3:84
3830 msgid ""
3831 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
3832 "B<signal>(7)"
3833 msgstr ""
3834 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
3835 "B<signal>(7)"
3836
3837 #. type: TH
3838 #: build/C/man2/rt_sigqueueinfo.2:25
3839 #, no-wrap
3840 msgid "RT_SIGQUEUEINFO"
3841 msgstr "RT_SIGQUEUEINFO"
3842
3843 #. type: TH
3844 #: build/C/man2/rt_sigqueueinfo.2:25 build/C/man2/sgetmask.2:26
3845 #: build/C/man2/tkill.2:29
3846 #, no-wrap
3847 msgid "2012-07-13"
3848 msgstr "2012-07-13"
3849
3850 #. type: Plain text
3851 #: build/C/man2/rt_sigqueueinfo.2:28
3852 msgid "rt_sigqueueinfo, rt_tgsigqueueinfo - queue a signal and data"
3853 msgstr ""
3854
3855 #. type: Plain text
3856 #: build/C/man2/rt_sigqueueinfo.2:31
3857 #, no-wrap
3858 msgid "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
3859 msgstr "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
3860
3861 #. type: Plain text
3862 #: build/C/man2/rt_sigqueueinfo.2:34
3863 #, no-wrap
3864 msgid ""
3865 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
3866 "B<                      siginfo_t *>I<uinfo>B<);>\n"
3867 msgstr ""
3868 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
3869 "B<                      siginfo_t *>I<uinfo>B<);>\n"
3870
3871 #. type: Plain text
3872 #: build/C/man2/rt_sigqueueinfo.2:38 build/C/man2/sgetmask.2:36
3873 #: build/C/man2/tkill.2:41
3874 msgid "I<Note>: There are no glibc wrappers for these system calls; see NOTES."
3875 msgstr ""
3876 "I<注>: これらのシステムコールには、glibc のラッパー関数はない。「注意」の節を"
3877 "参照。"
3878
3879 #. type: Plain text
3880 #: build/C/man2/rt_sigqueueinfo.2:50
3881 msgid ""
3882 "The B<rt_sigqueueinfo>()  and B<rt_tgsigqueueinfo>()  system calls are the "
3883 "low-level interfaces used to send a signal plus data to a process or "
3884 "thread.  The receiver of the signal can obtain the accompanying data by "
3885 "establishing a signal handler with the B<sigaction>(2)  B<SA_SIGINFO> flag."
3886 msgstr ""
3887
3888 #. type: Plain text
3889 #: build/C/man2/rt_sigqueueinfo.2:56
3890 msgid ""
3891 "These system calls are not intended for direct application use; they are "
3892 "provided to allow the implementation of B<sigqueue>(3)  and "
3893 "B<pthread_sigqueue>(3)."
3894 msgstr ""
3895
3896 #. type: Plain text
3897 #: build/C/man2/rt_sigqueueinfo.2:68
3898 msgid ""
3899 "The B<rt_sigqueueinfo>()  system call sends the signal I<sig> to the thread "
3900 "group with the ID I<tgid>.  (The term \"thread group\" is synonymous with "
3901 "\"process\", and I<tid> corresponds to the traditional UNIX process ID.)  "
3902 "The signal will be delivered to an arbitrary member of the thread group (i."
3903 "e., one of the threads that is not currently blocking the signal)."
3904 msgstr ""
3905
3906 #. type: Plain text
3907 #: build/C/man2/rt_sigqueueinfo.2:79
3908 msgid ""
3909 "The I<uinfo> argument specifies the data to accompany the signal.  This "
3910 "argument is a pointer to a structure of type I<siginfo_t>, described in "
3911 "B<sigaction>(2)  (and defined by including I<E<lt>sigaction.hE<gt>>).  The "
3912 "caller should set the following fields in this structure:"
3913 msgstr ""
3914
3915 #. type: TP
3916 #: build/C/man2/rt_sigqueueinfo.2:79 build/C/man7/sigevent.7:88
3917 #: build/C/man2/wait.2:314
3918 #, no-wrap
3919 msgid "I<si_code>"
3920 msgstr "I<si_code>"
3921
3922 #.  tkill(2) or
3923 #. type: Plain text
3924 #: build/C/man2/rt_sigqueueinfo.2:95
3925 msgid ""
3926 "This must be one of the B<SI_*> codes in the Linux kernel source file "
3927 "I<include/asm-generic/siginfo.h>, with the restriction that the code must be "
3928 "negative (i.e., cannot be B<SI_USER>, which is used by the kernel to "
3929 "indicate a signal sent by B<kill>(2))  and cannot (since Linux 2.6.39) be "
3930 "B<SI_TKILL> (which is used by the kernel to indicate a signal sent using "
3931 "B<tgkill>(2))."
3932 msgstr ""
3933
3934 #. type: TP
3935 #: build/C/man2/rt_sigqueueinfo.2:95 build/C/man2/wait.2:293
3936 #, no-wrap
3937 msgid "I<si_pid>"
3938 msgstr "I<si_pid>"
3939
3940 #. type: Plain text
3941 #: build/C/man2/rt_sigqueueinfo.2:99
3942 msgid ""
3943 "This should be set to a process ID, typically the process ID of the sender."
3944 msgstr ""
3945
3946 #. type: TP
3947 #: build/C/man2/rt_sigqueueinfo.2:99 build/C/man2/wait.2:296
3948 #, no-wrap
3949 msgid "I<si_uid>"
3950 msgstr "I<si_uid>"
3951
3952 #. type: Plain text
3953 #: build/C/man2/rt_sigqueueinfo.2:103
3954 msgid ""
3955 "This should be set to a user ID, typically the real user ID of the sender."
3956 msgstr ""
3957
3958 #. type: TP
3959 #: build/C/man2/rt_sigqueueinfo.2:103 build/C/man7/sigevent.7:96
3960 #, no-wrap
3961 msgid "I<si_value>"
3962 msgstr "I<si_value>"
3963
3964 #. type: Plain text
3965 #: build/C/man2/rt_sigqueueinfo.2:110
3966 msgid ""
3967 "This field contains the user data to accompany the signal.  For more "
3968 "information, see the description of the last (I<union sigval>)  argument of "
3969 "B<sigqueue>(3)."
3970 msgstr ""
3971
3972 #. type: Plain text
3973 #: build/C/man2/rt_sigqueueinfo.2:117
3974 msgid ""
3975 "Internally, the kernel sets the I<si_signo> field to the value specified in "
3976 "I<sig>, so that the receiver of the signal can also obtain the signal number "
3977 "via that field."
3978 msgstr ""
3979
3980 #. type: Plain text
3981 #: build/C/man2/rt_sigqueueinfo.2:129
3982 msgid ""
3983 "The B<rt_tgsigqueueinfo>()  system call is like B<rt_sigqueueinfo>(), but "
3984 "sends the signal and data to the single thread specified by the combination "
3985 "of I<tgid>, a thread group ID, and I<tid>, a thread in that thread group."
3986 msgstr ""
3987
3988 #. type: Plain text
3989 #: build/C/man2/rt_sigqueueinfo.2:134
3990 msgid ""
3991 "On success, these system calls return 0.  On error, they return -1 and "
3992 "I<errno> is set to indicate the error."
3993 msgstr ""
3994
3995 #. type: TP
3996 #: build/C/man2/rt_sigqueueinfo.2:135 build/C/man3/sigqueue.3:92
3997 #: build/C/man2/sigwaitinfo.2:115 build/C/man2/timer_create.2:176
3998 #, no-wrap
3999 msgid "B<EAGAIN>"
4000 msgstr "B<EAGAIN>"
4001
4002 #. type: Plain text
4003 #: build/C/man2/rt_sigqueueinfo.2:141 build/C/man3/sigqueue.3:98
4004 msgid ""
4005 "The limit of signals which may be queued has been reached.  (See B<signal>"
4006 "(7)  for further information.)"
4007 msgstr ""
4008 "待ち行列に入れられるシグナルの最大数に達した (より詳しい情報は B<signal>(7)  "
4009 "を参照すること)。"
4010
4011 #. type: Plain text
4012 #: build/C/man2/rt_sigqueueinfo.2:148
4013 msgid "I<sig>, I<tgid>, or I<tid> was invalid."
4014 msgstr ""
4015
4016 #. type: Plain text
4017 #: build/C/man2/rt_sigqueueinfo.2:156
4018 msgid ""
4019 "The caller does not have permission to send the signal to the target.  For "
4020 "the required permissions, see B<kill>(2).  Or: I<uinfo-E<gt>si_code> is "
4021 "invalid."
4022 msgstr ""
4023
4024 #. type: Plain text
4025 #: build/C/man2/rt_sigqueueinfo.2:162
4026 msgid "B<rt_sigqueueinfo>(): No thread group matching I<tgid> was found."
4027 msgstr ""
4028
4029 #. type: Plain text
4030 #: build/C/man2/rt_sigqueueinfo.2:169
4031 msgid "B<rt_tgsigqueinfo>(): No thread matching I<tgid> and I<tid> was found."
4032 msgstr ""
4033
4034 #. type: Plain text
4035 #: build/C/man2/rt_sigqueueinfo.2:176
4036 msgid ""
4037 "The B<rt_sigqueueinfo>()  system call was added to Linux in version 2.2.  "
4038 "The B<rt_tgsigqueueinfo>()  system call was added to Linux in version 2.6.31."
4039 msgstr ""
4040
4041 #. type: Plain text
4042 #: build/C/man2/rt_sigqueueinfo.2:178 build/C/man2/sgetmask.2:68
4043 #: build/C/man2/timerfd_create.2:373
4044 msgid "These system calls are Linux-specific."
4045 msgstr "これらのシステムコールは Linux 固有である。"
4046
4047 #. type: Plain text
4048 #: build/C/man2/rt_sigqueueinfo.2:183
4049 msgid ""
4050 "Since these system calls are not intended for application use, there are no "
4051 "glibc wrapper functions; use B<syscall>(2)  in the unlikely case that you "
4052 "want to call them directly."
4053 msgstr ""
4054 "これらのシステムコールはアプリケーションでの使用を目的として用意されたわけで"
4055 "はないので、 glibc のラッパー関数は存在しない。おそらくないと思うが、このシス"
4056 "テムコールを直接呼び出したい場合は B<syscall>(2) を使うこと。"
4057
4058 #. type: Plain text
4059 #: build/C/man2/rt_sigqueueinfo.2:188
4060 msgid ""
4061 "As with B<kill>(2), the null signal (0) can be used to check if the "
4062 "specified process or thread exists."
4063 msgstr ""
4064
4065 #. type: Plain text
4066 #: build/C/man2/rt_sigqueueinfo.2:196
4067 msgid ""
4068 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4069 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4070 msgstr ""
4071 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4072 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4073
4074 #. type: TH
4075 #: build/C/man2/s390_runtime_instr.2:25
4076 #, no-wrap
4077 msgid "S390_RUNTIME_INSTR"
4078 msgstr ""
4079
4080 #. type: TH
4081 #: build/C/man2/s390_runtime_instr.2:25
4082 #, no-wrap
4083 msgid "2012-12-17"
4084 msgstr "2012-12-17"
4085
4086 #. type: Plain text
4087 #: build/C/man2/s390_runtime_instr.2:28
4088 msgid "s390_runtime_instr - enable/disable s390 CPU run-time instrumentation"
4089 msgstr ""
4090
4091 #. type: Plain text
4092 #: build/C/man2/s390_runtime_instr.2:31
4093 #, no-wrap
4094 msgid "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4095 msgstr "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4096
4097 #. type: Plain text
4098 #: build/C/man2/s390_runtime_instr.2:33
4099 #, no-wrap
4100 msgid "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4101 msgstr "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4102
4103 #. type: Plain text
4104 #: build/C/man2/s390_runtime_instr.2:39
4105 msgid ""
4106 "The B<s390_runtime_instr>()  system call starts or stops CPU run-time "
4107 "instrumentation for the calling thread."
4108 msgstr ""
4109
4110 #. type: Plain text
4111 #: build/C/man2/s390_runtime_instr.2:47
4112 msgid ""
4113 "The I<command> argument controls whether run-time instrumentation is started "
4114 "(B<S390_RUNTIME_INSTR_START>, 1) or stopped (B<S390_RUNTIME_INSTR_STOP>, 2) "
4115 "for the calling thread."
4116 msgstr ""
4117
4118 #. type: Plain text
4119 #: build/C/man2/s390_runtime_instr.2:54
4120 msgid ""
4121 "The I<signum> argument specifies the number of a real-time signal.  The real-"
4122 "time signal is sent to the thread if the run-time instrumentation buffer is "
4123 "full or if the run-time-instrumentation-halted interrupt occurred."
4124 msgstr ""
4125
4126 #. type: Plain text
4127 #: build/C/man2/s390_runtime_instr.2:65
4128 msgid ""
4129 "On success, B<s390_runtime_instr>()  returns 0 and enables the thread for "
4130 "run-time instrumentation by assigning the thread a default run-time "
4131 "instrumentation control block.  The caller can then read and modify the "
4132 "control block and start the run-time instrumentation.  On error, -1 is "
4133 "returned and I<errno> is set to one of the error codes listed below."
4134 msgstr ""
4135
4136 #. type: Plain text
4137 #: build/C/man2/s390_runtime_instr.2:73
4138 msgid ""
4139 "The value specified in I<command> is not a valid command or the value "
4140 "specified in I<signum> is not a real-time signal number."
4141 msgstr ""
4142
4143 #. type: Plain text
4144 #: build/C/man2/s390_runtime_instr.2:76
4145 msgid ""
4146 "Allocating memory for the run-time instrumentation control block failed."
4147 msgstr ""
4148
4149 #. type: TP
4150 #: build/C/man2/s390_runtime_instr.2:76
4151 #, no-wrap
4152 msgid "B<EOPNOTSUPP>"
4153 msgstr ""
4154
4155 #. type: Plain text
4156 #: build/C/man2/s390_runtime_instr.2:79
4157 msgid "The run-time instrumentation facility is not available."
4158 msgstr ""
4159
4160 #. type: Plain text
4161 #: build/C/man2/s390_runtime_instr.2:81
4162 msgid "This system call is available since Linux 3.7."
4163 msgstr "このシステムコールは Linux 3.7 で初めて登場した。"
4164
4165 #. type: Plain text
4166 #: build/C/man2/s390_runtime_instr.2:84
4167 msgid ""
4168 "This Linux-specific system call is available only on the s390 architecture.  "
4169 "The run-time instrumentation facility is available beginning with System z "
4170 "EC12."
4171 msgstr ""
4172
4173 #. type: Plain text
4174 #: build/C/man2/s390_runtime_instr.2:88
4175 msgid ""
4176 "Glibc does not provide a wrapper for this system call, use B<syscall>(2)  to "
4177 "call it."
4178 msgstr ""
4179 "glibc はこのシステムコールに対するラッパー関数を提供していない。 B<syscall>"
4180 "(2) を使用すること。"
4181
4182 #. type: Plain text
4183 #: build/C/man2/s390_runtime_instr.2:91
4184 msgid "B<syscall>(2), B<signal>(7)"
4185 msgstr "B<syscall>(2), B<signal>(7)"
4186
4187 #. type: TH
4188 #: build/C/man2/sgetmask.2:26
4189 #, no-wrap
4190 msgid "SGETMASK"
4191 msgstr "SGETMASK"
4192
4193 #. type: Plain text
4194 #: build/C/man2/sgetmask.2:29
4195 msgid "sgetmask, ssetmask - manipulation of signal mask (obsolete)"
4196 msgstr "sgetmask, ssetmask - シグナルマスクの操作 (廃止予定)"
4197
4198 #. type: Plain text
4199 #: build/C/man2/sgetmask.2:31
4200 msgid "B<long sgetmask(void);>"
4201 msgstr "B<long sgetmask(void);>"
4202
4203 #. type: Plain text
4204 #: build/C/man2/sgetmask.2:33
4205 msgid "B<long ssetmask(long >I<newmask>B<);>"
4206 msgstr "B<long ssetmask(long >I<newmask>B<);>"
4207
4208 #. type: Plain text
4209 #: build/C/man2/sgetmask.2:42
4210 msgid ""
4211 "These system calls are obsolete.  I<Do not use them>; use B<sigprocmask>(2)  "
4212 "instead."
4213 msgstr ""
4214 "これらのシステムコールは廃止予定であり、 「使用しないこと」。 代わりに "
4215 "B<sigprocmask>(2)  を使用すること。"
4216
4217 #. type: Plain text
4218 #: build/C/man2/sgetmask.2:45
4219 msgid "B<sgetmask>()  returns the signal mask of the calling process."
4220 msgstr "B<sgetmask>()  は、呼び出し元プロセスのシグナルマスクを返す。"
4221
4222 #. type: Plain text
4223 #: build/C/man2/sgetmask.2:50
4224 msgid ""
4225 "B<ssetmask>()  sets the signal mask of the calling process to the value "
4226 "given in I<newmask>.  The previous signal mask is returned."
4227 msgstr ""
4228 "B<ssetmask>()  は、呼び出し元プロセスのシグナルマスクを I<newmask> で指定され"
4229 "た値に設定し、変更前のシグナルマスクを返す。"
4230
4231 #. type: Plain text
4232 #: build/C/man2/sgetmask.2:59
4233 msgid ""
4234 "The signal masks dealt with by these two system calls are plain bit masks "
4235 "(unlike the I<sigset_t> used by B<sigprocmask>(2)); use B<sigmask>(3)  to "
4236 "create and inspect these masks."
4237 msgstr ""
4238 "これら二つのシステムコールが扱うシグナルマスクは、 単純なビットマスクである "
4239 "(この点が B<sigprocmask>(2)  で使用される I<sigset_t> と異なる)。 これらのマ"
4240 "スクを作成したり検査するには B<sigmask>(3)  を使用すること。"
4241
4242 #. type: Plain text
4243 #: build/C/man2/sgetmask.2:64
4244 msgid ""
4245 "B<sgetmask>()  always successfully returns the signal mask.  B<ssetmask>()  "
4246 "always succeeds, and returns the previous signal mask."
4247 msgstr ""
4248 "B<sgetmask>()  は常に成功し、シグナルマスクを返す。 B<ssetmask>()  は常に成功"
4249 "し、直前のシグナルマスクを返す。"
4250
4251 #. type: Plain text
4252 #: build/C/man2/sgetmask.2:66
4253 msgid "These system calls always succeed."
4254 msgstr "これらのシステムコールは常に成功する。"
4255
4256 #. type: Plain text
4257 #: build/C/man2/sgetmask.2:72
4258 msgid ""
4259 "Glibc does not provide wrappers for these obsolete system calls; in the "
4260 "unlikely event that you want to call them, use B<syscall>(2)."
4261 msgstr ""
4262 "glibc はこれらの古いシステムコールに対するラッパー関数を提供していない。\n"
4263 "あまりないと思うが、これらを呼び出したい場合には B<syscall>(2) を使うこと。"
4264
4265 #. type: Plain text
4266 #: build/C/man2/sgetmask.2:75
4267 msgid ""
4268 "These system calls are unaware of signal numbers greater than 31 (i.e., real-"
4269 "time signals)."
4270 msgstr ""
4271 "これらのシステムコールは、 31 より大きいシグナル番号 (つまり、リアルタイムシ"
4272 "グナル) を扱えない。"
4273
4274 #. type: Plain text
4275 #: build/C/man2/sgetmask.2:80
4276 msgid "It is not possible to block B<SIGSTOP> or B<SIGKILL>."
4277 msgstr "B<SIGSTOP> や B<SIGKILL> をブロックすることはできない。"
4278
4279 #. type: Plain text
4280 #: build/C/man2/sgetmask.2:83
4281 msgid "B<sigprocmask>(2), B<signal>(7)"
4282 msgstr "B<sigprocmask>(2), B<signal>(7)"
4283
4284 #. type: TH
4285 #: build/C/man2/sigaction.2:47
4286 #, no-wrap
4287 msgid "SIGACTION"
4288 msgstr "SIGACTION"
4289
4290 #. type: TH
4291 #: build/C/man2/sigaction.2:47
4292 #, no-wrap
4293 msgid "2013-02-12"
4294 msgstr "2013-02-12"
4295
4296 #. type: Plain text
4297 #: build/C/man2/sigaction.2:50
4298 msgid "sigaction - examine and change a signal action"
4299 msgstr "sigaction - シグナルの動作の確認と変更"
4300
4301 #. type: Plain text
4302 #: build/C/man2/sigaction.2:56
4303 #, no-wrap
4304 msgid ""
4305 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
4306 "B<              struct sigaction *>I<oldact>B<);>\n"
4307 msgstr ""
4308 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
4309 "B<              struct sigaction *>I<oldact>B<);>\n"
4310
4311 #. type: Plain text
4312 #: build/C/man2/sigaction.2:66
4313 msgid ""
4314 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4315 "_POSIX_SOURCE"
4316 msgstr ""
4317 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4318 "_POSIX_SOURCE"
4319
4320 #. type: Plain text
4321 #: build/C/man2/sigaction.2:69
4322 msgid "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
4323 msgstr "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
4324
4325 #. type: Plain text
4326 #: build/C/man2/sigaction.2:78
4327 msgid ""
4328 "The B<sigaction>()  system call is used to change the action taken by a "
4329 "process on receipt of a specific signal.  (See B<signal>(7)  for an overview "
4330 "of signals.)"
4331 msgstr ""
4332 "B<sigaction>()  システムコールは、特定のシグナルを受信した際の プロセスの動作"
4333 "を変更するのに使用される (シグナルの概要については B<signal>(7)  を参照)。"
4334
4335 #. type: Plain text
4336 #: build/C/man2/sigaction.2:84
4337 msgid ""
4338 "I<signum> specifies the signal and can be any valid signal except B<SIGKILL> "
4339 "and B<SIGSTOP>."
4340 msgstr ""
4341 "I<signum> には、 B<SIGKILL> と B<SIGSTOP> 以外の有効なシグナルをどれでも指定"
4342 "できる。"
4343
4344 #. type: Plain text
4345 #: build/C/man2/sigaction.2:95
4346 msgid ""
4347 "If I<act> is non-NULL, the new action for signal I<signum> is installed from "
4348 "I<act>.  If I<oldact> is non-NULL, the previous action is saved in I<oldact>."
4349 msgstr ""
4350 "I<act> が NULL 以外であれば、シグナル I<signum> の新しい動作 (action) として "
4351 "I<act> が設定される。 I<oldact> が NULL でなければ、今までの動作が I<oldact> "
4352 "に格納される。"
4353
4354 #. type: Plain text
4355 #: build/C/man2/sigaction.2:99
4356 msgid "The I<sigaction> structure is defined as something like:"
4357 msgstr "I<sigaction> 構造体は以下のような感じに定義される。"
4358
4359 #. type: Plain text
4360 #: build/C/man2/sigaction.2:109
4361 #, no-wrap
4362 msgid ""
4363 "struct sigaction {\n"
4364 "    void     (*sa_handler)(int);\n"
4365 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
4366 "    sigset_t   sa_mask;\n"
4367 "    int        sa_flags;\n"
4368 "    void     (*sa_restorer)(void);\n"
4369 "};\n"
4370 msgstr ""
4371 "struct sigaction {\n"
4372 "    void     (*sa_handler)(int);\n"
4373 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
4374 "    sigset_t   sa_mask;\n"
4375 "    int        sa_flags;\n"
4376 "    void     (*sa_restorer)(void);\n"
4377 "};\n"
4378
4379 #. type: Plain text
4380 #: build/C/man2/sigaction.2:116
4381 msgid ""
4382 "On some architectures a union is involved: do not assign to both "
4383 "I<sa_handler> and I<sa_sigaction>."
4384 msgstr ""
4385 "アーキテクチャによっては共用体 (union) が用いられており、その場合には "
4386 "I<sa_handler> と I<sa_sigaction> の両方を同時に割り当てることはできない。"
4387
4388 #. type: Plain text
4389 #: build/C/man2/sigaction.2:123
4390 msgid ""
4391 "The I<sa_restorer> element is obsolete and should not be used.  POSIX does "
4392 "not specify a I<sa_restorer> element."
4393 msgstr ""
4394 "I<sa_restorer> 要素は廃止予定であり使用すべきではない。 POSIX には "
4395 "I<sa_restorer> 要素に関する規定はない。"
4396
4397 #. type: Plain text
4398 #: build/C/man2/sigaction.2:133
4399 msgid ""
4400 "I<sa_handler> specifies the action to be associated with I<signum> and may "
4401 "be B<SIG_DFL> for the default action, B<SIG_IGN> to ignore this signal, or a "
4402 "pointer to a signal handling function.  This function receives the signal "
4403 "number as its only argument."
4404 msgstr ""
4405 "I<sa_handler> は I<signum> に対応する動作を指定するもので、 デフォルトの動作"
4406 "を行う B<SIG_DFL>、 そのシグナルを無視する B<SIG_IGN>、 シグナルハンドラ関数"
4407 "へのポインタが設定できる。 シグナルハンドラ関数の引き数は一つであり、シグナル"
4408 "番号が引き数として 渡される。"
4409
4410 #. type: Plain text
4411 #: build/C/man2/sigaction.2:155
4412 msgid ""
4413 "If B<SA_SIGINFO> is specified in I<sa_flags>, then I<sa_sigaction> (instead "
4414 "of I<sa_handler>)  specifies the signal-handling function for I<signum>.  "
4415 "This function receives the signal number as its first argument, a pointer to "
4416 "a I<siginfo_t> as its second argument and a pointer to a I<ucontext_t> (cast "
4417 "to I<void\\ *>) as its third argument.  (Commonly, the handler function "
4418 "doesn't make any use of the third argument.  See B<getcontext>(3)  for "
4419 "further information about I<ucontext_t>.)"
4420 msgstr ""
4421 "I<sa_flags> に B<SA_SIGINFO> が指定された場合、 (I<sa_handler> ではなく)\n"
4422 "I<sa_sigaction> により I<signum> に対応するシグナルハンドラ関数が指定さ\n"
4423 "れる。指定される関数は、最初の引き数としてシグナル番号を、二番目の引き\n"
4424 "数として I<siginfo_t> へのポインタを、三番目の引き数として (I<void\\ *>\n"
4425 "にキャストした) I<ucontext_t> へのポインタを受けとる。 (一般的には、\n"
4426 "ハンドラ関数の三番目の引き数が使用されない。I<ucontext_t> についての\n"
4427 "詳しい情報は B<getcontext>(3) を参照。)"
4428
4429 #. type: Plain text
4430 #: build/C/man2/sigaction.2:165
4431 msgid ""
4432 "I<sa_mask> specifies a mask of signals which should be blocked (i.e., added "
4433 "to the signal mask of the thread in which the signal handler is invoked)  "
4434 "during execution of the signal handler.  In addition, the signal which "
4435 "triggered the handler will be blocked, unless the B<SA_NODEFER> flag is used."
4436 msgstr ""
4437 "I<sa_mask> は、シグナル・ハンドラ実行中に禁止 (block) すべきシグナルのマスク"
4438 "を指定する (ハンドラ実行中のシグナルの禁止は、シグナル・ハンドラが起動された"
4439 "スレッド のシグナルのマスクに追加することで行われる)。 さらに、 "
4440 "B<SA_NODEFER> フラグが指定されていない場合は、ハンドラを起動するきっかけとな"
4441 "る シグナルにも I<sa_mask> が適用される。"
4442
4443 #. type: Plain text
4444 #: build/C/man2/sigaction.2:169
4445 msgid ""
4446 "I<sa_flags> specifies a set of flags which modify the behavior of the "
4447 "signal.  It is formed by the bitwise OR of zero or more of the following:"
4448 msgstr ""
4449 "I<sa_flags> はシグナル・ハンドラの動作を変更するためのフラグの集合を指定す"
4450 "る。 I<sa_flags> には、以下に示すフラグの (0 個以上の) 論理和をとったものを指"
4451 "定する。"
4452
4453 #. type: TP
4454 #: build/C/man2/sigaction.2:170
4455 #, no-wrap
4456 msgid "B<SA_NOCLDSTOP>"
4457 msgstr "B<SA_NOCLDSTOP>"
4458
4459 #. type: Plain text
4460 #: build/C/man2/sigaction.2:187
4461 #, fuzzy
4462 #| msgid ""
4463 #| "If I<signum> is B<SIGCHLD>, do not receive notification when child "
4464 #| "processes stop (i.e., when they receive one of B<SIGSTOP>, B<SIGTSTP>, "
4465 #| "B<SIGTTIN> or B<SIGTTOU>)  or resume (i.e., they receive B<SIGCONT>)  "
4466 #| "(see B<wait>(2)).  This flag is only meaningful when establishing a "
4467 #| "handler for B<SIGCHLD>."
4468 msgid ""
4469 "If I<signum> is B<SIGCHLD>, do not receive notification when child processes "
4470 "stop (i.e., when they receive one of B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN> or "
4471 "B<SIGTTOU>)  or resume (i.e., they receive B<SIGCONT>)  (see B<wait>(2)).  "
4472 "This flag is meaningful only when establishing a handler for B<SIGCHLD>."
4473 msgstr ""
4474 "I<signum> が B<SIGCHLD> の場合、 子プロセスが停止したり (子プロセスが "
4475 "B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN>, B<SIGTTOU> を受けたとき) 再開したり (子プ"
4476 "ロセスが B<SIGCONT> を受けたとき) したときに B<SIGCHLD> の通知を受けない。 こ"
4477 "のフラグは、 B<SIGCHLD> に対してハンドラを設定する際にのみ意味を持つ。"
4478
4479 #. type: TP
4480 #: build/C/man2/sigaction.2:187
4481 #, no-wrap
4482 msgid "B<SA_NOCLDWAIT> (since Linux 2.6)"
4483 msgstr "B<SA_NOCLDWAIT> (Linux 2.6 以降)"
4484
4485 #.  To be precise: Linux 2.5.60 -- MTK
4486 #. type: Plain text
4487 #: build/C/man2/sigaction.2:201
4488 #, fuzzy
4489 #| msgid ""
4490 #| "If I<signum> is B<SIGCHLD>, do not transform children into zombies when "
4491 #| "they terminate.  See also B<waitpid>(2).  This flag is only meaningful "
4492 #| "when establishing a handler for B<SIGCHLD>, or when setting that signal's "
4493 #| "disposition to B<SIG_DFL>."
4494 msgid ""
4495 "If I<signum> is B<SIGCHLD>, do not transform children into zombies when they "
4496 "terminate.  See also B<waitpid>(2).  This flag is meaningful only when "
4497 "establishing a handler for B<SIGCHLD>, or when setting that signal's "
4498 "disposition to B<SIG_DFL>."
4499 msgstr ""
4500 "(Linux 2.6 以降)  I<signum> が B<SIGCHLD> の場合、子プロセスが終了したときに "
4501 "子プロセスをゾンビプロセスに変化させない (B<waitpid>(2)  も参照)。 このフラグ"
4502 "は、 B<SIGCHLD> に対してハンドラを設定する際、もしくはそのシグナルの処理方法"
4503 "を B<SIG_DFL> に設定する際にのみ意味を持つ。"
4504
4505 #. type: Plain text
4506 #: build/C/man2/sigaction.2:213
4507 msgid ""
4508 "If the B<SA_NOCLDWAIT> flag is set when establishing a handler for "
4509 "B<SIGCHLD>, POSIX.1 leaves it unspecified whether a B<SIGCHLD> signal is "
4510 "generated when a child process terminates.  On Linux, a B<SIGCHLD> signal is "
4511 "generated in this case; on some other implementations, it is not."
4512 msgstr ""
4513 "B<SIGCHLD> に対してハンドラを設定する際に B<SA_NOCLDWAIT> フラグをセットした"
4514 "場合、 子プロセスが終了した際に B<SIGCHLD> シグナルが生成されるかどうかは、 "
4515 "POSIX.1 では規定されていない。 Linux では、この状況で B<SIGCHLD> シグナルは生"
4516 "成される。 いくつかの他の実装では生成されない。"
4517
4518 #. type: TP
4519 #: build/C/man2/sigaction.2:213
4520 #, no-wrap
4521 msgid "B<SA_NODEFER>"
4522 msgstr "B<SA_NODEFER>"
4523
4524 #. type: Plain text
4525 #: build/C/man2/sigaction.2:220
4526 #, fuzzy
4527 #| msgid ""
4528 #| "Do not prevent the signal from being received from within its own signal "
4529 #| "handler.  This flag is only meaningful when establishing a signal "
4530 #| "handler.  B<SA_NOMASK> is an obsolete, nonstandard synonym for this flag."
4531 msgid ""
4532 "Do not prevent the signal from being received from within its own signal "
4533 "handler.  This flag is meaningful only when establishing a signal handler.  "
4534 "B<SA_NOMASK> is an obsolete, nonstandard synonym for this flag."
4535 msgstr ""
4536 "それ自身のシグナル・ハンドラーの内部にいる時でも そのシグナルをマスクしないよ"
4537 "うにする。 このフラグはシグナルハンドラを設定する際にのみ意味を持つ。 "
4538 "B<SA_NOMASK> はこのフラグと同じ意味だが、廃止されており、非標準である。"
4539
4540 #. type: TP
4541 #: build/C/man2/sigaction.2:220
4542 #, no-wrap
4543 msgid "B<SA_ONSTACK>"
4544 msgstr "B<SA_ONSTACK>"
4545
4546 #. type: Plain text
4547 #: build/C/man2/sigaction.2:226
4548 #, fuzzy
4549 #| msgid ""
4550 #| "Call the signal handler on an alternate signal stack provided by "
4551 #| "B<sigaltstack>(2).  If an alternate stack is not available, the default "
4552 #| "stack will be used.  This flag is only meaningful when establishing a "
4553 #| "signal handler."
4554 msgid ""
4555 "Call the signal handler on an alternate signal stack provided by "
4556 "B<sigaltstack>(2).  If an alternate stack is not available, the default "
4557 "stack will be used.  This flag is meaningful only when establishing a signal "
4558 "handler."
4559 msgstr ""
4560 "B<sigaltstack>(2)  で提供される別のシグナル・スタックでシグナルハンドラを呼び"
4561 "出す。 別のシグナル・スタックが利用可能でなければ、デフォルトのスタックが 使"
4562 "用される。 このフラグはシグナルハンドラを設定する際にのみ意味を持つ。"
4563
4564 #. type: TP
4565 #: build/C/man2/sigaction.2:226
4566 #, no-wrap
4567 msgid "B<SA_RESETHAND>"
4568 msgstr "B<SA_RESETHAND>"
4569
4570 #. type: Plain text
4571 #: build/C/man2/sigaction.2:232
4572 #, fuzzy
4573 #| msgid ""
4574 #| "Restore the signal action to the default upon entry to the signal "
4575 #| "handler.  This flag is only meaningful when establishing a signal "
4576 #| "handler.  B<SA_ONESHOT> is an obsolete, nonstandard synonym for this flag."
4577 msgid ""
4578 "Restore the signal action to the default upon entry to the signal handler.  "
4579 "This flag is meaningful only when establishing a signal handler.  "
4580 "B<SA_ONESHOT> is an obsolete, nonstandard synonym for this flag."
4581 msgstr ""
4582 "シグナルハンドラを設定する際に、シグナルの動作をデフォルトに戻す。 このフラグ"
4583 "はシグナルハンドラを設定する際にのみ意味を持つ。 B<SA_ONESHOT> はこのフラグと"
4584 "同じ意味だが、廃止されており、非標準である。"
4585
4586 #. type: TP
4587 #: build/C/man2/sigaction.2:232
4588 #, no-wrap
4589 msgid "B<SA_RESTART>"
4590 msgstr "B<SA_RESTART>"
4591
4592 #. type: Plain text
4593 #: build/C/man2/sigaction.2:240
4594 #, fuzzy
4595 #| msgid ""
4596 #| "Provide behavior compatible with BSD signal semantics by making certain "
4597 #| "system calls restartable across signals.  This flag is only meaningful "
4598 #| "when establishing a signal handler.  See B<signal>(7)  for a discussion "
4599 #| "of system call restarting."
4600 msgid ""
4601 "Provide behavior compatible with BSD signal semantics by making certain "
4602 "system calls restartable across signals.  This flag is meaningful only when "
4603 "establishing a signal handler.  See B<signal>(7)  for a discussion of system "
4604 "call restarting."
4605 msgstr ""
4606 "いくつかのシステムコールをシグナルの通知の前後で再開できるようにして、 BSD シ"
4607 "グナル方式 (semantics) と互換性のある動作を提供する。 このフラグはシグナルハ"
4608 "ンドラを設定する際にのみ意味を持つ。 B<signal>(7)  に書かれているシステムコー"
4609 "ルの再開に関する議論を参照のこと。"
4610
4611 #. type: TP
4612 #: build/C/man2/sigaction.2:240
4613 #, no-wrap
4614 msgid "B<SA_SIGINFO> (since Linux 2.2)"
4615 msgstr "B<SA_SIGINFO> (Linux 2.2 以降)"
4616
4617 #.  (The
4618 #.  .I sa_sigaction
4619 #.  field was added in Linux 2.1.86.)
4620 #. type: Plain text
4621 #: build/C/man2/sigaction.2:251
4622 #, fuzzy
4623 #| msgid ""
4624 #| "The signal handler takes three arguments, not one.  In this case, "
4625 #| "I<sa_sigaction> should be set instead of I<sa_handler>.  This flag is "
4626 #| "only meaningful when establishing a signal handler."
4627 msgid ""
4628 "The signal handler takes three arguments, not one.  In this case, "
4629 "I<sa_sigaction> should be set instead of I<sa_handler>.  This flag is "
4630 "meaningful only when establishing a signal handler."
4631 msgstr ""
4632 "シグナルハンドラは一つではなく、三つの引き数を持つ。この場合は I<sa_handler> "
4633 "のかわりに I<sa_sigaction> を設定しなければならない このフラグはシグナルハン"
4634 "ドラを設定する際にのみ意味を持つ。"
4635
4636 #. type: Plain text
4637 #: build/C/man2/sigaction.2:258
4638 msgid ""
4639 "The I<siginfo_t> argument to I<sa_sigaction> is a struct with the following "
4640 "elements:"
4641 msgstr ""
4642 "I<sa_sigaction> のパラメータ I<siginfo_t> は以下の要素を持つ構造体である:"
4643
4644 #.  FIXME
4645 #.  si_trapno seems to be only used on SPARC and Alpha;
4646 #.  this page could use a little more detail on its purpose there.
4647 #.  In the kernel: si_tid
4648 #. type: Plain text
4649 #: build/C/man2/sigaction.2:289
4650 #, fuzzy, no-wrap
4651 #| msgid ""
4652 #| "siginfo_t {\n"
4653 #| "    int      si_signo;    /* Signal number */\n"
4654 #| "    int      si_errno;    /* An errno value */\n"
4655 #| "    int      si_code;     /* Signal code */\n"
4656 #| "    int      si_trapno;   /* Trap number that caused\n"
4657 #| "                             hardware-generated signal\n"
4658 #| "                             (unused on most architectures) */\n"
4659 #| "    pid_t    si_pid;      /* Sending process ID */\n"
4660 #| "    uid_t    si_uid;      /* Real user ID of sending process */\n"
4661 #| "    int      si_status;   /* Exit value or signal */\n"
4662 #| "    clock_t  si_utime;    /* User time consumed */\n"
4663 #| "    clock_t  si_stime;    /* System time consumed */\n"
4664 #| "    sigval_t si_value;    /* Signal value */\n"
4665 #| "    int      si_int;      /* POSIX.1b signal */\n"
4666 #| "    void    *si_ptr;      /* POSIX.1b signal */\n"
4667 #| "    int      si_overrun;  /* Timer overrun count; POSIX.1b timers */\n"
4668 #| "    int      si_timerid;  /* Timer ID; POSIX.1b timers */\n"
4669 #| "    void    *si_addr;     /* Memory location which caused fault */\n"
4670 #| "    long     si_band;     /* Band event (was I<int> in\n"
4671 #| "                             glibc 2.3.2 and earlier) */\n"
4672 #| "    int      si_fd;       /* File descriptor */\n"
4673 #| "    short    si_addr_lsb; /* Least significant bit of address\n"
4674 #| "                             (since kernel 2.6.32) */\n"
4675 #| "}\n"
4676 msgid ""
4677 "siginfo_t {\n"
4678 "    int      si_signo;    /* Signal number */\n"
4679 "    int      si_errno;    /* An errno value */\n"
4680 "    int      si_code;     /* Signal code */\n"
4681 "    int      si_trapno;   /* Trap number that caused\n"
4682 "                             hardware-generated signal\n"
4683 "                             (unused on most architectures) */\n"
4684 "    pid_t    si_pid;      /* Sending process ID */\n"
4685 "    uid_t    si_uid;      /* Real user ID of sending process */\n"
4686 "    int      si_status;   /* Exit value or signal */\n"
4687 "    clock_t  si_utime;    /* User time consumed */\n"
4688 "    clock_t  si_stime;    /* System time consumed */\n"
4689 "    sigval_t si_value;    /* Signal value */\n"
4690 "    int      si_int;      /* POSIX.1b signal */\n"
4691 "    void    *si_ptr;      /* POSIX.1b signal */\n"
4692 "    int      si_overrun;  /* Timer overrun count; POSIX.1b timers */\n"
4693 "    int      si_timerid;  /* Timer ID; POSIX.1b timers */\n"
4694 "    void    *si_addr;     /* Memory location which caused fault */\n"
4695 "    long     si_band;     /* Band event (was I<int> in\n"
4696 "                             glibc 2.3.2 and earlier) */\n"
4697 "    int      si_fd;       /* File descriptor */\n"
4698 "    short    si_addr_lsb; /* Least significant bit of address\n"
4699 "                             (since Linux 2.6.32) */\n"
4700 "}\n"
4701 msgstr ""
4702 "siginfo_t {\n"
4703 "    int      si_signo;    /* Signal number */\n"
4704 "    int      si_errno;    /* An errno value */\n"
4705 "    int      si_code;     /* Signal code */\n"
4706 "    int      si_trapno;   /* Trap number that caused\n"
4707 "                             hardware-generated signal\n"
4708 "                             (unused on most architectures) */\n"
4709 "    pid_t    si_pid;      /* Sending process ID */\n"
4710 "    uid_t    si_uid;      /* Real user ID of sending process */\n"
4711 "    int      si_status;   /* Exit value or signal */\n"
4712 "    clock_t  si_utime;    /* User time consumed */\n"
4713 "    clock_t  si_stime;    /* System time consumed */\n"
4714 "    sigval_t si_value;    /* Signal value */\n"
4715 "    int      si_int;      /* POSIX.1b signal */\n"
4716 "    void    *si_ptr;      /* POSIX.1b signal */\n"
4717 "    int      si_overrun;  /* Timer overrun count; POSIX.1b timers */\n"
4718 "    int      si_timerid;  /* Timer ID; POSIX.1b timers */\n"
4719 "    void    *si_addr;     /* Memory location which caused fault */\n"
4720 "    long     si_band;     /* Band event (was I<int> in\n"
4721 "                             glibc 2.3.2 and earlier) */\n"
4722 "    int      si_fd;       /* File descriptor */\n"
4723 "    short    si_addr_lsb; /* Least significant bit of address\n"
4724 "                             (since kernel 2.6.32) */\n"
4725 "}\n"
4726
4727 #. type: Plain text
4728 #: build/C/man2/sigaction.2:298
4729 #, fuzzy
4730 #| msgid ""
4731 #| "I<si_signo>, I<si_errno> and I<si_code> are defined for all signals.  "
4732 #| "(I<si_errno> is generally unused on Linux.)  The rest of the struct may "
4733 #| "be a union, so that one should only read the fields that are meaningful "
4734 #| "for the given signal:"
4735 msgid ""
4736 "I<si_signo>, I<si_errno> and I<si_code> are defined for all signals.  "
4737 "(I<si_errno> is generally unused on Linux.)  The rest of the struct may be a "
4738 "union, so that one should read only the fields that are meaningful for the "
4739 "given signal:"
4740 msgstr ""
4741 "I<si_signo>, I<si_errno>, I<si_code> は全てのシグナルに対して定義されている "
4742 "(I<si_errno> は Linux では一般的には使用されない)。 構造体の残りの部分は、共"
4743 "用体 (union) になっているかもしれない。 その場合は該当するシグナルにおいて意"
4744 "味のあるフィールドのみを読み込む ことができる。"
4745
4746 #. type: Plain text
4747 #: build/C/man2/sigaction.2:313
4748 msgid ""
4749 "Signals sent with B<kill>(2)  and B<sigqueue>(3)  fill in I<si_pid> and "
4750 "I<si_uid>.  In addition, signals sent with B<sigqueue>(3)  fill in I<si_int> "
4751 "and I<si_ptr> with the values specified by the sender of the signal; see "
4752 "B<sigqueue>(3)  for more details."
4753 msgstr ""
4754
4755 #. type: Plain text
4756 #: build/C/man2/sigaction.2:329
4757 msgid ""
4758 "Signals sent by POSIX.1b timers (since Linux 2.6) fill in I<si_overrun> and "
4759 "I<si_timerid>.  The I<si_timerid> field is an internal ID used by the kernel "
4760 "to identify the timer; it is not the same as the timer ID returned by "
4761 "B<timer_create>(2).  The I<si_overrun> field is the timer overrun count; "
4762 "this is the same information as is obtained by a call to B<timer_getoverrun>"
4763 "(2).  These fields are nonstandard Linux extensions."
4764 msgstr ""
4765 "POSIX.1b タイマ (Linux 2.6 以降) は I<si_overrun> と I<si_timerid> を\n"
4766 "設定する。 I<si_timerid> フィールドはカーネルがタイマを特定するのに\n"
4767 "使用する内部 ID であり、 B<timer_create>(2) が返すタイマ ID と同じではな"
4768 "い。\n"
4769 "I<si_overrun> フィールドはタイマが回り切った回数である。\n"
4770 "これは B<timer_getoverrun>(2) の呼び出しで取得できる情報と同じである。\n"
4771 "これらのフィールドは非標準で Linux による拡張である。"
4772
4773 #. type: Plain text
4774 #: build/C/man2/sigaction.2:344
4775 msgid ""
4776 "Signals sent for message queue notification (see the description of "
4777 "B<SIGEV_SIGNAL> in B<mq_notify>(3))  fill in I<si_int>/I<si_ptr>, with the "
4778 "I<sigev_value> supplied to B<mq_notify>(3); I<si_pid>, with the process ID "
4779 "of the message sender; and I<si_uid>, with the real user ID of the message "
4780 "sender."
4781 msgstr ""
4782
4783 #.  FIXME .
4784 #.  When si_utime and si_stime where originally implemented, the
4785 #.  measurement unit was HZ, which was the same as clock ticks
4786 #.  (sysconf(_SC_CLK_TCK)).  In 2.6, HZ became configurable, and
4787 #.  was *still* used as the unit to return the info these fields,
4788 #.  with the result that the field values depended on the the
4789 #.  configured HZ.  Of course, the should have been measured in
4790 #.  USER_HZ instead, so that sysconf(_SC_CLK_TCK) could be used to
4791 #.  convert to seconds.  I have a queued patch to fix this:
4792 #.  http://thread.gmane.org/gmane.linux.kernel/698061/ .
4793 #.  This patch made it into 2.6.27.
4794 #.  But note that these fields still don't return the times of
4795 #.  waited-for children (as is done by getrusage() and times()
4796 #.  and wait4()).  Solaris 8 does include child times.
4797 #. type: Plain text
4798 #: build/C/man2/sigaction.2:391
4799 msgid ""
4800 "B<SIGCHLD> fills in I<si_pid>, I<si_uid>, I<si_status>, I<si_utime> and "
4801 "I<si_stime>, providing information about the child.  The I<si_pid> field is "
4802 "the process ID of the child; I<si_uid> is the child's real user ID.  The "
4803 "I<si_status> field contains the exit status of the child (if I<si_code> is "
4804 "B<CLD_EXITED>), or the signal number that caused the process to change "
4805 "state.  The I<si_utime> and I<si_stime> contain the user and system CPU time "
4806 "used by the child process; these fields do not include the times used by "
4807 "waited-for children (unlike B<getrusage>(2)  and B<time>(2)).  In kernels up "
4808 "to 2.6, and since 2.6.27, these fields report CPU time in units of I<sysconf"
4809 "(_SC_CLK_TCK)>.  In 2.6 kernels before 2.6.27, a bug meant that these fields "
4810 "reported time in units of the (configurable) system jiffy (see B<time>(7))."
4811 msgstr ""
4812 "B<SIGCHLD> は I<si_pid>, I<si_uid>, I<si_status>, I<si_utime>,\n"
4813 "I<si_stime> を設定し、子プロセスに関する情報を提供する。\n"
4814 "I<si_pid> フィールドは子プロセスのプロセス ID で、\n"
4815 "I<si_uid> フィールドは子プロセスの実ユーザ ID である。\n"
4816 "I<si_stime> フィールドには、 (I<si_code> が B<CLD_EXITED> の場合は) \n"
4817 "子プロセスの終了ステータスが、それ以外の場合は状態が変化する原因と\n"
4818 "なったシグナル番号が格納される。\n"
4819 "I<si_utime> と I<si_stime> には子プロセスが使用したユーザ CPU 時間とシ\n"
4820 "ステム CPU 時間がそれぞれ格納される。(B<getrusage>(2) や B<time>(2) と\n"
4821 "異なり) これらのフィールドには wait 待ちの子プロセスにより使用された時\n"
4822 "間は含まれない。 2.6 より前と 2.6.27 以降のカーネルでは、 これらのフィー\n"
4823 "ルドに格納される CPU 時間の単位は I<sysconf(_SC_CLK_TCK)> である。\n"
4824 "2.6.27 より前の 2.6 系のカーネルでは、バグがあり、 これらのフィールドの\n"
4825 "CPU 時間の単位が (カーネルのコンフィグで指定される) システムの jiffy で\n"
4826 "あった (B<time>(7) 参照)。"
4827
4828 #.  FIXME SIGTRAP also sets the following for ptrace_notify() ?
4829 #.      info.si_code = exit_code;
4830 #.      info.si_pid = task_pid_vnr(current);
4831 #.      info.si_uid = current_uid();  /* Real UID */
4832 #. type: Plain text
4833 #: build/C/man2/sigaction.2:427
4834 msgid ""
4835 "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, and B<SIGTRAP> fill in "
4836 "I<si_addr> with the address of the fault.  On some architectures, these "
4837 "signals also fill in the I<si_trapno> filed.  Some suberrors of B<SIGBUS>, "
4838 "in particular B<BUS_MCEERR_AO> and B<BUS_MCEERR_AR>, also fill in "
4839 "I<si_addr_lsb>.  This field indicates the least significant bit of the "
4840 "reported address and therefore the extent of the corruption.  For example, "
4841 "if a full page was corrupted, I<si_addr_lsb> contains I<log2(sysconf"
4842 "(_SC_PAGESIZE))>.  B<BUS_MCERR_*> and I<si_addr_lsb> are Linux-specific "
4843 "extensions."
4844 msgstr ""
4845
4846 #. type: Plain text
4847 #: build/C/man2/sigaction.2:441
4848 msgid ""
4849 "B<SIGIO>/B<SIGPOLL> (the two names are synonyms on Linux)  fills in "
4850 "I<si_band> and I<si_fd>.  The I<si_band> event is a bit mask containing the "
4851 "same values as are filled in the I<revents> field by B<poll>(2).  The "
4852 "I<si_fd> field indicates the file descriptor for which the I/O event "
4853 "occurred."
4854 msgstr ""
4855
4856 #. type: Plain text
4857 #: build/C/man2/sigaction.2:448
4858 msgid ""
4859 "I<si_code> is a value (not a bit mask)  indicating why this signal was "
4860 "sent.  The following list shows the values which can be placed in I<si_code> "
4861 "for any signal, along with reason that the signal was generated."
4862 msgstr ""
4863 "I<si_code> は、そのシグナルが送信された理由を示す値である (ビットマスクではな"
4864 "い)。 以下のリストに、どのシグナルの場合でも I<si_code> に入りうる値を、シグ"
4865 "ナルが生成された理由とともに記載する。"
4866
4867 #. type: TP
4868 #: build/C/man2/sigaction.2:449
4869 #, no-wrap
4870 msgid "B<SI_USER>"
4871 msgstr "B<SI_USER>"
4872
4873 #. type: TP
4874 #: build/C/man2/sigaction.2:452 build/C/man7/signal.7:111
4875 #, no-wrap
4876 msgid "B<kill>(2)"
4877 msgstr "B<kill>(2)"
4878
4879 #. type: TP
4880 #: build/C/man2/sigaction.2:452
4881 #, no-wrap
4882 msgid "B<SI_KERNEL>"
4883 msgstr "B<SI_KERNEL>"
4884
4885 #. type: Plain text
4886 #: build/C/man2/sigaction.2:455
4887 msgid "Sent by the kernel."
4888 msgstr "カーネルにより送信された"
4889
4890 #. type: TP
4891 #: build/C/man2/sigaction.2:455
4892 #, no-wrap
4893 msgid "B<SI_QUEUE>"
4894 msgstr "B<SI_QUEUE>"
4895
4896 #. type: TP
4897 #: build/C/man2/sigaction.2:458 build/C/man7/signal.7:128
4898 #, no-wrap
4899 msgid "B<sigqueue>(3)"
4900 msgstr "B<sigqueue>(3)"
4901
4902 #. type: TP
4903 #: build/C/man2/sigaction.2:458
4904 #, no-wrap
4905 msgid "B<SI_TIMER>"
4906 msgstr "B<SI_TIMER>"
4907
4908 #. type: Plain text
4909 #: build/C/man2/sigaction.2:461
4910 msgid "POSIX timer expired"
4911 msgstr "POSIX タイマが満了した"
4912
4913 #. type: TP
4914 #: build/C/man2/sigaction.2:461
4915 #, no-wrap
4916 msgid "B<SI_MESGQ>"
4917 msgstr "B<SI_MESGQ>"
4918
4919 #. type: Plain text
4920 #: build/C/man2/sigaction.2:465
4921 msgid ""
4922 "POSIX message queue state changed (since Linux 2.6.6); see B<mq_notify>(3)"
4923 msgstr ""
4924 "POSIX メッセージキューの状態が変化した (Linux 2.6.6 以降)。 B<mq_notify>(3)B<"
4925 "参照。>"
4926
4927 #. type: TP
4928 #: build/C/man2/sigaction.2:465
4929 #, no-wrap
4930 msgid "B<SI_ASYNCIO>"
4931 msgstr "B<SI_ASYNCIO>"
4932
4933 #. type: Plain text
4934 #: build/C/man2/sigaction.2:468
4935 msgid "AIO completed"
4936 msgstr "非同期 IO (AIO) が完了した"
4937
4938 #. type: TP
4939 #: build/C/man2/sigaction.2:468
4940 #, no-wrap
4941 msgid "B<SI_SIGIO>"
4942 msgstr "B<SI_SIGIO>"
4943
4944 #. type: Plain text
4945 #: build/C/man2/sigaction.2:477
4946 msgid ""
4947 "Queued B<SIGIO> (only in kernels up to Linux 2.2; from Linux 2.4 onward "
4948 "B<SIGIO>/B<SIGPOLL> fills in I<si_code> as described below)."
4949 msgstr ""
4950
4951 #. type: TP
4952 #: build/C/man2/sigaction.2:477
4953 #, no-wrap
4954 msgid "B<SI_TKILL>"
4955 msgstr "B<SI_TKILL>"
4956
4957 #.  SI_DETHREAD is defined in 2.6.9 sources, but isn't implemented
4958 #.  It appears to have been an idea that was tried during 2.5.6
4959 #.  through to 2.5.24 and then was backed out.
4960 #. type: Plain text
4961 #: build/C/man2/sigaction.2:486
4962 msgid "B<tkill>(2)  or B<tgkill>(2)  (since Linux 2.4.19)"
4963 msgstr "B<tkill>(2)  または B<tgkill>(2)  (Linux 2.4.19 以降)"
4964
4965 #. type: Plain text
4966 #: build/C/man2/sigaction.2:493
4967 msgid ""
4968 "The following values can be placed in I<si_code> for a B<SIGILL> signal:"
4969 msgstr "B<SIGILL> シグナルの場合、 I<si_code> には以下の値を指定できる:"
4970
4971 #. type: TP
4972 #: build/C/man2/sigaction.2:494
4973 #, no-wrap
4974 msgid "B<ILL_ILLOPC>"
4975 msgstr "B<ILL_ILLOPC>"
4976
4977 #. type: Plain text
4978 #: build/C/man2/sigaction.2:497
4979 msgid "illegal opcode"
4980 msgstr "不正な命令コード (opcode)"
4981
4982 #. type: TP
4983 #: build/C/man2/sigaction.2:497
4984 #, no-wrap
4985 msgid "B<ILL_ILLOPN>"
4986 msgstr "B<ILL_ILLOPN>"
4987
4988 #. type: Plain text
4989 #: build/C/man2/sigaction.2:500
4990 msgid "illegal operand"
4991 msgstr "不正なオペランド"
4992
4993 #. type: TP
4994 #: build/C/man2/sigaction.2:500
4995 #, no-wrap
4996 msgid "B<ILL_ILLADR>"
4997 msgstr "B<ILL_ILLADR>"
4998
4999 #. type: Plain text
5000 #: build/C/man2/sigaction.2:503
5001 msgid "illegal addressing mode"
5002 msgstr "不正なアドレッシングモード"
5003
5004 #. type: TP
5005 #: build/C/man2/sigaction.2:503
5006 #, no-wrap
5007 msgid "B<ILL_ILLTRP>"
5008 msgstr "B<ILL_ILLTRP>"
5009
5010 #. type: Plain text
5011 #: build/C/man2/sigaction.2:506
5012 msgid "illegal trap"
5013 msgstr "不正なトラップ"
5014
5015 #. type: TP
5016 #: build/C/man2/sigaction.2:506
5017 #, no-wrap
5018 msgid "B<ILL_PRVOPC>"
5019 msgstr "B<ILL_PRVOPC>"
5020
5021 #. type: Plain text
5022 #: build/C/man2/sigaction.2:509
5023 msgid "privileged opcode"
5024 msgstr "特権が必要な命令コード (opcode)"
5025
5026 #. type: TP
5027 #: build/C/man2/sigaction.2:509
5028 #, no-wrap
5029 msgid "B<ILL_PRVREG>"
5030 msgstr "B<ILL_PRVREG>"
5031
5032 #. type: Plain text
5033 #: build/C/man2/sigaction.2:512
5034 msgid "privileged register"
5035 msgstr "特権が必要なレジスタ"
5036
5037 #. type: TP
5038 #: build/C/man2/sigaction.2:512
5039 #, no-wrap
5040 msgid "B<ILL_COPROC>"
5041 msgstr "B<ILL_COPROC>"
5042
5043 #. type: Plain text
5044 #: build/C/man2/sigaction.2:515
5045 msgid "coprocessor error"
5046 msgstr "コプロセッサのエラー"
5047
5048 #. type: TP
5049 #: build/C/man2/sigaction.2:515
5050 #, no-wrap
5051 msgid "B<ILL_BADSTK>"
5052 msgstr "B<ILL_BADSTK>"
5053
5054 #. type: Plain text
5055 #: build/C/man2/sigaction.2:518
5056 msgid "internal stack error"
5057 msgstr "内部スタックエラー"
5058
5059 #. type: Plain text
5060 #: build/C/man2/sigaction.2:525
5061 msgid ""
5062 "The following values can be placed in I<si_code> for a B<SIGFPE> signal:"
5063 msgstr "B<SIGFPE> シグナルの場合、 I<si_code> には以下の値を指定できる:"
5064
5065 #. type: TP
5066 #: build/C/man2/sigaction.2:526
5067 #, no-wrap
5068 msgid "B<FPE_INTDIV>"
5069 msgstr "B<FPE_INTDIV>"
5070
5071 #. type: Plain text
5072 #: build/C/man2/sigaction.2:529
5073 msgid "integer divide by zero"
5074 msgstr "整数の 0 による除算"
5075
5076 #. type: TP
5077 #: build/C/man2/sigaction.2:529
5078 #, no-wrap
5079 msgid "B<FPE_INTOVF>"
5080 msgstr "B<FPE_INTOVF>"
5081
5082 #. type: Plain text
5083 #: build/C/man2/sigaction.2:532
5084 msgid "integer overflow"
5085 msgstr "整数のオーバーフロー"
5086
5087 #. type: TP
5088 #: build/C/man2/sigaction.2:532
5089 #, no-wrap
5090 msgid "B<FPE_FLTDIV>"
5091 msgstr "B<FPE_FLTDIV>"
5092
5093 #. type: Plain text
5094 #: build/C/man2/sigaction.2:535
5095 msgid "floating-point divide by zero"
5096 msgstr "浮動小数点の 0 による除算"
5097
5098 #. type: TP
5099 #: build/C/man2/sigaction.2:535
5100 #, no-wrap
5101 msgid "B<FPE_FLTOVF>"
5102 msgstr "B<FPE_FLTOVF>"
5103
5104 #. type: Plain text
5105 #: build/C/man2/sigaction.2:538
5106 msgid "floating-point overflow"
5107 msgstr "浮動小数点のオーバーフロー"
5108
5109 #. type: TP
5110 #: build/C/man2/sigaction.2:538
5111 #, no-wrap
5112 msgid "B<FPE_FLTUND>"
5113 msgstr "B<FPE_FLTUND>"
5114
5115 #. type: Plain text
5116 #: build/C/man2/sigaction.2:541
5117 msgid "floating-point underflow"
5118 msgstr "浮動小数点のアンダーフロー"
5119
5120 #. type: TP
5121 #: build/C/man2/sigaction.2:541
5122 #, no-wrap
5123 msgid "B<FPE_FLTRES>"
5124 msgstr "B<FPE_FLTRES>"
5125
5126 #. type: Plain text
5127 #: build/C/man2/sigaction.2:544
5128 msgid "floating-point inexact result"
5129 msgstr "浮動小数点の不正確な演算結果 (inexact result)"
5130
5131 #. type: TP
5132 #: build/C/man2/sigaction.2:544
5133 #, no-wrap
5134 msgid "B<FPE_FLTINV>"
5135 msgstr "B<FPE_FLTINV>"
5136
5137 #. type: Plain text
5138 #: build/C/man2/sigaction.2:547
5139 msgid "floating-point invalid operation"
5140 msgstr "浮動小数点の不正な操作"
5141
5142 #. type: TP
5143 #: build/C/man2/sigaction.2:547
5144 #, no-wrap
5145 msgid "B<FPE_FLTSUB>"
5146 msgstr "B<FPE_FLTSUB>"
5147
5148 #. type: Plain text
5149 #: build/C/man2/sigaction.2:550
5150 msgid "subscript out of range"
5151 msgstr "範囲外の添字 (subscript)"
5152
5153 #. type: Plain text
5154 #: build/C/man2/sigaction.2:557
5155 msgid ""
5156 "The following values can be placed in I<si_code> for a B<SIGSEGV> signal:"
5157 msgstr "B<SIGSEGV> シグナルの場合、 I<si_code> には以下の値を指定できる:"
5158
5159 #. type: TP
5160 #: build/C/man2/sigaction.2:558
5161 #, no-wrap
5162 msgid "B<SEGV_MAPERR>"
5163 msgstr "B<SEGV_MAPERR>"
5164
5165 #. type: Plain text
5166 #: build/C/man2/sigaction.2:561
5167 msgid "address not mapped to object"
5168 msgstr "オブジェクトにマッピングされていないアドレス"
5169
5170 #. type: TP
5171 #: build/C/man2/sigaction.2:561
5172 #, no-wrap
5173 msgid "B<SEGV_ACCERR>"
5174 msgstr "B<SEGV_ACCERR>"
5175
5176 #. type: Plain text
5177 #: build/C/man2/sigaction.2:564
5178 msgid "invalid permissions for mapped object"
5179 msgstr "マッピングされたオブジェクトに対するアクセス許可がない"
5180
5181 #. type: Plain text
5182 #: build/C/man2/sigaction.2:571
5183 msgid ""
5184 "The following values can be placed in I<si_code> for a B<SIGBUS> signal:"
5185 msgstr "B<SIGBUS> シグナルの場合、 I<si_code> には以下の値を指定できる:"
5186
5187 #. type: TP
5188 #: build/C/man2/sigaction.2:572
5189 #, no-wrap
5190 msgid "B<BUS_ADRALN>"
5191 msgstr "B<BUS_ADRALN>"
5192
5193 #. type: Plain text
5194 #: build/C/man2/sigaction.2:575
5195 msgid "invalid address alignment"
5196 msgstr "不正なアドレス・アライメント (alignment)"
5197
5198 #. type: TP
5199 #: build/C/man2/sigaction.2:575
5200 #, no-wrap
5201 msgid "B<BUS_ADRERR>"
5202 msgstr "B<BUS_ADRERR>"
5203
5204 #. type: Plain text
5205 #: build/C/man2/sigaction.2:578
5206 msgid "nonexistent physical address"
5207 msgstr "存在しない物理アドレス"
5208
5209 #. type: TP
5210 #: build/C/man2/sigaction.2:578
5211 #, no-wrap
5212 msgid "B<BUS_OBJERR>"
5213 msgstr "B<BUS_OBJERR>"
5214
5215 #. type: Plain text
5216 #: build/C/man2/sigaction.2:581
5217 msgid "object-specific hardware error"
5218 msgstr "オブジェクト固有のハードウェアエラー"
5219
5220 #. type: TP
5221 #: build/C/man2/sigaction.2:581
5222 #, no-wrap
5223 msgid "B<BUS_MCEERR_AR> (since Linux 2.6.32)"
5224 msgstr "B<BUS_MCEERR_AR> (Linux 2.6.32 以降)"
5225
5226 #. type: Plain text
5227 #: build/C/man2/sigaction.2:584
5228 msgid "Hardware memory error consumed on a machine check; action required."
5229 msgstr ""
5230
5231 #. type: TP
5232 #: build/C/man2/sigaction.2:584
5233 #, no-wrap
5234 msgid "B<BUS_MCEERR_AO> (since Linux 2.6.32)"
5235 msgstr "B<BUS_MCEERR_AO> (Linux 2.6.32  以降)"
5236
5237 #. type: Plain text
5238 #: build/C/man2/sigaction.2:587
5239 msgid ""
5240 "Hardware memory error detected in process but not consumed; action optional."
5241 msgstr ""
5242
5243 #. type: Plain text
5244 #: build/C/man2/sigaction.2:594
5245 msgid ""
5246 "The following values can be placed in I<si_code> for a B<SIGTRAP> signal:"
5247 msgstr "B<SIGTRAP> シグナルの場合、 I<si_code> には以下の値を指定できる:"
5248
5249 #. type: TP
5250 #: build/C/man2/sigaction.2:595
5251 #, no-wrap
5252 msgid "B<TRAP_BRKPT>"
5253 msgstr "B<TRAP_BRKPT>"
5254
5255 #. type: Plain text
5256 #: build/C/man2/sigaction.2:598
5257 msgid "process breakpoint"
5258 msgstr "プロセスのブレークポイント"
5259
5260 #. type: TP
5261 #: build/C/man2/sigaction.2:598
5262 #, no-wrap
5263 msgid "B<TRAP_TRACE>"
5264 msgstr "B<TRAP_TRACE>"
5265
5266 #. type: Plain text
5267 #: build/C/man2/sigaction.2:601
5268 msgid "process trace trap"
5269 msgstr "プロセスのトレース・トラップ"
5270
5271 #. type: TP
5272 #: build/C/man2/sigaction.2:601
5273 #, no-wrap
5274 msgid "B<TRAP_BRANCH> (since Linux 2.4)"
5275 msgstr "B<TRAP_BRANCH> (Linux 2.4 以降)"
5276
5277 #. type: Plain text
5278 #: build/C/man2/sigaction.2:604
5279 msgid "process taken branch trap"
5280 msgstr ""
5281
5282 #. type: TP
5283 #: build/C/man2/sigaction.2:604
5284 #, no-wrap
5285 msgid "B<TRAP_HWBKPT> (since Linux 2.4)"
5286 msgstr "B<TRAP_HWBKPT> (Linux 2.4 以降)"
5287
5288 #. type: Plain text
5289 #: build/C/man2/sigaction.2:607
5290 msgid "hardware breakpoint/watchpoint"
5291 msgstr ""
5292
5293 #. type: Plain text
5294 #: build/C/man2/sigaction.2:614
5295 msgid ""
5296 "The following values can be placed in I<si_code> for a B<SIGCHLD> signal:"
5297 msgstr "B<SIGCHLD> シグナルの場合、 I<si_code> には以下の値を指定できる:"
5298
5299 #. type: TP
5300 #: build/C/man2/sigaction.2:615
5301 #, no-wrap
5302 msgid "B<CLD_EXITED>"
5303 msgstr "B<CLD_EXITED>"
5304
5305 #. type: Plain text
5306 #: build/C/man2/sigaction.2:618
5307 msgid "child has exited"
5308 msgstr "子プロセスが終了した (exited)"
5309
5310 #. type: TP
5311 #: build/C/man2/sigaction.2:618
5312 #, no-wrap
5313 msgid "B<CLD_KILLED>"
5314 msgstr "B<CLD_KILLED>"
5315
5316 #. type: Plain text
5317 #: build/C/man2/sigaction.2:621
5318 msgid "child was killed"
5319 msgstr "子プロセスが kill された"
5320
5321 #. type: TP
5322 #: build/C/man2/sigaction.2:621
5323 #, no-wrap
5324 msgid "B<CLD_DUMPED>"
5325 msgstr "B<CLD_DUMPED>"
5326
5327 #. type: Plain text
5328 #: build/C/man2/sigaction.2:624
5329 msgid "child terminated abnormally"
5330 msgstr "子プロセスが異常終了した"
5331
5332 #. type: TP
5333 #: build/C/man2/sigaction.2:624
5334 #, no-wrap
5335 msgid "B<CLD_TRAPPED>"
5336 msgstr "B<CLD_TRAPPED>"
5337
5338 #. type: Plain text
5339 #: build/C/man2/sigaction.2:627
5340 msgid "traced child has trapped"
5341 msgstr "トレース対象の子プロセスがトラップを上げた"
5342
5343 #. type: TP
5344 #: build/C/man2/sigaction.2:627
5345 #, no-wrap
5346 msgid "B<CLD_STOPPED>"
5347 msgstr "B<CLD_STOPPED>"
5348
5349 #. type: Plain text
5350 #: build/C/man2/sigaction.2:630
5351 msgid "child has stopped"
5352 msgstr "子プロセスが停止 (stop) した"
5353
5354 #. type: TP
5355 #: build/C/man2/sigaction.2:630
5356 #, no-wrap
5357 msgid "B<CLD_CONTINUED>"
5358 msgstr "B<CLD_CONTINUED>"
5359
5360 #. type: Plain text
5361 #: build/C/man2/sigaction.2:633
5362 msgid "stopped child has continued (since Linux 2.6.9)"
5363 msgstr "停止していた子プロセスが再開した (Linux 2.6.9 以降)"
5364
5365 #. type: Plain text
5366 #: build/C/man2/sigaction.2:640
5367 msgid ""
5368 "The following values can be placed in I<si_code> for a B<SIGIO>/B<SIGPOLL> "
5369 "signal:"
5370 msgstr ""
5371 "B<SIGIO>/B<SIGPOLL> シグナルの場合、 I<si_code> には以下の値を\n"
5372 "指定できる:"
5373
5374 #. type: TP
5375 #: build/C/man2/sigaction.2:641
5376 #, no-wrap
5377 msgid "B<POLL_IN>"
5378 msgstr "B<POLL_IN>"
5379
5380 #. type: Plain text
5381 #: build/C/man2/sigaction.2:644
5382 msgid "data input available"
5383 msgstr "入力データが利用可能"
5384
5385 #. type: TP
5386 #: build/C/man2/sigaction.2:644
5387 #, no-wrap
5388 msgid "B<POLL_OUT>"
5389 msgstr "B<POLL_OUT>"
5390
5391 #. type: Plain text
5392 #: build/C/man2/sigaction.2:647
5393 msgid "output buffers available"
5394 msgstr "出力バッファが利用可能"
5395
5396 #. type: TP
5397 #: build/C/man2/sigaction.2:647
5398 #, no-wrap
5399 msgid "B<POLL_MSG>"
5400 msgstr "B<POLL_MSG>"
5401
5402 #. type: Plain text
5403 #: build/C/man2/sigaction.2:650
5404 msgid "input message available"
5405 msgstr "入力メッセージが利用可能"
5406
5407 #. type: TP
5408 #: build/C/man2/sigaction.2:650
5409 #, no-wrap
5410 msgid "B<POLL_ERR>"
5411 msgstr "B<POLL_ERR>"
5412
5413 #. type: Plain text
5414 #: build/C/man2/sigaction.2:653
5415 msgid "I/O error"
5416 msgstr "I/O エラー"
5417
5418 #. type: TP
5419 #: build/C/man2/sigaction.2:653
5420 #, no-wrap
5421 msgid "B<POLL_PRI>"
5422 msgstr "B<POLL_PRI>"
5423
5424 #. type: Plain text
5425 #: build/C/man2/sigaction.2:656
5426 msgid "high priority input available"
5427 msgstr "高優先の入力が利用可能"
5428
5429 #. type: TP
5430 #: build/C/man2/sigaction.2:656
5431 #, no-wrap
5432 msgid "B<POLL_HUP>"
5433 msgstr "B<POLL_HUP>"
5434
5435 #. type: Plain text
5436 #: build/C/man2/sigaction.2:659
5437 msgid "device disconnected"
5438 msgstr "デバイスが接続されていない"
5439
5440 #. type: Plain text
5441 #: build/C/man2/sigaction.2:663
5442 msgid "B<sigaction>()  returns 0 on success and -1 on error."
5443 msgstr "B<sigaction>()  は成功すれば 0 を返し、エラーならば -1 を返す。"
5444
5445 #. type: Plain text
5446 #: build/C/man2/sigaction.2:668
5447 msgid ""
5448 "I<act> or I<oldact> points to memory which is not a valid part of the "
5449 "process address space."
5450 msgstr ""
5451 "I<act> か I<oldact> が指しているメモリが正しいプロセスのアドレス空間にない。"
5452
5453 #. type: Plain text
5454 #: build/C/man2/sigaction.2:675
5455 msgid ""
5456 "An invalid signal was specified.  This will also be generated if an attempt "
5457 "is made to change the action for B<SIGKILL> or B<SIGSTOP>, which cannot be "
5458 "caught or ignored."
5459 msgstr ""
5460 "無効なシグナルが指定された。補足 (catch) したり無視したりできない シグナルで"
5461 "ある B<SIGKILL> や B<SIGSTOP> に対する動作を変更しようとした場合にも発生す"
5462 "る。"
5463
5464 #.  SVr4 does not document the EINTR condition.
5465 #. type: Plain text
5466 #: build/C/man2/sigaction.2:678
5467 msgid "POSIX.1-2001, SVr4."
5468 msgstr "POSIX.1-2001, SVr4."
5469
5470 #. type: Plain text
5471 #: build/C/man2/sigaction.2:686 build/C/man7/signal.7:105
5472 msgid ""
5473 "A child created via B<fork>(2)  inherits a copy of its parent's signal "
5474 "dispositions.  During an B<execve>(2), the dispositions of handled signals "
5475 "are reset to the default; the dispositions of ignored signals are left "
5476 "unchanged."
5477 msgstr ""
5478 "B<fork>(2) 経由で作成された子プロセスは、親プロセスのシグナルの処理方法の コ"
5479 "ピーを継承する。\n"
5480 "B<execve>(2) の前後で、ハンドラが設定されているシグナルの処理方法はデフォルト"
5481 "にリセットされ、\n"
5482 "無視が設定されているシグナルの処理方法は変更されずそのままとなる。"
5483
5484 #. type: Plain text
5485 #: build/C/man2/sigaction.2:704 build/C/man2/signal.2:131
5486 msgid ""
5487 "According to POSIX, the behavior of a process is undefined after it ignores "
5488 "a B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> signal that was not generated by "
5489 "B<kill>(2)  or B<raise>(3).  Integer division by zero has undefined result.  "
5490 "On some architectures it will generate a B<SIGFPE> signal.  (Also dividing "
5491 "the most negative integer by -1 may generate B<SIGFPE>.)  Ignoring this "
5492 "signal might lead to an endless loop."
5493 msgstr ""
5494 "POSIX では、 B<kill>(2)  や B<raise>(3)  で生成できないシグナル B<SIGFPE>, "
5495 "B<SIGILL>, B<SIGSEGV> を無視 (ignore) した場合、その後の動作は未定義である。 "
5496 "ゼロによる整数割り算の結果は未定義となる。 アーキテクチャーによっては、このと"
5497 "き B<SIGFPE> シグナルが生成される。 (同様に負の最大整数を -1 で割ると "
5498 "B<SIGFPE> が生成されるかもしれない)  このシグナルを無視すると無限ループに陥る"
5499 "かもしれない。"
5500
5501 #. type: Plain text
5502 #: build/C/man2/sigaction.2:721
5503 msgid ""
5504 "POSIX.1-1990 disallowed setting the action for B<SIGCHLD> to B<SIG_IGN>.  "
5505 "POSIX.1-2001 allows this possibility, so that ignoring B<SIGCHLD> can be "
5506 "used to prevent the creation of zombies (see B<wait>(2)).  Nevertheless, the "
5507 "historical BSD and System V behaviors for ignoring B<SIGCHLD> differ, so "
5508 "that the only completely portable method of ensuring that terminated "
5509 "children do not become zombies is to catch the B<SIGCHLD> signal and perform "
5510 "a B<wait>(2)  or similar."
5511 msgstr ""
5512 "POSIX.1-1990 では B<SIGCHLD> に B<SIG_IGN> を設定することを認めていない。 "
5513 "POSIX.1-2001 では認められており、 B<SIGCHLD> を無視することでゾンビプロセスの"
5514 "生成を防止することができる (B<wait>(2)  を参照)。 さらに、BSD と SystemV で"
5515 "は B<SIGCHLD> を無視した際の動作が異なっている。 そのため、完全に移植性がある"
5516 "方法で、終了した子プロセスがゾンビにならないこと を保証するには、 B<SIGCHLD> "
5517 "シグナルを補足し、 B<wait>(2)  などを実行するしかない。"
5518
5519 #. type: Plain text
5520 #: build/C/man2/sigaction.2:734
5521 #, fuzzy
5522 #| msgid ""
5523 #| "POSIX.1-1990 only specified B<SA_NOCLDSTOP>.  POSIX.1-2001 added "
5524 #| "B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>, and B<SA_SIGINFO>.  Use "
5525 #| "of these latter values in I<sa_flags> may be less portable in "
5526 #| "applications intended for older UNIX implementations."
5527 msgid ""
5528 "POSIX.1-1990 specified only B<SA_NOCLDSTOP>.  POSIX.1-2001 added "
5529 "B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>, and B<SA_SIGINFO>.  Use of "
5530 "these latter values in I<sa_flags> may be less portable in applications "
5531 "intended for older UNIX implementations."
5532 msgstr ""
5533 "POSIX.1-1990 の仕様では B<SA_NOCLDSTOP> のみが定義されている。\n"
5534 "POSIX.1-2001 では B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>,\n"
5535 "B<SA_SIGINFO> が追加された。 UNIX の古い実装で動かすアプリケーションで、\n"
5536 "他の I<sa_flags> フラグを使用すると移植性が下がる。"
5537
5538 #. type: Plain text
5539 #: build/C/man2/sigaction.2:738
5540 msgid ""
5541 "The B<SA_RESETHAND> flag is compatible with the SVr4 flag of the same name."
5542 msgstr "B<SA_RESETHAND> フラグは SVr4 の同じ名前のフラグと互換性がある。"
5543
5544 #. type: Plain text
5545 #: build/C/man2/sigaction.2:748
5546 msgid ""
5547 "The B<SA_NODEFER> flag is compatible with the SVr4 flag of the same name "
5548 "under kernels 1.3.9 and newer.  On older kernels the Linux implementation "
5549 "allowed the receipt of any signal, not just the one we are installing "
5550 "(effectively overriding any I<sa_mask> settings)."
5551 msgstr ""
5552 "B<SA_NODEFER> フラグは 1.3.9 以降のカーネルでは同じ名前の SVr4 のフラグと互換"
5553 "性がある。 ぞれ以前の Linux カーネルの実装では、このフラグを設定しているシグ"
5554 "ナル だけでなく、どのシグナルでも受けることを許していた (実際には I<sa_mask> "
5555 "の設定により無効にできる)。"
5556
5557 #. type: Plain text
5558 #: build/C/man2/sigaction.2:754
5559 msgid ""
5560 "B<sigaction>()  can be called with a NULL second argument to query the "
5561 "current signal handler.  It can also be used to check whether a given signal "
5562 "is valid for the current machine by calling it with NULL second and third "
5563 "arguments."
5564 msgstr ""
5565 "B<sigaction>()  の二番目の引き数に NULL を指定して呼び出すと、現在のシグナル"
5566 "ハンドラを確認する ことができる。また、二番目と三番目の引き数を NULL にて呼び"
5567 "出すことで、 指定されたシグナルが現在のマシンで使えるかどうかチェックできる。"
5568
5569 #. type: Plain text
5570 #: build/C/man2/sigaction.2:760
5571 msgid ""
5572 "It is not possible to block B<SIGKILL> or B<SIGSTOP> (by specifying them in "
5573 "I<sa_mask>).  Attempts to do so are silently ignored."
5574 msgstr ""
5575 "B<SIGKILL> や B<SIGSTOP> を (I<sa_mask> に指定して) 禁止することはできない。 "
5576 "禁止しようとしても黙って無視される。"
5577
5578 #. type: Plain text
5579 #: build/C/man2/sigaction.2:764 build/C/man2/sigpending.2:67
5580 #: build/C/man2/sigprocmask.2:141 build/C/man2/sigsuspend.2:106
5581 msgid "See B<sigsetops>(3)  for details on manipulating signal sets."
5582 msgstr "シグナル集合の操作に関する詳細は B<sigsetops>(3)  を参照のこと。"
5583
5584 #. type: Plain text
5585 #: build/C/man2/sigaction.2:769
5586 msgid ""
5587 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
5588 "safely called inside from inside a signal handler."
5589 msgstr ""
5590 "シグナルハンドラ内から安全に呼び出すことができる、 async-signal-safe "
5591 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
5592 "照。"
5593
5594 #. type: SS
5595 #: build/C/man2/sigaction.2:769
5596 #, no-wrap
5597 msgid "Undocumented"
5598 msgstr "非公式"
5599
5600 #. type: Plain text
5601 #: build/C/man2/sigaction.2:779
5602 msgid ""
5603 "Before the introduction of B<SA_SIGINFO> it was also possible to get some "
5604 "additional information, namely by using a I<sa_handler> with second argument "
5605 "of type I<struct sigcontext>.  See the relevant Linux kernel sources for "
5606 "details.  This use is obsolete now."
5607 msgstr ""
5608 "B<SA_SIGINFO> が導入される前は、 I<struct sigcontext> 型の二番目の引き数と一"
5609 "緒に I<sa_handler> を使用することで、 いくつかの追加の情報を入手することがで"
5610 "きた。 詳細については Linux カーネルソースの関連部分を見てほしい。 現在はこの"
5611 "使用法は廃止されている。"
5612
5613 #. type: Plain text
5614 #: build/C/man2/sigaction.2:788
5615 msgid ""
5616 "In kernels up to and including 2.6.13, specifying B<SA_NODEFER> in "
5617 "I<sa_flags> prevents not only the delivered signal from being masked during "
5618 "execution of the handler, but also the signals specified in I<sa_mask>.  "
5619 "This bug was fixed in kernel 2.6.14."
5620 msgstr ""
5621 "2.6.13 以前のカーネルでは、 I<sa_flags> に B<SA_NODEFER> を指定した場合、 ハ"
5622 "ンドラが実行中に配送されたシグナル自身がマスクされなくなるだけでなく、 "
5623 "I<sa_mask> に指定されたシグナルもマスクされなくなる。 このバグは、カーネル "
5624 "2.6.14 で修正された。"
5625
5626 #. type: Plain text
5627 #: build/C/man2/sigaction.2:791
5628 msgid "See B<mprotect>(2)."
5629 msgstr "B<mprotect>(2)  参照。"
5630
5631 #. type: Plain text
5632 #: build/C/man2/sigaction.2:810
5633 msgid ""
5634 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaltstack>(2), "
5635 "B<signal>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
5636 "B<sigsuspend>(2), B<wait>(2), B<raise>(3), B<siginterrupt>(3), B<sigqueue>"
5637 "(3), B<sigsetops>(3), B<sigvec>(3), B<core>(5), B<signal>(7)"
5638 msgstr ""
5639 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaltstack>(2),\n"
5640 "B<signal>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2),\n"
5641 "B<sigsuspend>(2), B<wait>(2), B<raise>(3), B<siginterrupt>(3),\n"
5642 "B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), B<core>(5),\n"
5643 "B<signal>(7)"
5644
5645 #. type: TH
5646 #: build/C/man2/sigaltstack.2:27
5647 #, no-wrap
5648 msgid "SIGALTSTACK"
5649 msgstr "SIGALTSTACK"
5650
5651 #. type: TH
5652 #: build/C/man2/sigaltstack.2:27
5653 #, no-wrap
5654 msgid "2010-09-26"
5655 msgstr "2010-09-26"
5656
5657 #. type: Plain text
5658 #: build/C/man2/sigaltstack.2:30
5659 msgid "sigaltstack - set and/or get signal stack context"
5660 msgstr "sigaltstack - シグナルスタックのコンテキストを設定・取得する"
5661
5662 #. type: Plain text
5663 #: build/C/man2/sigaltstack.2:34
5664 msgid "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
5665 msgstr "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
5666
5667 #. type: Plain text
5668 #: build/C/man2/sigaltstack.2:41
5669 msgid "B<sigaltstack>():"
5670 msgstr "B<sigaltstack>():"
5671
5672 #. type: Plain text
5673 #: build/C/man2/sigaltstack.2:48 build/C/man3/siginterrupt.3:53
5674 #: build/C/man2/wait.2:78
5675 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
5676 msgstr "|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
5677
5678 #. type: Plain text
5679 #: build/C/man2/sigaltstack.2:60
5680 msgid ""
5681 "B<sigaltstack>()  allows a process to define a new alternate signal stack "
5682 "and/or retrieve the state of an existing alternate signal stack.  An "
5683 "alternate signal stack is used during the execution of a signal handler if "
5684 "the establishment of that handler (see B<sigaction>(2))  requested it."
5685 msgstr ""
5686 "B<sigaltstack>()  を使うと、 プロセスは新しい代替シグナルスタックを定義した"
5687 "り、 既存の代替シグナルスタックの状態を取得できる。 シグナルハンドラが代替シ"
5688 "グナルスタックを要求するように設定されていると (B<sigaction>(2)  参照)、ハン"
5689 "ドラの実行中はそのシグナルスタックが使われる。"
5690
5691 #. type: Plain text
5692 #: build/C/man2/sigaltstack.2:63
5693 msgid ""
5694 "The normal sequence of events for using an alternate signal stack is the "
5695 "following:"
5696 msgstr "代替シグナルスタックを使う際の一般的な手順は、以下の通りである:"
5697
5698 #. type: IP
5699 #: build/C/man2/sigaltstack.2:63 build/C/man7/signal.7:387
5700 #, no-wrap
5701 msgid "1."
5702 msgstr "1."
5703
5704 #. type: Plain text
5705 #: build/C/man2/sigaltstack.2:67
5706 msgid "Allocate an area of memory to be used for the alternate signal stack."
5707 msgstr "代替シグナルスタックで使うメモリ領域を確保する。"
5708
5709 #. type: IP
5710 #: build/C/man2/sigaltstack.2:67 build/C/man7/signal.7:391
5711 #, no-wrap
5712 msgid "2."
5713 msgstr "2."
5714
5715 #. type: Plain text
5716 #: build/C/man2/sigaltstack.2:73
5717 msgid ""
5718 "Use B<sigaltstack>()  to inform the system of the existence and location of "
5719 "the alternate signal stack."
5720 msgstr ""
5721 "B<sigaltstack>()  を使って、 代替シグナルスタックの存在と場所をシステムに知ら"
5722 "せる。"
5723
5724 #. type: IP
5725 #: build/C/man2/sigaltstack.2:73 build/C/man7/signal.7:411
5726 #, no-wrap
5727 msgid "3."
5728 msgstr "3."
5729
5730 #. type: Plain text
5731 #: build/C/man2/sigaltstack.2:80
5732 msgid ""
5733 "When establishing a signal handler using B<sigaction>(2), inform the system "
5734 "that the signal handler should be executed on the alternate signal stack by "
5735 "specifying the B<SA_ONSTACK> flag."
5736 msgstr ""
5737 "B<sigaction>(2)  を使ってシグナルハンドラを確立する際、 B<SA_ONSTACK> フラグ"
5738 "を指定することにより、 そのシグナルハンドラを代替シグナルスタック上で実行する"
5739 "ことを システムに知らせる。"
5740
5741 #. type: Plain text
5742 #: build/C/man2/sigaltstack.2:88
5743 msgid ""
5744 "The I<ss> argument is used to specify a new alternate signal stack, while "
5745 "the I<oss> argument is used to retrieve information about the currently "
5746 "established signal stack.  If we are interested in performing just one of "
5747 "these tasks then the other argument can be specified as NULL.  Each of these "
5748 "arguments is a structure of the following type:"
5749 msgstr ""
5750 "I<ss> 引き数は、新しいシグナルスタックを指定するために使う。 また I<oss> 引き"
5751 "数は、現在確立されている シグナルスタックの情報を取得するために使う。 この操"
5752 "作のうち 1 つだけを実行させるには、 使用しない引き数を NULL に指定すればよ"
5753 "い。 引き数となる構造体は、以下のような型である:"
5754
5755 #. type: Plain text
5756 #: build/C/man2/sigaltstack.2:96
5757 #, no-wrap
5758 msgid ""
5759 "typedef struct {\n"
5760 "    void  *ss_sp;     /* Base address of stack */\n"
5761 "    int    ss_flags;  /* Flags */\n"
5762 "    size_t ss_size;   /* Number of bytes in stack */\n"
5763 "} stack_t;\n"
5764 msgstr ""
5765 "typedef struct {\n"
5766 "    void  *ss_sp;     /* スタックのベースアドレス */\n"
5767 "    int    ss_flags;  /* フラグ */\n"
5768 "    size_t ss_size;   /* スタックのバイト数 */\n"
5769 "} stack_t;\n"
5770
5771 #. type: Plain text
5772 #: build/C/man2/sigaltstack.2:107
5773 msgid ""
5774 "To establish a new alternate signal stack, I<ss.ss_flags> is set to zero, "
5775 "and I<ss.ss_sp> and I<ss.ss_size> specify the starting address and size of "
5776 "the stack.  The constant B<SIGSTKSZ> is defined to be large enough to cover "
5777 "the usual size requirements for an alternate signal stack, and the constant "
5778 "B<MINSIGSTKSZ> defines the minimum size required to execute a signal handler."
5779 msgstr ""
5780 "新規の代替シグナルスタックを確立するには、 I<ss.ss_flags> を 0 に設定し、 "
5781 "I<ss.ss_sp> と I<ss.ss_size> に スタックの開始アドレスとスタックサイズを指定"
5782 "する。 定数 B<SIGSTKSZ> は、代替シグナルスタックが通常必要する サイズよりも充"
5783 "分大きく定義されている。 また定数 B<MINSIGSTKSZ> は、 シグナルハンドラの実行"
5784 "に必要な最小サイズに定義されている。"
5785
5786 #. type: Plain text
5787 #: build/C/man2/sigaltstack.2:111
5788 msgid ""
5789 "When a signal handler is invoked on the alternate stack, the kernel "
5790 "automatically aligns the address given in I<ss.ss_sp> to a suitable address "
5791 "boundary for the underlying hardware architecture."
5792 msgstr ""
5793 "代替スタックでシグナルハンドラが起動された場合には、 カーネルにより自動的に、"
5794 "I<ss.ss_sp> で指定されたアドレスは 動作しているハードウェアアーキテクチャに適"
5795 "したアドレス境界に 調整される。"
5796
5797 #. type: Plain text
5798 #: build/C/man2/sigaltstack.2:116
5799 msgid ""
5800 "To disable an existing stack, specify I<ss.ss_flags> as B<SS_DISABLE>.  In "
5801 "this case, the remaining fields in I<ss> are ignored."
5802 msgstr ""
5803 "既存のスタックを無効にするには、 I<ss.ss_flags> を B<SS_DISABLE> に指定す"
5804 "る。 この場合、I<ss> の他のフィールドは無視される。"
5805
5806 #. type: Plain text
5807 #: build/C/man2/sigaltstack.2:124
5808 msgid ""
5809 "If I<oss> is not NULL, then it is used to return information about the "
5810 "alternate signal stack which was in effect prior to the call to "
5811 "B<sigaltstack>().  The I<oss.ss_sp> and I<oss.ss_size> fields return the "
5812 "starting address and size of that stack.  The I<oss.ss_flags> may return "
5813 "either of the following values:"
5814 msgstr ""
5815 "I<oss> が NULL 以外の場合、 I<oss> に代替シグナルスタックの情報が返される。 "
5816 "これは (実質的に)  B<sigaltstack>()  の呼び出しより先に行われる。 I<oss."
5817 "ss_sp> と I<oss.ss_size> フィールドに スタックの開始アドレスとスタックサイズ"
5818 "が返される。 I<oss.ss_flags> には以下のどちらかの値が返される:"
5819
5820 #. type: TP
5821 #: build/C/man2/sigaltstack.2:124
5822 #, no-wrap
5823 msgid "B<SS_ONSTACK>"
5824 msgstr "B<SS_ONSTACK>"
5825
5826 #. type: Plain text
5827 #: build/C/man2/sigaltstack.2:130
5828 msgid ""
5829 "The process is currently executing on the alternate signal stack.  (Note "
5830 "that it is not possible to change the alternate signal stack if the process "
5831 "is currently executing on it.)"
5832 msgstr ""
5833 "プロセスが代替シグナルスタック上で実行されている (プロセスが既にそのシグナル"
5834 "スタック上で実行されている場合は、 それと同じシグナルスタックには変更できない"
5835 "点に注意すること)。"
5836
5837 #. type: TP
5838 #: build/C/man2/sigaltstack.2:130
5839 #, no-wrap
5840 msgid "B<SS_DISABLE>"
5841 msgstr "B<SS_DISABLE>"
5842
5843 #. type: Plain text
5844 #: build/C/man2/sigaltstack.2:133
5845 msgid "The alternate signal stack is currently disabled."
5846 msgstr "代替シグナルスタックが現在無効になっている。"
5847
5848 #. type: Plain text
5849 #: build/C/man2/sigaltstack.2:137
5850 msgid ""
5851 "B<sigaltstack>()  returns 0 on success, or -1 on failure with I<errno> set "
5852 "to indicate the error."
5853 msgstr ""
5854 "B<sigaltstack>()  は成功した場合 0 を返す。 失敗した場合は -1 を返して、 エ"
5855 "ラーを示す値に I<errno> を設定する。"
5856
5857 #. type: Plain text
5858 #: build/C/man2/sigaltstack.2:142
5859 msgid ""
5860 "Either I<ss> or I<oss> is not NULL and points to an area outside of the "
5861 "process's address space."
5862 msgstr ""
5863 "I<ss> または I<oss> のどちらが、NULL 以外で、 かつプロセスのアドレス空間の外"
5864 "を指している。"
5865
5866 #. type: Plain text
5867 #: build/C/man2/sigaltstack.2:147
5868 msgid ""
5869 "I<ss> is not NULL and the I<ss_flags> field contains a nonzero value other "
5870 "than B<SS_DISABLE>."
5871 msgstr ""
5872 "I<ss> が NULL 以外で、I<ss_flags> フィールドが B<SS_DISABLE> 以外の 0 でない"
5873 "値になっている。"
5874
5875 #. type: Plain text
5876 #: build/C/man2/sigaltstack.2:151
5877 msgid ""
5878 "The specified size of the new alternate signal stack (I<ss.ss_size>) was "
5879 "less than B<MINSTKSZ>."
5880 msgstr ""
5881 "新しい代替シグナルスタック (I<ss.ss_size>) に指定したサイズが B<MINSTKSZ> よ"
5882 "り小さい。"
5883
5884 #. type: Plain text
5885 #: build/C/man2/sigaltstack.2:156
5886 msgid ""
5887 "An attempt was made to change the alternate signal stack while it was active "
5888 "(i.e., the process was already executing on the current alternate signal "
5889 "stack)."
5890 msgstr ""
5891 "代替シグナルスタックが有効であるときに変更を行おうとした (つまり、プロセスが"
5892 "既に現在の代替シグナルスタック上で実行されていた)。"
5893
5894 #. type: Plain text
5895 #: build/C/man2/sigaltstack.2:158
5896 msgid "SUSv2, SVr4, POSIX.1-2001."
5897 msgstr "SUSv2, SVr4, POSIX.1-2001."
5898
5899 #. type: Plain text
5900 #: build/C/man2/sigaltstack.2:166
5901 msgid ""
5902 "The most common usage of an alternate signal stack is to handle the "
5903 "B<SIGSEGV> signal that is generated if the space available for the normal "
5904 "process stack is exhausted: in this case, a signal handler for B<SIGSEGV> "
5905 "cannot be invoked on the process stack; if we wish to handle it, we must use "
5906 "an alternate signal stack."
5907 msgstr ""
5908 "代替シグナルスタックを使用する最もよくある場面は、 B<SIGSEGV> シグナルを扱う"
5909 "ときである。 B<SIGSEGV> はプロセスの通常のスタックが利用できる空間が使い果た"
5910 "された際に 生成されるシグナルである。この場合には、 B<SIGSEGV> 用のシグナルハ"
5911 "ンドラをプロセスのスタック上では起動することができない。 そのため、このシグナ"
5912 "ルを扱おうとする場合には、 代替シグナルスタックを使用しなければならない。"
5913
5914 #. type: Plain text
5915 #: build/C/man2/sigaltstack.2:176
5916 msgid ""
5917 "Establishing an alternate signal stack is useful if a process expects that "
5918 "it may exhaust its standard stack.  This may occur, for example, because the "
5919 "stack grows so large that it encounters the upwardly growing heap, or it "
5920 "reaches a limit established by a call to B<setrlimit(RLIMIT_STACK, &rlim)>.  "
5921 "If the standard stack is exhausted, the kernel sends the process a "
5922 "B<SIGSEGV> signal.  In these circumstances the only way to catch this signal "
5923 "is on an alternate signal stack."
5924 msgstr ""
5925 "プロセスが標準のシグナルスタックを使い果たすことが予想される場合は、 代替シグ"
5926 "ナルスタックを確立すると便利である。 例えば、スタックが最上位アドレスから 下"
5927 "位アドレス方向に非常にたくさん積まれてしまうことで、 最下位アドレスから上位ア"
5928 "ドレス方向に積まれるヒープとぶつかってしまう場合や、 B<setrlimit"
5929 "(RLIMIT_STACK, &rlim)> の呼び出しで確立された 制限に達してしまった場合に、こ"
5930 "の様な事が起こる。 標準のスタックを使い果たしてしまうと、 カーネルはプロセス"
5931 "に B<SIGSEGV> シグナルを送る。 このような状況では、代替シグナルスタック上でし"
5932 "かシグナルをキャッチできない。"
5933
5934 #. type: Plain text
5935 #: build/C/man2/sigaltstack.2:182
5936 msgid ""
5937 "On most hardware architectures supported by Linux, stacks grow downward.  "
5938 "B<sigaltstack>()  automatically takes account of the direction of stack "
5939 "growth."
5940 msgstr ""
5941 "Linux がサポートする多くのハードウェアアーキテクチャでは、 スタックは下位アド"
5942 "レス方向に積まれる。 B<sigaltstack>()  はスタックが積まれる方向を自動的に決定"
5943 "する。"
5944
5945 #. type: Plain text
5946 #: build/C/man2/sigaltstack.2:191
5947 msgid ""
5948 "Functions called from a signal handler executing on an alternate signal "
5949 "stack will also use the alternate signal stack.  (This also applies to any "
5950 "handlers invoked for other signals while the process is executing on the "
5951 "alternate signal stack.)  Unlike the standard stack, the system does not "
5952 "automatically extend the alternate signal stack.  Exceeding the allocated "
5953 "size of the alternate signal stack will lead to unpredictable results."
5954 msgstr ""
5955 "代替シグナルスタック上で実行されている シグナルハンドラから呼ばれる関数も、代"
5956 "替シグナルハンドラを使う (プロセスが代替シグナルスタック上で実行されている場"
5957 "合、 他のシグナルで呼び出されるハンドラもこの代替シグナルハンドラを使う)。 標"
5958 "準のスタックとは異なり、 システムは代替シグナルスタックを自動的に拡張しな"
5959 "い。 代替シグナルスタック用に確保したサイズを越えた場合、 結果は予想できな"
5960 "い。"
5961
5962 #. type: Plain text
5963 #: build/C/man2/sigaltstack.2:199
5964 msgid ""
5965 "A successful call to B<execve>(2)  removes any existing alternate signal "
5966 "stack.  A child process created via B<fork>(2)  inherits a copy of its "
5967 "parent's alternate signal stack settings."
5968 msgstr ""
5969 "B<execve>(2)  の呼び出しが成功すると、 既存の全ての代替シグナルスタックが削除"
5970 "される。 B<fork>(2)  経由で作成された子プロセスは、親プロセスの代替シグナルス"
5971 "タックの 設定のコピーを継承する。"
5972
5973 #. type: Plain text
5974 #: build/C/man2/sigaltstack.2:208
5975 msgid ""
5976 "B<sigaltstack>()  supersedes the older B<sigstack>()  call.  For backward "
5977 "compatibility, glibc also provides B<sigstack>().  All new applications "
5978 "should be written using B<sigaltstack>()."
5979 msgstr ""
5980 "B<sigaltstack>()  は以前の B<sigstack>()  を置き換えるものである。 過去プログ"
5981 "ラムとの互換性のため、glibc では B<sigstack>()  も提供している。 新しいのアプ"
5982 "リケーションは全て B<sigaltstack>()  を使って書くべきである。"
5983
5984 #. type: SS
5985 #: build/C/man2/sigaltstack.2:208 build/C/man3/sigpause.3:61
5986 #, no-wrap
5987 msgid "History"
5988 msgstr "歴史"
5989
5990 #. type: Plain text
5991 #: build/C/man2/sigaltstack.2:215
5992 msgid ""
5993 "4.2BSD had a B<sigstack>()  system call.  It used a slightly different "
5994 "struct, and had the major disadvantage that the caller had to know the "
5995 "direction of stack growth."
5996 msgstr ""
5997 "4.2BSD には B<sigstack>()  システムコールがあった。 この関数は少し異なった構"
5998 "造体を使っており、 呼び出した側がスタックの積まれる方向を知っていなければなら"
5999 "ないという 大きな欠点があった。"
6000
6001 #. type: Plain text
6002 #: build/C/man2/sigaltstack.2:218
6003 msgid "The following code segment demonstrates the use of B<sigaltstack>():"
6004 msgstr "以下のコードで B<sigaltstack>()  の使用法の一部を示す:"
6005
6006 #. type: Plain text
6007 #: build/C/man2/sigaltstack.2:222
6008 #, no-wrap
6009 msgid "stack_t ss;\n"
6010 msgstr "stack_t ss;\n"
6011
6012 #. type: Plain text
6013 #: build/C/man2/sigaltstack.2:230
6014 #, no-wrap
6015 msgid ""
6016 "ss.ss_sp = malloc(SIGSTKSZ);\n"
6017 "if (ss.ss_sp == NULL)\n"
6018 "    /* Handle error */;\n"
6019 "ss.ss_size = SIGSTKSZ;\n"
6020 "ss.ss_flags = 0;\n"
6021 "if (sigaltstack(&ss, NULL) == -1)\n"
6022 "    /* Handle error */;\n"
6023 msgstr ""
6024 "ss.ss_sp = malloc(SIGSTKSZ);\n"
6025 "if (ss.ss_sp == NULL)\n"
6026 "    /* ハンドルエラー */;\n"
6027 "ss.ss_size = SIGSTKSZ;\n"
6028 "ss.ss_flags = 0;\n"
6029 "if (sigaltstack(&ss, NULL) == -1)\n"
6030 "    /* ハンドルエラー */;\n"
6031
6032 #. type: Plain text
6033 #: build/C/man2/sigaltstack.2:239
6034 msgid ""
6035 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
6036 "B<sigsetjmp>(3), B<signal>(7)"
6037 msgstr ""
6038 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
6039 "B<sigsetjmp>(3), B<signal>(7)"
6040
6041 #. type: TH
6042 #: build/C/man7/sigevent.7:26
6043 #, no-wrap
6044 msgid "SIGEVENT"
6045 msgstr "SIGEVENT"
6046
6047 #. type: TH
6048 #: build/C/man7/sigevent.7:26 build/C/man3/siginterrupt.3:31
6049 #, no-wrap
6050 msgid "2011-09-09"
6051 msgstr "2011-09-09"
6052
6053 #. type: Plain text
6054 #: build/C/man7/sigevent.7:29
6055 msgid "sigevent - structure for notification from asynchronous routines"
6056 msgstr ""
6057
6058 #. type: Plain text
6059 #: build/C/man7/sigevent.7:36
6060 #, no-wrap
6061 msgid ""
6062 "union sigval {          /* Data passed with notification */\n"
6063 "    int     sival_int;         /* Integer value */\n"
6064 "    void   *sival_ptr;         /* Pointer value */\n"
6065 "};\n"
6066 msgstr ""
6067 "union sigval {          /* Data passed with notification */\n"
6068 "    int     sival_int;         /* Integer value */\n"
6069 "    void   *sival_ptr;         /* Pointer value */\n"
6070 "};\n"
6071
6072 #. type: Plain text
6073 #: build/C/man7/sigevent.7:51
6074 #, no-wrap
6075 msgid ""
6076 "struct sigevent {\n"
6077 "    int          sigev_notify; /* Notification method */\n"
6078 "    int          sigev_signo;  /* Notification signal */\n"
6079 "    union sigval sigev_value;  /* Data passed with\n"
6080 "                                  notification */\n"
6081 "    void       (*sigev_notify_function) (union sigval);\n"
6082 "                     /* Function used for thread\n"
6083 "                        notification (SIGEV_THREAD) */\n"
6084 "    void        *sigev_notify_attributes;\n"
6085 "                     /* Attributes for notification thread\n"
6086 "                        (SIGEV_THREAD) */\n"
6087 "    pid_t        sigev_notify_thread_id;\n"
6088 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
6089 "};\n"
6090 msgstr ""
6091 "struct sigevent {\n"
6092 "    int          sigev_notify; /* Notification method */\n"
6093 "    int          sigev_signo;  /* Notification signal */\n"
6094 "    union sigval sigev_value;  /* Data passed with\n"
6095 "                                  notification */\n"
6096 "    void       (*sigev_notify_function) (union sigval);\n"
6097 "                     /* Function used for thread\n"
6098 "                        notification (SIGEV_THREAD) */\n"
6099 "    void        *sigev_notify_attributes;\n"
6100 "                     /* Attributes for notification thread\n"
6101 "                        (SIGEV_THREAD) */\n"
6102 "    pid_t        sigev_notify_thread_id;\n"
6103 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
6104 "};\n"
6105
6106 #. type: Plain text
6107 #: build/C/man7/sigevent.7:60
6108 msgid ""
6109 "The I<sigevent> structure is used by various APIs to describe the way a "
6110 "process is to be notified about an event (e.g., completion of an "
6111 "asynchronous request, expiration of a timer, or the arrival of a message)."
6112 msgstr ""
6113
6114 #. type: Plain text
6115 #: build/C/man7/sigevent.7:68
6116 msgid ""
6117 "The definition shown in the SYNOPSIS is approximate: some of the fields in "
6118 "the I<sigevent> structure may be defined as part of a union.  Programs "
6119 "should employ only those fields relevant to the value specified in "
6120 "I<sigev_notify>."
6121 msgstr ""
6122
6123 #. type: Plain text
6124 #: build/C/man7/sigevent.7:73
6125 msgid ""
6126 "The I<sigev_notify> field specifies how notification is to be performed.  "
6127 "This field can have one of the following values:"
6128 msgstr ""
6129
6130 #. type: TP
6131 #: build/C/man7/sigevent.7:73 build/C/man2/timer_create.2:107
6132 #, no-wrap
6133 msgid "B<SIGEV_NONE>"
6134 msgstr "B<SIGEV_NONE>"
6135
6136 #. type: Plain text
6137 #: build/C/man7/sigevent.7:76
6138 msgid "A \"null\" notification: don't do anything when the event occurs."
6139 msgstr ""
6140
6141 #. type: TP
6142 #: build/C/man7/sigevent.7:76 build/C/man2/timer_create.2:112
6143 #, no-wrap
6144 msgid "B<SIGEV_SIGNAL>"
6145 msgstr "B<SIGEV_SIGNAL>"
6146
6147 #. type: Plain text
6148 #: build/C/man7/sigevent.7:80
6149 msgid "Notify the process by sending the signal specified in I<sigev_signo>."
6150 msgstr ""
6151
6152 #. type: Plain text
6153 #: build/C/man7/sigevent.7:87
6154 msgid ""
6155 "If the signal is caught with a signal handler that was registered using the "
6156 "B<sigaction>(2)  B<SA_SIGINFO> flag, then the following fields are set in "
6157 "the I<siginfo_t> structure that is passed as the second argument of the "
6158 "handler:"
6159 msgstr ""
6160
6161 #. type: Plain text
6162 #: build/C/man7/sigevent.7:92
6163 msgid ""
6164 "This field is set to a value that depends on the API delivering the "
6165 "notification."
6166 msgstr ""
6167
6168 #. type: TP
6169 #: build/C/man7/sigevent.7:92 build/C/man2/wait.2:300
6170 #, no-wrap
6171 msgid "I<si_signo>"
6172 msgstr "I<si_signo>"
6173
6174 #. type: Plain text
6175 #: build/C/man7/sigevent.7:96
6176 msgid ""
6177 "This field is set to the signal number (i.e., the same value as in "
6178 "I<sigev_signo>)."
6179 msgstr ""
6180
6181 #. type: Plain text
6182 #: build/C/man7/sigevent.7:100
6183 msgid "This field is set to the value specified in I<sigev_value>."
6184 msgstr ""
6185
6186 #. type: Plain text
6187 #: build/C/man7/sigevent.7:105
6188 msgid ""
6189 "Depending on the API, other fields may also be set in the I<siginfo_t> "
6190 "structure."
6191 msgstr ""
6192
6193 #. type: Plain text
6194 #: build/C/man7/sigevent.7:108
6195 msgid ""
6196 "The same information is also available if the signal is accepted using "
6197 "B<sigwaitinfo>(2)."
6198 msgstr ""
6199
6200 #. type: TP
6201 #: build/C/man7/sigevent.7:108 build/C/man2/timer_create.2:130
6202 #, no-wrap
6203 msgid "B<SIGEV_THREAD>"
6204 msgstr "B<SIGEV_THREAD>"
6205
6206 #. type: Plain text
6207 #: build/C/man7/sigevent.7:125
6208 msgid ""
6209 "Notify the process by invoking I<sigev_notify_function> \"as if\" it were "
6210 "the start function of a new thread.  (Among the implementation possibilities "
6211 "here are that each timer notification could result in the creation of a new "
6212 "thread, or that a single thread is created to receive all notifications.)  "
6213 "The function is invoked with I<sigev_value> as its sole argument.  If "
6214 "I<sigev_notify_attributes> is not NULL, it should point to a "
6215 "I<pthread_attr_t> structure that defines attributes for the new thread (see "
6216 "B<pthread_attr_init>(3))."
6217 msgstr ""
6218
6219 #. type: TP
6220 #: build/C/man7/sigevent.7:125 build/C/man2/timer_create.2:138
6221 #, no-wrap
6222 msgid "B<SIGEV_THREAD_ID> (Linux-specific)"
6223 msgstr ""
6224
6225 #.  | SIGEV_SIGNAL vs not?
6226 #. type: Plain text
6227 #: build/C/man7/sigevent.7:130
6228 msgid "Currently used only by POSIX timers; see B<timer_create>(2)."
6229 msgstr ""
6230
6231 #. type: Plain text
6232 #: build/C/man7/sigevent.7:132 build/C/man2/sigpending.2:63
6233 #: build/C/man2/sigprocmask.2:111 build/C/man3/sigqueue.3:116
6234 #: build/C/man3/sigsetops.3:130 build/C/man2/sigsuspend.2:84
6235 #: build/C/man3/sigwait.3:82 build/C/man2/sigwaitinfo.2:135
6236 #: build/C/man2/timer_create.2:195 build/C/man2/timer_delete.2:69
6237 #: build/C/man2/timer_getoverrun.2:99 build/C/man2/timer_settime.2:209
6238 msgid "POSIX.1-2001."
6239 msgstr "POSIX.1-2001."
6240
6241 #. type: Plain text
6242 #: build/C/man7/sigevent.7:142
6243 msgid ""
6244 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
6245 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
6246 "B<pthreads>(7)"
6247 msgstr ""
6248 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
6249 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
6250 "B<pthreads>(7)"
6251
6252 #. type: TH
6253 #: build/C/man3/siginterrupt.3:31
6254 #, no-wrap
6255 msgid "SIGINTERRUPT"
6256 msgstr "SIGINTERRUPT"
6257
6258 #. type: Plain text
6259 #: build/C/man3/siginterrupt.3:34
6260 msgid "siginterrupt - allow signals to interrupt system calls"
6261 msgstr "siginterrupt - シグナルでシステム・コールに割り込むことを許す"
6262
6263 #. type: Plain text
6264 #: build/C/man3/siginterrupt.3:39
6265 #, no-wrap
6266 msgid "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
6267 msgstr "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
6268
6269 #. type: Plain text
6270 #: build/C/man3/siginterrupt.3:47
6271 msgid "B<siginterrupt>():"
6272 msgstr "B<siginterrupt>():"
6273
6274 #. type: Plain text
6275 #: build/C/man3/siginterrupt.3:64
6276 msgid ""
6277 "The B<siginterrupt>()  function changes the restart behavior when a system "
6278 "call is interrupted by the signal I<sig>.  If the I<flag> argument is false "
6279 "(0), then system calls will be restarted if interrupted by the specified "
6280 "signal I<sig>.  This is the default behavior in Linux."
6281 msgstr ""
6282 "B<siginterrupt>()  関数は、システム・コールがシグナル I<sig> によって割り込ま"
6283 "れた後、再実行の際の振る舞いを変更する。 I<flag> 引き数が偽 (0) ならば、シス"
6284 "テム・コールが指定した シグナル I<sig> によって割り込まれた後に、そのシステ"
6285 "ム・コールは 再実行される。これは Linux においてデフォルトの動作である。"
6286
6287 #. type: Plain text
6288 #: build/C/man3/siginterrupt.3:69
6289 msgid ""
6290 "If the I<flag> argument is true (1) and no data has been transferred, then a "
6291 "system call interrupted by the signal I<sig> will return -1 and I<errno> "
6292 "will be set to B<EINTR>."
6293 msgstr ""
6294 "I<flag> 引き数が真 (1) でデータの転送が全く行なわれていないならば、 シグナル "
6295 "I<sig> でシステム・コールは中断されて、-1 が返され、 I<errno> に B<EINTR> が"
6296 "設定される。"
6297
6298 #. type: Plain text
6299 #: build/C/man3/siginterrupt.3:73
6300 msgid ""
6301 "If the I<flag> argument is true (1) and data transfer has started, then the "
6302 "system call will be interrupted and will return the actual amount of data "
6303 "transferred."
6304 msgstr ""
6305 "I<flag> 引き数が真 (1) でデータの転送が開始されていれば、 システム・コールは"
6306 "中断され、それまでに実際に転送されたデータ の量が返される。"
6307
6308 #. type: Plain text
6309 #: build/C/man3/siginterrupt.3:78
6310 msgid ""
6311 "The B<siginterrupt>()  function returns 0 on success, or -1 if the signal "
6312 "number I<sig> is invalid."
6313 msgstr ""
6314 "B<siginterrupt>()  関数は成功した場合 0 を返す。 シグナル番号 I<sig> が不正な"
6315 "場合は -1 を返す。"
6316
6317 #. type: Plain text
6318 #: build/C/man3/siginterrupt.3:82
6319 msgid "The specified signal number is invalid."
6320 msgstr "指定したシグナル番号が不正である。"
6321
6322 #. type: Plain text
6323 #: build/C/man3/siginterrupt.3:91
6324 msgid ""
6325 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 marks B<siginterrupt>()  as obsolete, "
6326 "recommending the use of B<sigaction>(2)  with the B<SA_RESTART> flag instead."
6327 msgstr ""
6328 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 は、 B<siginterrupt>()  を廃止予定として"
6329 "いる。 代わりに、 B<sigaction>(2)  に B<SA_RESTART> フラグを指定して使うこと"
6330 "を推奨している。"
6331
6332 #. type: Plain text
6333 #: build/C/man3/siginterrupt.3:93
6334 msgid "B<signal>(2)"
6335 msgstr "B<signal>(2)"
6336
6337 #. type: TH
6338 #: build/C/man2/signal.2:36 build/C/man7/signal.7:46
6339 #, no-wrap
6340 msgid "SIGNAL"
6341 msgstr "SIGNAL"
6342
6343 #. type: TH
6344 #: build/C/man2/signal.2:36
6345 #, no-wrap
6346 msgid "2013-02-09"
6347 msgstr "2013-02-09"
6348
6349 #. type: Plain text
6350 #: build/C/man2/signal.2:39
6351 msgid "signal - ANSI C signal handling"
6352 msgstr "signal - ANSI C シグナル操作"
6353
6354 #. type: Plain text
6355 #: build/C/man2/signal.2:45
6356 msgid "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
6357 msgstr ""
6358 "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<sighandler>B<);>"
6359
6360 #. type: Plain text
6361 #: build/C/man2/signal.2:54
6362 msgid ""
6363 "The behavior of B<signal>()  varies across UNIX versions, and has also "
6364 "varied historically across different versions of Linux.  B<Avoid its use>: "
6365 "use B<sigaction>(2)  instead.  See I<Portability> below."
6366 msgstr ""
6367 "B<signal>()  の動作は UNIX のバージョンにより異なる。 また、歴史的に見て "
6368 "Linux のバージョンによっても異なっている。 B<このシステムコールの使用は避け、"
6369 "> 代わりに B<sigaction>(2)  を使用すること。 下記の「移植性」を参照。"
6370
6371 #. type: Plain text
6372 #: build/C/man2/signal.2:64
6373 msgid ""
6374 "B<signal>()  sets the disposition of the signal I<signum> to I<handler>, "
6375 "which is either B<SIG_IGN>, B<SIG_DFL>, or the address of a programmer-"
6376 "defined function (a \"signal handler\")."
6377 msgstr ""
6378 "B<signal>()  はシグナル I<signum> の処理方法を I<handler> に設定する。 "
6379 "I<handler> には、 B<SIG_IGN>、 B<SIG_DFL>、 プログラマが定義した関数 (「シグ"
6380 "ナル・ハンドラ」) のアドレスの いずれかを指定する。"
6381
6382 #. type: Plain text
6383 #: build/C/man2/signal.2:68
6384 msgid ""
6385 "If the signal I<signum> is delivered to the process, then one of the "
6386 "following happens:"
6387 msgstr ""
6388 "シグナル I<signum> がプロセスに配送されると、以下のいずれかが発生する。"
6389
6390 #. type: Plain text
6391 #: build/C/man2/signal.2:73
6392 msgid "If the disposition is set to B<SIG_IGN>, then the signal is ignored."
6393 msgstr "処理方法が B<SIG_IGN> に設定されている場合、そのシグナルは無視される。"
6394
6395 #. type: Plain text
6396 #: build/C/man2/signal.2:80
6397 msgid ""
6398 "If the disposition is set to B<SIG_DFL>, then the default action associated "
6399 "with the signal (see B<signal>(7))  occurs."
6400 msgstr ""
6401 "処理方法が B<SIG_DFL> に設定されている場合、シグナルに関連づけられた デフォル"
6402 "トの動作が行われる (B<signal>(7)  参照)。"
6403
6404 #. type: Plain text
6405 #: build/C/man2/signal.2:91
6406 msgid ""
6407 "If the disposition is set to a function, then first either the disposition "
6408 "is reset to B<SIG_DFL>, or the signal is blocked (see I<Portability> below), "
6409 "and then I<handler> is called with argument I<signum>.  If invocation of the "
6410 "handler caused the signal to be blocked, then the signal is unblocked upon "
6411 "return from the handler."
6412 msgstr ""
6413 "処理方法として関数が設定されている場合、 まず最初に処理方法が B<SIG_DFL> にリ"
6414 "セットされるかそのシグナルのブロックが実行された後、 I<signum> を引き数とし"
6415 "て I<handler> が呼び出される。 ハンドラが起動される際にシグナルがブロックされ"
6416 "た場合、 ハンドラが返る際にそのシグナルのブロックが解除される。"
6417
6418 #. type: Plain text
6419 #: build/C/man2/signal.2:97
6420 msgid "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught or ignored."
6421 msgstr ""
6422 "シグナル B<SIGKILL> と B<SIGSTOP> は捕捉できず、無視することもできない。"
6423
6424 #. type: Plain text
6425 #: build/C/man2/signal.2:102
6426 msgid ""
6427 "B<signal>()  returns the previous value of the signal handler, or B<SIG_ERR> "
6428 "on error."
6429 msgstr ""
6430 "B<signal>()  は、今までのシグナル・ハンドラの値を返す。エラーの場合は "
6431 "B<SIG_ERR> を返す。"
6432
6433 #. type: Plain text
6434 #: build/C/man2/signal.2:107
6435 msgid "I<signum> is invalid."
6436 msgstr "I<signum> が不正である。"
6437
6438 #. type: Plain text
6439 #: build/C/man2/signal.2:113
6440 msgid "The effects of B<signal>()  in a multithreaded process are unspecified."
6441 msgstr ""
6442 "マルチスレッドプロセスにおける B<signal>()  の結果は、指定されていない。"
6443
6444 #. type: Plain text
6445 #: build/C/man2/signal.2:138
6446 msgid ""
6447 "See B<sigaction>(2)  for details on what happens when B<SIGCHLD> is set to "
6448 "B<SIG_IGN>."
6449 msgstr ""
6450 "B<SIGCHLD> の動作として B<SIG_IGN> を設定した場合の詳細な動作については、 "
6451 "B<sigaction>(2)  を参照すること。"
6452
6453 #. type: Plain text
6454 #: build/C/man2/signal.2:143
6455 msgid ""
6456 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
6457 "safely called from inside a signal handler."
6458 msgstr ""
6459 "シグナル・ハンドラ内から安全に呼び出すことができる、 async-signal-safe "
6460 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
6461 "照。"
6462
6463 #.  libc4 and libc5 define
6464 #.  .IR SignalHandler ;
6465 #. type: Plain text
6466 #: build/C/man2/signal.2:159
6467 msgid ""
6468 "The use of I<sighandler_t> is a GNU extension, exposed if B<_GNU_SOURCE> is "
6469 "defined; glibc also defines (the BSD-derived)  I<sig_t> if B<_BSD_SOURCE> is "
6470 "defined.  Without use of such a type, the declaration of B<signal>()  is the "
6471 "somewhat harder to read:"
6472 msgstr ""
6473 "I<sighandler_t> の使用は GNU 拡張であり、 B<_GNU_SOURCE> が定義された\n"
6474 "場合に公開される。glibc では B<_BSD_SOURCE> が定義された場合には (BSD\n"
6475 "由来の) I<sig_t> も定義される。このような型を使用しないと、\n"
6476 "B<signal>() の宣言は読みにくいものとなる。"
6477
6478 #. type: Plain text
6479 #: build/C/man2/signal.2:163
6480 #, no-wrap
6481 msgid "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
6482 msgstr "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
6483
6484 #. type: SS
6485 #: build/C/man2/signal.2:165
6486 #, no-wrap
6487 msgid "Portability"
6488 msgstr "移植性"
6489
6490 #. type: Plain text
6491 #: build/C/man2/signal.2:177
6492 msgid ""
6493 "The only portable use of B<signal>()  is to set a signal's disposition to "
6494 "B<SIG_DFL> or B<SIG_IGN>.  The semantics when using B<signal>()  to "
6495 "establish a signal handler vary across systems (and POSIX.1 explicitly "
6496 "permits this variation); B<do not use it for this purpose.>"
6497 msgstr ""
6498 "移植性のある B<signal>()  の使い方は、シグナルの処理方法を B<SIG_DFL> か "
6499 "B<SIG_IGN> に設定する方法だけである。 シグナル・ハンドラを設定するのに "
6500 "B<signal>()  を使ったときの動作はシステムにより異なる (POSIX.1 は明示的にこの"
6501 "違いを認めている)。 B<移植性が必要なときはこのシステムコールを使用しないこ"
6502 "と。>"
6503
6504 #. type: Plain text
6505 #: build/C/man2/signal.2:183
6506 msgid ""
6507 "POSIX.1 solved the portability mess by specifying B<sigaction>(2), which "
6508 "provides explicit control of the semantics when a signal handler is invoked; "
6509 "use that interface instead of B<signal>()."
6510 msgstr ""
6511 "POSIX.1 は、 B<sigaction>(2)  を規定することで移植性に関する混乱を解決した。 "
6512 "B<sigaction>(2)  はシグナル・ハンドラが起動される際の挙動を明示的に制御でき"
6513 "る。 B<signal>()  の代わりにこのインターフェイスを使うこと。"
6514
6515 #. type: Plain text
6516 #: build/C/man2/signal.2:193
6517 msgid ""
6518 "In the original UNIX systems, when a handler that was established using "
6519 "B<signal>()  was invoked by the delivery of a signal, the disposition of the "
6520 "signal would be reset to B<SIG_DFL>, and the system did not block delivery "
6521 "of further instances of the signal.  This is equivalent to calling "
6522 "B<sigaction>(2)  with the following flags:"
6523 msgstr ""
6524 "オリジナルの UNIX システムでは、 B<signal>()  を使って設定されたハンドラがシ"
6525 "グナルの配送により起動されると、 そのシグナルの処理方法は B<SIG_DFL> にリセッ"
6526 "トされ、システムは同じシグナルがさらに生成されても シグナルの配送をブロックし"
6527 "なかった。これは、以下のフラグで B<sigaction>(2) を呼び出すのと等価である。"
6528
6529 #. type: Plain text
6530 #: build/C/man2/signal.2:195
6531 #, no-wrap
6532 msgid "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
6533 msgstr "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
6534
6535 #. type: Plain text
6536 #: build/C/man2/signal.2:202
6537 msgid ""
6538 "System V also provides these semantics for B<signal>().  This was bad "
6539 "because the signal might be delivered again before the handler had a chance "
6540 "to reestablish itself.  Furthermore, rapid deliveries of the same signal "
6541 "could result in recursive invocations of the handler."
6542 msgstr ""
6543 "System V でも、 B<signal>()  に対してこれらの挙動を規定している。 こうした挙"
6544 "動はまずく、ハンドラがハンドラ自身を再設定する機会が 来るより前に、同じシグナ"
6545 "ルがまた配送される可能性がある。 さらに、同じシグナルが立て続けに配送される"
6546 "と、同じシグナルが ハンドラを繰り返し起動されることになる。"
6547
6548 #. type: Plain text
6549 #: build/C/man2/signal.2:217
6550 #, fuzzy
6551 #| msgid ""
6552 #| "BSD improved on this situation by changing the semantics of signal "
6553 #| "handling (but, unfortunately, silently changed the semantics when "
6554 #| "establishing a handler with B<signal>()).  On BSD, when a signal handler "
6555 #| "is invoked, the signal disposition is not reset, and further instances of "
6556 #| "the signal are blocked from being delivered while the handler is "
6557 #| "executing."
6558 msgid ""
6559 "BSD improved on this situation, but unfortunately also changed the semantics "
6560 "of the existing B<signal>()  interface while doing so.  On BSD, when a "
6561 "signal handler is invoked, the signal disposition is not reset, and further "
6562 "instances of the signal are blocked from being delivered while the handler "
6563 "is executing.  Furthermore, certain blocking system calls are automatically "
6564 "restarted if interrupted by a signal handler (see B<signal>(7)).  The BSD "
6565 "semantics are equivalent to calling B<sigaction>(2)  with the following "
6566 "flags:"
6567 msgstr ""
6568 "BSD では、シグナル処理の挙動を変更することで、この状況を改善した (しかし、残"
6569 "念なことに、 B<signal>()  を使ってハンドラを設定する際に挙動が黙って変更され"
6570 "る)。 BSD では、シグナルハンドラが起動された際、 シグナルの処理方法はリセット"
6571 "されず、 ハンドラの実行中は、同じシグナルのさらなる生成は配送がブロックされ"
6572 "る。"
6573
6574 #. type: Plain text
6575 #: build/C/man2/signal.2:219
6576 #, no-wrap
6577 msgid "    sa.sa_flags = SA_RESTART;\n"
6578 msgstr "    sa.sa_flags = SA_RESTART;\n"
6579
6580 #. type: Plain text
6581 #: build/C/man2/signal.2:221
6582 msgid "The situation on Linux is as follows:"
6583 msgstr "Linux での状況は以下の通りである。"
6584
6585 #. type: Plain text
6586 #: build/C/man2/signal.2:225
6587 msgid "The kernel's B<signal>()  system call provides System V semantics."
6588 msgstr "カーネルの B<signal>()  システムコールは System V 方式を提供している。"
6589
6590 #. type: Plain text
6591 #: build/C/man2/signal.2:241
6592 msgid ""
6593 "By default, in glibc 2 and later, the B<signal>()  wrapper function does not "
6594 "invoke the kernel system call.  Instead, it calls B<sigaction>(2)  using "
6595 "flags that supply BSD semantics.  This default behavior is provided as long "
6596 "as the B<_BSD_SOURCE> feature test macro is defined.  By default, "
6597 "B<_BSD_SOURCE> is defined; it is also implicitly defined if one defines "
6598 "B<_GNU_SOURCE>, and can of course be explicitly defined."
6599 msgstr ""
6600 "デフォルトでは、glibc 2 以降では、 B<signal>()  ラッパー関数はカーネルのシス"
6601 "テムコールを起動しない。 代わりに、ラッパー関数は BSD 方式を示すフラグを使っ"
6602 "て B<sigaction>(2)  を呼び出す。 機能検査マクロ B<_BSD_SOURCE> を定義していれ"
6603 "ば、このデフォルトの動作となる。 デフォルトでは、 B<_BSD_SOURCE> が定義され"
6604 "る。 B<_BSD_SOURCE> は B<_GNU_SOURCE> が定義された場合には暗黙のうちに定義さ"
6605 "れ、 もちろん明示的に定義することもできる。"
6606
6607 #.  System V semantics are also provided if one uses the separate
6608 #.  .BR sysv_signal (3)
6609 #.  function.
6610 #. type: Plain text
6611 #: build/C/man2/signal.2:264
6612 msgid ""
6613 "On glibc 2 and later, if the B<_BSD_SOURCE> feature test macro is not "
6614 "defined, then B<signal>()  provides System V semantics.  (The default "
6615 "implicit definition of B<_BSD_SOURCE> is not provided if one invokes B<gcc>"
6616 "(1)  in one of its standard modes (I<-std=xxx> or I<-ansi>)  or defines "
6617 "various other feature test macros such as B<_POSIX_SOURCE>, "
6618 "B<_XOPEN_SOURCE>, or B<_SVID_SOURCE>; see B<feature_test_macros>(7).)"
6619 msgstr ""
6620 "glibc 2 以降では、機能検査マクロ B<_BSD_SOURCE> が定義されていなければ、 "
6621 "B<signal>()  は System V 方式となる。 (B<gcc>(1)  が標準指定モード (I<-"
6622 "std=xxx> or I<-ansi>)  で起動された場合、もしくは B<_POSIX_SOURCE>, "
6623 "B<_XOPEN_SOURCE>, B<_SVID_SOURCE> といった他の様々な機能検査マクロが定義され"
6624 "た場合、 デフォルトの B<_BSD_SOURCE> の暗黙の定義は行われない。 "
6625 "B<feature_test_macros>(7)  を参照のこと。)"
6626
6627 #. type: Plain text
6628 #: build/C/man2/signal.2:275
6629 msgid ""
6630 "The B<signal>()  function in Linux libc4 and libc5 provide System V "
6631 "semantics.  If one on a libc5 system includes I<E<lt>bsd/signal.hE<gt>> "
6632 "instead of I<E<lt>signal.hE<gt>>, then B<signal>()  provides BSD semantics."
6633 msgstr ""
6634 "Linux の libc4 と libc5 の B<signal>()  関数は System V 方式である。 libc5 シ"
6635 "ステムにおいて I<E<lt>signal.hE<gt>> のかわりに I<E<lt>bsd/signal.hE<gt>> を"
6636 "インクルードすると、 B<signal>()  は B<__bsd_signal>()  に再定義され、 "
6637 "B<signal>()  は BSD 方式となる。"
6638
6639 #. type: Plain text
6640 #: build/C/man2/signal.2:294
6641 msgid ""
6642 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaction>"
6643 "(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
6644 "B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), B<sigqueue>(3), "
6645 "B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), B<signal>(7)"
6646 msgstr ""
6647 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaction>"
6648 "(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
6649 "B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), B<sigqueue>(3), "
6650 "B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), B<signal>(7)"
6651
6652 #. type: TH
6653 #: build/C/man7/signal.7:46
6654 #, no-wrap
6655 msgid "2012-05-01"
6656 msgstr "2012-05-01"
6657
6658 #. type: Plain text
6659 #: build/C/man7/signal.7:49
6660 msgid "signal - overview of signals"
6661 msgstr "signal - シグナルの概要"
6662
6663 #. type: Plain text
6664 #: build/C/man7/signal.7:52
6665 msgid ""
6666 "Linux supports both POSIX reliable signals (hereinafter \"standard signals"
6667 "\") and POSIX real-time signals."
6668 msgstr ""
6669 "Linux は POSIX 信頼シグナル (reliable signal; 以後 \"標準シグナル\"と表記)  "
6670 "と POSIX リアルタイムシグナルの両方に対応している。"
6671
6672 #. type: SS
6673 #: build/C/man7/signal.7:52
6674 #, no-wrap
6675 msgid "Signal dispositions"
6676 msgstr "シグナル処理方法"
6677
6678 #. type: Plain text
6679 #: build/C/man7/signal.7:57
6680 msgid ""
6681 "Each signal has a current I<disposition>, which determines how the process "
6682 "behaves when it is delivered the signal."
6683 msgstr ""
6684 "シグナルはそれぞれ現在の「処理方法 (disposition)」を保持しており、 この処理方"
6685 "法によりシグナルが配送された際にプロセスが どのような振舞いをするかが決まる。"
6686
6687 #. type: Plain text
6688 #: build/C/man7/signal.7:60
6689 msgid ""
6690 "The entries in the \"Action\" column of the tables below specify the default "
6691 "disposition for each signal, as follows:"
6692 msgstr ""
6693 "後述の表の \"動作\" の欄のエントリは各シグナルのデフォルトの 処理方法を示して"
6694 "おり、以下のような意味を持つ。"
6695
6696 #. type: IP
6697 #: build/C/man7/signal.7:60
6698 #, no-wrap
6699 msgid "Term"
6700 msgstr "Term"
6701
6702 #. type: Plain text
6703 #: build/C/man7/signal.7:62
6704 msgid "Default action is to terminate the process."
6705 msgstr "デフォルトの動作はプロセス終了。"
6706
6707 #. type: IP
6708 #: build/C/man7/signal.7:62
6709 #, no-wrap
6710 msgid "Ign"
6711 msgstr "Ign"
6712
6713 #. type: Plain text
6714 #: build/C/man7/signal.7:64
6715 msgid "Default action is to ignore the signal."
6716 msgstr "デフォルトの動作はこのシグナルの無視。"
6717
6718 #. type: IP
6719 #: build/C/man7/signal.7:64
6720 #, no-wrap
6721 msgid "Core"
6722 msgstr "Core"
6723
6724 #. type: Plain text
6725 #: build/C/man7/signal.7:67
6726 msgid ""
6727 "Default action is to terminate the process and dump core (see B<core>(5))."
6728 msgstr "デフォルトの動作はプロセス終了とコアダンプ出力 (B<core>(5)  参照)。"
6729
6730 #. type: IP
6731 #: build/C/man7/signal.7:67
6732 #, no-wrap
6733 msgid "Stop"
6734 msgstr "Stop"
6735
6736 #. type: Plain text
6737 #: build/C/man7/signal.7:69
6738 msgid "Default action is to stop the process."
6739 msgstr "デフォルトの動作はプロセスの一時停止。"
6740
6741 #. type: IP
6742 #: build/C/man7/signal.7:69
6743 #, no-wrap
6744 msgid "Cont"
6745 msgstr "Cont"
6746
6747 #. type: Plain text
6748 #: build/C/man7/signal.7:71
6749 msgid "Default action is to continue the process if it is currently stopped."
6750 msgstr "デフォルトの動作は、プロセスが停止中の場合にその実行の再開。"
6751
6752 #. type: Plain text
6753 #: build/C/man7/signal.7:93
6754 msgid ""
6755 "A process can change the disposition of a signal using B<sigaction>(2)  or "
6756 "B<signal>(2).  (The latter is less portable when establishing a signal "
6757 "handler; see B<signal>(2)  for details.)  Using these system calls, a "
6758 "process can elect one of the following behaviors to occur on delivery of the "
6759 "signal: perform the default action; ignore the signal; or catch the signal "
6760 "with a I<signal handler>, a programmer-defined function that is "
6761 "automatically invoked when the signal is delivered.  (By default, the signal "
6762 "handler is invoked on the normal process stack.  It is possible to arrange "
6763 "that the signal handler uses an alternate stack; see B<sigaltstack>(2)  for "
6764 "a discussion of how to do this and when it might be useful.)"
6765 msgstr ""
6766 "プロセスは、 B<sigaction>(2)  や B<signal>(2)  を使って、シグナルの処理方法を"
6767 "変更することができる (B<signal>(2)  の方がシグナルハンドラを設定する際の移植"
6768 "性が低い; 詳細は B<signal>(2)  を参照)。 シグナルの配送時に起こる動作として "
6769 "プロセスが選択できるのは、次のいずれか一つである。 デフォルトの動作を実行す"
6770 "る、シグナルを無視する、 I<シグナルハンドラ (signal handler)> でシグナルを捕"
6771 "捉する。シグナルハンドラとは、シグナル配送時に 自動的に起動されるプログラマ定"
6772 "義の関数である。 (デフォルトでは、シグナルハンドラは通常のプロセスのスタック"
6773 "上で起動される。 シグナルハンドラが代替スタック (alternate stack) を使用する"
6774 "ように設定する こともできる。代替スタックを使用するように設定する方法と、どの"
6775 "ような際に 代替スタックが役に立つかについての議論については B<sigaltstack>"
6776 "(2)  を参照のこと。"
6777
6778 #. type: Plain text
6779 #: build/C/man7/signal.7:97
6780 msgid ""
6781 "The signal disposition is a per-process attribute: in a multithreaded "
6782 "application, the disposition of a particular signal is the same for all "
6783 "threads."
6784 msgstr ""
6785 "シグナルの処理方法はプロセス単位の属性である。 マルチスレッドのアプリケーショ"
6786 "ンでは、あるシグナルの処理方法は 全てのスレッドで同じである。"
6787
6788 #. type: SS
6789 #: build/C/man7/signal.7:105
6790 #, no-wrap
6791 msgid "Sending a signal"
6792 msgstr "シグナルの送信"
6793
6794 #. type: Plain text
6795 #: build/C/man7/signal.7:108
6796 msgid ""
6797 "The following system calls and library functions allow the caller to send a "
6798 "signal:"
6799 msgstr ""
6800 "以下のシステムコールとライブラリ関数を使って、 呼び出し者はシグナルを送信する"
6801 "ことができる。"
6802
6803 #. type: TP
6804 #: build/C/man7/signal.7:108
6805 #, no-wrap
6806 msgid "B<raise>(3)"
6807 msgstr "B<raise>(3)"
6808
6809 #. type: Plain text
6810 #: build/C/man7/signal.7:111
6811 msgid "Sends a signal to the calling thread."
6812 msgstr "呼び出したスレッドにシグナルを送る。"
6813
6814 #. type: Plain text
6815 #: build/C/man7/signal.7:116
6816 msgid ""
6817 "Sends a signal to a specified process, to all members of a specified process "
6818 "group, or to all processes on the system."
6819 msgstr ""
6820 "指定されたプロセスや、指定されたプロセスグループの全メンバー、 システムの全プ"
6821 "ロセスにシグナルを送る。"
6822
6823 #. type: TP
6824 #: build/C/man7/signal.7:116
6825 #, no-wrap
6826 msgid "B<killpg>(2)"
6827 msgstr "B<killpg>(2)"
6828
6829 #. type: Plain text
6830 #: build/C/man7/signal.7:119
6831 msgid "Sends a signal to all of the members of a specified process group."
6832 msgstr "指定されたプロセスグループの全メンバーにシグナルを送る。"
6833
6834 #. type: TP
6835 #: build/C/man7/signal.7:119
6836 #, no-wrap
6837 msgid "B<pthread_kill>(3)"
6838 msgstr "B<pthread_kill>(3)"
6839
6840 #. type: Plain text
6841 #: build/C/man7/signal.7:123
6842 msgid ""
6843 "Sends a signal to a specified POSIX thread in the same process as the caller."
6844 msgstr ""
6845 "呼び出し者と同じプロセス内の指定された POSIX スレッドにシグナルを送る。"
6846
6847 #. type: TP
6848 #: build/C/man7/signal.7:123
6849 #, no-wrap
6850 msgid "B<tgkill>(2)"
6851 msgstr "B<tgkill>(2)"
6852
6853 #. type: Plain text
6854 #: build/C/man7/signal.7:128
6855 msgid ""
6856 "Sends a signal to a specified thread within a specific process.  (This is "
6857 "the system call used to implement B<pthread_kill>(3).)"
6858 msgstr ""
6859 "指定されたプロセス内の指定されたスレッドにシグナルを送る (このシステムコール"
6860 "を使って B<pthread_kill>(3)  は実装されている)。"
6861
6862 #. type: Plain text
6863 #: build/C/man7/signal.7:131
6864 msgid "Sends a real-time signal with accompanying data to a specified process."
6865 msgstr "指定されたプロセスに付属データとともにリアルタイムシグナルを送る。"
6866
6867 #. type: SS
6868 #: build/C/man7/signal.7:131
6869 #, no-wrap
6870 msgid "Waiting for a signal to be caught"
6871 msgstr "シグナルが捕捉されるのを待つ"
6872
6873 #. type: Plain text
6874 #: build/C/man7/signal.7:135
6875 msgid ""
6876 "The following system calls suspend execution of the calling process or "
6877 "thread until a signal is caught (or an unhandled signal terminates the "
6878 "process):"
6879 msgstr ""
6880 "以下のシステムコールを使って、シグナルが捕捉されるまで 呼び出したプロセスやス"
6881 "レッドの実行を中断 (suspend) することができる (ハンドラが設定されていないシグ"
6882 "ナルによりそのプロセスが終了した 場合にも実行の停止は終了する)。"
6883
6884 #. type: TP
6885 #: build/C/man7/signal.7:135
6886 #, no-wrap
6887 msgid "B<pause>(2)"
6888 msgstr "B<pause>(2)"
6889
6890 #. type: Plain text
6891 #: build/C/man7/signal.7:138
6892 msgid "Suspends execution until any signal is caught."
6893 msgstr "何かシグナルが捕捉されるまで実行を停止する。"
6894
6895 #. type: TP
6896 #: build/C/man7/signal.7:138
6897 #, no-wrap
6898 msgid "B<sigsuspend>(2)"
6899 msgstr "B<sigsuspend>(2)"
6900
6901 #. type: Plain text
6902 #: build/C/man7/signal.7:142
6903 msgid ""
6904 "Temporarily changes the signal mask (see below) and suspends execution until "
6905 "one of the unmasked signals is caught."
6906 msgstr ""
6907 "一時的にシグナルマスク (下記参照) を変更し、 マスクされていないシグナルのいず"
6908 "れかが捕捉されるまで 実行を中断する。"
6909
6910 #. type: SS
6911 #: build/C/man7/signal.7:142
6912 #, no-wrap
6913 msgid "Synchronously accepting a signal"
6914 msgstr "シグナルの同期受信"
6915
6916 #. type: Plain text
6917 #: build/C/man7/signal.7:149
6918 msgid ""
6919 "Rather than asynchronously catching a signal via a signal handler, it is "
6920 "possible to synchronously accept the signal, that is, to block execution "
6921 "until the signal is delivered, at which point the kernel returns information "
6922 "about the signal to the caller.  There are two general ways to do this:"
6923 msgstr ""
6924 "シグナルハンドラ経由でシグナルを非同期 (asynchronously) で捕捉する以外にも、 "
6925 "シグナルを同期 (synchronously) して受け付けることもできる。 同期して受け付け"
6926 "るとは、シグナルが配送されるまで実行を停止 (block)  するということである。シ"
6927 "グナルを受け付けた際に、カーネルは そのシグナルに関する情報を呼び出し者に返"
6928 "す。 これを行う一般的な方法が二つある。"
6929
6930 #. type: Plain text
6931 #: build/C/man7/signal.7:157
6932 msgid ""
6933 "B<sigwaitinfo>(2), B<sigtimedwait>(2), and B<sigwait>(3)  suspend execution "
6934 "until one of the signals in a specified set is delivered.  Each of these "
6935 "calls returns information about the delivered signal."
6936 msgstr ""
6937 "B<sigwaitinfo>(2), B<sigtimedwait>(2), B<sigwait>(3)  は、指定されたシグナル"
6938 "集合のシグナルの一つが配送されるまで実行を中断する。 どのシステムコールや関数"
6939 "でも、配送されたシグナルに関する情報が返される。"
6940
6941 #. type: Plain text
6942 #: build/C/man7/signal.7:170
6943 msgid ""
6944 "B<signalfd>(2)  returns a file descriptor that can be used to read "
6945 "information about signals that are delivered to the caller.  Each B<read>"
6946 "(2)  from this file descriptor blocks until one of the signals in the set "
6947 "specified in the B<signalfd>(2)  call is delivered to the caller.  The "
6948 "buffer returned by B<read>(2)  contains a structure describing the signal."
6949 msgstr ""
6950 "B<signalfd>(2)  が返すファイルディスクリプタを使うと、呼び出し元に配送された "
6951 "シグナルに関する情報を読み出すことができる。 このファイルディスクリプタから"
6952 "の B<read>(2)  は、 B<signalfd>(2)  の呼び出し時に指定されたシグナル集合のシ"
6953 "グナルの一つが呼び出し元に 配送されるまで停止 (block) する。 B<read>(2)  が返"
6954 "すバッファにはシグナルに関する情報を格納した構造体が入っている。"
6955
6956 #. type: SS
6957 #: build/C/man7/signal.7:170
6958 #, no-wrap
6959 msgid "Signal mask and pending signals"
6960 msgstr "シグナルマスクと処理待ちシグナル"
6961
6962 #. type: Plain text
6963 #: build/C/man7/signal.7:177
6964 msgid ""
6965 "A signal may be I<blocked>, which means that it will not be delivered until "
6966 "it is later unblocked.  Between the time when it is generated and when it is "
6967 "delivered a signal is said to be I<pending>."
6968 msgstr ""
6969 "シグナルは I<ブロック (block)> されることがある。ブロックされると、そのシグナ"
6970 "ルは その後ブロックを解除されるまで配送されなくなる。 シグナルが生成されてか"
6971 "ら配送されるまでの間、そのシグナルは I<処理待ち (pending)> であると呼ばれる。"
6972
6973 #. type: Plain text
6974 #: build/C/man7/signal.7:186
6975 msgid ""
6976 "Each thread in a process has an independent I<signal mask>, which indicates "
6977 "the set of signals that the thread is currently blocking.  A thread can "
6978 "manipulate its signal mask using B<pthread_sigmask>(3).  In a traditional "
6979 "single-threaded application, B<sigprocmask>(2)  can be used to manipulate "
6980 "the signal mask."
6981 msgstr ""
6982 "プロセス内の各スレッドは、それぞれ独立な I<シグナルマスク (signal mask)> を持"
6983 "つ。シグナルマスクはそのスレッドが現在ブロックしている シグナル集合を示すもの"
6984 "である。 スレッドは、 B<pthread_sigmask>(3)  を使って自分のシグナルマスクを操"
6985 "作できる。 伝統的なシングルスレッドのアプリケーションでは、 B<sigprocmask>"
6986 "(2)  を使って、シグナルマスクを操作できる。"
6987
6988 #. type: Plain text
6989 #: build/C/man7/signal.7:192 build/C/man2/sigprocmask.2:123
6990 msgid ""
6991 "A child created via B<fork>(2)  inherits a copy of its parent's signal mask; "
6992 "the signal mask is preserved across B<execve>(2)."
6993 msgstr ""
6994 "B<fork>(2)  経由で作成された子プロセスは親プロセスのシグナルマスクのコピーを"
6995 "継承する。 B<execve>(2)  の前後でシグナルマスクは保持される。"
6996
6997 #. type: Plain text
6998 #: build/C/man7/signal.7:209
6999 msgid ""
7000 "A signal may be generated (and thus pending)  for a process as a whole (e."
7001 "g., when sent using B<kill>(2))  or for a specific thread (e.g., certain "
7002 "signals, such as B<SIGSEGV> and B<SIGFPE>, generated as a consequence of "
7003 "executing a specific machine-language instruction are thread directed, as "
7004 "are signals targeted at a specific thread using B<pthread_kill>(3)).  A "
7005 "process-directed signal may be delivered to any one of the threads that does "
7006 "not currently have the signal blocked.  If more than one of the threads has "
7007 "the signal unblocked, then the kernel chooses an arbitrary thread to which "
7008 "to deliver the signal."
7009 msgstr ""
7010 "生成されるシグナル (したがって処理待ちとなるシグナル) には、 プロセス全体宛て"
7011 "と特定のスレッド宛てがある。 例えば、プロセス全体宛てのシグナルは B<kill>"
7012 "(2)  を使って送信される。 特定のマシン語の命令の実行の結果として生成される、 "
7013 "B<SIGSEGV> や B<SIGFPE> などのシグナルは、スレッド宛てとなる。 また、 "
7014 "B<pthread_kill>(3)  を使って特定のスレッド宛てに生成されたシグナルも スレッド"
7015 "宛てとなる。 プロセス宛てのシグナルは、そのシグナルをブロックしていないスレッ"
7016 "ドのうち いずれかの一つに配送することができる。そのシグナルをブロックしていな"
7017 "い スレッドが複数ある場合、シグナルを配送するスレッドはカーネルが 無作為に選"
7018 "択する。"
7019
7020 #. type: Plain text
7021 #: build/C/man7/signal.7:216
7022 msgid ""
7023 "A thread can obtain the set of signals that it currently has pending using "
7024 "B<sigpending>(2).  This set will consist of the union of the set of pending "
7025 "process-directed signals and the set of signals pending for the calling "
7026 "thread."
7027 msgstr ""
7028 "スレッドは、 B<sigpending>(2)  を使って、現在処理待ちのシグナル集合を取得する"
7029 "ことができる。 この集合は、プロセス宛ての処理待ちシグナルと 呼び出したスレッ"
7030 "ド宛てのシグナルの両方から構成される。"
7031
7032 #. type: Plain text
7033 #: build/C/man7/signal.7:222 build/C/man2/sigpending.2:78
7034 msgid ""
7035 "A child created via B<fork>(2)  initially has an empty pending signal set; "
7036 "the pending signal set is preserved across an B<execve>(2)."
7037 msgstr ""
7038 "B<fork>(2)  経由で作成された子プロセスでは、処理待ちのシグナル集合は空の集合"
7039 "で初期化される。 B<execve>(2)  の前後で、処理待ちのシグナル集合は保持される。"
7040
7041 #. type: SS
7042 #: build/C/man7/signal.7:222
7043 #, no-wrap
7044 msgid "Standard signals"
7045 msgstr "標準シグナル"
7046
7047 #. type: Plain text
7048 #: build/C/man7/signal.7:234
7049 msgid ""
7050 "Linux supports the standard signals listed below.  Several signal numbers "
7051 "are architecture-dependent, as indicated in the \"Value\" column.  (Where "
7052 "three values are given, the first one is usually valid for alpha and sparc, "
7053 "the middle one for x86, arm, and most other architectures, and the last one "
7054 "for mips.  (Values for parisc are I<not> shown; see the Linux kernel source "
7055 "for signal numbering on that architecture.)  A - denotes that a signal is "
7056 "absent on the corresponding architecture.)"
7057 msgstr ""
7058 "Linux は以下に示す標準シグナルに対応している。シグナル番号の一部はアー\n"
7059 "キテクチャ依存であり、\"値\" 欄に示す通りである。 (3つの値が書かれている\n"
7060 "ものは、 1つ目が alpha と sparc で通常有効な値、 真ん中が x86, arm や\n"
7061 "他のほとんどのアーキテクチャでの有効な値、最後が mips での値である。\n"
7062 "(parisc での値は記載されてI<いない>。 parisc でのシグナル番号は\n"
7063 "Linux カーネルソースを参照してほしい)。 - はそのアーキテ\n"
7064 "クチャにおいて対応するシグナルがないことを示す。)"
7065
7066 #. type: Plain text
7067 #: build/C/man7/signal.7:236
7068 msgid "First the signals described in the original POSIX.1-1990 standard."
7069 msgstr "最初に、POSIX.1-1990 に定義されているシグナルを示す。"
7070
7071 #. type: tbl table
7072 #: build/C/man7/signal.7:240 build/C/man7/signal.7:276
7073 #: build/C/man7/signal.7:305
7074 #, no-wrap
7075 msgid "Signal\tValue\tAction\tComment\n"
7076 msgstr "シグナル\t値\t動作\tコメント\n"
7077
7078 #. type: tbl table
7079 #: build/C/man7/signal.7:241
7080 #, no-wrap
7081 msgid "SIGHUP\t\\01\tTerm\tHangup detected on controlling terminal\n"
7082 msgstr "SIGHUP\t\\01\tTerm\t制御端末(controlling terminal)のハングアップ検出、\n"
7083
7084 #. type: tbl table
7085 #: build/C/man7/signal.7:242
7086 #, no-wrap
7087 msgid "\t\t\tor death of controlling process\n"
7088 msgstr "\t\t\tまたは制御しているプロセスの死\n"
7089
7090 #. type: tbl table
7091 #: build/C/man7/signal.7:243
7092 #, no-wrap
7093 msgid "SIGINT\t\\02\tTerm\tInterrupt from keyboard\n"
7094 msgstr "SIGINT\t\\02\tTerm\tキーボードからの割り込み (Interrupt)\n"
7095
7096 #. type: tbl table
7097 #: build/C/man7/signal.7:244
7098 #, no-wrap
7099 msgid "SIGQUIT\t\\03\tCore\tQuit from keyboard\n"
7100 msgstr "SIGQUIT\t\\03\tCore\tキーボードによる中止 (Quit)\n"
7101
7102 #. type: tbl table
7103 #: build/C/man7/signal.7:245
7104 #, no-wrap
7105 msgid "SIGILL\t\\04\tCore\tIllegal Instruction\n"
7106 msgstr "SIGILL\t\\04\tCore\t不正な命令\n"
7107
7108 #. type: tbl table
7109 #: build/C/man7/signal.7:246
7110 #, no-wrap
7111 msgid "SIGABRT\t\\06\tCore\tAbort signal from B<abort>(3)\n"
7112 msgstr "SIGABRT\t\\06\tCore\tB<abort>(3) からの中断 (Abort) シグナル\n"
7113
7114 #. type: tbl table
7115 #: build/C/man7/signal.7:247
7116 #, no-wrap
7117 msgid "SIGFPE\t\\08\tCore\tFloating point exception\n"
7118 msgstr "SIGFPE\t\\08\tCore\t浮動小数点例外\n"
7119
7120 #. type: tbl table
7121 #: build/C/man7/signal.7:248
7122 #, no-wrap
7123 msgid "SIGKILL\t\\09\tTerm\tKill signal\n"
7124 msgstr "SIGKILL\t\\09\tTerm\tKill シグナル\n"
7125
7126 #. type: tbl table
7127 #: build/C/man7/signal.7:249
7128 #, no-wrap
7129 msgid "SIGSEGV\t11\tCore\tInvalid memory reference\n"
7130 msgstr "SIGSEGV\t11\tCore\t不正なメモリ参照\n"
7131
7132 #. type: tbl table
7133 #: build/C/man7/signal.7:250
7134 #, no-wrap
7135 msgid "SIGPIPE\t13\tTerm\tBroken pipe: write to pipe with no\n"
7136 msgstr "SIGPIPE\t13\tTerm\tパイプ破壊:\n"
7137
7138 #. type: tbl table
7139 #: build/C/man7/signal.7:251
7140 #, no-wrap
7141 msgid "\t\t\treaders\n"
7142 msgstr "\t\t\t読み手の無いパイプへの書き出し\n"
7143
7144 #. type: tbl table
7145 #: build/C/man7/signal.7:252
7146 #, no-wrap
7147 msgid "SIGALRM\t14\tTerm\tTimer signal from B<alarm>(2)\n"
7148 msgstr "SIGALRM\t14\tTerm\tB<alarm>(2) からのタイマーシグナル\n"
7149
7150 #. type: tbl table
7151 #: build/C/man7/signal.7:253
7152 #, no-wrap
7153 msgid "SIGTERM\t15\tTerm\tTermination signal\n"
7154 msgstr "SIGTERM\t15\tTerm\t終了 (termination) シグナル\n"
7155
7156 #. type: tbl table
7157 #: build/C/man7/signal.7:254
7158 #, no-wrap
7159 msgid "SIGUSR1\t30,10,16\tTerm\tUser-defined signal 1\n"
7160 msgstr "SIGUSR1\t30,10,16\tTerm\tユーザ定義シグナル 1\n"
7161
7162 #. type: tbl table
7163 #: build/C/man7/signal.7:255
7164 #, no-wrap
7165 msgid "SIGUSR2\t31,12,17\tTerm\tUser-defined signal 2\n"
7166 msgstr "SIGUSR2\t31,12,17\tTerm\tユーザ定義シグナル 2\n"
7167
7168 #. type: tbl table
7169 #: build/C/man7/signal.7:256
7170 #, no-wrap
7171 msgid "SIGCHLD\t20,17,18\tIgn\tChild stopped or terminated\n"
7172 msgstr "SIGCHLD\t20,17,18\tIgn\t子プロセスの一時停止 (stop) または終了\n"
7173
7174 #. type: tbl table
7175 #: build/C/man7/signal.7:257
7176 #, no-wrap
7177 msgid "SIGCONT\t19,18,25\tCont\tContinue if stopped\n"
7178 msgstr "SIGCONT\t19,18,25\tCont\t一時停止 (stop) からの再開\n"
7179
7180 #. type: tbl table
7181 #: build/C/man7/signal.7:258
7182 #, no-wrap
7183 msgid "SIGSTOP\t17,19,23\tStop\tStop process\n"
7184 msgstr "SIGSTOP\t17,19,23\tStop\tプロセスの一時停止 (stop)\n"
7185
7186 #. type: tbl table
7187 #: build/C/man7/signal.7:259
7188 #, no-wrap
7189 msgid "SIGTSTP\t18,20,24\tStop\tStop typed at terminal\n"
7190 msgstr "SIGTSTP\t18,20,24\tStop\t端末より入力された一時停止 (stop)\n"
7191
7192 #. type: tbl table
7193 #: build/C/man7/signal.7:260
7194 #, no-wrap
7195 msgid "SIGTTIN\t21,21,26\tStop\tTerminal input for background process\n"
7196 msgstr "SIGTTIN\t21,21,26\tStop\tバックグランドプロセスの端末入力\n"
7197
7198 #. type: tbl table
7199 #: build/C/man7/signal.7:261
7200 #, no-wrap
7201 msgid "SIGTTOU\t22,22,27\tStop\tTerminal output for background process\n"
7202 msgstr "SIGTTOU\t22,22,27\tStop\tバックグランドプロセスの端末出力\n"
7203
7204 #. type: Plain text
7205 #: build/C/man7/signal.7:269
7206 msgid ""
7207 "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught, blocked, or ignored."
7208 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> はキャッチ、ブロック、無視できない。"
7209
7210 #. type: Plain text
7211 #: build/C/man7/signal.7:272
7212 msgid ""
7213 "Next the signals not in the POSIX.1-1990 standard but described in SUSv2 and "
7214 "POSIX.1-2001."
7215 msgstr ""
7216 "次に、 POSIX.1-1990 標準にはないが、 SUSv2 と POSIX.1-2001 に記述されているシ"
7217 "グナルを示す。"
7218
7219 #. type: tbl table
7220 #: build/C/man7/signal.7:277
7221 #, no-wrap
7222 msgid "SIGBUS\t10,7,10\tCore\tBus error (bad memory access)\n"
7223 msgstr "SIGBUS\t10,7,10\tCore\tバスエラー (不正なメモリアクセス)\n"
7224
7225 #. type: tbl table
7226 #: build/C/man7/signal.7:278
7227 #, no-wrap
7228 msgid "SIGPOLL\t\tTerm\tPollable event (Sys V).\n"
7229 msgstr "SIGPOLL\t\tTerm\tポーリング可能なイベント (Sys V)。\n"
7230
7231 #. type: tbl table
7232 #: build/C/man7/signal.7:279
7233 #, no-wrap
7234 msgid "\t\t\tSynonym for B<SIGIO>\n"
7235 msgstr "\t\t\tB<SIGIO> と同義\n"
7236
7237 #. type: tbl table
7238 #: build/C/man7/signal.7:280
7239 #, no-wrap
7240 msgid "SIGPROF\t27,27,29\tTerm\tProfiling timer expired\n"
7241 msgstr "SIGPROF\t27,27,29\tTerm\tprofiling タイマの時間切れ\n"
7242
7243 #. type: tbl table
7244 #: build/C/man7/signal.7:281
7245 #, no-wrap
7246 msgid "SIGSYS\t12,31,12\tCore\tBad argument to routine (SVr4)\n"
7247 msgstr "SIGSYS\t12,31,12\tCore\tルーチンへの引き数が不正 (SVr4)\n"
7248
7249 #. type: tbl table
7250 #: build/C/man7/signal.7:282
7251 #, no-wrap
7252 msgid "SIGTRAP\t5\tCore\tTrace/breakpoint trap\n"
7253 msgstr "SIGTRAP\t5\tCore\tトレース/ブレークポイント トラップ\n"
7254
7255 #. type: tbl table
7256 #: build/C/man7/signal.7:283
7257 #, no-wrap
7258 msgid "SIGURG\t16,23,21\tIgn\tUrgent condition on socket (4.2BSD)\n"
7259 msgstr "SIGURG\t16,23,21\tIgn\tソケットの緊急事態 (urgent condition) (4.2BSD)\n"
7260
7261 #. type: tbl table
7262 #: build/C/man7/signal.7:284
7263 #, no-wrap
7264 msgid "SIGVTALRM\t26,26,28\tTerm\tVirtual alarm clock (4.2BSD)\n"
7265 msgstr "SIGVTALRM\t26,26,28\tTerm\t仮想アラームクロック (4.2BSD)\n"
7266
7267 #. type: tbl table
7268 #: build/C/man7/signal.7:285
7269 #, no-wrap
7270 msgid "SIGXCPU\t24,24,30\tCore\tCPU time limit exceeded (4.2BSD)\n"
7271 msgstr "SIGXCPU\t24,24,30\tCore\tCPU時間制限超過 (4.2BSD)\n"
7272
7273 #. type: tbl table
7274 #: build/C/man7/signal.7:286
7275 #, no-wrap
7276 msgid "SIGXFSZ\t25,25,31\tCore\tFile size limit exceeded (4.2BSD)\n"
7277 msgstr "SIGXFSZ\t25,25,31\tCore\tファイルサイズ制限の超過 (4.2BSD)\n"
7278
7279 #. type: Plain text
7280 #: build/C/man7/signal.7:299
7281 msgid ""
7282 "Up to and including Linux 2.2, the default behavior for B<SIGSYS>, "
7283 "B<SIGXCPU>, B<SIGXFSZ>, and (on architectures other than SPARC and MIPS)  "
7284 "B<SIGBUS> was to terminate the process (without a core dump).  (On some "
7285 "other UNIX systems the default action for B<SIGXCPU> and B<SIGXFSZ> is to "
7286 "terminate the process without a core dump.)  Linux 2.4 conforms to the "
7287 "POSIX.1-2001 requirements for these signals, terminating the process with a "
7288 "core dump."
7289 msgstr ""
7290 "Linux 2.2 以前では、 B<SIGSYS>, B<SIGXCPU>, B<SIGXFSZ> および SPARC と MIPS "
7291 "以外のアーキテクチャでの B<SIGBUS> のデフォルトの振る舞いは (コアダンプ出力な"
7292 "しの) プロセス終了であった。 (他の UNIX システムにも B<SIGXCPU> と "
7293 "B<SIGXFSZ> のデフォルトの動作がコアダンプなしのプロセス終了のものがある。)  "
7294 "Linux 2.4 では、POSIX.1-2001 での要求仕様に準拠して、 これらのシグナルで、プ"
7295 "ロセスを終了させ、コアダンプを出力する ようになっている。"
7296
7297 #. type: Plain text
7298 #: build/C/man7/signal.7:301
7299 msgid "Next various other signals."
7300 msgstr "次にその他の各種シグナルを示す。"
7301
7302 #. type: tbl table
7303 #: build/C/man7/signal.7:306
7304 #, no-wrap
7305 msgid "SIGIOT\t6\tCore\tIOT trap. A synonym for B<SIGABRT>\n"
7306 msgstr "SIGIOT\t6\tCore\tIOT トラップ。B<SIGABRT> と同義\n"
7307
7308 #. type: tbl table
7309 #: build/C/man7/signal.7:307
7310 #, no-wrap
7311 msgid "SIGEMT\t7,-,7\tTerm\n"
7312 msgstr "SIGEMT\t7,-,7\tTerm\n"
7313
7314 #. type: tbl table
7315 #: build/C/man7/signal.7:308
7316 #, no-wrap
7317 msgid "SIGSTKFLT\t-,16,-\tTerm\tStack fault on coprocessor (unused)\n"
7318 msgstr "SIGSTKFLT\t-,16,-\tA\t数値演算プロセッサにおけるスタックフォルト (未使用)\n"
7319
7320 #. type: tbl table
7321 #: build/C/man7/signal.7:309
7322 #, no-wrap
7323 msgid "SIGIO\t23,29,22\tTerm\tI/O now possible (4.2BSD)\n"
7324 msgstr "SIGIO\t23,29,22\tTerm\t入出力が可能になった (4.2BSD)\n"
7325
7326 #. type: tbl table
7327 #: build/C/man7/signal.7:310
7328 #, no-wrap
7329 msgid "SIGCLD\t-,-,18\tIgn\tA synonym for B<SIGCHLD>\n"
7330 msgstr "SIGCLD\t-,-,18\tIgn\tB<SIGCHLD> と同義\n"
7331
7332 #. type: tbl table
7333 #: build/C/man7/signal.7:311
7334 #, no-wrap
7335 msgid "SIGPWR\t29,30,19\tTerm\tPower failure (System V)\n"
7336 msgstr "SIGPWR\t29,30,19\tTerm\t電源喪失 (Power failure) (System V)\n"
7337
7338 #. type: tbl table
7339 #: build/C/man7/signal.7:312
7340 #, no-wrap
7341 msgid "SIGINFO\t29,-,-\t\tA synonym for B<SIGPWR>\n"
7342 msgstr "SIGINFO\t29,-,-\t \tB<SIGPWR> と同義\n"
7343
7344 #. type: tbl table
7345 #: build/C/man7/signal.7:313
7346 #, no-wrap
7347 msgid "SIGLOST\t-,-,-\tTerm\tFile lock lost (unused)\n"
7348 msgstr "SIGLOST\t-,-,-\tTerm\tファイルロックが失われた (未使用)\n"
7349
7350 #. type: tbl table
7351 #: build/C/man7/signal.7:314
7352 #, no-wrap
7353 msgid "SIGWINCH\t28,28,20\tIgn\tWindow resize signal (4.3BSD, Sun)\n"
7354 msgstr "SIGWINCH\t28,28,20\tIgn\tウィンドウ リサイズ シグナル (4.3BSD, Sun)\n"
7355
7356 #. type: tbl table
7357 #: build/C/man7/signal.7:315
7358 #, no-wrap
7359 msgid "SIGUNUSED\t-,31,-\tCore\tSynonymous with B<SIGSYS>\n"
7360 msgstr "SIGUNUSED\t-,31,-\tCore\tB<SIGSYS> と同義\n"
7361
7362 #. type: Plain text
7363 #: build/C/man7/signal.7:325
7364 msgid ""
7365 "(Signal 29 is B<SIGINFO> / B<SIGPWR> on an alpha but B<SIGLOST> on a sparc.)"
7366 msgstr ""
7367 "(シグナル 29 は alpha では B<SIGINFO> / B<SIGPWR> だが、sparc では "
7368 "B<SIGLOST> である。)"
7369
7370 #. type: Plain text
7371 #: build/C/man7/signal.7:331
7372 msgid ""
7373 "B<SIGEMT> is not specified in POSIX.1-2001, but nevertheless appears on most "
7374 "other UNIX systems, where its default action is typically to terminate the "
7375 "process with a core dump."
7376 msgstr ""
7377 "B<SIGEMT> は POSIX.1-2001 に規定されていないが、 その他の多くの UNIX システム"
7378 "に存在する。 デフォルトの動作は多くの場合、コアダンプ出力を伴うプロセスの終了"
7379 "である。"
7380
7381 #. type: Plain text
7382 #: build/C/man7/signal.7:335
7383 msgid ""
7384 "B<SIGPWR> (which is not specified in POSIX.1-2001) is typically ignored by "
7385 "default on those other UNIX systems where it appears."
7386 msgstr ""
7387 "B<SIGPWR> は (POSIX.1-2001 に規定されていないが) このシグナルが存在する 他の "
7388 "UNIX システムでは多くの場合、デフォルト動作は無視である。"
7389
7390 #. type: Plain text
7391 #: build/C/man7/signal.7:339
7392 msgid ""
7393 "B<SIGIO> (which is not specified in POSIX.1-2001) is ignored by default on "
7394 "several other UNIX systems."
7395 msgstr ""
7396 "B<SIGIO> は (POSIX.1-2001 に規定されていないが) いくつかの他の UNIX システム"
7397 "では デフォルト動作は無視である。"
7398
7399 #.  parisc is the only exception: SIGSYS is 12, SIGUNUSED is 31
7400 #. type: Plain text
7401 #: build/C/man7/signal.7:346
7402 msgid ""
7403 "Where defined, B<SIGUNUSED> is synonymous with B<SIGSYS> on most "
7404 "architectures."
7405 msgstr ""
7406 "B<SIGUNUSED> が定義されている場合には、ほとんどのアーキテクチャで B<SIGSYS> "
7407 "の同義語となっている。"
7408
7409 #. type: SS
7410 #: build/C/man7/signal.7:346
7411 #, no-wrap
7412 msgid "Real-time signals"
7413 msgstr "リアルタイムシグナル"
7414
7415 #. type: Plain text
7416 #: build/C/man7/signal.7:356
7417 msgid ""
7418 "Linux supports real-time signals as originally defined in the POSIX.1b real-"
7419 "time extensions (and now included in POSIX.1-2001).  The range of supported "
7420 "real-time signals is defined by the macros B<SIGRTMIN> and B<SIGRTMAX>.  "
7421 "POSIX.1-2001 requires that an implementation support at least "
7422 "B<_POSIX_RTSIG_MAX> (8) real-time signals."
7423 msgstr ""
7424 "Linux はリアルタイムシグナルをサポートしている。 リアルタイムシグナルは元々 "
7425 "POSIX.1b のリアルタイム拡張で定義されて いるものであり、現在では "
7426 "POSIX.1-2001 に含まれている。 対応しているリアルタイムシグナルの範囲は、マク"
7427 "ロ B<SIGRTMIN> と B<SIGRTMAX> で定義される。 POSIX.1-2001 では、少なくとも "
7428 "B<_POSIX_RTSIG_MAX> (8) 個のリアルタイムシグナルに対応した実装が要求されてい"
7429 "る。"
7430
7431 #. type: Plain text
7432 #: build/C/man7/signal.7:378
7433 msgid ""
7434 "The Linux kernel supports a range of 32 different real-time signals, "
7435 "numbered 33 to 64.  However, the glibc POSIX threads implementation "
7436 "internally uses two (for NPTL) or three (for LinuxThreads) real-time signals "
7437 "(see B<pthreads>(7)), and adjusts the value of B<SIGRTMIN> suitably (to 34 "
7438 "or 35).  Because the range of available real-time signals varies according "
7439 "to the glibc threading implementation (and this variation can occur at run "
7440 "time according to the available kernel and glibc), and indeed the range of "
7441 "real-time signals varies across UNIX systems, programs should I<never refer "
7442 "to real-time signals using hard-coded numbers>, but instead should always "
7443 "refer to real-time signals using the notation B<SIGRTMIN>+n, and include "
7444 "suitable (run-time) checks that B<SIGRTMIN>+n does not exceed B<SIGRTMAX>."
7445 msgstr ""
7446 "Linux は、32 個の異なるリアルタイムシグナルに対応しており、 その番号は 33 か"
7447 "ら 64 である。 しかしながら、glibc の POSIX スレッド実装は、 内部で 2個 "
7448 "(NPTL の場合) か 3個 (LinuxThreads の場合) の リアルタイムシグナルを使用して"
7449 "おり (B<pthreads>(7)  参照)、 B<SIGRTMIN> の値を適切に (34 か 35 に) 調整す"
7450 "る。 利用可能なリアルタイムシグナルの範囲は glibc のスレッド実装により 異なる"
7451 "し (使用するカーネルと glibc により実行時にも変化する)、 UNIX システムの種類"
7452 "によっても異なる。したがって、 プログラムでは「ハードコーディングした数字を"
7453 "使ってのリアルタイムシグナルの 参照は決してすべきではなく」、代わりに "
7454 "B<SIGRTMIN>+n の形で参照すべきである。また、 B<SIGRTMIN>+n が B<SIGRTMAX> を"
7455 "超えていないかのチェックを (実行時に) 適切に行うべきである。"
7456
7457 #. type: Plain text
7458 #: build/C/man7/signal.7:382
7459 msgid ""
7460 "Unlike standard signals, real-time signals have no predefined meanings: the "
7461 "entire set of real-time signals can be used for application-defined purposes."
7462 msgstr ""
7463 "標準シグナルと異なり、リアルタイムシグナルには 事前に定義された意味はない。 "
7464 "リアルタイムシグナルの全部をアプリケーションで定義した用途に使える。"
7465
7466 #. type: Plain text
7467 #: build/C/man7/signal.7:385
7468 msgid ""
7469 "The default action for an unhandled real-time signal is to terminate the "
7470 "receiving process."
7471 msgstr ""
7472 "ハンドリングしないリアルタイムシグナルのデフォルトの動作は 受信したプロセスの"
7473 "終了である。"
7474
7475 #. type: Plain text
7476 #: build/C/man7/signal.7:387
7477 msgid "Real-time signals are distinguished by the following:"
7478 msgstr "リアルタイムシグナルは以下の特徴がある:"
7479
7480 #. type: Plain text
7481 #: build/C/man7/signal.7:391
7482 msgid ""
7483 "Multiple instances of real-time signals can be queued.  By contrast, if "
7484 "multiple instances of a standard signal are delivered while that signal is "
7485 "currently blocked, then only one instance is queued."
7486 msgstr ""
7487 "リアルタイムシグナルは複数の実体をキューに入れることができる。 一方、標準シグ"
7488 "ナルの場合、そのシグナルがブロックされている間に 同じシグナルの複数のインスタ"
7489 "ンスが配送されても、 1 つだけがキューに入れられる。"
7490
7491 #. type: Plain text
7492 #: build/C/man7/signal.7:411
7493 msgid ""
7494 "If the signal is sent using B<sigqueue>(3), an accompanying value (either an "
7495 "integer or a pointer) can be sent with the signal.  If the receiving process "
7496 "establishes a handler for this signal using the B<SA_SIGINFO> flag to "
7497 "B<sigaction>(2)  then it can obtain this data via the I<si_value> field of "
7498 "the I<siginfo_t> structure passed as the second argument to the handler.  "
7499 "Furthermore, the I<si_pid> and I<si_uid> fields of this structure can be "
7500 "used to obtain the PID and real user ID of the process sending the signal."
7501 msgstr ""
7502 "シグナルが B<sigqueue>(3)  を用いて送信された場合、 付属データ (整数かポイン"
7503 "タ) をシグナルと共に送信できる。 受信側プロセスが B<sigaction>(2)  に "
7504 "B<SA_SIGINFO> フラグを指定してシグナルハンドラを設定した場合、 このデータは "
7505 "I<siginfo_t> 構造体の I<si_value> フィールド経由でハンドラの第 2 引き数として"
7506 "渡され、 利用することができる。 さらに、この構造体の I<si_pid> と I<si_uid> "
7507 "フィールドでシグナルを送信したプロセスの PID と実ユーザ ID を 得ることができ"
7508 "る。"
7509
7510 #. type: Plain text
7511 #: build/C/man7/signal.7:420
7512 msgid ""
7513 "Real-time signals are delivered in a guaranteed order.  Multiple real-time "
7514 "signals of the same type are delivered in the order they were sent.  If "
7515 "different real-time signals are sent to a process, they are delivered "
7516 "starting with the lowest-numbered signal.  (I.e., low-numbered signals have "
7517 "highest priority.)  By contrast, if multiple standard signals are pending "
7518 "for a process, the order in which they are delivered is unspecified."
7519 msgstr ""
7520 "リアルタイムシグナルでは配送される順序が保証される。 同じタイプのリアルタイム"
7521 "シグナルは送信された順番に到着する。 異なるリアルタイムシグナルが一つのプロセ"
7522 "スに送信された場合、 番号の小さいシグナルから先に到着する。 (つまり小さい番号"
7523 "のシグナルが高い優先順位を持つ。)  対照的に、一つのプロセスに対して複数の標準"
7524 "シグナルが処理待ちとなった場合、 これらのシグナルが配送される順序は不定であ"
7525 "る。"
7526
7527 #. type: Plain text
7528 #: build/C/man7/signal.7:425
7529 msgid ""
7530 "If both standard and real-time signals are pending for a process, POSIX "
7531 "leaves it unspecified which is delivered first.  Linux, like many other "
7532 "implementations, gives priority to standard signals in this case."
7533 msgstr ""
7534 "一つのプロセスに対して標準シグナルとリアルタイムシグナルの両方が 処理待ちの場"
7535 "合、POSIX はどちらが先に配送されるかを規定していない。 Linux では、他の多くの"
7536 "実装と同様、このような場合には 標準シグナルが優先される。"
7537
7538 #. type: Plain text
7539 #: build/C/man7/signal.7:448
7540 msgid ""
7541 "According to POSIX, an implementation should permit at least "
7542 "B<_POSIX_SIGQUEUE_MAX> (32) real-time signals to be queued to a process.  "
7543 "However, Linux does things differently.  In kernels up to and including "
7544 "2.6.7, Linux imposes a system-wide limit on the number of queued real-time "
7545 "signals for all processes.  This limit can be viewed and (with privilege) "
7546 "changed via the I</proc/sys/kernel/rtsig-max> file.  A related file, I</proc/"
7547 "sys/kernel/rtsig-nr>, can be used to find out how many real-time signals are "
7548 "currently queued.  In Linux 2.6.8, these I</proc> interfaces were replaced "
7549 "by the B<RLIMIT_SIGPENDING> resource limit, which specifies a per-user limit "
7550 "for queued signals; see B<setrlimit>(2)  for further details."
7551 msgstr ""
7552 "POSIX によれば、1 プロセス毎に最低 B<_POSIX_SIGQUEUE_MAX> (32) 個のリアルタイ"
7553 "ムシグナルをキューに入れられるべきとしている。 しかし、 Linux では違った実装"
7554 "になっている。カーネル 2.6.7 までは (2.6.7 を含む)、全プロセスでキューに入っ"
7555 "ているリアルタイムシグナル の数の合計についてシステム全体での制限がある。 こ"
7556 "の制限は I</proc/sys/kernel/rtsig-max> ファイルで見ることができ、 (権限があれ"
7557 "ば) 変更もできる。 関係するファイルとして、 I</proc/sys/kernel/rtsig-nr> を見"
7558 "ることで、いくつのリアルタイムシグナルが現在キューに入っているかを 知ることが"
7559 "できる。 Linux 2.6.8 で、これらの I</proc> 経由のインターフェースは、 "
7560 "B<RLIMIT_SIGPENDING> リソース制限に置き換えられた。 これは、キューに入るシグ"
7561 "ナル数に関してユーザ単位に 上限を指定するものである。 詳しくは B<setrlimit>"
7562 "(2)  を参照。"
7563
7564 #. type: SS
7565 #: build/C/man7/signal.7:448
7566 #, no-wrap
7567 msgid "Async-signal-safe functions"
7568 msgstr "非同期シグナルで安全な関数 (async-signal-safe functions)"
7569
7570 #. type: Plain text
7571 #: build/C/man7/signal.7:457
7572 msgid ""
7573 "A signal handler function must be very careful, since processing elsewhere "
7574 "may be interrupted at some arbitrary point in the execution of the program.  "
7575 "POSIX has the concept of \"safe function\".  If a signal interrupts the "
7576 "execution of an unsafe function, and I<handler> calls an unsafe function, "
7577 "then the behavior of the program is undefined."
7578 msgstr ""
7579 "シグナルハンドラ関数には非常に注意しなければならない。 他の場所の処理はプログ"
7580 "ラム実行の任意の箇所で中断される可能性があるためである。 POSIX には「安全な関"
7581 "数 (safe function)」という概念がある。 シグナルが安全でない関数の実行を中断"
7582 "し、かつ I<handler> が安全でない関数を呼び出した場合、プログラムの挙動は未定"
7583 "義である。"
7584
7585 #. type: Plain text
7586 #: build/C/man7/signal.7:461
7587 msgid ""
7588 "POSIX.1-2004 (also known as POSIX.1-2001 Technical Corrigendum 2)  requires "
7589 "an implementation to guarantee that the following functions can be safely "
7590 "called inside a signal handler:"
7591 msgstr ""
7592 "POSIX.1-2004 (POSIX.1-2001 Technical Corrigendum (正誤表) 2 とも言う) では、 "
7593 "シグナルハンドラ内での安全な呼び出しを保証することが必須の関数として 以下が規"
7594 "定されている。"
7595
7596 #. type: Plain text
7597 #: build/C/man7/signal.7:582
7598 #, no-wrap
7599 msgid ""
7600 "_Exit()\n"
7601 "_exit()\n"
7602 "abort()\n"
7603 "accept()\n"
7604 "access()\n"
7605 "aio_error()\n"
7606 "aio_return()\n"
7607 "aio_suspend()\n"
7608 "alarm()\n"
7609 "bind()\n"
7610 "cfgetispeed()\n"
7611 "cfgetospeed()\n"
7612 "cfsetispeed()\n"
7613 "cfsetospeed()\n"
7614 "chdir()\n"
7615 "chmod()\n"
7616 "chown()\n"
7617 "clock_gettime()\n"
7618 "close()\n"
7619 "connect()\n"
7620 "creat()\n"
7621 "dup()\n"
7622 "dup2()\n"
7623 "execle()\n"
7624 "execve()\n"
7625 "fchmod()\n"
7626 "fchown()\n"
7627 "fcntl()\n"
7628 "fdatasync()\n"
7629 "fork()\n"
7630 "fpathconf()\n"
7631 "fstat()\n"
7632 "fsync()\n"
7633 "ftruncate()\n"
7634 "getegid()\n"
7635 "geteuid()\n"
7636 "getgid()\n"
7637 "getgroups()\n"
7638 "getpeername()\n"
7639 "getpgrp()\n"
7640 "getpid()\n"
7641 "getppid()\n"
7642 "getsockname()\n"
7643 "getsockopt()\n"
7644 "getuid()\n"
7645 "kill()\n"
7646 "link()\n"
7647 "listen()\n"
7648 "lseek()\n"
7649 "lstat()\n"
7650 "mkdir()\n"
7651 "mkfifo()\n"
7652 "open()\n"
7653 "pathconf()\n"
7654 "pause()\n"
7655 "pipe()\n"
7656 "poll()\n"
7657 "posix_trace_event()\n"
7658 "pselect()\n"
7659 "raise()\n"
7660 "read()\n"
7661 "readlink()\n"
7662 "recv()\n"
7663 "recvfrom()\n"
7664 "recvmsg()\n"
7665 "rename()\n"
7666 "rmdir()\n"
7667 "select()\n"
7668 "sem_post()\n"
7669 "send()\n"
7670 "sendmsg()\n"
7671 "sendto()\n"
7672 "setgid()\n"
7673 "setpgid()\n"
7674 "setsid()\n"
7675 "setsockopt()\n"
7676 "setuid()\n"
7677 "shutdown()\n"
7678 "sigaction()\n"
7679 "sigaddset()\n"
7680 "sigdelset()\n"
7681 "sigemptyset()\n"
7682 "sigfillset()\n"
7683 "sigismember()\n"
7684 "signal()\n"
7685 "sigpause()\n"
7686 "sigpending()\n"
7687 "sigprocmask()\n"
7688 "sigqueue()\n"
7689 "sigset()\n"
7690 "sigsuspend()\n"
7691 "sleep()\n"
7692 "sockatmark()\n"
7693 "socket()\n"
7694 "socketpair()\n"
7695 "stat()\n"
7696 "symlink()\n"
7697 "sysconf()\n"
7698 "tcdrain()\n"
7699 "tcflow()\n"
7700 "tcflush()\n"
7701 "tcgetattr()\n"
7702 "tcgetpgrp()\n"
7703 "tcsendbreak()\n"
7704 "tcsetattr()\n"
7705 "tcsetpgrp()\n"
7706 "time()\n"
7707 "timer_getoverrun()\n"
7708 "timer_gettime()\n"
7709 "timer_settime()\n"
7710 "times()\n"
7711 "umask()\n"
7712 "uname()\n"
7713 "unlink()\n"
7714 "utime()\n"
7715 "wait()\n"
7716 "waitpid()\n"
7717 "write()\n"
7718 msgstr ""
7719 "_Exit()\n"
7720 "_exit()\n"
7721 "abort()\n"
7722 "accept()\n"
7723 "access()\n"
7724 "aio_error()\n"
7725 "aio_return()\n"
7726 "aio_suspend()\n"
7727 "alarm()\n"
7728 "bind()\n"
7729 "cfgetispeed()\n"
7730 "cfgetospeed()\n"
7731 "cfsetispeed()\n"
7732 "cfsetospeed()\n"
7733 "chdir()\n"
7734 "chmod()\n"
7735 "chown()\n"
7736 "clock_gettime()\n"
7737 "close()\n"
7738 "connect()\n"
7739 "creat()\n"
7740 "dup()\n"
7741 "dup2()\n"
7742 "execle()\n"
7743 "execve()\n"
7744 "fchmod()\n"
7745 "fchown()\n"
7746 "fcntl()\n"
7747 "fdatasync()\n"
7748 "fork()\n"
7749 "fpathconf()\n"
7750 "fstat()\n"
7751 "fsync()\n"
7752 "ftruncate()\n"
7753 "getegid()\n"
7754 "geteuid()\n"
7755 "getgid()\n"
7756 "getgroups()\n"
7757 "getpeername()\n"
7758 "getpgrp()\n"
7759 "getpid()\n"
7760 "getppid()\n"
7761 "getsockname()\n"
7762 "getsockopt()\n"
7763 "getuid()\n"
7764 "kill()\n"
7765 "link()\n"
7766 "listen()\n"
7767 "lseek()\n"
7768 "lstat()\n"
7769 "mkdir()\n"
7770 "mkfifo()\n"
7771 "open()\n"
7772 "pathconf()\n"
7773 "pause()\n"
7774 "pipe()\n"
7775 "poll()\n"
7776 "posix_trace_event()\n"
7777 "pselect()\n"
7778 "raise()\n"
7779 "read()\n"
7780 "readlink()\n"
7781 "recv()\n"
7782 "recvfrom()\n"
7783 "recvmsg()\n"
7784 "rename()\n"
7785 "rmdir()\n"
7786 "select()\n"
7787 "sem_post()\n"
7788 "send()\n"
7789 "sendmsg()\n"
7790 "sendto()\n"
7791 "setgid()\n"
7792 "setpgid()\n"
7793 "setsid()\n"
7794 "setsockopt()\n"
7795 "setuid()\n"
7796 "shutdown()\n"
7797 "sigaction()\n"
7798 "sigaddset()\n"
7799 "sigdelset()\n"
7800 "sigemptyset()\n"
7801 "sigfillset()\n"
7802 "sigismember()\n"
7803 "signal()\n"
7804 "sigpause()\n"
7805 "sigpending()\n"
7806 "sigprocmask()\n"
7807 "sigqueue()\n"
7808 "sigset()\n"
7809 "sigsuspend()\n"
7810 "sleep()\n"
7811 "sockatmark()\n"
7812 "socket()\n"
7813 "socketpair()\n"
7814 "stat()\n"
7815 "symlink()\n"
7816 "sysconf()\n"
7817 "tcdrain()\n"
7818 "tcflow()\n"
7819 "tcflush()\n"
7820 "tcgetattr()\n"
7821 "tcgetpgrp()\n"
7822 "tcsendbreak()\n"
7823 "tcsetattr()\n"
7824 "tcsetpgrp()\n"
7825 "time()\n"
7826 "timer_getoverrun()\n"
7827 "timer_gettime()\n"
7828 "timer_settime()\n"
7829 "times()\n"
7830 "umask()\n"
7831 "uname()\n"
7832 "unlink()\n"
7833 "utime()\n"
7834 "wait()\n"
7835 "waitpid()\n"
7836 "write()\n"
7837
7838 #. type: Plain text
7839 #: build/C/man7/signal.7:587
7840 msgid ""
7841 "POSIX.1-2008 removes fpathconf(), pathconf(), and sysconf()  from the above "
7842 "list, and adds the following functions:"
7843 msgstr ""
7844 "POSIX.1-2008 では、上記のリストのうち fpathconf(), pathconf(), sysconf()  が"
7845 "削除され、以下の関数が追加された。"
7846
7847 #. type: Plain text
7848 #: build/C/man7/signal.7:610
7849 #, no-wrap
7850 msgid ""
7851 "execl()\n"
7852 "execv()\n"
7853 "faccessat()\n"
7854 "fchmodat()\n"
7855 "fchownat()\n"
7856 "fexecve()\n"
7857 "fstatat()\n"
7858 "futimens()\n"
7859 "linkat()\n"
7860 "mkdirat()\n"
7861 "mkfifoat()\n"
7862 "mknod()\n"
7863 "mknodat()\n"
7864 "openat()\n"
7865 "readlinkat()\n"
7866 "renameat()\n"
7867 "symlinkat()\n"
7868 "unlinkat()\n"
7869 "utimensat()\n"
7870 "utimes()\n"
7871 msgstr ""
7872 "execl()\n"
7873 "execv()\n"
7874 "faccessat()\n"
7875 "fchmodat()\n"
7876 "fchownat()\n"
7877 "fexecve()\n"
7878 "fstatat()\n"
7879 "futimens()\n"
7880 "linkat()\n"
7881 "mkdirat()\n"
7882 "mkfifoat()\n"
7883 "mknod()\n"
7884 "mknodat()\n"
7885 "openat()\n"
7886 "readlinkat()\n"
7887 "renameat()\n"
7888 "symlinkat()\n"
7889 "unlinkat()\n"
7890 "utimensat()\n"
7891 "utimes()\n"
7892
7893 #. type: SS
7894 #: build/C/man7/signal.7:612
7895 #, no-wrap
7896 msgid "Interruption of system calls and library functions by signal handlers"
7897 msgstr "シグナルハンドラによるシステムコールやライブラリ関数への割り込み"
7898
7899 #. type: Plain text
7900 #: build/C/man7/signal.7:615
7901 msgid ""
7902 "If a signal handler is invoked while a system call or library function call "
7903 "is blocked, then either:"
7904 msgstr ""
7905 "システムコールやライブラリが停止 (block) している間にシグナルハンドラが 起動"
7906 "されると、以下のどちらかとなる。"
7907
7908 #. type: Plain text
7909 #: build/C/man7/signal.7:617
7910 msgid ""
7911 "the call is automatically restarted after the signal handler returns; or"
7912 msgstr "シグナルが返った後、呼び出しは自動的に再スタートされる。"
7913
7914 #. type: Plain text
7915 #: build/C/man7/signal.7:620
7916 msgid "the call fails with the error B<EINTR>."
7917 msgstr "呼び出しはエラー B<EINTR> で失敗する。"
7918
7919 #. type: Plain text
7920 #: build/C/man7/signal.7:628
7921 msgid ""
7922 "Which of these two behaviors occurs depends on the interface and whether or "
7923 "not the signal handler was established using the B<SA_RESTART> flag (see "
7924 "B<sigaction>(2)).  The details vary across UNIX systems; below, the details "
7925 "for Linux."
7926 msgstr ""
7927 "これらの二つの挙動のうちどちらが起こるかは、インターフェイスにより依存し、 シ"
7928 "グナルハンドラが B<SA_RESTART> フラグ (B<sigaction>(2)  参照) を使って設定さ"
7929 "れていたかにも依存する。 詳細は UNIX システムによって異なる。 Linux における"
7930 "詳細を以下で説明する。"
7931
7932 #.  The following system calls use ERESTARTSYS,
7933 #.  so that they are restartable
7934 #. type: Plain text
7935 #: build/C/man7/signal.7:637
7936 msgid ""
7937 "If a blocked call to one of the following interfaces is interrupted by a "
7938 "signal handler, then the call will be automatically restarted after the "
7939 "signal handler returns if the B<SA_RESTART> flag was used; otherwise the "
7940 "call will fail with the error B<EINTR>:"
7941 msgstr ""
7942 "以下のインターフェイスのいずれかの呼び出しが停止している間に シグナルハンドラ"
7943 "により割り込まれた場合、 B<SA_RESTART> フラグが使用されていれば、シグナルハン"
7944 "ドラが返った後に その呼び出しは自動的に再スタートされることになる。 それ以外"
7945 "の場合は、その呼び出しはエラー B<EINTR> で失敗することになる。"
7946
7947 #. type: Plain text
7948 #: build/C/man7/signal.7:653
7949 msgid ""
7950 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), and B<ioctl>(2)  calls "
7951 "on \"slow\" devices.  A \"slow\" device is one where the I/O call may block "
7952 "for an indefinite time, for example, a terminal, pipe, or socket.  (A disk "
7953 "is not a slow device according to this definition.)  If an I/O call on a "
7954 "slow device has already transferred some data by the time it is interrupted "
7955 "by a signal handler, then the call will return a success status (normally, "
7956 "the number of bytes transferred)."
7957 msgstr ""
7958 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), B<ioctl>(2)  の「遅い "
7959 "(slow)」デバイスに対する呼び出し。 ここでいう「遅い」デバイスとは、I/O 呼び出"
7960 "しが無期限に停止 (block) する 可能性のあるデバイスのことで、例としては端末、"
7961 "パイプ、ソケットがある (この定義では、ディスクは遅いデバイスではない)。 遅い"
7962 "デバイスに対する I/O 呼び出しが、 シグナルハンドラにより割り込まれた時点まで"
7963 "に何らかのデータを すでに転送していれば、呼び出しは成功ステータス (通常は、転"
7964 "送されたバイト数) を返すことだろう。"
7965
7966 #. type: Plain text
7967 #: build/C/man7/signal.7:657
7968 msgid ""
7969 "B<open>(2), if it can block (e.g., when opening a FIFO; see B<fifo>(7))."
7970 msgstr ""
7971 "停止 (block) する可能性のある B<open>(2)  (例えば、FIFO のオープン時; B<fifo>"
7972 "(7)  参照)。"
7973
7974 #. type: Plain text
7975 #: build/C/man7/signal.7:664
7976 msgid "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), and B<waitpid>(2)."
7977 msgstr "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), B<waitpid>(2)."
7978
7979 #.  If a timeout (setsockopt()) is in effect on the socket, then these
7980 #.  system calls switch to using EINTR.  Consequently, they and are not
7981 #.  automatically restarted, and they show the stop/cont behavior
7982 #.  described below.  (Verified from 2.6.26 source, and by experiment; mtk)
7983 #. type: Plain text
7984 #: build/C/man7/signal.7:680
7985 msgid ""
7986 "Socket interfaces: B<accept>(2), B<connect>(2), B<recv>(2), B<recvfrom>(2), "
7987 "B<recvmsg>(2), B<send>(2), B<sendto>(2), and B<sendmsg>(2), unless a timeout "
7988 "has been set on the socket (see below)."
7989 msgstr ""
7990 "ソケットインターフェイス: B<accept>(2), B<connect>(2), B<recv>(2), "
7991 "B<recvfrom>(2), B<recvmsg>(2), B<send>(2), B<sendto>(2), B<sendmsg>(2).  但"
7992 "し、ソケットにタイムアウトが設定されていない場合 (下記参照)。"
7993
7994 #. type: Plain text
7995 #: build/C/man7/signal.7:686
7996 msgid "File locking interfaces: B<flock>(2)  and B<fcntl>(2)  B<F_SETLKW>."
7997 msgstr ""
7998 "ファイルロック用インターフェイス: B<flock>(2), B<fcntl>(2)  B<F_SETLKW>."
7999
8000 #. type: Plain text
8001 #: build/C/man7/signal.7:693
8002 msgid ""
8003 "POSIX message queue interfaces: B<mq_receive>(3), B<mq_timedreceive>(3), "
8004 "B<mq_send>(3), and B<mq_timedsend>(3)."
8005 msgstr ""
8006 "POSIX メッセージキューインターフェイス: B<mq_receive>(3), B<mq_timedreceive>"
8007 "(3), B<mq_send>(3), B<mq_timedsend>(3)."
8008
8009 #. type: Plain text
8010 #: build/C/man7/signal.7:698
8011 msgid ""
8012 "B<futex>(2)  B<FUTEX_WAIT> (since Linux 2.6.22; beforehand, always failed "
8013 "with B<EINTR>)."
8014 msgstr ""
8015 "B<futex>(2)  B<FUTEX_WAIT> (Linux 2.6.22 以降; それ以前は常に B<EINTR> で失敗"
8016 "していた)。"
8017
8018 #. type: Plain text
8019 #: build/C/man7/signal.7:705
8020 msgid ""
8021 "POSIX semaphore interfaces: B<sem_wait>(3)  and B<sem_timedwait>(3)  (since "
8022 "Linux 2.6.22; beforehand, always failed with B<EINTR>)."
8023 msgstr ""
8024 "POSIX セマフォインターフェイス: B<sem_wait>(3), B<sem_timedwait>(3)  (Linux "
8025 "2.6.22 以降; それ以前は常に B<EINTR> で失敗していた)。"
8026
8027 #.  These are the system calls that give EINTR or ERESTARTNOHAND
8028 #.  on interruption by a signal handler.
8029 #. type: Plain text
8030 #: build/C/man7/signal.7:716
8031 msgid ""
8032 "The following interfaces are never restarted after being interrupted by a "
8033 "signal handler, regardless of the use of B<SA_RESTART>; they always fail "
8034 "with the error B<EINTR> when interrupted by a signal handler:"
8035 msgstr ""
8036 "以下のインターフェイスは、 B<SA_RESTART> を使っているどうかに関わらず、シグナ"
8037 "ルハンドラにより割り込まれた後、 再スタートすることは決してない。 これらは、"
8038 "シグナルハンドラにより割り込まれると、常にエラー B<EINTR> で失敗する。"
8039
8040 #. type: Plain text
8041 #: build/C/man7/signal.7:736 build/C/man7/signal.7:810
8042 msgid ""
8043 "Socket interfaces, when a timeout has been set on the socket using "
8044 "B<setsockopt>(2): B<accept>(2), B<recv>(2), B<recvfrom>(2), and B<recvmsg>"
8045 "(2), if a receive timeout (B<SO_RCVTIMEO>)  has been set; B<connect>(2), "
8046 "B<send>(2), B<sendto>(2), and B<sendmsg>(2), if a send timeout "
8047 "(B<SO_SNDTIMEO>)  has been set."
8048 msgstr ""
8049 "B<setsockopt>(2)  を使ってタイムアウトが設定されているソケットインターフェー"
8050 "ス: B<accept>(2), B<recv>(2), B<recvfrom>(2), B<recvmsg>(2)  で受信タイムアウ"
8051 "ト (B<SO_RCVTIMEO>)  が設定されている場合と、 B<connect>(2), B<send>(2), "
8052 "B<sendto>(2), B<sendmsg>(2)  で送信タイムアウト (B<SO_SNDTIMEO>)  が設定され"
8053 "ている場合。"
8054
8055 #. type: Plain text
8056 #: build/C/man7/signal.7:743
8057 msgid ""
8058 "Interfaces used to wait for signals: B<pause>(2), B<sigsuspend>(2), "
8059 "B<sigtimedwait>(2), and B<sigwaitinfo>(2)."
8060 msgstr ""
8061 "シグナル待ちに使われるインターフェイス: B<pause>(2), B<sigsuspend>(2), "
8062 "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8063
8064 #. type: Plain text
8065 #: build/C/man7/signal.7:752
8066 msgid ""
8067 "File descriptor multiplexing interfaces: B<epoll_wait>(2), B<epoll_pwait>"
8068 "(2), B<poll>(2), B<ppoll>(2), B<select>(2), and B<pselect>(2)."
8069 msgstr ""
8070 "ファイルディスクリプタ多重インターフェイス: B<epoll_wait>(2), B<epoll_pwait>"
8071 "(2), B<poll>(2), B<ppoll>(2), B<select>(2), B<pselect>(2)."
8072
8073 #.  On some other systems, SA_RESTART does restart these system calls
8074 #. type: Plain text
8075 #: build/C/man7/signal.7:760
8076 msgid ""
8077 "System V IPC interfaces: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), and "
8078 "B<semtimedop>(2)."
8079 msgstr ""
8080 "System V IPC インターフェイス: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), "
8081 "B<semtimedop>(2)."
8082
8083 #. type: Plain text
8084 #: build/C/man7/signal.7:766
8085 msgid ""
8086 "Sleep interfaces: B<clock_nanosleep>(2), B<nanosleep>(2), and B<usleep>(3)."
8087 msgstr ""
8088 "スリープ用のインターフェイス: B<clock_nanosleep>(2), B<nanosleep>(2), "
8089 "B<usleep>(3)."
8090
8091 #. type: Plain text
8092 #: build/C/man7/signal.7:771 build/C/man7/signal.7:824
8093 msgid "B<read>(2)  from an B<inotify>(7)  file descriptor."
8094 msgstr "B<inotify>(7)  ファイルディスクリプタからの B<read>(2)."
8095
8096 #. type: Plain text
8097 #: build/C/man7/signal.7:773
8098 msgid "B<io_getevents>(2)."
8099 msgstr "B<io_getevents>(2)."
8100
8101 #. type: Plain text
8102 #: build/C/man7/signal.7:779
8103 msgid ""
8104 "The B<sleep>(3)  function is also never restarted if interrupted by a "
8105 "handler, but gives a success return: the number of seconds remaining to "
8106 "sleep."
8107 msgstr ""
8108 "B<sleep>(3)  関数も、ハンドラにより割り込まれた場合、決して再スタートされるこ"
8109 "とはない。 しかし、成功となり、残っている停止時間を返す。"
8110
8111 #. type: SS
8112 #: build/C/man7/signal.7:779
8113 #, no-wrap
8114 msgid "Interruption of system calls and library functions by stop signals"
8115 msgstr "一時停止シグナルによるシステムコールやライブラリ関数への割り込み"
8116
8117 #. type: Plain text
8118 #: build/C/man7/signal.7:788
8119 msgid ""
8120 "On Linux, even in the absence of signal handlers, certain blocking "
8121 "interfaces can fail with the error B<EINTR> after the process is stopped by "
8122 "one of the stop signals and then resumed via B<SIGCONT>.  This behavior is "
8123 "not sanctioned by POSIX.1, and doesn't occur on other systems."
8124 msgstr ""
8125 "Linux では、シグナルハンドラが設定されていない場合でも、 いくつかのブロッキン"
8126 "グ型のインターフェイスは、 プロセスが一時停止 (stop) シグナルの一つにより停止"
8127 "され、 B<SIGCONT> により再開された後に、エラー B<EINTR> で失敗する可能性があ"
8128 "る。 この挙動は POSIX.1 で認められておらず、他のシステムでは起こらない。"
8129
8130 #. type: Plain text
8131 #: build/C/man7/signal.7:790
8132 msgid "The Linux interfaces that display this behavior are:"
8133 msgstr "この挙動を示す Linux のインターフェイスは以下の通りである。"
8134
8135 #. type: Plain text
8136 #: build/C/man7/signal.7:813
8137 msgid "B<epoll_wait>(2), B<epoll_pwait>(2)."
8138 msgstr "B<epoll_wait>(2), B<epoll_pwait>(2)."
8139
8140 #. type: Plain text
8141 #: build/C/man7/signal.7:816
8142 msgid "B<semop>(2), B<semtimedop>(2)."
8143 msgstr "B<semop>(2), B<semtimedop>(2)."
8144
8145 #. type: Plain text
8146 #: build/C/man7/signal.7:819
8147 msgid "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8148 msgstr "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8149
8150 #. type: Plain text
8151 #: build/C/man7/signal.7:830
8152 msgid ""
8153 "Linux 2.6.21 and earlier: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
8154 "B<sem_wait>(3)."
8155 msgstr ""
8156 "Linux 2.6.21 以前: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
8157 "B<sem_wait>(3)."
8158
8159 #. type: Plain text
8160 #: build/C/man7/signal.7:834
8161 msgid "Linux 2.6.8 and earlier: B<msgrcv>(2), B<msgsnd>(2)."
8162 msgstr "Linux 2.6.8 以前: B<msgrcv>(2), B<msgsnd>(2)."
8163
8164 #. type: Plain text
8165 #: build/C/man7/signal.7:837
8166 msgid "Linux 2.4 and earlier: B<nanosleep>(2)."
8167 msgstr "Linux 2.4 以前: B<nanosleep>(2)."
8168
8169 #.  It must be a *very* long time since this was true:
8170 #.  .SH BUGS
8171 #.  .B SIGIO
8172 #.  and
8173 #.  .B SIGLOST
8174 #.  have the same value.
8175 #.  The latter is commented out in the kernel source, but
8176 #.  the build process of some software still thinks that
8177 #.  signal 29 is
8178 #.  .BR SIGLOST .
8179 #. type: Plain text
8180 #: build/C/man7/signal.7:850
8181 msgid "POSIX.1, except as noted."
8182 msgstr "POSIX.1 (注記した内容以外)。"
8183
8184 #. type: Plain text
8185 #: build/C/man7/signal.7:883
8186 msgid ""
8187 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), B<rt_sigqueueinfo>"
8188 "(2), B<setitimer>(2), B<setrlimit>(2), B<sgetmask>(2), B<sigaction>(2), "
8189 "B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
8190 "B<sigprocmask>(2), B<sigsuspend>(2), B<sigwaitinfo>(2), B<abort>(3), "
8191 "B<bsd_signal>(3), B<longjmp>(3), B<raise>(3), B<pthread_sigqueue>(3), "
8192 "B<sigqueue>(3), B<sigset>(3), B<sigsetops>(3), B<sigvec>(3), B<sigwait>(3), "
8193 "B<strsignal>(3), B<sysv_signal>(3), B<core>(5), B<proc>(5), B<pthreads>(7), "
8194 "B<sigevent>(7)"
8195 msgstr ""
8196 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), B<rt_sigqueueinfo>"
8197 "(2), B<setitimer>(2), B<setrlimit>(2), B<sgetmask>(2), B<sigaction>(2), "
8198 "B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
8199 "B<sigprocmask>(2), B<sigsuspend>(2), B<sigwaitinfo>(2), B<abort>(3), "
8200 "B<bsd_signal>(3), B<longjmp>(3), B<raise>(3), B<pthread_sigqueue>(3), "
8201 "B<sigqueue>(3), B<sigset>(3), B<sigsetops>(3), B<sigvec>(3), B<sigwait>(3), "
8202 "B<strsignal>(3), B<sysv_signal>(3), B<core>(5), B<proc>(5), B<pthreads>(7), "
8203 "B<sigevent>(7)"
8204
8205 #. type: TH
8206 #: build/C/man2/signalfd.2:20
8207 #, no-wrap
8208 msgid "SIGNALFD"
8209 msgstr "SIGNALFD"
8210
8211 #. type: TH
8212 #: build/C/man2/signalfd.2:20
8213 #, no-wrap
8214 msgid "2009-01-13"
8215 msgstr "2009-01-13"
8216
8217 #. type: Plain text
8218 #: build/C/man2/signalfd.2:23
8219 msgid "signalfd - create a file descriptor for accepting signals"
8220 msgstr "signalfd - シグナル受け付け用のファイルディスクリプタを生成する"
8221
8222 #. type: Plain text
8223 #: build/C/man2/signalfd.2:25
8224 msgid "B<#include E<lt>sys/signalfd.hE<gt>>"
8225 msgstr "B<#include E<lt>sys/signalfd.hE<gt>>"
8226
8227 #. type: Plain text
8228 #: build/C/man2/signalfd.2:27
8229 msgid ""
8230 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
8231 msgstr ""
8232 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
8233
8234 #. type: Plain text
8235 #: build/C/man2/signalfd.2:38
8236 msgid ""
8237 "B<signalfd>()  creates a file descriptor that can be used to accept signals "
8238 "targeted at the caller.  This provides an alternative to the use of a signal "
8239 "handler or B<sigwaitinfo>(2), and has the advantage that the file descriptor "
8240 "may be monitored by B<select>(2), B<poll>(2), and B<epoll>(7)."
8241 msgstr ""
8242 "B<signalfd>()  は、呼び出し元宛てのシグナルを受け付けるために使用されるファイ"
8243 "ル ディスクリプタを生成する。 この方法はシグナルハンドラや B<sigwaitinfo>"
8244 "(2)  を用いる方法の代わりとなるものであり、このファイルディスクリプタを "
8245 "B<select>(2), B<poll>(2), B<epoll>(7)  で監視できるという利点がある。"
8246
8247 #. type: Plain text
8248 #: build/C/man2/signalfd.2:58
8249 msgid ""
8250 "The I<mask> argument specifies the set of signals that the caller wishes to "
8251 "accept via the file descriptor.  This argument is a signal set whose "
8252 "contents can be initialized using the macros described in B<sigsetops>(3).  "
8253 "Normally, the set of signals to be received via the file descriptor should "
8254 "be blocked using B<sigprocmask>(2), to prevent the signals being handled "
8255 "according to their default dispositions.  It is not possible to receive "
8256 "B<SIGKILL> or B<SIGSTOP> signals via a signalfd file descriptor; these "
8257 "signals are silently ignored if specified in I<mask>."
8258 msgstr ""
8259 "I<mask> 引き数には、呼び出し元がこのファイルディスクリプタ経由で受け付けたい "
8260 "シグナル集合を指定する。この引き数で指定するシグナル集合の内容は、 "
8261 "B<sigsetops>(3)  で説明されているマクロを使って初期化することができる。 通"
8262 "常、ファイルディスクリプタ経由で受信するシグナル集合は、 そのシグナルがデフォ"
8263 "ルトの配送方法に基いて処理されるのを防ぐために、 B<sigprocmask>(2)  を使って"
8264 "ブロックしておくべきである。 シグナル B<SIGKILL> と B<SIGSTOP> を signalfd "
8265 "ファイルディスクリプタ経由で受信することはできない。 これらのシグナルが "
8266 "I<mask> で指定された場合には黙って無視される。"
8267
8268 #. type: Plain text
8269 #: build/C/man2/signalfd.2:72
8270 msgid ""
8271 "If the I<fd> argument is -1, then the call creates a new file descriptor and "
8272 "associates the signal set specified in I<mask> with that descriptor.  If "
8273 "I<fd> is not -1, then it must specify a valid existing signalfd file "
8274 "descriptor, and I<mask> is used to replace the signal set associated with "
8275 "that descriptor."
8276 msgstr ""
8277 "I<fd> 引き数が -1 の場合、 B<signalfd>()  は新しいファイルディスクリプタを生"
8278 "成し、 I<mask> で指定されたシグナル集合をそのファイルディスクリプタに関連付け"
8279 "る。 I<fd> 引き数が -1 以外の場合、 I<fd> には有効な既存の signalfd ファイル"
8280 "ディスクリプタを指定しなければならず、 そのディスクリプタに関連付けられている"
8281 "シグナル集合は I<mask> を使って置き換えられる。"
8282
8283 #. type: Plain text
8284 #: build/C/man2/signalfd.2:77
8285 msgid ""
8286 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
8287 "I<flags> to change the behaviour of B<signalfd>():"
8288 msgstr ""
8289 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
8290 "ることで、 B<signalfd>()  の振舞いを変更することができる。"
8291
8292 #. type: TP
8293 #: build/C/man2/signalfd.2:77
8294 #, no-wrap
8295 msgid "B<SFD_NONBLOCK>"
8296 msgstr "B<SFD_NONBLOCK>"
8297
8298 #. type: TP
8299 #: build/C/man2/signalfd.2:85
8300 #, no-wrap
8301 msgid "B<SFD_CLOEXEC>"
8302 msgstr "B<SFD_CLOEXEC>"
8303
8304 #. type: Plain text
8305 #: build/C/man2/signalfd.2:102
8306 msgid ""
8307 "B<signalfd>()  returns a file descriptor that supports the following "
8308 "operations:"
8309 msgstr ""
8310 "B<signalfd>()  が返すファイルディスクリプタは以下の操作をサポートしている。"
8311
8312 #. type: Plain text
8313 #: build/C/man2/signalfd.2:121
8314 msgid ""
8315 "If one or more of the signals specified in I<mask> is pending for the "
8316 "process, then the buffer supplied to B<read>(2)  is used to return one or "
8317 "more I<signalfd_siginfo> structures (see below) that describe the signals.  "
8318 "The B<read>(2)  returns information for as many signals as are pending and "
8319 "will fit in the supplied buffer.  The buffer must be at least I<sizeof"
8320 "(struct signalfd_siginfo)> bytes.  The return value of the B<read>(2)  is "
8321 "the total number of bytes read."
8322 msgstr ""
8323 "I<mask> に指定されているシグナルのうち一つ以上がそのプロセスに対して 処理待"
8324 "ち (pending) であれば、それらのシグナルの情報が B<read>(2)  に渡されたバッ"
8325 "ファを使って、 I<signalfd_siginfo> 構造体に格納されて返される。 B<read>(2)  "
8326 "は、バッファに格納可能な範囲でできるだけ多くの処理待ちのシグナルに ついての情"
8327 "報を返す。 バッファは最低でも I<sizeof(struct signalfd_siginfo)> バイトの大き"
8328 "さがなければならない。 B<read>(2)  の返り値は読み出されたトータルのバイト数で"
8329 "ある。"
8330
8331 #. type: Plain text
8332 #: build/C/man2/signalfd.2:129
8333 msgid ""
8334 "As a consequence of the B<read>(2), the signals are consumed, so that they "
8335 "are no longer pending for the process (i.e., will not be caught by signal "
8336 "handlers, and cannot be accepted using B<sigwaitinfo>(2))."
8337 msgstr ""
8338 "B<read>(2)  が行われた結果、シグナルは消費され、 これらのシグナルはそのプロセ"
8339 "スに対しては処理待ちではなくなる (つまり、シグナルハンドラで捕捉されることも"
8340 "なく、 B<sigwaitinfo>(2)  を使って受け取ることもできなくなる)。"
8341
8342 #. type: Plain text
8343 #: build/C/man2/signalfd.2:140
8344 msgid ""
8345 "If none of the signals in I<mask> is pending for the process, then the "
8346 "B<read>(2)  either blocks until one of the signals in I<mask> is generated "
8347 "for the process, or fails with the error B<EAGAIN> if the file descriptor "
8348 "has been made nonblocking."
8349 msgstr ""
8350 "I<mask> に指定されているシグナルがそのプロセスに対して一つも処理待ちでなけれ"
8351 "ば、 B<read>(2)  は、 I<mask> で指定されたシグナルのうちいずれか一つがそのプ"
8352 "ロセスに対して発生するまで 停止 (block) する、もしくはファイルディスクリプタ"
8353 "が非停止 (nonblocking)  に設定されている場合はエラー B<EAGAIN> で失敗する。"
8354
8355 #. type: Plain text
8356 #: build/C/man2/signalfd.2:153
8357 msgid ""
8358 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
8359 "B<poll>(2)  B<POLLIN> flag)  if one or more of the signals in I<mask> is "
8360 "pending for the process."
8361 msgstr ""
8362 "I<mask> に指定されたシグナルのうち一つ以上がそのプロセスに対して処理待ちであ"
8363 "れば、 ファイルディスクリプタは読み出し可能となる (B<select>(2)  の "
8364 "I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
8365
8366 #. type: Plain text
8367 #: build/C/man2/signalfd.2:160
8368 msgid ""
8369 "The signalfd file descriptor also supports the other file-descriptor "
8370 "multiplexing APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
8371 msgstr ""
8372 "signalfd ファイルディスクリプタは、これ以外のファイルディスクリプタ 多重 API "
8373 "である B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
8374
8375 #. type: Plain text
8376 #: build/C/man2/signalfd.2:165
8377 msgid ""
8378 "When the file descriptor is no longer required it should be closed.  When "
8379 "all file descriptors associated with the same signalfd object have been "
8380 "closed, the resources for object are freed by the kernel."
8381 msgstr ""
8382 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
8383 "る。 同じ signalfd オブジェクトに関連付けられたファイルディスクリプタが全て "
8384 "クローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
8385
8386 #. type: SS
8387 #: build/C/man2/signalfd.2:165
8388 #, no-wrap
8389 msgid "The signalfd_siginfo structure"
8390 msgstr "signalfd_siginfo 構造体"
8391
8392 #. type: Plain text
8393 #: build/C/man2/signalfd.2:171
8394 msgid ""
8395 "The format of the I<signalfd_siginfo> structure(s) returned by B<read>(2)s "
8396 "from a signalfd file descriptor is as follows:"
8397 msgstr ""
8398 "signalfd ファイルディスクリプタからの B<read>(2)  で返される "
8399 "I<signalfd_siginfo> 構造体のフォーマットは以下の通りである。"
8400
8401 #.  ssi_trapno is unused on most arches
8402 #.  FIXME Since Linux 2.6.37 there is 'uint16_t ssi_addr_lsb'
8403 #.  which is not yet documented
8404 #. type: Plain text
8405 #: build/C/man2/signalfd.2:198
8406 #, no-wrap
8407 msgid ""
8408 "struct signalfd_siginfo {\n"
8409 "    uint32_t ssi_signo;   /* Signal number */\n"
8410 "    int32_t  ssi_errno;   /* Error number (unused) */\n"
8411 "    int32_t  ssi_code;    /* Signal code */\n"
8412 "    uint32_t ssi_pid;     /* PID of sender */\n"
8413 "    uint32_t ssi_uid;     /* Real UID of sender */\n"
8414 "    int32_t  ssi_fd;      /* File descriptor (SIGIO) */\n"
8415 "    uint32_t ssi_tid;     /* Kernel timer ID (POSIX timers)\n"
8416 "    uint32_t ssi_band;    /* Band event (SIGIO) */\n"
8417 "    uint32_t ssi_overrun; /* POSIX timer overrun count */\n"
8418 "    uint32_t ssi_trapno;  /* Trap number that caused signal */\n"
8419 "    int32_t  ssi_status;  /* Exit status or signal (SIGCHLD) */\n"
8420 "    int32_t  ssi_int;     /* Integer sent by sigqueue(3) */\n"
8421 "    uint64_t ssi_ptr;     /* Pointer sent by sigqueue(3) */\n"
8422 "    uint64_t ssi_utime;   /* User CPU time consumed (SIGCHLD) */\n"
8423 "    uint64_t ssi_stime;   /* System CPU time consumed (SIGCHLD) */\n"
8424 "    uint64_t ssi_addr;    /* Address that generated signal\n"
8425 "                             (for hardware-generated signals) */\n"
8426 "    uint8_t  pad[I<X>];      /* Pad size to 128 bytes (allow for\n"
8427 "                              additional fields in the future) */\n"
8428 "};\n"
8429 msgstr ""
8430 "struct signalfd_siginfo {\n"
8431 "struct signalfd_siginfo {\n"
8432 "    uint32_t ssi_signo;   /* シグナル番号 */\n"
8433 "    int32_t  ssi_errno;   /* エラー番号 (未使用) */\n"
8434 "    int32_t  ssi_code;    /* シグナルコード */\n"
8435 "    uint32_t ssi_pid;     /* 送信元の PID */\n"
8436 "    uint32_t ssi_uid;     /* 送信元の実 UID */\n"
8437 "    int32_t  ssi_fd;      /* ファイルディスクリプタ (SIGIO) */\n"
8438 "    uint32_t ssi_tid;     /* カーネルタイマ ID (POSIX タイマ)\n"
8439 "    uint32_t ssi_band;    /* Band イベント (SIGIO) */\n"
8440 "    uint32_t ssi_overrun; /* POSIX タイマのオーバーラン回数 */\n"
8441 "    uint32_t ssi_trapno;  /* シグナルの原因となったトラップ番号 */\n"
8442 "    int32_t  ssi_status;  /* 終了ステータスかシグナル (SIGCHLD) */\n"
8443 "    int32_t  ssi_int;     /* sigqueue(3) から送られた整数 */\n"
8444 "    uint64_t ssi_ptr;     /* sigqueue(3) から送られたポインタ */\n"
8445 "    uint64_t ssi_utime;   /* 消費したユーザ CPU 時間 (SIGCHLD) */\n"
8446 "    uint64_t ssi_stime;   /* 消費したシステム CPU 時間 (SIGCHLD) */\n"
8447 "    uint64_t ssi_addr;    /* シグナルを生成したアドレス\n"
8448 "                             (ハードウェアが生成したシグナルの場合) */\n"
8449 "    uint8_t  pad[I<X>];      /* pad の大きさは 128 バイト\n"
8450 "                             (将来のフィールド追加用の場所の確保) */\n"
8451 "};\n"
8452
8453 #. type: Plain text
8454 #: build/C/man2/signalfd.2:221
8455 msgid ""
8456 "Each of the fields in this structure is analogous to the similarly named "
8457 "field in the I<siginfo_t> structure.  The I<siginfo_t> structure is "
8458 "described in B<sigaction>(2).  Not all fields in the returned "
8459 "I<signalfd_siginfo> structure will be valid for a specific signal; the set "
8460 "of valid fields can be determined from the value returned in the I<ssi_code> "
8461 "field.  This field is the analog of the I<siginfo_t> I<si_code> field; see "
8462 "B<sigaction>(2)  for details."
8463 msgstr ""
8464 "I<signalfd_siginfo> 構造体の各フィールドは、 I<siginfo_t> 構造体の同じような"
8465 "名前のフィールドと同様である。 I<siginfo_t> 構造体については B<sigaction>"
8466 "(2)  に説明がある。 返された I<signalfd_siginfo> 構造体の全てのフィールドがあ"
8467 "るシグナルに対して有効なわけではない。 どのフィールドが有効かは、 "
8468 "I<ssi_code> フィールドで返される値から判定することができる。 このフィールド"
8469 "は I<siginfo_t> の I<si_code> フィールドと同様である。詳細は B<sigaction>"
8470 "(2)  を参照。"
8471
8472 #. type: SS
8473 #: build/C/man2/signalfd.2:221 build/C/man2/timerfd_create.2:269
8474 #, no-wrap
8475 msgid "fork(2) semantics"
8476 msgstr "fork(2) での扱い"
8477
8478 #. type: Plain text
8479 #: build/C/man2/signalfd.2:229
8480 msgid ""
8481 "After a B<fork>(2), the child inherits a copy of the signalfd file "
8482 "descriptor.  A B<read>(2)  from the file descriptor in the child will return "
8483 "information about signals queued to the child."
8484 msgstr ""
8485 "B<fork>(2)  が行われると、子プロセスは signalfd ファイルディスクリプタのコ"
8486 "ピーを 継承する。 子プロセスでこのファイルディスクリプタから B<read>(2)  を行"
8487 "うと、子プロセスに対するキューに入っているシグナルに関する 情報が返される。"
8488
8489 #. type: SS
8490 #: build/C/man2/signalfd.2:229 build/C/man2/timerfd_create.2:281
8491 #, no-wrap
8492 msgid "execve(2) semantics"
8493 msgstr "execve(2) での扱い"
8494
8495 #. type: Plain text
8496 #: build/C/man2/signalfd.2:241
8497 msgid ""
8498 "Just like any other file descriptor, a signalfd file descriptor remains open "
8499 "across an B<execve>(2), unless it has been marked for close-on-exec (see "
8500 "B<fcntl>(2)).  Any signals that were available for reading before the "
8501 "B<execve>(2)  remain available to the newly loaded program.  (This is "
8502 "analogous to traditional signal semantics, where a blocked signal that is "
8503 "pending remains pending across an B<execve>(2).)"
8504 msgstr ""
8505 "他のファイルディスクリプタと全く同様に、 signalfd ファイルディスクリプタも "
8506 "B<execve>(2)  の前後でオープンされたままとなる。但し、そのファイルディスクリ"
8507 "プタに close-on-exec のマーク (B<fcntl>(2)  参照) が付いている場合はクローズ"
8508 "される。 B<execve>(2)  の前に読み出し可能となっていた全てのシグナルは新しく起"
8509 "動されたプログラム でも引き続き読み出し可能である (これは伝統的なシグナルの扱"
8510 "いと同じであり、 処理待ちのブロックされたシグナルは B<execve>(2)  の前後で処"
8511 "理待ちのままとなる)。"
8512
8513 #. type: SS
8514 #: build/C/man2/signalfd.2:241
8515 #, no-wrap
8516 msgid "Thread semantics"
8517 msgstr "スレッドでの扱い"
8518
8519 #. type: Plain text
8520 #: build/C/man2/signalfd.2:251
8521 msgid ""
8522 "The semantics of signalfd file descriptors in a multithreaded program mirror "
8523 "the standard semantics for signals.  In other words, when a thread reads "
8524 "from a signalfd file descriptor, it will read the signals that are directed "
8525 "to the thread itself and the signals that are directed to the process (i.e., "
8526 "the entire thread group).  (A thread will not be able to read signals that "
8527 "are directed to other threads in the process.)"
8528 msgstr ""
8529 "マルチスレッドプログラムにおける signalfd ファイルディスクリプタの扱いは シグ"
8530 "ナルの標準的な扱いと全く同じである。 言い換えると、あるスレッドが signalfd "
8531 "ファイルディスクリプタから 読み出しを行うと、そのスレッド自身宛てのシグナルと"
8532 "プロセス (すなわち スレッドグループ全体) 宛てのシグナルが読み出される。 (ス"
8533 "レッドは同じプロセスの他のスレッド宛てのシグナルを読み出すことはできない。)"
8534
8535 #. type: Plain text
8536 #: build/C/man2/signalfd.2:265
8537 msgid ""
8538 "On success, B<signalfd>()  returns a signalfd file descriptor; this is "
8539 "either a new file descriptor (if I<fd> was -1), or I<fd> if I<fd> was a "
8540 "valid signalfd file descriptor.  On error, -1 is returned and I<errno> is "
8541 "set to indicate the error."
8542 msgstr ""
8543 "成功すると、 B<signalfd>()  は signalfd ファイルディスクリプタを返す。 返され"
8544 "るファイルディスクリプタは、 I<fd> が -1 の場合は新規のファイルディスクリプタ"
8545 "であり、 I<fd> が有効な signalfd ファイルディスクリプタだった場合は I<fd> 自"
8546 "身である。 エラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
8547
8548 #. type: TP
8549 #: build/C/man2/signalfd.2:266 build/C/man2/timerfd_create.2:338
8550 #, no-wrap
8551 msgid "B<EBADF>"
8552 msgstr "B<EBADF>"
8553
8554 #. type: Plain text
8555 #: build/C/man2/signalfd.2:271
8556 msgid "The I<fd> file descriptor is not a valid file descriptor."
8557 msgstr "ファイルディスクリプタ I<fd> が有効なファイルディスクリプタでない。"
8558
8559 #.  or, the
8560 #.  .I sizemask
8561 #.  argument is not equal to
8562 #.  .IR sizeof(sigset_t) ;
8563 #. type: Plain text
8564 #: build/C/man2/signalfd.2:279
8565 msgid "I<fd> is not a valid signalfd file descriptor."
8566 msgstr "I<fd> が有効な signalfd ファイルディスクリプタではない。"
8567
8568 #. type: Plain text
8569 #: build/C/man2/signalfd.2:286 build/C/man2/timerfd_create.2:320
8570 msgid ""
8571 "I<flags> is invalid; or, in Linux 2.6.26 or earlier, I<flags> is nonzero."
8572 msgstr ""
8573 "I<flags> が無効である。もしくは、Linux 2.6.26 以前の場合には I<flags> が 0 以"
8574 "外である。"
8575
8576 #. type: Plain text
8577 #: build/C/man2/signalfd.2:289 build/C/man2/timerfd_create.2:323
8578 msgid "The per-process limit of open file descriptors has been reached."
8579 msgstr ""
8580 "オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。"
8581
8582 #. type: Plain text
8583 #: build/C/man2/signalfd.2:299
8584 msgid "There was insufficient memory to create a new signalfd file descriptor."
8585 msgstr ""
8586 "新しい signalfd ファイルディスクリプタを生成するのに十分なメモリがなかった。"
8587
8588 #.  signalfd() is in glibc 2.7, but reportedly does not build
8589 #. type: Plain text
8590 #: build/C/man2/signalfd.2:307
8591 msgid ""
8592 "B<signalfd>()  is available on Linux since kernel 2.6.22.  Working support "
8593 "is provided in glibc since version 2.8.  The B<signalfd4>()  system call "
8594 "(see NOTES) is available on Linux since kernel 2.6.27."
8595 msgstr ""
8596 "B<signalfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
8597 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<signalfd4>()  "
8598 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
8599 "る。"
8600
8601 #. type: Plain text
8602 #: build/C/man2/signalfd.2:312
8603 msgid "B<signalfd>()  and B<signalfd4>()  are Linux-specific."
8604 msgstr "B<signalfd>()  と B<signalfd4>()  は Linux 固有である。"
8605
8606 #. type: Plain text
8607 #: build/C/man2/signalfd.2:322
8608 msgid ""
8609 "The underlying Linux system call requires an additional argument, I<size_t "
8610 "sizemask>, which specifies the size of the I<mask> argument.  The glibc "
8611 "B<signalfd>()  wrapper function does not include this argument, since it "
8612 "provides the required value for the underlying system call."
8613 msgstr ""
8614 "実際の Linux のシステムコールでは I<size_t sizemask> という引き数が追加で必要"
8615 "である。この引き数で I<mask> のサイズを指定する。 glibc の B<signalfd>()  "
8616 "ラッパー関数にはこの引き数は含まれず、 ラッパー関数が必要な値を計算して内部で"
8617 "呼び出すシステムコールに提供する。"
8618
8619 #. type: Plain text
8620 #: build/C/man2/signalfd.2:336
8621 msgid ""
8622 "A process can create multiple signalfd file descriptors.  This makes it "
8623 "possible to accept different signals on different file descriptors.  (This "
8624 "may be useful if monitoring the file descriptors using B<select>(2), B<poll>"
8625 "(2), or B<epoll>(7): the arrival of different signals will make different "
8626 "descriptors ready.)  If a signal appears in the I<mask> of more than one of "
8627 "the file descriptors, then occurrences of that signal can be read (once) "
8628 "from any one of the descriptors."
8629 msgstr ""
8630 "一つのプロセスは複数の signalfd ファイルディスクリプタを生成することができ"
8631 "る。 これにより、異なるファイルディスクリプタで異なるシグナルを受け取ること"
8632 "が できる (この機能は B<select>(2), B<poll>(2), B<epoll>(7)  を使ってファイル"
8633 "ディスクリプタを監視する場合に有用かもしれない。 異なるシグナルが到着すると、"
8634 "異なるファイルディスクリプタが利用可能に なるからだ)。 一つのシグナルが二つ以"
8635 "上のファイルディスクリプタの I<mask> に含まれている場合、そのシグナルの発生は"
8636 "そのシグナルを I<mask> に含むファイルディスクリプタのうちいずれか一つから読み"
8637 "出すことができる。"
8638
8639 #. type: Plain text
8640 #: build/C/man2/signalfd.2:352
8641 msgid ""
8642 "There are two underlying Linux system calls: B<signalfd>()  and the more "
8643 "recent B<signalfd4>().  The former system call does not implement a I<flags> "
8644 "argument.  The latter system call implements the I<flags> values described "
8645 "above.  Starting with glibc 2.9, the B<signalfd>()  wrapper function will "
8646 "use B<signalfd4>()  where it is available."
8647 msgstr ""
8648 "下層にある Linux システムコールは二種類あり、 B<signalfd>()  と、もっと新し"
8649 "い B<signalfd4>()  である。 B<signalfd>()  は I<flags> 引き数を実装していな"
8650 "い。 B<signalfd4>()  では上記の値の I<flags> が実装されている。 glibc 2.9 以"
8651 "降では、 B<signalfd>()  のラッパー関数は、 B<signalfd4>()  が利用可能であれ"
8652 "ば、これを使用する。"
8653
8654 #.  The fix also was put into 2.6.24.5
8655 #. type: Plain text
8656 #: build/C/man2/signalfd.2:360
8657 msgid ""
8658 "In kernels before 2.6.25, the I<ssi_ptr> and I<ssi_int> fields are not "
8659 "filled in with the data accompanying a signal sent by B<sigqueue>(3)."
8660 msgstr ""
8661 "カーネル 2.6.25 より前では、 B<sigqueue>(3)  により送信されたシグナルと一緒に"
8662 "渡されるデータでは、フィールド I<ssi_ptr> と I<ssi_int> は設定されない。"
8663
8664 #. type: Plain text
8665 #: build/C/man2/signalfd.2:370
8666 msgid ""
8667 "The program below accepts the signals B<SIGINT> and B<SIGQUIT> via a "
8668 "signalfd file descriptor.  The program terminates after accepting a "
8669 "B<SIGQUIT> signal.  The following shell session demonstrates the use of the "
8670 "program:"
8671 msgstr ""
8672 "下記のプログラムは、シグナル B<SIGINT> と B<SIGQUIT> を signalfd ファイルディ"
8673 "スクリプタ経由で受信する。 シグナル B<SIGQUIT> 受信後にプログラムは終了す"
8674 "る。 以下に示すシェルセッションにこのプログラムの使い方を示す。"
8675
8676 #. type: Plain text
8677 #: build/C/man2/signalfd.2:381
8678 #, no-wrap
8679 msgid ""
8680 "$B< ./signalfd_demo>\n"
8681 "B<^C>                   # Control-C generates SIGINT\n"
8682 "Got SIGINT\n"
8683 "B<^C>\n"
8684 "Got SIGINT\n"
8685 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
8686 "Got SIGQUIT\n"
8687 "$\n"
8688 msgstr ""
8689 "$B< ./signalfd_demo>\n"
8690 "B<^C>                   # Control-C generates SIGINT\n"
8691 "Got SIGINT\n"
8692 "B<^C>\n"
8693 "Got SIGINT\n"
8694 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
8695 "Got SIGQUIT\n"
8696 "$\n"
8697
8698 #. type: Plain text
8699 #: build/C/man2/signalfd.2:391
8700 #, no-wrap
8701 msgid ""
8702 "#include E<lt>sys/signalfd.hE<gt>\n"
8703 "#include E<lt>signal.hE<gt>\n"
8704 "#include E<lt>unistd.hE<gt>\n"
8705 "#include E<lt>stdlib.hE<gt>\n"
8706 "#include E<lt>stdio.hE<gt>\n"
8707 msgstr ""
8708 "#include E<lt>sys/signalfd.hE<gt>\n"
8709 "#include E<lt>signal.hE<gt>\n"
8710 "#include E<lt>unistd.hE<gt>\n"
8711 "#include E<lt>stdlib.hE<gt>\n"
8712 "#include E<lt>stdio.hE<gt>\n"
8713
8714 #. type: Plain text
8715 #: build/C/man2/signalfd.2:402
8716 #, no-wrap
8717 msgid ""
8718 "int\n"
8719 "main(int argc, char *argv[])\n"
8720 "{\n"
8721 "    sigset_t mask;\n"
8722 "    int sfd;\n"
8723 "    struct signalfd_siginfo fdsi;\n"
8724 "    ssize_t s;\n"
8725 msgstr ""
8726 "int\n"
8727 "main(int argc, char *argv[])\n"
8728 "{\n"
8729 "    sigset_t mask;\n"
8730 "    int sfd;\n"
8731 "    struct signalfd_siginfo fdsi;\n"
8732 "    ssize_t s;\n"
8733
8734 #. type: Plain text
8735 #: build/C/man2/signalfd.2:406
8736 #, no-wrap
8737 msgid ""
8738 "    sigemptyset(&mask);\n"
8739 "    sigaddset(&mask, SIGINT);\n"
8740 "    sigaddset(&mask, SIGQUIT);\n"
8741 msgstr ""
8742 "    sigemptyset(&mask);\n"
8743 "    sigaddset(&mask, SIGINT);\n"
8744 "    sigaddset(&mask, SIGQUIT);\n"
8745
8746 #. type: Plain text
8747 #: build/C/man2/signalfd.2:409
8748 #, no-wrap
8749 msgid ""
8750 "    /* Block signals so that they aren\\(aqt handled\n"
8751 "       according to their default dispositions */\n"
8752 msgstr ""
8753 "    /* Block signals so that they aren\\(aqt handled\n"
8754 "       according to their default dispositions */\n"
8755
8756 #. type: Plain text
8757 #: build/C/man2/signalfd.2:412
8758 #, no-wrap
8759 msgid ""
8760 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
8761 "        handle_error(\"sigprocmask\");\n"
8762 msgstr ""
8763 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
8764 "        handle_error(\"sigprocmask\");\n"
8765
8766 #. type: Plain text
8767 #: build/C/man2/signalfd.2:416
8768 #, no-wrap
8769 msgid ""
8770 "    sfd = signalfd(-1, &mask, 0);\n"
8771 "    if (sfd == -1)\n"
8772 "        handle_error(\"signalfd\");\n"
8773 msgstr ""
8774 "    sfd = signalfd(-1, &mask, 0);\n"
8775 "    if (sfd == -1)\n"
8776 "        handle_error(\"signalfd\");\n"
8777
8778 #. type: Plain text
8779 #: build/C/man2/signalfd.2:421
8780 #, no-wrap
8781 msgid ""
8782 "    for (;;) {\n"
8783 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
8784 "        if (s != sizeof(struct signalfd_siginfo))\n"
8785 "            handle_error(\"read\");\n"
8786 msgstr ""
8787 "    for (;;) {\n"
8788 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
8789 "        if (s != sizeof(struct signalfd_siginfo))\n"
8790 "            handle_error(\"read\");\n"
8791
8792 #. type: Plain text
8793 #: build/C/man2/signalfd.2:432
8794 #, no-wrap
8795 msgid ""
8796 "        if (fdsi.ssi_signo == SIGINT) {\n"
8797 "            printf(\"Got SIGINT\\en\");\n"
8798 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
8799 "            printf(\"Got SIGQUIT\\en\");\n"
8800 "            exit(EXIT_SUCCESS);\n"
8801 "        } else {\n"
8802 "            printf(\"Read unexpected signal\\en\");\n"
8803 "        }\n"
8804 "    }\n"
8805 "}\n"
8806 msgstr ""
8807 "        if (fdsi.ssi_signo == SIGINT) {\n"
8808 "            printf(\"Got SIGINT\\en\");\n"
8809 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
8810 "            printf(\"Got SIGQUIT\\en\");\n"
8811 "            exit(EXIT_SUCCESS);\n"
8812 "        } else {\n"
8813 "            printf(\"Read unexpected signal\\en\");\n"
8814 "        }\n"
8815 "    }\n"
8816 "}\n"
8817
8818 #. type: Plain text
8819 #: build/C/man2/signalfd.2:446
8820 msgid ""
8821 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
8822 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
8823 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
8824 msgstr ""
8825 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
8826 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
8827 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
8828
8829 #. type: TH
8830 #: build/C/man3/sigpause.3:25
8831 #, no-wrap
8832 msgid "SIGPAUSE"
8833 msgstr "SIGPAUSE"
8834
8835 #. type: TH
8836 #: build/C/man3/sigpause.3:25
8837 #, no-wrap
8838 msgid "2010-09-12"
8839 msgstr "2010-09-12"
8840
8841 #. type: Plain text
8842 #: build/C/man3/sigpause.3:28
8843 msgid "sigpause - atomically release blocked signals and wait for interrupt"
8844 msgstr "sigpause - ブロックされたシグナルをアトミックに解放して割り込みを待つ"
8845
8846 #. type: Plain text
8847 #: build/C/man3/sigpause.3:33
8848 #, no-wrap
8849 msgid "B<int sigpause(int >I<sigmask>B<);  /* BSD */>\n"
8850 msgstr "B<int sigpause(int >I<sigmask>B<);  /* BSD */>\n"
8851
8852 #. type: Plain text
8853 #: build/C/man3/sigpause.3:35
8854 #, no-wrap
8855 msgid "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
8856 msgstr "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
8857
8858 #. type: Plain text
8859 #: build/C/man3/sigpause.3:41
8860 msgid "Don't use this function.  Use B<sigsuspend>(2)  instead."
8861 msgstr "この関数を使わないこと。 代わりに B<sigsuspend>(2)  を使うこと。"
8862
8863 #. type: Plain text
8864 #: build/C/man3/sigpause.3:48
8865 msgid ""
8866 "The function B<sigpause>()  is designed to wait for some signal.  It changes "
8867 "the process's signal mask (set of blocked signals), and then waits for a "
8868 "signal to arrive.  Upon arrival of a signal, the original signal mask is "
8869 "restored."
8870 msgstr ""
8871 "関数 B<sigpause>()  はシグナルを待つように設計されている。 この関数はプロセス"
8872 "のシグナルマスク (ブロックされたシグナルのセット) を変更し、 シグナルが到着す"
8873 "るのを待つ。 シグナルが到着すると、シグナルマスクは元に戻される。"
8874
8875 #. type: Plain text
8876 #: build/C/man3/sigpause.3:56
8877 msgid ""
8878 "If B<sigpause>()  returns, it was interrupted by a signal and the return "
8879 "value is -1 with I<errno> set to B<EINTR>."
8880 msgstr ""
8881 "B<sigpause>()  が返った場合、この関数はシグナルによって割り込まれている。 返"
8882 "り値は -1 で、 I<errno> は B<EINTR> に設定される。"
8883
8884 #. type: Plain text
8885 #: build/C/man3/sigpause.3:60
8886 msgid "The System V version of B<sigpause>()  is standardized in POSIX.1-2001."
8887 msgstr "System V 版の B<sigpause>()  は POSIX.1-2001 で標準化されている。"
8888
8889 #.  __xpg_sigpause: UNIX 95, spec 1170, SVID, SVr4, XPG
8890 #. type: Plain text
8891 #: build/C/man3/sigpause.3:77
8892 msgid ""
8893 "The classical BSD version of this function appeared in 4.2BSD.  It sets the "
8894 "process's signal mask to I<sigmask>.  UNIX 95 standardized the incompatible "
8895 "System V version of this function, which removes only the specified signal "
8896 "I<sig> from the process's signal mask.  The unfortunate situation with two "
8897 "incompatible functions with the same name was solved by the B<\\%sigsuspend>"
8898 "(2)  function, that takes a I<sigset_t *> argument (instead of an I<int>)."
8899 msgstr ""
8900 "この関数の古典的な BSD 版は 4.2BSD で登場した。 この関数はプロセスのシグナル"
8901 "マスクを I<sigmask> に設定する。 UNIX 95 では BSD 版と互換性のない System V "
8902 "版のこの関数が標準化された。 UNIX 95 版は、指定されたシグナル I<sig> をプロセ"
8903 "スのシグナルマスクから削除するだけである。 同じ名前で互換性のない 2 つの関数"
8904 "があるという不幸な事態は、 B<\\%sigsuspend>(2)  関数によって解消された。 この"
8905 "関数は (I<int> の代わりに)  B<sigset_t *> 引き数をとる。"
8906
8907 #. type: Plain text
8908 #: build/C/man3/sigpause.3:80
8909 msgid ""
8910 "On Linux, this routine is a system call only on the Sparc (sparc64)  "
8911 "architecture."
8912 msgstr ""
8913 "Linux では、このルーチンは Sparc (sparc64) アーキテクチャでのみ システムコー"
8914 "ルとなっている。"
8915
8916 #. type: Plain text
8917 #: build/C/man3/sigpause.3:82
8918 #, fuzzy
8919 #| msgid "Libc4 and libc5 only know about the BSD version."
8920 msgid "Libc4 and libc5 know only about the BSD version."
8921 msgstr "libc4 と libc5 には BSD 版しかない。"
8922
8923 #.  For the BSD version, one usually uses a zero
8924 #.  .I sigmask
8925 #.  to indicate that no signals are to be blocked.
8926 #. type: Plain text
8927 #: build/C/man3/sigpause.3:98
8928 msgid ""
8929 "Glibc uses the BSD version if the B<_BSD_SOURCE> feature test macro is "
8930 "defined and none of B<_POSIX_SOURCE>, B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, "
8931 "B<_GNU_SOURCE>, or B<_SVID_SOURCE> is defined.  Otherwise, the System V "
8932 "version is used."
8933 msgstr ""
8934 "機能検査マクロ B<_BSD_SOURCE> が定義され、 B<_POSIX_SOURCE>, "
8935 "B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, B<_GNU_SOURCE>, B<_SVID_SOURCE> のいず"
8936 "れも定義されていない場合、 glibc は BSD 版を使う。 それ以外の場合には、"
8937 "System V 版を使用する。"
8938
8939 #. type: Plain text
8940 #: build/C/man3/sigpause.3:106
8941 msgid ""
8942 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<sigblock>"
8943 "(3), B<sigvec>(3), B<feature_test_macros>(7)"
8944 msgstr ""
8945 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<sigblock>"
8946 "(3), B<sigvec>(3), B<feature_test_macros>(7)"
8947
8948 #. type: TH
8949 #: build/C/man2/sigpending.2:29
8950 #, no-wrap
8951 msgid "SIGPENDING"
8952 msgstr "SIGPENDING"
8953
8954 #. type: TH
8955 #: build/C/man2/sigpending.2:29
8956 #, no-wrap
8957 msgid "2008-10-04"
8958 msgstr "2008-10-04"
8959
8960 #. type: Plain text
8961 #: build/C/man2/sigpending.2:32
8962 msgid "sigpending - examine pending signals"
8963 msgstr "sigpending - 処理待ちのシグナルの検査"
8964
8965 #. type: Plain text
8966 #: build/C/man2/sigpending.2:36
8967 msgid "B<int sigpending(sigset_t *>I<set>B<);>"
8968 msgstr "B<int sigpending(sigset_t *>I<set>B<);>"
8969
8970 #. type: Plain text
8971 #: build/C/man2/sigpending.2:45
8972 msgid ""
8973 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
8974 "_POSIX_SOURCE"
8975 msgstr ""
8976 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
8977 "_POSIX_SOURCE"
8978
8979 #. type: Plain text
8980 #: build/C/man2/sigpending.2:53
8981 msgid ""
8982 "B<sigpending>()  returns the set of signals that are pending for delivery to "
8983 "the calling thread (i.e., the signals which have been raised while "
8984 "blocked).  The mask of pending signals is returned in I<set>."
8985 msgstr ""
8986 "B<sigpending>()  は、呼び出し元のスレッドへの配送を待っている (pending) シグ"
8987 "ナル集合 (すなわち、禁止中に発生したシグナル) を返す。 処理待ちのシグナルのマ"
8988 "スクが I<set> に格納される。"
8989
8990 #. type: Plain text
8991 #: build/C/man2/sigpending.2:56
8992 msgid "B<sigpending>()  returns 0 on success and -1 on error."
8993 msgstr "B<sigpending>()  は成功すれば 0 を返し、エラーならば -1 を返す。"
8994
8995 #. type: Plain text
8996 #: build/C/man2/sigpending.2:61
8997 msgid ""
8998 "I<set> points to memory which is not a valid part of the process address "
8999 "space."
9000 msgstr ""
9001 "I<set> が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。"
9002
9003 #. type: Plain text
9004 #: build/C/man2/sigpending.2:72
9005 msgid ""
9006 "The set of signals that is pending for a thread is the union of the set of "
9007 "signals that is pending for that thread and the set of signals that is "
9008 "pending for the process as a whole; see B<signal>(7)."
9009 msgstr ""
9010 "あるスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体への処理待ち"
9011 "のシグナル集合と、プロセス全体への処理待ちの シグナル集合をあわせたものであ"
9012 "る。 B<signal>(7)  参照。"
9013
9014 #. type: Plain text
9015 #: build/C/man2/sigpending.2:84
9016 msgid ""
9017 "In versions of glibc up to and including 2.2.1, there is a bug in the "
9018 "wrapper function for B<sigpending>()  which means that information about "
9019 "pending real-time signals is not correctly returned."
9020 msgstr ""
9021 "バージョン 2.2.1 以前の glibc では、 B<sigpending>()  のラッパー関数に、処理"
9022 "待ちのリアルタイムシグナルに関する情報が 正しく返されないというバグがある。"
9023
9024 #. type: Plain text
9025 #: build/C/man2/sigpending.2:92
9026 msgid ""
9027 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), B<sigsuspend>"
9028 "(2), B<sigsetops>(3), B<signal>(7)"
9029 msgstr ""
9030 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), B<sigsuspend>"
9031 "(2), B<sigsetops>(3), B<signal>(7)"
9032
9033 #. type: TH
9034 #: build/C/man2/sigprocmask.2:29
9035 #, no-wrap
9036 msgid "SIGPROCMASK"
9037 msgstr "SIGPROCMASK"
9038
9039 #. type: TH
9040 #: build/C/man2/sigprocmask.2:29
9041 #, no-wrap
9042 msgid "2012-04-15"
9043 msgstr "2012-04-15"
9044
9045 #. type: Plain text
9046 #: build/C/man2/sigprocmask.2:32
9047 msgid "sigprocmask - examine and change blocked signals"
9048 msgstr "sigprocmask - 禁止するシグナルの確認と変更"
9049
9050 #. type: Plain text
9051 #: build/C/man2/sigprocmask.2:37
9052 msgid ""
9053 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
9054 "*>I<oldset>B<);>"
9055 msgstr ""
9056 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
9057 "*>I<oldset>B<);>"
9058
9059 #. type: Plain text
9060 #: build/C/man2/sigprocmask.2:46
9061 msgid ""
9062 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9063 "_POSIX_SOURCE"
9064 msgstr ""
9065 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9066 "_POSIX_SOURCE"
9067
9068 #. type: Plain text
9069 #: build/C/man2/sigprocmask.2:55
9070 msgid ""
9071 "B<sigprocmask>()  is used to fetch and/or change the signal mask of the "
9072 "calling thread.  The signal mask is the set of signals whose delivery is "
9073 "currently blocked for the caller (see also B<signal>(7)  for more details)."
9074 msgstr ""
9075 "B<sigprocmask>()  を使うと、呼び出したスレッドのシグナルマスクの取得/変更がで"
9076 "きる。 シグナルマスクは、呼び出し元に対して現在配送が禁止されているシグナル"
9077 "の 集合のことである (詳細については B<signal>(7)  も参照のこと)。"
9078
9079 #. type: Plain text
9080 #: build/C/man2/sigprocmask.2:59
9081 msgid ""
9082 "The behavior of the call is dependent on the value of I<how>, as follows."
9083 msgstr "このコールの動作は I<how> の値によって決まる:"
9084
9085 #. type: TP
9086 #: build/C/man2/sigprocmask.2:59
9087 #, no-wrap
9088 msgid "B<SIG_BLOCK>"
9089 msgstr "B<SIG_BLOCK>"
9090
9091 #. type: Plain text
9092 #: build/C/man2/sigprocmask.2:64
9093 msgid ""
9094 "The set of blocked signals is the union of the current set and the I<set> "
9095 "argument."
9096 msgstr ""
9097 "禁止されたシグナルの集合は現在の値と I<set> 引き数を結合したものとなる。"
9098
9099 #. type: TP
9100 #: build/C/man2/sigprocmask.2:64
9101 #, no-wrap
9102 msgid "B<SIG_UNBLOCK>"
9103 msgstr "B<SIG_UNBLOCK>"
9104
9105 #. type: Plain text
9106 #: build/C/man2/sigprocmask.2:70
9107 msgid ""
9108 "The signals in I<set> are removed from the current set of blocked signals.  "
9109 "It is permissible to attempt to unblock a signal which is not blocked."
9110 msgstr ""
9111 "現在禁止されているシグナルの集合から I<set> にあるシグナルを取り除く。禁止さ"
9112 "れていないシグナルを取り除こうと することも認められている。"
9113
9114 #. type: TP
9115 #: build/C/man2/sigprocmask.2:70
9116 #, no-wrap
9117 msgid "B<SIG_SETMASK>"
9118 msgstr "B<SIG_SETMASK>"
9119
9120 #. type: Plain text
9121 #: build/C/man2/sigprocmask.2:74
9122 msgid "The set of blocked signals is set to the argument I<set>."
9123 msgstr "禁止されているシグナルの集合に I<set> 引き数を設定する。"
9124
9125 #. type: Plain text
9126 #: build/C/man2/sigprocmask.2:79
9127 msgid ""
9128 "If I<oldset> is non-NULL, the previous value of the signal mask is stored in "
9129 "I<oldset>."
9130 msgstr ""
9131 "I<oldset> が NULL でなければ、シグナルマスクの今までの値を I<oldset> に格納す"
9132 "る。"
9133
9134 #. type: Plain text
9135 #: build/C/man2/sigprocmask.2:88
9136 msgid ""
9137 "If I<set> is NULL, then the signal mask is unchanged (i.e., I<how> is "
9138 "ignored), but the current value of the signal mask is nevertheless returned "
9139 "in I<oldset> (if it is not NULL)."
9140 msgstr ""
9141 "I<set> が NULL であれば、シグナルマスクは変更されない (すなわち、 I<how> は無"
9142 "視される)。 I<set> の値にかかわらず、現在のシグナルマスクの値は I<oldset> に"
9143 "入れて返される (但し、 I<oldset> が NULL でない場合)。"
9144
9145 #. type: Plain text
9146 #: build/C/man2/sigprocmask.2:93
9147 msgid ""
9148 "The use of B<sigprocmask>()  is unspecified in a multithreaded process; see "
9149 "B<pthread_sigmask>(3)."
9150 msgstr ""
9151 "マルチスレッドのプロセスで B<sigprocmask>()  を使用した場合の動作は規定されて"
9152 "いない。 B<pthread_sigmask>(3)  を参照のこと。"
9153
9154 #. type: Plain text
9155 #: build/C/man2/sigprocmask.2:96
9156 msgid "B<sigprocmask>()  returns 0 on success and -1 on error."
9157 msgstr "B<sigprocmask>()  は成功すれば 0 を返し、エラーならば -1 を返す。"
9158
9159 #. type: Plain text
9160 #: build/C/man2/sigprocmask.2:104
9161 msgid ""
9162 "the I<set> or I<oldset> argument points outside the process's allocated "
9163 "address space."
9164 msgstr ""
9165 "引き数 I<set> か I<oldset> がプロセスに割り当てられた\n"
9166 "アドレス空間の外を指している。"
9167
9168 #. type: Plain text
9169 #: build/C/man2/sigprocmask.2:109
9170 msgid "The value specified in I<how> was invalid."
9171 msgstr "I<how> に指定された値が有効ではない。"
9172
9173 #. type: Plain text
9174 #: build/C/man2/sigprocmask.2:115
9175 msgid ""
9176 "It is not possible to block B<SIGKILL> or B<SIGSTOP>.  Attempts to do so are "
9177 "silently ignored."
9178 msgstr ""
9179 "B<SIGKILL> や B<SIGSTOP> を禁止することはできない。 禁止しようとしても黙って"
9180 "無視される。"
9181
9182 #. type: Plain text
9183 #: build/C/man2/sigprocmask.2:117
9184 msgid "Each of the threads in a process has its own signal mask."
9185 msgstr "プロセス内の各スレッドはそれぞれ専用のシグナルマスクを持つ。"
9186
9187 #. type: Plain text
9188 #: build/C/man2/sigprocmask.2:137
9189 msgid ""
9190 "If B<SIGBUS>, B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> are generated while they "
9191 "are blocked, the result is undefined, unless the signal was generated by "
9192 "B<kill>(2), B<sigqueue>(3), or B<raise>(3)."
9193 msgstr ""
9194 "シグナル B<SIGBUS>, B<SIGFPE>, B<SIGILL>, B<SIGSEGV> が禁止されている間に生成"
9195 "された場合で、 そのシグナルが B<kill>(2), B<sigqueue>(3), B<raise>(3)  によっ"
9196 "て生成されたものでないときには、 その後の動作は未定義である。"
9197
9198 #. type: Plain text
9199 #: build/C/man2/sigprocmask.2:152
9200 msgid ""
9201 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
9202 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
9203 "B<signal>(7)"
9204 msgstr ""
9205 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
9206 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
9207 "B<signal>(7)"
9208
9209 #. type: TH
9210 #: build/C/man3/sigqueue.3:28
9211 #, no-wrap
9212 msgid "SIGQUEUE"
9213 msgstr "SIGQUEUE"
9214
9215 #. type: TH
9216 #: build/C/man3/sigqueue.3:28
9217 #, no-wrap
9218 msgid "2012-03-25"
9219 msgstr "2012-03-25"
9220
9221 #. type: Plain text
9222 #: build/C/man3/sigqueue.3:31
9223 msgid "sigqueue - queue a signal and data to a process"
9224 msgstr "sigqueue - シグナルとデータをプロセスに送る"
9225
9226 #. type: Plain text
9227 #: build/C/man3/sigqueue.3:35
9228 msgid ""
9229 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
9230 ">I<value>B<);>"
9231 msgstr ""
9232 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
9233 ">I<value>B<);>"
9234
9235 #. type: Plain text
9236 #: build/C/man3/sigqueue.3:43
9237 msgid "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
9238 msgstr "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
9239
9240 #. type: Plain text
9241 #: build/C/man3/sigqueue.3:55
9242 msgid ""
9243 "B<sigqueue>()  sends the signal specified in I<sig> to the process whose PID "
9244 "is given in I<pid>.  The permissions required to send a signal are the same "
9245 "as for B<kill>(2).  As with B<kill>(2), the null signal (0) can be used to "
9246 "check if a process with a given PID exists."
9247 msgstr ""
9248 "B<sigqueue>()  は I<sig> で指定されたシグナルを、PID が I<pid> であるプロセス"
9249 "に送る。 シグナルを送るのに必要な権限は B<kill>(2)  と同じである。 B<kill>"
9250 "(2)  と同様に、ヌル・シグナル (0) を使って 指定した PID のプロセスが存在する"
9251 "かをチェックすることができる。"
9252
9253 #. type: Plain text
9254 #: build/C/man3/sigqueue.3:60
9255 msgid ""
9256 "The I<value> argument is used to specify an accompanying item of data "
9257 "(either an integer or a pointer value) to be sent with the signal, and has "
9258 "the following type:"
9259 msgstr ""
9260 "I<value> 引き数はシグナルと一緒に送るデータの付属アイテムを指定する。 "
9261 "I<value> は (整数またはポインタの値であり) 以下のような型である。"
9262
9263 #. type: Plain text
9264 #: build/C/man3/sigqueue.3:67
9265 #, no-wrap
9266 msgid ""
9267 "union sigval {\n"
9268 "    int   sival_int;\n"
9269 "    void *sival_ptr;\n"
9270 "};\n"
9271 msgstr ""
9272 "union sigval {\n"
9273 "    int   sival_int;\n"
9274 "    void *sival_ptr;\n"
9275 "};\n"
9276
9277 #. type: Plain text
9278 #: build/C/man3/sigqueue.3:83
9279 msgid ""
9280 "If the receiving process has installed a handler for this signal using the "
9281 "B<SA_SIGINFO> flag to B<sigaction>(2), then it can obtain this data via the "
9282 "I<si_value> field of the I<siginfo_t> structure passed as the second "
9283 "argument to the handler.  Furthermore, the I<si_code> field of that "
9284 "structure will be set to B<SI_QUEUE>."
9285 msgstr ""
9286 "受取先のプロセスに、このシグナルに対するハンドラを (B<sigaction>(2)  に "
9287 "B<SA_SIGINFO> を指定して) インストールしておくと、 そのハンドラの第 2 引き数"
9288 "に渡される I<siginfo_t> 構造体の I<si_value> フィールドによって、このデータを"
9289 "取得できる。 さらに、この構造体の I<si_code> フィールドは B<SI_QUEUE> に設定"
9290 "される。"
9291
9292 #. type: Plain text
9293 #: build/C/man3/sigqueue.3:91
9294 msgid ""
9295 "On success, B<sigqueue>()  returns 0, indicating that the signal was "
9296 "successfully queued to the receiving process.  Otherwise -1 is returned and "
9297 "I<errno> is set to indicate the error."
9298 msgstr ""
9299 "成功した場合、 B<sigqueue>()  は 0 を返す。 これは受け取り側プロセスの待ち行"
9300 "列に シグナルが正しく入れられたことを示す。 失敗した場合は -1 が返され、 "
9301 "I<errno> がエラーを表す値に設定される。"
9302
9303 #. type: Plain text
9304 #: build/C/man3/sigqueue.3:102
9305 msgid "I<sig> was invalid."
9306 msgstr "I<sig> が不正である。"
9307
9308 #. type: Plain text
9309 #: build/C/man3/sigqueue.3:108
9310 msgid ""
9311 "The process does not have permission to send the signal to the receiving "
9312 "process.  For the required permissions, see B<kill>(2)."
9313 msgstr ""
9314 "このプロセスには、受け取り側プロセスにシグナルを送る権限がない。 必要な権限に"
9315 "ついては、 B<kill>(2)  を参照すること。"
9316
9317 #. type: Plain text
9318 #: build/C/man3/sigqueue.3:112
9319 msgid "No process has a PID matching I<pid>."
9320 msgstr "I<pid> にマッチする PID のプロセスがない。"
9321
9322 #. type: Plain text
9323 #: build/C/man3/sigqueue.3:114
9324 msgid "This system call first appeared in Linux 2.2."
9325 msgstr "このシステムコールは Linux 2.2 で初めて登場した。"
9326
9327 #. type: Plain text
9328 #: build/C/man3/sigqueue.3:124
9329 msgid ""
9330 "If this function results in the sending of a signal to the process that "
9331 "invoked it, and that signal was not blocked by the calling thread, and no "
9332 "other threads were willing to handle this signal (either by having it "
9333 "unblocked, or by waiting for it using B<sigwait>(3)), then at least some "
9334 "signal must be delivered to this thread before this function returns."
9335 msgstr ""
9336 "この関数を呼び出したプロセスにこの関数がシグナルを送ったときに、 シグナルが呼"
9337 "び出し側スレッドにブロックされず、 かつ (シグナルがブロックされなかった、また"
9338 "は B<sigwait>(3)  を使用するのを待っていることにより)  このシグナルを扱うス"
9339 "レッドが何もない場合は、 この関数がリターンする前に、少なくとも そのスレッド"
9340 "に対してシグナルが配送されていなければならない。"
9341
9342 #. type: Plain text
9343 #: build/C/man3/sigqueue.3:139
9344 msgid ""
9345 "On Linux, this function is implemented using the B<rt_sigqueueinfo>(2)  "
9346 "system call.  The system call differs in its third argument, which is the "
9347 "I<siginfo_t> structure that will be supplied to the receiving process's "
9348 "signal handler or returned by the receiving process's B<sigtimedwait>(2)  "
9349 "call.  Inside the glibc B<sigqueue>()  wrapper, this argument, I<uinfo>, is "
9350 "initialized as follows:"
9351 msgstr ""
9352 "Linux では、この関数は B<rt_sigqueueinfo>(2)  システムコールを使って実装され"
9353 "ている。 両者には 3 番目の引き数に違いがあり、 B<rt_sigqueueinfo>(2)  では 3 "
9354 "番目の引き数は I<siginfo_t> 構造体である。 I<siginfo_t> 構造体は、シグナルを"
9355 "受信するプロセスのシグナルハンドラに渡されたり、 シグナル受信プロセスの "
9356 "B<sigtimedwait>(2)  システムコールから返されたりする。 glibc の B<sigqueue>"
9357 "()  ラッパー関数内部では、 この引き数 I<uinfo> は以下のように初期化される。"
9358
9359 #. type: Plain text
9360 #: build/C/man3/sigqueue.3:147
9361 #, no-wrap
9362 msgid ""
9363 "uinfo.si_signo = sig;      /* argument supplied to sigqueue() */\n"
9364 "uinfo.si_code = SI_QUEUE;\n"
9365 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
9366 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
9367 "uinfo.si_value = val;      /* argument supplied to sigqueue() */\n"
9368 msgstr ""
9369 "uinfo.si_signo = sig;      /* argument supplied to sigqueue() */\n"
9370 "uinfo.si_code = SI_QUEUE;\n"
9371 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
9372 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
9373 "uinfo.si_value = val;      /* argument supplied to sigqueue() */\n"
9374
9375 #. type: Plain text
9376 #: build/C/man3/sigqueue.3:157
9377 msgid ""
9378 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
9379 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
9380 msgstr ""
9381 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
9382 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
9383
9384 #. type: TH
9385 #: build/C/man2/sigreturn.2:29
9386 #, no-wrap
9387 msgid "SIGRETURN"
9388 msgstr "SIGRETURN"
9389
9390 #. type: TH
9391 #: build/C/man2/sigreturn.2:29
9392 #, no-wrap
9393 msgid "2008-06-26"
9394 msgstr "2008-06-26"
9395
9396 #. type: Plain text
9397 #: build/C/man2/sigreturn.2:32
9398 msgid "sigreturn - return from signal handler and cleanup stack frame"
9399 msgstr "sigreturn - シグナル・ハンドラから返り、スタックを掃除する"
9400
9401 #. type: Plain text
9402 #: build/C/man2/sigreturn.2:34
9403 msgid "B<int sigreturn(unsigned long >I<__unused>B<);>"
9404 msgstr "B<int sigreturn(unsigned long >I<__unused>B<);>"
9405
9406 #. type: Plain text
9407 #: build/C/man2/sigreturn.2:42
9408 msgid ""
9409 "When the Linux kernel creates the stack frame for a signal handler, a call "
9410 "to B<sigreturn>()  is inserted into the stack frame so that upon return from "
9411 "the signal handler, B<sigreturn>()  will be called."
9412 msgstr ""
9413 "Linux カーネルは、 シグナル・ハンドラ用にスタック・フレームを作成する際、 "
9414 "B<sigreturn>()  をスタック・フレームに挿入し、シグナル・ハンドラが返るときに "
9415 "B<sigreturn>()  が呼ばれるようにする。"
9416
9417 #. type: Plain text
9418 #: build/C/man2/sigreturn.2:53
9419 msgid ""
9420 "This B<sigreturn>()  call undoes everything that was done\\(emchanging the "
9421 "process's signal mask, switching stacks (see B<sigaltstack>(2))\\(emin order "
9422 "to invoke the signal handler: it restores the process's signal mask, "
9423 "switches stacks, and restores the process's context (registers, processor "
9424 "flags), so that the process directly resumes execution at the point where it "
9425 "was interrupted by the signal."
9426 msgstr ""
9427 "B<sigreturn>()  は、シグナル・ハンドラを起動するために行ったことの全て \\(em "
9428 "プロセスのシグナルマスクの変更、スタックの切り替え (B<sigaltstack>(2)  参照) "
9429 "\\(em の取り消しを行う。 プロセスのシグナルマスクの復元、スタックの切り替"
9430 "え、 プロセスのコンテキスト (レジスタ、プロセッサ・フラグ) の復元を行い、 プ"
9431 "ロセスがシグナルにより割り込まれた場所からそのまま実行を 再開できるようにす"
9432 "る。"
9433
9434 #. type: Plain text
9435 #: build/C/man2/sigreturn.2:56
9436 msgid "B<sigreturn>()  never returns."
9437 msgstr "B<sigreturn>()  が返ることはない。"
9438
9439 #. type: SH
9440 #: build/C/man2/sigreturn.2:56
9441 #, no-wrap
9442 msgid "FILES"
9443 msgstr "ファイル"
9444
9445 #. type: Plain text
9446 #: build/C/man2/sigreturn.2:58
9447 msgid "/usr/src/linux/arch/i386/kernel/signal.c"
9448 msgstr "/usr/src/linux/arch/i386/kernel/signal.c"
9449
9450 #. type: Plain text
9451 #: build/C/man2/sigreturn.2:60
9452 msgid "/usr/src/linux/arch/alpha/kernel/entry.S"
9453 msgstr "/usr/src/linux/arch/alpha/kernel/entry.S"
9454
9455 #. type: Plain text
9456 #: build/C/man2/sigreturn.2:64
9457 msgid ""
9458 "B<sigreturn>()  is specific to Linux and should not be used in programs "
9459 "intended to be portable."
9460 msgstr ""
9461 "B<sigreturn>()  は Linux 特有であり、移植を意図したプログラムでは使用してはい"
9462 "けない。"
9463
9464 #. type: Plain text
9465 #: build/C/man2/sigreturn.2:74
9466 msgid ""
9467 "The B<sigreturn>()  call is used by the kernel to implement signal "
9468 "handlers.  It should B<never> be called directly.  Better yet, the specific "
9469 "use of the I<__unused> argument varies depending on the architecture."
9470 msgstr ""
9471 "B<sigreturn>()  コールは、シグナル・ハンドラを実装するためにカーネルにより使"
9472 "用される。 これを直接呼び出しては B<決して> いけない。さらに I<__unused> 引き"
9473 "数がどのように使われるかはそのアーキテクチャに依存して変化する。"
9474
9475 #. type: Plain text
9476 #: build/C/man2/sigreturn.2:79
9477 msgid "B<kill>(2), B<sigaltstack>(2), B<signal>(2), B<signal>(7)"
9478 msgstr "B<kill>(2), B<sigaltstack>(2), B<signal>(2), B<signal>(7)"
9479
9480 #. type: TH
9481 #: build/C/man3/sigset.3:26
9482 #, no-wrap
9483 msgid "SIGSET"
9484 msgstr "SIGSET"
9485
9486 #. type: Plain text
9487 #: build/C/man3/sigset.3:29
9488 msgid "sigset, sighold, sigrelse, sigignore - System V signal API"
9489 msgstr "sigset, sighold, sigrelse, sigignore - System V 版シグナル API"
9490
9491 #. type: Plain text
9492 #: build/C/man3/sigset.3:35
9493 msgid "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
9494 msgstr "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
9495
9496 #. type: Plain text
9497 #: build/C/man3/sigset.3:37
9498 msgid "B<int sighold(int >I<sig>B<);>"
9499 msgstr "B<int sighold(int >I<sig>B<);>"
9500
9501 #. type: Plain text
9502 #: build/C/man3/sigset.3:39
9503 msgid "B<int sigrelse(int >I<sig>B<);>"
9504 msgstr "B<int sigrelse(int >I<sig>B<);>"
9505
9506 #. type: Plain text
9507 #: build/C/man3/sigset.3:41
9508 msgid "B<int sigignore(int >I<sig>B<);>"
9509 msgstr "B<int sigignore(int >I<sig>B<);>"
9510
9511 #. type: Plain text
9512 #: build/C/man3/sigset.3:52
9513 msgid "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
9514 msgstr "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
9515
9516 #. type: Plain text
9517 #: build/C/man3/sigset.3:56
9518 msgid ""
9519 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
9520 msgstr ""
9521 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
9522
9523 #. type: Plain text
9524 #: build/C/man3/sigset.3:65
9525 msgid ""
9526 "These functions are provided in glibc as a compatibility interface for "
9527 "programs that make use of the historical System V signal API.  This API is "
9528 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
9529 "B<sigprocmask>(2), etc.)"
9530 msgstr ""
9531 "これらの関数は、昔ながらの System V 版シグナル API を使用しているプログラム "
9532 "に対して互換性のあるインタフェースを glibc で提供するものである。 この API は"
9533 "過去のものであり、新しいアプリケーションでは POSIX シグナル API (B<sigaction>"
9534 "(2), B<sigprocmask>(2)  など) を使用すべきである。"
9535
9536 #. type: Plain text
9537 #: build/C/man3/sigset.3:74
9538 msgid ""
9539 "The B<sigset>()  function modifies the disposition of the signal I<sig>.  "
9540 "The I<disp> argument can be the address of a signal handler function, or one "
9541 "of the following constants:"
9542 msgstr ""
9543 "関数 B<sigset>()  はシグナル I<sig> のシグナルハンドラの動作を変更する。 "
9544 "I<disp> 引き数には、シグナルハンドラ関数のアドレスか、 以下の定数のいずれか一"
9545 "つを指定できる。"
9546
9547 #. type: TP
9548 #: build/C/man3/sigset.3:74
9549 #, no-wrap
9550 msgid "B<SIG_DFL>"
9551 msgstr "B<SIG_DFL>"
9552
9553 #. type: Plain text
9554 #: build/C/man3/sigset.3:79
9555 msgid "Reset the disposition of I<sig> to the default."
9556 msgstr "I<sig> の動作をデフォルトにリセットする。"
9557
9558 #. type: TP
9559 #: build/C/man3/sigset.3:79
9560 #, no-wrap
9561 msgid "B<SIG_IGN>"
9562 msgstr "B<SIG_IGN>"
9563
9564 #. type: Plain text
9565 #: build/C/man3/sigset.3:83
9566 msgid "Ignore I<sig>."
9567 msgstr "I<sig> を無視する。"
9568
9569 #. type: TP
9570 #: build/C/man3/sigset.3:83
9571 #, no-wrap
9572 msgid "B<SIG_HOLD>"
9573 msgstr "B<SIG_HOLD>"
9574
9575 #. type: Plain text
9576 #: build/C/man3/sigset.3:90
9577 msgid ""
9578 "Add I<sig> to the process's signal mask, but leave the disposition of I<sig> "
9579 "unchanged."
9580 msgstr ""
9581 "そのプロセスのシグナルマスクに I<sig> を追加するが、 I<sig> の動作は変更しな"
9582 "い。"
9583
9584 #. type: Plain text
9585 #: build/C/man3/sigset.3:96
9586 msgid ""
9587 "If I<disp> specifies the address of a signal handler, then I<sig> is added "
9588 "to the process's signal mask during execution of the handler."
9589 msgstr ""
9590 "I<disp> にシグナルハンドラのアドレスが指定された場合、 シグナルハンドラの実行"
9591 "中は、そのプロセスのシグナルマスクに I<sig> が追加される。"
9592
9593 #. type: Plain text
9594 #: build/C/man3/sigset.3:104
9595 msgid ""
9596 "If I<disp> was specified as a value other than B<SIG_HOLD>, then I<sig> is "
9597 "removed from the process's signal mask."
9598 msgstr ""
9599 "I<disp> に B<SIG_HOLD> 以外の値が指定された場合、 そのプロセスのシグナルマス"
9600 "クから I<sig> が削除される。"
9601
9602 #. type: Plain text
9603 #: build/C/man3/sigset.3:110 build/C/man3/sigvec.3:87
9604 msgid "The dispositions for B<SIGKILL> and B<SIGSTOP> cannot be changed."
9605 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> に対する動作は変更できない。"
9606
9607 #. type: Plain text
9608 #: build/C/man3/sigset.3:116
9609 msgid ""
9610 "The B<sighold>()  function adds I<sig> to the calling process's signal mask."
9611 msgstr ""
9612 "関数 B<sighold>()  は、呼び出し元プロセスのシグナルマスクに I<sig> を追加す"
9613 "る。"
9614
9615 #. type: Plain text
9616 #: build/C/man3/sigset.3:122
9617 msgid ""
9618 "The B<sigrelse>()  function removes I<sig> from the calling process's signal "
9619 "mask."
9620 msgstr ""
9621 "関数 B<sigrelse>()  は、呼び出し元プロセスのシグナルマスクから I<sig> を削除"
9622 "する。"
9623
9624 #. type: Plain text
9625 #: build/C/man3/sigset.3:129
9626 msgid ""
9627 "The B<sigignore>()  function sets the disposition of I<sig> to B<SIG_IGN>."
9628 msgstr "関数 B<sigignore>()  は、 I<sig> の動作を B<SIG_IGN> に設定する。"
9629
9630 #. type: Plain text
9631 #: build/C/man3/sigset.3:145
9632 msgid ""
9633 "On success, B<sigset>()  returns B<SIG_HOLD> if I<sig> was blocked before "
9634 "the call, or the signal's previous disposition if it was not blocked before "
9635 "the call.  On error, B<sigset>()  returns -1, with I<errno> set to indicate "
9636 "the error.  (But see BUGS below.)"
9637 msgstr ""
9638 "B<sigset>()  は成功すると、 呼び出し前に I<sig> がブロックされていた場合には "
9639 "B<SIG_HOLD> を返し、 ブロックされていなかった場合には 変更前のそのシグナルの"
9640 "動作を返す。 エラーの場合、 B<sigset>()  は -1 を返し、 I<errno> にエラーを示"
9641 "す値をセットする。 但し、以下の「バグ」の節も参照のこと。"
9642
9643 #. type: Plain text
9644 #: build/C/man3/sigset.3:154
9645 msgid ""
9646 "The B<sighold>(), B<sigrelse>(), and B<sigignore>()  functions return 0 on "
9647 "success; on error, these functions return -1 and set I<errno> to indicate "
9648 "the error."
9649 msgstr ""
9650 "関数 B<sighold>(), B<sigrelse>(), B<sigignore>()  は成功すると 0 を返す。エ"
9651 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値をセットする。"
9652
9653 #. type: Plain text
9654 #: build/C/man3/sigset.3:161
9655 msgid ""
9656 "For B<sigset>()  see the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
9657 msgstr ""
9658 "B<sigset>()  に関しては、 B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」"
9659 "の節を参照。"
9660
9661 #. type: Plain text
9662 #: build/C/man3/sigset.3:168
9663 msgid ""
9664 "For B<sighold>()  and B<sigrelse>()  see the ERRORS under B<sigprocmask>(2)."
9665 msgstr ""
9666 "B<sighold>()  と B<sigrelse>()  に関しては、 B<sigprocmask>(2)  の「エラー」"
9667 "の節を参照。"
9668
9669 #. type: Plain text
9670 #: build/C/man3/sigset.3:173
9671 msgid "For B<sigignore>(), see the errors under B<sigaction>(2)."
9672 msgstr "B<sigignore>()  に関しては、 B<sigaction>(2)  の「エラー」の節を参照。"
9673
9674 #. type: Plain text
9675 #: build/C/man3/sigset.3:190
9676 msgid ""
9677 "SVr4, POSIX.1-2001.  These functions are obsolete: do not use them in new "
9678 "programs.  POSIX.1-2008 marks B<sighold>(), B<sigignore>(), B<sigpause>(), "
9679 "B<sigrelse>(), and B<sigset>()  as obsolete, recommending the use of "
9680 "B<sigaction>(2), B<sigprocmask>(2), B<pthread_sigmask>(3), and B<sigsuspend>"
9681 "(2)  instead."
9682 msgstr ""
9683 "SVr4, POSIX.1-2001.  これらの関数は廃止予定である。新しいプログラムでは使用し"
9684 "ないこと。 POSIX.1-2008 は、 B<sighold>(), B<sigignore>(), B<sigpause>(), "
9685 "B<sigrelse>(), B<sigset>()  を廃止予定としている。 代わりに、 B<sigaction>"
9686 "(2), B<sigprocmask>(2), B<pthread_sigmask>(3), B<sigsuspend>(2)  の使用が推奨"
9687 "されている。"
9688
9689 #. type: Plain text
9690 #: build/C/man3/sigset.3:192
9691 msgid "These functions appeared in glibc version 2.1."
9692 msgstr "これらの関数は glibc 2.1 で登場した。"
9693
9694 #. type: Plain text
9695 #: build/C/man3/sigset.3:198
9696 #, fuzzy
9697 #| msgid ""
9698 #| "The I<sighandler_t> type is a GNU extension; it is only used on this page "
9699 #| "to make the B<sigset>()  prototype more easily readable."
9700 msgid ""
9701 "The I<sighandler_t> type is a GNU extension; it is used on this page only to "
9702 "make the B<sigset>()  prototype more easily readable."
9703 msgstr ""
9704 "I<sighandler_t> 型は GNU による拡張であり、この man page で B<sigset>()  のプ"
9705 "ロトタイプをより読みやすくするために使われているだけである。"
9706
9707 #. type: Plain text
9708 #: build/C/man3/sigset.3:206
9709 msgid ""
9710 "The B<sigset>()  function provides reliable signal handling semantics (as "
9711 "when calling B<sigaction>(2)  with I<sa_mask> equal to 0)."
9712 msgstr ""
9713 "関数 B<sigset>()  は信頼性のあるシグナル処理機構を提供する (I<sa_mask> を 0 "
9714 "で B<sigaction>(2)  を呼び出したときと同様)。"
9715
9716 #. type: Plain text
9717 #: build/C/man3/sigset.3:224
9718 msgid ""
9719 "On System V, the B<signal>()  function provides unreliable semantics (as "
9720 "when calling B<sigaction>(2)  with I<sa_mask> equal to I<SA_RESETHAND | "
9721 "SA_NODEFER>).  On BSD, B<signal>()  provides reliable semantics.  "
9722 "POSIX.1-2001 leaves these aspects of B<signal>()  unspecified.  See B<signal>"
9723 "(2)  for further details."
9724 msgstr ""
9725 "System V では、関数 B<signal>()  が提供する処理機構は信頼性のないものである "
9726 "(I<sa_mask> を I<SA_RESETHAND | SA_NODEFER> として B<sigaction>(2)  を呼び出"
9727 "したときと同様)。 BSD では、 B<signal>()  は信頼性のある処理機構を提供する。 "
9728 "POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままとなっている。 さら"
9729 "なる詳細については B<signal>(2)  を参照。"
9730
9731 #. type: Plain text
9732 #: build/C/man3/sigset.3:232 build/C/man3/sigvec.3:252
9733 msgid ""
9734 "In order to wait for a signal, BSD and System V both provided a function "
9735 "named B<sigpause>(3), but this function has a different argument on the two "
9736 "systems.  See B<sigpause>(3)  for details."
9737 msgstr ""
9738 "BSD と System V のどちらのシステムでも シグナルを待つために、 B<sigpause>"
9739 "(3)  という名前の関数が提供されているが、 この関数の引き数は両方のシステムで"
9740 "異なる。 詳細は B<sigpause>(3)  を参照。"
9741
9742 #. type: Plain text
9743 #: build/C/man3/sigset.3:241
9744 msgid ""
9745 "In versions of glibc before 2.2, B<sigset>()  did not unblock I<sig> if "
9746 "I<disp> was specified as a value other than B<SIG_HOLD>."
9747 msgstr ""
9748 "2.2 より前のバージョンの glibc では、 I<disp> に B<SIG_HOLD> 以外の値が指定さ"
9749 "れた場合、 I<sig> のブロック解除を行っていなかった。"
9750
9751 #.  See http://sourceware.org/bugzilla/show_bug.cgi?id=1951
9752 #. type: Plain text
9753 #: build/C/man3/sigset.3:266
9754 msgid ""
9755 "In versions of glibc before 2.5, B<sigset>()  does not correctly return the "
9756 "previous disposition of the signal in two cases.  First, if I<disp> is "
9757 "specified as B<SIG_HOLD>, then a successful B<sigset>()  always returns "
9758 "B<SIG_HOLD>.  Instead, it should return the previous disposition of the "
9759 "signal (unless the signal was blocked, in which case B<SIG_HOLD> should be "
9760 "returned).  Second, if the signal is currently blocked, then the return "
9761 "value of a successful B<sigset>()  should be B<SIG_HOLD>.  Instead, the "
9762 "previous disposition of the signal is returned.  These problems have been "
9763 "fixed since glibc 2.5."
9764 msgstr ""
9765 "2.3.5 以前の全てのバージョンの glibc では、 B<sigset>()  が変更前のシグナルの"
9766 "動作を正しく返さない場合が 2つある。 一つめは、 I<disp> に B<SIG_HOLD> が指定"
9767 "されると、成功した場合 B<sigset>()  は常に B<SIG_HOLD> を返すことである。 正"
9768 "しくは、(シグナルがブロックされていなかった場合には)  変更前のシグナルの動作"
9769 "を返すべきである (シグナルがブロックされていた場合には、 B<SIG_HOLD> が返され"
9770 "る)。 もう一つは、シグナルが現在ブロックされている場合には、 成功した場合の "
9771 "B<sigset>()  の返り値は B<SIG_HOLD> になるべきであるが、実際には 変更前のシグ"
9772 "ナルの動作が返されることである。 これらの問題は glibc 2.5 以降で修正されてい"
9773 "る。"
9774
9775 #. type: Plain text
9776 #: build/C/man3/sigset.3:276
9777 msgid ""
9778 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9779 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
9780 msgstr ""
9781 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9782 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
9783
9784 #. type: TH
9785 #: build/C/man3/sigsetops.3:31
9786 #, no-wrap
9787 msgid "SIGSETOPS"
9788 msgstr "SIGSETOPS"
9789
9790 #. type: TH
9791 #: build/C/man3/sigsetops.3:31
9792 #, no-wrap
9793 msgid "2008-09-01"
9794 msgstr "2008-09-01"
9795
9796 #. type: Plain text
9797 #: build/C/man3/sigsetops.3:35
9798 msgid ""
9799 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX signal "
9800 "set operations."
9801 msgstr ""
9802 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX シグナル集"
9803 "合の操作"
9804
9805 #. type: Plain text
9806 #: build/C/man3/sigsetops.3:39
9807 msgid "B<int sigemptyset(sigset_t *>I<set>B<);>"
9808 msgstr "B<int sigemptyset(sigset_t *>I<set>B<);>"
9809
9810 #. type: Plain text
9811 #: build/C/man3/sigsetops.3:41
9812 msgid "B<int sigfillset(sigset_t *>I<set>B<);>"
9813 msgstr "B<int sigfillset(sigset_t *>I<set>B<);>"
9814
9815 #. type: Plain text
9816 #: build/C/man3/sigsetops.3:43
9817 msgid "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9818 msgstr "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9819
9820 #. type: Plain text
9821 #: build/C/man3/sigsetops.3:45
9822 msgid "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9823 msgstr "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9824
9825 #. type: Plain text
9826 #: build/C/man3/sigsetops.3:47
9827 msgid "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
9828 msgstr "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
9829
9830 #. type: Plain text
9831 #: build/C/man3/sigsetops.3:59
9832 msgid ""
9833 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
9834 "B<sigismember>():"
9835 msgstr ""
9836 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
9837 "B<sigismember>():"
9838
9839 #. type: Plain text
9840 #: build/C/man3/sigsetops.3:61
9841 msgid "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
9842 msgstr "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
9843
9844 #. type: Plain text
9845 #: build/C/man3/sigsetops.3:65
9846 msgid "These functions allow the manipulation of POSIX signal sets."
9847 msgstr "これらの関数は POSIX シグナル集合(signal set)を操作するため使用する。"
9848
9849 #. type: Plain text
9850 #: build/C/man3/sigsetops.3:70
9851 msgid ""
9852 "B<sigemptyset>()  initializes the signal set given by I<set> to empty, with "
9853 "all signals excluded from the set."
9854 msgstr ""
9855 "B<sigemptyset>()  は I<set> で与えられたシグナル集合を空に初期化し、シグナル"
9856 "が一つも 含まれていない状態にする。"
9857
9858 #. type: Plain text
9859 #: build/C/man3/sigsetops.3:75
9860 msgid "B<sigfillset>()  initializes I<set> to full, including all signals."
9861 msgstr ""
9862 "B<sigfillset>()  は I<set> で与えられたシグナル集合が全てのシグナルを含むよう"
9863 "にする。"
9864
9865 #. type: Plain text
9866 #: build/C/man3/sigsetops.3:83
9867 msgid ""
9868 "B<sigaddset>()  and B<sigdelset>()  add and delete respectively signal "
9869 "I<signum> from I<set>."
9870 msgstr ""
9871 "B<sigaddset>()  と B<sigdelset>()  は I<set> に I<signum> シグナルをそれぞれ"
9872 "加えたり、削除したりする。"
9873
9874 #. type: Plain text
9875 #: build/C/man3/sigsetops.3:89
9876 msgid "B<sigismember>()  tests whether I<signum> is a member of I<set>."
9877 msgstr ""
9878 "B<sigismember>()  は I<signum> が I<set> に含まれているかどうかをテストする。"
9879
9880 #. type: Plain text
9881 #: build/C/man3/sigsetops.3:107
9882 msgid ""
9883 "Objects of type I<sigset_t> must be initialized by a call to either "
9884 "B<sigemptyset>()  or B<sigfillset>()  before being passed to the functions "
9885 "B<sigaddset>(), B<sigdelset>()  and B<sigismember>()  or the additional "
9886 "glibc functions described below (B<sigisemptyset>(), B<sigandset>(), and "
9887 "B<sigorset>()).  The results are undefined if this is not done."
9888 msgstr ""
9889 "I<sigset_t> 型のオブジェクトは、関数 B<sigaddset>(), B<sigdelset>(), "
9890 "B<sigismember>()  や後述の glibc の追加関数 (B<sigisemptyset>(), B<sigandset>"
9891 "(), B<sigorset>())  に渡す前に、 B<sigemptyset>()  か B<sigfillset>()  を呼び"
9892 "出して初期化しなければならない。 初期化しなかった場合の結果は未定義である。"
9893
9894 #. type: Plain text
9895 #: build/C/man3/sigsetops.3:114
9896 msgid ""
9897 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), and B<sigdelset>()  "
9898 "return 0 on success and -1 on error."
9899 msgstr ""
9900 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>()  は成功すれ"
9901 "ば 0 を、エラーの場合は -1 を返す。"
9902
9903 #. type: Plain text
9904 #: build/C/man3/sigsetops.3:123
9905 msgid ""
9906 "B<sigismember>()  returns 1 if I<signum> is a member of I<set>, 0 if "
9907 "I<signum> is not a member, and -1 on error."
9908 msgstr ""
9909 "B<sigismember>()  は I<signum> が I<set> に含まれていれば 1 を返し、含まれて"
9910 "いなければ 0 を返す。 エラーの場合は -1 を返す。"
9911
9912 #. type: Plain text
9913 #: build/C/man3/sigsetops.3:128
9914 msgid "I<sig> is not a valid signal."
9915 msgstr "I<sig> が有効なシグナルではない。"
9916
9917 #. type: SS
9918 #: build/C/man3/sigsetops.3:131
9919 #, no-wrap
9920 msgid "Glibc notes"
9921 msgstr "glibc での注意"
9922
9923 #. type: Plain text
9924 #: build/C/man3/sigsetops.3:137
9925 msgid ""
9926 "If the B<_GNU_SOURCE> feature test macro is defined, then I<E<lt>signal."
9927 "hE<gt>> exposes three other functions for manipulating signal sets."
9928 msgstr ""
9929 "B<_GNU_SOURCE> 機能検査マクロが定義されていると、 I<E<lt>signal.hE<gt>> でシ"
9930 "グナル集合を操作する 3つの関数が追加で公開される。"
9931
9932 #. type: TP
9933 #: build/C/man3/sigsetops.3:137
9934 #, no-wrap
9935 msgid "B<int sigisemptyset(sigset_t *>I<set>B<);>"
9936 msgstr "B<int sigisemptyset(sigset_t *>I<set>B<);>"
9937
9938 #. type: Plain text
9939 #: build/C/man3/sigsetops.3:142
9940 msgid "returns 1 if I<set> contains no signals, and 0 otherwise."
9941 msgstr ""
9942 "I<set> にシグナルが一つも含まれていなければ 1 を返し、 それ以外は 0 を返す。"
9943
9944 #. type: TP
9945 #: build/C/man3/sigsetops.3:142
9946 #, no-wrap
9947 msgid "B<int sigorset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
9948 msgstr "B<int sigorset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
9949
9950 #. type: Plain text
9951 #: build/C/man3/sigsetops.3:151
9952 msgid "places the union of the sets I<left> and I<right> in I<dest>."
9953 msgstr "シグナル集合 I<left> と I<left> の和集合を I<dest> に書き込む。"
9954
9955 #. type: TP
9956 #: build/C/man3/sigsetops.3:151
9957 #, no-wrap
9958 msgid "B<int sigandset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
9959 msgstr "B<int sigandset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
9960
9961 #. type: Plain text
9962 #: build/C/man3/sigsetops.3:160
9963 msgid "places the intersection of the sets I<left> and I<right> in I<dest>."
9964 msgstr "シグナル集合 I<left> と I<left> の積集合を I<dest> に書き込む。"
9965
9966 #. type: Plain text
9967 #: build/C/man3/sigsetops.3:165
9968 msgid ""
9969 "B<sigorset>()  and B<sigandset>()  return 0 on success, and -1 on failure."
9970 msgstr ""
9971 "B<sigorset>()  と B<sigandset>()  は成功すると 0 を、失敗すると -1 を返す。"
9972
9973 #. type: Plain text
9974 #: build/C/man3/sigsetops.3:168
9975 msgid ""
9976 "These functions are nonstandard (a few other systems provide similar "
9977 "functions) and their use should be avoided in portable applications."
9978 msgstr ""
9979 "これらの関数は非標準であり、(他にも同様の関数を提供しているシステムも いくつ"
9980 "かはあるが) 移植性を考慮したアプリケーションでは使用を避けるべき である。"
9981
9982 #. type: Plain text
9983 #: build/C/man3/sigsetops.3:173
9984 msgid "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
9985 msgstr "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
9986
9987 #. type: TH
9988 #: build/C/man2/sigsuspend.2:29
9989 #, no-wrap
9990 msgid "SIGSUSPEND"
9991 msgstr "SIGSUSPEND"
9992
9993 #. type: TH
9994 #: build/C/man2/sigsuspend.2:29
9995 #, no-wrap
9996 msgid "2008-08-29"
9997 msgstr "2008-08-29"
9998
9999 #. type: Plain text
10000 #: build/C/man2/sigsuspend.2:32
10001 msgid "sigsuspend - wait for a signal"
10002 msgstr "sigsuspend - シグナルを待つ"
10003
10004 #. type: Plain text
10005 #: build/C/man2/sigsuspend.2:36
10006 msgid "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
10007 msgstr "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
10008
10009 #. type: Plain text
10010 #: build/C/man2/sigsuspend.2:45
10011 msgid ""
10012 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
10013 "_POSIX_SOURCE"
10014 msgstr ""
10015 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
10016 "_POSIX_SOURCE"
10017
10018 #. type: Plain text
10019 #: build/C/man2/sigsuspend.2:53
10020 msgid ""
10021 "B<sigsuspend>()  temporarily replaces the signal mask of the calling process "
10022 "with the mask given by I<mask> and then suspends the process until delivery "
10023 "of a signal whose action is to invoke a signal handler or to terminate a "
10024 "process."
10025 msgstr ""
10026 "B<sigsuspend>()  は、呼び出し元プロセスのシグナルマスクを I<mask> で指定され"
10027 "たマスクに一時的に置き換え、 シグナルハンドラの起動もしくはプロセスの終了がア"
10028 "クションとして 設定されたシグナルが配送されるまで、そのプロセスを停止する。"
10029
10030 #. type: Plain text
10031 #: build/C/man2/sigsuspend.2:62
10032 msgid ""
10033 "If the signal terminates the process, then B<sigsuspend>()  does not "
10034 "return.  If the signal is caught, then B<sigsuspend>()  returns after the "
10035 "signal handler returns, and the signal mask is restored to the state before "
10036 "the call to B<sigsuspend>()."
10037 msgstr ""
10038 "シグナルがプロセスを終了させるものの場合、 B<sigsuspend>()  は返らない。シグ"
10039 "ナルが捕捉された場合、 シグナルハンドラの処理が終わった後に B<sigsuspend>()  "
10040 "は返り、シグナルマスクは B<sigsuspend>()  が呼び出される前の状態に復元され"
10041 "る。"
10042
10043 #. type: Plain text
10044 #: build/C/man2/sigsuspend.2:70
10045 msgid ""
10046 "It is not possible to block B<SIGKILL> or B<SIGSTOP>; specifying these "
10047 "signals in I<mask>, has no effect on the process's signal mask."
10048 msgstr ""
10049 "B<SIGKILL> と B<SIGSTOP> を禁止 (block) することはできない; これらのシグナル"
10050 "を I<mask> に指定しても、プロセスのシグナルマスクは影響を受けない。"
10051
10052 #. type: Plain text
10053 #: build/C/man2/sigsuspend.2:74
10054 msgid "B<sigsuspend>()  always returns -1, normally with the error B<EINTR>."
10055 msgstr "B<sigsuspend>()  は常に -1 を返し、通常は B<EINTR> エラーが発生する。"
10056
10057 #. type: Plain text
10058 #: build/C/man2/sigsuspend.2:79
10059 msgid ""
10060 "I<mask> points to memory which is not a valid part of the process address "
10061 "space."
10062 msgstr ""
10063 "I<mask> が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。"
10064
10065 #. type: Plain text
10066 #: build/C/man2/sigsuspend.2:82
10067 msgid "The call was interrupted by a signal."
10068 msgstr "システムコールはシグナルにより割り込まれた。"
10069
10070 #. type: Plain text
10071 #: build/C/man2/sigsuspend.2:102
10072 msgid ""
10073 "Normally, B<sigsuspend>()  is used in conjunction with B<sigprocmask>(2)  in "
10074 "order to prevent delivery of a signal during the execution of a critical "
10075 "code section.  The caller first blocks the signals with B<sigprocmask>(2).  "
10076 "When the critical code has completed, the caller then waits for the signals "
10077 "by calling B<sigsuspend>()  with the signal mask that was returned by "
10078 "B<sigprocmask>(2)  (in the I<oldset> argument)."
10079 msgstr ""
10080 "B<sigsuspend>()  は、通常、クリティカル・コード・セクション (critical code "
10081 "section) の 実行中にシグナルが配送されるのを防止するために、 B<sigprocmask>"
10082 "(2)  と組み合わせて使用される。 まず最初に、呼び出し元は B<sigprocmask>(2)  "
10083 "を使ってシグナルを禁止する。 クリティカル・コードが完了すると、呼び出し元は "
10084 "B<sigprocmask>(2)  が (I<oldset> 引き数で) 返すシグナルマスクを指定して "
10085 "B<sigsuspend>()  を呼び出すことで、クリティカル・コード実行中に発生した シグ"
10086 "ナルを待つことができる。"
10087
10088 #. type: Plain text
10089 #: build/C/man2/sigsuspend.2:116
10090 msgid ""
10091 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10092 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
10093 msgstr ""
10094 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10095 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
10096
10097 #. type: TH
10098 #: build/C/man3/sigvec.3:26
10099 #, no-wrap
10100 msgid "SIGVEC"
10101 msgstr "SIGVEC"
10102
10103 #. type: TH
10104 #: build/C/man3/sigvec.3:26
10105 #, no-wrap
10106 msgid "2012-09-06"
10107 msgstr "2012-09-06"
10108
10109 #. type: Plain text
10110 #: build/C/man3/sigvec.3:29
10111 msgid "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD signal API"
10112 msgstr "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD 版シグナル API"
10113
10114 #. type: Plain text
10115 #: build/C/man3/sigvec.3:33
10116 msgid ""
10117 "B<int sigvec(int >I<sig>B<, struct sigvec *>I<vec>B<, struct sigvec "
10118 "*>I<ovec>B<);>"
10119 msgstr ""
10120 "B<int sigvec(int >I<sig>B<, struct sigvec *>I<vec>B<, struct sigvec "
10121 "*>I<ovec>B<);>"
10122
10123 #. type: Plain text
10124 #: build/C/man3/sigvec.3:35
10125 msgid "B<int sigmask(int >I<signum>B<);>"
10126 msgstr "B<int sigmask(int >I<signum>B<);>"
10127
10128 #. type: Plain text
10129 #: build/C/man3/sigvec.3:37
10130 msgid "B<int sigblock(int >I<mask>B<);>"
10131 msgstr "B<int sigblock(int >I<mask>B<);>"
10132
10133 #. type: Plain text
10134 #: build/C/man3/sigvec.3:39
10135 msgid "B<int sigsetmask(int >I<mask>B<);>"
10136 msgstr "B<int sigsetmask(int >I<mask>B<);>"
10137
10138 #. type: Plain text
10139 #: build/C/man3/sigvec.3:41
10140 msgid "B<int siggetmask(void);>"
10141 msgstr "B<int siggetmask(void);>"
10142
10143 #. type: Plain text
10144 #: build/C/man3/sigvec.3:49
10145 msgid "All functions shown above: _BSD_SOURCE"
10146 msgstr "上記の全ての関数: _BSD_SOURCE"
10147
10148 #. type: Plain text
10149 #: build/C/man3/sigvec.3:56
10150 msgid ""
10151 "These functions are provided in glibc as a compatibility interface for "
10152 "programs that make use of the historical BSD signal API.  This API is "
10153 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
10154 "B<sigprocmask>(2), etc.)."
10155 msgstr ""
10156 "これらの関数は、昔ながらの BSD 版シグナル API を使用しているプログラム に対し"
10157 "て互換性のあるインタフェースを glibc で提供するものである。 この API は過去の"
10158 "ものであり、新しいアプリケーションでは POSIX シグナル API (B<sigaction>(2), "
10159 "B<sigprocmask>(2)  など) を使用すべきである。"
10160
10161 #. type: Plain text
10162 #: build/C/man3/sigvec.3:81
10163 msgid ""
10164 "The B<sigvec>()  function sets and/or gets the disposition of the signal "
10165 "I<sig> (like the POSIX B<sigaction>(2)).  If I<vec> is not NULL, it points "
10166 "to a I<sigvec> structure that defines the new disposition for I<sig>.  If "
10167 "I<ovec> is not NULL, it points to a I<sigvec> structure that is used to "
10168 "return the previous disposition of I<sig>.  To obtain the current "
10169 "disposition of I<sig> without changing it, specify NULL for I<vec>, and a "
10170 "non-NULL pointer for I<ovec>."
10171 msgstr ""
10172 "関数 B<sigvec>()  は、(POSIX の B<sigaction>(2)  と同様に) シグナル I<sig> の"
10173 "動作の設定・取得を行う。 I<vec> は、NULL 以外の場合、 I<sig> の新しい動作を定"
10174 "義した I<sigvec> 構造体へのポインタである。 I<ovec> は、NULL 以外の場合、 "
10175 "I<sig> の変更前の動作を返すために使用される I<sigvec> 構造体へのポインタであ"
10176 "る。 I<sig> の動作を変更せずに現在の動作を取得するためには、 I<vec> に NULL "
10177 "を指定し、 I<ovec> に NULL でないポインタを指定すればよい。"
10178
10179 #. type: Plain text
10180 #: build/C/man3/sigvec.3:91
10181 msgid "The I<sigvec> structure has the following form:"
10182 msgstr "I<sigvec> 構造体は以下の通りである:"
10183
10184 #. type: Plain text
10185 #: build/C/man3/sigvec.3:99
10186 #, no-wrap
10187 msgid ""
10188 "struct sigvec {\n"
10189 "    void (*sv_handler)(int); /* Signal disposition */\n"
10190 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
10191 "    int    sv_flags;         /* Flags */\n"
10192 "};\n"
10193 msgstr ""
10194 "struct sigvec {\n"
10195 "    void (*sv_handler)(int); /* Signal disposition */\n"
10196 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
10197 "    int    sv_flags;         /* Flags */\n"
10198 "};\n"
10199
10200 #. type: Plain text
10201 #: build/C/man3/sigvec.3:110
10202 msgid ""
10203 "The I<sv_handler> field specifies the disposition of the signal, and is "
10204 "either: the address of a signal handler function; B<SIG_DFL>, meaning the "
10205 "default disposition applies for the signal; or B<SIG_IGN>, meaning that the "
10206 "signal is ignored."
10207 msgstr ""
10208 "I<sv_handler> フィールドはシグナルの動作を指定するもので、 シグナルハンドラ関"
10209 "数のアドレスか、 B<SIG_DFL> と B<SIG_IGN> のいずれかを指定できる。 "
10210 "B<SIG_DFL> はシグナルに適用されるデフォルトの動作を意味し、 B<SIG_IGN> はシグ"
10211 "ナルを無視することを意味する。"
10212
10213 #. type: Plain text
10214 #: build/C/man3/sigvec.3:124
10215 msgid ""
10216 "If I<sv_handler> specifies the address of a signal handler, then I<sv_mask> "
10217 "specifies a mask of signals that are to be blocked while the handler is "
10218 "executing.  In addition, the signal for which the handler is invoked is also "
10219 "blocked.  Attempts to block B<SIGKILL> or B<SIGSTOP> are silently ignored."
10220 msgstr ""
10221 "I<sv_handler> にシグナルハンドラのアドレスを指定した場合、 I<sv_mask> はハン"
10222 "ドラが実行中にブロックされるべきシグナルのマスクを指定する。 また、ハンドラを"
10223 "起動したシグナル自身はブロックされる。 B<SIGKILL> か B<SIGSTOP> をブロックし"
10224 "ようとした場合には、黙って無視される。"
10225
10226 #. type: Plain text
10227 #: build/C/man3/sigvec.3:131
10228 msgid ""
10229 "If I<sv_handler> specifies the address of a signal handler, then the "
10230 "I<sv_flags> field specifies flags controlling what happens when the handler "
10231 "is called.  This field may contain zero or more of the following flags:"
10232 msgstr ""
10233 "I<sv_handler> にシグナルハンドラのアドレスを指定した場合、 I<sv_flags> フィー"
10234 "ルドはハンドラが呼ばれた際の挙動を制御するフラグを指定する。 このフィールドに"
10235 "は、0 か、以下のフラグを 1個以上指定できる:"
10236
10237 #. type: TP
10238 #: build/C/man3/sigvec.3:131
10239 #, no-wrap
10240 msgid "B<SV_INTERRUPT>"
10241 msgstr "B<SV_INTERRUPT>"
10242
10243 #. type: Plain text
10244 #: build/C/man3/sigvec.3:139
10245 msgid ""
10246 "If the signal handler interrupts a blocking system call, then upon return "
10247 "from the handler the system call will not be restarted: instead it will fail "
10248 "with the error B<EINTR>.  If this flag is not specified, then system calls "
10249 "are restarted by default."
10250 msgstr ""
10251 "シグナルハンドラが停止中のシステムコールを中断した場合、 ハンドラから復帰して"
10252 "も、システムコールは再開されず、 エラー B<EINTR> で失敗する。 このフラグを指"
10253 "定しなかった場合、システムコールは デフォルトで再開される。"
10254
10255 #. type: TP
10256 #: build/C/man3/sigvec.3:139
10257 #, no-wrap
10258 msgid "B<SV_RESETHAND>"
10259 msgstr "B<SV_RESETHAND>"
10260
10261 #. type: Plain text
10262 #: build/C/man3/sigvec.3:148
10263 msgid ""
10264 "Reset the disposition of the signal to the default before calling the signal "
10265 "handler.  If this flag is not specified, then the handler remains "
10266 "established until explicitly removed by a later call to B<sigvec>()  or "
10267 "until the process performs an B<execve>(2)."
10268 msgstr ""
10269 "シグナルハンドラを呼び出す前にシグナルの動作を デフォルトにリセットする。 こ"
10270 "のフラグを指定しなかった場合、もう一度 B<sigvec>()  を呼び出して明示的に削除"
10271 "されるか、プロセスが B<execve>(2)  を実行するまで、ハンドラは設定されたままと"
10272 "なる。"
10273
10274 #. type: TP
10275 #: build/C/man3/sigvec.3:148
10276 #, no-wrap
10277 msgid "B<SV_ONSTACK>"
10278 msgstr "B<SV_ONSTACK>"
10279
10280 #. type: Plain text
10281 #: build/C/man3/sigvec.3:155
10282 msgid ""
10283 "Handle the signal on the alternate signal stack (historically established "
10284 "under BSD using the obsolete B<sigstack>()  function; the POSIX replacement "
10285 "is B<sigaltstack>(2))."
10286 msgstr ""
10287 "代替シグナルスタック上でシグナルハンドラを実行する (歴史的に、BSD では代替シ"
10288 "グナルスタックは廃止された関数 B<sigstack>()  を使って設定する。POSIX では、"
10289 "代わりに B<sigaltstack>(2)  を使用する)。"
10290
10291 #. type: Plain text
10292 #: build/C/man3/sigvec.3:165
10293 msgid ""
10294 "The B<sigmask>()  function constructs and returns a \"signal mask\" for "
10295 "I<signum>.  For example, we can initialize the I<vec.sv_mask> field given to "
10296 "B<sigvec>()  using code such as the following:"
10297 msgstr ""
10298 "関数 B<sigmask>()  は I<signum> に対する「シグナルマスク」を構成して返す。 例"
10299 "えば、以下のようなコードを使うと、 B<sigvec>()  に渡す I<vec.sv_mask> を初期"
10300 "化できる。"
10301
10302 #. type: Plain text
10303 #: build/C/man3/sigvec.3:170
10304 #, no-wrap
10305 msgid ""
10306 "    vec.sv_mask = sigmask(SIGQUIT) | sigpause(SIGABRT);\n"
10307 "                /* Block SIGQUIT and SIGABRT during\n"
10308 "                   handler execution */\n"
10309 msgstr ""
10310 "    vec.sv_mask = sigmask(SIGQUIT) | sigpause(SIGABRT);\n"
10311 "                /* Block SIGQUIT and SIGABRT during\n"
10312 "                   handler execution */\n"
10313
10314 #. type: Plain text
10315 #: build/C/man3/sigvec.3:185
10316 msgid ""
10317 "The B<sigblock>()  function adds the signals in I<mask> to the process's "
10318 "signal mask (like POSIX I<sigprocmask(SIG_BLOCK)>), and returns the "
10319 "process's previous signal mask.  Attempts to block B<SIGKILL> or B<SIGSTOP> "
10320 "are silently ignored."
10321 msgstr ""
10322 "B<sigblock>()  関数は、 I<mask> にあるシグナルをプロセスのシグナルマスクに追"
10323 "加し (POSIX の I<sigprocmask(SIG_BLOCK)> と同様)、変更前のプロセスのシグナル"
10324 "マスクを返す。 B<SIGKILL> や B<SIGSTOP> をブロックしようとした場合には、黙っ"
10325 "て無視される。"
10326
10327 #. type: Plain text
10328 #: build/C/man3/sigvec.3:193
10329 msgid ""
10330 "The B<sigsetmask>()  function sets the process's signal mask to the value "
10331 "given in I<mask> (like POSIX I<sigprocmask(SIG_SETMASK)>), and returns the "
10332 "process's previous signal mask."
10333 msgstr ""
10334 "B<sigsetmask>()  関数はプロセスのシグナルマスクを I<mask> で指定された値に設"
10335 "定し (POSIX の I<sigprocmask(SIG_SETMASK)> と同様)、変更前のプロセスのシグナ"
10336 "ルマスクを返す。"
10337
10338 #. type: Plain text
10339 #: build/C/man3/sigvec.3:199
10340 msgid ""
10341 "The B<siggetmask>()  function returns the process's current signal mask.  "
10342 "This call is equivalent to I<sigblock(0)>."
10343 msgstr ""
10344 "B<siggetmask>()  関数はプロセスの現在のシグナルマスクを返す。この関数は "
10345 "I<sigblock(0)> と等価である。"
10346
10347 #. type: Plain text
10348 #: build/C/man3/sigvec.3:205
10349 msgid ""
10350 "The B<sigvec>()  function returns 0 on success; on error, it returns -1 and "
10351 "sets I<errno> to indicate the error."
10352 msgstr ""
10353 "B<sigvec>()  関数は成功すると 0 を返す。エラーの場合、-1 を返し、 I<errno> に"
10354 "エラーを示す値をセットする。"
10355
10356 #. type: Plain text
10357 #: build/C/man3/sigvec.3:211
10358 msgid ""
10359 "The B<sigblock>()  and B<sigsetmask>()  functions return the previous signal "
10360 "mask."
10361 msgstr "B<sigblock>()  と B<sigsetmask>()  は変更前のシグナルマスクを返す。"
10362
10363 #. type: Plain text
10364 #: build/C/man3/sigvec.3:216
10365 msgid "The B<sigmask>()  function returns the signal mask for I<signum>."
10366 msgstr "B<sigmask>()  関数は I<signum> のシグナルマスクを返す。"
10367
10368 #. type: Plain text
10369 #: build/C/man3/sigvec.3:221
10370 msgid "See the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
10371 msgstr "B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」の節を参照。"
10372
10373 #. type: Plain text
10374 #: build/C/man3/sigvec.3:227
10375 msgid ""
10376 "All of these functions were in 4.3BSD, except B<siggetmask>(), whose origin "
10377 "is unclear.  These functions are obsolete: do not use them in new programs."
10378 msgstr ""
10379 "これらの関数のうち B<siggetmask>()  以外の全ては 4.3BSD にあった。 "
10380 "B<siggetmask>()  の出自ははっきりしない。 これらの関数は廃止予定であり、新し"
10381 "いプログラムでは使用しないこと。"
10382
10383 #. type: Plain text
10384 #: build/C/man3/sigvec.3:244
10385 msgid ""
10386 "On 4.3BSD, the B<signal>()  function provided reliable semantics (as when "
10387 "calling B<sigvec>()  with I<vec.sv_mask> equal to 0).  On System V, B<signal>"
10388 "()  provides unreliable semantics.  POSIX.1-2001 leaves these aspects of "
10389 "B<signal>()  unspecified.  See B<signal>(2)  for further details."
10390 msgstr ""
10391 "4.3BSD では、信頼性のあるシグナル処理機構を提供する (I<vec.sv_mask> を 0 で "
10392 "B<sigvec>()  を呼び出したときと同様)。 System V が提供する処理機構は信頼性の"
10393 "ないものである。 POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままと"
10394 "なっている。 さらなる詳細については B<signal>(2)  を参照。"
10395
10396 #. type: Plain text
10397 #: build/C/man3/sigvec.3:262
10398 msgid ""
10399 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10400 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
10401 msgstr ""
10402 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10403 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
10404
10405 #. type: TH
10406 #: build/C/man3/sigwait.3:26
10407 #, no-wrap
10408 msgid "SIGWAIT"
10409 msgstr "SIGWAIT"
10410
10411 #. type: TH
10412 #: build/C/man3/sigwait.3:26 build/C/man2/sigwaitinfo.2:25
10413 #, no-wrap
10414 msgid "2012-07-21"
10415 msgstr "2012-07-21"
10416
10417 #. type: Plain text
10418 #: build/C/man3/sigwait.3:29
10419 msgid "sigwait - wait for a signal"
10420 msgstr "sigwait - シグナルを待つ"
10421
10422 #. type: Plain text
10423 #: build/C/man3/sigwait.3:34
10424 #, no-wrap
10425 msgid "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
10426 msgstr "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
10427
10428 #. type: Plain text
10429 #: build/C/man3/sigwait.3:44
10430 msgid ""
10431 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10432 msgstr ""
10433 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10434
10435 #. type: Plain text
10436 #: build/C/man3/sigwait.3:56
10437 msgid ""
10438 "The B<sigwait>()  function suspends execution of the calling thread until "
10439 "one of the signals specified in the signal set I<set> becomes pending.  The "
10440 "function accepts the signal (removes it from the pending list of signals), "
10441 "and returns the signal number in I<sig>."
10442 msgstr ""
10443 "B<sigwait>()  関数は、シグナル集合 I<set> で指定されたシグナルの一つが処理待"
10444 "ち (pending) になるまで、 呼び出したスレッドの実行を中断する。 この関数はその"
10445 "シグナルを受け取り (つまり、処理待ちのシグナルのリスト からそのシグナルを削除"
10446 "し)、そのシグナル番号を I<sig> に格納して返す。"
10447
10448 #. type: Plain text
10449 #: build/C/man3/sigwait.3:62
10450 msgid ""
10451 "The operation of B<sigwait>()  is the same as B<sigwaitinfo>(2), except that:"
10452 msgstr ""
10453 "B<sigwait>()  の動作は B<sigwaitinfo>(2)  と同じだが、以下の点が異なる。"
10454
10455 #. type: Plain text
10456 #: build/C/man3/sigwait.3:67
10457 #, fuzzy
10458 #| msgid ""
10459 #| "B<sigwait>()  only returns the signal number, rather than a I<siginfo_t> "
10460 #| "structure describing the signal."
10461 msgid ""
10462 "B<sigwait>()  returns only the signal number, rather than a I<siginfo_t> "
10463 "structure describing the signal."
10464 msgstr ""
10465 "B<sigwait>()  は、シグナルの内容を表す I<siginfo_t> 構造体を返すのではなく、"
10466 "単にシグナル番号を返す。"
10467
10468 #. type: Plain text
10469 #: build/C/man3/sigwait.3:69
10470 msgid "The return values of the two functions are different."
10471 msgstr "返り値が B<sigwaitinfo>(2)  とは異なる。"
10472
10473 #. type: Plain text
10474 #: build/C/man3/sigwait.3:74
10475 msgid ""
10476 "On success, B<sigwait>()  returns 0.  On error, it returns a positive error "
10477 "number (listed in ERRORS)."
10478 msgstr ""
10479 "成功すると、 B<sigwait>()  は 0 を返す。 エラーの場合、(「エラー」の節のリス"
10480 "トにある) 正のエラー番号を返す。"
10481
10482 #.  Does not occur for glibc.
10483 #. type: Plain text
10484 #: build/C/man3/sigwait.3:80
10485 msgid "I<set> contains an invalid signal number."
10486 msgstr "I<set> に無効なシグナル番号が入っている。"
10487
10488 #. type: Plain text
10489 #: build/C/man3/sigwait.3:86
10490 msgid "B<sigwait>()  is implemented using B<sigtimedwait>(2)."
10491 msgstr "B<sigwait>()  は B<sigtimedwait>(2)  を使って実装されている。"
10492
10493 #. type: Plain text
10494 #: build/C/man3/sigwait.3:89
10495 msgid "See B<pthread_sigmask>(3)."
10496 msgstr "B<pthread_sigmask>(3)  を参照。"
10497
10498 #. type: Plain text
10499 #: build/C/man3/sigwait.3:97
10500 msgid ""
10501 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
10502 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
10503 msgstr ""
10504 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
10505 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
10506
10507 #. type: TH
10508 #: build/C/man2/sigwaitinfo.2:25
10509 #, no-wrap
10510 msgid "SIGWAITINFO"
10511 msgstr "SIGWAITINFO"
10512
10513 #. type: Plain text
10514 #: build/C/man2/sigwaitinfo.2:28
10515 msgid "sigwaitinfo, sigtimedwait - synchronously wait for queued signals"
10516 msgstr "sigwaitinfo, sigtimedwait - キューに入れられたシグナルを同期して待つ"
10517
10518 #. type: Plain text
10519 #: build/C/man2/sigwaitinfo.2:33
10520 #, no-wrap
10521 msgid "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
10522 msgstr "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
10523
10524 #. type: Plain text
10525 #: build/C/man2/sigwaitinfo.2:36
10526 #, no-wrap
10527 msgid ""
10528 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
10529 "B<                 const struct timespec *>I<timeout>B<);>\n"
10530 msgstr ""
10531 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
10532 "B<                 const struct timespec *>I<timeout>B<);>\n"
10533
10534 #. type: Plain text
10535 #: build/C/man2/sigwaitinfo.2:46
10536 msgid "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10537 msgstr ""
10538 "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10539
10540 #. type: Plain text
10541 #: build/C/man2/sigwaitinfo.2:56
10542 msgid ""
10543 "B<sigwaitinfo>()  suspends execution of the calling thread until one of the "
10544 "signals in I<set> is pending (If one of the signals in I<set> is already "
10545 "pending for the calling thread, B<sigwaitinfo>()  will return immediately.)"
10546 msgstr ""
10547 "B<sigwaitinfo>()  は I<set> のうちのどれかのシグナルが処理待ちになるまで、 呼"
10548 "び出しスレッドの実行を一時停止する (呼び出しスレッドに対して I<set> のうちの"
10549 "どれかのシグナルが既に待機中 (pending) である場合、 B<sigwaitinfo>()  はすぐ"
10550 "に戻る)。"
10551
10552 #. type: Plain text
10553 #: build/C/man2/sigwaitinfo.2:68
10554 msgid ""
10555 "B<sigwaitinfo>()  removes the signal from the set of pending signals and "
10556 "returns the signal number as its function result.  If the I<info> argument "
10557 "is not NULL, then the buffer that it points to is used to return a structure "
10558 "of type I<siginfo_t> (see B<sigaction>(2))  containing information about the "
10559 "signal."
10560 msgstr ""
10561 "B<sigwaitinfo>()  はそのシグナルを待機中のシグナルの集合から削除し、関数の結"
10562 "果としてシグナル番号を返す。 I<info> 引き数が NULL でない場合、配送されたシグ"
10563 "ナルの情報が入った I<siginfo_t> 型 (B<sigaction>(2)  を参照) の構造体を "
10564 "I<info> が指すバッファに入れて返す。"
10565
10566 #. type: Plain text
10567 #: build/C/man2/sigwaitinfo.2:76
10568 #, fuzzy
10569 #| msgid ""
10570 #| "Signals returned via B<sigwaitinfo>()  are delivered in the usual order; "
10571 #| "see B<signal>(7)  for further details."
10572 msgid ""
10573 "If multiple signals in I<set> are pending for the caller, the signal that is "
10574 "retrieved by B<sigwaitinfo>()  is determined according to the usual ordering "
10575 "rules; see B<signal>(7)  for further details."
10576 msgstr ""
10577 "B<sigwaitinfo>()  で返されるシグナルは、通常の順番で配送される。 詳細は "
10578 "B<signal>(7)  を参照すること。"
10579
10580 #. type: Plain text
10581 #: build/C/man2/sigwaitinfo.2:88
10582 msgid ""
10583 "B<sigtimedwait>()  operates in exactly the same way as B<sigwaitinfo>()  "
10584 "except that it has an additional argument, I<timeout>, which specifies a "
10585 "minimum interval for which the thread is suspended waiting for a signal.  "
10586 "(This interval will be rounded up to the system clock granularity, and "
10587 "kernel scheduling delays mean that the interval may overrun by a small "
10588 "amount.)  This argument is of the following type:"
10589 msgstr ""
10590 "B<sigtimedwait>() は、 B<sigwaitinfo>() と次の点を除いて全く同じように\n"
10591 "動作する。この関数にはもう 1 つの引き数 I<timeout> があり、シグナル待ち\n"
10592 "でスレッドが一時停止する最小時間を指定することができる(この時間はシステ\n"
10593 "ムクロックの粒度に切り上げられ、カーネルのスケジューリング遅延により\n"
10594 "少しだけ長くなる可能性がある)。この引き数の型は以下のとおりである:"
10595
10596 #. type: Plain text
10597 #: build/C/man2/sigwaitinfo.2:95
10598 #, no-wrap
10599 msgid ""
10600 "struct timespec {\n"
10601 "    long    tv_sec;         /* seconds */\n"
10602 "    long    tv_nsec;        /* nanoseconds */\n"
10603 "}\n"
10604 msgstr ""
10605 "struct timespec {\n"
10606 "    long    tv_sec;         /* 秒 */\n"
10607 "    long    tv_nsec;        /* ナノ秒 */\n"
10608 "}\n"
10609
10610 #. type: Plain text
10611 #: build/C/man2/sigwaitinfo.2:105
10612 msgid ""
10613 "If both fields of this structure are specified as 0, a poll is performed: "
10614 "B<sigtimedwait>()  returns immediately, either with information about a "
10615 "signal that was pending for the caller, or with an error if none of the "
10616 "signals in I<set> was pending."
10617 msgstr ""
10618 "この構造体の 2 つのフィールドがともに 0 の場合、ポーリングが行われる: "
10619 "B<sigtimedwait>()  は、呼び出し側プロセスに対して 待機しているシグナルの情報"
10620 "を返して戻るか、 I<set> のうちのどのシグナルも待機していない場合はエラーを返"
10621 "して戻る。"
10622
10623 #. type: Plain text
10624 #: build/C/man2/sigwaitinfo.2:114
10625 msgid ""
10626 "On success, both B<sigwaitinfo>()  and B<sigtimedwait>()  return a signal "
10627 "number (i.e., a value greater than zero).  On failure both calls return -1, "
10628 "with I<errno> set to indicate the error."
10629 msgstr ""
10630 "成功した場合、 B<sigwaitinfo>()  と B<sigtimedwait>()  はシグナル番号 (すなわ"
10631 "ち 0 より大きい数) を返す。 失敗した場合、2 つの関数は -1 を返し、 I<errno> "
10632 "はエラーを表す値に設定される。"
10633
10634 #. type: Plain text
10635 #: build/C/man2/sigwaitinfo.2:123
10636 msgid ""
10637 "No signal in I<set> was became pending within the I<timeout> period "
10638 "specified to B<sigtimedwait>()."
10639 msgstr ""
10640 "I<set> のうちのどのシグナルも B<sigtimedwait>()  に指定された I<timeout> の期"
10641 "間内に処理待ちにならなかった。"
10642
10643 #. type: Plain text
10644 #: build/C/man2/sigwaitinfo.2:129
10645 msgid ""
10646 "The wait was interrupted by a signal handler; see B<signal>(7).  (This "
10647 "handler was for a signal other than one of those in I<set>.)"
10648 msgstr ""
10649 "シグナル待ちがシグナルハンドラによって中断 (interrupt) された (このハンドラ"
10650 "は I<set> にあるシグナル以外のものである)。 B<signal>(7)  参照。"
10651
10652 #. type: Plain text
10653 #: build/C/man2/sigwaitinfo.2:133
10654 msgid "I<timeout> was invalid."
10655 msgstr "I<timeout> が不正である。"
10656
10657 #. type: Plain text
10658 #: build/C/man2/sigwaitinfo.2:153
10659 msgid ""
10660 "In normal usage, the calling program blocks the signals in I<set> via a "
10661 "prior call to B<sigprocmask>(2)  (so that the default disposition for these "
10662 "signals does not occur if they become pending between successive calls to "
10663 "B<sigwaitinfo>()  or B<sigtimedwait>())  and does not establish handlers for "
10664 "these signals.  In a multithreaded program, the signal should be blocked in "
10665 "all threads, in order to prevent the signal being treated according to its "
10666 "default disposition in a thread other than the one calling B<sigwaitinfo>()  "
10667 "or B<sigtimedwait>())."
10668 msgstr ""
10669 "通常の使用法では、呼び出し側プロセスはこれらの関数より先に B<sigprocmask>"
10670 "(2)  の呼び出すことにより I<set> に含まれるシグナルをブロックし (そのためにこ"
10671 "れらのシグナルがこの後に続く B<sigwaitinfo>()  や B<sigtimedwait>()  の呼び出"
10672 "しの間に処理待ちになった場合には、デフォルトの動作は行われず)、 これらのシグ"
10673 "ナルに対するハンドラは設定しない。 マルチスレッドプログラムでは、 "
10674 "B<sigwaitinfo>()  や B<sigtimedwait>() を呼び出したスレッド以外のスレッドで、"
10675 "そのシグナルがデフォルトの動作に基いて処理されないように、全てのスレッドで該"
10676 "当シグナルをブロックすべきである。"
10677
10678 #. type: Plain text
10679 #: build/C/man2/sigwaitinfo.2:158
10680 msgid ""
10681 "The set of signals that is pending for a given thread is the union of the "
10682 "set of signals that is pending specifically for that thread and the set of "
10683 "signals that is pending for the process as a whole (see B<signal>(7))."
10684 msgstr ""
10685 "指定されたスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体宛ての"
10686 "処理待ちのシグナル集合と、プロセス全体宛ての 処理待ちのシグナル集合をあわせた"
10687 "ものである (B<signal>(7)  参照)。"
10688
10689 #. type: Plain text
10690 #: build/C/man2/sigwaitinfo.2:164
10691 msgid "Attempts to wait for B<SIGKILL> and B<SIGSTOP> are silently ignored."
10692 msgstr "B<SIGKILL> と B<SIGSTOP> を待とうとした場合、黙って無視される。"
10693
10694 #. type: Plain text
10695 #: build/C/man2/sigwaitinfo.2:173
10696 msgid ""
10697 "If multiple threads of a process are blocked waiting for the same signal(s) "
10698 "in B<sigwaitinfo>()  or B<sigtimedwait>(), then exactly one of the threads "
10699 "will actually receive the signal if it becomes pending for the process as a "
10700 "whole; which of the threads receives the signal is indeterminate."
10701 msgstr ""
10702 "一つのプロセス内の複数のスレッドが B<sigwaitinfo>()  や B<sigtimedwait>()  で"
10703 "同じシグナルを待って停止した場合、 プロセス全体宛てのシグナルが処理待ちになる"
10704 "と、複数のスレッドのうち一つだけが 実際にそのシグナルを受信することになる。 "
10705 "どのスレッドがシグナルを受信するかは決まっていない。"
10706
10707 #. type: Plain text
10708 #: build/C/man2/sigwaitinfo.2:182
10709 msgid ""
10710 "POSIX leaves the meaning of a NULL value for the I<timeout> argument of "
10711 "B<sigtimedwait>()  unspecified, permitting the possibility that this has the "
10712 "same meaning as a call to B<sigwaitinfo>(), and indeed this is what is done "
10713 "on Linux."
10714 msgstr ""
10715 "POSIX では B<sigtimedwait>()  の引き数 I<timeout> の値を NULL にした場合の意"
10716 "味を未定義としている。 B<sigwaitinfo>()  を呼び出したのと同じ意味としてもよい"
10717 "ことになっており、 実際 Linux ではこのように動作する。"
10718
10719 #. type: Plain text
10720 #: build/C/man2/sigwaitinfo.2:187
10721 msgid ""
10722 "On Linux, B<sigwaitinfo>()  is a library function implemented on top of "
10723 "B<sigtimedwait>()."
10724 msgstr ""
10725 "Linux では、 B<sigwaitinfo>()  は B<sigtimedwait>()  を用いて実装されたライブ"
10726 "ラリ関数である。"
10727
10728 #. type: Plain text
10729 #: build/C/man2/sigwaitinfo.2:199
10730 msgid ""
10731 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
10732 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), B<signal>"
10733 "(7), B<time>(7)"
10734 msgstr ""
10735 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
10736 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), B<signal>"
10737 "(7), B<time>(7)"
10738
10739 #. type: TH
10740 #: build/C/man3/sysv_signal.3:25
10741 #, no-wrap
10742 msgid "SYSV_SIGNAL"
10743 msgstr "SYSV_SIGNAL"
10744
10745 #. type: TH
10746 #: build/C/man3/sysv_signal.3:25
10747 #, no-wrap
10748 msgid "2007-05-04"
10749 msgstr "2007-05-04"
10750
10751 #. type: Plain text
10752 #: build/C/man3/sysv_signal.3:28
10753 msgid "sysv_signal - signal handling with System V semantics"
10754 msgstr "sysv_signal - System V 方式のシグナル処理"
10755
10756 #. type: Plain text
10757 #: build/C/man3/sysv_signal.3:30
10758 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
10759 msgstr "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */"
10760
10761 #. type: Plain text
10762 #: build/C/man3/sysv_signal.3:36
10763 msgid ""
10764 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
10765 msgstr ""
10766 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
10767
10768 #. type: Plain text
10769 #: build/C/man3/sysv_signal.3:41
10770 msgid ""
10771 "The B<sysv_signal>()  function takes the same arguments, and performs the "
10772 "same task, as B<signal>(2)."
10773 msgstr ""
10774 "B<sysv_signal>()  関数は B<signal>(2)  と同じ引き数をとり、同じ処理を実行す"
10775 "る。"
10776
10777 #. type: Plain text
10778 #: build/C/man3/sysv_signal.3:51
10779 msgid ""
10780 "However B<sysv_signal>()  provides the System V unreliable signal semantics, "
10781 "that is: a) the disposition of the signal is reset to the default when the "
10782 "handler is invoked; b) delivery of further instances of the signal is not "
10783 "blocked while the signal handler is executing; and c) if the handler "
10784 "interrupts (certain) blocking system calls, then the system call is not "
10785 "automatically restarted."
10786 msgstr ""
10787 "しかしながら、 B<sysv_signal>()  は System V の信頼性に欠けるシグナル処理方式"
10788 "を提供している。 信頼性に欠けるシグナル処理方式は以下の特徴を持つ。 a) ハンド"
10789 "ラが起動されると、シグナルの処理方法 (disposition) が デフォルトにリセットさ"
10790 "れる、 b) シグナルハンドラの実行中は、それ以降に発生した同じシグナルの配送が "
10791 "ブロックされない、 c) ハンドラが停止中の (blocking している) システムコールを"
10792 "中断した場合、 自動的に再開されないシステムコールがある。"
10793
10794 #. type: Plain text
10795 #: build/C/man3/sysv_signal.3:57
10796 msgid ""
10797 "The B<sysv_signal>()  function returns the previous value of the signal "
10798 "handler, or B<SIG_ERR> on error."
10799 msgstr ""
10800 "B<sysv_signal>()  関数はシグナルハンドラの直前の値を返す。 エラーの場合、 "
10801 "B<SIG_ERR> を返す。"
10802
10803 #. type: Plain text
10804 #: build/C/man3/sysv_signal.3:62
10805 msgid "This function is nonstandard."
10806 msgstr "この関数は非標準である。"
10807
10808 #. type: Plain text
10809 #: build/C/man3/sysv_signal.3:68
10810 msgid ""
10811 "Use of B<sysv_signal>()  should be avoided; use B<sigaction>(2)  instead."
10812 msgstr ""
10813 "B<sysv_signal>()  の使用は避けるべきである。代わりに B<sigaction>(2)  を使う"
10814 "こと。"
10815
10816 #. type: Plain text
10817 #: build/C/man3/sysv_signal.3:79
10818 msgid ""
10819 "On older Linux systems, B<sysv_signal>()  and B<signal>(2)  were "
10820 "equivalent.  But on newer systems, B<signal>(2)  provides reliable signal "
10821 "semantics; see B<signal>(2)  for details."
10822 msgstr ""
10823 "以前の Linux システムでは、 B<sysv_signal>()  と B<signal>(2)  は等価であっ"
10824 "た。しかし、新しめのシステムでは、 B<signal>(2)  は信頼性のあるシグナル処理方"
10825 "式を提供している。 詳細は B<signal>(2)  を参照。"
10826
10827 #. type: Plain text
10828 #: build/C/man3/sysv_signal.3:92
10829 msgid "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
10830 msgstr "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
10831
10832 #. type: TH
10833 #: build/C/man2/timer_create.2:31
10834 #, no-wrap
10835 msgid "TIMER_CREATE"
10836 msgstr "TIMER_CREATE"
10837
10838 #. type: TH
10839 #: build/C/man2/timer_create.2:31
10840 #, no-wrap
10841 msgid "2010-09-27"
10842 msgstr "2010-09-27"
10843
10844 #. type: Plain text
10845 #: build/C/man2/timer_create.2:34
10846 msgid "timer_create - create a POSIX per-process timer"
10847 msgstr ""
10848
10849 #. type: Plain text
10850 #: build/C/man2/timer_create.2:38
10851 #, no-wrap
10852 msgid ""
10853 "B<#include E<lt>signal.hE<gt>>\n"
10854 "B<#include E<lt>time.hE<gt>>\n"
10855 msgstr ""
10856 "B<#include E<lt>signal.hE<gt>>\n"
10857 "B<#include E<lt>time.hE<gt>>\n"
10858
10859 #. type: Plain text
10860 #: build/C/man2/timer_create.2:41
10861 #, no-wrap
10862 msgid ""
10863 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
10864 "B<                 timer_t *>I<timerid>B<);>\n"
10865 msgstr ""
10866 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
10867 "B<                 timer_t *>I<timerid>B<);>\n"
10868
10869 #. type: Plain text
10870 #: build/C/man2/timer_create.2:44 build/C/man2/timer_delete.2:37
10871 #: build/C/man2/timer_getoverrun.2:37 build/C/man2/timer_settime.2:41
10872 msgid "Link with I<-lrt>."
10873 msgstr ""
10874
10875 #. type: Plain text
10876 #: build/C/man2/timer_create.2:52
10877 msgid "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10878 msgstr "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10879
10880 #. type: Plain text
10881 #: build/C/man2/timer_create.2:60
10882 msgid ""
10883 "B<timer_create>()  creates a new per-process interval timer.  The ID of the "
10884 "new timer is returned in the buffer pointed to by I<timerid>, which must be "
10885 "a non-NULL pointer.  This ID is unique within the process, until the timer "
10886 "is deleted.  The new timer is initially disarmed."
10887 msgstr ""
10888
10889 #. type: Plain text
10890 #: build/C/man2/timer_create.2:65
10891 msgid ""
10892 "The I<clockid> argument specifies the clock that the new timer uses to "
10893 "measure time.  It can be specified as one of the following values:"
10894 msgstr ""
10895
10896 #. type: TP
10897 #: build/C/man2/timer_create.2:65
10898 #, no-wrap
10899 msgid "B<CLOCK_REALTIME>"
10900 msgstr "B<CLOCK_REALTIME>"
10901
10902 #. type: Plain text
10903 #: build/C/man2/timer_create.2:68
10904 msgid "A settable system-wide real-time clock."
10905 msgstr ""
10906
10907 #. type: TP
10908 #: build/C/man2/timer_create.2:68
10909 #, no-wrap
10910 msgid "B<CLOCK_MONOTONIC>"
10911 msgstr "B<CLOCK_MONOTONIC>"
10912
10913 #.  Note: the CLOCK_MONOTONIC_RAW clock added for clock_gettime()
10914 #.  in 2.6.28 is not supported for POSIX timers -- mtk, Feb 2009
10915 #. type: Plain text
10916 #: build/C/man2/timer_create.2:75
10917 msgid ""
10918 "A nonsettable monotonically increasing clock that measures time from some "
10919 "unspecified point in the past that does not change after system startup."
10920 msgstr ""
10921
10922 #. type: TP
10923 #: build/C/man2/timer_create.2:75
10924 #, no-wrap
10925 msgid "B<CLOCK_PROCESS_CPUTIME_ID> (since Linux 2.6.12)"
10926 msgstr ""
10927
10928 #. type: Plain text
10929 #: build/C/man2/timer_create.2:79
10930 msgid ""
10931 "A clock that measures (user and system) CPU time consumed by (all of the "
10932 "threads in) the calling process."
10933 msgstr ""
10934
10935 #. type: TP
10936 #: build/C/man2/timer_create.2:79
10937 #, no-wrap
10938 msgid "B<CLOCK_THREAD_CPUTIME_ID> (since Linux 2.6.12)"
10939 msgstr ""
10940
10941 #.  The CLOCK_MONOTONIC_RAW that was added in 2.6.28 can't be used
10942 #.  to create a timer -- mtk, Feb 2009
10943 #. type: Plain text
10944 #: build/C/man2/timer_create.2:85
10945 msgid ""
10946 "A clock that measures (user and system) CPU time consumed by the calling "
10947 "thread."
10948 msgstr ""
10949
10950 #. type: Plain text
10951 #: build/C/man2/timer_create.2:94
10952 msgid ""
10953 "As well as the above values, I<clockid> can be specified as the I<clockid> "
10954 "returned by a call to B<clock_getcpuclockid>(3)  or B<pthread_getcpuclockid>"
10955 "(3)."
10956 msgstr ""
10957
10958 #. type: Plain text
10959 #: build/C/man2/timer_create.2:103
10960 msgid ""
10961 "The I<sevp> argument points to a I<sigevent> structure that specifies how "
10962 "the caller should be notified when the timer expires.  For the definition "
10963 "and general details of this structure, see B<sigevent>(7)."
10964 msgstr ""
10965
10966 #. type: Plain text
10967 #: build/C/man2/timer_create.2:107
10968 msgid "The I<sevp.sigev_notify> field can have the following values:"
10969 msgstr ""
10970
10971 #. type: Plain text
10972 #: build/C/man2/timer_create.2:112
10973 msgid ""
10974 "Don't asynchronously notify when the timer expires.  Progress of the timer "
10975 "can be monitored using B<timer_gettime>(2)."
10976 msgstr ""
10977
10978 #. type: Plain text
10979 #: build/C/man2/timer_create.2:130
10980 msgid ""
10981 "Upon timer expiration, generate the signal I<sigev_signo> for the process.  "
10982 "See B<sigevent>(7)  for general details.  The I<si_code> field of the "
10983 "I<siginfo_t> structure will be set to B<SI_TIMER>.  At any point in time, at "
10984 "most one signal is queued to the process for a given timer; see "
10985 "B<timer_getoverrun>(2)  for more details."
10986 msgstr ""
10987
10988 #. type: Plain text
10989 #: build/C/man2/timer_create.2:138
10990 msgid ""
10991 "Upon timer expiration, invoke I<sigev_notify_function> as if it were the "
10992 "start function of a new thread.  See B<sigevent>(7)  for details."
10993 msgstr ""
10994
10995 #. type: Plain text
10996 #: build/C/man2/timer_create.2:152
10997 msgid ""
10998 "As for B<SIGEV_SIGNAL>, but the signal is targeted at the thread whose ID is "
10999 "given in I<sigev_notify_thread_id>, which must be a thread in the same "
11000 "process as the caller.  The I<sigev_notify_thread_id> field specifies a "
11001 "kernel thread ID, that is, the value returned by B<clone>(2)  or B<gettid>"
11002 "(2).  This flag is intended only for use by threading libraries."
11003 msgstr ""
11004
11005 #. type: Plain text
11006 #: build/C/man2/timer_create.2:167
11007 msgid ""
11008 "Specifying I<sevp> as NULL is equivalent to specifying a pointer to a "
11009 "I<sigevent> structure in which I<sigev_notify> is B<SIGEV_SIGNAL>, "
11010 "I<sigev_signo> is B<SIGALRM>, and I<sigev_value.sival_int> is the timer ID."
11011 msgstr ""
11012
11013 #. type: Plain text
11014 #: build/C/man2/timer_create.2:175
11015 msgid ""
11016 "On success, B<timer_create>()  returns 0, and the ID of the new timer is "
11017 "placed in I<*timerid>.  On failure, -1 is returned, and I<errno> is set to "
11018 "indicate the error."
11019 msgstr ""
11020
11021 #. type: Plain text
11022 #: build/C/man2/timer_create.2:179
11023 msgid "Temporary error during kernel allocation of timer structures."
11024 msgstr ""
11025
11026 #. type: Plain text
11027 #: build/C/man2/timer_create.2:187
11028 msgid ""
11029 "Clock ID, I<sigev_notify>, I<sigev_signo>, or I<sigev_notify_thread_id> is "
11030 "invalid."
11031 msgstr ""
11032
11033 #.  glibc layer: malloc()
11034 #. type: Plain text
11035 #: build/C/man2/timer_create.2:191
11036 msgid "Could not allocate memory."
11037 msgstr ""
11038
11039 #. type: Plain text
11040 #: build/C/man2/timer_create.2:193 build/C/man2/timer_delete.2:67
11041 #: build/C/man2/timer_getoverrun.2:97
11042 msgid "This system call is available since Linux 2.6."
11043 msgstr ""
11044
11045 #. type: Plain text
11046 #: build/C/man2/timer_create.2:198
11047 msgid "A program may create multiple interval timers using B<timer_create>()."
11048 msgstr ""
11049
11050 #. type: Plain text
11051 #: build/C/man2/timer_create.2:203
11052 msgid ""
11053 "Timers are not inherited by the child of a B<fork>(2), and are disarmed and "
11054 "deleted during an B<execve>(2)."
11055 msgstr ""
11056
11057 #. type: Plain text
11058 #: build/C/man2/timer_create.2:211
11059 msgid ""
11060 "The kernel preallocates a \"queued real-time signal\" for each timer created "
11061 "using B<timer_create>().  Consequently, the number of timers is limited by "
11062 "the B<RLIMIT_SIGPENDING> resource limit (see B<setrlimit>(2))."
11063 msgstr ""
11064
11065 #. type: Plain text
11066 #: build/C/man2/timer_create.2:216
11067 msgid ""
11068 "The timers created by B<timer_create>()  are commonly known as \"POSIX "
11069 "(interval) timers\".  The POSIX timers API consists of the following "
11070 "interfaces:"
11071 msgstr ""
11072
11073 #. type: Plain text
11074 #: build/C/man2/timer_create.2:219
11075 msgid "B<timer_create>(): Create a timer."
11076 msgstr ""
11077
11078 #. type: Plain text
11079 #: build/C/man2/timer_create.2:222
11080 msgid "B<timer_settime>(2): Arm (start) or disarm (stop) a timer."
11081 msgstr ""
11082
11083 #. type: Plain text
11084 #: build/C/man2/timer_create.2:226
11085 msgid ""
11086 "B<timer_gettime>(2): Fetch the time remaining until the next expiration of a "
11087 "timer, along with the interval setting of the timer."
11088 msgstr ""
11089
11090 #. type: Plain text
11091 #: build/C/man2/timer_create.2:229
11092 msgid ""
11093 "B<timer_getoverrun>(2): Return the overrun count for the last timer "
11094 "expiration."
11095 msgstr ""
11096
11097 #. type: Plain text
11098 #: build/C/man2/timer_create.2:232
11099 msgid "B<timer_delete>(2): Disarm and delete a timer."
11100 msgstr ""
11101
11102 #. type: Plain text
11103 #: build/C/man2/timer_create.2:235
11104 msgid ""
11105 "Part of the implementation of the POSIX timers API is provided by glibc.  In "
11106 "particular:"
11107 msgstr ""
11108
11109 #. type: Plain text
11110 #: build/C/man2/timer_create.2:239
11111 msgid ""
11112 "The functionality for B<SIGEV_THREAD> is implemented within glibc, rather "
11113 "than the kernel."
11114 msgstr ""
11115
11116 #.  See the glibc source file kernel-posix-timers.h for the structure
11117 #.  that glibc uses to map user-space timer IDs to kernel timer IDs
11118 #.  The kernel-level timer ID is exposed via siginfo.si_tid.
11119 #. type: Plain text
11120 #: build/C/man2/timer_create.2:245
11121 msgid ""
11122 "The timer IDs presented at user level are maintained by glibc, which maps "
11123 "these IDs to the timer IDs employed by the kernel."
11124 msgstr ""
11125
11126 #. type: Plain text
11127 #: build/C/man2/timer_create.2:253
11128 msgid ""
11129 "The POSIX timers system calls first appeared in Linux 2.6.  Prior to this, "
11130 "glibc provided an incomplete user-space implementation (B<CLOCK_REALTIME> "
11131 "timers only) using POSIX threads, and current glibc falls back to this "
11132 "implementation on systems running pre-2.6 Linux kernels."
11133 msgstr ""
11134
11135 #. type: Plain text
11136 #: build/C/man2/timer_create.2:265
11137 msgid ""
11138 "The program below takes two arguments: a sleep period in seconds, and a "
11139 "timer frequency in nanoseconds.  The program establishes a handler for the "
11140 "signal it uses for the timer, blocks that signal, creates and arms a timer "
11141 "that expires with the given frequency, sleeps for the specified number of "
11142 "seconds, and then unblocks the timer signal.  Assuming that the timer "
11143 "expired at least once while the program slept, the signal handler will be "
11144 "invoked, and the handler displays some information about the timer "
11145 "notification.  The program terminates after one invocation of the signal "
11146 "handler."
11147 msgstr ""
11148
11149 #. type: Plain text
11150 #: build/C/man2/timer_create.2:270
11151 msgid ""
11152 "In the following example run, the program sleeps for 1 second, after "
11153 "creating a timer that has a frequency of 100 nanoseconds.  By the time the "
11154 "signal is unblocked and delivered, there have been around ten million "
11155 "overruns."
11156 msgstr ""
11157
11158 #. type: Plain text
11159 #: build/C/man2/timer_create.2:282
11160 #, no-wrap
11161 msgid ""
11162 "$ B<./a.out 1 100>\n"
11163 "Establishing handler for signal 34\n"
11164 "Blocking signal 34\n"
11165 "timer ID is 0x804c008\n"
11166 "Sleeping for 1 seconds\n"
11167 "Unblocking signal 34\n"
11168 "Caught signal 34\n"
11169 "    sival_ptr = 0xbfb174f4;     *sival_ptr = 0x804c008\n"
11170 "    overrun count = 10004886\n"
11171 msgstr ""
11172
11173 #. type: Plain text
11174 #: build/C/man2/timer_create.2:292
11175 #, no-wrap
11176 msgid ""
11177 "#include E<lt>stdlib.hE<gt>\n"
11178 "#include E<lt>unistd.hE<gt>\n"
11179 "#include E<lt>stdio.hE<gt>\n"
11180 "#include E<lt>signal.hE<gt>\n"
11181 "#include E<lt>time.hE<gt>\n"
11182 msgstr ""
11183 "#include E<lt>stdlib.hE<gt>\n"
11184 "#include E<lt>unistd.hE<gt>\n"
11185 "#include E<lt>stdio.hE<gt>\n"
11186 "#include E<lt>signal.hE<gt>\n"
11187 "#include E<lt>time.hE<gt>\n"
11188
11189 #. type: Plain text
11190 #: build/C/man2/timer_create.2:295
11191 #, no-wrap
11192 msgid ""
11193 "#define CLOCKID CLOCK_REALTIME\n"
11194 "#define SIG SIGRTMIN\n"
11195 msgstr ""
11196 "#define CLOCKID CLOCK_REALTIME\n"
11197 "#define SIG SIGRTMIN\n"
11198
11199 #. type: Plain text
11200 #: build/C/man2/timer_create.2:298
11201 #, no-wrap
11202 msgid ""
11203 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
11204 "                        } while (0)\n"
11205 msgstr ""
11206 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
11207 "                        } while (0)\n"
11208
11209 #. type: Plain text
11210 #: build/C/man2/timer_create.2:304
11211 #, no-wrap
11212 msgid ""
11213 "static void\n"
11214 "print_siginfo(siginfo_t *si)\n"
11215 "{\n"
11216 "    timer_t *tidp;\n"
11217 "    int or;\n"
11218 msgstr ""
11219 "static void\n"
11220 "print_siginfo(siginfo_t *si)\n"
11221 "{\n"
11222 "    timer_t *tidp;\n"
11223 "    int or;\n"
11224
11225 #. type: Plain text
11226 #: build/C/man2/timer_create.2:306
11227 #, no-wrap
11228 msgid "    tidp = si-E<gt>si_value.sival_ptr;\n"
11229 msgstr "    tidp = si-E<gt>si_value.sival_ptr;\n"
11230
11231 #. type: Plain text
11232 #: build/C/man2/timer_create.2:309
11233 #, no-wrap
11234 msgid ""
11235 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
11236 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
11237 msgstr ""
11238 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
11239 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
11240
11241 #. type: Plain text
11242 #: build/C/man2/timer_create.2:316
11243 #, no-wrap
11244 msgid ""
11245 "    or = timer_getoverrun(*tidp);\n"
11246 "    if (or == -1)\n"
11247 "        errExit(\"timer_getoverrun\");\n"
11248 "    else\n"
11249 "        printf(\"    overrun count = %d\\en\", or);\n"
11250 "}\n"
11251 msgstr ""
11252 "    or = timer_getoverrun(*tidp);\n"
11253 "    if (or == -1)\n"
11254 "        errExit(\"timer_getoverrun\");\n"
11255 "    else\n"
11256 "        printf(\"    overrun count = %d\\en\", or);\n"
11257 "}\n"
11258
11259 #. type: Plain text
11260 #: build/C/man2/timer_create.2:323
11261 #, no-wrap
11262 msgid ""
11263 "static void\n"
11264 "handler(int sig, siginfo_t *si, void *uc)\n"
11265 "{\n"
11266 "    /* Note: calling printf() from a signal handler is not\n"
11267 "       strictly correct, since printf() is not async-signal-safe;\n"
11268 "       see signal(7) */\n"
11269 msgstr ""
11270 "static void\n"
11271 "handler(int sig, siginfo_t *si, void *uc)\n"
11272 "{\n"
11273 "    /* Note: calling printf() from a signal handler is not\n"
11274 "       strictly correct, since printf() is not async-signal-safe;\n"
11275 "       see signal(7) */\n"
11276
11277 #. type: Plain text
11278 #: build/C/man2/timer_create.2:328
11279 #, no-wrap
11280 msgid ""
11281 "    printf(\"Caught signal %d\\en\", sig);\n"
11282 "    print_siginfo(si);\n"
11283 "    signal(sig, SIG_IGN);\n"
11284 "}\n"
11285 msgstr ""
11286 "    printf(\"Caught signal %d\\en\", sig);\n"
11287 "    print_siginfo(si);\n"
11288 "    signal(sig, SIG_IGN);\n"
11289 "}\n"
11290
11291 #. type: Plain text
11292 #: build/C/man2/timer_create.2:338
11293 #, no-wrap
11294 msgid ""
11295 "int\n"
11296 "main(int argc, char *argv[])\n"
11297 "{\n"
11298 "    timer_t timerid;\n"
11299 "    struct sigevent sev;\n"
11300 "    struct itimerspec its;\n"
11301 "    long long freq_nanosecs;\n"
11302 "    sigset_t mask;\n"
11303 "    struct sigaction sa;\n"
11304 msgstr ""
11305 "int\n"
11306 "main(int argc, char *argv[])\n"
11307 "{\n"
11308 "    timer_t timerid;\n"
11309 "    struct sigevent sev;\n"
11310 "    struct itimerspec its;\n"
11311 "    long long freq_nanosecs;\n"
11312 "    sigset_t mask;\n"
11313 "    struct sigaction sa;\n"
11314
11315 #. type: Plain text
11316 #: build/C/man2/timer_create.2:344
11317 #, no-wrap
11318 msgid ""
11319 "    if (argc != 3) {\n"
11320 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
11321 "                argv[0]);\n"
11322 "        exit(EXIT_FAILURE);\n"
11323 "    }\n"
11324 msgstr ""
11325 "    if (argc != 3) {\n"
11326 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
11327 "                argv[0]);\n"
11328 "        exit(EXIT_FAILURE);\n"
11329 "    }\n"
11330
11331 #. type: Plain text
11332 #: build/C/man2/timer_create.2:346
11333 #, no-wrap
11334 msgid "    /* Establish handler for timer signal */\n"
11335 msgstr "    /* Establish handler for timer signal */\n"
11336
11337 #. type: Plain text
11338 #: build/C/man2/timer_create.2:353
11339 #, no-wrap
11340 msgid ""
11341 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
11342 "    sa.sa_flags = SA_SIGINFO;\n"
11343 "    sa.sa_sigaction = handler;\n"
11344 "    sigemptyset(&sa.sa_mask);\n"
11345 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
11346 "        errExit(\"sigaction\");\n"
11347 msgstr ""
11348 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
11349 "    sa.sa_flags = SA_SIGINFO;\n"
11350 "    sa.sa_sigaction = handler;\n"
11351 "    sigemptyset(&sa.sa_mask);\n"
11352 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
11353 "        errExit(\"sigaction\");\n"
11354
11355 #. type: Plain text
11356 #: build/C/man2/timer_create.2:355
11357 #, no-wrap
11358 msgid "    /* Block timer signal temporarily */\n"
11359 msgstr "    /* Block timer signal temporarily */\n"
11360
11361 #. type: Plain text
11362 #: build/C/man2/timer_create.2:361
11363 #, no-wrap
11364 msgid ""
11365 "    printf(\"Blocking signal %d\\en\", SIG);\n"
11366 "    sigemptyset(&mask);\n"
11367 "    sigaddset(&mask, SIG);\n"
11368 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
11369 "        errExit(\"sigprocmask\");\n"
11370 msgstr ""
11371 "    printf(\"Blocking signal %d\\en\", SIG);\n"
11372 "    sigemptyset(&mask);\n"
11373 "    sigaddset(&mask, SIG);\n"
11374 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
11375 "        errExit(\"sigprocmask\");\n"
11376
11377 #. type: Plain text
11378 #: build/C/man2/timer_create.2:363
11379 #, no-wrap
11380 msgid "    /* Create the timer */\n"
11381 msgstr "    /* Create the timer */\n"
11382
11383 #. type: Plain text
11384 #: build/C/man2/timer_create.2:369
11385 #, no-wrap
11386 msgid ""
11387 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
11388 "    sev.sigev_signo = SIG;\n"
11389 "    sev.sigev_value.sival_ptr = &timerid;\n"
11390 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
11391 "        errExit(\"timer_create\");\n"
11392 msgstr ""
11393 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
11394 "    sev.sigev_signo = SIG;\n"
11395 "    sev.sigev_value.sival_ptr = &timerid;\n"
11396 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
11397 "        errExit(\"timer_create\");\n"
11398
11399 #. type: Plain text
11400 #: build/C/man2/timer_create.2:371
11401 #, no-wrap
11402 msgid "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
11403 msgstr "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
11404
11405 #. type: Plain text
11406 #: build/C/man2/timer_create.2:373
11407 #, no-wrap
11408 msgid "    /* Start the timer */\n"
11409 msgstr "    /* Start the timer */\n"
11410
11411 #. type: Plain text
11412 #: build/C/man2/timer_create.2:379
11413 #, no-wrap
11414 msgid ""
11415 "    freq_nanosecs = atoll(argv[2]);\n"
11416 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
11417 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
11418 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
11419 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
11420 msgstr ""
11421 "    freq_nanosecs = atoll(argv[2]);\n"
11422 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
11423 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
11424 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
11425 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
11426
11427 #. type: Plain text
11428 #: build/C/man2/timer_create.2:382
11429 #, no-wrap
11430 msgid ""
11431 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
11432 "         errExit(\"timer_settime\");\n"
11433 msgstr ""
11434 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
11435 "         errExit(\"timer_settime\");\n"
11436
11437 #. type: Plain text
11438 #: build/C/man2/timer_create.2:385
11439 #, no-wrap
11440 msgid ""
11441 "    /* Sleep for a while; meanwhile, the timer may expire\n"
11442 "       multiple times */\n"
11443 msgstr ""
11444 "    /* Sleep for a while; meanwhile, the timer may expire\n"
11445 "       multiple times */\n"
11446
11447 #. type: Plain text
11448 #: build/C/man2/timer_create.2:388
11449 #, no-wrap
11450 msgid ""
11451 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
11452 "    sleep(atoi(argv[1]));\n"
11453 msgstr ""
11454 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
11455 "    sleep(atoi(argv[1]));\n"
11456
11457 #. type: Plain text
11458 #: build/C/man2/timer_create.2:391
11459 #, no-wrap
11460 msgid ""
11461 "    /* Unlock the timer signal, so that timer notification\n"
11462 "       can be delivered */\n"
11463 msgstr ""
11464 "    /* Unlock the timer signal, so that timer notification\n"
11465 "       can be delivered */\n"
11466
11467 #. type: Plain text
11468 #: build/C/man2/timer_create.2:395
11469 #, no-wrap
11470 msgid ""
11471 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
11472 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
11473 "        errExit(\"sigprocmask\");\n"
11474 msgstr ""
11475 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
11476 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
11477 "        errExit(\"sigprocmask\");\n"
11478
11479 #. type: Plain text
11480 #: build/C/man2/timer_create.2:398 build/C/man2/timerfd_create.2:540
11481 #, no-wrap
11482 msgid ""
11483 "    exit(EXIT_SUCCESS);\n"
11484 "}\n"
11485 msgstr ""
11486 "    exit(EXIT_SUCCESS);\n"
11487 "}\n"
11488
11489 #. type: Plain text
11490 #: build/C/man2/timer_create.2:414
11491 msgid ""
11492 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), B<timer_getoverrun>"
11493 "(2), B<timer_settime>(2), B<timerfd_create>(2), B<clock_getcpuclockid>(3), "
11494 "B<pthread_getcpuclockid>(3), B<pthreads>(7), B<sigevent>(7), B<signal>(7), "
11495 "B<time>(7)"
11496 msgstr ""
11497 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), B<timer_getoverrun>"
11498 "(2), B<timer_settime>(2), B<timerfd_create>(2), B<clock_getcpuclockid>(3), "
11499 "B<pthread_getcpuclockid>(3), B<pthreads>(7), B<sigevent>(7), B<signal>(7), "
11500 "B<time>(7)"
11501
11502 #. type: TH
11503 #: build/C/man2/timer_delete.2:26
11504 #, no-wrap
11505 msgid "TIMER_DELETE"
11506 msgstr "TIMER_DELETE"
11507
11508 #. type: TH
11509 #: build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26
11510 #, no-wrap
11511 msgid "2009-02-20"
11512 msgstr "2009-02-20"
11513
11514 #. type: Plain text
11515 #: build/C/man2/timer_delete.2:29
11516 msgid "timer_delete - delete a POSIX per-process timer"
11517 msgstr ""
11518
11519 #. type: Plain text
11520 #: build/C/man2/timer_delete.2:32 build/C/man2/timer_getoverrun.2:32
11521 #: build/C/man2/timer_settime.2:33
11522 #, no-wrap
11523 msgid "B<#include E<lt>time.hE<gt>>\n"
11524 msgstr "B<#include E<lt>time.hE<gt>>\n"
11525
11526 #. type: Plain text
11527 #: build/C/man2/timer_delete.2:34
11528 #, no-wrap
11529 msgid "B<int timer_delete(timer_t >I<timerid>B<);>\n"
11530 msgstr "B<int timer_delete(timer_t >I<timerid>B<);>\n"
11531
11532 #. type: Plain text
11533 #: build/C/man2/timer_delete.2:45
11534 msgid "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11535 msgstr "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11536
11537 #. type: Plain text
11538 #: build/C/man2/timer_delete.2:53
11539 msgid ""
11540 "B<timer_delete>()  deletes the timer whose ID is given in I<timerid>.  If "
11541 "the timer was armed at the time of this call, it is disarmed before being "
11542 "deleted.  The treatment of any pending signal generated by the deleted timer "
11543 "is unspecified."
11544 msgstr ""
11545
11546 #. type: Plain text
11547 #: build/C/man2/timer_delete.2:60
11548 msgid ""
11549 "On success, B<timer_delete>()  returns 0.  On failure, -1 is returned, and "
11550 "I<errno> is set to indicate the error."
11551 msgstr ""
11552
11553 #. type: Plain text
11554 #: build/C/man2/timer_delete.2:65 build/C/man2/timer_getoverrun.2:95
11555 msgid "I<timerid> is not a valid timer ID."
11556 msgstr ""
11557
11558 #. type: Plain text
11559 #: build/C/man2/timer_delete.2:75
11560 msgid ""
11561 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
11562 "B<timer_settime>(2), B<time>(7)"
11563 msgstr ""
11564 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
11565 "B<timer_settime>(2), B<time>(7)"
11566
11567 #. type: TH
11568 #: build/C/man2/timer_getoverrun.2:26
11569 #, no-wrap
11570 msgid "TIMER_GETOVERRUN"
11571 msgstr "TIMER_GETOVERRUN"
11572
11573 #. type: Plain text
11574 #: build/C/man2/timer_getoverrun.2:29
11575 msgid "timer_getoverrun - get overrun count for a POSIX per-process timer"
11576 msgstr ""
11577
11578 #. type: Plain text
11579 #: build/C/man2/timer_getoverrun.2:34
11580 #, no-wrap
11581 msgid "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
11582 msgstr "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
11583
11584 #. type: Plain text
11585 #: build/C/man2/timer_getoverrun.2:45
11586 msgid "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11587 msgstr "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11588
11589 #. type: Plain text
11590 #: build/C/man2/timer_getoverrun.2:56
11591 msgid ""
11592 "B<timer_getoverrun>()  returns the \"overrun count\" for the timer referred "
11593 "to by I<timerid>.  An application can use the overrun count to accurately "
11594 "calculate the number of timer expirations that would have occurred over a "
11595 "given time interval.  Timer overruns can occur both when receiving "
11596 "expiration notifications via signals (B<SIGEV_SIGNAL>), and via threads "
11597 "(B<SIGEV_THREAD>)."
11598 msgstr ""
11599
11600 #. type: Plain text
11601 #: build/C/man2/timer_getoverrun.2:76
11602 msgid ""
11603 "When expiration notifications are delivered via a signal, overruns can occur "
11604 "as follows.  Regardless of whether or not a real-time signal is used for "
11605 "timer notifications, the system queues at most one signal per timer.  (This "
11606 "is the behavior specified by POSIX.1-2001.  The alternative, queuing one "
11607 "signal for each timer expiration, could easily result in overflowing the "
11608 "allowed limits for queued signals on the system.)  Because of system "
11609 "scheduling delays, or because the signal may be temporarily blocked, there "
11610 "can be a delay between the time when the notification signal is generated "
11611 "and the time when it is delivered (e.g., caught by a signal handler) or "
11612 "accepted (e.g., using B<sigwaitinfo>(2)).  In this interval, further timer "
11613 "expirations may occur.  The timer overrun count is the number of additional "
11614 "timer expirations that occurred between the time when the signal was "
11615 "generated and when it was delivered or accepted."
11616 msgstr ""
11617
11618 #. type: Plain text
11619 #: build/C/man2/timer_getoverrun.2:82
11620 msgid ""
11621 "Timer overruns can also occur when expiration notifications are delivered "
11622 "via invocation of a thread, since there may be an arbitrary delay between an "
11623 "expiration of the timer and the invocation of the notification thread, and "
11624 "in that delay interval, additional timer expirations may occur"
11625 msgstr ""
11626
11627 #. type: Plain text
11628 #: build/C/man2/timer_getoverrun.2:90
11629 msgid ""
11630 "On success, B<timer_getoverrun>()  returns the overrun count of the "
11631 "specified timer; this count may be 0 if no overruns have occurred.  On "
11632 "failure, -1 is returned, and I<errno> is set to indicate the error."
11633 msgstr ""
11634
11635 #. type: Plain text
11636 #: build/C/man2/timer_getoverrun.2:111
11637 msgid ""
11638 "When timer notifications are delivered via signals (B<SIGEV_SIGNAL>), on "
11639 "Linux it is also possible to obtain the overrun count via the I<si_overrun> "
11640 "field of the I<siginfo_t> structure (see B<sigaction>(2)).  This allows an "
11641 "application to avoid the overhead of making a system call to obtain the "
11642 "overrun count, but is a nonportable extension to POSIX.1-2001."
11643 msgstr ""
11644
11645 #.  FIXME . Austin bug filed, 11 Feb 09
11646 #. type: Plain text
11647 #: build/C/man2/timer_getoverrun.2:115
11648 msgid ""
11649 "POSIX.1-2001 discusses timer overruns only in the context of timer "
11650 "notifications using signals."
11651 msgstr ""
11652
11653 #.  Bug filed: http://bugzilla.kernel.org/show_bug.cgi?id=12665
11654 #.  http://thread.gmane.org/gmane.linux.kernel/113276/
11655 #. type: Plain text
11656 #: build/C/man2/timer_getoverrun.2:128
11657 msgid ""
11658 "POSIX.1-2001 specifies that if the timer overrun count is equal to or "
11659 "greater than an implementation-defined maximum, B<DELAYTIMER_MAX>, then "
11660 "B<timer_getoverrun>()  should return B<DELAYTIMER_MAX>.  However, Linux does "
11661 "not implement this feature: instead, if the timer overrun value exceeds the "
11662 "maximum representable integer, the counter cycles, starting once more from "
11663 "low values."
11664 msgstr ""
11665
11666 #. type: Plain text
11667 #: build/C/man2/timer_getoverrun.2:131 build/C/man2/timer_settime.2:212
11668 msgid "See B<timer_create>(2)."
11669 msgstr ""
11670
11671 #. type: Plain text
11672 #: build/C/man2/timer_getoverrun.2:141
11673 msgid ""
11674 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
11675 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
11676 "B<time>(7)"
11677 msgstr ""
11678 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
11679 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
11680 "B<time>(7)"
11681
11682 #. type: TH
11683 #: build/C/man2/timer_settime.2:26
11684 #, no-wrap
11685 msgid "TIMER_SETTIME"
11686 msgstr "TIMER_SETTIME"
11687
11688 #. type: TH
11689 #: build/C/man2/timer_settime.2:26
11690 #, no-wrap
11691 msgid "2012-10-15"
11692 msgstr "2012-10-15"
11693
11694 #. type: Plain text
11695 #: build/C/man2/timer_settime.2:30
11696 msgid ""
11697 "timer_settime, timer_gettime - arm/disarm and fetch state of POSIX per-"
11698 "process timer"
11699 msgstr ""
11700
11701 #. type: Plain text
11702 #: build/C/man2/timer_settime.2:38
11703 #, no-wrap
11704 msgid ""
11705 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
11706 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
11707 "B<                  struct itimerspec * >I<old_value>B<);>\n"
11708 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
11709 msgstr ""
11710 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
11711 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
11712 "B<                  struct itimerspec * >I<old_value>B<);>\n"
11713 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
11714
11715 #. type: Plain text
11716 #: build/C/man2/timer_settime.2:50
11717 msgid ""
11718 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11719 msgstr ""
11720 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11721
11722 #. type: Plain text
11723 #: build/C/man2/timer_settime.2:63
11724 msgid ""
11725 "B<timer_settime>()  arms or disarms the timer identified by I<timerid>.  The "
11726 "I<new_value> argument is pointer to an I<itimerspec> structure that "
11727 "specifies the new initial value and the new interval for the timer.  The "
11728 "I<itimerspec> structure is defined as follows:"
11729 msgstr ""
11730
11731 #. type: Plain text
11732 #: build/C/man2/timer_settime.2:70 build/C/man2/timerfd_create.2:128
11733 #, no-wrap
11734 msgid ""
11735 "struct timespec {\n"
11736 "    time_t tv_sec;                /* Seconds */\n"
11737 "    long   tv_nsec;               /* Nanoseconds */\n"
11738 "};\n"
11739 msgstr ""
11740 "struct timespec {\n"
11741 "    time_t tv_sec;                /* Seconds */\n"
11742 "    long   tv_nsec;               /* Nanoseconds */\n"
11743 "};\n"
11744
11745 #. type: Plain text
11746 #: build/C/man2/timer_settime.2:75
11747 #, no-wrap
11748 msgid ""
11749 "struct itimerspec {\n"
11750 "    struct timespec it_interval;  /* Timer interval */\n"
11751 "    struct timespec it_value;     /* Initial expiration */\n"
11752 "};\n"
11753 msgstr ""
11754 "struct itimerspec {\n"
11755 "    struct timespec it_interval;  /* Timer interval */\n"
11756 "    struct timespec it_value;     /* Initial expiration */\n"
11757 "};\n"
11758
11759 #. type: Plain text
11760 #: build/C/man2/timer_settime.2:87
11761 msgid ""
11762 "Each of the substructures of the I<itimerspec> structure is a I<timespec> "
11763 "structure that allows a time value to be specified in seconds and "
11764 "nanoseconds.  These time values are measured according to the clock that was "
11765 "specified when the timer was created by B<timer_create>(2)"
11766 msgstr ""
11767
11768 #. type: Plain text
11769 #: build/C/man2/timer_settime.2:101
11770 msgid ""
11771 "If I<new_value-E<gt>it_value> specifies a nonzero value (i.e., either "
11772 "subfield is nonzero), then B<timer_settime>()  arms (starts) the timer, "
11773 "setting it to initially expire at the given time.  (If the timer was already "
11774 "armed, then the previous settings are overwritten.)  If I<new_value-"
11775 "E<gt>it_value> specifies a zero value (i.e., both subfields are zero), then "
11776 "the timer is disarmed."
11777 msgstr ""
11778
11779 #. type: Plain text
11780 #: build/C/man2/timer_settime.2:113
11781 msgid ""
11782 "The I<new_value-E<gt>it_interval> field specifies the period of the timer, "
11783 "in seconds and nanoseconds.  If this field is nonzero, then each time that "
11784 "an armed timer expires, the timer is reloaded from the value specified in "
11785 "I<new_value-E<gt>it_interval>.  If I<new_value-E<gt>it_interval> specifies a "
11786 "zero value then the timer expires just once, at the time specified by "
11787 "I<it_value>."
11788 msgstr ""
11789
11790 #.  By experiment: the overrun count is set correctly, for CLOCK_REALTIME.
11791 #. type: Plain text
11792 #: build/C/man2/timer_settime.2:134
11793 msgid ""
11794 "By default, the initial expiration time specified in I<new_value-"
11795 "E<gt>it_value> is interpreted relative to the current time on the timer's "
11796 "clock at the time of the call.  This can be modified by specifying "
11797 "B<TIMER_ABSTIME> in I<flags>, in which case I<new_value-E<gt>it_value> is "
11798 "interpreted as an absolute value as measured on the timer's clock; that is, "
11799 "the timer will expire when the clock value reaches the value specified by "
11800 "I<new_value-E<gt>it_value>.  If the specified absolute time has already "
11801 "passed, then the timer expires immediately, and the overrun count (see "
11802 "B<timer_getoverrun>(2))  will be set correctly."
11803 msgstr ""
11804
11805 #.  Similar remarks might apply with respect to process and thread CPU time
11806 #.  clocks, but these clocks are not currently (2.6.28) settable on Linux.
11807 #. type: Plain text
11808 #: build/C/man2/timer_settime.2:144
11809 msgid ""
11810 "If the value of the B<CLOCK_REALTIME> clock is adjusted while an absolute "
11811 "timer based on that clock is armed, then the expiration of the timer will be "
11812 "appropriately adjusted.  Adjustments to the B<CLOCK_REALTIME> clock have no "
11813 "effect on relative timers based on that clock."
11814 msgstr ""
11815
11816 #. type: Plain text
11817 #: build/C/man2/timer_settime.2:153
11818 msgid ""
11819 "If I<old_value> is not NULL, then it points to a buffer that is used to "
11820 "return the previous interval of the timer (in I<old_value-"
11821 "E<gt>it_interval>)  and the amount of time until the timer would previously "
11822 "have next expired (in I<old_value-E<gt>it_value>)."
11823 msgstr ""
11824
11825 #. type: Plain text
11826 #: build/C/man2/timer_settime.2:173
11827 msgid ""
11828 "B<timer_gettime>()  returns the time until next expiration, and the "
11829 "interval, for the timer specified by I<timerid>, in the buffer pointed to by "
11830 "I<curr_value>.  The time remaining until the next timer expiration is "
11831 "returned in I<curr_value-E<gt>it_value>; this is always a relative value, "
11832 "regardless of whether the B<TIMER_ABSTIME> flag was used when arming the "
11833 "timer.  If the value returned in I<curr_value-E<gt>it_value> is zero, then "
11834 "the timer is currently disarmed.  The timer interval is returned in "
11835 "I<curr_value-E<gt>it_interval>.  If the value returned in I<curr_value-"
11836 "E<gt>it_interval> is zero, then this is a \"one-shot\" timer."
11837 msgstr ""
11838
11839 #. type: Plain text
11840 #: build/C/man2/timer_settime.2:182
11841 msgid ""
11842 "On success, B<timer_settime>()  and B<timer_gettime>()  return 0.  On error, "
11843 "-1 is returned, and I<errno> is set to indicate the error."
11844 msgstr ""
11845
11846 #. type: Plain text
11847 #: build/C/man2/timer_settime.2:184
11848 msgid "These functions may fail with the following errors:"
11849 msgstr ""
11850
11851 #. type: Plain text
11852 #: build/C/man2/timer_settime.2:191
11853 msgid "I<new_value>, I<old_value>, or I<curr_value> is not a valid pointer."
11854 msgstr ""
11855
11856 #.  FIXME . eventually: invalid value in flags
11857 #. type: Plain text
11858 #: build/C/man2/timer_settime.2:196
11859 msgid "I<timerid> is invalid."
11860 msgstr ""
11861
11862 #. type: Plain text
11863 #: build/C/man2/timer_settime.2:199
11864 msgid "B<timer_settime>()  may fail with the following errors:"
11865 msgstr ""
11866
11867 #. type: Plain text
11868 #: build/C/man2/timer_settime.2:205
11869 msgid ""
11870 "I<new_value.it_value> is negative; or I<new_value.it_value.tv_nsec> is "
11871 "negative or greater than 999,999,999."
11872 msgstr ""
11873
11874 #. type: Plain text
11875 #: build/C/man2/timer_settime.2:207
11876 msgid "These system calls are available since Linux 2.6."
11877 msgstr ""
11878
11879 #. type: Plain text
11880 #: build/C/man2/timer_settime.2:216
11881 msgid "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
11882 msgstr "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
11883
11884 #. type: TH
11885 #: build/C/man2/timerfd_create.2:21
11886 #, no-wrap
11887 msgid "TIMERFD_CREATE"
11888 msgstr "TIMERFD_CREATE"
11889
11890 #. type: TH
11891 #: build/C/man2/timerfd_create.2:21
11892 #, no-wrap
11893 msgid "2011-09-14"
11894 msgstr "2011-09-14"
11895
11896 #. type: Plain text
11897 #: build/C/man2/timerfd_create.2:25
11898 msgid ""
11899 "timerfd_create, timerfd_settime, timerfd_gettime - timers that notify via "
11900 "file descriptors"
11901 msgstr ""
11902 "timerfd_create, timerfd_settime, timerfd_gettime - ファイルディスクリプタ経由"
11903 "で通知するタイマー"
11904
11905 #. type: Plain text
11906 #: build/C/man2/timerfd_create.2:28
11907 #, no-wrap
11908 msgid "B<#include E<lt>sys/timerfd.hE<gt>>\n"
11909 msgstr "B<#include E<lt>sys/timerfd.hE<gt>>\n"
11910
11911 #. type: Plain text
11912 #: build/C/man2/timerfd_create.2:30
11913 #, no-wrap
11914 msgid "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
11915 msgstr "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
11916
11917 #. type: Plain text
11918 #: build/C/man2/timerfd_create.2:34
11919 #, no-wrap
11920 msgid ""
11921 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
11922 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
11923 "B<                    struct itimerspec *>I<old_value>B<);>\n"
11924 msgstr ""
11925 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
11926 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
11927 "B<                    struct itimerspec *>I<old_value>B<);>\n"
11928
11929 #. type: Plain text
11930 #: build/C/man2/timerfd_create.2:36
11931 #, no-wrap
11932 msgid "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
11933 msgstr "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
11934
11935 #. type: Plain text
11936 #: build/C/man2/timerfd_create.2:49
11937 msgid ""
11938 "These system calls create and operate on a timer that delivers timer "
11939 "expiration notifications via a file descriptor.  They provide an alternative "
11940 "to the use of B<setitimer>(2)  or B<timer_create>(2), with the advantage "
11941 "that the file descriptor may be monitored by B<select>(2), B<poll>(2), and "
11942 "B<epoll>(7)."
11943 msgstr ""
11944 "これらのシステムコールは、満了通知をファイルディスクリプタ経由で配送する タイ"
11945 "マーの生成と操作を行う。 これらは、 B<setitimer>(2)  や B<timer_create>(2)  "
11946 "を用いる方法の代わりとなるものであり、このファイルディスクリプタを B<select>"
11947 "(2), B<poll>(2), B<epoll>(7)  で監視できるという利点がある。"
11948
11949 #. type: Plain text
11950 #: build/C/man2/timerfd_create.2:61
11951 msgid ""
11952 "The use of these three system calls is analogous to the use of "
11953 "B<timer_create>(2), B<timer_settime>(2), and B<timer_gettime>(2).  (There is "
11954 "no analog of B<timer_getoverrun>(2), since that functionality is provided by "
11955 "B<read>(2), as described below.)"
11956 msgstr ""
11957 "これらのシステムコールを使うのは、それぞれ B<timer_create>(2), "
11958 "B<timer_settime>(2), B<timer_gettime>(2)  を使うのと同様である "
11959 "(B<timer_getoverrun>(2)  に対応するものはなく、以下で説明するように この機能"
11960 "は B<read>(2)  により提供される)。"
11961
11962 #. type: SS
11963 #: build/C/man2/timerfd_create.2:61
11964 #, no-wrap
11965 msgid "timerfd_create()"
11966 msgstr "timerfd_create()"
11967
11968 #. type: Plain text
11969 #: build/C/man2/timerfd_create.2:80
11970 msgid ""
11971 "B<timerfd_create>()  creates a new timer object, and returns a file "
11972 "descriptor that refers to that timer.  The I<clockid> argument specifies the "
11973 "clock that is used to mark the progress of the timer, and must be either "
11974 "B<CLOCK_REALTIME> or B<CLOCK_MONOTONIC>.  B<CLOCK_REALTIME> is a settable "
11975 "system-wide clock.  B<CLOCK_MONOTONIC> is a nonsettable clock that is not "
11976 "affected by discontinuous changes in the system clock (e.g., manual changes "
11977 "to system time).  The current value of each of these clocks can be retrieved "
11978 "using B<clock_gettime>(2)."
11979 msgstr ""
11980 "B<timerfd_create>()  は新規のタイマーオブジェクトを生成し、そのタイマーを参照"
11981 "するファイル ディスクリプタを返す。 I<clockid> 引き数は、タイマーの進捗を管理"
11982 "するためのクロックを指定するもので、 B<CLOCK_REALTIME> か B<CLOCK_MONOTONIC> "
11983 "のいずれかでなければならない。 B<CLOCK_REALTIME> はシステム全体で使用されるク"
11984 "ロックで、このクロックは変更可能である。 B<CLOCK_MONOTONIC> は変更されること"
11985 "のないクロックで、(システム時刻の手動での変更などの)  システムクロックの不連"
11986 "続な変化の影響を受けない。 これらのクロックの現在の値は B<clock_gettime>(2)  "
11987 "を使って取得できる。"
11988
11989 #. type: Plain text
11990 #: build/C/man2/timerfd_create.2:85
11991 msgid ""
11992 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
11993 "I<flags> to change the behavior of B<timerfd_create>():"
11994 msgstr ""
11995 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
11996 "ることで、 B<timerfd_create>()  の振舞いを変更することができる。"
11997
11998 #. type: TP
11999 #: build/C/man2/timerfd_create.2:85
12000 #, no-wrap
12001 msgid "B<TFD_NONBLOCK>"
12002 msgstr "B<TFD_NONBLOCK>"
12003
12004 #. type: TP
12005 #: build/C/man2/timerfd_create.2:93
12006 #, no-wrap
12007 msgid "B<TFD_CLOEXEC>"
12008 msgstr "B<TFD_CLOEXEC>"
12009
12010 #. type: Plain text
12011 #: build/C/man2/timerfd_create.2:107
12012 msgid ""
12013 "In Linux versions up to and including 2.6.26, I<flags> must be specified as "
12014 "zero."
12015 msgstr ""
12016 "バージョン 2.6.26 以前の Linux では、 I<flags> 引き数は未使用であり、0 を指定"
12017 "しなければならない。"
12018
12019 #. type: SS
12020 #: build/C/man2/timerfd_create.2:107
12021 #, no-wrap
12022 msgid "timerfd_settime()"
12023 msgstr "timerfd_settime()"
12024
12025 #. type: Plain text
12026 #: build/C/man2/timerfd_create.2:112
12027 msgid ""
12028 "B<timerfd_settime>()  arms (starts) or disarms (stops)  the timer referred "
12029 "to by the file descriptor I<fd>."
12030 msgstr ""
12031 "B<timerfd_settime>()  は、ファイルディスクリプタ I<fd> により参照されるタイ"
12032 "マーを開始したり停止したりする。"
12033
12034 #. type: Plain text
12035 #: build/C/man2/timerfd_create.2:121
12036 msgid ""
12037 "The I<new_value> argument specifies the initial expiration and interval for "
12038 "the timer.  The I<itimer> structure used for this argument contains two "
12039 "fields, each of which is in turn a structure of type I<timespec>:"
12040 msgstr ""
12041 "I<new_value> 引き数は、タイマーの満了時間 (expiration) の初期値と間隔 "
12042 "(interval) を 指定する。この引き数で使用されている I<itimerspec> 構造体には "
12043 "2 つのフィールドがあり、各フィールドは I<timespec> 型の構造体である。"
12044
12045 #. type: Plain text
12046 #: build/C/man2/timerfd_create.2:133
12047 #, no-wrap
12048 msgid ""
12049 "struct itimerspec {\n"
12050 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
12051 "    struct timespec it_value;     /* Initial expiration */\n"
12052 "};\n"
12053 msgstr ""
12054 "struct itimerspec {\n"
12055 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
12056 "    struct timespec it_value;     /* Initial expiration */\n"
12057 "};\n"
12058
12059 #. type: Plain text
12060 #: build/C/man2/timerfd_create.2:145
12061 msgid ""
12062 "I<new_value.it_value> specifies the initial expiration of the timer, in "
12063 "seconds and nanoseconds.  Setting either field of I<new_value.it_value> to a "
12064 "nonzero value arms the timer.  Setting both fields of I<new_value.it_value> "
12065 "to zero disarms the timer."
12066 msgstr ""
12067 "I<new_value.it_value> はタイマーの満了時間の初期値を、秒とナノ秒で指定する。 "
12068 "I<new_value.it_value> のフィールドのうち少なくとも一方に 0 以外の値を設定する"
12069 "と、 タイマーが開始される。 両方のフィールドに 0 を設定すると、タイマーが停止"
12070 "する。"
12071
12072 #. type: Plain text
12073 #: build/C/man2/timerfd_create.2:154
12074 msgid ""
12075 "Setting one or both fields of I<new_value.it_interval> to nonzero values "
12076 "specifies the period, in seconds and nanoseconds, for repeated timer "
12077 "expirations after the initial expiration.  If both fields of I<new_value."
12078 "it_interval> are zero, the timer expires just once, at the time specified by "
12079 "I<new_value.it_value>."
12080 msgstr ""
12081 "I<new_value.it_interval> はタイマーの一回目の満了後に繰り返しタイマーの満了間"
12082 "隔を、秒とナノ秒で指定する。 I<new_value.it_interval> のフィールドのうち少な"
12083 "くとも一方に 0 以外の値を設定すると、 繰り返しタイマーが有効になる。 両方の"
12084 "フィールドに 0 を設定した場合、タイマーは I<new_value.it_value> で指定された"
12085 "時間後に、一回だけ満了して停止する。"
12086
12087 #. type: Plain text
12088 #: build/C/man2/timerfd_create.2:170
12089 msgid ""
12090 "The I<flags> argument is either 0, to start a relative timer (I<new_value."
12091 "it_value> specifies a time relative to the current value of the clock "
12092 "specified by I<clockid>), or B<TFD_TIMER_ABSTIME>, to start an absolute "
12093 "timer (I<new_value.it_value> specifies an absolute time for the clock "
12094 "specified by I<clockid>; that is, the timer will expire when the value of "
12095 "that clock reaches the value specified in I<new_value.it_value>)."
12096 msgstr ""
12097 "I<flags> 引き数には 0 か B<TFD_TIMER_ABSTIME> を指定する。 0 は相対時刻\n"
12098 "タイマーを意味し、 I<new_value.it_value> では I<clockid> で指定された\n"
12099 "クロックの現在の値からの相対的な時刻を指定する。 B<TFD_TIMER_ABSTIME>\n"
12100 "は絶対時刻タイマーを意味し、 I<new_value.it_interval> では I<clockid>\n"
12101 "で指定されたクロックの絶対時刻を指定する。\n"
12102 "つまり、クロックの値が I<new_value.it_interval> で指定された時刻に\n"
12103 "達したら、タイマーが満了する。"
12104
12105 #. type: Plain text
12106 #: build/C/man2/timerfd_create.2:181
12107 msgid ""
12108 "If the I<old_value> argument is not NULL, then the I<itimerspec> structure "
12109 "that it points to is used to return the setting of the timer that was "
12110 "current at the time of the call; see the description of B<timerfd_gettime>"
12111 "()  following."
12112 msgstr ""
12113 "I<old_value> 引き数が NULL でない場合、 I<old_value> 引き数が指す\n"
12114 "I<itimerspec> 構造体は、 B<timerfd_settime>() を呼び出した時点での\n"
12115 "タイマーの設定を返すのに使用される。\n"
12116 "下記の B<timerfd_gettime>() の説明を参照。"
12117
12118 #. type: SS
12119 #: build/C/man2/timerfd_create.2:181
12120 #, no-wrap
12121 msgid "timerfd_gettime()"
12122 msgstr "timerfd_gettime()"
12123
12124 #. type: Plain text
12125 #: build/C/man2/timerfd_create.2:190
12126 msgid ""
12127 "B<timerfd_gettime>()  returns, in I<curr_value>, an I<itimerspec> structure "
12128 "that contains the current setting of the timer referred to by the file "
12129 "descriptor I<fd>."
12130 msgstr ""
12131 "B<timerfd_gettime>()  は、ファイルディスクリプタ I<fd> で参照されるタイマーの"
12132 "現在の設定が入った I<itimerspec> 構造体を、 I<curr_value> に格納して返す。"
12133
12134 #. type: Plain text
12135 #: build/C/man2/timerfd_create.2:200
12136 msgid ""
12137 "The I<it_value> field returns the amount of time until the timer will next "
12138 "expire.  If both fields of this structure are zero, then the timer is "
12139 "currently disarmed.  This field always contains a relative value, regardless "
12140 "of whether the B<TFD_TIMER_ABSTIME> flag was specified when setting the "
12141 "timer."
12142 msgstr ""
12143 "I<it_value> フィールドは、タイマーが次に満了するまでの残り時間を返す。 この構"
12144 "造体の両方のフィールドが 0 であれば、タイマーは現在停止している。 タイマー設"
12145 "定時に B<TFD_TIMER_ABSTIME> フラグが指定されたかに関わらず、このフィールドは"
12146 "常に相対値が格納される。"
12147
12148 #. type: Plain text
12149 #: build/C/man2/timerfd_create.2:207
12150 msgid ""
12151 "The I<it_interval> field returns the interval of the timer.  If both fields "
12152 "of this structure are zero, then the timer is set to expire just once, at "
12153 "the time specified by I<curr_value.it_value>."
12154 msgstr ""
12155 "I<it_interval> フィールドは、タイマーの間隔を返す。 この構造体の両方のフィー"
12156 "ルドが 0 であれば、タイマーは I<new_value.it_value> で指定された時間後に一回"
12157 "だけ満了して停止するように設定されている。"
12158
12159 #. type: SS
12160 #: build/C/man2/timerfd_create.2:207
12161 #, no-wrap
12162 msgid "Operating on a timer file descriptor"
12163 msgstr "タイマー・ファイルディスクリプタに対する操作"
12164
12165 #. type: Plain text
12166 #: build/C/man2/timerfd_create.2:211
12167 msgid ""
12168 "The file descriptor returned by B<timerfd_create>()  supports the following "
12169 "operations:"
12170 msgstr ""
12171 "B<timerfd_create>()  が返すファイルディスクリプタは以下の操作をサポートしてい"
12172 "る。"
12173
12174 #. type: Plain text
12175 #: build/C/man2/timerfd_create.2:225
12176 msgid ""
12177 "If the timer has already expired one or more times since its settings were "
12178 "last modified using B<timerfd_settime>(), or since the last successful "
12179 "B<read>(2), then the buffer given to B<read>(2)  returns an unsigned 8-byte "
12180 "integer (I<uint64_t>)  containing the number of expirations that have "
12181 "occurred.  (The returned value is in host byte order, i.e., the native byte "
12182 "order for integers on the host machine.)"
12183 msgstr ""
12184 "B<timerfd_settime>()  を使ってタイマーの設定が最後変更されて以降、または "
12185 "B<read>(2)  の呼び出しに最後に成功して以降に、タイマーの満了が一回以上発生し"
12186 "ていれば、 B<read>(2)  に渡されたバッファに、タイマー満了回数を示す 8 バイト"
12187 "の unsigned 型の整数 (I<uint64_t>)  が返される (返される値はホストバイトオー"
12188 "ダ、つまりそのホストマシンにおける 整数の通常のバイトオーダである)。"
12189
12190 #. type: Plain text
12191 #: build/C/man2/timerfd_create.2:238
12192 msgid ""
12193 "If no timer expirations have occurred at the time of the B<read>(2), then "
12194 "the call either blocks until the next timer expiration, or fails with the "
12195 "error B<EAGAIN> if the file descriptor has been made nonblocking (via the "
12196 "use of the B<fcntl>(2)  B<F_SETFL> operation to set the B<O_NONBLOCK> flag)."
12197 msgstr ""
12198 "B<read>(2)  を行った時点でタイマーの満了が発生していなければ、 B<read>(2)  は"
12199 "停止 (block) する、もしくはファイルディスクリプタが 非停止 (nonblocking) に設"
12200 "定されている場合はエラー B<EAGAIN> で失敗する (非停止モードにするには、 "
12201 "B<fcntl>(2)  の B<F_SETFL> 命令で B<O_NONBLOCK> フラグをセットする)。"
12202
12203 #. type: Plain text
12204 #: build/C/man2/timerfd_create.2:244
12205 msgid ""
12206 "A B<read>(2)  will fail with the error B<EINVAL> if the size of the supplied "
12207 "buffer is less than 8 bytes."
12208 msgstr ""
12209 "渡されたバッファの大きさが 8 バイト未満の場合、 B<read>(2)  はエラー "
12210 "B<EINVAL> で失敗する。"
12211
12212 #. type: Plain text
12213 #: build/C/man2/timerfd_create.2:255
12214 msgid ""
12215 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
12216 "B<poll>(2)  B<POLLIN> flag)  if one or more timer expirations have occurred."
12217 msgstr ""
12218 "一つ以上のタイマー満了が発生していれば、 ファイルディスクリプタは読み出し可能"
12219 "となる (B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラ"
12220 "グ)。"
12221
12222 #. type: Plain text
12223 #: build/C/man2/timerfd_create.2:262
12224 msgid ""
12225 "The file descriptor also supports the other file-descriptor multiplexing "
12226 "APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
12227 msgstr ""
12228 "このファイルディスクリプタは、他のファイルディスクリプタ多重 API である "
12229 "B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
12230
12231 #. type: Plain text
12232 #: build/C/man2/timerfd_create.2:269
12233 msgid ""
12234 "When the file descriptor is no longer required it should be closed.  When "
12235 "all file descriptors associated with the same timer object have been closed, "
12236 "the timer is disarmed and its resources are freed by the kernel."
12237 msgstr ""
12238 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
12239 "る。 同じ timer オブジェクトに関連付けられたファイルディスクリプタが全て ク"
12240 "ローズされると、そのタイマーは解除され、 そのオブジェクト用の資源がカーネルに"
12241 "より解放される。"
12242
12243 #. type: Plain text
12244 #: build/C/man2/timerfd_create.2:281
12245 msgid ""
12246 "After a B<fork>(2), the child inherits a copy of the file descriptor created "
12247 "by B<timerfd_create>().  The file descriptor refers to the same underlying "
12248 "timer object as the corresponding file descriptor in the parent, and B<read>"
12249 "(2)s in the child will return information about expirations of the timer."
12250 msgstr ""
12251 "B<fork>(2)  が行われると、子プロセスは B<timerfd_create>()  により生成された"
12252 "ファイルディスクリプタのコピーを 継承する。そのファイルディスクリプタは、親プ"
12253 "ロセスの対応する ファイルディスクリプタと同じタイマーオブジェクトを参照してお"
12254 "り、 子プロセスの B<read>(2)  でも同じタイマーの満了に関する情報が返される。"
12255
12256 #. type: Plain text
12257 #: build/C/man2/timerfd_create.2:287
12258 msgid ""
12259 "A file descriptor created by B<timerfd_create>()  is preserved across "
12260 "B<execve>(2), and continues to generate timer expirations if the timer was "
12261 "armed."
12262 msgstr ""
12263 "B<execve>(2)  の前後で B<timerfd_create>()  により生成されたファイルディスク"
12264 "リプタは保持され、 タイマーが開始されていた場合にはタイマーの満了が発生し続け"
12265 "る。"
12266
12267 #. type: Plain text
12268 #: build/C/man2/timerfd_create.2:294
12269 msgid ""
12270 "On success, B<timerfd_create>()  returns a new file descriptor.  On error, "
12271 "-1 is returned and I<errno> is set to indicate the error."
12272 msgstr ""
12273 "成功すると、 B<timerfd_create>()  は新しいファイルディスクリプタを返す。 エ"
12274 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
12275
12276 #. type: Plain text
12277 #: build/C/man2/timerfd_create.2:302
12278 msgid ""
12279 "B<timerfd_settime>()  and B<timerfd_gettime>()  return 0 on success; on "
12280 "error they return -1, and set I<errno> to indicate the error."
12281 msgstr ""
12282 "B<timerfd_settime>()  と B<timerfd_gettime>()  は成功すると 0 を返す。 エラー"
12283 "の場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
12284
12285 #. type: Plain text
12286 #: build/C/man2/timerfd_create.2:305
12287 msgid "B<timerfd_create>()  can fail with the following errors:"
12288 msgstr "B<timerfd_create>()  は以下のエラーで失敗する可能性がある。"
12289
12290 #. type: Plain text
12291 #: build/C/man2/timerfd_create.2:313
12292 msgid ""
12293 "The I<clockid> argument is neither B<CLOCK_MONOTONIC> nor B<CLOCK_REALTIME>;"
12294 msgstr ""
12295 "I<clockid> 引き数が B<CLOCK_MONOTONIC> でも B<CLOCK_REALTIME> でもない。"
12296
12297 #. type: Plain text
12298 #: build/C/man2/timerfd_create.2:333
12299 msgid "There was insufficient kernel memory to create the timer."
12300 msgstr "タイマーを作成するのに十分なカーネルメモリがなかった。"
12301
12302 #. type: Plain text
12303 #: build/C/man2/timerfd_create.2:338
12304 msgid ""
12305 "B<timerfd_settime>()  and B<timerfd_gettime>()  can fail with the following "
12306 "errors:"
12307 msgstr ""
12308 "B<timerfd_settime>()  と B<timerfd_gettime>()  は以下のエラーで失敗する可能性"
12309 "がある。"
12310
12311 #. type: Plain text
12312 #: build/C/man2/timerfd_create.2:342
12313 msgid "I<fd> is not a valid file descriptor."
12314 msgstr "I<fd> が有効なファイルディスクリプタでない。"
12315
12316 #. type: Plain text
12317 #: build/C/man2/timerfd_create.2:353
12318 msgid "I<fd> is not a valid timerfd file descriptor."
12319 msgstr "I<fd> が有効な timerfd ファイルディスクリプタでない。"
12320
12321 #. type: Plain text
12322 #: build/C/man2/timerfd_create.2:356
12323 msgid "B<timerfd_settime>()  can also fail with the following errors:"
12324 msgstr "B<timerfd_settime>()  は以下のエラーで失敗することもある。"
12325
12326 #. type: Plain text
12327 #: build/C/man2/timerfd_create.2:362
12328 msgid ""
12329 "I<new_value> is not properly initialized (one of the I<tv_nsec> falls "
12330 "outside the range zero to 999,999,999)."
12331 msgstr ""
12332 "I<new_value> が適切に初期化されていない (I<tv_nsec> の一つが 0 から "
12333 "999,999,999 までの範囲に入っていない)。"
12334
12335 #.  This case only checked since 2.6.29, and 2.2.2[78].some-stable-version.
12336 #.  In older kernel versions, no check was made for invalid flags.
12337 #. type: Plain text
12338 #: build/C/man2/timerfd_create.2:368
12339 msgid "I<flags> is invalid."
12340 msgstr "I<flags> が無効である。"
12341
12342 #. type: Plain text
12343 #: build/C/man2/timerfd_create.2:371
12344 msgid ""
12345 "These system calls are available on Linux since kernel 2.6.25.  Library "
12346 "support is provided by glibc since version 2.8."
12347 msgstr ""
12348 "これらのシステムコールはカーネル 2.6.25 以降の Linux で利用可能である。 ライ"
12349 "ブラリ側のサポートはバージョン 2.8 以降の glibc で提供されている。"
12350
12351 #.  2.6.29
12352 #. type: Plain text
12353 #: build/C/man2/timerfd_create.2:379
12354 msgid ""
12355 "Currently, B<timerfd_create>()  supports fewer types of clock IDs than "
12356 "B<timer_create>(2)."
12357 msgstr ""
12358 "現在のところ、 B<timerfd_create>()  が対応している clockid の種類は "
12359 "B<timer_create>(2)  よりも少ない。"
12360
12361 #. type: Plain text
12362 #: build/C/man2/timerfd_create.2:388
12363 msgid ""
12364 "The following program creates a timer and then monitors its progress.  The "
12365 "program accepts up to three command-line arguments.  The first argument "
12366 "specifies the number of seconds for the initial expiration of the timer.  "
12367 "The second argument specifies the interval for the timer, in seconds.  The "
12368 "third argument specifies the number of times the program should allow the "
12369 "timer to expire before terminating.  The second and third command-line "
12370 "arguments are optional."
12371 msgstr ""
12372 "以下のプログラムは、タイマーを作成し、その進捗をモニターするものである。 この"
12373 "プログラムは最大で 3 個のコマンドライン引き数を取り、 第一引き数ではタイマー"
12374 "の満了時間の初期値 (秒数単位) を、 第二引き数ではタイマーの間隔 (秒数単位) "
12375 "を、 第三引き数ではタイマーが何回満了したらプログラムが終了するかを指定す"
12376 "る。 第二引き数と第三引き数は省略可能である。"
12377
12378 #. type: Plain text
12379 #: build/C/man2/timerfd_create.2:390 build/C/man2/wait.2:555
12380 msgid "The following shell session demonstrates the use of the program:"
12381 msgstr "以下のシェルのセッションはこのプログラムの使用例を示したものである。"
12382
12383 #. type: Plain text
12384 #: build/C/man2/timerfd_create.2:405
12385 #, no-wrap
12386 msgid ""
12387 "$B< a.out 3 1 100>\n"
12388 "0.000: timer started\n"
12389 "3.000: read: 1; total=1\n"
12390 "4.000: read: 1; total=2\n"
12391 "B<^Z >                 # type control-Z to suspend the program\n"
12392 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
12393 "$ B<fg>                # Resume execution after a few seconds\n"
12394 "a.out 3 1 100\n"
12395 "9.660: read: 5; total=7\n"
12396 "10.000: read: 1; total=8\n"
12397 "11.000: read: 1; total=9\n"
12398 "B<^C >                 # type control-C to suspend the program\n"
12399 msgstr ""
12400 "$B< a.out 3 1 100>\n"
12401 "0.000: timer started\n"
12402 "3.000: read: 1; total=1\n"
12403 "4.000: read: 1; total=2\n"
12404 "B<^Z >                 # type control-Z to suspend the program\n"
12405 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
12406 "$ B<fg>                # Resume execution after a few seconds\n"
12407 "a.out 3 1 100\n"
12408 "9.660: read: 5; total=7\n"
12409 "10.000: read: 1; total=8\n"
12410 "11.000: read: 1; total=9\n"
12411 "B<^C >                 # type control-C to suspend the program\n"
12412
12413 #.  The commented out code here is what we currently need until
12414 #.  the required stuff is in glibc
12415 #. /* Link with -lrt */
12416 #. #define _GNU_SOURCE
12417 #. #include <sys/syscall.h>
12418 #. #include <unistd.h>
12419 #. #include <time.h>
12420 #. #if defined(__i386__)
12421 #. #define __NR_timerfd_create 322
12422 #. #define __NR_timerfd_settime 325
12423 #. #define __NR_timerfd_gettime 326
12424 #. #endif
12425 #. static int
12426 #. timerfd_create(int clockid, int flags)
12427 #. {
12428 #.     return syscall(__NR_timerfd_create, clockid, flags);
12429 #. }
12430 #. static int
12431 #. timerfd_settime(int fd, int flags, struct itimerspec *new_value,
12432 #.         struct itimerspec *curr_value)
12433 #. {
12434 #.     return syscall(__NR_timerfd_settime, fd, flags, new_value,
12435 #.                    curr_value);
12436 #. }
12437 #. static int
12438 #. timerfd_gettime(int fd, struct itimerspec *curr_value)
12439 #. {
12440 #.     return syscall(__NR_timerfd_gettime, fd, curr_value);
12441 #. }
12442 #. #define TFD_TIMER_ABSTIME (1 << 0)
12443 #. ////////////////////////////////////////////////////////////
12444 #. type: Plain text
12445 #: build/C/man2/timerfd_create.2:454
12446 #, no-wrap
12447 msgid ""
12448 "#include E<lt>sys/timerfd.hE<gt>\n"
12449 "#include E<lt>time.hE<gt>\n"
12450 "#include E<lt>unistd.hE<gt>\n"
12451 "#include E<lt>stdlib.hE<gt>\n"
12452 "#include E<lt>stdio.hE<gt>\n"
12453 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
12454 msgstr ""
12455 "#include E<lt>sys/timerfd.hE<gt>\n"
12456 "#include E<lt>time.hE<gt>\n"
12457 "#include E<lt>unistd.hE<gt>\n"
12458 "#include E<lt>stdlib.hE<gt>\n"
12459 "#include E<lt>stdio.hE<gt>\n"
12460 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
12461
12462 #. type: Plain text
12463 #: build/C/man2/timerfd_create.2:457
12464 #, no-wrap
12465 msgid ""
12466 "#define handle_error(msg) \\e\n"
12467 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
12468 msgstr ""
12469 "#define handle_error(msg) \\e\n"
12470 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
12471
12472 #. type: Plain text
12473 #: build/C/man2/timerfd_create.2:465
12474 #, no-wrap
12475 msgid ""
12476 "static void\n"
12477 "print_elapsed_time(void)\n"
12478 "{\n"
12479 "    static struct timespec start;\n"
12480 "    struct timespec curr;\n"
12481 "    static int first_call = 1;\n"
12482 "    int secs, nsecs;\n"
12483 msgstr ""
12484 "static void\n"
12485 "print_elapsed_time(void)\n"
12486 "{\n"
12487 "    static struct timespec start;\n"
12488 "    struct timespec curr;\n"
12489 "    static int first_call = 1;\n"
12490 "    int secs, nsecs;\n"
12491
12492 #. type: Plain text
12493 #: build/C/man2/timerfd_create.2:471
12494 #, no-wrap
12495 msgid ""
12496 "    if (first_call) {\n"
12497 "        first_call = 0;\n"
12498 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
12499 "            handle_error(\"clock_gettime\");\n"
12500 "    }\n"
12501 msgstr ""
12502 "    if (first_call) {\n"
12503 "        first_call = 0;\n"
12504 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
12505 "            handle_error(\"clock_gettime\");\n"
12506 "    }\n"
12507
12508 #. type: Plain text
12509 #: build/C/man2/timerfd_create.2:474
12510 #, no-wrap
12511 msgid ""
12512 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
12513 "        handle_error(\"clock_gettime\");\n"
12514 msgstr ""
12515 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
12516 "        handle_error(\"clock_gettime\");\n"
12517
12518 #. type: Plain text
12519 #: build/C/man2/timerfd_create.2:483
12520 #, no-wrap
12521 msgid ""
12522 "    secs = curr.tv_sec - start.tv_sec;\n"
12523 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
12524 "    if (nsecs E<lt> 0) {\n"
12525 "        secs--;\n"
12526 "        nsecs += 1000000000;\n"
12527 "    }\n"
12528 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
12529 "}\n"
12530 msgstr ""
12531 "    secs = curr.tv_sec - start.tv_sec;\n"
12532 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
12533 "    if (nsecs E<lt> 0) {\n"
12534 "        secs--;\n"
12535 "        nsecs += 1000000000;\n"
12536 "    }\n"
12537 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
12538 "}\n"
12539
12540 #. type: Plain text
12541 #: build/C/man2/timerfd_create.2:492
12542 #, no-wrap
12543 msgid ""
12544 "int\n"
12545 "main(int argc, char *argv[])\n"
12546 "{\n"
12547 "    struct itimerspec new_value;\n"
12548 "    int max_exp, fd;\n"
12549 "    struct timespec now;\n"
12550 "    uint64_t exp, tot_exp;\n"
12551 "    ssize_t s;\n"
12552 msgstr ""
12553 "int\n"
12554 "main(int argc, char *argv[])\n"
12555 "{\n"
12556 "    struct itimerspec new_value;\n"
12557 "    int max_exp, fd;\n"
12558 "    struct timespec now;\n"
12559 "    uint64_t exp, tot_exp;\n"
12560 "    ssize_t s;\n"
12561
12562 #. type: Plain text
12563 #: build/C/man2/timerfd_create.2:498
12564 #, no-wrap
12565 msgid ""
12566 "    if ((argc != 2) && (argc != 4)) {\n"
12567 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
12568 "                argv[0]);\n"
12569 "        exit(EXIT_FAILURE);\n"
12570 "    }\n"
12571 msgstr ""
12572 "    if ((argc != 2) && (argc != 4)) {\n"
12573 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
12574 "                argv[0]);\n"
12575 "        exit(EXIT_FAILURE);\n"
12576 "    }\n"
12577
12578 #. type: Plain text
12579 #: build/C/man2/timerfd_create.2:501
12580 #, no-wrap
12581 msgid ""
12582 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
12583 "        handle_error(\"clock_gettime\");\n"
12584 msgstr ""
12585 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
12586 "        handle_error(\"clock_gettime\");\n"
12587
12588 #. type: Plain text
12589 #: build/C/man2/timerfd_create.2:504
12590 #, no-wrap
12591 msgid ""
12592 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
12593 "       expiration and interval as specified in command line */\n"
12594 msgstr ""
12595 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
12596 "       expiration and interval as specified in command line */\n"
12597
12598 #. type: Plain text
12599 #: build/C/man2/timerfd_create.2:515
12600 #, no-wrap
12601 msgid ""
12602 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
12603 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
12604 "    if (argc == 2) {\n"
12605 "        new_value.it_interval.tv_sec = 0;\n"
12606 "        max_exp = 1;\n"
12607 "    } else {\n"
12608 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
12609 "        max_exp = atoi(argv[3]);\n"
12610 "    }\n"
12611 "    new_value.it_interval.tv_nsec = 0;\n"
12612 msgstr ""
12613 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
12614 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
12615 "    if (argc == 2) {\n"
12616 "        new_value.it_interval.tv_sec = 0;\n"
12617 "        max_exp = 1;\n"
12618 "    } else {\n"
12619 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
12620 "        max_exp = atoi(argv[3]);\n"
12621 "    }\n"
12622 "    new_value.it_interval.tv_nsec = 0;\n"
12623
12624 #. type: Plain text
12625 #: build/C/man2/timerfd_create.2:519
12626 #, no-wrap
12627 msgid ""
12628 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
12629 "    if (fd == -1)\n"
12630 "        handle_error(\"timerfd_create\");\n"
12631 msgstr ""
12632 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
12633 "    if (fd == -1)\n"
12634 "        handle_error(\"timerfd_create\");\n"
12635
12636 #. type: Plain text
12637 #: build/C/man2/timerfd_create.2:522
12638 #, no-wrap
12639 msgid ""
12640 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
12641 "        handle_error(\"timerfd_settime\");\n"
12642 msgstr ""
12643 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
12644 "        handle_error(\"timerfd_settime\");\n"
12645
12646 #. type: Plain text
12647 #: build/C/man2/timerfd_create.2:525
12648 #, no-wrap
12649 msgid ""
12650 "    print_elapsed_time();\n"
12651 "    printf(\"timer started\\en\");\n"
12652 msgstr ""
12653 "    print_elapsed_time();\n"
12654 "    printf(\"timer started\\en\");\n"
12655
12656 #. type: Plain text
12657 #: build/C/man2/timerfd_create.2:530
12658 #, no-wrap
12659 msgid ""
12660 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
12661 "        s = read(fd, &exp, sizeof(uint64_t));\n"
12662 "        if (s != sizeof(uint64_t))\n"
12663 "            handle_error(\"read\");\n"
12664 msgstr ""
12665 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
12666 "        s = read(fd, &exp, sizeof(uint64_t));\n"
12667 "        if (s != sizeof(uint64_t))\n"
12668 "            handle_error(\"read\");\n"
12669
12670 #. type: Plain text
12671 #: build/C/man2/timerfd_create.2:537
12672 #, no-wrap
12673 msgid ""
12674 "        tot_exp += exp;\n"
12675 "        print_elapsed_time();\n"
12676 "        printf(\"read: %llu; total=%llu\\en\",\n"
12677 "                (unsigned long long) exp,\n"
12678 "                (unsigned long long) tot_exp);\n"
12679 "    }\n"
12680 msgstr ""
12681 "        tot_exp += exp;\n"
12682 "        print_elapsed_time();\n"
12683 "        printf(\"read: %llu; total=%llu\\en\",\n"
12684 "                (unsigned long long) exp,\n"
12685 "                (unsigned long long) tot_exp);\n"
12686 "    }\n"
12687
12688 #. type: Plain text
12689 #: build/C/man2/timerfd_create.2:553
12690 msgid ""
12691 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
12692 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), B<timer_settime>"
12693 "(2), B<epoll>(7), B<time>(7)"
12694 msgstr ""
12695 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
12696 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), B<timer_settime>"
12697 "(2), B<epoll>(7), B<time>(7)"
12698
12699 #. type: TH
12700 #: build/C/man2/tkill.2:29
12701 #, no-wrap
12702 msgid "TKILL"
12703 msgstr "TKILL"
12704
12705 #. type: Plain text
12706 #: build/C/man2/tkill.2:32
12707 msgid "tkill, tgkill - send a signal to a thread"
12708 msgstr "tkill, tgkill - スレッドにシグナルを送る"
12709
12710 #. type: Plain text
12711 #: build/C/man2/tkill.2:35
12712 #, no-wrap
12713 msgid "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
12714 msgstr "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
12715
12716 #. type: Plain text
12717 #: build/C/man2/tkill.2:37
12718 #, no-wrap
12719 msgid "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
12720 msgstr "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
12721
12722 #. type: Plain text
12723 #: build/C/man2/tkill.2:54
12724 #, fuzzy
12725 #| msgid ""
12726 #| "B<tgkill>()  sends the signal I<sig> to the thread with the thread ID "
12727 #| "I<tid> in the thread group I<tgid>.  (By contrast, B<kill>(2)  can only "
12728 #| "be used to send a signal to a process (i.e., thread group)  as a whole, "
12729 #| "and the signal will be delivered to an arbitrary thread within that "
12730 #| "process.)"
12731 msgid ""
12732 "B<tgkill>()  sends the signal I<sig> to the thread with the thread ID I<tid> "
12733 "in the thread group I<tgid>.  (By contrast, B<kill>(2)  can be used to send "
12734 "a signal only to a process (i.e., thread group)  as a whole, and the signal "
12735 "will be delivered to an arbitrary thread within that process.)"
12736 msgstr ""
12737 "B<tgkill>()  はスレッド・グループ I<tgid> に属するスレッド ID が I<tid> のス"
12738 "レッドにシグナル I<sig> を送る。 (これに対し、 B<kill>(2)  は一つのプロセス "
12739 "(すなわち、スレッド・グループ) にまとめてシグナルを 送るのにだけ利用できる。 "
12740 "B<kill>(2)  で送信されたシグナルはプロセス内の任意のスレッドに配送される。)"
12741
12742 #.  FIXME: Maybe say something about the following:
12743 #.  http://sourceware.org/bugzilla/show_bug.cgi?id=12889
12744 #.      Rich Felker <bugdal@aerifal.cx>
12745 #.      There is a race condition in pthread_kill: it is possible that,
12746 #.      between the time pthread_kill reads the pid/tid from the target
12747 #.      thread descriptor and the time it makes the tgkill syscall,
12748 #.      the target thread terminates and the same tid gets assigned
12749 #.      to a new thread in the same process.
12750 #.      (The tgkill syscall was designed to eliminate a similar race
12751 #.      condition in tkill, but it only succeeded in eliminating races
12752 #.      where the tid gets reused in a different process, and does not
12753 #.      help if the same tid gets assigned to a new thread in the
12754 #.      same process.)
12755 #.      The only solution I can see is to introduce a mutex that ensures
12756 #.      that a thread cannot exit while pthread_kill is being called on it.
12757 #.      Note that in most real-world situations, like almost all race
12758 #.      conditions, this one will be extremely rare. To make it
12759 #.      measurable, one could exhaust all but 1-2 available pid values,
12760 #.      possibly by lowering the max pid parameter in /proc, forcing
12761 #.      the same tid to be reused rapidly.
12762 #. type: Plain text
12763 #: build/C/man2/tkill.2:85
12764 #, fuzzy
12765 #| msgid ""
12766 #| "B<tkill>()  is an obsolete predecessor to B<tgkill>().  It only allows "
12767 #| "the target thread ID to be specified, which may result in the wrong "
12768 #| "thread being signaled if a thread terminates and its thread ID is "
12769 #| "recycled.  Avoid using this system call."
12770 msgid ""
12771 "B<tkill>()  is an obsolete predecessor to B<tgkill>().  It allows only the "
12772 "target thread ID to be specified, which may result in the wrong thread being "
12773 "signaled if a thread terminates and its thread ID is recycled.  Avoid using "
12774 "this system call."
12775 msgstr ""
12776 "B<tkill>()  はもう使われなくなった B<tgkill>()  の先祖である。 B<tkill>()  で"
12777 "はシグナルの送り先のスレッド ID しか指定できない。 そのため、スレッドが終了し"
12778 "て、そのスレッド ID が再利用される場合に、 意図しないスレッドにシグナルが送ら"
12779 "れる可能性がある。 このシステムコールの使用は避けること。"
12780
12781 #. type: Plain text
12782 #: build/C/man2/tkill.2:92
12783 msgid ""
12784 "If I<tgid> is specified as -1, B<tgkill>()  is equivalent to B<tkill>()."
12785 msgstr ""
12786 "I<tgid> に -1 が指定された場合、 B<tgkill>()  は B<tkill>()  と等価である。"
12787
12788 #. type: Plain text
12789 #: build/C/man2/tkill.2:95
12790 msgid ""
12791 "These are the raw system call interfaces, meant for internal thread library "
12792 "use."
12793 msgstr ""
12794 "これらはシステムコールへの直接のインターフェースであり、 スレッド・ライブラリ"
12795 "内部での使用を意図したものである。"
12796
12797 #. type: Plain text
12798 #: build/C/man2/tkill.2:103
12799 msgid "An invalid thread ID, thread group ID, or signal was specified."
12800 msgstr "指定されたスレッド ID、スレッドグループ ID、シグナルが不正であった。"
12801
12802 #. type: Plain text
12803 #: build/C/man2/tkill.2:108
12804 msgid "Permission denied.  For the required permissions, see B<kill>(2)."
12805 msgstr ""
12806 "許可がなかった。どのような許可が必要かについては、 B<kill>(2)  を参照のこと。"
12807
12808 #. type: Plain text
12809 #: build/C/man2/tkill.2:111
12810 msgid "No process with the specified thread ID (and thread group ID) exists."
12811 msgstr ""
12812 "指定されたスレッドID (とスレッド・グループID) を持つプロセスが存在しない。"
12813
12814 #. type: Plain text
12815 #: build/C/man2/tkill.2:116
12816 msgid ""
12817 "B<tkill>()  is supported since Linux 2.4.19 / 2.5.4.  B<tgkill>()  was added "
12818 "in Linux 2.5.75."
12819 msgstr ""
12820 "B<tkill>()  は Linux 2.4.19 / 2.5.4 以降でサポートされ、 B<tgkill>()  は "
12821 "Linux 2.5.75 で追加された。"
12822
12823 #. type: Plain text
12824 #: build/C/man2/tkill.2:122
12825 msgid ""
12826 "B<tkill>()  and B<tgkill>()  are Linux-specific and should not be used in "
12827 "programs that are intended to be portable."
12828 msgstr ""
12829 "B<tkill>()  と B<tgkill>()  は Linux 固有であり、 移植を想定したプログラムで"
12830 "は使用すべきではない。"
12831
12832 #. type: Plain text
12833 #: build/C/man2/tkill.2:128
12834 msgid ""
12835 "See the description of B<CLONE_THREAD> in B<clone>(2)  for an explanation of "
12836 "thread groups."
12837 msgstr ""
12838 "スレッド・グループの説明については B<clone>(2)  の B<CLONE_THREAD> の説明を参"
12839 "照のこと。"
12840
12841 #. type: Plain text
12842 #: build/C/man2/tkill.2:131
12843 msgid ""
12844 "Glibc does not provide wrappers for these system calls; call them using "
12845 "B<syscall>(2)."
12846 msgstr ""
12847 "glibc はこれらのシステムコールに対するラッパー関数を提供していない。 "
12848 "B<syscall>(2)  を使って呼び出すこと。"
12849
12850 #. type: Plain text
12851 #: build/C/man2/tkill.2:136
12852 msgid "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
12853 msgstr "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
12854
12855 #. type: TH
12856 #: build/C/man2/wait.2:49
12857 #, no-wrap
12858 msgid "WAIT"
12859 msgstr "WAIT"
12860
12861 #. type: TH
12862 #: build/C/man2/wait.2:49
12863 #, no-wrap
12864 msgid "2012-12-21"
12865 msgstr "2012-12-21"
12866
12867 #. type: Plain text
12868 #: build/C/man2/wait.2:52
12869 msgid "wait, waitpid, waitid - wait for process to change state"
12870 msgstr "wait, waitpid, waitid - プロセスの状態変化を待つ"
12871
12872 #. type: Plain text
12873 #: build/C/man2/wait.2:54
12874 msgid "B<#include E<lt>sys/types.hE<gt>>"
12875 msgstr "B<#include E<lt>sys/types.hE<gt>>"
12876
12877 #. type: Plain text
12878 #: build/C/man2/wait.2:56
12879 msgid "B<#include E<lt>sys/wait.hE<gt>>"
12880 msgstr "B<#include E<lt>sys/wait.hE<gt>>"
12881
12882 #. type: Plain text
12883 #: build/C/man2/wait.2:58
12884 msgid "B<pid_t wait(int *>I<status>B<);>"
12885 msgstr "B<pid_t wait(int *>I<status>B<);>"
12886
12887 #. type: Plain text
12888 #: build/C/man2/wait.2:60
12889 msgid ""
12890 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
12891 msgstr ""
12892 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
12893
12894 #. type: Plain text
12895 #: build/C/man2/wait.2:63
12896 msgid ""
12897 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, "
12898 "int >I<options>B<);>"
12899 msgstr ""
12900 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, "
12901 "int >I<options>B<);>"
12902
12903 #. type: Plain text
12904 #: build/C/man2/wait.2:72
12905 msgid "B<waitid>():"
12906 msgstr "B<waitid>():"
12907
12908 #. type: Plain text
12909 #: build/C/man2/wait.2:76
12910 msgid ""
12911 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
12912 "_XOPEN_SOURCE_EXTENDED"
12913 msgstr ""
12914 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
12915 "_XOPEN_SOURCE_EXTENDED"
12916
12917 #. type: Plain text
12918 #: build/C/man2/wait.2:91
12919 msgid ""
12920 "All of these system calls are used to wait for state changes in a child of "
12921 "the calling process, and obtain information about the child whose state has "
12922 "changed.  A state change is considered to be: the child terminated; the "
12923 "child was stopped by a signal; or the child was resumed by a signal.  In the "
12924 "case of a terminated child, performing a wait allows the system to release "
12925 "the resources associated with the child; if a wait is not performed, then "
12926 "the terminated child remains in a \"zombie\" state (see NOTES below)."
12927 msgstr ""
12928 "これらのシステムコールはいずれも、呼び出し元プロセスの子プロセスの 状態変化を"
12929 "待ち、状態が変化したその子プロセスの情報を取得するのに 使用される。 状態変化"
12930 "とは以下のいずれかである: 子プロセスの終了、シグナルによる子プロセスの停止、 "
12931 "シグナルによる子プロセスの再開。 子プロセスが終了した場合は、wait を実行する"
12932 "ことで、 システムがその子プロセスに関連するリソースを解放できるようになる。 "
12933 "wait が実行されなかった場合には、終了した子プロセスは 「ゾンビ」状態で残り続"
12934 "ける (下記の注意の章を参照のこと)。"
12935
12936 #. type: Plain text
12937 #: build/C/man2/wait.2:103
12938 msgid ""
12939 "If a child has already changed state, then these calls return immediately.  "
12940 "Otherwise they block until either a child changes state or a signal handler "
12941 "interrupts the call (assuming that system calls are not automatically "
12942 "restarted using the B<SA_RESTART> flag of B<sigaction>(2)).  In the "
12943 "remainder of this page, a child whose state has changed and which has not "
12944 "yet been waited upon by one of these system calls is termed I<waitable>."
12945 msgstr ""
12946 "子プロセスの状態変化がすでに発生していた場合、これらのコールは すぐに復帰す"
12947 "る。それ以外の場合は、子プロセスの状態変化が起こるか、 シグナルハンドラにより"
12948 "システムコールが中断されるまで、 停止 (block) する (後者は、 B<sigaction>"
12949 "(2)  の B<SA_RESTART> フラグによりシステムコールが自動的に再スタートするよう"
12950 "になっていない 場合の動作である)。 以下の説明では、状態変化が起こったがこれら"
12951 "のシステムコールのいずれかに よって待たれていない子プロセスを I<waitable> (待"
12952 "ち可能) と呼ぶ。"
12953
12954 #. type: SS
12955 #: build/C/man2/wait.2:103
12956 #, no-wrap
12957 msgid "wait() and waitpid()"
12958 msgstr "wait() と waitpid()"
12959
12960 #. type: Plain text
12961 #: build/C/man2/wait.2:111
12962 msgid ""
12963 "The B<wait>()  system call suspends execution of the calling process until "
12964 "one of its children terminates.  The call I<wait(&status)> is equivalent to:"
12965 msgstr ""
12966 "B<wait>()  システムコールは、子プロセスのいずれかが終了するまで 呼び出し元の"
12967 "プロセスの実行を一時停止する。 呼び出し I<wait(&status)> は以下と等価である:"
12968
12969 #. type: Plain text
12970 #: build/C/man2/wait.2:114
12971 #, no-wrap
12972 msgid "    waitpid(-1, &status, 0);\n"
12973 msgstr "    waitpid(-1, &status, 0);\n"
12974
12975 #. type: Plain text
12976 #: build/C/man2/wait.2:128
12977 msgid ""
12978 "The B<waitpid>()  system call suspends execution of the calling process "
12979 "until a child specified by I<pid> argument has changed state.  By default, "
12980 "B<waitpid>()  waits only for terminated children, but this behavior is "
12981 "modifiable via the I<options> argument, as described below."
12982 msgstr ""
12983 "B<waitpid>()  システムコールは、 I<pid> 引き数で指定した子プロセスの状態変化"
12984 "が起こるまで、 呼び出し元のプロセスの実行を一時停止する。デフォルトでは、 "
12985 "B<waitpid>()  は子プロセスの終了だけを待つが、この動作は I<options> 引き数に"
12986 "より変更可能である。"
12987
12988 #. type: Plain text
12989 #: build/C/man2/wait.2:132
12990 msgid "The value of I<pid> can be:"
12991 msgstr "I<pid> に指定できる値は以下の通り:"
12992
12993 #. type: IP
12994 #: build/C/man2/wait.2:132
12995 #, no-wrap
12996 msgid "E<lt> -1"
12997 msgstr "E<lt> -1"
12998
12999 #. type: Plain text
13000 #: build/C/man2/wait.2:136
13001 msgid ""
13002 "meaning wait for any child process whose process group ID is equal to the "
13003 "absolute value of I<pid>."
13004 msgstr ""
13005 "プロセスグループID が I<pid> の絶対値に等しい子プロセスのいずれかが終了するま"
13006 "でを待つ。"
13007
13008 #. type: IP
13009 #: build/C/man2/wait.2:136
13010 #, no-wrap
13011 msgid "-1"
13012 msgstr "-1"
13013
13014 #. type: Plain text
13015 #: build/C/man2/wait.2:138
13016 msgid "meaning wait for any child process."
13017 msgstr "子プロセスのどれかが終了するまで待つ。"
13018
13019 #. type: IP
13020 #: build/C/man2/wait.2:138
13021 #, no-wrap
13022 msgid "0"
13023 msgstr "0"
13024
13025 #. type: Plain text
13026 #: build/C/man2/wait.2:141
13027 msgid ""
13028 "meaning wait for any child process whose process group ID is equal to that "
13029 "of the calling process."
13030 msgstr ""
13031 "プロセスグループID が呼び出したプロセスのものと等しい 子プロセスを待つ。"
13032
13033 #. type: IP
13034 #: build/C/man2/wait.2:141
13035 #, no-wrap
13036 msgid "E<gt> 0"
13037 msgstr "E<gt> 0"
13038
13039 #. type: Plain text
13040 #: build/C/man2/wait.2:145
13041 msgid ""
13042 "meaning wait for the child whose process ID is equal to the value of I<pid>."
13043 msgstr "プロセスID が I<pid> に等しい子プロセスを待つ。"
13044
13045 #. type: Plain text
13046 #: build/C/man2/wait.2:149
13047 msgid ""
13048 "The value of I<options> is an OR of zero or more of the following constants:"
13049 msgstr "I<options> の値は次の定数の 0 個以上の論理和である:"
13050
13051 #. type: TP
13052 #: build/C/man2/wait.2:149 build/C/man2/wait.2:278
13053 #, no-wrap
13054 msgid "B<WNOHANG>"
13055 msgstr "B<WNOHANG>"
13056
13057 #. type: Plain text
13058 #: build/C/man2/wait.2:152
13059 msgid "return immediately if no child has exited."
13060 msgstr "状態変化が起こった子プロセスがない場合にすぐに復帰する。"
13061
13062 #. type: TP
13063 #: build/C/man2/wait.2:152
13064 #, no-wrap
13065 msgid "B<WUNTRACED>"
13066 msgstr "B<WUNTRACED>"
13067
13068 #. type: Plain text
13069 #: build/C/man2/wait.2:161
13070 msgid ""
13071 "also return if a child has stopped (but not traced via B<ptrace>(2)).  "
13072 "Status for I<traced> children which have stopped is provided even if this "
13073 "option is not specified."
13074 msgstr ""
13075 "子プロセスが停止した場合にも復帰する (子プロセスが B<ptrace>(2)  でトレースさ"
13076 "れている場合は除く)。 このオプションが指定されていない場合でも、停止したプロ"
13077 "セスが 「トレース (traced)」されていれば、子プロセスの状態が報告される。"
13078
13079 #. type: TP
13080 #: build/C/man2/wait.2:161
13081 #, no-wrap
13082 msgid "B<WCONTINUED> (since Linux 2.6.10)"
13083 msgstr "B<WCONTINUED> (Linux 2.6.10 以降)"
13084
13085 #. type: Plain text
13086 #: build/C/man2/wait.2:165
13087 msgid ""
13088 "also return if a stopped child has been resumed by delivery of B<SIGCONT>."
13089 msgstr "停止した子プロセスが B<SIGCONT> の配送により再開した場合にも復帰する。"
13090
13091 #. type: Plain text
13092 #: build/C/man2/wait.2:167
13093 msgid "(For Linux-only options, see below.)"
13094 msgstr "(Linux 専用オプションについては後述する)"
13095
13096 #. type: Plain text
13097 #: build/C/man2/wait.2:181
13098 msgid ""
13099 "If I<status> is not NULL, B<wait>()  and B<waitpid>()  store status "
13100 "information in the I<int> to which it points.  This integer can be inspected "
13101 "with the following macros (which take the integer itself as an argument, not "
13102 "a pointer to it, as is done in B<wait>()  and B<waitpid>()!):"
13103 msgstr ""
13104 "I<status> が NULL でなければ、 B<wait>()  や B<waitpid>()  は I<status> で指"
13105 "す I<int> に状態情報を格納する。 この整数は以下のマクロを使って検査できる。 "
13106 "(これらのマクロの引き数には、 B<wait>()  や B<waitpid>()  が書き込んだ整数そ"
13107 "のものを指定する。ポインタではない!)"
13108
13109 #. type: TP
13110 #: build/C/man2/wait.2:181
13111 #, no-wrap
13112 msgid "B<WIFEXITED(>I<status>B<)>"
13113 msgstr "B<WIFEXITED(>I<status>B<)>"
13114
13115 #. type: Plain text
13116 #: build/C/man2/wait.2:189
13117 msgid ""
13118 "returns true if the child terminated normally, that is, by calling B<exit>"
13119 "(3)  or B<_exit>(2), or by returning from main()."
13120 msgstr ""
13121 "子プロセスが正常に終了した場合に真を返す。 「正常に」とは、 B<exit>(3)  か "
13122 "B<_exit>(2)  が呼び出された場合、もしくは main() から復帰した場合である。"
13123
13124 #. type: TP
13125 #: build/C/man2/wait.2:189
13126 #, no-wrap
13127 msgid "B<WEXITSTATUS(>I<status>B<)>"
13128 msgstr "B<WEXITSTATUS(>I<status>B<)>"
13129
13130 #. type: Plain text
13131 #: build/C/man2/wait.2:202
13132 #, fuzzy
13133 #| msgid ""
13134 #| "returns the exit status of the child.  This consists of the least "
13135 #| "significant 8 bits of the I<status> argument that the child specified in "
13136 #| "a call to B<exit>(3)  or B<_exit>(2)  or as the argument for a return "
13137 #| "statement in main().  This macro should only be employed if B<WIFEXITED> "
13138 #| "returned true."
13139 msgid ""
13140 "returns the exit status of the child.  This consists of the least "
13141 "significant 8 bits of the I<status> argument that the child specified in a "
13142 "call to B<exit>(3)  or B<_exit>(2)  or as the argument for a return "
13143 "statement in main().  This macro should be employed only if B<WIFEXITED> "
13144 "returned true."
13145 msgstr ""
13146 "子プロセスの終了ステータスを返す。 終了ステータスは I<status> 引き数の下位 8"
13147 "ビットで構成されており、 B<exit>(3)  や B<_exit>(2)  の呼び出し時に渡された"
13148 "値、もしくは main() の return 文の 引き数として指定された値である。 このマク"
13149 "ロを使用するのは B<WIFEXITED> が真を返した場合だけにすべきである。"
13150
13151 #. type: TP
13152 #: build/C/man2/wait.2:202
13153 #, no-wrap
13154 msgid "B<WIFSIGNALED(>I<status>B<)>"
13155 msgstr "B<WIFSIGNALED(>I<status>B<)>"
13156
13157 #. type: Plain text
13158 #: build/C/man2/wait.2:205
13159 msgid "returns true if the child process was terminated by a signal."
13160 msgstr "子プロセスがシグナルにより終了した場合に真を返す。"
13161
13162 #. type: TP
13163 #: build/C/man2/wait.2:205
13164 #, no-wrap
13165 msgid "B<WTERMSIG(>I<status>B<)>"
13166 msgstr "B<WTERMSIG(>I<status>B<)>"
13167
13168 #. type: Plain text
13169 #: build/C/man2/wait.2:212
13170 #, fuzzy
13171 #| msgid ""
13172 #| "returns the number of the signal that caused the child process to "
13173 #| "terminate.  This macro should only be employed if B<WIFSIGNALED> returned "
13174 #| "true."
13175 msgid ""
13176 "returns the number of the signal that caused the child process to "
13177 "terminate.  This macro should be employed only if B<WIFSIGNALED> returned "
13178 "true."
13179 msgstr ""
13180 "子プロセス終了の原因となったシグナルの番号を返す。 このマクロを使用するのは "
13181 "B<WIFSIGNALED> が真を返した場合だけにすべきである。"
13182
13183 #. type: TP
13184 #: build/C/man2/wait.2:212
13185 #, no-wrap
13186 msgid "B<WCOREDUMP(>I<status>B<)>"
13187 msgstr "B<WCOREDUMP(>I<status>B<)>"
13188
13189 #. type: Plain text
13190 #: build/C/man2/wait.2:221
13191 #, fuzzy
13192 #| msgid ""
13193 #| "returns true if the child produced a core dump.  This macro should only "
13194 #| "be employed if B<WIFSIGNALED> returned true.  This macro is not specified "
13195 #| "in POSIX.1-2001 and is not available on some UNIX implementations (e.g., "
13196 #| "AIX, SunOS).  Only use this enclosed in #ifdef WCOREDUMP ... #endif."
13197 msgid ""
13198 "returns true if the child produced a core dump.  This macro should be "
13199 "employed only if B<WIFSIGNALED> returned true.  This macro is not specified "
13200 "in POSIX.1-2001 and is not available on some UNIX implementations (e.g., "
13201 "AIX, SunOS).  Only use this enclosed in #ifdef WCOREDUMP ... #endif."
13202 msgstr ""
13203 "子プロセスがコアダンプを生成した場合に真を返す。 このマクロを使用するのは "
13204 "B<WIFSIGNALED> が真を返した場合だけにすべきである。 このマクロは "
13205 "POSIX.1-2001 では規定されておらず、 (AIX, SunOS などの) いくつかの UNIX の実"
13206 "装では利用できない。 必ず #ifdef WCOREDUMP ... #endif で括って使用すること。"
13207
13208 #. type: TP
13209 #: build/C/man2/wait.2:221
13210 #, no-wrap
13211 msgid "B<WIFSTOPPED(>I<status>B<)>"
13212 msgstr "B<WIFSTOPPED(>I<status>B<)>"
13213
13214 #. type: Plain text
13215 #: build/C/man2/wait.2:228
13216 #, fuzzy
13217 #| msgid ""
13218 #| "returns true if the child process was stopped by delivery of a signal; "
13219 #| "this is only possible if the call was done using B<WUNTRACED> or when the "
13220 #| "child is being traced (see B<ptrace>(2))."
13221 msgid ""
13222 "returns true if the child process was stopped by delivery of a signal; this "
13223 "is possible only if the call was done using B<WUNTRACED> or when the child "
13224 "is being traced (see B<ptrace>(2))."
13225 msgstr ""
13226 "子プロセスがシグナルの配送により停止した場合に真を返す。 これが真になるのは、"
13227 "システムコールが B<WUNTRACED> を指定して呼び出された場合か、子プロセスがト"
13228 "レースされている場合 (B<ptrace>(2)  参照) だけである。"
13229
13230 #. type: TP
13231 #: build/C/man2/wait.2:228
13232 #, no-wrap
13233 msgid "B<WSTOPSIG(>I<status>B<)>"
13234 msgstr "B<WSTOPSIG(>I<status>B<)>"
13235
13236 #. type: Plain text
13237 #: build/C/man2/wait.2:234
13238 #, fuzzy
13239 #| msgid ""
13240 #| "returns the number of the signal which caused the child to stop.  This "
13241 #| "macro should only be employed if B<WIFSTOPPED> returned true."
13242 msgid ""
13243 "returns the number of the signal which caused the child to stop.  This macro "
13244 "should be employed only if B<WIFSTOPPED> returned true."
13245 msgstr ""
13246 "子プロセスを停止させたシグナルの番号を返す。 このマクロを使用するのは "
13247 "B<WIFSTOPPED> が 0 以外を返した場合だけにすべきである。"
13248
13249 #. type: TP
13250 #: build/C/man2/wait.2:234
13251 #, no-wrap
13252 msgid "B<WIFCONTINUED(>I<status>B<)>"
13253 msgstr "B<WIFCONTINUED(>I<status>B<)>"
13254
13255 #. type: Plain text
13256 #: build/C/man2/wait.2:239
13257 msgid ""
13258 "(since Linux 2.6.10)  returns true if the child process was resumed by "
13259 "delivery of B<SIGCONT>."
13260 msgstr ""
13261 "(Linux 2.6.10 以降)  子プロセスが B<SIGCONT> の配送により再開した場合に真を返"
13262 "す。"
13263
13264 #. type: SS
13265 #: build/C/man2/wait.2:239
13266 #, no-wrap
13267 msgid "waitid()"
13268 msgstr "waitid()"
13269
13270 #. type: Plain text
13271 #: build/C/man2/wait.2:244
13272 msgid ""
13273 "The B<waitid>()  system call (available since Linux 2.6.9) provides more "
13274 "precise control over which child state changes to wait for."
13275 msgstr ""
13276 "B<waitid>()  システムコール (Linux 2.6.9 以降で利用可能) を使うと、 子プロセ"
13277 "スのどの状態変化を待つかについてより細かな制御ができる。"
13278
13279 #. type: Plain text
13280 #: build/C/man2/wait.2:250
13281 msgid ""
13282 "The I<idtype> and I<id> arguments select the child(ren) to wait for, as "
13283 "follows:"
13284 msgstr "引き数 I<idtype> と I<id> でどの子プロセスを待つかを選択する:"
13285
13286 #. type: IP
13287 #: build/C/man2/wait.2:250
13288 #, no-wrap
13289 msgid "I<idtype> == B<P_PID>"
13290 msgstr "I<idtype> == B<P_PID>"
13291
13292 #. type: Plain text
13293 #: build/C/man2/wait.2:253
13294 msgid "Wait for the child whose process ID matches I<id>."
13295 msgstr "プロセスID が I<id> と一致する子プロセスを待つ。"
13296
13297 #. type: IP
13298 #: build/C/man2/wait.2:253
13299 #, no-wrap
13300 msgid "I<idtype> == B<P_PGID>"
13301 msgstr "I<idtype> == B<P_PGID>"
13302
13303 #. type: Plain text
13304 #: build/C/man2/wait.2:256
13305 msgid "Wait for any child whose process group ID matches I<id>."
13306 msgstr "プロセスグループID が I<id> と一致する子プロセスを待つ。"
13307
13308 #. type: IP
13309 #: build/C/man2/wait.2:256
13310 #, no-wrap
13311 msgid "I<idtype> == B<P_ALL>"
13312 msgstr "I<idtype> == B<P_ALL>"
13313
13314 #. type: Plain text
13315 #: build/C/man2/wait.2:260
13316 msgid "Wait for any child; I<id> is ignored."
13317 msgstr "子プロセス全部を対象に待つ。 I<id> は無視される。"
13318
13319 #. type: Plain text
13320 #: build/C/man2/wait.2:264
13321 msgid ""
13322 "The child state changes to wait for are specified by ORing one or more of "
13323 "the following flags in I<options>:"
13324 msgstr ""
13325 "子プロセスのどの状態変化を待つかは以下のフラグで指定する (I<options> には 1個"
13326 "以上のフラグの論理和をとって指定する):"
13327
13328 #. type: TP
13329 #: build/C/man2/wait.2:264
13330 #, no-wrap
13331 msgid "B<WEXITED>"
13332 msgstr "B<WEXITED>"
13333
13334 #. type: Plain text
13335 #: build/C/man2/wait.2:267
13336 msgid "Wait for children that have terminated."
13337 msgstr "子プロセスの終了を待つ。"
13338
13339 #. type: TP
13340 #: build/C/man2/wait.2:267
13341 #, no-wrap
13342 msgid "B<WSTOPPED>"
13343 msgstr "B<WSTOPPED>"
13344
13345 #. type: Plain text
13346 #: build/C/man2/wait.2:270
13347 msgid "Wait for children that have been stopped by delivery of a signal."
13348 msgstr "子プロセスがシグナルの配送により停止するのを待つ。"
13349
13350 #. type: TP
13351 #: build/C/man2/wait.2:270
13352 #, no-wrap
13353 msgid "B<WCONTINUED>"
13354 msgstr "B<WCONTINUED>"
13355
13356 #. type: Plain text
13357 #: build/C/man2/wait.2:275
13358 msgid ""
13359 "Wait for (previously stopped) children that have been resumed by delivery of "
13360 "B<SIGCONT>."
13361 msgstr "(停止していた) 子プロセスが B<SIGCONT> が配送されて再開するのを待つ。"
13362
13363 #. type: Plain text
13364 #: build/C/man2/wait.2:278
13365 msgid "The following flags may additionally be ORed in I<options>:"
13366 msgstr "さらに以下のフラグを論理和の形で I<options> に指定できる:"
13367
13368 #. type: Plain text
13369 #: build/C/man2/wait.2:282
13370 msgid "As for B<waitpid>()."
13371 msgstr "B<waitpid>()  と同様。"
13372
13373 #. type: TP
13374 #: build/C/man2/wait.2:282
13375 #, no-wrap
13376 msgid "B<WNOWAIT>"
13377 msgstr "B<WNOWAIT>"
13378
13379 #. type: Plain text
13380 #: build/C/man2/wait.2:286
13381 msgid ""
13382 "Leave the child in a waitable state; a later wait call can be used to again "
13383 "retrieve the child status information."
13384 msgstr ""
13385 "waitable 状態のプロセスをそのままにする。この後で wait コールを 使って、同じ"
13386 "子プロセスの状態情報をもう一度取得することができる。"
13387
13388 #. type: Plain text
13389 #: build/C/man2/wait.2:293
13390 msgid ""
13391 "Upon successful return, B<waitid>()  fills in the following fields of the "
13392 "I<siginfo_t> structure pointed to by I<infop>:"
13393 msgstr ""
13394 "成功した場合には、 B<waitid>()  は I<infop> が指す I<siginfo_t> 構造体の以下"
13395 "のフィールドを設定する:"
13396
13397 #. type: Plain text
13398 #: build/C/man2/wait.2:296
13399 msgid "The process ID of the child."
13400 msgstr "子プロセスのプロセスID。"
13401
13402 #. type: Plain text
13403 #: build/C/man2/wait.2:300
13404 msgid ""
13405 "The real user ID of the child.  (This field is not set on most other "
13406 "implementations.)"
13407 msgstr ""
13408 "子プロセスの実ユーザID (このフィールドは他のほとんどの実装では設定されない)。"
13409
13410 #. type: Plain text
13411 #: build/C/man2/wait.2:304
13412 msgid "Always set to B<SIGCHLD>."
13413 msgstr "常に B<SIGCHLD> が設定される。"
13414
13415 #. type: TP
13416 #: build/C/man2/wait.2:304
13417 #, no-wrap
13418 msgid "I<si_status>"
13419 msgstr "I<si_status>"
13420
13421 #. type: Plain text
13422 #: build/C/man2/wait.2:314
13423 msgid ""
13424 "Either the exit status of the child, as given to B<_exit>(2)  (or B<exit>"
13425 "(3)), or the signal that caused the child to terminate, stop, or continue.  "
13426 "The I<si_code> field can be used to determine how to interpret this field."
13427 msgstr ""
13428 "B<_exit>(2)  (か B<exit>(3))  に指定された子プロセスの終了ステータス、もしく"
13429 "は 子プロセスの終了、停止、再開の原因となったシグナルが設定される。 この"
13430 "フィールドをどう解釈するかは、 I<si_code> フィールドを参照して決めることがで"
13431 "きる。"
13432
13433 #. type: Plain text
13434 #: build/C/man2/wait.2:331
13435 msgid ""
13436 "Set to one of: B<CLD_EXITED> (child called B<_exit>(2)); B<CLD_KILLED> "
13437 "(child killed by signal); B<CLD_DUMPED> (child killed by signal, and dumped "
13438 "core); B<CLD_STOPPED> (child stopped by signal); B<CLD_TRAPPED> (traced "
13439 "child has trapped); or B<CLD_CONTINUED> (child continued by B<SIGCONT>)."
13440 msgstr ""
13441 "以下のいずれかが設定される: B<CLD_EXITED> (子プロセスが B<_exit>(2)  を呼び出"
13442 "した); B<CLD_KILLED> (シグナルにより子プロセスが kill された); B<CLD_DUMPED> "
13443 "(シグナルにより子プロセスが kill され、コア・ダンプが行われた); "
13444 "B<CLD_STOPPED> (シグナルにより子プロセスが停止した); B<CLD_TRAPPED> (トレース"
13445 "されていた子プロセスがトラップを受信した); B<CLD_CONTINUED> (B<SIGCONT> によ"
13446 "り子プロセスが再開された)。"
13447
13448 #.  POSIX.1-2001 leaves this possibility unspecified; most
13449 #.  implementations (including Linux) zero out the structure
13450 #.  in this case, but at least one implementation (AIX 5.1)
13451 #.  does not -- MTK Nov 04
13452 #. type: Plain text
13453 #: build/C/man2/wait.2:353
13454 msgid ""
13455 "If B<WNOHANG> was specified in I<options> and there were no children in a "
13456 "waitable state, then B<waitid>()  returns 0 immediately and the state of the "
13457 "I<siginfo_t> structure pointed to by I<infop> is unspecified.  To "
13458 "distinguish this case from that where a child was in a waitable state, zero "
13459 "out the I<si_pid> field before the call and check for a nonzero value in "
13460 "this field after the call returns."
13461 msgstr ""
13462 "B<WNOHANG> が I<options> に指定されていて、 waitable 状態の子プロセスがなかっ"
13463 "た場合には、 B<waitid>()  はすぐに 0 を返す。このとき、 I<infop> が指す "
13464 "I<siginfo_t> 構造体の内容は不定である。 この場合を waitable 状態の子プロセス"
13465 "があった場合と区別するには、 B<waitid>()  を呼び出す前に I<si_pid> を 0 にし"
13466 "ておき、コールが復帰した後でこのフィールドが 0 以外の値かどうか をチェックす"
13467 "ればよい。"
13468
13469 #. type: Plain text
13470 #: build/C/man2/wait.2:357
13471 msgid ""
13472 "B<wait>(): on success, returns the process ID of the terminated child; on "
13473 "error, -1 is returned."
13474 msgstr ""
13475 "B<wait>(): 成功すると、終了した子プロセスのプロセスID を返す。 エラーの場合 "
13476 "-1 を返す。"
13477
13478 #. type: Plain text
13479 #: build/C/man2/wait.2:366
13480 msgid ""
13481 "B<waitpid>(): on success, returns the process ID of the child whose state "
13482 "has changed; if B<WNOHANG> was specified and one or more child(ren) "
13483 "specified by I<pid> exist, but have not yet changed state, then 0 is "
13484 "returned.  On error, -1 is returned."
13485 msgstr ""
13486 "B<waitpid>(): 成功すると、状態が変化した子プロセスのプロセスID を返す。 "
13487 "B<WNOHANG> が指定されていて、 I<pid> で指示された子プロセスが一つ以上存在する"
13488 "が、どの子プロセスでも 状態変化が起こっていなかった場合は、 0 を返す。 エラー"
13489 "の場合 -1 を返す。"
13490
13491 #.  FIXME: As reported by Vegard Nossum, if infop is NULL, then waitid()
13492 #.  returns the PID of the child.  Either this is a bug, or it is intended
13493 #.  behavior that needs to be documented.  See my Jan 2009 LKML mail
13494 #.  "waitid() return value strangeness when infop is NULL".
13495 #. type: Plain text
13496 #: build/C/man2/wait.2:382
13497 msgid ""
13498 "B<waitid>(): returns 0 on success or if B<WNOHANG> was specified and no child"
13499 "(ren) specified by I<id> has yet changed state; on error, -1 is returned.  "
13500 "Each of these calls sets I<errno> to an appropriate value in the case of an "
13501 "error."
13502 msgstr ""
13503 "B<waitid>(): 成功すると 0 を返す。 B<WNOHANG> が指定されていて、 I<pid> で指"
13504 "示された子プロセスで状態変化が起こっていなかった場合にも 0 を返す。 エラーの"
13505 "場合 -1 を返す。 エラーの場合、これらのシステムコールはいずれも I<errno> に適"
13506 "切な値を設定する。"
13507
13508 #. type: TP
13509 #: build/C/man2/wait.2:383 build/C/man2/wait.2:388
13510 #, no-wrap
13511 msgid "B<ECHILD>"
13512 msgstr "B<ECHILD>"
13513
13514 #. type: Plain text
13515 #: build/C/man2/wait.2:388
13516 msgid ""
13517 "(for B<wait>())  The calling process does not have any unwaited-for children."
13518 msgstr ""
13519 "(B<wait>()  の場合)  呼び出し元プロセスには、wait を行っていない子プロセスは"
13520 "ない。"
13521
13522 #. type: Plain text
13523 #: build/C/man2/wait.2:408
13524 msgid ""
13525 "(for B<waitpid>()  or B<waitid>())  The process specified by I<pid> "
13526 "(B<waitpid>())  or I<idtype> and I<id> (B<waitid>())  does not exist or is "
13527 "not a child of the calling process.  (This can happen for one's own child if "
13528 "the action for B<SIGCHLD> is set to B<SIG_IGN>.  See also the I<Linux Notes> "
13529 "section about threads.)"
13530 msgstr ""
13531 "(B<waitpid>()  か B<waitid>()  の場合)  I<pid> (B<waitpid>())  か I<idtype> "
13532 "と I<id> (B<waitid>())  で指定したプロセスが存在しないか、呼び出し元プロセス"
13533 "の子プロセスでない (B<SIGCHLD> の動作に B<SIG_IGN> を設定した場合には、自分自"
13534 "身の子プロセスでも起こりうる。 スレッドに関しては「Linux での注意」の節も参照"
13535 "すること)。"
13536
13537 #. type: Plain text
13538 #: build/C/man2/wait.2:415
13539 msgid ""
13540 "B<WNOHANG> was not set and an unblocked signal or a B<SIGCHLD> was caught; "
13541 "see B<signal>(7)."
13542 msgstr ""
13543 "B<WNOHANG> が設定されておらず、禁止 (block) されていないシグナルや "
13544 "B<SIGCHLD> を受信した。 B<signal>(7)  参照。"
13545
13546 #. type: Plain text
13547 #: build/C/man2/wait.2:420
13548 msgid "The I<options> argument was invalid."
13549 msgstr "I<options> 引き数が不正である。"
13550
13551 #. type: Plain text
13552 #: build/C/man2/wait.2:435
13553 msgid ""
13554 "A child that terminates, but has not been waited for becomes a \"zombie\".  "
13555 "The kernel maintains a minimal set of information about the zombie process "
13556 "(PID, termination status, resource usage information)  in order to allow the "
13557 "parent to later perform a wait to obtain information about the child.  As "
13558 "long as a zombie is not removed from the system via a wait, it will consume "
13559 "a slot in the kernel process table, and if this table fills, it will not be "
13560 "possible to create further processes.  If a parent process terminates, then "
13561 "its \"zombie\" children (if any)  are adopted by B<init>(8), which "
13562 "automatically performs a wait to remove the zombies."
13563 msgstr ""
13564 "終了したが、wait されていない子プロセスは「ゾンビ」になる。 後で親プロセスが "
13565 "wait を実行して子プロセスについての情報を取得できるように、 カーネルはゾンビ"
13566 "プロセスについて最小限の情報 (PID、終了ステータス、 リソース使用状況) を保持"
13567 "する。 ゾンビプロセスは、 wait によってシステムから削除されない限り、 カーネ"
13568 "ルのプロセステーブルの 1 エントリを消費する。このプロセステーブルが 一杯にな"
13569 "ると、新たにプロセスを作ることができなくなる。 親プロセスが終了すると、その親"
13570 "プロセスの「ゾンビ」の 子プロセスは (もしあれば)  B<init>(8)  の養子となる。 "
13571 "B<init>(8)  は wait を自動的に実行し、ゾンビを削除する。"
13572
13573 #. type: Plain text
13574 #: build/C/man2/wait.2:476
13575 msgid ""
13576 "POSIX.1-2001 specifies that if the disposition of B<SIGCHLD> is set to "
13577 "B<SIG_IGN> or the B<SA_NOCLDWAIT> flag is set for B<SIGCHLD> (see "
13578 "B<sigaction>(2)), then children that terminate do not become zombies and a "
13579 "call to B<wait>()  or B<waitpid>()  will block until all children have "
13580 "terminated, and then fail with I<errno> set to B<ECHILD>.  (The original "
13581 "POSIX standard left the behavior of setting B<SIGCHLD> to B<SIG_IGN> "
13582 "unspecified.  Note that even though the default disposition of B<SIGCHLD> is "
13583 "\"ignore\", explicitly setting the disposition to B<SIG_IGN> results in "
13584 "different treatment of zombie process children.)  Linux 2.6 conforms to this "
13585 "specification.  However, Linux 2.4 (and earlier) does not: if a B<wait>()  "
13586 "or B<waitpid>()  call is made while B<SIGCHLD> is being ignored, the call "
13587 "behaves just as though B<SIGCHLD> were not being ignored, that is, the call "
13588 "blocks until the next child terminates and then returns the process ID and "
13589 "status of that child."
13590 msgstr ""
13591 "POSIX.1-2001 では以下のように規定されている。 B<SIGCHLD> の動作が B<SIG_IGN> "
13592 "に設定されたか、 B<SIGCHLD> に対して B<SA_NOCLDWAIT> フラグが設定された場合 "
13593 "(B<sigaction>(2)  参照)、終了した子プロセスはゾンビにはならず、 B<wait>()  "
13594 "や B<waitpid>()  の呼び出しは全ての子プロセスが終了するまで停止し、 子プロセ"
13595 "スが全部終了した後 I<errno> に B<ECHILD> を設定して失敗する。 (もともとの "
13596 "POSIX 標準は B<SIGCHLD> に B<SIG_IGN> を設定した場合の振る舞いを未規定のまま"
13597 "にしている。 B<SIGCHLD> のデフォルトの動作が「無視」であるにもかかわらず、 "
13598 "B<SIGCHLD> の動作として B<SIG_IGN> を明示的に設定した場合にはゾンビプロセスの"
13599 "子プロセスの扱いが 異なる点に注意すること。)  Linux 2.6 はこの仕様に準拠して"
13600 "いる。 しかし、Linux 2.4 (とそれ以前のバージョン) はそうではない: B<SIGCHLD> "
13601 "が無視される状態で B<wait>()  または B<waitpid>()  が呼び出された場合、 "
13602 "B<SIGCHLD> が無視されていないかのように振る舞う。 つまり、呼び出しによって次"
13603 "の子プロセスの終了までブロックされ、 終了した子プロセスの PID と状態が返され"
13604 "る。"
13605
13606 #. type: Plain text
13607 #: build/C/man2/wait.2:492
13608 msgid ""
13609 "In the Linux kernel, a kernel-scheduled thread is not a distinct construct "
13610 "from a process.  Instead, a thread is simply a process that is created using "
13611 "the Linux-unique B<clone>(2)  system call; other routines such as the "
13612 "portable B<pthread_create>(3)  call are implemented using B<clone>(2).  "
13613 "Before Linux 2.4, a thread was just a special case of a process, and as a "
13614 "consequence one thread could not wait on the children of another thread, "
13615 "even when the latter belongs to the same thread group.  However, POSIX "
13616 "prescribes such functionality, and since Linux 2.4 a thread can, and by "
13617 "default will, wait on children of other threads in the same thread group."
13618 msgstr ""
13619 "Linux カーネルでは、カーネルによってスケジュールされるスレッドは プロセスと明"
13620 "確に区別できる構成要素ではない。スレッドは Linux 固有の B<clone>(2)  システム"
13621 "コールを使用して生成されるプロセスに過ぎない。 移植性のある B<pthread_create>"
13622 "(3)  コールのような他のルーチンは B<clone>(2)  を使用して実装されている; これ"
13623 "らでは B<waitid>()  を使うことはできない。 Linux 2.4 より前では、スレッドは単"
13624 "に特殊なプロセスであったので、 例え同じスレッドグループであっても、 あるス"
13625 "レッドが別のスレッドの子プロセスが終了するのを待つことは出来なかった。 しか"
13626 "し、POSIX ではこのような機能を規定しており、 Linux 2.4 以降では、あるスレッド"
13627 "が同じスレッドグループの他のスレッドの 子プロセスが終了するのを待つことができ"
13628 "るようになった。 そして将来はこれがデフォルトの動作になるであろう。"
13629
13630 #. type: Plain text
13631 #: build/C/man2/wait.2:499
13632 msgid ""
13633 "The following Linux-specific I<options> are for use with children created "
13634 "using B<clone>(2); they cannot be used with B<waitid>():"
13635 msgstr ""
13636 "B<clone>(2)  を用いて作られた子プロセスには、以下の Linux 固有の I<options> "
13637 "が使用できる。"
13638
13639 #. type: TP
13640 #: build/C/man2/wait.2:499
13641 #, no-wrap
13642 msgid "B<__WCLONE>"
13643 msgstr "B<__WCLONE>"
13644
13645 #.  since 0.99pl10
13646 #. type: Plain text
13647 #: build/C/man2/wait.2:510
13648 msgid ""
13649 "Wait for \"clone\" children only.  If omitted then wait for \"non-clone\" "
13650 "children only.  (A \"clone\" child is one which delivers no signal, or a "
13651 "signal other than B<SIGCHLD> to its parent upon termination.)  This option "
13652 "is ignored if B<__WALL> is also specified."
13653 msgstr ""
13654 "\"clone\" な子プロセスだけを待つ。 指定されなかった場合は非 \"clone\" な子プ"
13655 "ロセスだけを待つ (\"clone\" な子プロセスは、終了時に親プロセスへ全くシグナル"
13656 "を送らないか、 B<SIGCHLD> 以外のシグナルを送る)。 このオプションは B<__WALL> "
13657 "も指定された場合は無視される。"
13658
13659 #. type: TP
13660 #: build/C/man2/wait.2:510
13661 #, no-wrap
13662 msgid "B<__WALL> (since Linux 2.4)"
13663 msgstr "B<__WALL> (Linux 2.4 以降)"
13664
13665 #.  since patch-2.3.48
13666 #. type: Plain text
13667 #: build/C/man2/wait.2:515
13668 msgid "Wait for all children, regardless of type (\"clone\" or \"non-clone\")."
13669 msgstr "\"clone\" であるかないかに関わらず、 全ての子プロセスを待つ。"
13670
13671 #. type: TP
13672 #: build/C/man2/wait.2:515
13673 #, no-wrap
13674 msgid "B<__WNOTHREAD> (since Linux 2.4)"
13675 msgstr "B<__WNOTHREAD> (Linux 2.4 以降)"
13676
13677 #.  since patch-2.4.0-test8
13678 #. type: Plain text
13679 #: build/C/man2/wait.2:521
13680 msgid ""
13681 "Do not wait for children of other threads in the same thread group.  This "
13682 "was the default before Linux 2.4."
13683 msgstr ""
13684 "同じスレッドグループの他のスレッドの子プロセスは待たない。 Linux 2.4 より前で"
13685 "はデフォルトであった。"
13686
13687 #. type: Plain text
13688 #: build/C/man2/wait.2:536
13689 msgid ""
13690 "According to POSIX.1-2008, an application calling B<waitid>()  must ensure "
13691 "that I<infop> points to a I<siginfo_t> structure (i.e., that it is a non-"
13692 "NULL pointer).  On Linux, if I<infop> is NULL, B<waitid>()  succeeds, and "
13693 "returns the process ID of the waited-for child.  Applications should avoid "
13694 "relying on this inconsistent, nonstandard, and unnecessary feature."
13695 msgstr ""
13696
13697 #.  fork.2 refers to this example program.
13698 #. type: Plain text
13699 #: build/C/man2/wait.2:553
13700 msgid ""
13701 "The following program demonstrates the use of B<fork>(2)  and B<waitpid>().  "
13702 "The program creates a child process.  If no command-line argument is "
13703 "supplied to the program, then the child suspends its execution using B<pause>"
13704 "(2), to allow the user to send signals to the child.  Otherwise, if a "
13705 "command-line argument is supplied, then the child exits immediately, using "
13706 "the integer supplied on the command line as the exit status.  The parent "
13707 "process executes a loop that monitors the child using B<waitpid>(), and uses "
13708 "the W*() macros described above to analyze the wait status value."
13709 msgstr ""
13710 "以下のプログラムは、 B<fork>(2)  と B<waitpid>()  の使用方法の例を示してい"
13711 "る。 このプログラムでは子プロセスを生成する。 コマンドライン引き数が指定され"
13712 "なかったときは、 子プロセスは B<pause>(2)  を使ってその実行を一時停止し、ユー"
13713 "ザがその子プロセスに シグナルを送信できるようにする。 コマンドライン引き数が"
13714 "指定された場合は、 子プロセスは直ちに終了し、 コマンドラインで指定された整数"
13715 "を終了ステータスとして使用する。 親プロセスは、 B<waitpid>()  を使って子プロ"
13716 "セスを監視し、 wait のステータス値を上記の W*() マクロを使って解析するという "
13717 "ループを実行する。"
13718
13719 #. type: Plain text
13720 #: build/C/man2/wait.2:569
13721 #, no-wrap
13722 msgid ""
13723 "$B< ./a.out &>\n"
13724 "Child PID is 32360\n"
13725 "[1] 32359\n"
13726 "$B< kill -STOP 32360>\n"
13727 "stopped by signal 19\n"
13728 "$B< kill -CONT 32360>\n"
13729 "continued\n"
13730 "$B< kill -TERM 32360>\n"
13731 "killed by signal 15\n"
13732 "[1]+  Done                    ./a.out\n"
13733 "$\n"
13734 msgstr ""
13735 "$B< ./a.out &>\n"
13736 "Child PID is 32360\n"
13737 "[1] 32359\n"
13738 "$B< kill -STOP 32360>\n"
13739 "stopped by signal 19\n"
13740 "$B< kill -CONT 32360>\n"
13741 "continued\n"
13742 "$B< kill -TERM 32360>\n"
13743 "killed by signal 15\n"
13744 "[1]+  Done                    ./a.out\n"
13745 "$\n"
13746
13747 #. type: Plain text
13748 #: build/C/man2/wait.2:578
13749 #, no-wrap
13750 msgid ""
13751 "#include E<lt>sys/wait.hE<gt>\n"
13752 "#include E<lt>stdlib.hE<gt>\n"
13753 "#include E<lt>unistd.hE<gt>\n"
13754 "#include E<lt>stdio.hE<gt>\n"
13755 msgstr ""
13756 "#include E<lt>sys/wait.hE<gt>\n"
13757 "#include E<lt>stdlib.hE<gt>\n"
13758 "#include E<lt>unistd.hE<gt>\n"
13759 "#include E<lt>stdio.hE<gt>\n"
13760
13761 #. type: Plain text
13762 #: build/C/man2/wait.2:584
13763 #, no-wrap
13764 msgid ""
13765 "int\n"
13766 "main(int argc, char *argv[])\n"
13767 "{\n"
13768 "    pid_t cpid, w;\n"
13769 "    int status;\n"
13770 msgstr ""
13771 "int\n"
13772 "main(int argc, char *argv[])\n"
13773 "{\n"
13774 "    pid_t cpid, w;\n"
13775 "    int status;\n"
13776
13777 #. type: Plain text
13778 #: build/C/man2/wait.2:590
13779 #, no-wrap
13780 msgid ""
13781 "    cpid = fork();\n"
13782 "    if (cpid == -1) {\n"
13783 "        perror(\"fork\");\n"
13784 "        exit(EXIT_FAILURE);\n"
13785 "    }\n"
13786 msgstr ""
13787 "    cpid = fork();\n"
13788 "    if (cpid == -1) {\n"
13789 "        perror(\"fork\");\n"
13790 "        exit(EXIT_FAILURE);\n"
13791 "    }\n"
13792
13793 #. type: Plain text
13794 #: build/C/man2/wait.2:596
13795 #, no-wrap
13796 msgid ""
13797 "    if (cpid == 0) {            /* Code executed by child */\n"
13798 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
13799 "        if (argc == 1)\n"
13800 "            pause();                    /* Wait for signals */\n"
13801 "        _exit(atoi(argv[1]));\n"
13802 msgstr ""
13803 "    if (cpid == 0) {            /* Code executed by child */\n"
13804 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
13805 "        if (argc == 1)\n"
13806 "            pause();                    /* Wait for signals */\n"
13807 "        _exit(atoi(argv[1]));\n"
13808
13809 #. type: Plain text
13810 #: build/C/man2/wait.2:604
13811 #, no-wrap
13812 msgid ""
13813 "    } else {                    /* Code executed by parent */\n"
13814 "        do {\n"
13815 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
13816 "            if (w == -1) {\n"
13817 "                perror(\"waitpid\");\n"
13818 "                exit(EXIT_FAILURE);\n"
13819 "            }\n"
13820 msgstr ""
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
13829 #. type: Plain text
13830 #: build/C/man2/wait.2:618
13831 #, no-wrap
13832 msgid ""
13833 "            if (WIFEXITED(status)) {\n"
13834 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
13835 "            } else if (WIFSIGNALED(status)) {\n"
13836 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
13837 "            } else if (WIFSTOPPED(status)) {\n"
13838 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
13839 "            } else if (WIFCONTINUED(status)) {\n"
13840 "                printf(\"continued\\en\");\n"
13841 "            }\n"
13842 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
13843 "        exit(EXIT_SUCCESS);\n"
13844 "    }\n"
13845 "}\n"
13846 msgstr ""
13847 "            if (WIFEXITED(status)) {\n"
13848 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
13849 "            } else if (WIFSIGNALED(status)) {\n"
13850 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
13851 "            } else if (WIFSTOPPED(status)) {\n"
13852 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
13853 "            } else if (WIFCONTINUED(status)) {\n"
13854 "                printf(\"continued\\en\");\n"
13855 "            }\n"
13856 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
13857 "        exit(EXIT_SUCCESS);\n"
13858 "    }\n"
13859 "}\n"
13860
13861 #. type: Plain text
13862 #: build/C/man2/wait.2:631
13863 msgid ""
13864 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), B<sigaction>"
13865 "(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), B<credentials>(7), "
13866 "B<signal>(7)"
13867 msgstr ""
13868 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), B<sigaction>"
13869 "(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), B<credentials>(7), "
13870 "B<signal>(7)"
13871
13872 #. type: TH
13873 #: build/C/man2/wait4.2:33
13874 #, no-wrap
13875 msgid "WAIT4"
13876 msgstr "WAIT4"
13877
13878 #. type: TH
13879 #: build/C/man2/wait4.2:33
13880 #, no-wrap
13881 msgid "2012-09-23"
13882 msgstr "2012-09-23"
13883
13884 #. type: Plain text
13885 #: build/C/man2/wait4.2:36
13886 msgid "wait3, wait4 - wait for process to change state, BSD style"
13887 msgstr "wait3, wait4 - BSD スタイルでプロセスの状態変化を待つ"
13888
13889 #. type: Plain text
13890 #: build/C/man2/wait4.2:42
13891 #, no-wrap
13892 msgid ""
13893 "B<#include E<lt>sys/types.hE<gt>>\n"
13894 "B<#include E<lt>sys/time.hE<gt>>\n"
13895 "B<#include E<lt>sys/resource.hE<gt>>\n"
13896 "B<#include E<lt>sys/wait.hE<gt>>\n"
13897 msgstr ""
13898 "B<#include E<lt>sys/types.hE<gt>>\n"
13899 "B<#include E<lt>sys/time.hE<gt>>\n"
13900 "B<#include E<lt>sys/resource.hE<gt>>\n"
13901 "B<#include E<lt>sys/wait.hE<gt>>\n"
13902
13903 #. type: Plain text
13904 #: build/C/man2/wait4.2:45
13905 #, no-wrap
13906 msgid ""
13907 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
13908 "B<            struct rusage *>I<rusage>B<);>\n"
13909 msgstr ""
13910 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
13911 "B<            struct rusage *>I<rusage>B<);>\n"
13912
13913 #. type: Plain text
13914 #: build/C/man2/wait4.2:48
13915 #, no-wrap
13916 msgid ""
13917 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
13918 "B<            struct rusage *>I<rusage>B<);>\n"
13919 msgstr ""
13920 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
13921 "B<            struct rusage *>I<rusage>B<);>\n"
13922
13923 #. type: Plain text
13924 #: build/C/man2/wait4.2:57
13925 msgid "B<wait3>():"
13926 msgstr "B<wait3>():"
13927
13928 #. type: Plain text
13929 #: build/C/man2/wait4.2:63
13930 msgid "B<wait4>():"
13931 msgstr "B<wait4>():"
13932
13933 #. type: Plain text
13934 #: build/C/man2/wait4.2:65
13935 msgid "_BSD_SOURCE"
13936 msgstr "_BSD_SOURCE"
13937
13938 #. type: Plain text
13939 #: build/C/man2/wait4.2:73
13940 msgid ""
13941 "These functions are obsolete; use B<waitpid>(2)  or B<waitid>(2)  in new "
13942 "programs."
13943 msgstr ""
13944
13945 #. type: Plain text
13946 #: build/C/man2/wait4.2:83
13947 msgid ""
13948 "The B<wait3>()  and B<wait4>()  system calls are similar to B<waitpid>(2), "
13949 "but additionally return resource usage information about the child in the "
13950 "structure pointed to by I<rusage>."
13951 msgstr ""
13952 "システムコール B<wait3>()  と B<wait4>()  は B<waitpid>(2)  と同様の動作をす"
13953 "る。それに加え、子プロセスのリソース使用状況の情報を I<rusage> が指す構造体に"
13954 "入れて返す。"
13955
13956 #. type: Plain text
13957 #: build/C/man2/wait4.2:89
13958 msgid ""
13959 "Other than the use of the I<rusage> argument, the following B<wait3>()  call:"
13960 msgstr "I<rusage> を使用する点を除けば、次の B<wait3>()  の呼び出し"
13961
13962 #. type: Plain text
13963 #: build/C/man2/wait4.2:92
13964 #, no-wrap
13965 msgid "    wait3(status, options, rusage);\n"
13966 msgstr "    wait3(status, options, rusage);\n"
13967
13968 #. type: Plain text
13969 #: build/C/man2/wait4.2:95 build/C/man2/wait4.2:109
13970 msgid "is equivalent to:"
13971 msgstr "は以下と等価である。"
13972
13973 #. type: Plain text
13974 #: build/C/man2/wait4.2:98
13975 #, no-wrap
13976 msgid "    waitpid(-1, status, options);\n"
13977 msgstr "    waitpid(-1, status, options);\n"
13978
13979 #. type: Plain text
13980 #: build/C/man2/wait4.2:103
13981 msgid "Similarly, the following B<wait4>()  call:"
13982 msgstr "同様に、次の B<wait4>()  の呼び出し"
13983
13984 #. type: Plain text
13985 #: build/C/man2/wait4.2:106
13986 #, no-wrap
13987 msgid "    wait4(pid, status, options, rusage);\n"
13988 msgstr "    wait4(pid, status, options, rusage);\n"
13989
13990 #. type: Plain text
13991 #: build/C/man2/wait4.2:112
13992 #, no-wrap
13993 msgid "    waitpid(pid, status, options);\n"
13994 msgstr "    waitpid(pid, status, options);\n"
13995
13996 #. type: Plain text
13997 #: build/C/man2/wait4.2:122
13998 msgid ""
13999 "In other words, B<wait3>()  waits of any child, while B<wait4>()  can be "
14000 "used to select a specific child, or children, on which to wait.  See B<wait>"
14001 "(2)  for further details."
14002 msgstr ""
14003 "言い換えると、 B<wait3>()  は全ての子プロセスを対象に待つが、 B<wait4>()  で"
14004 "は特定の子プロセス (複数可) を選んで待つことができる。"
14005
14006 #. type: Plain text
14007 #: build/C/man2/wait4.2:132
14008 msgid ""
14009 "If I<rusage> is not NULL, the I<struct rusage> to which it points will be "
14010 "filled with accounting information about the child.  See B<getrusage>(2)  "
14011 "for details."
14012 msgstr ""
14013 "I<rusage> が NULL でない場合、 I<rusage> が指す I<rusage 構造体> には子プロセ"
14014 "スのアカウント情報が格納される。 詳しくは B<getrusage>(2)  を参照のこと。"
14015
14016 #. type: Plain text
14017 #: build/C/man2/wait4.2:135 build/C/man2/wait4.2:138
14018 msgid "As for B<waitpid>(2)."
14019 msgstr "B<waitpid>(2)  と同様。"
14020
14021 #. type: Plain text
14022 #: build/C/man2/wait4.2:140
14023 msgid "4.3BSD."
14024 msgstr "4.3BSD."
14025
14026 #. type: Plain text
14027 #: build/C/man2/wait4.2:147
14028 msgid ""
14029 "SUSv1 included a specification of B<wait3>(); SUSv2 included B<wait3>(), but "
14030 "marked it LEGACY; SUSv3 removed it."
14031 msgstr ""
14032
14033 #. type: Plain text
14034 #: build/C/man2/wait4.2:159
14035 msgid ""
14036 "Including I<E<lt>sys/time.hE<gt>> is not required these days, but increases "
14037 "portability.  (Indeed, I<E<lt>sys/resource.hE<gt>> defines the I<rusage> "
14038 "structure with fields of type I<struct timeval> defined in I<E<lt>sys/time."
14039 "hE<gt>>.)"
14040 msgstr ""
14041 "現在では I<E<lt>sys/time.hE<gt>> をインクルードする必要はないが、インクルード"
14042 "しておくと 移植性を高めることができる (実際には I<E<lt>sys/resource.hE<gt>> "
14043 "で I<rusage> 構造体が定義されているが、そのフィールドで使用されている "
14044 "I<struct timeval> 型は I<E<lt>sys/time.hE<gt>> で定義されている)。"
14045
14046 #. type: Plain text
14047 #: build/C/man2/wait4.2:165
14048 msgid ""
14049 "On Linux, B<wait3>()  is a library function implemented on top of the "
14050 "B<wait4>()  system call."
14051 msgstr ""
14052 "Linux では、 B<wait3>()  はライブラリ関数であり、 B<wait4>()  システムコール"
14053 "を使って実装されている。"
14054
14055 #. type: Plain text
14056 #: build/C/man2/wait4.2:172
14057 msgid ""
14058 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
14059 "B<signal>(7)"
14060 msgstr ""
14061 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
14062 "B<signal>(7)"
14063
14064 #~ msgid "2009-09-15"
14065 #~ msgstr "2009-09-15"
14066
14067 #~ msgid "2011-09-18"
14068 #~ msgstr "2011-09-18"
14069
14070 #~ msgid "2007-07-05"
14071 #~ msgstr "2007-07-05"
14072
14073 #~ msgid "2012-04-26"
14074 #~ msgstr "2012-04-26"
14075
14076 #~ msgid "2010-09-10"
14077 #~ msgstr "2010-09-10"
14078
14079 #~ msgid "2012-05-02"
14080 #~ msgstr "2012-05-02"
14081
14082 #~ msgid "2008-07-11"
14083 #~ msgstr "2008-07-11"
14084
14085 #~ msgid ""
14086 #~ "B<SIGIO> and B<SIGLOST> have the same value.  The latter is commented out "
14087 #~ "in the kernel source, but the build process of some software still thinks "
14088 #~ "that signal 29 is B<SIGLOST>."
14089 #~ msgstr ""
14090 #~ "B<SIGIO> と B<SIGLOST> は同じ値を持っている。 B<SIGLOST> はカーネルのソー"
14091 #~ "スではコメントアウトされている。 しかし、ソフトウェアによってはビルドの過"
14092 #~ "程でシグナル 29 を B<SIGLOST> とみなしてしまうものがある。"
14093
14094 #~ msgid "2011-10-03"
14095 #~ msgstr "2011-10-03"
14096
14097 #~ msgid "B<kill>(2)  or B<raise>(3)"
14098 #~ msgstr "B<kill>(2)  または B<raise>(3)"
14099
14100 #~ msgid "queued SIGIO"
14101 #~ msgstr "キューイングされた SIGIO"
14102
14103 #~ msgid "EXAMPLES"
14104 #~ msgstr "例"
14105
14106 #~ msgid "POSIX.1b signals and B<SIGCHLD> fill in I<si_pid> and I<si_uid>."
14107 #~ msgstr ""
14108 #~ "POSIX.1b シグナルと B<SIGCHLD> は I<si_pid> と I<si_uid> を設定する。"
14109
14110 #~ msgid ""
14111 #~ "I<si_int> and I<si_ptr> are specified by the sender of the POSIX.1b "
14112 #~ "signal.  See B<sigqueue>(2)  for more details."
14113 #~ msgstr ""
14114 #~ "I<si_int> と I<si_ptr> は POSIX.1b シグナルの送信者によって指定される。 詳"
14115 #~ "細は B<sigqueue>(2)  を参照のこと。"
14116
14117 #~ msgid ""
14118 #~ "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, and B<SIGBUS> fill in I<si_addr> with "
14119 #~ "the address of the fault.  B<SIGPOLL> fills in I<si_band> and I<si_fd>."
14120 #~ msgstr ""
14121 #~ "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS> は I<si_addr> にエラーが発生し"
14122 #~ "たアドレスを設定する。 SIGPOLL は I<si_band> と I<si_fd> を設定する。"