OSDN Git Service

(split) LDP: Update ja.po (editorical changes only)
[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-03-22 01:06+0900\n"
10 "PO-Revision-Date: 2013-03-24 01:08+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:26 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:27 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:29 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:35 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:55
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:66
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:82 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:85
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 msgid ""
321 "The use of I<sighandler_t> is a GNU extension; this type is only defined if "
322 "the B<_GNU_SOURCE> feature test macro is defined."
323 msgstr ""
324 "I<sighandler_t> を使っているのは GNU による拡張である。 この型は機能検査マク"
325 "ロ B<_GNU_SOURCE> を定義した場合にのみ定義される。"
326
327 #. type: SH
328 #: build/C/man3/bsd_signal.3:94 build/C/man2/eventfd.2:417
329 #: build/C/man2/getitimer.2:239 build/C/man3/gsignal.3:103
330 #: build/C/man2/kill.2:170 build/C/man2/killpg.2:134 build/C/man2/pause.2:59
331 #: build/C/man2/prctl.2:970 build/C/man3/profil.3:79
332 #: build/C/man3/psignal.3:113 build/C/man3/raise.3:77
333 #: build/C/man2/rt_sigqueueinfo.2:188 build/C/man2/s390_runtime_instr.2:89
334 #: build/C/man2/sgetmask.2:80 build/C/man2/sigaction.2:791
335 #: build/C/man2/sigaltstack.2:232 build/C/man7/sigevent.7:132
336 #: build/C/man3/siginterrupt.3:91 build/C/man2/signal.2:275
337 #: build/C/man7/signal.7:850 build/C/man2/signalfd.2:433
338 #: build/C/man3/sigpause.3:98 build/C/man2/sigpending.2:84
339 #: build/C/man2/sigprocmask.2:141 build/C/man3/sigqueue.3:149
340 #: build/C/man2/sigreturn.2:74 build/C/man3/sigset.3:266
341 #: build/C/man3/sigsetops.3:168 build/C/man2/sigsuspend.2:106
342 #: build/C/man3/sigvec.3:252 build/C/man3/sigwait.3:89
343 #: build/C/man2/sigwaitinfo.2:187 build/C/man3/sysv_signal.3:87
344 #: build/C/man2/timer_create.2:399 build/C/man2/timer_delete.2:69
345 #: build/C/man2/timer_getoverrun.2:131 build/C/man2/timer_settime.2:212
346 #: build/C/man2/timerfd_create.2:541 build/C/man2/tkill.2:131
347 #: build/C/man2/wait.2:619 build/C/man2/wait4.2:165
348 #, no-wrap
349 msgid "SEE ALSO"
350 msgstr "関連項目"
351
352 #. type: Plain text
353 #: build/C/man3/bsd_signal.3:99
354 msgid "B<sigaction>(2), B<signal>(2), B<sysv_signal>(3), B<signal>(7)"
355 msgstr "B<sigaction>(2), B<signal>(2), B<sysv_signal>(3), B<signal>(7)"
356
357 #. type: SH
358 #: build/C/man3/bsd_signal.3:99 build/C/man2/eventfd.2:428
359 #: build/C/man2/getitimer.2:246 build/C/man3/gsignal.3:107
360 #: build/C/man2/kill.2:180 build/C/man2/killpg.2:140 build/C/man2/pause.2:64
361 #: build/C/man2/prctl.2:973 build/C/man3/profil.3:84
362 #: build/C/man3/psignal.3:118 build/C/man3/raise.3:84
363 #: build/C/man2/rt_sigqueueinfo.2:196 build/C/man2/s390_runtime_instr.2:92
364 #: build/C/man2/sgetmask.2:83 build/C/man2/sigaction.2:810
365 #: build/C/man2/sigaltstack.2:239 build/C/man7/sigevent.7:142
366 #: build/C/man3/siginterrupt.3:93 build/C/man2/signal.2:294
367 #: build/C/man7/signal.7:883 build/C/man2/signalfd.2:446
368 #: build/C/man3/sigpause.3:106 build/C/man2/sigpending.2:92
369 #: build/C/man2/sigprocmask.2:152 build/C/man3/sigqueue.3:157
370 #: build/C/man2/sigreturn.2:79 build/C/man3/sigset.3:276
371 #: build/C/man3/sigsetops.3:173 build/C/man2/sigsuspend.2:116
372 #: build/C/man3/sigvec.3:262 build/C/man3/sigwait.3:97
373 #: build/C/man2/sigwaitinfo.2:199 build/C/man3/sysv_signal.3:92
374 #: build/C/man2/timer_create.2:414 build/C/man2/timer_delete.2:75
375 #: build/C/man2/timer_getoverrun.2:141 build/C/man2/timer_settime.2:216
376 #: build/C/man2/timerfd_create.2:553 build/C/man2/tkill.2:136
377 #: build/C/man2/wait.2:631 build/C/man2/wait4.2:172
378 #, no-wrap
379 msgid "COLOPHON"
380 msgstr "この文書について"
381
382 #. type: Plain text
383 #: build/C/man3/bsd_signal.3:106 build/C/man2/eventfd.2:435
384 #: build/C/man2/getitimer.2:253 build/C/man3/gsignal.3:114
385 #: build/C/man2/kill.2:187 build/C/man2/killpg.2:147 build/C/man2/pause.2:71
386 #: build/C/man2/prctl.2:980 build/C/man3/profil.3:91
387 #: build/C/man3/psignal.3:125 build/C/man3/raise.3:91
388 #: build/C/man2/rt_sigqueueinfo.2:203 build/C/man2/s390_runtime_instr.2:99
389 #: build/C/man2/sgetmask.2:90 build/C/man2/sigaction.2:817
390 #: build/C/man2/sigaltstack.2:246 build/C/man7/sigevent.7:149
391 #: build/C/man3/siginterrupt.3:100 build/C/man2/signal.2:301
392 #: build/C/man7/signal.7:890 build/C/man2/signalfd.2:453
393 #: build/C/man3/sigpause.3:113 build/C/man2/sigpending.2:99
394 #: build/C/man2/sigprocmask.2:159 build/C/man3/sigqueue.3:164
395 #: build/C/man2/sigreturn.2:86 build/C/man3/sigset.3:283
396 #: build/C/man3/sigsetops.3:180 build/C/man2/sigsuspend.2:123
397 #: build/C/man3/sigvec.3:269 build/C/man3/sigwait.3:104
398 #: build/C/man2/sigwaitinfo.2:206 build/C/man3/sysv_signal.3:99
399 #: build/C/man2/timer_create.2:421 build/C/man2/timer_delete.2:82
400 #: build/C/man2/timer_getoverrun.2:148 build/C/man2/timer_settime.2:223
401 #: build/C/man2/timerfd_create.2:560 build/C/man2/tkill.2:143
402 #: build/C/man2/wait.2:638 build/C/man2/wait4.2:179
403 msgid ""
404 "This page is part of release 3.50 of the Linux I<man-pages> project.  A "
405 "description of the project, and information about reporting bugs, can be "
406 "found at http://www.kernel.org/doc/man-pages/."
407 msgstr ""
408 "この man ページは Linux I<man-pages> プロジェクトのリリース 3.50 の一部\n"
409 "である。プロジェクトの説明とバグ報告に関する情報は\n"
410 "http://www.kernel.org/doc/man-pages/ に書かれている。"
411
412 #. type: TH
413 #: build/C/man2/eventfd.2:22
414 #, no-wrap
415 msgid "EVENTFD"
416 msgstr "EVENTFD"
417
418 #. type: TH
419 #: build/C/man2/eventfd.2:22
420 #, no-wrap
421 msgid "2010-08-30"
422 msgstr "2010-08-30"
423
424 #. type: TH
425 #: build/C/man2/eventfd.2:22 build/C/man2/getitimer.2:12
426 #: build/C/man2/kill.2:44 build/C/man2/killpg.2:42 build/C/man2/pause.2:30
427 #: build/C/man2/prctl.2:52 build/C/man3/profil.3:28
428 #: build/C/man2/rt_sigqueueinfo.2:25 build/C/man2/sgetmask.2:26
429 #: build/C/man2/sigaction.2:47 build/C/man2/sigaltstack.2:27
430 #: build/C/man2/signal.2:36 build/C/man7/signal.7:46
431 #: build/C/man2/signalfd.2:20 build/C/man3/sigpause.3:25
432 #: build/C/man2/sigpending.2:29 build/C/man2/sigprocmask.2:29
433 #: build/C/man3/sigqueue.3:28 build/C/man2/sigreturn.2:29
434 #: build/C/man3/sigset.3:26 build/C/man3/sigsetops.3:31
435 #: build/C/man2/sigsuspend.2:29 build/C/man3/sigvec.3:26
436 #: build/C/man3/sigwait.3:26 build/C/man2/sigwaitinfo.2:25
437 #: build/C/man2/timer_create.2:31 build/C/man2/timer_delete.2:26
438 #: build/C/man2/timer_getoverrun.2:26 build/C/man2/timer_settime.2:26
439 #: build/C/man2/timerfd_create.2:21 build/C/man2/tkill.2:29
440 #: build/C/man2/wait.2:49 build/C/man2/wait4.2:33
441 #, no-wrap
442 msgid "Linux"
443 msgstr "Linux"
444
445 #. type: Plain text
446 #: build/C/man2/eventfd.2:25
447 msgid "eventfd - create a file descriptor for event notification"
448 msgstr "eventfd - イベント通知用のファイルディスクリプタを生成する"
449
450 #. type: Plain text
451 #: build/C/man2/eventfd.2:27
452 msgid "B<#include E<lt>sys/eventfd.hE<gt>>"
453 msgstr "B<#include E<lt>sys/eventfd.hE<gt>>"
454
455 #. type: Plain text
456 #: build/C/man2/eventfd.2:29
457 msgid "B<int eventfd(unsigned int >I<initval>B<, int >I<flags>B<);>"
458 msgstr "B<int eventfd(unsigned int >I<initval>B<, int >I<flags>B<);>"
459
460 #. type: Plain text
461 #: build/C/man2/eventfd.2:39
462 #, fuzzy
463 #| msgid ""
464 #| "B<eventfd>()  creates an \"eventfd object\" that can be used as an event "
465 #| "wait/notify mechanism by userspace applications, and by the kernel to "
466 #| "notify userspace applications of events.  The object contains an unsigned "
467 #| "64-bit integer (I<uint64_t>)  counter that is maintained by the kernel.  "
468 #| "This counter is initialized with the value specified in the argument "
469 #| "I<initval>."
470 msgid ""
471 "B<eventfd>()  creates an \"eventfd object\" that can be used as an event "
472 "wait/notify mechanism by user-space applications, and by the kernel to "
473 "notify user-space applications of events.  The object contains an unsigned "
474 "64-bit integer (I<uint64_t>)  counter that is maintained by the kernel.  "
475 "This counter is initialized with the value specified in the argument "
476 "I<initval>."
477 msgstr ""
478 "B<eventfd>()  は \"eventfd オブジェクト\" を生成する。 eventfd オブジェクトは"
479 "ユーザ空間アプリケーションがイベント待ち受け/通知用の 仕組みとして使うことが"
480 "できる。また、カーネルがユーザ空間アプリケーションに イベントを通知するために"
481 "も使うことができる。 このオブジェクトには、unsigned の 64 ビット整数 "
482 "(I<uint64_t>)  型のカウンタが含まれており、このカウンタはカーネルにより管理さ"
483 "れる。 このカウンタは I<initval> 引き数で指定された値で初期化される。"
484
485 #. type: Plain text
486 #: build/C/man2/eventfd.2:44
487 msgid ""
488 "The following values may be bitwise ORed in I<flags> to change the behaviour "
489 "of B<eventfd>():"
490 msgstr ""
491 "以下の値のいくつかをビット単位の論理和 (OR) で指定することで、\n"
492 "B<eventfd>() の振舞いを変更することができる。"
493
494 #. type: TP
495 #: build/C/man2/eventfd.2:44
496 #, no-wrap
497 msgid "B<EFD_CLOEXEC> (since Linux 2.6.27)"
498 msgstr "B<EFD_CLOEXEC> (Linux 2.6.27 以降)"
499
500 #. type: Plain text
501 #: build/C/man2/eventfd.2:54 build/C/man2/signalfd.2:95
502 #: build/C/man2/timerfd_create.2:103
503 msgid ""
504 "Set the close-on-exec (B<FD_CLOEXEC>)  flag on the new file descriptor.  See "
505 "the description of the B<O_CLOEXEC> flag in B<open>(2)  for reasons why this "
506 "may be useful."
507 msgstr ""
508 "新しいファイルディスクリプタに対して close-on-exec (B<FD_CLOEXEC>)  フラグを"
509 "セットする。 このフラグが役に立つ理由については、 B<open>(2)  の "
510 "B<O_CLOEXEC> フラグの説明を参照のこと。"
511
512 #. type: TP
513 #: build/C/man2/eventfd.2:54
514 #, no-wrap
515 msgid "B<EFD_NONBLOCK> (since Linux 2.6.27)"
516 msgstr "B<EFD_NONBLOCK> (Linux 2.6.27 以降)"
517
518 #. type: Plain text
519 #: build/C/man2/eventfd.2:62 build/C/man2/signalfd.2:85
520 #: build/C/man2/timerfd_create.2:93
521 msgid ""
522 "Set the B<O_NONBLOCK> file status flag on the new open file description.  "
523 "Using this flag saves extra calls to B<fcntl>(2)  to achieve the same result."
524 msgstr ""
525 "新しく生成されるオープンファイル記述 (open file description) の "
526 "B<O_NONBLOCK> ファイルステータスフラグをセットする。 このフラグを使うこと"
527 "で、 B<O_NONBLOCK> をセットするために B<fcntl>(2)  を追加で呼び出す必要がなく"
528 "なる。"
529
530 #. type: TP
531 #: build/C/man2/eventfd.2:62
532 #, no-wrap
533 msgid "B<EFD_SEMAPHORE> (since Linux 2.6.30)"
534 msgstr "B<EFD_SEMAPHORE> (Linux 2.6.30 以降)"
535
536 #. type: Plain text
537 #: build/C/man2/eventfd.2:66
538 msgid ""
539 "Provide semaphore-like semantics for reads from the new file descriptor.  "
540 "See below."
541 msgstr ""
542 "新しいファイルディスクリプタからの読み出しにおいて、セマフォ風の動作を行"
543 "う。\n"
544 "下記参照。"
545
546 #. type: Plain text
547 #: build/C/man2/eventfd.2:70 build/C/man2/signalfd.2:99
548 msgid ""
549 "In Linux up to version 2.6.26, the I<flags> argument is unused, and must be "
550 "specified as zero."
551 msgstr ""
552 "バージョン 2.6.26 以前の Linux では、 I<flags> 引き数は未使用であり、0 を指定"
553 "しなければならない。"
554
555 #. type: Plain text
556 #: build/C/man2/eventfd.2:76
557 msgid ""
558 "As its return value, B<eventfd>()  returns a new file descriptor that can be "
559 "used to refer to the eventfd object.  The following operations can be "
560 "performed on the file descriptor:"
561 msgstr ""
562 "B<eventfd>()  は eventfd オブジェクトを参照するのに使用できる新しいファイル"
563 "ディスクリプタ を返す。返されたファイルディスクリプタに対しては以下の操作を実"
564 "行できる。"
565
566 #. type: TP
567 #: build/C/man2/eventfd.2:76 build/C/man2/signalfd.2:102
568 #: build/C/man2/timerfd_create.2:211
569 #, no-wrap
570 msgid "B<read>(2)"
571 msgstr "B<read>(2)"
572
573 #. type: Plain text
574 #: build/C/man2/eventfd.2:86
575 msgid ""
576 "Each successful B<read>(2)  returns an 8-byte integer.  A B<read>(2)  will "
577 "fail with the error B<EINVAL> if the size of the supplied buffer is less "
578 "than 8 bytes."
579 msgstr ""
580 "B<read>(2) は成功すると、8 バイトの整数を返す。\n"
581 "渡されたバッファの大きさが 8 バイト未満の場合、\n"
582 "B<read>(2)  はエラー B<EINVAL> で失敗する。"
583
584 #. type: Plain text
585 #: build/C/man2/eventfd.2:91
586 msgid ""
587 "The value returned by B<read>(2)  is in host byte order, i.e., the native "
588 "byte order for integers on the host machine."
589 msgstr ""
590 "B<read>(2) が返す値は、ホストバイトオーダ、つまり\n"
591 "そのホストマシンにおける整数の通常のバイトオーダである。"
592
593 #. type: Plain text
594 #: build/C/man2/eventfd.2:98
595 msgid ""
596 "The semantics of B<read>(2)  depend on whether the eventfd counter currently "
597 "has a nonzero value and whether the B<EFD_SEMAPHORE> flag was specified when "
598 "creating the eventfd file descriptor:"
599 msgstr ""
600 "B<read>(2) の動作は、 eventfd カウンタの現在の値が 0 以外であるかと、\n"
601 "eventfd ファイルディスクリプタを作成する際に B<EFD_SEMAPHORE> フラグが\n"
602 "指定されたか、により変化する。"
603
604 #. type: IP
605 #: build/C/man2/eventfd.2:99 build/C/man2/eventfd.2:106
606 #: build/C/man2/eventfd.2:113 build/C/man2/eventfd.2:158
607 #: build/C/man2/eventfd.2:168 build/C/man2/eventfd.2:178
608 #: build/C/man2/prctl.2:827 build/C/man2/prctl.2:832 build/C/man2/prctl.2:837
609 #: build/C/man2/prctl.2:847 build/C/man3/psignal.3:105
610 #: build/C/man3/psignal.3:109 build/C/man2/sigaction.2:298
611 #: build/C/man2/sigaction.2:313 build/C/man2/sigaction.2:329
612 #: build/C/man2/sigaction.2:344 build/C/man2/sigaction.2:391
613 #: build/C/man2/sigaction.2:427 build/C/man2/signal.2:68
614 #: build/C/man2/signal.2:73 build/C/man2/signal.2:80 build/C/man2/signal.2:221
615 #: build/C/man2/signal.2:225 build/C/man2/signal.2:264
616 #: build/C/man7/signal.7:149 build/C/man7/signal.7:157
617 #: build/C/man7/signal.7:615 build/C/man7/signal.7:617
618 #: build/C/man7/signal.7:638 build/C/man7/signal.7:653
619 #: build/C/man7/signal.7:657 build/C/man7/signal.7:664
620 #: build/C/man7/signal.7:680 build/C/man7/signal.7:686
621 #: build/C/man7/signal.7:693 build/C/man7/signal.7:698
622 #: build/C/man7/signal.7:717 build/C/man7/signal.7:736
623 #: build/C/man7/signal.7:743 build/C/man7/signal.7:752
624 #: build/C/man7/signal.7:760 build/C/man7/signal.7:766
625 #: build/C/man7/signal.7:771 build/C/man7/signal.7:791
626 #: build/C/man7/signal.7:810 build/C/man7/signal.7:813
627 #: build/C/man7/signal.7:816 build/C/man7/signal.7:819
628 #: build/C/man7/signal.7:824 build/C/man7/signal.7:830
629 #: build/C/man7/signal.7:834 build/C/man3/sigwait.3:62
630 #: build/C/man3/sigwait.3:67 build/C/man2/timer_create.2:216
631 #: build/C/man2/timer_create.2:219 build/C/man2/timer_create.2:222
632 #: build/C/man2/timer_create.2:226 build/C/man2/timer_create.2:229
633 #: build/C/man2/timer_create.2:235 build/C/man2/timer_create.2:239
634 #, no-wrap
635 msgid "*"
636 msgstr "*"
637
638 #. type: Plain text
639 #: build/C/man2/eventfd.2:106
640 msgid ""
641 "If B<EFD_SEMAPHORE> was not specified and the eventfd counter has a nonzero "
642 "value, then a B<read>(2)  returns 8 bytes containing that value, and the "
643 "counter's value is reset to zero."
644 msgstr ""
645 "B<EFD_SEMAPHORE> が指定されておらず、eventfd カウンタが 0 以外の値\n"
646 "の場合、 B<read>(2) はカウンタ値を格納した 8 バイトの値を返し、\n"
647 "カウンタ値は 0 にリセットされる。"
648
649 #. type: Plain text
650 #: build/C/man2/eventfd.2:113
651 msgid ""
652 "If B<EFD_SEMAPHORE> was specified and the eventfd counter has a nonzero "
653 "value, then a B<read>(2)  returns 8 bytes containing the value 1, and the "
654 "counter's value is decremented by 1."
655 msgstr ""
656 "B<EFD_SEMAPHORE> が指定されていて eventfd カウンタが 0 以外の値の場合、\n"
657 "B<read>(2) は値 1 の 8 バイト値を返し、カウンタ値は 1 減算される。"
658
659 #. type: Plain text
660 #: build/C/man2/eventfd.2:123
661 msgid ""
662 "If the eventfd counter is zero at the time of the call to B<read>(2), then "
663 "the call either blocks until the counter becomes nonzero (at which time, the "
664 "B<read>(2)  proceeds as described above)  or fails with the error B<EAGAIN> "
665 "if the file descriptor has been made nonblocking."
666 msgstr ""
667 "B<read>(2) を呼び出した時点で eventfd カウンタが 0 の場合、 B<read>(2)\n"
668 "はカウンタが 0 以外になるまで停止 (block) する (0 以外になった時点で\n"
669 "B<read>(2) は上記で述べた通り実行を再開する)、 もしくはファイルディスク\n"
670 "リプタが非停止 (nonblocking) に設定されている場合はエラー B<EAGAIN>で\n"
671 "失敗する。"
672
673 #. type: TP
674 #: build/C/man2/eventfd.2:124
675 #, no-wrap
676 msgid "B<write>(2)"
677 msgstr "B<write>(2)"
678
679 #. type: Plain text
680 #: build/C/man2/eventfd.2:141
681 msgid ""
682 "A B<write>(2)  call adds the 8-byte integer value supplied in its buffer to "
683 "the counter.  The maximum value that may be stored in the counter is the "
684 "largest unsigned 64-bit value minus 1 (i.e., 0xfffffffffffffffe).  If the "
685 "addition would cause the counter's value to exceed the maximum, then the "
686 "B<write>(2)  either blocks until a B<read>(2)  is performed on the file "
687 "descriptor, or fails with the error B<EAGAIN> if the file descriptor has "
688 "been made nonblocking."
689 msgstr ""
690 "B<write>(2)  は、引き数のバッファで渡された 8 バイトの整数値をカウンタに加算"
691 "する。 カウンタに格納可能な最大値は unsigned の 64 ビット整数の最大値から 1 "
692 "を引いた値 (すなわち 0xfffffffffffffffe) である。 加算を行うとカウンタ値が最"
693 "大値を超過する場合には、 そのファイルディスクリプタに対して B<read>(2)  が実"
694 "行されるまで、 B<write>(2)  は停止 (block) する、 もしくはファイルディスクリ"
695 "プタが非停止 (nonblocking)  に設定されている場合はエラー B<EAGAIN> で失敗す"
696 "る。"
697
698 #. type: Plain text
699 #: build/C/man2/eventfd.2:148
700 msgid ""
701 "A B<write>(2)  will fail with the error B<EINVAL> if the size of the "
702 "supplied buffer is less than 8 bytes, or if an attempt is made to write the "
703 "value 0xffffffffffffffff."
704 msgstr ""
705 "渡されたバッファの大きさが 8 バイト未満の場合、もしくは 値 "
706 "0xffffffffffffffff を書き込もうとした場合、 B<write>(2)  はエラー B<EINVAL> "
707 "で失敗する。"
708
709 #. type: TP
710 #: build/C/man2/eventfd.2:148 build/C/man2/signalfd.2:140
711 #: build/C/man2/timerfd_create.2:244
712 #, no-wrap
713 msgid "B<poll>(2), B<select>(2) (and similar)"
714 msgstr "B<poll>(2), B<select>(2) (と同様の操作)"
715
716 #. type: Plain text
717 #: build/C/man2/eventfd.2:157
718 msgid ""
719 "The returned file descriptor supports B<poll>(2)  (and analogously B<epoll>"
720 "(7))  and B<select>(2), as follows:"
721 msgstr ""
722 "返されたファイルディスクリプタは、 B<poll>(2)  (B<epoll>(7)  も同じ) や "
723 "B<select>(2)  をサポートしており、以下のような動作をする。"
724
725 #. type: Plain text
726 #: build/C/man2/eventfd.2:168
727 msgid ""
728 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
729 "B<poll>(2)  B<POLLIN> flag)  if the counter has a value greater than 0."
730 msgstr ""
731 "カウンタが 0 より大きい値の場合、 ファイルディスクリプタは読み出し可能となる "
732 "(B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
733
734 #. type: Plain text
735 #: build/C/man2/eventfd.2:178
736 msgid ""
737 "The file descriptor is writable (the B<select>(2)  I<writefds> argument; the "
738 "B<poll>(2)  B<POLLOUT> flag)  if it is possible to write a value of at least "
739 "\"1\" without blocking."
740 msgstr ""
741 "少なくとも値 \"1\" を、停止 (block) を伴わずに書き込める場合、 ファイルディス"
742 "クリプタは書き込み可能となる (B<select>(2)  の I<writefds> 引き数や B<poll>"
743 "(2)  の B<POLLOUT> フラグ)。"
744
745 #. type: Plain text
746 #: build/C/man2/eventfd.2:198
747 msgid ""
748 "If an overflow of the counter value was detected, then B<select>(2)  "
749 "indicates the file descriptor as being both readable and writable, and "
750 "B<poll>(2)  returns a B<POLLERR> event.  As noted above, B<write>(2)  can "
751 "never overflow the counter.  However an overflow can occur if 2^64 eventfd "
752 "\"signal posts\" were performed by the KAIO subsystem (theoretically "
753 "possible, but practically unlikely).  If an overflow has occurred, then "
754 "B<read>(2)  will return that maximum I<uint64_t> value (i.e., "
755 "0xffffffffffffffff)."
756 msgstr ""
757 "カウンタ値のオーバーフローが検出された場合、 B<select>(2)  はファイルディスク"
758 "リプタは読み出し可能と書き込み可能の両方を通知し、 B<poll>(2)  は B<POLLERR> "
759 "イベントを返す。 上述の通り、 B<write>(2)  でカウンタがオーバーフローすること"
760 "は決してない。 しかしながら、 KAIO サブシステムによって 2^64 回の eventfd "
761 "\"signal posts\" が 実行された場合にはオーバーフローが起こり得る (理論的には"
762 "あり得るが、実用的にはあり得ない)。 オーバーフローが発生した場合、 B<read>"
763 "(2)  は I<uint64_t> の最大値 (すなわち 0xffffffffffffffff) を返す。"
764
765 #. type: Plain text
766 #: build/C/man2/eventfd.2:205
767 #, fuzzy
768 #| msgid ""
769 #| "The eventfd file descriptor also supports the other file-descriptor "
770 #| "multiplexing APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
771 msgid ""
772 "The eventfd file descriptor also supports the other file-descriptor "
773 "multiplexing APIs: B<pselect>(2)  and B<ppoll>(2)."
774 msgstr ""
775 "eventfd ファイルディスクリプタは、これ以外のファイルディスクリプタ 多重 API "
776 "である B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
777
778 #. type: TP
779 #: build/C/man2/eventfd.2:205 build/C/man2/signalfd.2:160
780 #: build/C/man2/timerfd_create.2:262
781 #, no-wrap
782 msgid "B<close>(2)"
783 msgstr "B<close>(2)"
784
785 #. type: Plain text
786 #: build/C/man2/eventfd.2:210
787 msgid ""
788 "When the file descriptor is no longer required it should be closed.  When "
789 "all file descriptors associated with the same eventfd object have been "
790 "closed, the resources for object are freed by the kernel."
791 msgstr ""
792 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
793 "る。 同じ eventfd オブジェクトに関連付けられたファイルディスクリプタが全て ク"
794 "ローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
795
796 #. type: Plain text
797 #: build/C/man2/eventfd.2:222
798 msgid ""
799 "A copy of the file descriptor created by B<eventfd>()  is inherited by the "
800 "child produced by B<fork>(2).  The duplicate file descriptor is associated "
801 "with the same eventfd object.  File descriptors created by B<eventfd>()  are "
802 "preserved across B<execve>(2), unless the close-on-exec flag has been set."
803 msgstr ""
804 "B<fork>(2) で生成された子プロセスは、 B<eventfd>() で生成されたファイル\n"
805 "ディスクリプタのコピーを継承する。 複製されたファイルディスクリプタは同\n"
806 "じ eventfd オブジェクトに関連付けられる。\n"
807 "close-on-exec フラグが設定されていない場合、 B<execve>(2) の前後で\n"
808 "B<eventfd>() で生成されたファイルディスクリプタは保持される。"
809
810 #. type: Plain text
811 #: build/C/man2/eventfd.2:229
812 msgid ""
813 "On success, B<eventfd>()  returns a new eventfd file descriptor.  On error, "
814 "-1 is returned and I<errno> is set to indicate the error."
815 msgstr ""
816 "成功すると、 B<eventfd>()  は新規の eventfd ファイルディスクリプタを返す。 エ"
817 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
818
819 #. type: TP
820 #: build/C/man2/eventfd.2:230 build/C/man2/getitimer.2:135
821 #: build/C/man2/kill.2:105 build/C/man2/killpg.2:95 build/C/man2/prctl.2:789
822 #: build/C/man2/prctl.2:794 build/C/man2/prctl.2:806 build/C/man2/prctl.2:811
823 #: build/C/man2/prctl.2:820 build/C/man2/prctl.2:860
824 #: build/C/man2/rt_sigqueueinfo.2:141 build/C/man2/s390_runtime_instr.2:67
825 #: build/C/man2/sigaction.2:668 build/C/man2/sigaltstack.2:142
826 #: build/C/man3/siginterrupt.3:79 build/C/man2/signal.2:103
827 #: build/C/man2/signalfd.2:271 build/C/man2/signalfd.2:279
828 #: build/C/man2/sigprocmask.2:104 build/C/man3/sigqueue.3:98
829 #: build/C/man3/sigsetops.3:124 build/C/man3/sigwait.3:75
830 #: build/C/man2/sigwaitinfo.2:129 build/C/man2/timer_create.2:179
831 #: build/C/man2/timer_delete.2:61 build/C/man2/timer_getoverrun.2:91
832 #: build/C/man2/timer_settime.2:191 build/C/man2/timer_settime.2:199
833 #: build/C/man2/timerfd_create.2:305 build/C/man2/timerfd_create.2:313
834 #: build/C/man2/timerfd_create.2:349 build/C/man2/timerfd_create.2:356
835 #: build/C/man2/timerfd_create.2:362 build/C/man2/tkill.2:100
836 #: build/C/man2/wait.2:415
837 #, no-wrap
838 msgid "B<EINVAL>"
839 msgstr "B<EINVAL>"
840
841 #. type: Plain text
842 #: build/C/man2/eventfd.2:234
843 msgid "An unsupported value was specified in I<flags>."
844 msgstr "I<flags> にサポートされていない値が指定された。"
845
846 #. type: TP
847 #: build/C/man2/eventfd.2:234 build/C/man2/signalfd.2:286
848 #: build/C/man2/timerfd_create.2:320
849 #, no-wrap
850 msgid "B<EMFILE>"
851 msgstr "B<EMFILE>"
852
853 #. type: Plain text
854 #: build/C/man2/eventfd.2:237
855 msgid "The per-process limit on open file descriptors has been reached."
856 msgstr ""
857 "オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。"
858
859 #. type: TP
860 #: build/C/man2/eventfd.2:237 build/C/man2/signalfd.2:289
861 #: build/C/man2/timerfd_create.2:323
862 #, no-wrap
863 msgid "B<ENFILE>"
864 msgstr "B<ENFILE>"
865
866 #. type: Plain text
867 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
868 #: build/C/man2/timerfd_create.2:327
869 msgid ""
870 "The system-wide limit on the total number of open files has been reached."
871 msgstr "オープン済みのファイル総数がシステム全体の上限に達していた。"
872
873 #. type: TP
874 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
875 #: build/C/man2/timerfd_create.2:327
876 #, no-wrap
877 msgid "B<ENODEV>"
878 msgstr "B<ENODEV>"
879
880 #. type: Plain text
881 #: build/C/man2/eventfd.2:249 build/C/man2/signalfd.2:296
882 #: build/C/man2/timerfd_create.2:330
883 msgid "Could not mount (internal) anonymous inode device."
884 msgstr "(カーネル内の) 無名 inode デバイスをマウントできなかった。"
885
886 #. type: TP
887 #: build/C/man2/eventfd.2:249 build/C/man2/s390_runtime_instr.2:74
888 #: build/C/man2/sigaltstack.2:147 build/C/man2/signalfd.2:296
889 #: build/C/man2/timer_create.2:187 build/C/man2/timerfd_create.2:330
890 #, no-wrap
891 msgid "B<ENOMEM>"
892 msgstr "B<ENOMEM>"
893
894 #. type: Plain text
895 #: build/C/man2/eventfd.2:253
896 msgid "There was insufficient memory to create a new eventfd file descriptor."
897 msgstr ""
898 "新しい eventfd ファイルディスクリプタを生成するのに十分なメモリがなかった。"
899
900 #. type: SH
901 #: build/C/man2/eventfd.2:253 build/C/man2/prctl.2:951
902 #: build/C/man3/psignal.3:95 build/C/man2/rt_sigqueueinfo.2:169
903 #: build/C/man2/s390_runtime_instr.2:80 build/C/man2/signalfd.2:299
904 #: build/C/man3/sigqueue.3:112 build/C/man2/timer_create.2:191
905 #: build/C/man2/timer_delete.2:65 build/C/man2/timer_getoverrun.2:95
906 #: build/C/man2/timer_settime.2:205 build/C/man2/timerfd_create.2:368
907 #: build/C/man2/tkill.2:111
908 #, no-wrap
909 msgid "VERSIONS"
910 msgstr "バージョン"
911
912 #.  eventfd() is in glibc 2.7, but reportedly does not build
913 #. type: Plain text
914 #: build/C/man2/eventfd.2:266
915 msgid ""
916 "B<eventfd>()  is available on Linux since kernel 2.6.22.  Working support is "
917 "provided in glibc since version 2.8.  The B<eventfd2>()  system call (see "
918 "NOTES) is available on Linux since kernel 2.6.27.  Since version 2.9, the "
919 "glibc B<eventfd>()  wrapper will employ the B<eventfd2>()  system call, if "
920 "it is supported by the kernel."
921 msgstr ""
922 "B<eventfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
923 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<eventfd2>()  "
924 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
925 "る。 バージョン 2.9 以降では、glibc の B<eventfd>()  のラッパー関数は、カーネ"
926 "ルが対応していれば B<eventfd2>()  システムコールを利用する。"
927
928 #. type: Plain text
929 #: build/C/man2/eventfd.2:271
930 msgid "B<eventfd>()  and B<eventfd2>()  are Linux-specific."
931 msgstr "B<eventfd>()  と B<eventfd2>()  は Linux 固有である。"
932
933 #. type: Plain text
934 #: build/C/man2/eventfd.2:279
935 msgid ""
936 "Applications can use an eventfd file descriptor instead of a pipe (see "
937 "B<pipe>(2))  in all cases where a pipe is used simply to signal events.  The "
938 "kernel overhead of an eventfd file descriptor is much lower than that of a "
939 "pipe, and only one file descriptor is required (versus the two required for "
940 "a pipe)."
941 msgstr ""
942 "アプリケーションは、パイプをイベントを通知するためだけに使用している 全ての場"
943 "面において、パイプの代わりに eventfd ファイルディスクリプタを 使用することが"
944 "できる。 eventfd ファイルディスクリプタを使う方が、パイプを使う場合に比べて "
945 "カーネルでのオーバヘッドは比べるとずっと小さく、ファイルディスクリプタも 一つ"
946 "しか必要としない (パイプの場合は二つ必要である)。"
947
948 #.  or eventually syslets/threadlets
949 #. type: Plain text
950 #: build/C/man2/eventfd.2:285
951 #, fuzzy
952 #| msgid ""
953 #| "When used in the kernel, an eventfd file descriptor can provide a kernel-"
954 #| "userspace bridge allowing, for example, functionalities like KAIO (kernel "
955 #| "AIO)  to signal to a file descriptor that some operation is complete."
956 msgid ""
957 "When used in the kernel, an eventfd file descriptor can provide a bridge "
958 "from kernel to user space, allowing, for example, functionalities like KAIO "
959 "(kernel AIO)  to signal to a file descriptor that some operation is complete."
960 msgstr ""
961 "カーネル内で使用すると、eventfd ファイルディスクリプタは カーネル空間とユーザ"
962 "空間のブリッジ機能を提供することができ、 例えば KAIO (kernel AIO)  のような機"
963 "能が、あるファイルディスクリプタに何らかの操作が完了したことを 通知することが"
964 "できる。"
965
966 #. type: Plain text
967 #: build/C/man2/eventfd.2:302
968 msgid ""
969 "A key point about an eventfd file descriptor is that it can be monitored "
970 "just like any other file descriptor using B<select>(2), B<poll>(2), or "
971 "B<epoll>(7).  This means that an application can simultaneously monitor the "
972 "readiness of \"traditional\" files and the readiness of other kernel "
973 "mechanisms that support the eventfd interface.  (Without the B<eventfd>()  "
974 "interface, these mechanisms could not be multiplexed via B<select>(2), "
975 "B<poll>(2), or B<epoll>(7).)"
976 msgstr ""
977 "eventfd ファイルディスクリプタの重要な点は、 eventfd ファイルディスクリプタ"
978 "が B<select>(2), B<poll>(2), B<epoll>(7)  を使って他のファイルディスクリプタ"
979 "と全く同様に監視できる点である。 このことは、アプリケーションは「従来の "
980 "(traditional)」 ファイルの状態変化と eventfd インタフェースをサポートする他の"
981 "カーネル機構の状態変化を同時に監視 できることを意味する (B<eventfd>()  インタ"
982 "フェースがない時には、これらのカーネル機構は B<select>(2), B<poll>(2), "
983 "B<epoll>(7)  経由で多重することはできなかった)。"
984
985 #. type: SS
986 #: build/C/man2/eventfd.2:302 build/C/man2/signalfd.2:336
987 #, no-wrap
988 msgid "Underlying Linux system calls"
989 msgstr "下層にある Linux のシステムコール"
990
991 #. type: Plain text
992 #: build/C/man2/eventfd.2:316
993 msgid ""
994 "There are two underlying Linux system calls: B<eventfd>()  and the more "
995 "recent B<eventfd2>().  The former system call does not implement a I<flags> "
996 "argument.  The latter system call implements the I<flags> values described "
997 "above.  The glibc wrapper function will use B<eventfd2>()  where it is "
998 "available."
999 msgstr ""
1000 "下層にある Linux システムコールは二種類あり、 B<eventfd>()  と、もっと新しい "
1001 "B<eventfd2>()  である。 B<eventfd>()  は I<flags> 引き数を実装していない。 "
1002 "B<eventfd2>()  では上記の値の I<flags> が実装されている。 glibc のラッパー関"
1003 "数は、 B<eventfd2>()  が利用可能であれば、これを使用する。"
1004
1005 #. type: SS
1006 #: build/C/man2/eventfd.2:316
1007 #, no-wrap
1008 msgid "Additional glibc features"
1009 msgstr "glibc の追加機能"
1010
1011 #. type: Plain text
1012 #: build/C/man2/eventfd.2:320
1013 msgid ""
1014 "The GNU C library defines an additional type, and two functions that attempt "
1015 "to abstract some of the details of reading and writing on an eventfd file "
1016 "descriptor:"
1017 msgstr ""
1018 "GNU C ライブラリは、eventfd ファイルディスクリプタの読み出しと書き込みに を関"
1019 "する詳細のいくつか抽象化するために、一つの型と、二つの関数を追加で 定義してい"
1020 "る。"
1021
1022 #. type: Plain text
1023 #: build/C/man2/eventfd.2:324
1024 #, no-wrap
1025 msgid "typedef uint64_t eventfd_t;\n"
1026 msgstr "typedef uint64_t eventfd_t;\n"
1027
1028 #. type: Plain text
1029 #: build/C/man2/eventfd.2:327
1030 #, no-wrap
1031 msgid ""
1032 "int eventfd_read(int fd, eventfd_t *value);\n"
1033 "int eventfd_write(int fd, eventfd_t value);\n"
1034 msgstr ""
1035 "int eventfd_read(int fd, eventfd_t *value);\n"
1036 "int eventfd_write(int fd, eventfd_t value);\n"
1037
1038 #. type: Plain text
1039 #: build/C/man2/eventfd.2:334
1040 msgid ""
1041 "The functions perform the read and write operations on an eventfd file "
1042 "descriptor, returning 0 if the correct number of bytes was transferred, or "
1043 "-1 otherwise."
1044 msgstr ""
1045 "これらの関数は、eventfd ファイルディスクリプタに対する読み出しと 書き込みの操"
1046 "作を実行し、正しいバイト数が転送された場合には 0 を返し、そうでない場合は -1 "
1047 "を返す。"
1048
1049 #. type: SH
1050 #: build/C/man2/eventfd.2:334 build/C/man2/sigaction.2:788
1051 #: build/C/man2/sigaltstack.2:215 build/C/man2/signalfd.2:360
1052 #: build/C/man3/sigwait.3:86 build/C/man2/timer_create.2:253
1053 #: build/C/man2/timer_getoverrun.2:128 build/C/man2/timer_settime.2:209
1054 #: build/C/man2/timerfd_create.2:379 build/C/man2/wait.2:536
1055 #, no-wrap
1056 msgid "EXAMPLE"
1057 msgstr "例"
1058
1059 #. type: Plain text
1060 #: build/C/man2/eventfd.2:343
1061 msgid ""
1062 "The following program creates an eventfd file descriptor and then forks to "
1063 "create a child process.  While the parent briefly sleeps, the child writes "
1064 "each of the integers supplied in the program's command-line arguments to the "
1065 "eventfd file descriptor.  When the parent has finished sleeping, it reads "
1066 "from the eventfd file descriptor."
1067 msgstr ""
1068 "以下のプログラムは eventfd ファイルディスクリプタを生成し、 その後 fork を実"
1069 "行して子プロセスを生成する。 親プロセスが少しの間 sleep する間に、子プロセス"
1070 "は プログラムのコマンドライン引き数で指定された整数(列)をそれぞれ eventfd "
1071 "ファイルディスクリプタに書き込む。 親プロセスは sleep を完了すると eventfd "
1072 "ファイルディスクリプタから 読み出しを行う。"
1073
1074 #. type: Plain text
1075 #: build/C/man2/eventfd.2:345
1076 msgid "The following shell session shows a sample run of the program:"
1077 msgstr "以下に示すシェルセッションにこのプログラムの使い方を示す。"
1078
1079 #. type: Plain text
1080 #: build/C/man2/eventfd.2:357
1081 #, no-wrap
1082 msgid ""
1083 "$B< ./a.out 1 2 4 7 14>\n"
1084 "Child writing 1 to efd\n"
1085 "Child writing 2 to efd\n"
1086 "Child writing 4 to efd\n"
1087 "Child writing 7 to efd\n"
1088 "Child writing 14 to efd\n"
1089 "Child completed write loop\n"
1090 "Parent about to read\n"
1091 "Parent read 28 (0x1c) from efd\n"
1092 msgstr ""
1093 "$B< ./a.out 1 2 4 7 14>\n"
1094 "Child writing 1 to efd\n"
1095 "Child writing 2 to efd\n"
1096 "Child writing 4 to efd\n"
1097 "Child writing 7 to efd\n"
1098 "Child writing 14 to efd\n"
1099 "Child completed write loop\n"
1100 "Parent about to read\n"
1101 "Parent read 28 (0x1c) from efd\n"
1102
1103 #. type: SS
1104 #: build/C/man2/eventfd.2:359 build/C/man2/signalfd.2:383
1105 #: build/C/man2/timer_create.2:284 build/C/man2/timerfd_create.2:407
1106 #: build/C/man2/wait.2:571
1107 #, no-wrap
1108 msgid "Program source"
1109 msgstr "プログラムのソース"
1110
1111 #. type: Plain text
1112 #: build/C/man2/eventfd.2:367
1113 #, no-wrap
1114 msgid ""
1115 "#include E<lt>sys/eventfd.hE<gt>\n"
1116 "#include E<lt>unistd.hE<gt>\n"
1117 "#include E<lt>stdlib.hE<gt>\n"
1118 "#include E<lt>stdio.hE<gt>\n"
1119 "#include E<lt>stdint.hE<gt>             /* Definition of uint64_t */\n"
1120 msgstr ""
1121 "#include E<lt>sys/eventfd.hE<gt>\n"
1122 "#include E<lt>unistd.hE<gt>\n"
1123 "#include E<lt>stdlib.hE<gt>\n"
1124 "#include E<lt>stdio.hE<gt>\n"
1125 "#include E<lt>stdint.hE<gt>             /* Definition of uint64_t */\n"
1126
1127 #. type: Plain text
1128 #: build/C/man2/eventfd.2:370 build/C/man2/signalfd.2:394
1129 #, no-wrap
1130 msgid ""
1131 "#define handle_error(msg) \\e\n"
1132 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1133 msgstr ""
1134 "#define handle_error(msg) \\e\n"
1135 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1136
1137 #. type: Plain text
1138 #: build/C/man2/eventfd.2:377
1139 #, no-wrap
1140 msgid ""
1141 "int\n"
1142 "main(int argc, char *argv[])\n"
1143 "{\n"
1144 "    int efd, j;\n"
1145 "    uint64_t u;\n"
1146 "    ssize_t s;\n"
1147 msgstr ""
1148 "int\n"
1149 "main(int argc, char *argv[])\n"
1150 "{\n"
1151 "    int efd, j;\n"
1152 "    uint64_t u;\n"
1153 "    ssize_t s;\n"
1154
1155 #. type: Plain text
1156 #: build/C/man2/eventfd.2:382
1157 #, no-wrap
1158 msgid ""
1159 "    if (argc E<lt> 2) {\n"
1160 "        fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n"
1161 "        exit(EXIT_FAILURE);\n"
1162 "    }\n"
1163 msgstr ""
1164 "    if (argc E<lt> 2) {\n"
1165 "        fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n"
1166 "        exit(EXIT_FAILURE);\n"
1167 "    }\n"
1168
1169 #. type: Plain text
1170 #: build/C/man2/eventfd.2:386
1171 #, no-wrap
1172 msgid ""
1173 "    efd = eventfd(0, 0);\n"
1174 "    if (efd == -1)\n"
1175 "        handle_error(\"eventfd\");\n"
1176 msgstr ""
1177 "    efd = eventfd(0, 0);\n"
1178 "    if (efd == -1)\n"
1179 "        handle_error(\"eventfd\");\n"
1180
1181 #. type: Plain text
1182 #: build/C/man2/eventfd.2:398
1183 #, no-wrap
1184 msgid ""
1185 "    switch (fork()) {\n"
1186 "    case 0:\n"
1187 "        for (j = 1; j E<lt> argc; j++) {\n"
1188 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1189 "            u = strtoull(argv[j], NULL, 0);\n"
1190 "                    /* strtoull() allows various bases */\n"
1191 "            s = write(efd, &u, sizeof(uint64_t));\n"
1192 "            if (s != sizeof(uint64_t))\n"
1193 "                handle_error(\"write\");\n"
1194 "        }\n"
1195 "        printf(\"Child completed write loop\\en\");\n"
1196 msgstr ""
1197 "    switch (fork()) {\n"
1198 "    case 0:\n"
1199 "        for (j = 1; j E<lt> argc; j++) {\n"
1200 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1201 "            u = strtoull(argv[j], NULL, 0);\n"
1202 "                    /* strtoull() allows various bases */\n"
1203 "            s = write(efd, &u, sizeof(uint64_t));\n"
1204 "            if (s != sizeof(uint64_t))\n"
1205 "                handle_error(\"write\");\n"
1206 "        }\n"
1207 "        printf(\"Child completed write loop\\en\");\n"
1208
1209 #. type: Plain text
1210 #: build/C/man2/eventfd.2:400
1211 #, no-wrap
1212 msgid "        exit(EXIT_SUCCESS);\n"
1213 msgstr "        exit(EXIT_SUCCESS);\n"
1214
1215 #. type: Plain text
1216 #: build/C/man2/eventfd.2:403
1217 #, no-wrap
1218 msgid ""
1219 "    default:\n"
1220 "        sleep(2);\n"
1221 msgstr ""
1222 "    default:\n"
1223 "        sleep(2);\n"
1224
1225 #. type: Plain text
1226 #: build/C/man2/eventfd.2:411
1227 #, no-wrap
1228 msgid ""
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 msgstr ""
1237 "        printf(\"Parent about to read\\en\");\n"
1238 "        s = read(efd, &u, sizeof(uint64_t));\n"
1239 "        if (s != sizeof(uint64_t))\n"
1240 "            handle_error(\"read\");\n"
1241 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1242 "                (unsigned long long) u, (unsigned long long) u);\n"
1243 "        exit(EXIT_SUCCESS);\n"
1244
1245 #. type: Plain text
1246 #: build/C/man2/eventfd.2:416
1247 #, no-wrap
1248 msgid ""
1249 "    case -1:\n"
1250 "        handle_error(\"fork\");\n"
1251 "    }\n"
1252 "}\n"
1253 msgstr ""
1254 "    case -1:\n"
1255 "        handle_error(\"fork\");\n"
1256 "    }\n"
1257 "}\n"
1258
1259 #. type: Plain text
1260 #: build/C/man2/eventfd.2:428
1261 msgid ""
1262 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), B<signalfd>"
1263 "(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), B<sem_overview>(7)"
1264 msgstr ""
1265 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), B<signalfd>"
1266 "(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), B<sem_overview>(7)"
1267
1268 #. type: TH
1269 #: build/C/man2/getitimer.2:12
1270 #, no-wrap
1271 msgid "GETITIMER"
1272 msgstr "GETITIMER"
1273
1274 #. type: TH
1275 #: build/C/man2/getitimer.2:12
1276 #, fuzzy, no-wrap
1277 #| msgid "2012-05-01"
1278 msgid "2012-10-01"
1279 msgstr "2012-05-01"
1280
1281 #. type: Plain text
1282 #: build/C/man2/getitimer.2:15
1283 msgid "getitimer, setitimer - get or set value of an interval timer"
1284 msgstr "getitimer, setitimer - インターバル・タイマーの値を取得または設定する"
1285
1286 #. type: Plain text
1287 #: build/C/man2/getitimer.2:18
1288 #, no-wrap
1289 msgid "B<#include E<lt>sys/time.hE<gt>>\n"
1290 msgstr "B<#include E<lt>sys/time.hE<gt>>\n"
1291
1292 #. type: Plain text
1293 #: build/C/man2/getitimer.2:20
1294 #, no-wrap
1295 msgid "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1296 msgstr "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1297
1298 #. type: Plain text
1299 #: build/C/man2/getitimer.2:23
1300 #, no-wrap
1301 msgid ""
1302 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1303 "B<              struct itimerval *>I<old_value>B<);>\n"
1304 msgstr ""
1305 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1306 "B<              struct itimerval *>I<old_value>B<);>\n"
1307
1308 #. type: Plain text
1309 #: build/C/man2/getitimer.2:29
1310 msgid ""
1311 "The system provides each process with three interval timers, each "
1312 "decrementing in a distinct time domain.  When any timer expires, a signal is "
1313 "sent to the process, and the timer (potentially) restarts."
1314 msgstr ""
1315 "システムは 1 個のプロセスにつき 3 個のインターバル・タイマーを提供する。 それ"
1316 "ぞれのタイマーは別々の時間領域で減少する。 どのタイマーも満了するとプロセスに"
1317 "シグナルが送られ、 タイマーは (設定によっては) 再び開始される。"
1318
1319 #. type: TP
1320 #: build/C/man2/getitimer.2:29
1321 #, no-wrap
1322 msgid "B<ITIMER_REAL>"
1323 msgstr "B<ITIMER_REAL>"
1324
1325 #. type: Plain text
1326 #: build/C/man2/getitimer.2:34
1327 msgid "decrements in real time, and delivers B<SIGALRM> upon expiration."
1328 msgstr "実時間 (real time) で減少し、満了すると B<SIGALRM> が送られる。"
1329
1330 #. type: TP
1331 #: build/C/man2/getitimer.2:34
1332 #, no-wrap
1333 msgid "B<ITIMER_VIRTUAL>"
1334 msgstr "B<ITIMER_VIRTUAL>"
1335
1336 #. type: Plain text
1337 #: build/C/man2/getitimer.2:39
1338 msgid ""
1339 "decrements only when the process is executing, and delivers B<SIGVTALRM> "
1340 "upon expiration."
1341 msgstr ""
1342 "プロセスが実行されている間のみ減少し、満了すると B<SIGVTALRM> が送られる。"
1343
1344 #. type: TP
1345 #: build/C/man2/getitimer.2:39
1346 #, no-wrap
1347 msgid "B<ITIMER_PROF>"
1348 msgstr "B<ITIMER_PROF>"
1349
1350 #. type: Plain text
1351 #: build/C/man2/getitimer.2:49
1352 msgid ""
1353 "decrements both when the process executes and when the system is executing "
1354 "on behalf of the process.  Coupled with B<ITIMER_VIRTUAL>, this timer is "
1355 "usually used to profile the time spent by the application in user and kernel "
1356 "space.  B<SIGPROF> is delivered upon expiration."
1357 msgstr ""
1358 "プロセスが実行されていて、 かつシステムがそのプロセスのために処理を行なってい"
1359 "る間に減少する。 多くの場合、このタイマーは B<ITIMER_VIRTUAL> と組み合わされ"
1360 "て、アプリケーションがカーネル空間とユーザー空間で どれだけの時間を過ごしたか"
1361 "をプロファイルするのに使用される。 満了すると B<SIGPROF> が送られる。"
1362
1363 #. type: Plain text
1364 #: build/C/man2/getitimer.2:51
1365 msgid "Timer values are defined by the following structures:"
1366 msgstr "タイマーの値は以下の構造体によって定義される:"
1367
1368 #. type: Plain text
1369 #: build/C/man2/getitimer.2:59
1370 #, no-wrap
1371 msgid ""
1372 "struct itimerval {\n"
1373 "    struct timeval it_interval; /* next value */\n"
1374 "    struct timeval it_value;    /* current value */\n"
1375 "};\n"
1376 msgstr ""
1377 "struct itimerval {\n"
1378 "    struct timeval it_interval; /* next value */\n"
1379 "    struct timeval it_value;    /* current value */\n"
1380 "};\n"
1381
1382 #. type: Plain text
1383 #: build/C/man2/getitimer.2:64
1384 #, fuzzy, no-wrap
1385 #| msgid ""
1386 #| "struct timeval {\n"
1387 #| "    long tv_sec;                /* seconds */\n"
1388 #| "    long tv_usec;               /* microseconds */\n"
1389 #| "};\n"
1390 msgid ""
1391 "struct timeval {\n"
1392 "    time_t      tv_sec;         /* seconds */\n"
1393 "    suseconds_t tv_usec;        /* microseconds */\n"
1394 "};\n"
1395 msgstr ""
1396 "struct timeval {\n"
1397 "    long tv_sec;                /* seconds */\n"
1398 "    long tv_usec;               /* microseconds */\n"
1399 "};\n"
1400
1401 #. type: Plain text
1402 #: build/C/man2/getitimer.2:86
1403 msgid ""
1404 "The function B<getitimer>()  fills the structure pointed to by I<curr_value> "
1405 "with the current setting for the timer specified by I<which> (one of "
1406 "B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>).  The element "
1407 "I<it_value> is set to the amount of time remaining on the timer, or zero if "
1408 "the timer is disabled.  Similarly, I<it_interval> is set to the reset value."
1409 msgstr ""
1410 "B<getitimer>()  関数は、 I<which> で指定されたタイマー (B<ITIMER_REAL>, "
1411 "B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれか) の現在の設定を、 I<curr_value> で"
1412 "指定された構造体に格納する。 I<it_value> 要素にはタイマーの残り時間が設定され"
1413 "る。タイマーがオフの場合は ゼロが設定される。同様に I<it_interval> には初期値"
1414 "が設定される。"
1415
1416 #. type: Plain text
1417 #: build/C/man2/getitimer.2:94
1418 msgid ""
1419 "The function B<setitimer>()  sets the specified timer to the value in "
1420 "I<new_value>.  If I<old_value> is non-NULL, the old value of the timer is "
1421 "stored there."
1422 msgstr ""
1423 "B<setitimer>()  関数は指定されたタイマーに I<new_value> の値を設定する。 "
1424 "I<old_value> が NULL 以外の場合、タイマーの古い値が I<old_value> に格納され"
1425 "る。"
1426
1427 #. type: Plain text
1428 #: build/C/man2/getitimer.2:104
1429 msgid ""
1430 "Timers decrement from I<it_value> to zero, generate a signal, and reset to "
1431 "I<it_interval>.  A timer which is set to zero (I<it_value> is zero or the "
1432 "timer expires and I<it_interval> is zero) stops."
1433 msgstr ""
1434 "タイマーは I<it_value> からゼロへ向けて減っていき、シグナルを生成し、 "
1435 "I<it_interval> に初期化される。 タイマーがゼロに設定された場合 (I<it_value> "
1436 "がゼロか、タイマーが満了した時に I<it_interval> がゼロの場合) は停止する。"
1437
1438 #. type: Plain text
1439 #: build/C/man2/getitimer.2:110
1440 msgid ""
1441 "Both I<tv_sec> and I<tv_usec> are significant in determining the duration of "
1442 "a timer."
1443 msgstr "タイマーの期間は I<tv_sec> と I<tv_usec> の両方により決定される。"
1444
1445 #. type: Plain text
1446 #: build/C/man2/getitimer.2:122
1447 msgid ""
1448 "Timers will never expire before the requested time, but may expire some "
1449 "(short) time afterward, which depends on the system timer resolution and on "
1450 "the system load; see B<time>(7).  (But see BUGS below.)  Upon expiration, a "
1451 "signal will be generated and the timer reset.  If the timer expires while "
1452 "the process is active (always true for B<ITIMER_VIRTUAL>)  the signal will "
1453 "be delivered immediately when generated.  Otherwise the delivery will be "
1454 "offset by a small time dependent on the system loading."
1455 msgstr ""
1456 "要求した時間がくる前にタイマーが満了することはないが、 逆にある (短い) 時間だ"
1457 "け満了が遅れることはある。 どれだけ遅れるかはシステムの時間分解能とシステムの"
1458 "負荷に依存する (B<time>(7)  参照; 但し、バグの項も参照のこと)。 タイマーが満"
1459 "了するとシグナルが生成され、タイマーは初期化される。 プロセスがアクティブな"
1460 "時 (B<ITIMER_VIRTUAL> の場合には常にそうである) にタイマーが満了した場合、生"
1461 "成されたシグナルは すぐに配送される。それ以外の場合は、システムの負荷により少"
1462 "しの時間だけ 遅れて配送される。"
1463
1464 #. type: Plain text
1465 #: build/C/man2/getitimer.2:127 build/C/man2/killpg.2:94
1466 #: build/C/man2/tkill.2:99
1467 msgid ""
1468 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
1469 "appropriately."
1470 msgstr ""
1471 "成功した場合、0 が返される。エラーが発生した場合、-1 が返され、 I<errno> が適"
1472 "切に設定される。"
1473
1474 #. type: TP
1475 #: build/C/man2/getitimer.2:128 build/C/man2/prctl.2:785
1476 #: build/C/man2/sigaction.2:664 build/C/man2/sigaltstack.2:138
1477 #: build/C/man2/sigpending.2:57 build/C/man2/sigprocmask.2:97
1478 #: build/C/man2/sigsuspend.2:75 build/C/man2/timer_settime.2:184
1479 #: build/C/man2/timerfd_create.2:342
1480 #, no-wrap
1481 msgid "B<EFAULT>"
1482 msgstr "B<EFAULT>"
1483
1484 #. type: Plain text
1485 #: build/C/man2/getitimer.2:135 build/C/man2/timerfd_create.2:349
1486 msgid "I<new_value>, I<old_value>, or I<curr_value> is not valid a pointer."
1487 msgstr "I<new_value>, I<old_value>, I<curr_value> が有効なポインタではない。"
1488
1489 #. type: Plain text
1490 #: build/C/man2/getitimer.2:148
1491 msgid ""
1492 "I<which> is not one of B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>; "
1493 "or (since Linux 2.6.22) one of the I<tv_usec> fields in the structure "
1494 "pointed to by I<new_value> contains a value outside the range 0 to 999999."
1495 msgstr ""
1496 "I<which> が B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれでもな"
1497 "い。 または (Linux 2.6.22 以降で)  I<new_value> で指定された構造体の "
1498 "I<tv_usec> フィールドの一つが 0 以上 999999 以下の範囲に入らない値である。"
1499
1500 #. type: Plain text
1501 #: build/C/man2/getitimer.2:158
1502 msgid ""
1503 "POSIX.1-2001, SVr4, 4.4BSD (this call first appeared in 4.2BSD).  "
1504 "POSIX.1-2008 marks B<getitimer>()  and B<setitimer>()  obsolete, "
1505 "recommending the use of the POSIX timers API (B<timer_gettime>(2), "
1506 "B<timer_settime>(2), etc.) instead."
1507 msgstr ""
1508 "POSIX.1-2001, SVr4, 4.4BSD (このコールは 4.2BSD で始めて現われた).  "
1509 "POSIX.1-2008 では、 B<getitimer>()  と B<setitimer>()  は廃止予定とされてお"
1510 "り、 代わりに POSIX タイマー API (B<timer_gettime>(2), B<timer_settime>(2)  "
1511 "など) を使うことが推奨されている。"
1512
1513 #. type: Plain text
1514 #: build/C/man2/getitimer.2:164
1515 msgid ""
1516 "A child created via B<fork>(2)  does not inherit its parent's interval "
1517 "timers.  Interval timers are preserved across an B<execve>(2)."
1518 msgstr ""
1519 "B<fork>(2)  で作成された子プロセスは、 親プロセスのインターバル・タイマーを継"
1520 "承しない。 B<execve>(2)  の前後ではインターバル・タイマーは保存される。"
1521
1522 #. type: Plain text
1523 #: build/C/man2/getitimer.2:174
1524 msgid ""
1525 "POSIX.1 leaves the interaction between B<setitimer>()  and the three "
1526 "interfaces B<alarm>(2), B<sleep>(3), and B<usleep>(3)  unspecified."
1527 msgstr ""
1528 "POSIX.1 では、 B<setitimer>()  と、 B<alarm>(2), B<sleep>(3), B<usleep>(3)  "
1529 "という 3 つのインタフェースとの相互の影響については規定していない。"
1530
1531 #. type: Plain text
1532 #: build/C/man2/getitimer.2:176
1533 msgid "The standards are silent on the meaning of the call:"
1534 msgstr ""
1535
1536 #. type: Plain text
1537 #: build/C/man2/getitimer.2:178
1538 #, no-wrap
1539 msgid "    setitimer(which, NULL, &old_value);\n"
1540 msgstr ""
1541
1542 #. type: Plain text
1543 #: build/C/man2/getitimer.2:181
1544 msgid ""
1545 "Many systems (Solaris, the BSDs, and perhaps others)  treat this as "
1546 "equivalent to:"
1547 msgstr ""
1548
1549 #. type: Plain text
1550 #: build/C/man2/getitimer.2:183
1551 #, no-wrap
1552 msgid "    getitimer(which, &old_value);\n"
1553 msgstr ""
1554
1555 #. type: Plain text
1556 #: build/C/man2/getitimer.2:189
1557 msgid ""
1558 "In Linux, this is treated as being equivalent to a call in which the "
1559 "I<new_value> fields are zero; that is, the timer is disabled.  I<Don't use "
1560 "this Linux misfeature>: it is nonportable and unnecessary."
1561 msgstr ""
1562
1563 #. type: SH
1564 #: build/C/man2/getitimer.2:189 build/C/man2/kill.2:160
1565 #: build/C/man3/profil.3:70 build/C/man3/psignal.3:101
1566 #: build/C/man2/sigaction.2:779 build/C/man2/signalfd.2:352
1567 #: build/C/man2/sigpending.2:78 build/C/man3/sigset.3:232
1568 #: build/C/man2/timer_getoverrun.2:115 build/C/man2/timerfd_create.2:373
1569 #: build/C/man2/wait.2:521
1570 #, no-wrap
1571 msgid "BUGS"
1572 msgstr "バグ"
1573
1574 #. type: Plain text
1575 #: build/C/man2/getitimer.2:198
1576 msgid ""
1577 "The generation and delivery of a signal are distinct, and only one instance "
1578 "of each of the signals listed above may be pending for a process.  Under "
1579 "very heavy loading, an B<ITIMER_REAL> timer may expire before the signal "
1580 "from a previous expiration has been delivered.  The second signal in such an "
1581 "event will be lost."
1582 msgstr ""
1583 "シグナルの生成と配送は別個のものであり、 前述のシグナルのそれぞれについて一つ"
1584 "だけがプロセスのために 待機する。 非常に重い負荷の下では、 B<ITIMER_REAL> タ"
1585 "イマーでは、時間切れにより生成された一つ前のシグナルが配送される前に、 次の時"
1586 "間切れが起こる場合がある。 そのような場合、 2 個めのイベントに対するシグナル"
1587 "は失われてしまう。"
1588
1589 #. type: Plain text
1590 #: build/C/man2/getitimer.2:213
1591 msgid ""
1592 "On Linux kernels before 2.6.16, timer values are represented in jiffies.  If "
1593 "a request is made set a timer with a value whose jiffies representation "
1594 "exceeds B<MAX_SEC_IN_JIFFIES> (defined in I<include/linux/jiffies.h>), then "
1595 "the timer is silently truncated to this ceiling value.  On Linux/i386 "
1596 "(where, since Linux 2.6.13, the default jiffy is 0.004 seconds), this means "
1597 "that the ceiling value for a timer is approximately 99.42 days.  Since Linux "
1598 "2.6.16, the kernel uses a different internal representation for times, and "
1599 "this ceiling is removed."
1600 msgstr ""
1601 "バージョン 2.6.16 より前の Linux カーネルでは、 タイマーの値は jiffy で表現さ"
1602 "れる。 要求が jiffy 表現で (I<include/linux/jiffies.h> で定義されている)  "
1603 "B<MAX_SEC_IN_JIFFIES> を越える値をタイマーに設定しようとするものの場合、 タイ"
1604 "マーは暗黙にこの上限値に切り詰められる。 Linux/i386 の場合 (Linux 2.6.13 以降"
1605 "では jiffy は 0.004 秒) の場合、 これはタイマーの上限値がおよそ 99.42 日にな"
1606 "ることを意味する。 Linux 2.6.16 以降では、カーネルは時間に関する内部表現とし"
1607 "て 異なる表現を使うようになっており、この上限はなくなった。"
1608
1609 #.  4 Jul 2005: It looks like this bug may remain in 2.4.x.
1610 #.      http://lkml.org/lkml/2005/7/1/165
1611 #. type: Plain text
1612 #: build/C/man2/getitimer.2:220
1613 msgid ""
1614 "On certain systems (including i386), Linux kernels before version 2.6.12 "
1615 "have a bug which will produce premature timer expirations of up to one jiffy "
1616 "under some circumstances.  This bug is fixed in kernel 2.6.12."
1617 msgstr ""
1618 "(i386 を含む) いくつかのシステムでは、 バージョン 2.6.12 以前の Linux カーネ"
1619 "ルは ある種の状況では 1 jiffy 早くタイマーが終了してしまうというバグがあっ"
1620 "た。 このバグはカーネル 2.6.12 で修正された。"
1621
1622 #.  Bugzilla report 25 Apr 2006:
1623 #.  http://bugzilla.kernel.org/show_bug.cgi?id=6443
1624 #.  "setitimer() should reject noncanonical arguments"
1625 #. type: Plain text
1626 #: build/C/man2/getitimer.2:239
1627 msgid ""
1628 "POSIX.1-2001 says that B<setitimer>()  should fail if a I<tv_usec> value is "
1629 "specified that is outside of the range 0 to 999999.  However, in kernels up "
1630 "to and including 2.6.21, Linux does not give an error, but instead silently "
1631 "adjusts the corresponding seconds value for the timer.  From kernel 2.6.22 "
1632 "onward, this nonconformance has been repaired: an improper I<tv_usec> value "
1633 "results in an B<EINVAL> error."
1634 msgstr ""
1635 "POSIX.1-2001 では B<setitimer>()  は I<tv_usec> の値が 0 から 999999 の範囲外"
1636 "である場合には失敗するべきだとしている。 しかし、2.6.21 以前のカーネルの "
1637 "Linux ではエラーにならず、 対応する秒数の分だけそのタイマーの秒の値が暗黙に調"
1638 "整される。 カーネル 2.6.22 以降では、この標準非準拠の動作は修正され、 "
1639 "I<tv_usec> の値が不適切な場合には B<EINVAL> エラーとなる。"
1640
1641 #. type: Plain text
1642 #: build/C/man2/getitimer.2:246
1643 msgid ""
1644 "B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
1645 "B<timerfd_create>(2), B<time>(7)"
1646 msgstr ""
1647 "B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
1648 "B<timerfd_create>(2), B<time>(7)"
1649
1650 #. type: TH
1651 #: build/C/man3/gsignal.3:27
1652 #, no-wrap
1653 msgid "GSIGNAL"
1654 msgstr "GSIGNAL"
1655
1656 #. type: TH
1657 #: build/C/man3/gsignal.3:27 build/C/man3/profil.3:28
1658 #, no-wrap
1659 msgid "2007-07-26"
1660 msgstr "2007-07-26"
1661
1662 #. type: Plain text
1663 #: build/C/man3/gsignal.3:30
1664 msgid "gsignal, ssignal - software signal facility"
1665 msgstr "gsignal, ssignal - ソフトウェア・シグナル機能"
1666
1667 #. type: Plain text
1668 #: build/C/man3/gsignal.3:33 build/C/man2/kill.2:52 build/C/man3/psignal.3:36
1669 #: build/C/man3/raise.3:35 build/C/man2/sigaction.2:53
1670 #: build/C/man3/siginterrupt.3:37 build/C/man3/sigpause.3:31
1671 #: build/C/man3/sigwait.3:32 build/C/man2/sigwaitinfo.2:31
1672 #, no-wrap
1673 msgid "B<#include E<lt>signal.hE<gt>>\n"
1674 msgstr "B<#include E<lt>signal.hE<gt>>\n"
1675
1676 #. type: Plain text
1677 #: build/C/man3/gsignal.3:35
1678 #, no-wrap
1679 msgid "B<typedef void (*sighandler_t)(int);>\n"
1680 msgstr "B<typedef void (*sighandler_t)(int);>\n"
1681
1682 #. type: Plain text
1683 #: build/C/man3/gsignal.3:37
1684 #, no-wrap
1685 msgid "B<int gsignal(int >I<signum>B<);>\n"
1686 msgstr "B<int gsignal(int >I<signum>B<);>\n"
1687
1688 #. type: Plain text
1689 #: build/C/man3/gsignal.3:39
1690 #, no-wrap
1691 msgid "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
1692 msgstr "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
1693
1694 #. type: Plain text
1695 #: build/C/man3/gsignal.3:44 build/C/man2/kill.2:59 build/C/man2/killpg.2:53
1696 #: build/C/man3/profil.3:40 build/C/man3/psignal.3:46
1697 #: build/C/man2/sigaction.2:61 build/C/man2/sigaltstack.2:38
1698 #: build/C/man3/siginterrupt.3:44 build/C/man2/sigpending.2:40
1699 #: build/C/man2/sigprocmask.2:41 build/C/man3/sigqueue.3:39
1700 #: build/C/man3/sigset.3:45 build/C/man3/sigsetops.3:51
1701 #: build/C/man2/sigsuspend.2:40 build/C/man3/sigvec.3:45
1702 #: build/C/man3/sigwait.3:39 build/C/man2/sigwaitinfo.2:41
1703 #: build/C/man2/timer_create.2:48 build/C/man2/timer_delete.2:41
1704 #: build/C/man2/timer_getoverrun.2:41 build/C/man2/timer_settime.2:45
1705 #: build/C/man2/wait.2:67 build/C/man2/wait4.2:53
1706 msgid ""
1707 "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
1708 msgstr "glibc 向けの機能検査マクロの要件 (B<feature_test_macros>(7)  参照):"
1709
1710 #. type: Plain text
1711 #: build/C/man3/gsignal.3:49
1712 msgid "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
1713 msgstr "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
1714
1715 #. type: Plain text
1716 #: build/C/man3/gsignal.3:57
1717 msgid ""
1718 "Don't use these functions under Linux.  Due to a historical mistake, under "
1719 "Linux these functions are aliases for B<raise>(3)  and B<signal>(2), "
1720 "respectively."
1721 msgstr ""
1722 "Linux ではこれらの関数を使用しないこと。 過去に間違いがあり、Linux では "
1723 "B<gsignal>()  と B<ssignal>()  はそれぞれ B<raise>(3)  と B<signal>(2)  の別"
1724 "名になっている。"
1725
1726 #. type: Plain text
1727 #: build/C/man3/gsignal.3:95
1728 msgid ""
1729 "Elsewhere, on System V-like systems, these functions implement software "
1730 "signaling, entirely independent of the classical B<signal>(2)  and B<kill>"
1731 "(2)  functions.  The function B<ssignal>()  defines the action to take when "
1732 "the software signal with number I<signum> is raised using the function "
1733 "B<gsignal>(), and returns the previous such action or B<SIG_DFL>.  The "
1734 "function B<gsignal>()  does the following: if no action (or the action "
1735 "B<SIG_DFL>)  was specified for I<signum>, then it does nothing and returns "
1736 "0.  If the action B<SIG_IGN> was specified for I<signum>, then it does "
1737 "nothing and returns 1.  Otherwise, it resets the action to B<SIG_DFL> and "
1738 "calls the action function with argument I<signum>, and returns the value "
1739 "returned by that function.  The range of possible values I<signum> varies "
1740 "(often 1-15 or 1-17)."
1741 msgstr ""
1742 "一方、System V 風のシステムでは、これらの関数で、 従来の B<signal>(2)  や "
1743 "B<kill>(2)  の関数群とは完全に独立な、 ソフトウェア・シグナリングを実現してい"
1744 "る。 B<ssignal>()  関数は、番号 I<signum> のソフトウェア・シグナルが "
1745 "B<gsignal>()  関数を使って発生された時にとるべきアクションを定義する。 "
1746 "B<gsignal>()  の返り値は、一つ前に指定されていたアクション、もしくは "
1747 "B<SIG_DFL> である。 B<gsignal>()  は以下のような動作を行う: I<signum> に対し"
1748 "てアクションが指定されていないか、アクション B<SIG_DFL> が指定されていた場"
1749 "合、何もせずに 0 を返す。 I<signum> に対して アクション B<SIG_IGN> が指定され"
1750 "ていた場合、何もせずに 1 を返す。 それ以外の場合、アクションを B<SIG_DFL> に"
1751 "リセットし、引き数に I<signum> を指定してアクション関数を呼び出して、アクショ"
1752 "ン関数の返り値を返す。 I<signum> がとり得る値の範囲は実装により異なる (多くの"
1753 "場合 1〜15 か 1〜17 である)。"
1754
1755 #. type: Plain text
1756 #: build/C/man3/gsignal.3:103
1757 msgid ""
1758 "These functions are available under AIX, DG/UX, HP-UX, SCO, Solaris, Tru64.  "
1759 "They are called obsolete under most of these systems, and are broken under "
1760 "Linux libc and glibc.  Some systems also have B<gsignal_r>()  and "
1761 "B<ssignal_r>()."
1762 msgstr ""
1763 "これらの関数は、AIX, DG/UX, HP-UX, SCO, Solaris, Tru64 で使用可能である。 こ"
1764 "れらのシステムのほとんどで廃止されたことになっており、 Linux の libc および "
1765 "glibc では正しく実装されていない。 B<gsignal_r>()  と B<ssignal_r>()  が実装"
1766 "されているシステムもある。"
1767
1768 #. type: Plain text
1769 #: build/C/man3/gsignal.3:107
1770 msgid "B<kill>(2), B<signal>(2), B<raise>(3)"
1771 msgstr "B<kill>(2), B<signal>(2), B<raise>(3)"
1772
1773 #. type: TH
1774 #: build/C/man2/kill.2:44
1775 #, no-wrap
1776 msgid "KILL"
1777 msgstr "KILL"
1778
1779 #. type: TH
1780 #: build/C/man2/kill.2:44
1781 #, fuzzy, no-wrap
1782 #| msgid "2012-05-05"
1783 msgid "2013-02-05"
1784 msgstr "2012-05-05"
1785
1786 #. type: Plain text
1787 #: build/C/man2/kill.2:47
1788 msgid "kill - send signal to a process"
1789 msgstr "kill - プロセスにシグナルを送る"
1790
1791 #. type: Plain text
1792 #: build/C/man2/kill.2:50
1793 #, no-wrap
1794 msgid "B<#include E<lt>sys/types.hE<gt>>\n"
1795 msgstr "B<#include E<lt>sys/types.hE<gt>>\n"
1796
1797 #. type: Plain text
1798 #: build/C/man2/kill.2:54
1799 #, no-wrap
1800 msgid "B<int kill(pid_t >I<pid>B<, int >I<sig>B<);>\n"
1801 msgstr "B<int kill(pid_t >I<pid>B<, int >I<sig>B<);>\n"
1802
1803 #. type: Plain text
1804 #: build/C/man2/kill.2:64
1805 msgid ""
1806 "B<kill>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1807 msgstr ""
1808 "B<kill>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1809
1810 #. type: Plain text
1811 #: build/C/man2/kill.2:70
1812 msgid ""
1813 "The B<kill>()  system call can be used to send any signal to any process "
1814 "group or process."
1815 msgstr ""
1816 "システムコールの B<kill>()  は、任意のプロセス・グループもしくはプロセスにシ"
1817 "グナルを 送るのに使われる。"
1818
1819 #. type: Plain text
1820 #: build/C/man2/kill.2:73
1821 msgid ""
1822 "If I<pid> is positive, then signal I<sig> is sent to the process with the ID "
1823 "specified by I<pid>."
1824 msgstr ""
1825 "I<pid> に正の値を指定した場合、シグナル I<sig> が I<pid> で指定された ID を持"
1826 "つプロセスに送られる。"
1827
1828 #. type: Plain text
1829 #: build/C/man2/kill.2:76
1830 msgid ""
1831 "If I<pid> equals 0, then I<sig> is sent to every process in the process "
1832 "group of the calling process."
1833 msgstr ""
1834 "I<pid> に 0 を指定した場合、 呼び出し元のプロセスのプロセス・グループに属する"
1835 "すべてのプロセスに I<sig> で指定したシグナルが送られる。"
1836
1837 #. type: Plain text
1838 #: build/C/man2/kill.2:80
1839 msgid ""
1840 "If I<pid> equals -1, then I<sig> is sent to every process for which the "
1841 "calling process has permission to send signals, except for process 1 "
1842 "(I<init>), but see below."
1843 msgstr ""
1844 "I<pid> に -1 を指定した場合、 I<sig> で指定したシグナルが、 呼び出し元のプロ"
1845 "セスがシグナルを送る許可を持つ全てのプロセスに 送られる。但し、プロセス番号 "
1846 "1 (I<init>) へはシグナルは送られない。 以下の関連部分も参照のこと。"
1847
1848 #. type: Plain text
1849 #: build/C/man2/kill.2:83
1850 msgid ""
1851 "If I<pid> is less than -1, then I<sig> is sent to every process in the "
1852 "process group whose ID is I<-pid>."
1853 msgstr ""
1854 "I<pid> に -1 より小さな値を指定した場合、 ID が I<-pid> のプロセス・グループ"
1855 "に属するすべてのプロセスに I<sig> で指定したシグナルが送られる。"
1856
1857 #. type: Plain text
1858 #: build/C/man2/kill.2:88
1859 msgid ""
1860 "If I<sig> is 0, then no signal is sent, but error checking is still "
1861 "performed; this can be used to check for the existence of a process ID or "
1862 "process group ID."
1863 msgstr ""
1864 "I<sig> に 0 を指定した場合、シグナルは送られないが、 エラーのチェックは行われ"
1865 "る。これを使って、プロセス ID や プロセスグループ ID の存在確認を行うことがで"
1866 "きる。"
1867
1868 #. type: Plain text
1869 #: build/C/man2/kill.2:99 build/C/man2/killpg.2:89
1870 msgid ""
1871 "For a process to have permission to send a signal it must either be "
1872 "privileged (under Linux: have the B<CAP_KILL> capability), or the real or "
1873 "effective user ID of the sending process must equal the real or saved set-"
1874 "user-ID of the target process.  In the case of B<SIGCONT> it suffices when "
1875 "the sending and receiving processes belong to the same session."
1876 msgstr ""
1877 "プロセスがシグナルを送信する許可を持つためには、 プロセスが特権 (Linux では "
1878 "B<CAP_KILL> ケーパビリティ (capability)) を持つか、 送信元プロセスの実ユー"
1879 "ザー ID または実効ユーザー ID が 送信先プロセスの実 set-user-ID または保存 "
1880 "set-user-ID と 等しくなければならない。 B<SIGCONT> の場合、送信プロセスと受信"
1881 "プロセスが 同じセッションに属していれば十分である。"
1882
1883 #. type: Plain text
1884 #: build/C/man2/kill.2:104
1885 msgid ""
1886 "On success (at least one signal was sent), zero is returned.  On error, -1 "
1887 "is returned, and I<errno> is set appropriately."
1888 msgstr ""
1889 "成功した場合 (少なくとも一つのシグナルが送信された場合)、 0 が返される。エ"
1890 "ラーの場合 -1 が返され、 I<errno> が適切に設定される。"
1891
1892 #. type: Plain text
1893 #: build/C/man2/kill.2:108
1894 msgid "An invalid signal was specified."
1895 msgstr "無効なシグナルを指定した。"
1896
1897 #. type: TP
1898 #: build/C/man2/kill.2:108 build/C/man2/killpg.2:99 build/C/man2/prctl.2:870
1899 #: build/C/man2/prctl.2:882 build/C/man2/prctl.2:892 build/C/man2/prctl.2:900
1900 #: build/C/man2/rt_sigqueueinfo.2:148 build/C/man2/sigaltstack.2:151
1901 #: build/C/man3/sigqueue.3:102 build/C/man2/tkill.2:103
1902 #, no-wrap
1903 msgid "B<EPERM>"
1904 msgstr "B<EPERM>"
1905
1906 #. type: Plain text
1907 #: build/C/man2/kill.2:112 build/C/man2/killpg.2:103
1908 msgid ""
1909 "The process does not have permission to send the signal to any of the target "
1910 "processes."
1911 msgstr ""
1912 "プロセスが、受信するプロセスのいずれに対しても シグナルを送る許可を持っていな"
1913 "い。"
1914
1915 #. type: TP
1916 #: build/C/man2/kill.2:112 build/C/man2/killpg.2:103 build/C/man2/killpg.2:107
1917 #: build/C/man2/rt_sigqueueinfo.2:156 build/C/man3/sigqueue.3:108
1918 #: build/C/man2/tkill.2:108
1919 #, no-wrap
1920 msgid "B<ESRCH>"
1921 msgstr "B<ESRCH>"
1922
1923 #. type: Plain text
1924 #: build/C/man2/kill.2:120
1925 msgid ""
1926 "The pid or process group does not exist.  Note that an existing process "
1927 "might be a zombie, a process which already committed termination, but has "
1928 "not yet been B<wait>(2)ed for."
1929 msgstr ""
1930 "指定したプロセスまたはプロセス・グループが存在しなかった。 ゾンビプロセスは存"
1931 "在するプロセスとしてみなされる。 ゾンビプロセスとはすでに処理は終了している"
1932 "が、親プロセスによる B<wait>()  処理が行われていないプロセスのことである。"
1933
1934 #. type: Plain text
1935 #: build/C/man2/kill.2:122 build/C/man2/pause.2:59 build/C/man2/wait.2:422
1936 msgid "SVr4, 4.3BSD, POSIX.1-2001."
1937 msgstr "SVr4, 4.3BSD, POSIX.1-2001."
1938
1939 #. type: Plain text
1940 #: build/C/man2/kill.2:130
1941 msgid ""
1942 "The only signals that can be sent to process ID 1, the I<init> process, are "
1943 "those for which I<init> has explicitly installed signal handlers.  This is "
1944 "done to assure the system is not brought down accidentally."
1945 msgstr ""
1946 "プロセス番号 1 の I<init> プロセスに送ることができるシグナルは、 I<init> が明"
1947 "示的にシグナルハンドラを設定したシグナルだけである。 こうなっているのは、誤っ"
1948 "てシステムをダウンさせないようにするためである。"
1949
1950 #. type: Plain text
1951 #: build/C/man2/kill.2:136
1952 msgid ""
1953 "POSIX.1-2001 requires that I<kill(-1,sig)> send I<sig> to all processes that "
1954 "the calling process may send signals to, except possibly for some "
1955 "implementation-defined system processes.  Linux allows a process to signal "
1956 "itself, but on Linux the call I<kill(-1,sig)> does not signal the calling "
1957 "process."
1958 msgstr ""
1959 "POSIX.1-2001 では、 I<kill(-1,sig)> が 呼び出し元のプロセスがシグナルを送るこ"
1960 "とが出来るプロセス全てに I<sig> を送ることを要求している。 但し、システム実装"
1961 "時に定められたシステムプロセスは シグナルの送信対象から除外される。 Linux で"
1962 "は、プロセスが自分自身にシグナルを送れるようになっているが、 Linux の I<kill"
1963 "(-1,sig)> は呼び出し元のプロセスにはシグナルを送らない。"
1964
1965 #. type: Plain text
1966 #: build/C/man2/kill.2:146
1967 msgid ""
1968 "POSIX.1-2001 requires that if a process sends a signal to itself, and the "
1969 "sending thread does not have the signal blocked, and no other thread has it "
1970 "unblocked or is waiting for it in B<sigwait>(3), at least one unblocked "
1971 "signal must be delivered to the sending thread before the B<kill>()  returns."
1972 msgstr ""
1973 "POSIX.1-2001 では以下の動作になることを要求している。 自分自身にシグナルを送"
1974 "ると、シグナルを送ったスレッドがそのシグナルをブロック しておらず、他のどのス"
1975 "レッドもそのシグナルを受ける状態にもなく B<sigwait>(3)  でそのシグナルを待っ"
1976 "てもいない場合、 B<kill>()  が返る前に少なくとも一つのブロックされていない シ"
1977 "グナルがシグナルを送ったスレッドに配送されなければならない。"
1978
1979 #. type: SS
1980 #: build/C/man2/kill.2:146 build/C/man3/sigpause.3:77 build/C/man2/wait.2:476
1981 #, fuzzy, no-wrap
1982 #| msgid "Linux Notes"
1983 msgid "Linux notes"
1984 msgstr "Linux での注意"
1985
1986 #.  In the 0.* kernels things chopped and changed quite
1987 #.  a bit - MTK, 24 Jul 02
1988 #. type: Plain text
1989 #: build/C/man2/kill.2:160
1990 msgid ""
1991 "Across different kernel versions, Linux has enforced different rules for the "
1992 "permissions required for an unprivileged process to send a signal to another "
1993 "process.  In kernels 1.0 to 1.2.2, a signal could be sent if the effective "
1994 "user ID of the sender matched that of the receiver, or the real user ID of "
1995 "the sender matched that of the receiver.  From kernel 1.2.3 until 1.3.77, a "
1996 "signal could be sent if the effective user ID of the sender matched either "
1997 "the real or effective user ID of the receiver.  The current rules, which "
1998 "conform to POSIX.1-2001, were adopted in kernel 1.3.78."
1999 msgstr ""
2000 "Linux では、特権のないプロセスが他のプロセスにシグナルを送信するために 必要な"
2001 "権限についてのルールが、カーネルバージョンにより違っている。 カーネル 1.0 か"
2002 "ら 1.2.2 では、送信側の実効ユーザーID が受信側の 実効ユーザー IDと一致すれば"
2003 "シグナルを送信できた。 カーネル 1.2.3 から 1.3.77では、送信側の実効ユーザー"
2004 "ID が受信側の 実ユーザーID か実効ユーザーID のいずれかと一致すればシグナルを"
2005 "送信できた。 現在のルールは、POSIX.1-2001 に準拠しており、カーネル 1.3.78 以"
2006 "降で 適用されている。"
2007
2008 #. type: Plain text
2009 #: build/C/man2/kill.2:170
2010 #, fuzzy
2011 #| msgid ""
2012 #| "In 2.6 kernels up to and including 2.6.7, there was a bug that meant that "
2013 #| "when sending signals to a process group, B<kill>()  failed with the error "
2014 #| "B<EPERM> if the caller did have permission to send the signal to I<any> "
2015 #| "(rather than I<all>) of the members of the process group.  "
2016 #| "Notwithstanding this error return, the signal was still delivered to all "
2017 #| "of the processes for which the caller had permission to signal."
2018 msgid ""
2019 "In 2.6 kernels up to and including 2.6.7, there was a bug that meant that "
2020 "when sending signals to a process group, B<kill>()  failed with the error "
2021 "B<EPERM> if the caller did not have permission to send the signal to I<any> "
2022 "(rather than I<all>) of the members of the process group.  Notwithstanding "
2023 "this error return, the signal was still delivered to all of the processes "
2024 "for which the caller had permission to signal."
2025 msgstr ""
2026 "バージョン 2.6.7 以前の 2.6 系のカーネルには、 プロセスグループにシグナルを"
2027 "送ったときに、 呼び出し元のプロセスがプロセスグループの (全メンバーではなく) "
2028 "一部のメンバー に対してのみシグナルを送る許可を持っている場合に、 B<kill>()  "
2029 "がエラー B<EPERM> で失敗するというバグがある。 このエラーが返るにもかかわら"
2030 "ず、そのシグナルは呼び出し元が シグナルを送る許可を持つ全てのプロセスへ送られ"
2031 "る。"
2032
2033 #. type: Plain text
2034 #: build/C/man2/kill.2:180
2035 msgid ""
2036 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), B<sigqueue>"
2037 "(3), B<capabilities>(7), B<credentials>(7), B<signal>(7)"
2038 msgstr ""
2039 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), B<sigqueue>"
2040 "(3), B<credentials>(7), B<capabilities>(7), B<signal>(7)"
2041
2042 #. type: TH
2043 #: build/C/man2/killpg.2:42
2044 #, no-wrap
2045 msgid "KILLPG"
2046 msgstr "KILLPG"
2047
2048 #. type: TH
2049 #: build/C/man2/killpg.2:42 build/C/man3/sigset.3:26
2050 #, no-wrap
2051 msgid "2010-09-20"
2052 msgstr "2010-09-20"
2053
2054 #. type: Plain text
2055 #: build/C/man2/killpg.2:45
2056 msgid "killpg - send signal to a process group"
2057 msgstr "killpg - シグナルをプロセス・グループに送る"
2058
2059 #. type: Plain text
2060 #: build/C/man2/killpg.2:49
2061 msgid "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2062 msgstr "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2063
2064 #. type: TP
2065 #: build/C/man2/killpg.2:55
2066 #, no-wrap
2067 msgid "B<killpg>():"
2068 msgstr "B<killpg>():"
2069
2070 #. type: Plain text
2071 #: build/C/man2/killpg.2:59 build/C/man2/sigaltstack.2:46
2072 #: build/C/man3/siginterrupt.3:51 build/C/man2/wait4.2:60
2073 msgid ""
2074 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2075 "_XOPEN_SOURCE_EXTENDED"
2076 msgstr ""
2077 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2078 "_XOPEN_SOURCE_EXTENDED"
2079
2080 #. type: Plain text
2081 #: build/C/man2/killpg.2:69
2082 msgid ""
2083 "B<killpg>()  sends the signal I<sig> to the process group I<pgrp>.  See "
2084 "B<signal>(7)  for a list of signals."
2085 msgstr ""
2086 "B<killpg>()  は I<sig> で指定したシグナルを I<pgrp> で指定したプロセス・グ"
2087 "ループに送る。 シグナルの定義の一覧は B<signal>(7)  を参照のこと。"
2088
2089 #. type: Plain text
2090 #: build/C/man2/killpg.2:78
2091 msgid ""
2092 "If I<pgrp> is 0, B<killpg>()  sends the signal to the calling process's "
2093 "process group.  (POSIX says: If I<pgrp> is less than or equal to 1, the "
2094 "behavior is undefined.)"
2095 msgstr ""
2096 "引き数 I<pgrp> に 0 を指定した場合には B<killpg>()  は呼び出し元のプロセスが"
2097 "属しているプロセス・グループに対してシグナルを送る。 (POSIX では以下のように"
2098 "記述されている: I<pgrp> が 1 以下である場合、動作は未定義である。)"
2099
2100 #. type: Plain text
2101 #: build/C/man2/killpg.2:99
2102 msgid "I<Sig> is not a valid signal number."
2103 msgstr "I<sig> で指定された値は無効なシグナル番号である。"
2104
2105 #. type: Plain text
2106 #: build/C/man2/killpg.2:107
2107 msgid "No process can be found in the process group specified by I<pgrp>."
2108 msgstr ""
2109 "I<pgrp> で指定されたプロセス・グループに属するプロセスが存在しなかった。"
2110
2111 #. type: Plain text
2112 #: build/C/man2/killpg.2:111
2113 msgid ""
2114 "The process group was given as 0 but the sending process does not have a "
2115 "process group."
2116 msgstr ""
2117 "プロセス・グループとして 0 が指定されたが、送信プロセスは プロセス・グループ"
2118 "を持っていない。"
2119
2120 #. type: Plain text
2121 #: build/C/man2/killpg.2:115
2122 msgid ""
2123 "SVr4, 4.4BSD (the B<killpg>()  function call first appeared in 4BSD), "
2124 "POSIX.1-2001."
2125 msgstr "SVr4, 4.4BSD (B<killpg>()  は 4BSD で初めて追加された), POSIX.1-2001。"
2126
2127 #. type: Plain text
2128 #: build/C/man2/killpg.2:129
2129 msgid ""
2130 "There are various differences between the permission checking in BSD-type "
2131 "systems and System V-type systems.  See the POSIX rationale for B<kill>().  "
2132 "A difference not mentioned by POSIX concerns the return value B<EPERM>: BSD "
2133 "documents that no signal is sent and B<EPERM> returned when the permission "
2134 "check failed for at least one target process, while POSIX documents B<EPERM> "
2135 "only when the permission check failed for all target processes."
2136 msgstr ""
2137 "BSD 系システムと System V 系システムでは、 許可のチェックに様々な違いがあ"
2138 "る。 B<kill>(2)  についての POSIX の原理 (rationale) を参照すること。 POSIX "
2139 "で記述されていない違いとしては、返り値 B<EPERM> がある。 BSD では「送信先プロ"
2140 "セスの許可のチェックが 1 つでも失敗した場合は、 シグナルが送信されず、 "
2141 "B<EPERM> が返される」と記述されている。 POSIX では「送信先プロセスの許可の"
2142 "チェックが全て失敗した場合にのみ、 B<EPERM> が返される」と記述されている。"
2143
2144 #. type: Plain text
2145 #: build/C/man2/killpg.2:134
2146 msgid ""
2147 "On Linux, B<killpg>()  is implemented as a library function that makes the "
2148 "call I<kill(-pgrp,\\ sig)>."
2149 msgstr ""
2150 "Linux では、 B<killpg>()  はライブラリ関数として実装されており、 I<kill(-"
2151 "pgrp,\\ sig)> の呼び出しが行われる。"
2152
2153 #. type: Plain text
2154 #: build/C/man2/killpg.2:140
2155 msgid ""
2156 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<capabilities>(7), B<credentials>"
2157 "(7)"
2158 msgstr ""
2159 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<credentials>(7), B<capabilities>"
2160 "(7)"
2161
2162 #. type: TH
2163 #: build/C/man2/pause.2:30
2164 #, no-wrap
2165 msgid "PAUSE"
2166 msgstr "PAUSE"
2167
2168 #. type: TH
2169 #: build/C/man2/pause.2:30
2170 #, no-wrap
2171 msgid "2008-10-06"
2172 msgstr "2008-10-06"
2173
2174 #. type: Plain text
2175 #: build/C/man2/pause.2:33
2176 msgid "pause - wait for signal"
2177 msgstr "pause - シグナルを待つ"
2178
2179 #. type: Plain text
2180 #: build/C/man2/pause.2:35 build/C/man3/profil.3:33
2181 msgid "B<#include E<lt>unistd.hE<gt>>"
2182 msgstr "B<#include E<lt>unistd.hE<gt>>"
2183
2184 #. type: Plain text
2185 #: build/C/man2/pause.2:37
2186 msgid "B<int pause(void);>"
2187 msgstr "B<int pause(void);>"
2188
2189 #. type: Plain text
2190 #: build/C/man2/pause.2:42
2191 msgid ""
2192 "B<pause>()  causes the calling process (or thread) to sleep until a signal "
2193 "is delivered that either terminates the process or causes the invocation of "
2194 "a signal-catching function."
2195 msgstr ""
2196 "B<pause>()  は、呼び出したプロセス (またはスレッド) を、 そのプロセスを終了さ"
2197 "せたり、シグナル捕捉関数が起動されるような シグナルが配送されるまで、スリープ"
2198 "させる。"
2199
2200 #.  .BR ERESTARTNOHAND .
2201 #. type: Plain text
2202 #: build/C/man2/pause.2:53
2203 msgid ""
2204 "B<pause>()  only returns when a signal was caught and the signal-catching "
2205 "function returned.  In this case B<pause>()  returns -1, and I<errno> is set "
2206 "to B<EINTR>."
2207 msgstr ""
2208 "B<pause>()  が返るのは、シグナルを受け取りシグナル捕獲関数から返った場合だけ"
2209 "である。 この場合は B<pause>()  は -1 を返し、 I<errno> に B<EINTR> が設定さ"
2210 "れる。"
2211
2212 #. type: TP
2213 #: build/C/man2/pause.2:54 build/C/man2/sigsuspend.2:79
2214 #: build/C/man2/sigwaitinfo.2:123 build/C/man2/wait.2:408
2215 #, no-wrap
2216 msgid "B<EINTR>"
2217 msgstr "B<EINTR>"
2218
2219 #. type: Plain text
2220 #: build/C/man2/pause.2:57
2221 msgid "a signal was caught and the signal-catching function returned."
2222 msgstr "シグナルを受け取り、シグナル捕獲関数から帰ってきた。"
2223
2224 #. type: Plain text
2225 #: build/C/man2/pause.2:64
2226 msgid "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2227 msgstr "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2228
2229 #. type: TH
2230 #: build/C/man2/prctl.2:52
2231 #, no-wrap
2232 msgid "PRCTL"
2233 msgstr "PRCTL"
2234
2235 #. type: TH
2236 #: build/C/man2/prctl.2:52
2237 #, fuzzy, no-wrap
2238 #| msgid "2009-02-20"
2239 msgid "2013-02-25"
2240 msgstr "2009-02-20"
2241
2242 #. type: Plain text
2243 #: build/C/man2/prctl.2:55
2244 msgid "prctl - operations on a process"
2245 msgstr "prctl - プロセスの操作を行なう"
2246
2247 #. type: Plain text
2248 #: build/C/man2/prctl.2:58
2249 #, no-wrap
2250 msgid "B<#include E<lt>sys/prctl.hE<gt>>\n"
2251 msgstr "B<#include E<lt>sys/prctl.hE<gt>>\n"
2252
2253 #. type: Plain text
2254 #: build/C/man2/prctl.2:61
2255 #, no-wrap
2256 msgid ""
2257 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2258 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2259 msgstr ""
2260 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2261 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2262
2263 #. type: Plain text
2264 #: build/C/man2/prctl.2:68
2265 msgid ""
2266 "B<prctl>()  is called with a first argument describing what to do (with "
2267 "values defined in I<E<lt>linux/prctl.hE<gt>>), and further arguments with a "
2268 "significance depending on the first one.  The first argument can be:"
2269 msgstr ""
2270 "B<prctl>()  の動作は最初の引き数によって決定される (この値は I<E<lt>linux/"
2271 "prctl.hE<gt>> に定義されている)。 残りの引き数は最初の引き数によって変化す"
2272 "る。 一番目の引き数として以下のものを指定できる:"
2273
2274 #. type: TP
2275 #: build/C/man2/prctl.2:68
2276 #, no-wrap
2277 msgid "B<PR_CAPBSET_READ> (since Linux 2.6.25)"
2278 msgstr "B<PR_CAPBSET_READ> (Linux 2.6.25 以降)"
2279
2280 #. type: Plain text
2281 #: build/C/man2/prctl.2:80
2282 msgid ""
2283 "Return (as the function result) 1 if the capability specified in I<arg2> is "
2284 "in the calling thread's capability bounding set, or 0 if it is not.  (The "
2285 "capability constants are defined in I<E<lt>linux/capability.hE<gt>>.)  The "
2286 "capability bounding set dictates whether the process can receive the "
2287 "capability through a file's permitted capability set on a subsequent call to "
2288 "B<execve>(2)."
2289 msgstr ""
2290 "で指定されたケーパビリティが呼び出したスレッドのケーパビリティ バインディング"
2291 "セット (capability bounding set) に含まれている場合、 (関数の返り値として) 1 "
2292 "を返し、そうでない場合 0 を返す (ケーパビリティ定数は I<E<lt>linux/"
2293 "capability.hE<gt>> で定義されている)。 ケーパビリティバウンディングセット"
2294 "は、 B<execve>(2)  を呼び出した際に、ファイルの許可 (permitted) ケーパビリ"
2295 "ティの中で そのプロセスが獲得できるケーパビリティを指示するものである。"
2296
2297 #. type: Plain text
2298 #: build/C/man2/prctl.2:85
2299 msgid ""
2300 "If the capability specified in I<arg2> is not valid, then the call fails "
2301 "with the error B<EINVAL>."
2302 msgstr ""
2303 "I<arg2> に指定されたケーパビリティが有効でない場合、 呼び出しはエラー "
2304 "B<EINVAL> で失敗する。"
2305
2306 #. type: TP
2307 #: build/C/man2/prctl.2:85
2308 #, no-wrap
2309 msgid "B<PR_CAPBSET_DROP> (since Linux 2.6.25)"
2310 msgstr "B<PR_CAPBSET_DROP> (Linux 2.6.25 以降)"
2311
2312 #. type: Plain text
2313 #: build/C/man2/prctl.2:94
2314 msgid ""
2315 "If the calling thread has the B<CAP_SETPCAP> capability, then drop the "
2316 "capability specified by I<arg2> from the calling thread's capability "
2317 "bounding set.  Any children of the calling thread will inherit the newly "
2318 "reduced bounding set."
2319 msgstr ""
2320 "呼び出したスレッドがケーパビリティ B<CAP_SETPCAP> を持っている場合、 呼び出し"
2321 "たスレッドのケーパビリティバウンディングセットから I<arg2> で指定されたケーパ"
2322 "ビリティを外す。 呼び出したスレッドの子プロセスは変更後のバウンディングセット"
2323 "を 継承する。"
2324
2325 #. type: Plain text
2326 #: build/C/man2/prctl.2:106
2327 msgid ""
2328 "The call fails with the error: B<EPERM> if the calling thread does not have "
2329 "the B<CAP_SETPCAP>; B<EINVAL> if I<arg2> does not represent a valid "
2330 "capability; or B<EINVAL> if file capabilities are not enabled in the kernel, "
2331 "in which case bounding sets are not supported."
2332 msgstr ""
2333 "呼び出したスレッドが B<CAP_SETPCAP> を持っていない場合、呼び出しはエラー "
2334 "B<EPERM> で失敗する。 I<arg2> に指定されたケーパビリティが有効でない場合、 "
2335 "B<EINVAL> で失敗する。 ファイルケーパビリティがカーネルで有効になっていない場"
2336 "合 (この場合にはバウンディングセットがサポートされない)、 B<EINVAL> で失敗す"
2337 "る。"
2338
2339 #. type: TP
2340 #: build/C/man2/prctl.2:106
2341 #, fuzzy, no-wrap
2342 #| msgid "B<PR_SET_DUMPABLE> (since Linux 2.3.20)"
2343 msgid "B<PR_SET_CHILD_SUBREAPER> (since Linux 3.4)"
2344 msgstr "B<PR_SET_DUMPABLE> (Linux 2.3.20 以降)"
2345
2346 #.  commit ebec18a6d3aa1e7d84aab16225e87fd25170ec2b
2347 #. type: Plain text
2348 #: build/C/man2/prctl.2:131
2349 msgid ""
2350 "If I<arg2> is nonzero, set the \"child subreaper\" attribute of the calling "
2351 "process; if I<arg2> is zero, unset the attribute.  When a process is marked "
2352 "as a child subreaper, all of the children that it creates, and their "
2353 "descendants, will be marked as having a subreaper.  In effect, a subreaper "
2354 "fulfills the role of B<init>(1)  for its descendant processes.  Upon "
2355 "termination of a process that is orphaned (i.e., its immediate parent has "
2356 "already terminated)  and marked as having a subreaper, the nearest still "
2357 "living ancestor subreaper will receive a B<SIGCHLD> signal and be able to "
2358 "B<wait>(2)  on the process to discover its termination status."
2359 msgstr ""
2360
2361 #. type: TP
2362 #: build/C/man2/prctl.2:131
2363 #, fuzzy, no-wrap
2364 #| msgid "B<PR_GET_DUMPABLE> (since Linux 2.3.20)"
2365 msgid "B<PR_GET_CHILD_SUBREAPER> (since Linux 3.4)"
2366 msgstr "B<PR_GET_DUMPABLE> (Linux 2.3.20 以降)"
2367
2368 #. type: Plain text
2369 #: build/C/man2/prctl.2:136
2370 #, fuzzy
2371 #| msgid ""
2372 #| "Return the endian-ness of the calling process, in the location pointed to "
2373 #| "by I<(int\\ *) arg2>."
2374 msgid ""
2375 "Return the \"child subreaper\" setting of the caller, in the location "
2376 "pointed to by I<(int\\ *) arg2>."
2377 msgstr ""
2378 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<(int\\ *) arg2> が指"
2379 "す場所に格納して返す。"
2380
2381 #. type: TP
2382 #: build/C/man2/prctl.2:136
2383 #, no-wrap
2384 msgid "B<PR_SET_DUMPABLE> (since Linux 2.3.20)"
2385 msgstr "B<PR_SET_DUMPABLE> (Linux 2.3.20 以降)"
2386
2387 #.  See http://marc.theaimsgroup.com/?l=linux-kernel&m=115270289030630&w=2
2388 #.  Subject:    Fix prctl privilege escalation (CVE-2006-2451)
2389 #.  From:       Marcel Holtmann <marcel () holtmann ! org>
2390 #.  Date:       2006-07-12 11:12:00
2391 #. type: Plain text
2392 #: build/C/man2/prctl.2:162
2393 #, fuzzy
2394 #| msgid ""
2395 #| "Set the state of the flag determining whether core dumps are produced for "
2396 #| "this process upon delivery of a signal whose default behavior is to "
2397 #| "produce a core dump.  (Normally this flag is set for a process by "
2398 #| "default, but it is cleared when a set-user-ID or set-group-ID program is "
2399 #| "executed and also by various system calls that manipulate process UIDs "
2400 #| "and GIDs).  In kernels up to and including 2.6.12, I<arg2> must be either "
2401 #| "0 (process is not dumpable) or 1 (process is dumpable).  Between kernels "
2402 #| "2.6.13 and 2.6.17, the value 2 was also permitted, which caused any "
2403 #| "binary which normally would not be dumped to be dumped readable by root "
2404 #| "only; for security reasons, this feature has been removed.  (See also the "
2405 #| "description of I</proc/sys/fs/suid_dumpable> in B<proc>(5).)  Processes "
2406 #| "that are not dumpable can not be attached via B<ptrace(2)> "
2407 #| "B<PTRACE_ATTACH>."
2408 msgid ""
2409 "Set the state of the flag determining whether core dumps are produced for "
2410 "the calling process upon delivery of a signal whose default behavior is to "
2411 "produce a core dump.  (Normally, this flag is set for a process by default, "
2412 "but it is cleared when a set-user-ID or set-group-ID program is executed and "
2413 "also by various system calls that manipulate process UIDs and GIDs).  In "
2414 "kernels up to and including 2.6.12, I<arg2> must be either 0 (process is not "
2415 "dumpable) or 1 (process is dumpable).  Between kernels 2.6.13 and 2.6.17, "
2416 "the value 2 was also permitted, which caused any binary which normally would "
2417 "not be dumped to be dumped readable by root only; for security reasons, this "
2418 "feature has been removed.  (See also the description of I</proc/sys/fs/"
2419 "suid_dumpable> in B<proc>(5).)  Processes that are not dumpable can not be "
2420 "attached via B<ptrace>(2)  B<PTRACE_ATTACH>."
2421 msgstr ""
2422 "(Linux 2.3.20 以降) デフォルトの振る舞いではコアダンプを引き起こすよう\n"
2423 "なシグナルを受信したときに、 コアダンプするかどうかを決定するフラグを\n"
2424 "設定する (通常このフラグは、デフォルトではセットされているが、\n"
2425 "set-user-ID あるいは set-group-ID プログラムが実行されたり、 さまざまな\n"
2426 "システムコールによってプロセスの UID や GID が操作されたときに クリアさ\n"
2427 "れる)。 2.6.12 以前のカーネルでは、 I<arg2> は 0 (プロセスはダンプ不可)\n"
2428 "あるいは 1 (プロセスはダンプ可能) の どちらかでなければならない。\n"
2429 "2.6.13 から 2.6.17 までのカーネルでは、値 2 も認められていた。 この値を\n"
2430 "指定すると、通常はダンプされないバイナリが root だけが 読み込み可能な形\n"
2431 "でダンプされた。 セキュリティ上の理由から、この機能は削除された\n"
2432 "(B<proc>(5) の I</proc/sys/fs/suid_dumpable> の説明も参照)。\n"
2433 "ダンプ不可のプロセスを B<ptrace(2)> B<PTRACE_ATTACH> 経由で接続すること\n"
2434 "はできない。"
2435
2436 #. type: TP
2437 #: build/C/man2/prctl.2:162
2438 #, no-wrap
2439 msgid "B<PR_GET_DUMPABLE> (since Linux 2.3.20)"
2440 msgstr "B<PR_GET_DUMPABLE> (Linux 2.3.20 以降)"
2441
2442 #.  Since Linux 2.6.13, the dumpable flag can have the value 2,
2443 #.  but in 2.6.13 PR_GET_DUMPABLE simply returns 1 if the dumpable
2444 #.  flags has a nonzero value.  This was fixed in 2.6.14.
2445 #. type: Plain text
2446 #: build/C/man2/prctl.2:169
2447 msgid ""
2448 "Return (as the function result) the current state of the calling process's "
2449 "dumpable flag."
2450 msgstr ""
2451 "(Linux 2.3.20 以降)  呼び出し元プロセスにおけるダンプ可能フラグの 現在の状態"
2452 "を (関数の返り値として) 返す。"
2453
2454 #. type: TP
2455 #: build/C/man2/prctl.2:169
2456 #, no-wrap
2457 msgid "B<PR_SET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2458 msgstr "B<PR_SET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2459
2460 #.  Respectively 0, 1, 2
2461 #. type: Plain text
2462 #: build/C/man2/prctl.2:179
2463 msgid ""
2464 "Set the endian-ness of the calling process to the value given in I<arg2>, "
2465 "which should be one of the following: B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2466 "or B<PR_ENDIAN_PPC_LITTLE> (PowerPC pseudo little endian)."
2467 msgstr ""
2468 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<arg2> で指定された値"
2469 "に設定する。 指定できる値は B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2470 "B<PR_ENDIAN_PPC_LITTLE> (PowerPC 擬似リトルエンディアン)  のいずれか一つであ"
2471 "る。"
2472
2473 #. type: TP
2474 #: build/C/man2/prctl.2:179
2475 #, no-wrap
2476 msgid "B<PR_GET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2477 msgstr "B<PR_GET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2478
2479 #. type: Plain text
2480 #: build/C/man2/prctl.2:184
2481 msgid ""
2482 "Return the endian-ness of the calling process, in the location pointed to by "
2483 "I<(int\\ *) arg2>."
2484 msgstr ""
2485 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<(int\\ *) arg2> が指"
2486 "す場所に格納して返す。"
2487
2488 #. type: TP
2489 #: build/C/man2/prctl.2:184
2490 #, no-wrap
2491 msgid "B<PR_SET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2492 msgstr "B<PR_SET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2493
2494 #. type: Plain text
2495 #: build/C/man2/prctl.2:191
2496 msgid ""
2497 "Set floating-point emulation control bits to I<arg2>.  Pass "
2498 "B<PR_FPEMU_NOPRINT> to silently emulate fp operations accesses, or "
2499 "B<PR_FPEMU_SIGFPE> to not emulate fp operations and send B<SIGFPE> instead."
2500 msgstr ""
2501 "浮動小数点エミュレーション (floating-point emulation) 制御ビットを I<arg2> で"
2502 "指定された値に設定する。 指定できる値は B<PR_FPEMU_NOPRINT> (浮動小数点命令ア"
2503 "クセスを黙って エミュレートする) か B<PR_FPEMU_SIGFPE> (浮動小数点命令をエ"
2504 "ミュレートせず、 代わりに B<SIGFPE> を送る) である。"
2505
2506 #. type: TP
2507 #: build/C/man2/prctl.2:191
2508 #, no-wrap
2509 msgid "B<PR_GET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2510 msgstr "B<PR_GET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2511
2512 #. type: Plain text
2513 #: build/C/man2/prctl.2:196
2514 msgid ""
2515 "Return floating-point emulation control bits, in the location pointed to by "
2516 "I<(int\\ *) arg2>."
2517 msgstr ""
2518 "浮動小数点エミュレーション制御ビットの値を I<(int\\ *) arg2> が指す場所に格納"
2519 "して返す。"
2520
2521 #. type: TP
2522 #: build/C/man2/prctl.2:196
2523 #, no-wrap
2524 msgid "B<PR_SET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2525 msgstr "B<PR_SET_FPEXC> (Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2526
2527 #. type: Plain text
2528 #: build/C/man2/prctl.2:209
2529 msgid ""
2530 "Set floating-point exception mode to I<arg2>.  Pass B<PR_FP_EXC_SW_ENABLE> "
2531 "to use FPEXC for FP exception enables, B<PR_FP_EXC_DIV> for floating-point "
2532 "divide by zero, B<PR_FP_EXC_OVF> for floating-point overflow, "
2533 "B<PR_FP_EXC_UND> for floating-point underflow, B<PR_FP_EXC_RES> for floating-"
2534 "point inexact result, B<PR_FP_EXC_INV> for floating-point invalid operation, "
2535 "B<PR_FP_EXC_DISABLED> for FP exceptions disabled, B<PR_FP_EXC_NONRECOV> for "
2536 "async nonrecoverable exception mode, B<PR_FP_EXC_ASYNC> for async "
2537 "recoverable exception mode, B<PR_FP_EXC_PRECISE> for precise exception mode."
2538 msgstr ""
2539 "浮動小数点例外モード (floating-point exception mode) を I<arg2> で指定された"
2540 "値に設定する。 指定できるのは以下の値である: B<PR_FP_EXC_SW_ENABLE> (FPEXC で"
2541 "浮動小数点例外を有効にする)、 B<PR_FP_EXC_DIV> (0 除算)、 B<PR_FP_EXC_OVF> "
2542 "(オーバーフロー)、 B<PR_FP_EXC_UND> (アンダーフロー)、 B<PR_FP_EXC_RES> (不正"
2543 "確な結果 (inexact result))、 B<PR_FP_EXC_INV> (不正な命令 (invalid "
2544 "operation))、 B<PR_FP_EXC_DISABLED> (浮動小数点例外を無効にする)、 "
2545 "B<PR_FP_EXC_NONRECOV> (async nonrecoverable exception mode)、 "
2546 "B<PR_FP_EXC_ASYNC> (async recoverable exception mode)、 B<PR_FP_EXC_PRECISE> "
2547 "(precise exception mode)。"
2548
2549 #. type: TP
2550 #: build/C/man2/prctl.2:209
2551 #, no-wrap
2552 msgid "B<PR_GET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2553 msgstr "B<PR_GET_FPEXC>(Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2554
2555 #. type: Plain text
2556 #: build/C/man2/prctl.2:214
2557 msgid ""
2558 "Return floating-point exception mode, in the location pointed to by I<(int\\ "
2559 "*) arg2>."
2560 msgstr ""
2561 "浮動小数点例外モードの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
2562
2563 #. type: TP
2564 #: build/C/man2/prctl.2:214
2565 #, no-wrap
2566 msgid "B<PR_SET_KEEPCAPS> (since Linux 2.2.18)"
2567 msgstr "B<PR_SET_KEEPCAPS> (Linux 2.2.18 以降)"
2568
2569 #. type: Plain text
2570 #: build/C/man2/prctl.2:232
2571 msgid ""
2572 "Set the state of the thread's \"keep capabilities\" flag, which determines "
2573 "whether the threads's permitted capability set is cleared when a change is "
2574 "made to the threads's user IDs such that the threads's real UID, effective "
2575 "UID, and saved set-user-ID all become nonzero when at least one of them "
2576 "previously had the value 0.  By default, the permitted capability set is "
2577 "cleared when such a change is made; setting the \"keep capabilities\" flag "
2578 "prevents it from being cleared.  I<arg2> must be either 0 (permitted "
2579 "capabilities are cleared)  or 1 (permitted capabilities are kept).  (A "
2580 "thread's I<effective> capability set is always cleared when such a "
2581 "credential change is made, regardless of the setting of the \"keep "
2582 "capabilities\" flag.)  The \"keep capabilities\" value will be reset to 0 on "
2583 "subsequent calls to B<execve>(2)."
2584 msgstr ""
2585 "スレッドの「ケーパビリティ保持」フラグを設定する。\n"
2586 "このフラグは、スレッドの実 UID、実効 UID、保存 set-user-ID のうち少なく\n"
2587 "とも一つが 0 であった状態から、これら全てが 0 以外に変更されたとき、\n"
2588 "スレッドの許可ケーパビリティ集合がクリアされるかどうかを決定する。\n"
2589 "デフォルトでは、このような変更が行われた場合、許可ケーパビリティセット\n"
2590 "はクリアされる。「ケーパビリティ保持」フラグを設定すると、\n"
2591 "許可ケーパビリティセットはクリアされなくなる。\n"
2592 "I<arg2> は 0 (許可ケーパビリティをクリアする) か 1 (許可ケーパビリティ\n"
2593 "を保持する) の どちらかでなければならない。\n"
2594 "(このような ID の変更が行われた場合、「ケーパビリティ保持」フラグの設定\n"
2595 "に関わらず、スレッドのI<実効>ケーパビリティセットは常にクリアされる。)\n"
2596 "B<execve>(2) が呼び出されると、「ケーパビリティ保持」フラグは 0\n"
2597 "にリセットされる。"
2598
2599 #. type: TP
2600 #: build/C/man2/prctl.2:232
2601 #, no-wrap
2602 msgid "B<PR_GET_KEEPCAPS> (since Linux 2.2.18)"
2603 msgstr "B<PR_GET_KEEPCAPS> (Linux 2.2.18 以降)"
2604
2605 #. type: Plain text
2606 #: build/C/man2/prctl.2:236
2607 msgid ""
2608 "Return (as the function result) the current state of the calling threads's "
2609 "\"keep capabilities\" flag."
2610 msgstr ""
2611 "呼び出し元スレッドにおける「ケーパビリティ保持」フラグの 現在の状態を (関数の"
2612 "返り値として) 返す。"
2613
2614 #. type: TP
2615 #: build/C/man2/prctl.2:236
2616 #, no-wrap
2617 msgid "B<PR_SET_NAME> (since Linux 2.6.9)"
2618 msgstr "B<PR_SET_NAME> (Linux 2.6.9 以降)"
2619
2620 #.  TASK_COMM_LEN in include/linux/sched.h
2621 #. type: Plain text
2622 #: build/C/man2/prctl.2:244
2623 #, fuzzy
2624 #| msgid ""
2625 #| "Set the process name for the calling process, using the value in the "
2626 #| "location pointed to by I<(char\\ *) arg2>.  The name can be up to 16 "
2627 #| "bytes long, and should be null-terminated if it contains fewer bytes."
2628 msgid ""
2629 "Set the process name for the calling thread, using the value in the location "
2630 "pointed to by I<(char\\ *) arg2>.  The name can be up to 16 bytes long, and "
2631 "should be null-terminated if it contains fewer bytes."
2632 msgstr ""
2633 "呼び出し元プロセスのプロセス名を I<(char\\ *) arg2> が指す場所に格納された値"
2634 "を使って設定する。 名前は最大で 16 バイトであり、 それより少ないバイト数の場"
2635 "合は NULL で終端すべきである。"
2636
2637 #. type: TP
2638 #: build/C/man2/prctl.2:244
2639 #, no-wrap
2640 msgid "B<PR_GET_NAME> (since Linux 2.6.11)"
2641 msgstr "B<PR_GET_NAME> (Linux 2.6.11 以降)"
2642
2643 #. type: Plain text
2644 #: build/C/man2/prctl.2:251
2645 #, fuzzy
2646 #| msgid ""
2647 #| "Return the process name for the calling process, in the buffer pointed to "
2648 #| "by I<(char\\ *) arg2>.  The buffer should allow space for up to 16 bytes; "
2649 #| "the returned string will be null-terminated if it is shorter than that."
2650 msgid ""
2651 "Return the name for the calling thread, in the buffer pointed to by I<(char"
2652 "\\ *) arg2>.  The buffer should allow space for up to 16 bytes; the returned "
2653 "string will be null-terminated if it is shorter than that."
2654 msgstr ""
2655 "呼び出し元プロセスのプロセス名を I<(char\\ *) arg2> が指す場所に格納して返"
2656 "す。 バッファは最大で 16 バイトを格納できるようにすべきである。 返される文字"
2657 "列は、長さが 16 バイトより短い場合は NULL 終端される。"
2658
2659 #. type: TP
2660 #: build/C/man2/prctl.2:251
2661 #, fuzzy, no-wrap
2662 #| msgid "B<PR_SET_MM> (since Linux 3.3)"
2663 msgid "B<PR_SET_NO_NEW_PRIVS> (since Linux 3.5)"
2664 msgstr "B<PR_SET_MM> (Linux 3.3 以降)"
2665
2666 #. type: Plain text
2667 #: build/C/man2/prctl.2:274
2668 msgid ""
2669 "Set the calling process's I<no_new_privs> bit to the value in I<arg2>.  With "
2670 "I<no_new_privs> set to 1, B<execve>(2)  promises not to grant privileges to "
2671 "do anything that could not have been done without the B<execve>(2)  call "
2672 "(for example, rendering the set-user-ID and set-group-ID permission bits, "
2673 "and file capabilities non-functional).  Once set, this bit cannot be unset.  "
2674 "The setting of this bit is inherited by children created by B<fork>(2)  and "
2675 "B<clone>(2), and preserved across B<execve>(2)."
2676 msgstr ""
2677
2678 #. type: Plain text
2679 #: build/C/man2/prctl.2:277
2680 msgid ""
2681 "For more information, see the kernel source file I<Documentation/prctl/"
2682 "no_new_privs.txt>."
2683 msgstr ""
2684
2685 #. type: TP
2686 #: build/C/man2/prctl.2:277
2687 #, fuzzy, no-wrap
2688 #| msgid "B<PR_GET_PDEATHSIG> (since Linux 2.3.15)"
2689 msgid "B<PR_GET_NO_NEW_PRIVS> (since Linux 3.5)"
2690 msgstr "B<PR_GET_PDEATHSIG> (Linux 2.3.15 以降)"
2691
2692 #. type: Plain text
2693 #: build/C/man2/prctl.2:288
2694 msgid ""
2695 "Return the value of the I<no_new_privs> bit for the current process.  A "
2696 "value of 0 indicates the regular B<execve>(2)  behavior.  A value of 1 "
2697 "indicates B<execve>(2)  will operate in the privilege-restricting mode "
2698 "described above."
2699 msgstr ""
2700
2701 #. type: TP
2702 #: build/C/man2/prctl.2:288
2703 #, no-wrap
2704 msgid "B<PR_SET_PDEATHSIG> (since Linux 2.1.57)"
2705 msgstr "B<PR_SET_PDEATHSIG> (Linux 2.1.57 以降)"
2706
2707 #. type: Plain text
2708 #: build/C/man2/prctl.2:299
2709 #, fuzzy
2710 #| msgid ""
2711 #| "Set the parent process death signal of the calling process to I<arg2> "
2712 #| "(either a signal value in the range 1..maxsig, or 0 to clear).  This is "
2713 #| "the signal that the calling process will get when its parent dies.  This "
2714 #| "value is cleared for the child of a B<fork>(2)  and (since Linux 2.5.36 / "
2715 #| "2.6.23)  when executing a set-user_ID or set-group-ID binary."
2716 msgid ""
2717 "Set the parent process death signal of the calling process to I<arg2> "
2718 "(either a signal value in the range 1..maxsig, or 0 to clear).  This is the "
2719 "signal that the calling process will get when its parent dies.  This value "
2720 "is cleared for the child of a B<fork>(2)  and (since Linux 2.4.36 / 2.6.23)  "
2721 "when executing a set-user-ID or set-group-ID binary."
2722 msgstr ""
2723 "親プロセス死亡シグナル (parent process death signal) を I<arg2> に設定\n"
2724 "する (設定できるシグナル値の範囲は 1..maxsig であり、0 は通知の解除であ\n"
2725 "る)。 呼び出し元プロセスの親プロセスが死んだ際に、ここで設定した値が シ\n"
2726 "グナルとして通知される。この値は B<fork>(2) の子プロセスでは解除される。\n"
2727 "(Linux 2.5.36 以降および 2.6.23 以降では) set-user-ID もしくは\n"
2728 "set-group-ID されたバイナリを実行した場合にも、このフラグは解除される。"
2729
2730 #. type: TP
2731 #: build/C/man2/prctl.2:299
2732 #, no-wrap
2733 msgid "B<PR_GET_PDEATHSIG> (since Linux 2.3.15)"
2734 msgstr "B<PR_GET_PDEATHSIG> (Linux 2.3.15 以降)"
2735
2736 #. type: Plain text
2737 #: build/C/man2/prctl.2:304
2738 msgid ""
2739 "Return the current value of the parent process death signal, in the location "
2740 "pointed to by I<(int\\ *) arg2>."
2741 msgstr ""
2742 "親プロセス死亡シグナルの現在の値を I<(int\\ *) arg2> が指す場所に格納して返"
2743 "す。"
2744
2745 #. type: TP
2746 #: build/C/man2/prctl.2:304
2747 #, fuzzy, no-wrap
2748 #| msgid "B<PR_SET_MM> (since Linux 3.3)"
2749 msgid "B<PR_SET_PTRACER> (since Linux 3.4)"
2750 msgstr "B<PR_SET_MM> (Linux 3.3 以降)"
2751
2752 #.  commit 2d514487faf188938a4ee4fb3464eeecfbdcf8eb
2753 #.  commit bf06189e4d14641c0148bea16e9dd24943862215
2754 #. type: Plain text
2755 #: build/C/man2/prctl.2:329
2756 msgid ""
2757 "This is only meaningful when the Yama LSM is enabled and in mode 1 "
2758 "(\"restricted ptrace\", visible via I</proc/sys/kernel/yama/ptrace_scope>).  "
2759 "When a \"ptracer process ID\" is passed in I<arg2>, the caller is declaring "
2760 "that the ptracer process can B<ptrace>(2)  the calling process as if it were "
2761 "a direct process ancestor.  Each B<PR_SET_PTRACER> operation replaces the "
2762 "previous \"ptracer process ID\".  Employing B<PR_SET_PTRACER> with I<arg2> "
2763 "set to 0 clears the caller's \"ptracer process ID\".  If I<arg2> is "
2764 "B<PR_SET_PTRACER_ANY,> the ptrace restrictions introduced by Yama are "
2765 "effectively disabled for the calling process."
2766 msgstr ""
2767
2768 #. type: Plain text
2769 #: build/C/man2/prctl.2:332
2770 msgid ""
2771 "For further information, see the kernel source file I<Documentation/security/"
2772 "Yama.txt>."
2773 msgstr ""
2774
2775 #. type: TP
2776 #: build/C/man2/prctl.2:332
2777 #, no-wrap
2778 msgid "B<PR_SET_SECCOMP> (since Linux 2.6.23)"
2779 msgstr "B<PR_SET_SECCOMP> (Linux 2.6.23 以降)"
2780
2781 #.  See http://thread.gmane.org/gmane.linux.kernel/542632
2782 #.  [PATCH 0 of 2] seccomp updates
2783 #.  andrea@cpushare.com
2784 #. type: Plain text
2785 #: build/C/man2/prctl.2:343
2786 msgid ""
2787 "Set the secure computing (seccomp) mode for the calling thread, to limit the "
2788 "available system calls.  The seccomp mode is selected via I<arg2>.  (The "
2789 "seccomp constants are defined in I<E<lt>linux/seccomp.hE<gt>>.)"
2790 msgstr ""
2791
2792 #. type: Plain text
2793 #: build/C/man2/prctl.2:364
2794 #, fuzzy
2795 #| msgid ""
2796 #| "Set the secure computing mode for the calling thread.  In the current "
2797 #| "implementation, I<arg2> must be 1.  After the secure computing mode has "
2798 #| "been set to 1, the only system calls that the thread is permitted to make "
2799 #| "are B<read>(2), B<write>(2), B<_exit>(2), and B<sigreturn>(2).  Other "
2800 #| "system calls result in the delivery of a B<SIGKILL> signal.  Secure "
2801 #| "computing mode is useful for number-crunching applications that may need "
2802 #| "to execute untrusted byte code, perhaps obtained by reading from a pipe "
2803 #| "or socket.  This operation is only available if the kernel is configured "
2804 #| "with CONFIG_SECCOMP enabled."
2805 msgid ""
2806 "With I<arg2> set to B<SECCOMP_MODE_STRICT> the only system calls that the "
2807 "thread is permitted to make are B<read>(2), B<write>(2), B<_exit>(2), and "
2808 "B<sigreturn>(2).  Other system calls result in the delivery of a B<SIGKILL> "
2809 "signal.  Strict secure computing mode is useful for number-crunching "
2810 "applications that may need to execute untrusted byte code, perhaps obtained "
2811 "by reading from a pipe or socket.  This operation is only available if the "
2812 "kernel is configured with B<CONFIG_SECCOMP> enabled."
2813 msgstr ""
2814 "呼び出したスレッドの secure computing モードを設定する。 現在の実装では、 "
2815 "I<arg2> は 1 にしなければならない。 secure computing モードを 1 に設定する"
2816 "と、 そのスレッドが呼び出しを許可されるシステムコールは B<read>(2), B<write>"
2817 "(2), B<_exit>(2), B<sigreturn>(2)  だけになる。 それ以外のシステムコールを呼"
2818 "び出すと、シグナル B<SIGKILL> が配送される。 パイプやソケットから読み込んだ、"
2819 "信頼できないバイトコードを実行する 必要がある大量の演算を行うアプリケーション"
2820 "において、 secure computing モードは役立つ。 この操作は利用できるのは、カーネ"
2821 "ルが CONFIG_SECCOMP を有効にして 作成されている場合だけである。"
2822
2823 #. type: Plain text
2824 #: build/C/man2/prctl.2:379
2825 msgid ""
2826 "With I<arg2> set to B<SECCOMP_MODE_FILTER> (since Linux 3.5)  the system "
2827 "calls allowed are defined by a pointer to a Berkeley Packet Filter passed in "
2828 "I<arg3>.  This argument is a pointer to I<struct sock_fprog>; it can be "
2829 "designed to filter arbitrary system calls and system call arguments.  This "
2830 "mode is only available if the kernel is configured with "
2831 "B<CONFIG_SECCOMP_FILTER> enabled."
2832 msgstr ""
2833
2834 #. type: Plain text
2835 #: build/C/man2/prctl.2:394
2836 msgid ""
2837 "If B<SECCOMP_MODE_FILTER> filters permit B<fork>(2), then the seccomp mode "
2838 "is inherited by children created by B<fork>(2); if B<execve>(2)  is "
2839 "permitted, then the seccomp mode is preserved across B<execve>(2).  If the "
2840 "filters permit B<prctl>()  calls, then additional filters can be added; they "
2841 "are run in order until the first non-allow result is seen."
2842 msgstr ""
2843
2844 #. type: Plain text
2845 #: build/C/man2/prctl.2:397
2846 msgid ""
2847 "For further information, see the kernel source file I<Documentation/prctl/"
2848 "seccomp_filter.txt>."
2849 msgstr ""
2850
2851 #. type: TP
2852 #: build/C/man2/prctl.2:397
2853 #, no-wrap
2854 msgid "B<PR_GET_SECCOMP> (since Linux 2.6.23)"
2855 msgstr "B<PR_GET_SECCOMP> (Linux 2.6.23 以降)"
2856
2857 #. type: Plain text
2858 #: build/C/man2/prctl.2:412
2859 #, fuzzy
2860 #| msgid ""
2861 #| "Return the secure computing mode of the calling thread.  Not very useful "
2862 #| "for the current implementation (mode equals 1), but may be useful for "
2863 #| "other possible future modes: if the caller is not in secure computing "
2864 #| "mode, this operation returns 0; if the caller is in secure computing "
2865 #| "mode, then the B<prctl>()  call will cause a B<SIGKILL> signal to be sent "
2866 #| "to the process.  This operation is only available if the kernel is "
2867 #| "configured with CONFIG_SECCOMP enabled."
2868 msgid ""
2869 "Return the secure computing mode of the calling thread.  If the caller is "
2870 "not in secure computing mode, this operation returns 0; if the caller is in "
2871 "strict secure computing mode, then the B<prctl>()  call will cause a "
2872 "B<SIGKILL> signal to be sent to the process.  If the caller is in filter "
2873 "mode, and this system call is allowed by the seccomp filters, it returns 2.  "
2874 "This operation is only available if the kernel is configured with "
2875 "B<CONFIG_SECCOMP> enabled."
2876 msgstr ""
2877 "呼び出したスレッドの secure computing モードを返す。 現在の実装 (モードは 1 "
2878 "固定) はあまり役に立たないが、 将来他のモードが実装されると役立つようになるか"
2879 "もしれない。 呼び出したスレッドが secure computing モードでなかった場合、 こ"
2880 "の操作は 0 を返す。 呼び出したスレッドが secure computing モードの場合、 "
2881 "B<prctl>()  を呼び出すとシグナル B<SIGKILL> がそのプロセスに送信される。 この"
2882 "操作が利用できるのは、カーネルが CONFIG_SECCOMP を有効にして 作成されている場"
2883 "合だけである。"
2884
2885 #. type: TP
2886 #: build/C/man2/prctl.2:412
2887 #, no-wrap
2888 msgid "B<PR_SET_SECUREBITS> (since Linux 2.6.26)"
2889 msgstr "B<PR_SET_SECUREBITS> (Linux 2.6.26 以降)"
2890
2891 #. type: Plain text
2892 #: build/C/man2/prctl.2:418
2893 msgid ""
2894 "Set the \"securebits\" flags of the calling thread to the value supplied in "
2895 "I<arg2>.  See B<capabilities>(7)."
2896 msgstr ""
2897 "呼び出したスレッドの \"securebits\" フラグを I<arg2> で渡された値に設定す"
2898 "る。 B<capabilities>(7)  参照。"
2899
2900 #. type: TP
2901 #: build/C/man2/prctl.2:418
2902 #, no-wrap
2903 msgid "B<PR_GET_SECUREBITS> (since Linux 2.6.26)"
2904 msgstr "B<PR_GET_SECUREBITS> (Linux 2.6.26 以降)"
2905
2906 #. type: Plain text
2907 #: build/C/man2/prctl.2:424
2908 msgid ""
2909 "Return (as the function result)  the \"securebits\" flags of the calling "
2910 "thread.  See B<capabilities>(7)."
2911 msgstr ""
2912 "呼び出したスレッドの \"securebits\" フラグを (関数の返り値として) 返す。 "
2913 "B<capabilities>(7)  参照。"
2914
2915 #. type: TP
2916 #: build/C/man2/prctl.2:424
2917 #, fuzzy, no-wrap
2918 #| msgid "B<PR_GET_PDEATHSIG> (since Linux 2.3.15)"
2919 msgid "B<PR_GET_TID_ADDRESS> (since Linux 3.5)"
2920 msgstr "B<PR_GET_PDEATHSIG> (Linux 2.3.15 以降)"
2921
2922 #.  commit 300f786b2683f8bb1ec0afb6e1851183a479c86d
2923 #. type: Plain text
2924 #: build/C/man2/prctl.2:439
2925 msgid ""
2926 "Retrieve the I<clear_child_tid> address set by B<set_tid_address>(2)  and "
2927 "the B<clone>(2)  B<CLONE_CHILD_CLEARTID> flag, in the location pointed to by "
2928 "I<(int\\ **)\\ arg2>.  This feature is available only if the kernel is built "
2929 "with the B<CONFIG_CHECKPOINT_RESTORE> option enabled."
2930 msgstr ""
2931
2932 #. type: TP
2933 #: build/C/man2/prctl.2:439
2934 #, fuzzy, no-wrap
2935 #| msgid "B<PR_SET_NAME> (since Linux 2.6.9)"
2936 msgid "B<PR_SET_TIMERSLACK> (since Linux 2.6.28)"
2937 msgstr "B<PR_SET_NAME> (Linux 2.6.9 以降)"
2938
2939 #.  See https://lwn.net/Articles/369549/
2940 #.  commit 6976675d94042fbd446231d1bd8b7de71a980ada
2941 #.  It seems that it's not possible to set the timer slack to zero;
2942 #.  The minimum value is 1? Seems a little strange.
2943 #. type: Plain text
2944 #: build/C/man2/prctl.2:458
2945 msgid ""
2946 "Set the current timer slack for the calling thread to the nanosecond value "
2947 "supplied in I<arg2>.  If I<arg2> is less than or equal to zero, reset the "
2948 "current timer slack to the thread's default timer slack value.  The timer "
2949 "slack is used by the kernel to group timer expirations for the calling "
2950 "thread that are close to one another; as a consequence, timer expirations "
2951 "for the thread may be up to the specified number of nanoseconds late (but "
2952 "will never expire early).  Grouping timer expirations can help reduce system "
2953 "power consumption by minimizing CPU wake-ups."
2954 msgstr ""
2955
2956 #.  List obtained by grepping for futex usage in glibc source
2957 #. type: Plain text
2958 #: build/C/man2/prctl.2:478
2959 msgid ""
2960 "The timer expirations affected by timer slack are those set by B<select>(2), "
2961 "B<pselect>(2), B<poll>(2), B<ppoll>(2), B<epoll_wait>(2), B<epoll_pwait>(2), "
2962 "B<clock_nanosleep>(2), B<nanosleep>(2), and B<futex>(2)  (and thus the "
2963 "library functions implemented via futexes, including "
2964 "B<pthread_cond_timedwait>(3), B<pthread_mutex_timedlock>(3), "
2965 "B<pthread_rwlock_timedrdlock>(3), B<pthread_rwlock_timedwrlock>(3), and "
2966 "B<sem_timedwait>(3))."
2967 msgstr ""
2968
2969 #. type: Plain text
2970 #: build/C/man2/prctl.2:482
2971 msgid ""
2972 "Timer slack is not applied to threads that are scheduled under a realtime "
2973 "scheduling policy (see B<sched_setscheduler>(2))."
2974 msgstr ""
2975
2976 #. type: Plain text
2977 #: build/C/man2/prctl.2:499
2978 msgid ""
2979 "Each thread has two associated timer slack values: a \"default\" value, and "
2980 "a \"current\" value.  The current value is the one that governs grouping of "
2981 "timer expirations.  When a new thread is created, the two timer slack values "
2982 "are made the same as the current value of the creating thread.  Thereafter, "
2983 "a thread can adjust its current timer slack value via B<PR_SET_TIMERSLACK> "
2984 "(the default value can't be changed).  The timer slack values of I<init> "
2985 "(PID 1), the ancestor of all processes, are 50,000 nanoseconds (50 "
2986 "microseconds).  The timer slack values are preserved across B<execve>(2)."
2987 msgstr ""
2988
2989 #. type: TP
2990 #: build/C/man2/prctl.2:499
2991 #, fuzzy, no-wrap
2992 #| msgid "B<PR_GET_NAME> (since Linux 2.6.11)"
2993 msgid "B<PR_GET_TIMERSLACK> (since Linux 2.6.28)"
2994 msgstr "B<PR_GET_NAME> (Linux 2.6.11 以降)"
2995
2996 #. type: Plain text
2997 #: build/C/man2/prctl.2:502
2998 #, fuzzy
2999 #| msgid "Sends a signal to the calling thread."
3000 msgid "Return the current timer slack value of the calling thread."
3001 msgstr "呼び出したスレッドにシグナルを送る。"
3002
3003 #. type: TP
3004 #: build/C/man2/prctl.2:502
3005 #, no-wrap
3006 msgid "B<PR_SET_TIMING> (since Linux 2.6.0-test4)"
3007 msgstr "B<PR_SET_TIMING> (Linux 2.6.0-test4 以降)"
3008
3009 #.  0
3010 #.  1
3011 #.  PR_TIMING_TIMESTAMP doesn't do anything in 2.6.26-rc8,
3012 #.  and looking at the patch history, it appears
3013 #.  that it never did anything.
3014 #. type: Plain text
3015 #: build/C/man2/prctl.2:519
3016 msgid ""
3017 "Set whether to use (normal, traditional) statistical process timing or "
3018 "accurate timestamp-based process timing, by passing B<PR_TIMING_STATISTICAL> "
3019 "or B<PR_TIMING_TIMESTAMP> to I<arg2>.  B<PR_TIMING_TIMESTAMP> is not "
3020 "currently implemented (attempting to set this mode will yield the error "
3021 "B<EINVAL>)."
3022 msgstr ""
3023 "(通常の、伝統的に使われてきた) 統計的なプロセスタイミングを使用するか、\n"
3024 "正確なタイムスタンプに基づくプロセスタイミングを使用するかを設定する。\n"
3025 "I<arg2> に指定できる値は B<PR_TIMING_STATISTICAL> か\n"
3026 "B<PR_TIMING_TIMESTAMP> である。 B<PR_TIMING_TIMESTAMP> は現在のところ実\n"
3027 "装されていない (このモードに設定しようとするとエラー B<EINVAL> が起こる\n"
3028 "ことだろう)。"
3029
3030 #. type: TP
3031 #: build/C/man2/prctl.2:519
3032 #, no-wrap
3033 msgid "B<PR_GET_TIMING> (since Linux 2.6.0-test4)"
3034 msgstr "B<PR_GET_TIMING> (Linux 2.6.0-test4 以降)"
3035
3036 #. type: Plain text
3037 #: build/C/man2/prctl.2:523
3038 msgid ""
3039 "Return (as the function result) which process timing method is currently in "
3040 "use."
3041 msgstr "現在使用中のプロセスタイミングを決める方法を返す。"
3042
3043 #. type: TP
3044 #: build/C/man2/prctl.2:523
3045 #, no-wrap
3046 msgid "B<PR_TASK_PERF_EVENTS_DISABLE> (since Linux 2.6.31)"
3047 msgstr "B<PR_TASK_PERF_EVENTS_DISABLE> (Linux 2.6.31 以降)"
3048
3049 #. type: Plain text
3050 #: build/C/man2/prctl.2:532
3051 msgid ""
3052 "Disable all performance counters attached to the calling process, regardless "
3053 "of whether the counters were created by this process or another process.  "
3054 "Performance counters created by the calling process for other processes are "
3055 "unaffected.  For more information on performance counters, see the Linux "
3056 "kernel source file I<tools/perf/design.txt>."
3057 msgstr ""
3058
3059 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
3060 #. type: Plain text
3061 #: build/C/man2/prctl.2:538
3062 msgid ""
3063 "Originally called B<PR_TASK_PERF_COUNTERS_DISABLE>; renamed (with same "
3064 "numerical value)  in Linux 2.6.32."
3065 msgstr ""
3066 "以前は B<PR_TASK_PERF_COUNTERS_DISABLE> と呼ばれていた。\n"
3067 "Linux 2.6.32 で名前が変更された (数値は同じままである)。"
3068
3069 #. type: TP
3070 #: build/C/man2/prctl.2:538
3071 #, no-wrap
3072 msgid "B<PR_TASK_PERF_EVENTS_ENABLE> (since Linux 2.6.31)"
3073 msgstr "B<PR_TASK_PERF_EVENTS_ENABLE> (Linux 2.6.31 以降)"
3074
3075 #. type: Plain text
3076 #: build/C/man2/prctl.2:543
3077 msgid ""
3078 "The converse of B<PR_TASK_PERF_EVENTS_DISABLE>; enable performance counters "
3079 "attached to the calling process."
3080 msgstr ""
3081
3082 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
3083 #.  commit cdd6c482c9ff9c55475ee7392ec8f672eddb7be6
3084 #. type: Plain text
3085 #: build/C/man2/prctl.2:550
3086 msgid ""
3087 "Originally called B<PR_TASK_PERF_COUNTERS_ENABLE>; renamed in Linux 2.6.32."
3088 msgstr ""
3089 "以前は B<PR_TASK_PERF_COUNTERS_ENABLE> と呼ばれていた。\n"
3090 "Linux 2.6.32 で名前が変更された。"
3091
3092 #. type: TP
3093 #: build/C/man2/prctl.2:550
3094 #, no-wrap
3095 msgid "B<PR_SET_TSC> (since Linux 2.6.26, x86 only)"
3096 msgstr "B<PR_SET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3097
3098 #. type: Plain text
3099 #: build/C/man2/prctl.2:563
3100 msgid ""
3101 "Set the state of the flag determining whether the timestamp counter can be "
3102 "read by the process.  Pass B<PR_TSC_ENABLE> to I<arg2> to allow it to be "
3103 "read, or B<PR_TSC_SIGSEGV> to generate a B<SIGSEGV> when the process tries "
3104 "to read the timestamp counter."
3105 msgstr ""
3106 "そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する フラグの状態を"
3107 "設定する。 読み出しを許可する場合は I<arg2> に B<PR_TSC_ENABLE> を、そのプロ"
3108 "セスがタイムスタンプ・カウンタを読み出そうとした際に B<SIGSEGV> を発生させる"
3109 "場合には B<PR_TSC_SIGSEGV> を渡す。"
3110
3111 #. type: TP
3112 #: build/C/man2/prctl.2:563
3113 #, no-wrap
3114 msgid "B<PR_GET_TSC> (since Linux 2.6.26, x86 only)"
3115 msgstr "B<PR_GET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3116
3117 #. type: Plain text
3118 #: build/C/man2/prctl.2:569
3119 msgid ""
3120 "Return the state of the flag determining whether the timestamp counter can "
3121 "be read, in the location pointed to by I<(int\\ *) arg2>."
3122 msgstr ""
3123 "そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する フラグの状態"
3124 "を I<(int\\ *) arg2> が指す場所に格納して返す。"
3125
3126 #. type: TP
3127 #: build/C/man2/prctl.2:569
3128 #, no-wrap
3129 msgid "B<PR_SET_UNALIGN>"
3130 msgstr "B<PR_SET_UNALIGN>"
3131
3132 #. type: Plain text
3133 #: build/C/man2/prctl.2:579
3134 msgid ""
3135 "(Only on: ia64, since Linux 2.3.48; parisc, since Linux 2.6.15; PowerPC, "
3136 "since Linux 2.6.18; Alpha, since Linux 2.6.22)  Set unaligned access control "
3137 "bits to I<arg2>.  Pass B<PR_UNALIGN_NOPRINT> to silently fix up unaligned "
3138 "user accesses, or B<PR_UNALIGN_SIGBUS> to generate B<SIGBUS> on unaligned "
3139 "user access."
3140 msgstr ""
3141 "(ia64 では Linux 2.3.48 以降; parisc では Linux 2.6.15 以降; PowerPC では "
3142 "Linux 2.6.18 以降; Alpha では Linux 2.6.22 以降; これらのアーキテクチャの"
3143 "み)  unaligned アクセス制御ビットを I<arg2> で指定された値に設定する。 指定で"
3144 "きる値は B<PR_UNALIGN_NOPRINT> (unaligned なユーザアクセスを黙って 修正する) "
3145 "か B<PR_UNALIGN_SIGBUS> (unaligned なユーザアクセスがあった場合 B<SIGBUS> を"
3146 "生成する) である。"
3147
3148 #. type: TP
3149 #: build/C/man2/prctl.2:579
3150 #, no-wrap
3151 msgid "B<PR_GET_UNALIGN>"
3152 msgstr "B<PR_GET_UNALIGN>"
3153
3154 #. type: Plain text
3155 #: build/C/man2/prctl.2:586
3156 msgid ""
3157 "(see B<PR_SET_UNALIGN> for information on versions and architectures)  "
3158 "Return unaligned access control bits, in the location pointed to by I<(int\\ "
3159 "*) arg2>."
3160 msgstr ""
3161 "(バージョンとアーキテクチャの情報は B<PR_SET_UNALIGN> 参照)  unaligned アクセ"
3162 "ス制御ビットの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
3163
3164 #. type: TP
3165 #: build/C/man2/prctl.2:586
3166 #, no-wrap
3167 msgid "B<PR_MCE_KILL> (since Linux 2.6.32)"
3168 msgstr "B<PR_MCE_KILL> (Linux 2.6.32 以降)"
3169
3170 #. type: Plain text
3171 #: build/C/man2/prctl.2:626
3172 msgid ""
3173 "Set the machine check memory corruption kill policy for the current thread.  "
3174 "If I<arg2> is B<PR_MCE_KILL_CLEAR>, clear the thread memory corruption kill "
3175 "policy and use the system-wide default.  (The system-wide default is defined "
3176 "by I</proc/sys/vm/memory_failure_early_kill>; see B<proc>(5).)  If I<arg2> "
3177 "is B<PR_MCE_KILL_SET>, use a thread-specific memory corruption kill policy.  "
3178 "In this case, I<arg3> defines whether the policy is I<early kill> "
3179 "(B<PR_MCE_KILL_EARLY>), I<late kill> (B<PR_MCE_KILL_LATE>), or the system-"
3180 "wide default (B<PR_MCE_KILL_DEFAULT>).  Early kill means that the thread "
3181 "receives a B<SIGBUS> signal as soon as hardware memory corruption is "
3182 "detected inside its address space.  In late kill mode, the process is only "
3183 "killed when it accesses a corrupted page.  See B<sigaction>(2)  for more "
3184 "information on the B<SIGBUS> signal.  The policy is inherited by children.  "
3185 "The remaining unused B<prctl>()  arguments must be zero for future "
3186 "compatibility."
3187 msgstr ""
3188
3189 #. type: TP
3190 #: build/C/man2/prctl.2:626
3191 #, no-wrap
3192 msgid "B<PR_MCE_KILL_GET> (since Linux 2.6.32)"
3193 msgstr "B<PR_MCE_KILL_GET> (Linux 2.6.32 以降)"
3194
3195 #. type: Plain text
3196 #: build/C/man2/prctl.2:632
3197 msgid ""
3198 "Return the current per-process machine check kill policy.  All unused "
3199 "B<prctl>()  arguments must be zero."
3200 msgstr ""
3201
3202 #. type: TP
3203 #: build/C/man2/prctl.2:632
3204 #, no-wrap
3205 msgid "B<PR_SET_MM> (since Linux 3.3)"
3206 msgstr "B<PR_SET_MM> (Linux 3.3 以降)"
3207
3208 #. type: Plain text
3209 #: build/C/man2/prctl.2:652
3210 msgid ""
3211 "Modify certain kernel memory map descriptor fields of the calling process.  "
3212 "Usually these fields are set by the kernel and dynamic loader (see B<ld.so>"
3213 "(8)  for more information) and a regular application should not use this "
3214 "feature.  However, there are cases, such as self-modifying programs, where a "
3215 "program might find it useful to change its own memory map.  This feature is "
3216 "available only if the kernel is built with the B<CONFIG_CHECKPOINT_RESTORE> "
3217 "option enabled.  The calling process must have the B<CAP_SYS_RESOURCE> "
3218 "capability.  The value in I<arg2> is one of the options below, while I<arg3> "
3219 "provides a new value for the option."
3220 msgstr ""
3221
3222 #. type: TP
3223 #: build/C/man2/prctl.2:653
3224 #, no-wrap
3225 msgid "B<PR_SET_MM_START_CODE>"
3226 msgstr "B<PR_SET_MM_START_CODE>"
3227
3228 #. type: Plain text
3229 #: build/C/man2/prctl.2:662
3230 msgid ""
3231 "Set the address above which the program text can run.  The corresponding "
3232 "memory area must be readable and executable, but not writable or sharable "
3233 "(see B<mprotect>(2)  and B<mmap>(2)  for more information)."
3234 msgstr ""
3235
3236 #. type: TP
3237 #: build/C/man2/prctl.2:662
3238 #, no-wrap
3239 msgid "B<PR_SET_MM_END_CODE>"
3240 msgstr "B<PR_SET_MM_END_CODE>"
3241
3242 #. type: Plain text
3243 #: build/C/man2/prctl.2:667
3244 msgid ""
3245 "Set the address below which the program text can run.  The corresponding "
3246 "memory area must be readable and executable, but not writable or sharable."
3247 msgstr ""
3248
3249 #. type: TP
3250 #: build/C/man2/prctl.2:667
3251 #, no-wrap
3252 msgid "B<PR_SET_MM_START_DATA>"
3253 msgstr "B<PR_SET_MM_START_DATA>"
3254
3255 #. type: Plain text
3256 #: build/C/man2/prctl.2:673
3257 msgid ""
3258 "Set the address above which initialized and uninitialized (bss) data are "
3259 "placed.  The corresponding memory area must be readable and writable, but "
3260 "not executable or sharable."
3261 msgstr ""
3262
3263 #. type: TP
3264 #: build/C/man2/prctl.2:673
3265 #, no-wrap
3266 msgid "B<PR_SET_MM_END_DATA>"
3267 msgstr "B<PR_SET_MM_END_DATA>"
3268
3269 #. type: Plain text
3270 #: build/C/man2/prctl.2:679
3271 msgid ""
3272 "Set the address below which initialized and uninitialized (bss) data are "
3273 "placed.  The corresponding memory area must be readable and writable, but "
3274 "not executable or sharable."
3275 msgstr ""
3276
3277 #. type: TP
3278 #: build/C/man2/prctl.2:679
3279 #, no-wrap
3280 msgid "B<PR_SET_MM_START_STACK>"
3281 msgstr "B<PR_SET_MM_START_STACK>"
3282
3283 #. type: Plain text
3284 #: build/C/man2/prctl.2:683
3285 msgid ""
3286 "Set the start address of the stack.  The corresponding memory area must be "
3287 "readable and writable."
3288 msgstr ""
3289
3290 #. type: TP
3291 #: build/C/man2/prctl.2:683
3292 #, no-wrap
3293 msgid "B<PR_SET_MM_START_BRK>"
3294 msgstr "B<PR_SET_MM_START_BRK>"
3295
3296 #. type: Plain text
3297 #: build/C/man2/prctl.2:695
3298 msgid ""
3299 "Set the address above which the program heap can be expanded with B<brk>(2)  "
3300 "call.  The address must be greater than the ending address of the current "
3301 "program data segment.  In addition, the combined size of the resulting heap "
3302 "and the size of the data segment can't exceed the B<RLIMIT_DATA> resource "
3303 "limit (see B<setrlimit>(2))."
3304 msgstr ""
3305
3306 #. type: TP
3307 #: build/C/man2/prctl.2:695
3308 #, no-wrap
3309 msgid "B<PR_SET_MM_BRK>"
3310 msgstr "B<PR_SET_MM_BRK>"
3311
3312 #.  FIXME The following (until ========) is not yet in mainline kernel,
3313 #.  so commented out for the moment.
3314 #.  .TP
3315 #.  .BR PR_SET_MM_ARG_START
3316 #.  Set the address above which the program command line is placed.
3317 #.  .TP
3318 #.  .BR PR_SET_MM_ARG_END
3319 #.  Set the address below which the program command line is placed.
3320 #.  .TP
3321 #.  .BR PR_SET_MM_ENV_START
3322 #.  Set the address above which the program environment is placed.
3323 #.  .TP
3324 #.  .BR PR_SET_MM_ENV_END
3325 #.  Set the address below which the program environment is placed.
3326 #.  .IP
3327 #.  The address passed with
3328 #.  .BR PR_SET_MM_ARG_START ,
3329 #.  .BR PR_SET_MM_ARG_END ,
3330 #.  .BR PR_SET_MM_ENV_START ,
3331 #.  and
3332 #.  .BR PR_SET_MM_ENV_END
3333 #.  should belong to a process stack area.
3334 #.  Thus, the corresponding memory area must be readable, writable, and
3335 #.  (depending on the kernel configuration) have the
3336 #.  .BR MAP_GROWSDOWN
3337 #.  attribute set (see
3338 #.  .BR mmap (2)).
3339 #.  .TP
3340 #.  .BR PR_SET_MM_AUXV
3341 #.  Set a new auxiliary vector.
3342 #.  The
3343 #.  .I arg3
3344 #.  argument should provide the address of the vector.
3345 #.  The
3346 #.  .I arg4
3347 #.  is the size of the vector.
3348 #.  .TP
3349 #.  .BR PR_SET_MM_EXE_FILE
3350 #.  Supersede the
3351 #.  .IR /proc/pid/exe
3352 #.  symbolic link with a new one pointing to a new executable file
3353 #.  identified by the file descriptor provided in
3354 #.  .I arg3
3355 #.  argument.
3356 #.  The file descriptor should be obtained with a regular
3357 #.  .BR open (2)
3358 #.  call.
3359 #.  .IP
3360 #.  To change the symbolic link, one needs to unmap all existing
3361 #.  executable memory areas, including those created by the kernel itself
3362 #.  (for example the kernel usually creates at least one executable
3363 #.  memory area for the ELF
3364 #.  .IR .text
3365 #.  section).
3366 #.  .IP
3367 #.  The second limitation is that such transitions can be done only once
3368 #.  in a process life time.
3369 #.  Any further attempts will be rejected.
3370 #.  This should help system administrators to monitor unusual
3371 #.  symbolic-link transitions over all process running in a system.
3372 #.  ========== END FIXME
3373 #. type: Plain text
3374 #: build/C/man2/prctl.2:764
3375 msgid ""
3376 "Set the current B<brk>(2)  value.  The requirements for the address are the "
3377 "same as for the B<PR_SET_MM_START_BRK> option."
3378 msgstr ""
3379
3380 #. type: Plain text
3381 #: build/C/man2/prctl.2:784
3382 #, fuzzy
3383 #| msgid ""
3384 #| "On success, B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, B<PR_CAPBSET_READ>, "
3385 #| "B<PR_GET_TIMING>, B<PR_GET_SECUREBITS>, B<PR_MCE_KILL_GET>, and (if it "
3386 #| "returns)  B<PR_GET_SECCOMP> return the nonnegative values described "
3387 #| "above.  All other I<option> values return 0 on success.  On error, -1 is "
3388 #| "returned, and I<errno> is set appropriately."
3389 msgid ""
3390 "On success, B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, B<PR_GET_NO_NEW_PRIVS>, "
3391 "B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, B<PR_GET_SECUREBITS>, "
3392 "B<PR_MCE_KILL_GET>, and (if it returns)  B<PR_GET_SECCOMP> return the "
3393 "nonnegative values described above.  All other I<option> values return 0 on "
3394 "success.  On error, -1 is returned, and I<errno> is set appropriately."
3395 msgstr ""
3396 "成功すると、 B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>,\n"
3397 "B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, B<PR_GET_SECUREBITS>,\n"
3398 "B<PR_MCE_KILL_GET>, B<PR_GET_SECCOMP> は上述の負でない値を返す (なお、\n"
3399 "B<PR_GET_SECCOMP> は返らない場合もある)。 I<option> が他の値の場合は\n"
3400 "成功時に 0 を返す。\n"
3401 "エラーの場合、-1 を返し、 I<errno> に適切な値を設定する。"
3402
3403 #. type: Plain text
3404 #: build/C/man2/prctl.2:789
3405 msgid "I<arg2> is an invalid address."
3406 msgstr "I<arg2> が不正なアドレスである。"
3407
3408 #. type: Plain text
3409 #: build/C/man2/prctl.2:794
3410 msgid "The value of I<option> is not recognized."
3411 msgstr "I<option> の値が理解できない。"
3412
3413 #. type: Plain text
3414 #: build/C/man2/prctl.2:806
3415 msgid ""
3416 "I<option> is B<PR_MCE_KILL> or B<PR_MCE_KILL_GET> or B<PR_SET_MM>, and "
3417 "unused B<prctl>()  arguments were not specified as zero."
3418 msgstr ""
3419
3420 #. type: Plain text
3421 #: build/C/man2/prctl.2:811
3422 msgid "I<arg2> is not valid value for this I<option>."
3423 msgstr "I<arg2> が指定された I<option> で有効な値ではない。"
3424
3425 #. type: Plain text
3426 #: build/C/man2/prctl.2:820
3427 #, fuzzy
3428 #| msgid ""
3429 #| "I<option> is B<PR_SET_SECCOMP> or B<PR_SET_SECCOMP>, and the kernel was "
3430 #| "not configured with B<CONFIG_SECCOMP>."
3431 msgid ""
3432 "I<option> is B<PR_SET_SECCOMP> or B<PR_GET_SECCOMP>, and the kernel was not "
3433 "configured with B<CONFIG_SECCOMP>."
3434 msgstr ""
3435 "I<option> が B<PR_SET_SECCOMP> か B<PR_GET_SECCOMP> だが、カーネルが "
3436 "B<CONFIG_SECCOMP> を有効にして作成されていなかった。"
3437
3438 #. type: Plain text
3439 #: build/C/man2/prctl.2:826
3440 msgid "I<option> is B<PR_SET_MM>, and one of the following is true"
3441 msgstr ""
3442
3443 #. type: Plain text
3444 #: build/C/man2/prctl.2:832
3445 msgid "I<arg4> or I<arg5> is nonzero;"
3446 msgstr ""
3447
3448 #. type: Plain text
3449 #: build/C/man2/prctl.2:837
3450 msgid ""
3451 "I<arg3> is greater than B<TASK_SIZE> (the limit on the size of the user "
3452 "address space for this architecture);"
3453 msgstr ""
3454
3455 #. type: Plain text
3456 #: build/C/man2/prctl.2:847
3457 msgid ""
3458 "I<arg2> is B<PR_SET_MM_START_CODE>, B<PR_SET_MM_END_CODE>, "
3459 "B<PR_SET_MM_START_DATA>, B<PR_SET_MM_END_DATA>, or B<PR_SET_MM_START_STACK,> "
3460 "and the permissions of the corresponding memory area are not as required;"
3461 msgstr ""
3462
3463 #. type: Plain text
3464 #: build/C/man2/prctl.2:859
3465 msgid ""
3466 "I<arg2> is B<PR_SET_MM_START_BRK> or B<PR_SET_MM_BRK>, and I<arg3> is less "
3467 "than or equal to the end of the data segment or specifies a value that would "
3468 "cause the B<RLIMIT_DATA> resource limit to be exceeded."
3469 msgstr ""
3470
3471 #. type: Plain text
3472 #: build/C/man2/prctl.2:870
3473 msgid ""
3474 "I<option> is B<PR_SET_PTRACER> and I<arg2> is not 0, B<PR_SET_PTRACER_ANY>, "
3475 "or the PID of an existing process."
3476 msgstr ""
3477
3478 #. type: Plain text
3479 #: build/C/man2/prctl.2:882
3480 msgid ""
3481 "I<option> is B<PR_SET_SECUREBITS>, and the caller does not have the "
3482 "B<CAP_SETPCAP> capability, or tried to unset a \"locked\" flag, or tried to "
3483 "set a flag whose corresponding locked flag was set (see B<capabilities>(7))."
3484 msgstr ""
3485 "I<option> が B<PR_SET_SECUREBITS> で、呼び出し元がケーパビリティ "
3486 "B<CAP_SETPCAP> を持っていない。 または、\"locked\" フラグを解除しようとし"
3487 "た。 または、locked フラグがセットされているフラグをセットしようとした "
3488 "(B<capabilities>(7)  参照)。"
3489
3490 #. type: Plain text
3491 #: build/C/man2/prctl.2:892
3492 msgid ""
3493 "I<option> is B<PR_SET_KEEPCAPS>, and the callers's "
3494 "B<SECURE_KEEP_CAPS_LOCKED> flag is set (see B<capabilities>(7))."
3495 msgstr ""
3496 "I<option> が B<PR_SET_KEEPCAPS> で、呼び出し元のフラグ "
3497 "B<SECURE_KEEP_CAPS_LOCKED> がセットされている (B<capabilities>(7)  参照)。"
3498
3499 #. type: Plain text
3500 #: build/C/man2/prctl.2:900
3501 msgid ""
3502 "I<option> is B<PR_CAPBSET_DROP>, and the caller does not have the "
3503 "B<CAP_SETPCAP> capability."
3504 msgstr ""
3505 "I<option> が B<PR_CAPBSET_DROP> で、呼び出し元がケーパビリティ "
3506 "B<CAP_SETPCAP> を持っていない。"
3507
3508 #.  FIXME The following (until ========) is not yet in mainline kernel,
3509 #.  so commented out for the moment.
3510 #.  .TP
3511 #.  .B EACCES
3512 #.  .I option
3513 #.  is
3514 #.  .BR PR_SET_MM ,
3515 #.  and
3516 #.  .I arg3
3517 #.  is
3518 #.  .BR PR_SET_MM_EXE_FILE ,
3519 #.  the file is not executable.
3520 #.  .TP
3521 #.  .B EBUSY
3522 #.  .I option
3523 #.  is
3524 #.  .BR PR_SET_MM ,
3525 #.  .I arg3
3526 #.  is
3527 #.  .BR PR_SET_MM_EXE_FILE ,
3528 #.  and this the second attempt to change the
3529 #.  .I /proc/pid/exe
3530 #.  symbolic link, which is prohibited.
3531 #.  .TP
3532 #.  .B EBADF
3533 #.  .I option
3534 #.  is
3535 #.  .BR PR_SET_MM ,
3536 #.  .I arg3
3537 #.  is
3538 #.  .BR PR_SET_MM_EXE_FILE ,
3539 #.  and the file descriptor passed in
3540 #.  .I arg4
3541 #.  is not valid.
3542 #.  ========== END FIXME
3543 #.  The following can't actually happen, because prctl() in
3544 #.  seccomp mode will cause SIGKILL.
3545 #.  .TP
3546 #.  .B EPERM
3547 #.  .I option
3548 #.  is
3549 #.  .BR PR_SET_SECCOMP ,
3550 #.  and secure computing mode is already 1.
3551 #. type: Plain text
3552 #: build/C/man2/prctl.2:951
3553 msgid ""
3554 "I<option> is B<PR_SET_MM>, and the caller does not have the "
3555 "B<CAP_SYS_RESOURCE> capability."
3556 msgstr ""
3557 "I<option> が B<PR_SET_MM> で、呼び出し元がケーパビリティ\n"
3558 "B<CAP_SYS_RESOURCE> を持っていない。"
3559
3560 #.  The library interface was added in glibc 2.0.6
3561 #. type: Plain text
3562 #: build/C/man2/prctl.2:956
3563 msgid "The B<prctl>()  system call was introduced in Linux 2.1.57."
3564 msgstr "B<prctl>()  システムコールは Linux 2.1.57 で導入された。"
3565
3566 #. type: Plain text
3567 #: build/C/man2/prctl.2:963
3568 msgid ""
3569 "This call is Linux-specific.  IRIX has a B<prctl>()  system call (also "
3570 "introduced in Linux 2.1.44 as irix_prctl on the MIPS architecture), with "
3571 "prototype"
3572 msgstr ""
3573 "このコールは Linux 特有である。 IRIX には B<prctl>()  システム・コールがある"
3574 "が (MIPS アーキテクチャにおいて irix_prctl として Linux 2.1.44 で同様に導入さ"
3575 "れた)、 そのプロトタイプは"
3576
3577 #. type: Plain text
3578 #: build/C/man2/prctl.2:965
3579 msgid "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
3580 msgstr "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
3581
3582 #. type: Plain text
3583 #: build/C/man2/prctl.2:970
3584 msgid ""
3585 "and options to get the maximum number of processes per user, get the maximum "
3586 "number of processors the calling process can use, find out whether a "
3587 "specified process is currently blocked, get or set the maximum stack size, "
3588 "and so on."
3589 msgstr ""
3590 "である。ユーザー当りのプロセス最大数を取得するオプション、 プロセスの使用でき"
3591 "る最大プロッサー数を取得するオプション、 現在特定のプロセスが停止(block)させ"
3592 "られているかどうか調べるオプション、 スタックサイズの最大値の取得や設定を行な"
3593 "うオプションなどがある。"
3594
3595 #. type: Plain text
3596 #: build/C/man2/prctl.2:973
3597 msgid "B<signal>(2), B<core>(5)"
3598 msgstr "B<signal>(2), B<core>(5)"
3599
3600 #. type: TH
3601 #: build/C/man3/profil.3:28
3602 #, no-wrap
3603 msgid "PROFIL"
3604 msgstr "PROFIL"
3605
3606 #. type: Plain text
3607 #: build/C/man3/profil.3:31
3608 msgid "profil - execution time profile"
3609 msgstr "profil - 実行時間プロファイル (profile)"
3610
3611 #. type: Plain text
3612 #: build/C/man3/profil.3:36
3613 msgid ""
3614 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<, size_t "
3615 ">I<offset>B<, unsigned int >I<scale>B<);>"
3616 msgstr ""
3617 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<, size_t "
3618 ">I<offset>B<, unsigned int >I<scale>B<);>"
3619
3620 #. type: Plain text
3621 #: build/C/man3/profil.3:44
3622 msgid ""
3623 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
3624 msgstr ""
3625 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
3626
3627 #. type: Plain text
3628 #: build/C/man3/profil.3:66
3629 msgid ""
3630 "This routine provides a means to find out in what areas your program spends "
3631 "most of its time.  The argument I<buf> points to I<bufsiz> bytes of core.  "
3632 "Every virtual 10 milliseconds, the user's program counter (PC)  is examined: "
3633 "I<offset> is subtracted and the result is multiplied by I<scale> and divided "
3634 "by 65536.  If the resulting value is less than I<bufsiz>, then the "
3635 "corresponding entry in I<buf> is incremented.  If I<buf> is NULL, profiling "
3636 "is disabled."
3637 msgstr ""
3638 "このルーティンはプログラムのどこの部分で時間を費やしているかを調べる 手段を提"
3639 "供する。引き数 I<buf> は I<bufsiz> バイトのメモリを指している。仮想の 10 ミリ"
3640 "秒ごとに、ユーザーの プログラム・カウンター (PC) が検査される: I<offset> が引"
3641 "かれ、その結果が I<scale> 倍され 65536 で割られる。 結果が I<bufsiz> より小さ"
3642 "い場合は I<buf> の対応するエントリがインクリメントされる。 I<buf> が NULL な"
3643 "らば、プロファイル (profile) は無効にされる。"
3644
3645 #. type: Plain text
3646 #: build/C/man3/profil.3:68
3647 msgid "Zero is always returned."
3648 msgstr "常に 0 が返される。"
3649
3650 #. type: Plain text
3651 #: build/C/man3/profil.3:70
3652 msgid "Similar to a call in SVr4 (but not POSIX.1-2001)."
3653 msgstr "SVr4 のコールに似ている (しかし POSIX.1-2001 ではない)。"
3654
3655 #. type: Plain text
3656 #: build/C/man3/profil.3:76
3657 msgid ""
3658 "B<profil>()  cannot be used on a program that also uses B<ITIMER_PROF> "
3659 "interval timers (see B<setitimer>(2))."
3660 msgstr ""
3661 "B<profil>()  は B<ITIMER_PROF> インターバル・タイマーも使用しているプログラム"
3662 "では使用できない (B<setitimer>(2)  参照)。"
3663
3664 #. type: Plain text
3665 #: build/C/man3/profil.3:79
3666 msgid ""
3667 "True kernel profiling provides more accurate results.  Libc 4.4 contained a "
3668 "kernel patch providing a system call profil."
3669 msgstr ""
3670 "本当のカーネル・プロファイルはより正確な結果を与える。 libc 4.4 にはシステム"
3671 "コール profil を提供するための カーネルパッチが含まれていた。"
3672
3673 #. type: Plain text
3674 #: build/C/man3/profil.3:84
3675 msgid "B<gprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
3676 msgstr "B<gprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
3677
3678 #. type: TH
3679 #: build/C/man3/psignal.3:30
3680 #, no-wrap
3681 msgid "PSIGNAL"
3682 msgstr "PSIGNAL"
3683
3684 #. type: TH
3685 #: build/C/man3/psignal.3:30
3686 #, no-wrap
3687 msgid "2010-10-06"
3688 msgstr "2010-10-06"
3689
3690 #. type: TH
3691 #: build/C/man3/psignal.3:30 build/C/man3/raise.3:29
3692 #: build/C/man7/sigevent.7:26
3693 #, no-wrap
3694 msgid "GNU"
3695 msgstr "GNU"
3696
3697 #. type: Plain text
3698 #: build/C/man3/psignal.3:33
3699 msgid "psignal, psiginfo - print signal message"
3700 msgstr "psignal, psiginfo - シグナルメッセージを表示"
3701
3702 #. type: Plain text
3703 #: build/C/man3/psignal.3:39
3704 #, no-wrap
3705 msgid ""
3706 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
3707 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
3708 msgstr ""
3709 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
3710 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
3711
3712 #. type: Plain text
3713 #: build/C/man3/psignal.3:41
3714 #, no-wrap
3715 msgid "B<extern const char *const >I<sys_siglist>B<[];>\n"
3716 msgstr "B<extern const char *const >I<sys_siglist>B<[];>\n"
3717
3718 #. type: Plain text
3719 #: build/C/man3/psignal.3:50
3720 msgid "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
3721 msgstr "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
3722
3723 #. type: Plain text
3724 #: build/C/man3/psignal.3:53
3725 msgid ""
3726 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
3727 "200809L"
3728 msgstr ""
3729 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
3730 "200809L"
3731
3732 #. type: Plain text
3733 #: build/C/man3/psignal.3:56
3734 msgid "I<sys_siglist>: _BSD_SOURCE"
3735 msgstr "I<sys_siglist>: _BSD_SOURCE"
3736
3737 #. type: Plain text
3738 #: build/C/man3/psignal.3:65
3739 msgid ""
3740 "The B<psignal>()  function displays a message on I<stderr> consisting of the "
3741 "string I<s>, a colon, a space, a string describing the signal number I<sig>, "
3742 "and a trailing newline.  If the string I<s> is NULL or empty, the colon and "
3743 "space are omitted.  If I<sig> is invalid, the message displayed will "
3744 "indicate an unknown signal."
3745 msgstr ""
3746 "B<psignal>() 関数は、文字列 I<s>、コロン、スペース、\n"
3747 "シグナル番号 I<sig> を説明する文字列、終端の改行から\n"
3748 "構成されるメッセージを I<stderr> に表示する。\n"
3749 "文字列 I<s> が NULL か空の場合、コロンとスペースは省略される。\n"
3750 "I<sig> が不正ならば、表示される メッセージは未知のシグナルを示す。"
3751
3752 #. type: Plain text
3753 #: build/C/man3/psignal.3:86
3754 msgid ""
3755 "The B<psiginfo>()  function is like B<psignal>(), except that it displays "
3756 "information about the signal described by I<pinfo>, which should point to a "
3757 "valid I<siginfo_t> structure.  As well as the signal description, B<psiginfo>"
3758 "()  displays information about the origin of the signal, and other "
3759 "information relevant to the signal (e.g., the relevant memory address for "
3760 "hardware-generated signals, the child process ID for B<SIGCHLD>, and the "
3761 "user ID and process ID of the sender, for signals set using B<kill>(2)  or "
3762 "B<sigqueue>(3))."
3763 msgstr ""
3764
3765 #. type: Plain text
3766 #: build/C/man3/psignal.3:89
3767 msgid ""
3768 "The array I<sys_siglist> holds the signal description strings indexed by "
3769 "signal number."
3770 msgstr ""
3771 "配列 I<sys_siglist> はシグナルを説明する文字列を保持しており、 配列へのアクセ"
3772 "スにはシグナル番号を添え字として用いる事ができる。"
3773
3774 #. type: Plain text
3775 #: build/C/man3/psignal.3:95
3776 msgid "The B<psignal>()  and B<psiginfo>()  functions return no value."
3777 msgstr "関数 B<psignal>() と B<psiginfo>() は、値を返さない。"
3778
3779 #. type: Plain text
3780 #: build/C/man3/psignal.3:99
3781 msgid "The B<psiginfo>()  function was added to glibc in version 2.10."
3782 msgstr "B<psiginfo>() 関数は glibc バージョン 2.10 で追加された。"
3783
3784 #. type: Plain text
3785 #: build/C/man3/psignal.3:101
3786 msgid "POSIX.1-2008, 4.3BSD."
3787 msgstr "POSIX.1-2008, 4.3BSD."
3788
3789 #. type: Plain text
3790 #: build/C/man3/psignal.3:105
3791 msgid "In glibc versions up to 2.12, B<psiginfo>()  had the following bugs:"
3792 msgstr ""
3793 "バージョン 2.12 までの glibc では B<psiginfo>() には以下のバグがあった。"
3794
3795 #.  FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=12107
3796 #.  Reportedly now fixed; check glibc 2.13
3797 #. type: Plain text
3798 #: build/C/man3/psignal.3:109
3799 msgid "In some circumstances, a trailing newline is not printed."
3800 msgstr ""
3801
3802 #.  FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=12108
3803 #.  Reportedly now fixed; check glibc 2.13
3804 #. type: Plain text
3805 #: build/C/man3/psignal.3:113
3806 msgid "Additional details are not displayed for real-time signals."
3807 msgstr ""
3808
3809 #. type: Plain text
3810 #: build/C/man3/psignal.3:118
3811 msgid "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
3812 msgstr "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
3813
3814 #. type: TH
3815 #: build/C/man3/raise.3:29
3816 #, no-wrap
3817 msgid "RAISE"
3818 msgstr "RAISE"
3819
3820 #. type: TH
3821 #: build/C/man3/raise.3:29
3822 #, no-wrap
3823 msgid "2012-04-20"
3824 msgstr "2012-04-20"
3825
3826 #. type: Plain text
3827 #: build/C/man3/raise.3:32
3828 msgid "raise - send a signal to the caller"
3829 msgstr "raise - 呼び出し元にシグナルを送る"
3830
3831 #. type: Plain text
3832 #: build/C/man3/raise.3:37
3833 #, no-wrap
3834 msgid "B<int raise(int >I<sig>B<);>\n"
3835 msgstr "B<int raise(int >I<sig>B<);>\n"
3836
3837 #. type: Plain text
3838 #: build/C/man3/raise.3:43
3839 msgid ""
3840 "The B<raise>()  function sends a signal to the calling process or thread.  "
3841 "In a single-threaded program it is equivalent to"
3842 msgstr ""
3843 "B<raise>()  関数は、呼び出し元のプロセスもしくはスレッドにシグナルを送る。 シ"
3844 "ングルスレッドのプログラムでは、以下と等価である。"
3845
3846 #. type: Plain text
3847 #: build/C/man3/raise.3:47
3848 #, no-wrap
3849 msgid "kill(getpid(), sig);\n"
3850 msgstr "kill(getpid(), sig);\n"
3851
3852 #. type: Plain text
3853 #: build/C/man3/raise.3:51
3854 msgid "In a multithreaded program it is equivalent to"
3855 msgstr "マルチスレッドのプログラムでは、以下と等価である。"
3856
3857 #. type: Plain text
3858 #: build/C/man3/raise.3:55
3859 #, no-wrap
3860 msgid "pthread_kill(pthread_self(), sig);\n"
3861 msgstr "pthread_kill(pthread_self(), sig);\n"
3862
3863 #. type: Plain text
3864 #: build/C/man3/raise.3:61
3865 msgid ""
3866 "If the signal causes a handler to be called, B<raise>()  will only return "
3867 "after the signal handler has returned."
3868 msgstr ""
3869 "シグナルに起因してシグナル・ハンドラが呼び出される場合には、 B<raise>()  が返"
3870 "るのは必ずシグナル・ハンドラが返った後になる。"
3871
3872 #. type: Plain text
3873 #: build/C/man3/raise.3:64
3874 msgid "B<raise>()  returns 0 on success, and nonzero for failure."
3875 msgstr "成功した場合は 0 を、失敗した場合は 0 以外の値を返す。"
3876
3877 #. type: Plain text
3878 #: build/C/man3/raise.3:66 build/C/man2/signal.2:109
3879 msgid "C89, C99, POSIX.1-2001."
3880 msgstr "C89, C99, POSIX.1-2001."
3881
3882 #.  2.3.2 used the obsolete tkill(), if available.
3883 #. type: Plain text
3884 #: build/C/man3/raise.3:77
3885 msgid ""
3886 "Since version 2.3.3, glibc implements B<raise>()  by calling B<tgkill>(2), "
3887 "if the kernel supports that system call.  Older glibc versions implemented "
3888 "B<raise>()  using B<kill>(2)."
3889 msgstr ""
3890 "glibc バージョン 2.3.3 以降では、カーネルが B<tgkill>(2) システムコール\n"
3891 "をサポートしている場合はB<raise>() は B<tgkill>(2) を使って実装されて\n"
3892 "いる。古いバージョンの glibc では、B<raise>() は B<kill>(2) を使って\n"
3893 "実装されている。"
3894
3895 #. type: Plain text
3896 #: build/C/man3/raise.3:84
3897 msgid ""
3898 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
3899 "B<signal>(7)"
3900 msgstr ""
3901 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
3902 "B<signal>(7)"
3903
3904 #. type: TH
3905 #: build/C/man2/rt_sigqueueinfo.2:25
3906 #, no-wrap
3907 msgid "RT_SIGQUEUEINFO"
3908 msgstr "RT_SIGQUEUEINFO"
3909
3910 #. type: TH
3911 #: build/C/man2/rt_sigqueueinfo.2:25 build/C/man2/sgetmask.2:26
3912 #: build/C/man2/tkill.2:29
3913 #, fuzzy, no-wrap
3914 #| msgid "2012-04-23"
3915 msgid "2012-07-13"
3916 msgstr "2012-04-23"
3917
3918 #. type: Plain text
3919 #: build/C/man2/rt_sigqueueinfo.2:28
3920 msgid "rt_sigqueueinfo, rt_tgsigqueueinfo - queue a signal and data"
3921 msgstr ""
3922
3923 #. type: Plain text
3924 #: build/C/man2/rt_sigqueueinfo.2:31
3925 #, no-wrap
3926 msgid "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
3927 msgstr "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
3928
3929 #. type: Plain text
3930 #: build/C/man2/rt_sigqueueinfo.2:34
3931 #, no-wrap
3932 msgid ""
3933 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
3934 "B<                      siginfo_t *>I<uinfo>B<);>\n"
3935 msgstr ""
3936 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
3937 "B<                      siginfo_t *>I<uinfo>B<);>\n"
3938
3939 #. type: Plain text
3940 #: build/C/man2/rt_sigqueueinfo.2:38 build/C/man2/sgetmask.2:36
3941 #: build/C/man2/tkill.2:41
3942 #, fuzzy
3943 #| msgid ""
3944 #| "Glibc does not provide wrappers for these system calls; use B<syscall>(2)."
3945 msgid "I<Note>: There are no glibc wrappers for these system calls; see NOTES."
3946 msgstr ""
3947 "glibc はこれらのシステムコールに対するラッパー関数を提供していない。 "
3948 "B<syscall>(2)  を使用すること。"
3949
3950 #. type: Plain text
3951 #: build/C/man2/rt_sigqueueinfo.2:50
3952 msgid ""
3953 "The B<rt_sigqueueinfo>()  and B<rt_tgsigqueueinfo>()  system calls are the "
3954 "low-level interfaces used to send a signal plus data to a process or "
3955 "thread.  The receiver of the signal can obtain the accompanying data by "
3956 "establishing a signal handler with the B<sigaction>(2)  B<SA_SIGINFO> flag."
3957 msgstr ""
3958
3959 #. type: Plain text
3960 #: build/C/man2/rt_sigqueueinfo.2:56
3961 msgid ""
3962 "These system calls are not intended for direct application use; they are "
3963 "provided to allow the implementation of B<sigqueue>(3)  and "
3964 "B<pthread_sigqueue>(3)."
3965 msgstr ""
3966
3967 #. type: Plain text
3968 #: build/C/man2/rt_sigqueueinfo.2:68
3969 msgid ""
3970 "The B<rt_sigqueueinfo>()  system call sends the signal I<sig> to the thread "
3971 "group with the ID I<tgid>.  (The term \"thread group\" is synonymous with "
3972 "\"process\", and I<tid> corresponds to the traditional UNIX process ID.)  "
3973 "The signal will be delivered to an arbitrary member of the thread group (i."
3974 "e., one of the threads that is not currently blocking the signal)."
3975 msgstr ""
3976
3977 #. type: Plain text
3978 #: build/C/man2/rt_sigqueueinfo.2:79
3979 msgid ""
3980 "The I<uinfo> argument specifies the data to accompany the signal.  This "
3981 "argument is a pointer to a structure of type I<siginfo_t>, described in "
3982 "B<sigaction>(2)  (and defined by including I<E<lt>sigaction.hE<gt>>).  The "
3983 "caller should set the following fields in this structure:"
3984 msgstr ""
3985
3986 #. type: TP
3987 #: build/C/man2/rt_sigqueueinfo.2:79 build/C/man7/sigevent.7:88
3988 #: build/C/man2/wait.2:314
3989 #, no-wrap
3990 msgid "I<si_code>"
3991 msgstr "I<si_code>"
3992
3993 #.  tkill(2) or
3994 #. type: Plain text
3995 #: build/C/man2/rt_sigqueueinfo.2:95
3996 msgid ""
3997 "This must be one of the B<SI_*> codes in the Linux kernel source file "
3998 "I<include/asm-generic/siginfo.h>, with the restriction that the code must be "
3999 "negative (i.e., cannot be B<SI_USER>, which is used by the kernel to "
4000 "indicate a signal sent by B<kill>(2))  and cannot (since Linux 2.6.39) be "
4001 "B<SI_TKILL> (which is used by the kernel to indicate a signal sent using "
4002 "B<tgkill>(2))."
4003 msgstr ""
4004
4005 #. type: TP
4006 #: build/C/man2/rt_sigqueueinfo.2:95 build/C/man2/wait.2:293
4007 #, no-wrap
4008 msgid "I<si_pid>"
4009 msgstr "I<si_pid>"
4010
4011 #. type: Plain text
4012 #: build/C/man2/rt_sigqueueinfo.2:99
4013 msgid ""
4014 "This should be set to a process ID, typically the process ID of the sender."
4015 msgstr ""
4016
4017 #. type: TP
4018 #: build/C/man2/rt_sigqueueinfo.2:99 build/C/man2/wait.2:296
4019 #, no-wrap
4020 msgid "I<si_uid>"
4021 msgstr "I<si_uid>"
4022
4023 #. type: Plain text
4024 #: build/C/man2/rt_sigqueueinfo.2:103
4025 msgid ""
4026 "This should be set to a user ID, typically the real user ID of the sender."
4027 msgstr ""
4028
4029 #. type: TP
4030 #: build/C/man2/rt_sigqueueinfo.2:103 build/C/man7/sigevent.7:96
4031 #, no-wrap
4032 msgid "I<si_value>"
4033 msgstr "I<si_value>"
4034
4035 #. type: Plain text
4036 #: build/C/man2/rt_sigqueueinfo.2:110
4037 msgid ""
4038 "This field contains the user data to accompany the signal.  For more "
4039 "information, see the description of the last (I<union sigval>)  argument of "
4040 "B<sigqueue>(3)."
4041 msgstr ""
4042
4043 #. type: Plain text
4044 #: build/C/man2/rt_sigqueueinfo.2:117
4045 msgid ""
4046 "Internally, the kernel sets the I<si_signo> field to the value specified in "
4047 "I<sig>, so that the receiver of the signal can also obtain the signal number "
4048 "via that field."
4049 msgstr ""
4050
4051 #. type: Plain text
4052 #: build/C/man2/rt_sigqueueinfo.2:129
4053 msgid ""
4054 "The B<rt_tgsigqueueinfo>()  system call is like B<rt_sigqueueinfo>(), but "
4055 "sends the signal and data to the single thread specified by the combination "
4056 "of I<tgid>, a thread group ID, and I<tid>, a thread in that thread group."
4057 msgstr ""
4058
4059 #. type: Plain text
4060 #: build/C/man2/rt_sigqueueinfo.2:134
4061 msgid ""
4062 "On success, these system calls return 0.  On error, they return -1 and "
4063 "I<errno> is set to indicate the error."
4064 msgstr ""
4065
4066 #. type: TP
4067 #: build/C/man2/rt_sigqueueinfo.2:135 build/C/man3/sigqueue.3:92
4068 #: build/C/man2/sigwaitinfo.2:115 build/C/man2/timer_create.2:176
4069 #, no-wrap
4070 msgid "B<EAGAIN>"
4071 msgstr "B<EAGAIN>"
4072
4073 #. type: Plain text
4074 #: build/C/man2/rt_sigqueueinfo.2:141 build/C/man3/sigqueue.3:98
4075 msgid ""
4076 "The limit of signals which may be queued has been reached.  (See B<signal>"
4077 "(7)  for further information.)"
4078 msgstr ""
4079 "待ち行列に入れられるシグナルの最大数に達した (より詳しい情報は B<signal>(7)  "
4080 "を参照すること)。"
4081
4082 #. type: Plain text
4083 #: build/C/man2/rt_sigqueueinfo.2:148
4084 msgid "I<sig>, I<tgid>, or I<tid> was invalid."
4085 msgstr ""
4086
4087 #. type: Plain text
4088 #: build/C/man2/rt_sigqueueinfo.2:156
4089 msgid ""
4090 "The caller does not have permission to send the signal to the target.  For "
4091 "the required permissions, see B<kill>(2).  Or: I<uinfo-E<gt>si_code> is "
4092 "invalid."
4093 msgstr ""
4094
4095 #. type: Plain text
4096 #: build/C/man2/rt_sigqueueinfo.2:162
4097 msgid "B<rt_sigqueueinfo>(): No thread group matching I<tgid> was found."
4098 msgstr ""
4099
4100 #. type: Plain text
4101 #: build/C/man2/rt_sigqueueinfo.2:169
4102 msgid "B<rt_tgsigqueinfo>(): No thread matching I<tgid> and I<tid> was found."
4103 msgstr ""
4104
4105 #. type: Plain text
4106 #: build/C/man2/rt_sigqueueinfo.2:176
4107 msgid ""
4108 "The B<rt_sigqueueinfo>()  system call was added to Linux in version 2.2.  "
4109 "The B<rt_tgsigqueueinfo>()  system call was added to Linux in version 2.6.31."
4110 msgstr ""
4111
4112 #. type: Plain text
4113 #: build/C/man2/rt_sigqueueinfo.2:178 build/C/man2/sgetmask.2:68
4114 #: build/C/man2/timerfd_create.2:373
4115 msgid "These system calls are Linux-specific."
4116 msgstr "これらのシステムコールは Linux 固有である。"
4117
4118 #. type: Plain text
4119 #: build/C/man2/rt_sigqueueinfo.2:183
4120 msgid ""
4121 "Since these system calls are not intended for application use, there are no "
4122 "glibc wrapper functions; use B<syscall>(2)  in the unlikely case that you "
4123 "want to call them directly."
4124 msgstr ""
4125
4126 #. type: Plain text
4127 #: build/C/man2/rt_sigqueueinfo.2:188
4128 msgid ""
4129 "As with B<kill>(2), the null signal (0) can be used to check if the "
4130 "specified process or thread exists."
4131 msgstr ""
4132
4133 #. type: Plain text
4134 #: build/C/man2/rt_sigqueueinfo.2:196
4135 msgid ""
4136 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4137 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4138 msgstr ""
4139 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4140 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4141
4142 #. type: TH
4143 #: build/C/man2/s390_runtime_instr.2:26
4144 #, no-wrap
4145 msgid "S390_RUNTIME_INSTR"
4146 msgstr ""
4147
4148 #. type: TH
4149 #: build/C/man2/s390_runtime_instr.2:26
4150 #, fuzzy, no-wrap
4151 #| msgid "2012-05-01"
4152 msgid "2012-12-17"
4153 msgstr "2012-05-01"
4154
4155 #. type: Plain text
4156 #: build/C/man2/s390_runtime_instr.2:29
4157 msgid "s390_runtime_instr - enable/disable s390 CPU run-time instrumentation"
4158 msgstr ""
4159
4160 #. type: Plain text
4161 #: build/C/man2/s390_runtime_instr.2:32
4162 #, fuzzy, no-wrap
4163 #| msgid "B<#include E<lt>sys/time.hE<gt>>\n"
4164 msgid "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4165 msgstr "B<#include E<lt>sys/time.hE<gt>>\n"
4166
4167 #. type: Plain text
4168 #: build/C/man2/s390_runtime_instr.2:34
4169 #, fuzzy, no-wrap
4170 #| msgid "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
4171 msgid "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4172 msgstr "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
4173
4174 #. type: Plain text
4175 #: build/C/man2/s390_runtime_instr.2:40
4176 msgid ""
4177 "The B<s390_runtime_instr>()  system call starts or stops CPU run-time "
4178 "instrumentation for the calling thread."
4179 msgstr ""
4180
4181 #. type: Plain text
4182 #: build/C/man2/s390_runtime_instr.2:48
4183 msgid ""
4184 "The I<command> argument controls whether run-time instrumentation is started "
4185 "(B<S390_RUNTIME_INSTR_START>, 1) or stopped (B<S390_RUNTIME_INSTR_STOP>, 2) "
4186 "for the calling thread."
4187 msgstr ""
4188
4189 #. type: Plain text
4190 #: build/C/man2/s390_runtime_instr.2:55
4191 msgid ""
4192 "The I<signum> argument specifies the number of a real-time signal.  The real-"
4193 "time signal is sent to the thread if the run-time instrumentation buffer is "
4194 "full or if the run-time-instrumentation-halted interrupt occurred."
4195 msgstr ""
4196
4197 #. type: Plain text
4198 #: build/C/man2/s390_runtime_instr.2:66
4199 msgid ""
4200 "On success, B<s390_runtime_instr>()  returns 0 and enables the thread for "
4201 "run-time instrumentation by assigning the thread a default run-time "
4202 "instrumentation control block.  The caller can then read and modify the "
4203 "control block and start the run-time instrumentation.  On error, -1 is "
4204 "returned and I<errno> is set to one of the error codes listed below."
4205 msgstr ""
4206
4207 #. type: Plain text
4208 #: build/C/man2/s390_runtime_instr.2:74
4209 msgid ""
4210 "The value specified in I<command> is not a valid command or the value "
4211 "specified in I<signum> is not a real-time signal number."
4212 msgstr ""
4213
4214 #. type: Plain text
4215 #: build/C/man2/s390_runtime_instr.2:77
4216 msgid ""
4217 "Allocating memory for the run-time instrumentation control block failed."
4218 msgstr ""
4219
4220 #. type: TP
4221 #: build/C/man2/s390_runtime_instr.2:77
4222 #, no-wrap
4223 msgid "B<EOPNOTSUPP>"
4224 msgstr ""
4225
4226 #. type: Plain text
4227 #: build/C/man2/s390_runtime_instr.2:80
4228 msgid "The run-time instrumentation facility is not available."
4229 msgstr ""
4230
4231 #. type: Plain text
4232 #: build/C/man2/s390_runtime_instr.2:82
4233 #, fuzzy
4234 #| msgid "This system call first appeared in Linux 2.2."
4235 msgid "This system call is available since Linux 3.7."
4236 msgstr "このシステムコールは Linux 2.2 で初めて登場した。"
4237
4238 #. type: Plain text
4239 #: build/C/man2/s390_runtime_instr.2:85
4240 msgid ""
4241 "This Linux-specific system call is only available on the s390 architecture.  "
4242 "The run-time instrumentation facility is available beginning with System z "
4243 "EC12."
4244 msgstr ""
4245
4246 #. type: Plain text
4247 #: build/C/man2/s390_runtime_instr.2:89
4248 #, fuzzy
4249 #| msgid ""
4250 #| "Glibc does not provide wrappers for these system calls; use B<syscall>(2)."
4251 msgid ""
4252 "Glibc does not provide a wrapper for this system call, use B<syscall>(2)  to "
4253 "call it."
4254 msgstr ""
4255 "glibc はこれらのシステムコールに対するラッパー関数を提供していない。 "
4256 "B<syscall>(2)  を使用すること。"
4257
4258 #. type: Plain text
4259 #: build/C/man2/s390_runtime_instr.2:92
4260 #, fuzzy
4261 #| msgid "B<sigprocmask>(2), B<signal>(7)"
4262 msgid "B<syscall>(2), B<signal>(7)"
4263 msgstr "B<sigprocmask>(2), B<signal>(7)"
4264
4265 #. type: TH
4266 #: build/C/man2/sgetmask.2:26
4267 #, no-wrap
4268 msgid "SGETMASK"
4269 msgstr "SGETMASK"
4270
4271 #. type: Plain text
4272 #: build/C/man2/sgetmask.2:29
4273 msgid "sgetmask, ssetmask - manipulation of signal mask (obsolete)"
4274 msgstr "sgetmask, ssetmask - シグナルマスクの操作 (廃止予定)"
4275
4276 #. type: Plain text
4277 #: build/C/man2/sgetmask.2:31
4278 msgid "B<long sgetmask(void);>"
4279 msgstr "B<long sgetmask(void);>"
4280
4281 #. type: Plain text
4282 #: build/C/man2/sgetmask.2:33
4283 msgid "B<long ssetmask(long >I<newmask>B<);>"
4284 msgstr "B<long ssetmask(long >I<newmask>B<);>"
4285
4286 #. type: Plain text
4287 #: build/C/man2/sgetmask.2:42
4288 msgid ""
4289 "These system calls are obsolete.  I<Do not use them>; use B<sigprocmask>(2)  "
4290 "instead."
4291 msgstr ""
4292 "これらのシステムコールは廃止予定であり、 「使用しないこと」。 代わりに "
4293 "B<sigprocmask>(2)  を使用すること。"
4294
4295 #. type: Plain text
4296 #: build/C/man2/sgetmask.2:45
4297 msgid "B<sgetmask>()  returns the signal mask of the calling process."
4298 msgstr "B<sgetmask>()  は、呼び出し元プロセスのシグナルマスクを返す。"
4299
4300 #. type: Plain text
4301 #: build/C/man2/sgetmask.2:50
4302 msgid ""
4303 "B<ssetmask>()  sets the signal mask of the calling process to the value "
4304 "given in I<newmask>.  The previous signal mask is returned."
4305 msgstr ""
4306 "B<ssetmask>()  は、呼び出し元プロセスのシグナルマスクを I<newmask> で指定され"
4307 "た値に設定し、変更前のシグナルマスクを返す。"
4308
4309 #. type: Plain text
4310 #: build/C/man2/sgetmask.2:59
4311 msgid ""
4312 "The signal masks dealt with by these two system calls are plain bit masks "
4313 "(unlike the I<sigset_t> used by B<sigprocmask>(2)); use B<sigmask>(3)  to "
4314 "create and inspect these masks."
4315 msgstr ""
4316 "これら二つのシステムコールが扱うシグナルマスクは、 単純なビットマスクである "
4317 "(この点が B<sigprocmask>(2)  で使用される I<sigset_t> と異なる)。 これらのマ"
4318 "スクを作成したり検査するには B<sigmask>(3)  を使用すること。"
4319
4320 #. type: Plain text
4321 #: build/C/man2/sgetmask.2:64
4322 msgid ""
4323 "B<sgetmask>()  always successfully returns the signal mask.  B<ssetmask>()  "
4324 "always succeeds, and returns the previous signal mask."
4325 msgstr ""
4326 "B<sgetmask>()  は常に成功し、シグナルマスクを返す。 B<ssetmask>()  は常に成功"
4327 "し、直前のシグナルマスクを返す。"
4328
4329 #. type: Plain text
4330 #: build/C/man2/sgetmask.2:66
4331 msgid "These system calls always succeed."
4332 msgstr "これらのシステムコールは常に成功する。"
4333
4334 #. type: Plain text
4335 #: build/C/man2/sgetmask.2:72
4336 #, fuzzy
4337 #| msgid ""
4338 #| "Glibc does not provide wrappers for these system calls; call them using "
4339 #| "B<syscall>(2)."
4340 msgid ""
4341 "Glibc does not provide wrappers for these obsolete system calls; in the "
4342 "unlikely event that you want to call them, use B<syscall>(2)."
4343 msgstr ""
4344 "glibc はこれらのシステムコールに対するラッパー関数を提供していない。 "
4345 "B<syscall>(2)  を使って呼び出すこと。"
4346
4347 #. type: Plain text
4348 #: build/C/man2/sgetmask.2:75
4349 msgid ""
4350 "These system calls are unaware of signal numbers greater than 31 (i.e., real-"
4351 "time signals)."
4352 msgstr ""
4353 "これらのシステムコールは、 31 より大きいシグナル番号 (つまり、リアルタイムシ"
4354 "グナル) を扱えない。"
4355
4356 #. type: Plain text
4357 #: build/C/man2/sgetmask.2:80
4358 msgid "It is not possible to block B<SIGSTOP> or B<SIGKILL>."
4359 msgstr "B<SIGSTOP> や B<SIGKILL> をブロックすることはできない。"
4360
4361 #. type: Plain text
4362 #: build/C/man2/sgetmask.2:83
4363 msgid "B<sigprocmask>(2), B<signal>(7)"
4364 msgstr "B<sigprocmask>(2), B<signal>(7)"
4365
4366 #. type: TH
4367 #: build/C/man2/sigaction.2:47
4368 #, no-wrap
4369 msgid "SIGACTION"
4370 msgstr "SIGACTION"
4371
4372 #. type: TH
4373 #: build/C/man2/sigaction.2:47
4374 #, fuzzy, no-wrap
4375 #| msgid "2009-02-20"
4376 msgid "2013-02-12"
4377 msgstr "2009-02-20"
4378
4379 #. type: Plain text
4380 #: build/C/man2/sigaction.2:50
4381 msgid "sigaction - examine and change a signal action"
4382 msgstr "sigaction - シグナルの動作の確認と変更"
4383
4384 #. type: Plain text
4385 #: build/C/man2/sigaction.2:56
4386 #, no-wrap
4387 msgid ""
4388 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
4389 "B<              struct sigaction *>I<oldact>B<);>\n"
4390 msgstr ""
4391 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
4392 "B<              struct sigaction *>I<oldact>B<);>\n"
4393
4394 #. type: Plain text
4395 #: build/C/man2/sigaction.2:66
4396 msgid ""
4397 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4398 "_POSIX_SOURCE"
4399 msgstr ""
4400 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4401 "_POSIX_SOURCE"
4402
4403 #. type: Plain text
4404 #: build/C/man2/sigaction.2:69
4405 #, fuzzy
4406 #| msgid "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
4407 msgid "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
4408 msgstr "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
4409
4410 #. type: Plain text
4411 #: build/C/man2/sigaction.2:78
4412 msgid ""
4413 "The B<sigaction>()  system call is used to change the action taken by a "
4414 "process on receipt of a specific signal.  (See B<signal>(7)  for an overview "
4415 "of signals.)"
4416 msgstr ""
4417 "B<sigaction>()  システムコールは、特定のシグナルを受信した際の プロセスの動作"
4418 "を変更するのに使用される (シグナルの概要については B<signal>(7)  を参照)。"
4419
4420 #. type: Plain text
4421 #: build/C/man2/sigaction.2:84
4422 msgid ""
4423 "I<signum> specifies the signal and can be any valid signal except B<SIGKILL> "
4424 "and B<SIGSTOP>."
4425 msgstr ""
4426 "I<signum> には、 B<SIGKILL> と B<SIGSTOP> 以外の有効なシグナルをどれでも指定"
4427 "できる。"
4428
4429 #. type: Plain text
4430 #: build/C/man2/sigaction.2:95
4431 msgid ""
4432 "If I<act> is non-NULL, the new action for signal I<signum> is installed from "
4433 "I<act>.  If I<oldact> is non-NULL, the previous action is saved in I<oldact>."
4434 msgstr ""
4435 "I<act> が NULL 以外であれば、シグナル I<signum> の新しい動作 (action) として "
4436 "I<act> が設定される。 I<oldact> が NULL でなければ、今までの動作が I<oldact> "
4437 "に格納される。"
4438
4439 #. type: Plain text
4440 #: build/C/man2/sigaction.2:99
4441 msgid "The I<sigaction> structure is defined as something like:"
4442 msgstr "I<sigaction> 構造体は以下のような感じに定義される。"
4443
4444 #. type: Plain text
4445 #: build/C/man2/sigaction.2:109
4446 #, no-wrap
4447 msgid ""
4448 "struct sigaction {\n"
4449 "    void     (*sa_handler)(int);\n"
4450 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
4451 "    sigset_t   sa_mask;\n"
4452 "    int        sa_flags;\n"
4453 "    void     (*sa_restorer)(void);\n"
4454 "};\n"
4455 msgstr ""
4456 "struct sigaction {\n"
4457 "    void     (*sa_handler)(int);\n"
4458 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
4459 "    sigset_t   sa_mask;\n"
4460 "    int        sa_flags;\n"
4461 "    void     (*sa_restorer)(void);\n"
4462 "};\n"
4463
4464 #. type: Plain text
4465 #: build/C/man2/sigaction.2:116
4466 msgid ""
4467 "On some architectures a union is involved: do not assign to both "
4468 "I<sa_handler> and I<sa_sigaction>."
4469 msgstr ""
4470 "アーキテクチャによっては共用体 (union) が用いられており、その場合には "
4471 "I<sa_handler> と I<sa_sigaction> の両方を同時に割り当てることはできない。"
4472
4473 #. type: Plain text
4474 #: build/C/man2/sigaction.2:123
4475 msgid ""
4476 "The I<sa_restorer> element is obsolete and should not be used.  POSIX does "
4477 "not specify a I<sa_restorer> element."
4478 msgstr ""
4479 "I<sa_restorer> 要素は廃止予定であり使用すべきではない。 POSIX には "
4480 "I<sa_restorer> 要素に関する規定はない。"
4481
4482 #. type: Plain text
4483 #: build/C/man2/sigaction.2:133
4484 msgid ""
4485 "I<sa_handler> specifies the action to be associated with I<signum> and may "
4486 "be B<SIG_DFL> for the default action, B<SIG_IGN> to ignore this signal, or a "
4487 "pointer to a signal handling function.  This function receives the signal "
4488 "number as its only argument."
4489 msgstr ""
4490 "I<sa_handler> は I<signum> に対応する動作を指定するもので、 デフォルトの動作"
4491 "を行う B<SIG_DFL>、 そのシグナルを無視する B<SIG_IGN>、 シグナルハンドラ関数"
4492 "へのポインタが設定できる。 シグナルハンドラ関数の引き数は一つであり、シグナル"
4493 "番号が引き数として 渡される。"
4494
4495 #. type: Plain text
4496 #: build/C/man2/sigaction.2:155
4497 #, fuzzy
4498 #| msgid ""
4499 #| "If B<SA_SIGINFO> is specified in I<sa_flags>, then I<sa_sigaction> "
4500 #| "(instead of I<sa_handler>)  specifies the signal-handling function for "
4501 #| "I<signum>.  This function receives the signal number as its first "
4502 #| "argument, a pointer to a I<siginfo_t> as its second argument and a "
4503 #| "pointer to a I<ucontext_t> (cast to I<void\\ *>) as its third argument.  "
4504 #| "(Commonly, the handler function doesn't make any use of the third "
4505 #| "argument.  See B<getcontext>(2)  for further information about "
4506 #| "I<ucontext_t>.)"
4507 msgid ""
4508 "If B<SA_SIGINFO> is specified in I<sa_flags>, then I<sa_sigaction> (instead "
4509 "of I<sa_handler>)  specifies the signal-handling function for I<signum>.  "
4510 "This function receives the signal number as its first argument, a pointer to "
4511 "a I<siginfo_t> as its second argument and a pointer to a I<ucontext_t> (cast "
4512 "to I<void\\ *>) as its third argument.  (Commonly, the handler function "
4513 "doesn't make any use of the third argument.  See B<getcontext>(3)  for "
4514 "further information about I<ucontext_t>.)"
4515 msgstr ""
4516 "I<sa_flags> に B<SA_SIGINFO> が指定された場合、 (I<sa_handler> ではなく)\n"
4517 "I<sa_sigaction> により I<signum> に対応するシグナルハンドラ関数が指定さ\n"
4518 "れる。指定される関数は、最初の引き数としてシグナル番号を、二番目の引き\n"
4519 "数として I<siginfo_t> へのポインタを、三番目の引き数として (I<void\\ *>\n"
4520 "にキャストした) I<ucontext_t> へのポインタを受けとる。 (一般的には、\n"
4521 "ハンドラ関数の三番目の引き数が使用されない。I<ucontext_t> についての\n"
4522 "詳しい情報は B<getcontext>(2) を参照。)"
4523
4524 #. type: Plain text
4525 #: build/C/man2/sigaction.2:165
4526 msgid ""
4527 "I<sa_mask> specifies a mask of signals which should be blocked (i.e., added "
4528 "to the signal mask of the thread in which the signal handler is invoked)  "
4529 "during execution of the signal handler.  In addition, the signal which "
4530 "triggered the handler will be blocked, unless the B<SA_NODEFER> flag is used."
4531 msgstr ""
4532 "I<sa_mask> は、シグナル・ハンドラ実行中に禁止 (block) すべきシグナルのマスク"
4533 "を指定する (ハンドラ実行中のシグナルの禁止は、シグナル・ハンドラが起動された"
4534 "スレッド のシグナルのマスクに追加することで行われる)。 さらに、 "
4535 "B<SA_NODEFER> フラグが指定されていない場合は、ハンドラを起動するきっかけとな"
4536 "る シグナルにも I<sa_mask> が適用される。"
4537
4538 #. type: Plain text
4539 #: build/C/man2/sigaction.2:169
4540 msgid ""
4541 "I<sa_flags> specifies a set of flags which modify the behavior of the "
4542 "signal.  It is formed by the bitwise OR of zero or more of the following:"
4543 msgstr ""
4544 "I<sa_flags> はシグナル・ハンドラの動作を変更するためのフラグの集合を指定す"
4545 "る。 I<sa_flags> には、以下に示すフラグの (0 個以上の) 論理和をとったものを指"
4546 "定する。"
4547
4548 #. type: TP
4549 #: build/C/man2/sigaction.2:170
4550 #, no-wrap
4551 msgid "B<SA_NOCLDSTOP>"
4552 msgstr "B<SA_NOCLDSTOP>"
4553
4554 #. type: Plain text
4555 #: build/C/man2/sigaction.2:187
4556 msgid ""
4557 "If I<signum> is B<SIGCHLD>, do not receive notification when child processes "
4558 "stop (i.e., when they receive one of B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN> or "
4559 "B<SIGTTOU>)  or resume (i.e., they receive B<SIGCONT>)  (see B<wait>(2)).  "
4560 "This flag is only meaningful when establishing a handler for B<SIGCHLD>."
4561 msgstr ""
4562 "I<signum> が B<SIGCHLD> の場合、 子プロセスが停止したり (子プロセスが "
4563 "B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN>, B<SIGTTOU> を受けたとき) 再開したり (子プ"
4564 "ロセスが B<SIGCONT> を受けたとき) したときに B<SIGCHLD> の通知を受けない。 こ"
4565 "のフラグは、 B<SIGCHLD> に対してハンドラを設定する際にのみ意味を持つ。"
4566
4567 #. type: TP
4568 #: build/C/man2/sigaction.2:187
4569 #, no-wrap
4570 msgid "B<SA_NOCLDWAIT> (since Linux 2.6)"
4571 msgstr "B<SA_NOCLDWAIT> (Linux 2.6 以降)"
4572
4573 #.  To be precise: Linux 2.5.60 -- MTK
4574 #. type: Plain text
4575 #: build/C/man2/sigaction.2:201
4576 msgid ""
4577 "If I<signum> is B<SIGCHLD>, do not transform children into zombies when they "
4578 "terminate.  See also B<waitpid>(2).  This flag is only meaningful when "
4579 "establishing a handler for B<SIGCHLD>, or when setting that signal's "
4580 "disposition to B<SIG_DFL>."
4581 msgstr ""
4582 "(Linux 2.6 以降)  I<signum> が B<SIGCHLD> の場合、子プロセスが終了したときに "
4583 "子プロセスをゾンビプロセスに変化させない (B<waitpid>(2)  も参照)。 このフラグ"
4584 "は、 B<SIGCHLD> に対してハンドラを設定する際、もしくはそのシグナルの処理方法"
4585 "を B<SIG_DFL> に設定する際にのみ意味を持つ。"
4586
4587 #. type: Plain text
4588 #: build/C/man2/sigaction.2:213
4589 msgid ""
4590 "If the B<SA_NOCLDWAIT> flag is set when establishing a handler for "
4591 "B<SIGCHLD>, POSIX.1 leaves it unspecified whether a B<SIGCHLD> signal is "
4592 "generated when a child process terminates.  On Linux, a B<SIGCHLD> signal is "
4593 "generated in this case; on some other implementations, it is not."
4594 msgstr ""
4595 "B<SIGCHLD> に対してハンドラを設定する際に B<SA_NOCLDWAIT> フラグをセットした"
4596 "場合、 子プロセスが終了した際に B<SIGCHLD> シグナルが生成されるかどうかは、 "
4597 "POSIX.1 では規定されていない。 Linux では、この状況で B<SIGCHLD> シグナルは生"
4598 "成される。 いくつかの他の実装では生成されない。"
4599
4600 #. type: TP
4601 #: build/C/man2/sigaction.2:213
4602 #, no-wrap
4603 msgid "B<SA_NODEFER>"
4604 msgstr "B<SA_NODEFER>"
4605
4606 #. type: Plain text
4607 #: build/C/man2/sigaction.2:220
4608 msgid ""
4609 "Do not prevent the signal from being received from within its own signal "
4610 "handler.  This flag is only meaningful when establishing a signal handler.  "
4611 "B<SA_NOMASK> is an obsolete, nonstandard synonym for this flag."
4612 msgstr ""
4613 "それ自身のシグナル・ハンドラーの内部にいる時でも そのシグナルをマスクしないよ"
4614 "うにする。 このフラグはシグナルハンドラを設定する際にのみ意味を持つ。 "
4615 "B<SA_NOMASK> はこのフラグと同じ意味だが、廃止されており、非標準である。"
4616
4617 #. type: TP
4618 #: build/C/man2/sigaction.2:220
4619 #, no-wrap
4620 msgid "B<SA_ONSTACK>"
4621 msgstr "B<SA_ONSTACK>"
4622
4623 #. type: Plain text
4624 #: build/C/man2/sigaction.2:226
4625 msgid ""
4626 "Call the signal handler on an alternate signal stack provided by "
4627 "B<sigaltstack>(2).  If an alternate stack is not available, the default "
4628 "stack will be used.  This flag is only meaningful when establishing a signal "
4629 "handler."
4630 msgstr ""
4631 "B<sigaltstack>(2)  で提供される別のシグナル・スタックでシグナルハンドラを呼び"
4632 "出す。 別のシグナル・スタックが利用可能でなければ、デフォルトのスタックが 使"
4633 "用される。 このフラグはシグナルハンドラを設定する際にのみ意味を持つ。"
4634
4635 #. type: TP
4636 #: build/C/man2/sigaction.2:226
4637 #, no-wrap
4638 msgid "B<SA_RESETHAND>"
4639 msgstr "B<SA_RESETHAND>"
4640
4641 #. type: Plain text
4642 #: build/C/man2/sigaction.2:232
4643 #, fuzzy
4644 #| msgid ""
4645 #| "Restore the signal action to the default state once the signal handler "
4646 #| "has been called.  This flag is only meaningful when establishing a signal "
4647 #| "handler.  B<SA_ONESHOT> is an obsolete, nonstandard synonym for this flag."
4648 msgid ""
4649 "Restore the signal action to the default upon entry to the signal handler.  "
4650 "This flag is only meaningful when establishing a signal handler.  "
4651 "B<SA_ONESHOT> is an obsolete, nonstandard synonym for this flag."
4652 msgstr ""
4653 "シグナルハンドラが呼ばれる度に、シグナルの動作をデフォルトに戻す。 このフラグ"
4654 "はシグナルハンドラを設定する際にのみ意味を持つ。 B<SA_ONESHOT> はこのフラグと"
4655 "同じ意味だが、廃止されており、非標準である。"
4656
4657 #. type: TP
4658 #: build/C/man2/sigaction.2:232
4659 #, no-wrap
4660 msgid "B<SA_RESTART>"
4661 msgstr "B<SA_RESTART>"
4662
4663 #. type: Plain text
4664 #: build/C/man2/sigaction.2:240
4665 msgid ""
4666 "Provide behavior compatible with BSD signal semantics by making certain "
4667 "system calls restartable across signals.  This flag is only meaningful when "
4668 "establishing a signal handler.  See B<signal>(7)  for a discussion of system "
4669 "call restarting."
4670 msgstr ""
4671 "いくつかのシステムコールをシグナルの通知の前後で再開できるようにして、 BSD シ"
4672 "グナル方式 (semantics) と互換性のある動作を提供する。 このフラグはシグナルハ"
4673 "ンドラを設定する際にのみ意味を持つ。 B<signal>(7)  に書かれているシステムコー"
4674 "ルの再開に関する議論を参照のこと。"
4675
4676 #. type: TP
4677 #: build/C/man2/sigaction.2:240
4678 #, no-wrap
4679 msgid "B<SA_SIGINFO> (since Linux 2.2)"
4680 msgstr "B<SA_SIGINFO> (Linux 2.2 以降)"
4681
4682 #.  (The
4683 #.  .I sa_sigaction
4684 #.  field was added in Linux 2.1.86.)
4685 #. type: Plain text
4686 #: build/C/man2/sigaction.2:251
4687 #, fuzzy
4688 #| msgid ""
4689 #| "The signal handler takes 3 arguments, not one.  In this case, "
4690 #| "I<sa_sigaction> should be set instead of I<sa_handler>.  This flag is "
4691 #| "only meaningful when establishing a signal handler."
4692 msgid ""
4693 "The signal handler takes three arguments, not one.  In this case, "
4694 "I<sa_sigaction> should be set instead of I<sa_handler>.  This flag is only "
4695 "meaningful when establishing a signal handler."
4696 msgstr ""
4697 "シグナルハンドラは一つではなく、三つの引き数を持つ。この場合は I<sa_handler> "
4698 "のかわりに I<sa_sigaction> を設定しなければならない このフラグはシグナルハン"
4699 "ドラを設定する際にのみ意味を持つ。"
4700
4701 #. type: Plain text
4702 #: build/C/man2/sigaction.2:258
4703 msgid ""
4704 "The I<siginfo_t> argument to I<sa_sigaction> is a struct with the following "
4705 "elements:"
4706 msgstr ""
4707 "I<sa_sigaction> のパラメータ I<siginfo_t> は以下の要素を持つ構造体である:"
4708
4709 #.  FIXME
4710 #.  si_trapno seems to be only used on SPARC and Alpha;
4711 #.  this page could use a little more detail on its purpose there.
4712 #.  In the kernel: si_tid
4713 #. type: Plain text
4714 #: build/C/man2/sigaction.2:289
4715 #, no-wrap
4716 msgid ""
4717 "siginfo_t {\n"
4718 "    int      si_signo;    /* Signal number */\n"
4719 "    int      si_errno;    /* An errno value */\n"
4720 "    int      si_code;     /* Signal code */\n"
4721 "    int      si_trapno;   /* Trap number that caused\n"
4722 "                             hardware-generated signal\n"
4723 "                             (unused on most architectures) */\n"
4724 "    pid_t    si_pid;      /* Sending process ID */\n"
4725 "    uid_t    si_uid;      /* Real user ID of sending process */\n"
4726 "    int      si_status;   /* Exit value or signal */\n"
4727 "    clock_t  si_utime;    /* User time consumed */\n"
4728 "    clock_t  si_stime;    /* System time consumed */\n"
4729 "    sigval_t si_value;    /* Signal value */\n"
4730 "    int      si_int;      /* POSIX.1b signal */\n"
4731 "    void    *si_ptr;      /* POSIX.1b signal */\n"
4732 "    int      si_overrun;  /* Timer overrun count; POSIX.1b timers */\n"
4733 "    int      si_timerid;  /* Timer ID; POSIX.1b timers */\n"
4734 "    void    *si_addr;     /* Memory location which caused fault */\n"
4735 "    long     si_band;     /* Band event (was I<int> in\n"
4736 "                             glibc 2.3.2 and earlier) */\n"
4737 "    int      si_fd;       /* File descriptor */\n"
4738 "    short    si_addr_lsb; /* Least significant bit of address\n"
4739 "                             (since kernel 2.6.32) */\n"
4740 "}\n"
4741 msgstr ""
4742 "siginfo_t {\n"
4743 "    int      si_signo;    /* Signal number */\n"
4744 "    int      si_errno;    /* An errno value */\n"
4745 "    int      si_code;     /* Signal code */\n"
4746 "    int      si_trapno;   /* Trap number that caused\n"
4747 "                             hardware-generated signal\n"
4748 "                             (unused on most architectures) */\n"
4749 "    pid_t    si_pid;      /* Sending process ID */\n"
4750 "    uid_t    si_uid;      /* Real user ID of sending process */\n"
4751 "    int      si_status;   /* Exit value or signal */\n"
4752 "    clock_t  si_utime;    /* User time consumed */\n"
4753 "    clock_t  si_stime;    /* System time consumed */\n"
4754 "    sigval_t si_value;    /* Signal value */\n"
4755 "    int      si_int;      /* POSIX.1b signal */\n"
4756 "    void    *si_ptr;      /* POSIX.1b signal */\n"
4757 "    int      si_overrun;  /* Timer overrun count; POSIX.1b timers */\n"
4758 "    int      si_timerid;  /* Timer ID; POSIX.1b timers */\n"
4759 "    void    *si_addr;     /* Memory location which caused fault */\n"
4760 "    long     si_band;     /* Band event (was I<int> in\n"
4761 "                             glibc 2.3.2 and earlier) */\n"
4762 "    int      si_fd;       /* File descriptor */\n"
4763 "    short    si_addr_lsb; /* Least significant bit of address\n"
4764 "                             (since kernel 2.6.32) */\n"
4765 "}\n"
4766
4767 #. type: Plain text
4768 #: build/C/man2/sigaction.2:298
4769 msgid ""
4770 "I<si_signo>, I<si_errno> and I<si_code> are defined for all signals.  "
4771 "(I<si_errno> is generally unused on Linux.)  The rest of the struct may be a "
4772 "union, so that one should only read the fields that are meaningful for the "
4773 "given signal:"
4774 msgstr ""
4775 "I<si_signo>, I<si_errno>, I<si_code> は全てのシグナルに対して定義されている "
4776 "(I<si_errno> は Linux では一般的には使用されない)。 構造体の残りの部分は、共"
4777 "用体 (union) になっているかもしれない。 その場合は該当するシグナルにおいて意"
4778 "味のあるフィールドのみを読み込む ことができる。"
4779
4780 #. type: Plain text
4781 #: build/C/man2/sigaction.2:313
4782 msgid ""
4783 "Signals sent with B<kill>(2)  and B<sigqueue>(3)  fill in I<si_pid> and "
4784 "I<si_uid>.  In addition, signals sent with B<sigqueue>(3)  fill in I<si_int> "
4785 "and I<si_ptr> with the values specified by the sender of the signal; see "
4786 "B<sigqueue>(3)  for more details."
4787 msgstr ""
4788
4789 #. type: Plain text
4790 #: build/C/man2/sigaction.2:329
4791 msgid ""
4792 "Signals sent by POSIX.1b timers (since Linux 2.6) fill in I<si_overrun> and "
4793 "I<si_timerid>.  The I<si_timerid> field is an internal ID used by the kernel "
4794 "to identify the timer; it is not the same as the timer ID returned by "
4795 "B<timer_create>(2).  The I<si_overrun> field is the timer overrun count; "
4796 "this is the same information as is obtained by a call to B<timer_getoverrun>"
4797 "(2).  These fields are nonstandard Linux extensions."
4798 msgstr ""
4799 "POSIX.1b タイマ (Linux 2.6 以降) は I<si_overrun> と I<si_timerid> を\n"
4800 "設定する。 I<si_timerid> フィールドはカーネルがタイマを特定するのに\n"
4801 "使用する内部 ID であり、 B<timer_create>(2) が返すタイマ ID と同じではな"
4802 "い。\n"
4803 "I<si_overrun> フィールドはタイマが回り切った回数である。\n"
4804 "これは B<timer_getoverrun>(2) の呼び出しで取得できる情報と同じである。\n"
4805 "これらのフィールドは非標準で Linux による拡張である。"
4806
4807 #. type: Plain text
4808 #: build/C/man2/sigaction.2:344
4809 msgid ""
4810 "Signals sent for message queue notification (see the description of "
4811 "B<SIGEV_SIGNAL> in B<mq_notify>(3))  fill in I<si_int>/I<si_ptr>, with the "
4812 "I<sigev_value> supplied to B<mq_notify>(3); I<si_pid>, with the process ID "
4813 "of the message sender; and I<si_uid>, with the real user ID of the message "
4814 "sender."
4815 msgstr ""
4816
4817 #.  FIXME .
4818 #.  When si_utime and si_stime where originally implemented, the
4819 #.  measurement unit was HZ, which was the same as clock ticks
4820 #.  (sysconf(_SC_CLK_TCK)).  In 2.6, HZ became configurable, and
4821 #.  was *still* used as the unit to return the info these fields,
4822 #.  with the result that the field values depended on the the
4823 #.  configured HZ.  Of course, the should have been measured in
4824 #.  USER_HZ instead, so that sysconf(_SC_CLK_TCK) could be used to
4825 #.  convert to seconds.  I have a queued patch to fix this:
4826 #.  http://thread.gmane.org/gmane.linux.kernel/698061/ .
4827 #.  This patch made it into 2.6.27.
4828 #.  But note that these fields still don't return the times of
4829 #.  waited-for children (as is done by getrusage() and times()
4830 #.  and wait4()).  Solaris 8 does include child times.
4831 #. type: Plain text
4832 #: build/C/man2/sigaction.2:391
4833 msgid ""
4834 "B<SIGCHLD> fills in I<si_pid>, I<si_uid>, I<si_status>, I<si_utime> and "
4835 "I<si_stime>, providing information about the child.  The I<si_pid> field is "
4836 "the process ID of the child; I<si_uid> is the child's real user ID.  The "
4837 "I<si_status> field contains the exit status of the child (if I<si_code> is "
4838 "B<CLD_EXITED>), or the signal number that caused the process to change "
4839 "state.  The I<si_utime> and I<si_stime> contain the user and system CPU time "
4840 "used by the child process; these fields do not include the times used by "
4841 "waited-for children (unlike B<getrusage>(2)  and B<time>(2)).  In kernels up "
4842 "to 2.6, and since 2.6.27, these fields report CPU time in units of I<sysconf"
4843 "(_SC_CLK_TCK)>.  In 2.6 kernels before 2.6.27, a bug meant that these fields "
4844 "reported time in units of the (configurable) system jiffy (see B<time>(7))."
4845 msgstr ""
4846 "B<SIGCHLD> は I<si_pid>, I<si_uid>, I<si_status>, I<si_utime>,\n"
4847 "I<si_stime> を設定し、子プロセスに関する情報を提供する。\n"
4848 "I<si_pid> フィールドは子プロセスのプロセス ID で、\n"
4849 "I<si_uid> フィールドは子プロセスの実ユーザ ID である。\n"
4850 "I<si_stime> フィールドには、 (I<si_code> が B<CLD_EXITED> の場合は) \n"
4851 "子プロセスの終了ステータスが、それ以外の場合は状態が変化する原因と\n"
4852 "なったシグナル番号が格納される。\n"
4853 "I<si_utime> と I<si_stime> には子プロセスが使用したユーザ CPU 時間とシ\n"
4854 "ステム CPU 時間がそれぞれ格納される。(B<getrusage>(2) や B<time>(2) と\n"
4855 "異なり) これらのフィールドには wait 待ちの子プロセスにより使用された時\n"
4856 "間は含まれない。 2.6 より前と 2.6.27 以降のカーネルでは、 これらのフィー\n"
4857 "ルドに格納される CPU 時間の単位は I<sysconf(_SC_CLK_TCK)> である。\n"
4858 "2.6.27 より前の 2.6 系のカーネルでは、バグがあり、 これらのフィールドの\n"
4859 "CPU 時間の単位が (カーネルのコンフィグで指定される) システムの jiffy で\n"
4860 "あった (B<time>(7) 参照)。"
4861
4862 #.  FIXME SIGTRAP also sets the following for ptrace_notify() ?
4863 #.      info.si_code = exit_code;
4864 #.      info.si_pid = task_pid_vnr(current);
4865 #.      info.si_uid = current_uid();  /* Real UID */
4866 #. type: Plain text
4867 #: build/C/man2/sigaction.2:427
4868 msgid ""
4869 "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, and B<SIGTRAP> fill in "
4870 "I<si_addr> with the address of the fault.  On some architectures, these "
4871 "signals also fill in the I<si_trapno> filed.  Some suberrors of B<SIGBUS>, "
4872 "in particular B<BUS_MCEERR_AO> and B<BUS_MCEERR_AR>, also fill in "
4873 "I<si_addr_lsb>.  This field indicates the least significant bit of the "
4874 "reported address and therefore the extent of the corruption.  For example, "
4875 "if a full page was corrupted, I<si_addr_lsb> contains I<log2(sysconf"
4876 "(_SC_PAGESIZE))>.  B<BUS_MCERR_*> and I<si_addr_lsb> are Linux-specific "
4877 "extensions."
4878 msgstr ""
4879
4880 #. type: Plain text
4881 #: build/C/man2/sigaction.2:441
4882 msgid ""
4883 "B<SIGIO>/B<SIGPOLL> (the two names are synonyms on Linux)  fills in "
4884 "I<si_band> and I<si_fd>.  The I<si_band> event is a bit mask containing the "
4885 "same values as are filled in the I<revents> field by B<poll>(2).  The "
4886 "I<si_fd> field indicates the file descriptor for which the I/O event "
4887 "occurred."
4888 msgstr ""
4889
4890 #. type: Plain text
4891 #: build/C/man2/sigaction.2:448
4892 msgid ""
4893 "I<si_code> is a value (not a bit mask)  indicating why this signal was "
4894 "sent.  The following list shows the values which can be placed in I<si_code> "
4895 "for any signal, along with reason that the signal was generated."
4896 msgstr ""
4897 "I<si_code> は、そのシグナルが送信された理由を示す値である (ビットマスクではな"
4898 "い)。 以下のリストに、どのシグナルの場合でも I<si_code> に入りうる値を、シグ"
4899 "ナルが生成された理由とともに記載する。"
4900
4901 #. type: TP
4902 #: build/C/man2/sigaction.2:449
4903 #, no-wrap
4904 msgid "B<SI_USER>"
4905 msgstr "B<SI_USER>"
4906
4907 #. type: TP
4908 #: build/C/man2/sigaction.2:452 build/C/man7/signal.7:111
4909 #, no-wrap
4910 msgid "B<kill>(2)"
4911 msgstr "B<kill>(2)"
4912
4913 #. type: TP
4914 #: build/C/man2/sigaction.2:452
4915 #, no-wrap
4916 msgid "B<SI_KERNEL>"
4917 msgstr "B<SI_KERNEL>"
4918
4919 #. type: Plain text
4920 #: build/C/man2/sigaction.2:455
4921 msgid "Sent by the kernel."
4922 msgstr "カーネルにより送信された"
4923
4924 #. type: TP
4925 #: build/C/man2/sigaction.2:455
4926 #, no-wrap
4927 msgid "B<SI_QUEUE>"
4928 msgstr "B<SI_QUEUE>"
4929
4930 #. type: TP
4931 #: build/C/man2/sigaction.2:458 build/C/man7/signal.7:128
4932 #, no-wrap
4933 msgid "B<sigqueue>(3)"
4934 msgstr "B<sigqueue>(3)"
4935
4936 #. type: TP
4937 #: build/C/man2/sigaction.2:458
4938 #, no-wrap
4939 msgid "B<SI_TIMER>"
4940 msgstr "B<SI_TIMER>"
4941
4942 #. type: Plain text
4943 #: build/C/man2/sigaction.2:461
4944 msgid "POSIX timer expired"
4945 msgstr "POSIX タイマが満了した"
4946
4947 #. type: TP
4948 #: build/C/man2/sigaction.2:461
4949 #, no-wrap
4950 msgid "B<SI_MESGQ>"
4951 msgstr "B<SI_MESGQ>"
4952
4953 #. type: Plain text
4954 #: build/C/man2/sigaction.2:465
4955 msgid ""
4956 "POSIX message queue state changed (since Linux 2.6.6); see B<mq_notify>(3)"
4957 msgstr ""
4958 "POSIX メッセージキューの状態が変化した (Linux 2.6.6 以降)。 B<mq_notify>(3)B<"
4959 "参照。>"
4960
4961 #. type: TP
4962 #: build/C/man2/sigaction.2:465
4963 #, no-wrap
4964 msgid "B<SI_ASYNCIO>"
4965 msgstr "B<SI_ASYNCIO>"
4966
4967 #. type: Plain text
4968 #: build/C/man2/sigaction.2:468
4969 msgid "AIO completed"
4970 msgstr "非同期 IO (AIO) が完了した"
4971
4972 #. type: TP
4973 #: build/C/man2/sigaction.2:468
4974 #, no-wrap
4975 msgid "B<SI_SIGIO>"
4976 msgstr "B<SI_SIGIO>"
4977
4978 #. type: Plain text
4979 #: build/C/man2/sigaction.2:477
4980 msgid ""
4981 "Queued B<SIGIO> (only in kernels up to Linux 2.2; from Linux 2.4 onward "
4982 "B<SIGIO>/B<SIGPOLL> fills in I<si_code> as described below)."
4983 msgstr ""
4984
4985 #. type: TP
4986 #: build/C/man2/sigaction.2:477
4987 #, no-wrap
4988 msgid "B<SI_TKILL>"
4989 msgstr "B<SI_TKILL>"
4990
4991 #.  SI_DETHREAD is defined in 2.6.9 sources, but isn't implemented
4992 #.  It appears to have been an idea that was tried during 2.5.6
4993 #.  through to 2.5.24 and then was backed out.
4994 #. type: Plain text
4995 #: build/C/man2/sigaction.2:486
4996 msgid "B<tkill>(2)  or B<tgkill>(2)  (since Linux 2.4.19)"
4997 msgstr "B<tkill>(2)  または B<tgkill>(2)  (Linux 2.4.19 以降)"
4998
4999 #. type: Plain text
5000 #: build/C/man2/sigaction.2:493
5001 msgid ""
5002 "The following values can be placed in I<si_code> for a B<SIGILL> signal:"
5003 msgstr "B<SIGILL> シグナルの場合、 I<si_code> には以下の値を指定できる:"
5004
5005 #. type: TP
5006 #: build/C/man2/sigaction.2:494
5007 #, no-wrap
5008 msgid "B<ILL_ILLOPC>"
5009 msgstr "B<ILL_ILLOPC>"
5010
5011 #. type: Plain text
5012 #: build/C/man2/sigaction.2:497
5013 msgid "illegal opcode"
5014 msgstr "不正な命令コード (opcode)"
5015
5016 #. type: TP
5017 #: build/C/man2/sigaction.2:497
5018 #, no-wrap
5019 msgid "B<ILL_ILLOPN>"
5020 msgstr "B<ILL_ILLOPN>"
5021
5022 #. type: Plain text
5023 #: build/C/man2/sigaction.2:500
5024 msgid "illegal operand"
5025 msgstr "不正なオペランド"
5026
5027 #. type: TP
5028 #: build/C/man2/sigaction.2:500
5029 #, no-wrap
5030 msgid "B<ILL_ILLADR>"
5031 msgstr "B<ILL_ILLADR>"
5032
5033 #. type: Plain text
5034 #: build/C/man2/sigaction.2:503
5035 msgid "illegal addressing mode"
5036 msgstr "不正なアドレッシングモード"
5037
5038 #. type: TP
5039 #: build/C/man2/sigaction.2:503
5040 #, no-wrap
5041 msgid "B<ILL_ILLTRP>"
5042 msgstr "B<ILL_ILLTRP>"
5043
5044 #. type: Plain text
5045 #: build/C/man2/sigaction.2:506
5046 msgid "illegal trap"
5047 msgstr "不正なトラップ"
5048
5049 #. type: TP
5050 #: build/C/man2/sigaction.2:506
5051 #, no-wrap
5052 msgid "B<ILL_PRVOPC>"
5053 msgstr "B<ILL_PRVOPC>"
5054
5055 #. type: Plain text
5056 #: build/C/man2/sigaction.2:509
5057 msgid "privileged opcode"
5058 msgstr "特権が必要な命令コード (opcode)"
5059
5060 #. type: TP
5061 #: build/C/man2/sigaction.2:509
5062 #, no-wrap
5063 msgid "B<ILL_PRVREG>"
5064 msgstr "B<ILL_PRVREG>"
5065
5066 #. type: Plain text
5067 #: build/C/man2/sigaction.2:512
5068 msgid "privileged register"
5069 msgstr "特権が必要なレジスタ"
5070
5071 #. type: TP
5072 #: build/C/man2/sigaction.2:512
5073 #, no-wrap
5074 msgid "B<ILL_COPROC>"
5075 msgstr "B<ILL_COPROC>"
5076
5077 #. type: Plain text
5078 #: build/C/man2/sigaction.2:515
5079 msgid "coprocessor error"
5080 msgstr "コプロセッサのエラー"
5081
5082 #. type: TP
5083 #: build/C/man2/sigaction.2:515
5084 #, no-wrap
5085 msgid "B<ILL_BADSTK>"
5086 msgstr "B<ILL_BADSTK>"
5087
5088 #. type: Plain text
5089 #: build/C/man2/sigaction.2:518
5090 msgid "internal stack error"
5091 msgstr "内部スタックエラー"
5092
5093 #. type: Plain text
5094 #: build/C/man2/sigaction.2:525
5095 msgid ""
5096 "The following values can be placed in I<si_code> for a B<SIGFPE> signal:"
5097 msgstr "B<SIGFPE> シグナルの場合、 I<si_code> には以下の値を指定できる:"
5098
5099 #. type: TP
5100 #: build/C/man2/sigaction.2:526
5101 #, no-wrap
5102 msgid "B<FPE_INTDIV>"
5103 msgstr "B<FPE_INTDIV>"
5104
5105 #. type: Plain text
5106 #: build/C/man2/sigaction.2:529
5107 msgid "integer divide by zero"
5108 msgstr "整数の 0 による除算"
5109
5110 #. type: TP
5111 #: build/C/man2/sigaction.2:529
5112 #, no-wrap
5113 msgid "B<FPE_INTOVF>"
5114 msgstr "B<FPE_INTOVF>"
5115
5116 #. type: Plain text
5117 #: build/C/man2/sigaction.2:532
5118 msgid "integer overflow"
5119 msgstr "整数のオーバーフロー"
5120
5121 #. type: TP
5122 #: build/C/man2/sigaction.2:532
5123 #, no-wrap
5124 msgid "B<FPE_FLTDIV>"
5125 msgstr "B<FPE_FLTDIV>"
5126
5127 #. type: Plain text
5128 #: build/C/man2/sigaction.2:535
5129 msgid "floating-point divide by zero"
5130 msgstr "浮動小数点の 0 による除算"
5131
5132 #. type: TP
5133 #: build/C/man2/sigaction.2:535
5134 #, no-wrap
5135 msgid "B<FPE_FLTOVF>"
5136 msgstr "B<FPE_FLTOVF>"
5137
5138 #. type: Plain text
5139 #: build/C/man2/sigaction.2:538
5140 msgid "floating-point overflow"
5141 msgstr "浮動小数点のオーバーフロー"
5142
5143 #. type: TP
5144 #: build/C/man2/sigaction.2:538
5145 #, no-wrap
5146 msgid "B<FPE_FLTUND>"
5147 msgstr "B<FPE_FLTUND>"
5148
5149 #. type: Plain text
5150 #: build/C/man2/sigaction.2:541
5151 msgid "floating-point underflow"
5152 msgstr "浮動小数点のアンダーフロー"
5153
5154 #. type: TP
5155 #: build/C/man2/sigaction.2:541
5156 #, no-wrap
5157 msgid "B<FPE_FLTRES>"
5158 msgstr "B<FPE_FLTRES>"
5159
5160 #. type: Plain text
5161 #: build/C/man2/sigaction.2:544
5162 msgid "floating-point inexact result"
5163 msgstr "浮動小数点の不正確な演算結果 (inexact result)"
5164
5165 #. type: TP
5166 #: build/C/man2/sigaction.2:544
5167 #, no-wrap
5168 msgid "B<FPE_FLTINV>"
5169 msgstr "B<FPE_FLTINV>"
5170
5171 #. type: Plain text
5172 #: build/C/man2/sigaction.2:547
5173 msgid "floating-point invalid operation"
5174 msgstr "浮動小数点の不正な操作"
5175
5176 #. type: TP
5177 #: build/C/man2/sigaction.2:547
5178 #, no-wrap
5179 msgid "B<FPE_FLTSUB>"
5180 msgstr "B<FPE_FLTSUB>"
5181
5182 #. type: Plain text
5183 #: build/C/man2/sigaction.2:550
5184 msgid "subscript out of range"
5185 msgstr "範囲外の添字 (subscript)"
5186
5187 #. type: Plain text
5188 #: build/C/man2/sigaction.2:557
5189 msgid ""
5190 "The following values can be placed in I<si_code> for a B<SIGSEGV> signal:"
5191 msgstr "B<SIGSEGV> シグナルの場合、 I<si_code> には以下の値を指定できる:"
5192
5193 #. type: TP
5194 #: build/C/man2/sigaction.2:558
5195 #, no-wrap
5196 msgid "B<SEGV_MAPERR>"
5197 msgstr "B<SEGV_MAPERR>"
5198
5199 #. type: Plain text
5200 #: build/C/man2/sigaction.2:561
5201 msgid "address not mapped to object"
5202 msgstr "オブジェクトにマッピングされていないアドレス"
5203
5204 #. type: TP
5205 #: build/C/man2/sigaction.2:561
5206 #, no-wrap
5207 msgid "B<SEGV_ACCERR>"
5208 msgstr "B<SEGV_ACCERR>"
5209
5210 #. type: Plain text
5211 #: build/C/man2/sigaction.2:564
5212 msgid "invalid permissions for mapped object"
5213 msgstr "マッピングされたオブジェクトに対するアクセス許可がない"
5214
5215 #. type: Plain text
5216 #: build/C/man2/sigaction.2:571
5217 msgid ""
5218 "The following values can be placed in I<si_code> for a B<SIGBUS> signal:"
5219 msgstr "B<SIGBUS> シグナルの場合、 I<si_code> には以下の値を指定できる:"
5220
5221 #. type: TP
5222 #: build/C/man2/sigaction.2:572
5223 #, no-wrap
5224 msgid "B<BUS_ADRALN>"
5225 msgstr "B<BUS_ADRALN>"
5226
5227 #. type: Plain text
5228 #: build/C/man2/sigaction.2:575
5229 msgid "invalid address alignment"
5230 msgstr "不正なアドレス・アライメント (alignment)"
5231
5232 #. type: TP
5233 #: build/C/man2/sigaction.2:575
5234 #, no-wrap
5235 msgid "B<BUS_ADRERR>"
5236 msgstr "B<BUS_ADRERR>"
5237
5238 #. type: Plain text
5239 #: build/C/man2/sigaction.2:578
5240 msgid "nonexistent physical address"
5241 msgstr "存在しない物理アドレス"
5242
5243 #. type: TP
5244 #: build/C/man2/sigaction.2:578
5245 #, no-wrap
5246 msgid "B<BUS_OBJERR>"
5247 msgstr "B<BUS_OBJERR>"
5248
5249 #. type: Plain text
5250 #: build/C/man2/sigaction.2:581
5251 msgid "object-specific hardware error"
5252 msgstr "オブジェクト固有のハードウェアエラー"
5253
5254 #. type: TP
5255 #: build/C/man2/sigaction.2:581
5256 #, no-wrap
5257 msgid "B<BUS_MCEERR_AR> (since Linux 2.6.32)"
5258 msgstr "B<BUS_MCEERR_AR> (Linux 2.6.32 以降)"
5259
5260 #. type: Plain text
5261 #: build/C/man2/sigaction.2:584
5262 msgid "Hardware memory error consumed on a machine check; action required."
5263 msgstr ""
5264
5265 #. type: TP
5266 #: build/C/man2/sigaction.2:584
5267 #, no-wrap
5268 msgid "B<BUS_MCEERR_AO> (since Linux 2.6.32)"
5269 msgstr "B<BUS_MCEERR_AO> (Linux 2.6.32  以降)"
5270
5271 #. type: Plain text
5272 #: build/C/man2/sigaction.2:587
5273 msgid ""
5274 "Hardware memory error detected in process but not consumed; action optional."
5275 msgstr ""
5276
5277 #. type: Plain text
5278 #: build/C/man2/sigaction.2:594
5279 msgid ""
5280 "The following values can be placed in I<si_code> for a B<SIGTRAP> signal:"
5281 msgstr "B<SIGTRAP> シグナルの場合、 I<si_code> には以下の値を指定できる:"
5282
5283 #. type: TP
5284 #: build/C/man2/sigaction.2:595
5285 #, no-wrap
5286 msgid "B<TRAP_BRKPT>"
5287 msgstr "B<TRAP_BRKPT>"
5288
5289 #. type: Plain text
5290 #: build/C/man2/sigaction.2:598
5291 msgid "process breakpoint"
5292 msgstr "プロセスのブレークポイント"
5293
5294 #. type: TP
5295 #: build/C/man2/sigaction.2:598
5296 #, no-wrap
5297 msgid "B<TRAP_TRACE>"
5298 msgstr "B<TRAP_TRACE>"
5299
5300 #. type: Plain text
5301 #: build/C/man2/sigaction.2:601
5302 msgid "process trace trap"
5303 msgstr "プロセスのトレース・トラップ"
5304
5305 #. type: TP
5306 #: build/C/man2/sigaction.2:601
5307 #, no-wrap
5308 msgid "B<TRAP_BRANCH> (since Linux 2.4)"
5309 msgstr "B<TRAP_BRANCH> (Linux 2.4 以降)"
5310
5311 #. type: Plain text
5312 #: build/C/man2/sigaction.2:604
5313 msgid "process taken branch trap"
5314 msgstr ""
5315
5316 #. type: TP
5317 #: build/C/man2/sigaction.2:604
5318 #, no-wrap
5319 msgid "B<TRAP_HWBKPT> (since Linux 2.4)"
5320 msgstr "B<TRAP_HWBKPT> (Linux 2.4 以降)"
5321
5322 #. type: Plain text
5323 #: build/C/man2/sigaction.2:607
5324 msgid "hardware breakpoint/watchpoint"
5325 msgstr ""
5326
5327 #. type: Plain text
5328 #: build/C/man2/sigaction.2:614
5329 msgid ""
5330 "The following values can be placed in I<si_code> for a B<SIGCHLD> signal:"
5331 msgstr "B<SIGCHLD> シグナルの場合、 I<si_code> には以下の値を指定できる:"
5332
5333 #. type: TP
5334 #: build/C/man2/sigaction.2:615
5335 #, no-wrap
5336 msgid "B<CLD_EXITED>"
5337 msgstr "B<CLD_EXITED>"
5338
5339 #. type: Plain text
5340 #: build/C/man2/sigaction.2:618
5341 msgid "child has exited"
5342 msgstr "子プロセスが終了した (exited)"
5343
5344 #. type: TP
5345 #: build/C/man2/sigaction.2:618
5346 #, no-wrap
5347 msgid "B<CLD_KILLED>"
5348 msgstr "B<CLD_KILLED>"
5349
5350 #. type: Plain text
5351 #: build/C/man2/sigaction.2:621
5352 msgid "child was killed"
5353 msgstr "子プロセスが kill された"
5354
5355 #. type: TP
5356 #: build/C/man2/sigaction.2:621
5357 #, no-wrap
5358 msgid "B<CLD_DUMPED>"
5359 msgstr "B<CLD_DUMPED>"
5360
5361 #. type: Plain text
5362 #: build/C/man2/sigaction.2:624
5363 msgid "child terminated abnormally"
5364 msgstr "子プロセスが異常終了した"
5365
5366 #. type: TP
5367 #: build/C/man2/sigaction.2:624
5368 #, no-wrap
5369 msgid "B<CLD_TRAPPED>"
5370 msgstr "B<CLD_TRAPPED>"
5371
5372 #. type: Plain text
5373 #: build/C/man2/sigaction.2:627
5374 msgid "traced child has trapped"
5375 msgstr "トレース対象の子プロセスがトラップを上げた"
5376
5377 #. type: TP
5378 #: build/C/man2/sigaction.2:627
5379 #, no-wrap
5380 msgid "B<CLD_STOPPED>"
5381 msgstr "B<CLD_STOPPED>"
5382
5383 #. type: Plain text
5384 #: build/C/man2/sigaction.2:630
5385 msgid "child has stopped"
5386 msgstr "子プロセスが停止 (stop) した"
5387
5388 #. type: TP
5389 #: build/C/man2/sigaction.2:630
5390 #, no-wrap
5391 msgid "B<CLD_CONTINUED>"
5392 msgstr "B<CLD_CONTINUED>"
5393
5394 #. type: Plain text
5395 #: build/C/man2/sigaction.2:633
5396 msgid "stopped child has continued (since Linux 2.6.9)"
5397 msgstr "停止していた子プロセスが再開した (Linux 2.6.9 以降)"
5398
5399 #. type: Plain text
5400 #: build/C/man2/sigaction.2:640
5401 msgid ""
5402 "The following values can be placed in I<si_code> for a B<SIGIO>/B<SIGPOLL> "
5403 "signal:"
5404 msgstr ""
5405 "B<SIGIO>/B<SIGPOLL> シグナルの場合、 I<si_code> には以下の値を\n"
5406 "指定できる:"
5407
5408 #. type: TP
5409 #: build/C/man2/sigaction.2:641
5410 #, no-wrap
5411 msgid "B<POLL_IN>"
5412 msgstr "B<POLL_IN>"
5413
5414 #. type: Plain text
5415 #: build/C/man2/sigaction.2:644
5416 msgid "data input available"
5417 msgstr "入力データが利用可能"
5418
5419 #. type: TP
5420 #: build/C/man2/sigaction.2:644
5421 #, no-wrap
5422 msgid "B<POLL_OUT>"
5423 msgstr "B<POLL_OUT>"
5424
5425 #. type: Plain text
5426 #: build/C/man2/sigaction.2:647
5427 msgid "output buffers available"
5428 msgstr "出力バッファが利用可能"
5429
5430 #. type: TP
5431 #: build/C/man2/sigaction.2:647
5432 #, no-wrap
5433 msgid "B<POLL_MSG>"
5434 msgstr "B<POLL_MSG>"
5435
5436 #. type: Plain text
5437 #: build/C/man2/sigaction.2:650
5438 msgid "input message available"
5439 msgstr "入力メッセージが利用可能"
5440
5441 #. type: TP
5442 #: build/C/man2/sigaction.2:650
5443 #, no-wrap
5444 msgid "B<POLL_ERR>"
5445 msgstr "B<POLL_ERR>"
5446
5447 #. type: Plain text
5448 #: build/C/man2/sigaction.2:653
5449 msgid "I/O error"
5450 msgstr "I/O エラー"
5451
5452 #. type: TP
5453 #: build/C/man2/sigaction.2:653
5454 #, no-wrap
5455 msgid "B<POLL_PRI>"
5456 msgstr "B<POLL_PRI>"
5457
5458 #. type: Plain text
5459 #: build/C/man2/sigaction.2:656
5460 msgid "high priority input available"
5461 msgstr "高優先の入力が利用可能"
5462
5463 #. type: TP
5464 #: build/C/man2/sigaction.2:656
5465 #, no-wrap
5466 msgid "B<POLL_HUP>"
5467 msgstr "B<POLL_HUP>"
5468
5469 #. type: Plain text
5470 #: build/C/man2/sigaction.2:659
5471 msgid "device disconnected"
5472 msgstr "デバイスが接続されていない"
5473
5474 #. type: Plain text
5475 #: build/C/man2/sigaction.2:663
5476 msgid "B<sigaction>()  returns 0 on success and -1 on error."
5477 msgstr "B<sigaction>()  は成功すれば 0 を返し、エラーならば -1 を返す。"
5478
5479 #. type: Plain text
5480 #: build/C/man2/sigaction.2:668
5481 msgid ""
5482 "I<act> or I<oldact> points to memory which is not a valid part of the "
5483 "process address space."
5484 msgstr ""
5485 "I<act> か I<oldact> が指しているメモリが正しいプロセスのアドレス空間にない。"
5486
5487 #. type: Plain text
5488 #: build/C/man2/sigaction.2:675
5489 msgid ""
5490 "An invalid signal was specified.  This will also be generated if an attempt "
5491 "is made to change the action for B<SIGKILL> or B<SIGSTOP>, which cannot be "
5492 "caught or ignored."
5493 msgstr ""
5494 "無効なシグナルが指定された。補足 (catch) したり無視したりできない シグナルで"
5495 "ある B<SIGKILL> や B<SIGSTOP> に対する動作を変更しようとした場合にも発生す"
5496 "る。"
5497
5498 #.  SVr4 does not document the EINTR condition.
5499 #. type: Plain text
5500 #: build/C/man2/sigaction.2:678
5501 msgid "POSIX.1-2001, SVr4."
5502 msgstr "POSIX.1-2001, SVr4."
5503
5504 #. type: Plain text
5505 #: build/C/man2/sigaction.2:686 build/C/man7/signal.7:105
5506 msgid ""
5507 "A child created via B<fork>(2)  inherits a copy of its parent's signal "
5508 "dispositions.  During an B<execve>(2), the dispositions of handled signals "
5509 "are reset to the default; the dispositions of ignored signals are left "
5510 "unchanged."
5511 msgstr ""
5512 "B<fork>(2) 経由で作成された子プロセスは、親プロセスのシグナルの処理方法の コ"
5513 "ピーを継承する。\n"
5514 "B<execve>(2) の前後で、ハンドラが設定されているシグナルの処理方法はデフォルト"
5515 "にリセットされ、\n"
5516 "無視が設定されているシグナルの処理方法は変更されずそのままとなる。"
5517
5518 #. type: Plain text
5519 #: build/C/man2/sigaction.2:704 build/C/man2/signal.2:131
5520 msgid ""
5521 "According to POSIX, the behavior of a process is undefined after it ignores "
5522 "a B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> signal that was not generated by "
5523 "B<kill>(2)  or B<raise>(3).  Integer division by zero has undefined result.  "
5524 "On some architectures it will generate a B<SIGFPE> signal.  (Also dividing "
5525 "the most negative integer by -1 may generate B<SIGFPE>.)  Ignoring this "
5526 "signal might lead to an endless loop."
5527 msgstr ""
5528 "POSIX では、 B<kill>(2)  や B<raise>(3)  で生成できないシグナル B<SIGFPE>, "
5529 "B<SIGILL>, B<SIGSEGV> を無視 (ignore) した場合、その後の動作は未定義である。 "
5530 "ゼロによる整数割り算の結果は未定義となる。 アーキテクチャーによっては、このと"
5531 "き B<SIGFPE> シグナルが生成される。 (同様に負の最大整数を -1 で割ると "
5532 "B<SIGFPE> が生成されるかもしれない)  このシグナルを無視すると無限ループに陥る"
5533 "かもしれない。"
5534
5535 #. type: Plain text
5536 #: build/C/man2/sigaction.2:721
5537 msgid ""
5538 "POSIX.1-1990 disallowed setting the action for B<SIGCHLD> to B<SIG_IGN>.  "
5539 "POSIX.1-2001 allows this possibility, so that ignoring B<SIGCHLD> can be "
5540 "used to prevent the creation of zombies (see B<wait>(2)).  Nevertheless, the "
5541 "historical BSD and System V behaviors for ignoring B<SIGCHLD> differ, so "
5542 "that the only completely portable method of ensuring that terminated "
5543 "children do not become zombies is to catch the B<SIGCHLD> signal and perform "
5544 "a B<wait>(2)  or similar."
5545 msgstr ""
5546 "POSIX.1-1990 では B<SIGCHLD> に B<SIG_IGN> を設定することを認めていない。 "
5547 "POSIX.1-2001 では認められており、 B<SIGCHLD> を無視することでゾンビプロセスの"
5548 "生成を防止することができる (B<wait>(2)  を参照)。 さらに、BSD と SystemV で"
5549 "は B<SIGCHLD> を無視した際の動作が異なっている。 そのため、完全に移植性がある"
5550 "方法で、終了した子プロセスがゾンビにならないこと を保証するには、 B<SIGCHLD> "
5551 "シグナルを補足し、 B<wait>(2)  などを実行するしかない。"
5552
5553 #. type: Plain text
5554 #: build/C/man2/sigaction.2:734
5555 msgid ""
5556 "POSIX.1-1990 only specified B<SA_NOCLDSTOP>.  POSIX.1-2001 added "
5557 "B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>, and B<SA_SIGINFO>.  Use of "
5558 "these latter values in I<sa_flags> may be less portable in applications "
5559 "intended for older UNIX implementations."
5560 msgstr ""
5561 "POSIX.1-1990 の仕様では B<SA_NOCLDSTOP> のみが定義されている。\n"
5562 "POSIX.1-2001 では B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>,\n"
5563 "B<SA_SIGINFO> が追加された。 UNIX の古い実装で動かすアプリケーションで、\n"
5564 "他の I<sa_flags> フラグを使用すると移植性が下がる。"
5565
5566 #. type: Plain text
5567 #: build/C/man2/sigaction.2:738
5568 msgid ""
5569 "The B<SA_RESETHAND> flag is compatible with the SVr4 flag of the same name."
5570 msgstr "B<SA_RESETHAND> フラグは SVr4 の同じ名前のフラグと互換性がある。"
5571
5572 #. type: Plain text
5573 #: build/C/man2/sigaction.2:748
5574 msgid ""
5575 "The B<SA_NODEFER> flag is compatible with the SVr4 flag of the same name "
5576 "under kernels 1.3.9 and newer.  On older kernels the Linux implementation "
5577 "allowed the receipt of any signal, not just the one we are installing "
5578 "(effectively overriding any I<sa_mask> settings)."
5579 msgstr ""
5580 "B<SA_NODEFER> フラグは 1.3.9 以降のカーネルでは同じ名前の SVr4 のフラグと互換"
5581 "性がある。 ぞれ以前の Linux カーネルの実装では、このフラグを設定しているシグ"
5582 "ナル だけでなく、どのシグナルでも受けることを許していた (実際には I<sa_mask> "
5583 "の設定により無効にできる)。"
5584
5585 #. type: Plain text
5586 #: build/C/man2/sigaction.2:754
5587 msgid ""
5588 "B<sigaction>()  can be called with a NULL second argument to query the "
5589 "current signal handler.  It can also be used to check whether a given signal "
5590 "is valid for the current machine by calling it with NULL second and third "
5591 "arguments."
5592 msgstr ""
5593 "B<sigaction>()  の二番目の引き数に NULL を指定して呼び出すと、現在のシグナル"
5594 "ハンドラを確認する ことができる。また、二番目と三番目の引き数を NULL にて呼び"
5595 "出すことで、 指定されたシグナルが現在のマシンで使えるかどうかチェックできる。"
5596
5597 #. type: Plain text
5598 #: build/C/man2/sigaction.2:760
5599 msgid ""
5600 "It is not possible to block B<SIGKILL> or B<SIGSTOP> (by specifying them in "
5601 "I<sa_mask>).  Attempts to do so are silently ignored."
5602 msgstr ""
5603 "B<SIGKILL> や B<SIGSTOP> を (I<sa_mask> に指定して) 禁止することはできない。 "
5604 "禁止しようとしても黙って無視される。"
5605
5606 #. type: Plain text
5607 #: build/C/man2/sigaction.2:764 build/C/man2/sigpending.2:67
5608 #: build/C/man2/sigprocmask.2:141 build/C/man2/sigsuspend.2:106
5609 msgid "See B<sigsetops>(3)  for details on manipulating signal sets."
5610 msgstr "シグナル集合の操作に関する詳細は B<sigsetops>(3)  を参照のこと。"
5611
5612 #. type: Plain text
5613 #: build/C/man2/sigaction.2:769
5614 msgid ""
5615 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
5616 "safely called inside from inside a signal handler."
5617 msgstr ""
5618 "シグナルハンドラ内から安全に呼び出すことができる、 async-signal-safe "
5619 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
5620 "照。"
5621
5622 #. type: SS
5623 #: build/C/man2/sigaction.2:769
5624 #, no-wrap
5625 msgid "Undocumented"
5626 msgstr "非公式"
5627
5628 #. type: Plain text
5629 #: build/C/man2/sigaction.2:779
5630 #, fuzzy
5631 #| msgid ""
5632 #| "Before the introduction of B<SA_SIGINFO> it was also possible to get some "
5633 #| "additional information, namely by using a I<sa_handler> with second "
5634 #| "argument of type I<struct sigcontext>.  See the relevant kernel sources "
5635 #| "for details.  This use is obsolete now."
5636 msgid ""
5637 "Before the introduction of B<SA_SIGINFO> it was also possible to get some "
5638 "additional information, namely by using a I<sa_handler> with second argument "
5639 "of type I<struct sigcontext>.  See the relevant Linux kernel sources for "
5640 "details.  This use is obsolete now."
5641 msgstr ""
5642 "B<SA_SIGINFO> が導入される前は、 I<struct sigcontext> 型の二番目の引き数と一"
5643 "緒に I<sa_handler> を使用することで、 いくつかの追加の情報を入手することがで"
5644 "きた。 詳細についてはカーネルソースの関連部分を見てほしい。 現在はこの使用法"
5645 "は廃止されている。"
5646
5647 #. type: Plain text
5648 #: build/C/man2/sigaction.2:788
5649 msgid ""
5650 "In kernels up to and including 2.6.13, specifying B<SA_NODEFER> in "
5651 "I<sa_flags> prevents not only the delivered signal from being masked during "
5652 "execution of the handler, but also the signals specified in I<sa_mask>.  "
5653 "This bug was fixed in kernel 2.6.14."
5654 msgstr ""
5655 "2.6.13 以前のカーネルでは、 I<sa_flags> に B<SA_NODEFER> を指定した場合、 ハ"
5656 "ンドラが実行中に配送されたシグナル自身がマスクされなくなるだけでなく、 "
5657 "I<sa_mask> に指定されたシグナルもマスクされなくなる。 このバグは、カーネル "
5658 "2.6.14 で修正された。"
5659
5660 #. type: Plain text
5661 #: build/C/man2/sigaction.2:791
5662 msgid "See B<mprotect>(2)."
5663 msgstr "B<mprotect>(2)  参照。"
5664
5665 #. type: Plain text
5666 #: build/C/man2/sigaction.2:810
5667 msgid ""
5668 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaltstack>(2), "
5669 "B<signal>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
5670 "B<sigsuspend>(2), B<wait>(2), B<raise>(3), B<siginterrupt>(3), B<sigqueue>"
5671 "(3), B<sigsetops>(3), B<sigvec>(3), B<core>(5), B<signal>(7)"
5672 msgstr ""
5673 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaltstack>(2),\n"
5674 "B<signal>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2),\n"
5675 "B<sigsuspend>(2), B<wait>(2), B<raise>(3), B<siginterrupt>(3),\n"
5676 "B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), B<core>(5),\n"
5677 "B<signal>(7)"
5678
5679 #. type: TH
5680 #: build/C/man2/sigaltstack.2:27
5681 #, no-wrap
5682 msgid "SIGALTSTACK"
5683 msgstr "SIGALTSTACK"
5684
5685 #. type: TH
5686 #: build/C/man2/sigaltstack.2:27
5687 #, no-wrap
5688 msgid "2010-09-26"
5689 msgstr "2010-09-26"
5690
5691 #. type: Plain text
5692 #: build/C/man2/sigaltstack.2:30
5693 msgid "sigaltstack - set and/or get signal stack context"
5694 msgstr "sigaltstack - シグナルスタックのコンテキストを設定・取得する"
5695
5696 #. type: Plain text
5697 #: build/C/man2/sigaltstack.2:34
5698 msgid "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
5699 msgstr "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
5700
5701 #. type: Plain text
5702 #: build/C/man2/sigaltstack.2:41
5703 msgid "B<sigaltstack>():"
5704 msgstr "B<sigaltstack>():"
5705
5706 #. type: Plain text
5707 #: build/C/man2/sigaltstack.2:48 build/C/man3/siginterrupt.3:53
5708 #: build/C/man2/wait.2:78
5709 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
5710 msgstr "|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
5711
5712 #. type: Plain text
5713 #: build/C/man2/sigaltstack.2:60
5714 msgid ""
5715 "B<sigaltstack>()  allows a process to define a new alternate signal stack "
5716 "and/or retrieve the state of an existing alternate signal stack.  An "
5717 "alternate signal stack is used during the execution of a signal handler if "
5718 "the establishment of that handler (see B<sigaction>(2))  requested it."
5719 msgstr ""
5720 "B<sigaltstack>()  を使うと、 プロセスは新しい代替シグナルスタックを定義した"
5721 "り、 既存の代替シグナルスタックの状態を取得できる。 シグナルハンドラが代替シ"
5722 "グナルスタックを要求するように設定されていると (B<sigaction>(2)  参照)、ハン"
5723 "ドラの実行中はそのシグナルスタックが使われる。"
5724
5725 #. type: Plain text
5726 #: build/C/man2/sigaltstack.2:63
5727 msgid ""
5728 "The normal sequence of events for using an alternate signal stack is the "
5729 "following:"
5730 msgstr "代替シグナルスタックを使う際の一般的な手順は、以下の通りである:"
5731
5732 #. type: IP
5733 #: build/C/man2/sigaltstack.2:63 build/C/man7/signal.7:387
5734 #, no-wrap
5735 msgid "1."
5736 msgstr "1."
5737
5738 #. type: Plain text
5739 #: build/C/man2/sigaltstack.2:67
5740 msgid "Allocate an area of memory to be used for the alternate signal stack."
5741 msgstr "代替シグナルスタックで使うメモリ領域を確保する。"
5742
5743 #. type: IP
5744 #: build/C/man2/sigaltstack.2:67 build/C/man7/signal.7:391
5745 #, no-wrap
5746 msgid "2."
5747 msgstr "2."
5748
5749 #. type: Plain text
5750 #: build/C/man2/sigaltstack.2:73
5751 msgid ""
5752 "Use B<sigaltstack>()  to inform the system of the existence and location of "
5753 "the alternate signal stack."
5754 msgstr ""
5755 "B<sigaltstack>()  を使って、 代替シグナルスタックの存在と場所をシステムに知ら"
5756 "せる。"
5757
5758 #. type: IP
5759 #: build/C/man2/sigaltstack.2:73 build/C/man7/signal.7:411
5760 #, no-wrap
5761 msgid "3."
5762 msgstr "3."
5763
5764 #. type: Plain text
5765 #: build/C/man2/sigaltstack.2:80
5766 msgid ""
5767 "When establishing a signal handler using B<sigaction>(2), inform the system "
5768 "that the signal handler should be executed on the alternate signal stack by "
5769 "specifying the B<SA_ONSTACK> flag."
5770 msgstr ""
5771 "B<sigaction>(2)  を使ってシグナルハンドラを確立する際、 B<SA_ONSTACK> フラグ"
5772 "を指定することにより、 そのシグナルハンドラを代替シグナルスタック上で実行する"
5773 "ことを システムに知らせる。"
5774
5775 #. type: Plain text
5776 #: build/C/man2/sigaltstack.2:88
5777 msgid ""
5778 "The I<ss> argument is used to specify a new alternate signal stack, while "
5779 "the I<oss> argument is used to retrieve information about the currently "
5780 "established signal stack.  If we are interested in performing just one of "
5781 "these tasks then the other argument can be specified as NULL.  Each of these "
5782 "arguments is a structure of the following type:"
5783 msgstr ""
5784 "I<ss> 引き数は、新しいシグナルスタックを指定するために使う。 また I<oss> 引き"
5785 "数は、現在確立されている シグナルスタックの情報を取得するために使う。 この操"
5786 "作のうち 1 つだけを実行させるには、 使用しない引き数を NULL に指定すればよ"
5787 "い。 引き数となる構造体は、以下のような型である:"
5788
5789 #. type: Plain text
5790 #: build/C/man2/sigaltstack.2:96
5791 #, no-wrap
5792 msgid ""
5793 "typedef struct {\n"
5794 "    void  *ss_sp;     /* Base address of stack */\n"
5795 "    int    ss_flags;  /* Flags */\n"
5796 "    size_t ss_size;   /* Number of bytes in stack */\n"
5797 "} stack_t;\n"
5798 msgstr ""
5799 "typedef struct {\n"
5800 "    void  *ss_sp;     /* スタックのベースアドレス */\n"
5801 "    int    ss_flags;  /* フラグ */\n"
5802 "    size_t ss_size;   /* スタックのバイト数 */\n"
5803 "} stack_t;\n"
5804
5805 #. type: Plain text
5806 #: build/C/man2/sigaltstack.2:107
5807 msgid ""
5808 "To establish a new alternate signal stack, I<ss.ss_flags> is set to zero, "
5809 "and I<ss.ss_sp> and I<ss.ss_size> specify the starting address and size of "
5810 "the stack.  The constant B<SIGSTKSZ> is defined to be large enough to cover "
5811 "the usual size requirements for an alternate signal stack, and the constant "
5812 "B<MINSIGSTKSZ> defines the minimum size required to execute a signal handler."
5813 msgstr ""
5814 "新規の代替シグナルスタックを確立するには、 I<ss.ss_flags> を 0 に設定し、 "
5815 "I<ss.ss_sp> と I<ss.ss_size> に スタックの開始アドレスとスタックサイズを指定"
5816 "する。 定数 B<SIGSTKSZ> は、代替シグナルスタックが通常必要する サイズよりも充"
5817 "分大きく定義されている。 また定数 B<MINSIGSTKSZ> は、 シグナルハンドラの実行"
5818 "に必要な最小サイズに定義されている。"
5819
5820 #. type: Plain text
5821 #: build/C/man2/sigaltstack.2:111
5822 msgid ""
5823 "When a signal handler is invoked on the alternate stack, the kernel "
5824 "automatically aligns the address given in I<ss.ss_sp> to a suitable address "
5825 "boundary for the underlying hardware architecture."
5826 msgstr ""
5827 "代替スタックでシグナルハンドラが起動された場合には、 カーネルにより自動的に、"
5828 "I<ss.ss_sp> で指定されたアドレスは 動作しているハードウェアアーキテクチャに適"
5829 "したアドレス境界に 調整される。"
5830
5831 #. type: Plain text
5832 #: build/C/man2/sigaltstack.2:116
5833 msgid ""
5834 "To disable an existing stack, specify I<ss.ss_flags> as B<SS_DISABLE>.  In "
5835 "this case, the remaining fields in I<ss> are ignored."
5836 msgstr ""
5837 "既存のスタックを無効にするには、 I<ss.ss_flags> を B<SS_DISABLE> に指定す"
5838 "る。 この場合、I<ss> の他のフィールドは無視される。"
5839
5840 #. type: Plain text
5841 #: build/C/man2/sigaltstack.2:124
5842 msgid ""
5843 "If I<oss> is not NULL, then it is used to return information about the "
5844 "alternate signal stack which was in effect prior to the call to "
5845 "B<sigaltstack>().  The I<oss.ss_sp> and I<oss.ss_size> fields return the "
5846 "starting address and size of that stack.  The I<oss.ss_flags> may return "
5847 "either of the following values:"
5848 msgstr ""
5849 "I<oss> が NULL 以外の場合、 I<oss> に代替シグナルスタックの情報が返される。 "
5850 "これは (実質的に)  B<sigaltstack>()  の呼び出しより先に行われる。 I<oss."
5851 "ss_sp> と I<oss.ss_size> フィールドに スタックの開始アドレスとスタックサイズ"
5852 "が返される。 I<oss.ss_flags> には以下のどちらかの値が返される:"
5853
5854 #. type: TP
5855 #: build/C/man2/sigaltstack.2:124
5856 #, no-wrap
5857 msgid "B<SS_ONSTACK>"
5858 msgstr "B<SS_ONSTACK>"
5859
5860 #. type: Plain text
5861 #: build/C/man2/sigaltstack.2:130
5862 msgid ""
5863 "The process is currently executing on the alternate signal stack.  (Note "
5864 "that it is not possible to change the alternate signal stack if the process "
5865 "is currently executing on it.)"
5866 msgstr ""
5867 "プロセスが代替シグナルスタック上で実行されている (プロセスが既にそのシグナル"
5868 "スタック上で実行されている場合は、 それと同じシグナルスタックには変更できない"
5869 "点に注意すること)。"
5870
5871 #. type: TP
5872 #: build/C/man2/sigaltstack.2:130
5873 #, no-wrap
5874 msgid "B<SS_DISABLE>"
5875 msgstr "B<SS_DISABLE>"
5876
5877 #. type: Plain text
5878 #: build/C/man2/sigaltstack.2:133
5879 msgid "The alternate signal stack is currently disabled."
5880 msgstr "代替シグナルスタックが現在無効になっている。"
5881
5882 #. type: Plain text
5883 #: build/C/man2/sigaltstack.2:137
5884 msgid ""
5885 "B<sigaltstack>()  returns 0 on success, or -1 on failure with I<errno> set "
5886 "to indicate the error."
5887 msgstr ""
5888 "B<sigaltstack>()  は成功した場合 0 を返す。 失敗した場合は -1 を返して、 エ"
5889 "ラーを示す値に I<errno> を設定する。"
5890
5891 #. type: Plain text
5892 #: build/C/man2/sigaltstack.2:142
5893 msgid ""
5894 "Either I<ss> or I<oss> is not NULL and points to an area outside of the "
5895 "process's address space."
5896 msgstr ""
5897 "I<ss> または I<oss> のどちらが、NULL 以外で、 かつプロセスのアドレス空間の外"
5898 "を指している。"
5899
5900 #. type: Plain text
5901 #: build/C/man2/sigaltstack.2:147
5902 msgid ""
5903 "I<ss> is not NULL and the I<ss_flags> field contains a nonzero value other "
5904 "than B<SS_DISABLE>."
5905 msgstr ""
5906 "I<ss> が NULL 以外で、I<ss_flags> フィールドが B<SS_DISABLE> 以外の 0 でない"
5907 "値になっている。"
5908
5909 #. type: Plain text
5910 #: build/C/man2/sigaltstack.2:151
5911 msgid ""
5912 "The specified size of the new alternate signal stack (I<ss.ss_size>) was "
5913 "less than B<MINSTKSZ>."
5914 msgstr ""
5915 "新しい代替シグナルスタック (I<ss.ss_size>) に指定したサイズが B<MINSTKSZ> よ"
5916 "り小さい。"
5917
5918 #. type: Plain text
5919 #: build/C/man2/sigaltstack.2:156
5920 msgid ""
5921 "An attempt was made to change the alternate signal stack while it was active "
5922 "(i.e., the process was already executing on the current alternate signal "
5923 "stack)."
5924 msgstr ""
5925 "代替シグナルスタックが有効であるときに変更を行おうとした (つまり、プロセスが"
5926 "既に現在の代替シグナルスタック上で実行されていた)。"
5927
5928 #. type: Plain text
5929 #: build/C/man2/sigaltstack.2:158
5930 msgid "SUSv2, SVr4, POSIX.1-2001."
5931 msgstr "SUSv2, SVr4, POSIX.1-2001."
5932
5933 #. type: Plain text
5934 #: build/C/man2/sigaltstack.2:166
5935 msgid ""
5936 "The most common usage of an alternate signal stack is to handle the "
5937 "B<SIGSEGV> signal that is generated if the space available for the normal "
5938 "process stack is exhausted: in this case, a signal handler for B<SIGSEGV> "
5939 "cannot be invoked on the process stack; if we wish to handle it, we must use "
5940 "an alternate signal stack."
5941 msgstr ""
5942 "代替シグナルスタックを使用する最もよくある場面は、 B<SIGSEGV> シグナルを扱う"
5943 "ときである。 B<SIGSEGV> はプロセスの通常のスタックが利用できる空間が使い果た"
5944 "された際に 生成されるシグナルである。この場合には、 B<SIGSEGV> 用のシグナルハ"
5945 "ンドラをプロセスのスタック上では起動することができない。 そのため、このシグナ"
5946 "ルを扱おうとする場合には、 代替シグナルスタックを使用しなければならない。"
5947
5948 #. type: Plain text
5949 #: build/C/man2/sigaltstack.2:176
5950 msgid ""
5951 "Establishing an alternate signal stack is useful if a process expects that "
5952 "it may exhaust its standard stack.  This may occur, for example, because the "
5953 "stack grows so large that it encounters the upwardly growing heap, or it "
5954 "reaches a limit established by a call to B<setrlimit(RLIMIT_STACK, &rlim)>.  "
5955 "If the standard stack is exhausted, the kernel sends the process a "
5956 "B<SIGSEGV> signal.  In these circumstances the only way to catch this signal "
5957 "is on an alternate signal stack."
5958 msgstr ""
5959 "プロセスが標準のシグナルスタックを使い果たすことが予想される場合は、 代替シグ"
5960 "ナルスタックを確立すると便利である。 例えば、スタックが最上位アドレスから 下"
5961 "位アドレス方向に非常にたくさん積まれてしまうことで、 最下位アドレスから上位ア"
5962 "ドレス方向に積まれるヒープとぶつかってしまう場合や、 B<setrlimit"
5963 "(RLIMIT_STACK, &rlim)> の呼び出しで確立された 制限に達してしまった場合に、こ"
5964 "の様な事が起こる。 標準のスタックを使い果たしてしまうと、 カーネルはプロセス"
5965 "に B<SIGSEGV> シグナルを送る。 このような状況では、代替シグナルスタック上でし"
5966 "かシグナルをキャッチできない。"
5967
5968 #. type: Plain text
5969 #: build/C/man2/sigaltstack.2:182
5970 msgid ""
5971 "On most hardware architectures supported by Linux, stacks grow downward.  "
5972 "B<sigaltstack>()  automatically takes account of the direction of stack "
5973 "growth."
5974 msgstr ""
5975 "Linux がサポートする多くのハードウェアアーキテクチャでは、 スタックは下位アド"
5976 "レス方向に積まれる。 B<sigaltstack>()  はスタックが積まれる方向を自動的に決定"
5977 "する。"
5978
5979 #. type: Plain text
5980 #: build/C/man2/sigaltstack.2:191
5981 msgid ""
5982 "Functions called from a signal handler executing on an alternate signal "
5983 "stack will also use the alternate signal stack.  (This also applies to any "
5984 "handlers invoked for other signals while the process is executing on the "
5985 "alternate signal stack.)  Unlike the standard stack, the system does not "
5986 "automatically extend the alternate signal stack.  Exceeding the allocated "
5987 "size of the alternate signal stack will lead to unpredictable results."
5988 msgstr ""
5989 "代替シグナルスタック上で実行されている シグナルハンドラから呼ばれる関数も、代"
5990 "替シグナルハンドラを使う (プロセスが代替シグナルスタック上で実行されている場"
5991 "合、 他のシグナルで呼び出されるハンドラもこの代替シグナルハンドラを使う)。 標"
5992 "準のスタックとは異なり、 システムは代替シグナルスタックを自動的に拡張しな"
5993 "い。 代替シグナルスタック用に確保したサイズを越えた場合、 結果は予想できな"
5994 "い。"
5995
5996 #. type: Plain text
5997 #: build/C/man2/sigaltstack.2:199
5998 msgid ""
5999 "A successful call to B<execve>(2)  removes any existing alternate signal "
6000 "stack.  A child process created via B<fork>(2)  inherits a copy of its "
6001 "parent's alternate signal stack settings."
6002 msgstr ""
6003 "B<execve>(2)  の呼び出しが成功すると、 既存の全ての代替シグナルスタックが削除"
6004 "される。 B<fork>(2)  経由で作成された子プロセスは、親プロセスの代替シグナルス"
6005 "タックの 設定のコピーを継承する。"
6006
6007 #. type: Plain text
6008 #: build/C/man2/sigaltstack.2:208
6009 msgid ""
6010 "B<sigaltstack>()  supersedes the older B<sigstack>()  call.  For backward "
6011 "compatibility, glibc also provides B<sigstack>().  All new applications "
6012 "should be written using B<sigaltstack>()."
6013 msgstr ""
6014 "B<sigaltstack>()  は以前の B<sigstack>()  を置き換えるものである。 過去プログ"
6015 "ラムとの互換性のため、glibc では B<sigstack>()  も提供している。 新しいのアプ"
6016 "リケーションは全て B<sigaltstack>()  を使って書くべきである。"
6017
6018 #. type: SS
6019 #: build/C/man2/sigaltstack.2:208 build/C/man3/sigpause.3:61
6020 #, no-wrap
6021 msgid "History"
6022 msgstr "歴史"
6023
6024 #. type: Plain text
6025 #: build/C/man2/sigaltstack.2:215
6026 msgid ""
6027 "4.2BSD had a B<sigstack>()  system call.  It used a slightly different "
6028 "struct, and had the major disadvantage that the caller had to know the "
6029 "direction of stack growth."
6030 msgstr ""
6031 "4.2BSD には B<sigstack>()  システムコールがあった。 この関数は少し異なった構"
6032 "造体を使っており、 呼び出した側がスタックの積まれる方向を知っていなければなら"
6033 "ないという 大きな欠点があった。"
6034
6035 #. type: Plain text
6036 #: build/C/man2/sigaltstack.2:218
6037 msgid "The following code segment demonstrates the use of B<sigaltstack>():"
6038 msgstr "以下のコードで B<sigaltstack>()  の使用法の一部を示す:"
6039
6040 #. type: Plain text
6041 #: build/C/man2/sigaltstack.2:222
6042 #, no-wrap
6043 msgid "stack_t ss;\n"
6044 msgstr "stack_t ss;\n"
6045
6046 #. type: Plain text
6047 #: build/C/man2/sigaltstack.2:230
6048 #, no-wrap
6049 msgid ""
6050 "ss.ss_sp = malloc(SIGSTKSZ);\n"
6051 "if (ss.ss_sp == NULL)\n"
6052 "    /* Handle error */;\n"
6053 "ss.ss_size = SIGSTKSZ;\n"
6054 "ss.ss_flags = 0;\n"
6055 "if (sigaltstack(&ss, NULL) == -1)\n"
6056 "    /* Handle error */;\n"
6057 msgstr ""
6058 "ss.ss_sp = malloc(SIGSTKSZ);\n"
6059 "if (ss.ss_sp == NULL)\n"
6060 "    /* ハンドルエラー */;\n"
6061 "ss.ss_size = SIGSTKSZ;\n"
6062 "ss.ss_flags = 0;\n"
6063 "if (sigaltstack(&ss, NULL) == -1)\n"
6064 "    /* ハンドルエラー */;\n"
6065
6066 #. type: Plain text
6067 #: build/C/man2/sigaltstack.2:239
6068 msgid ""
6069 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
6070 "B<sigsetjmp>(3), B<signal>(7)"
6071 msgstr ""
6072 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
6073 "B<sigsetjmp>(3), B<signal>(7)"
6074
6075 #. type: TH
6076 #: build/C/man7/sigevent.7:26
6077 #, no-wrap
6078 msgid "SIGEVENT"
6079 msgstr "SIGEVENT"
6080
6081 #. type: TH
6082 #: build/C/man7/sigevent.7:26 build/C/man3/siginterrupt.3:31
6083 #, no-wrap
6084 msgid "2011-09-09"
6085 msgstr "2011-09-09"
6086
6087 #. type: Plain text
6088 #: build/C/man7/sigevent.7:29
6089 msgid "sigevent - structure for notification from asynchronous routines"
6090 msgstr ""
6091
6092 #. type: Plain text
6093 #: build/C/man7/sigevent.7:36
6094 #, no-wrap
6095 msgid ""
6096 "union sigval {          /* Data passed with notification */\n"
6097 "    int     sival_int;         /* Integer value */\n"
6098 "    void   *sival_ptr;         /* Pointer value */\n"
6099 "};\n"
6100 msgstr ""
6101 "union sigval {          /* Data passed with notification */\n"
6102 "    int     sival_int;         /* Integer value */\n"
6103 "    void   *sival_ptr;         /* Pointer value */\n"
6104 "};\n"
6105
6106 #. type: Plain text
6107 #: build/C/man7/sigevent.7:51
6108 #, no-wrap
6109 msgid ""
6110 "struct sigevent {\n"
6111 "    int          sigev_notify; /* Notification method */\n"
6112 "    int          sigev_signo;  /* Notification signal */\n"
6113 "    union sigval sigev_value;  /* Data passed with\n"
6114 "                                  notification */\n"
6115 "    void       (*sigev_notify_function) (union sigval);\n"
6116 "                     /* Function used for thread\n"
6117 "                        notification (SIGEV_THREAD) */\n"
6118 "    void        *sigev_notify_attributes;\n"
6119 "                     /* Attributes for notification thread\n"
6120 "                        (SIGEV_THREAD) */\n"
6121 "    pid_t        sigev_notify_thread_id;\n"
6122 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
6123 "};\n"
6124 msgstr ""
6125 "struct sigevent {\n"
6126 "    int          sigev_notify; /* Notification method */\n"
6127 "    int          sigev_signo;  /* Notification signal */\n"
6128 "    union sigval sigev_value;  /* Data passed with\n"
6129 "                                  notification */\n"
6130 "    void       (*sigev_notify_function) (union sigval);\n"
6131 "                     /* Function used for thread\n"
6132 "                        notification (SIGEV_THREAD) */\n"
6133 "    void        *sigev_notify_attributes;\n"
6134 "                     /* Attributes for notification thread\n"
6135 "                        (SIGEV_THREAD) */\n"
6136 "    pid_t        sigev_notify_thread_id;\n"
6137 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
6138 "};\n"
6139
6140 #. type: Plain text
6141 #: build/C/man7/sigevent.7:60
6142 msgid ""
6143 "The I<sigevent> structure is used by various APIs to describe the way a "
6144 "process is to be notified about an event (e.g., completion of an "
6145 "asynchronous request, expiration of a timer, or the arrival of a message)."
6146 msgstr ""
6147
6148 #. type: Plain text
6149 #: build/C/man7/sigevent.7:68
6150 msgid ""
6151 "The definition shown in the SYNOPSIS is approximate: some of the fields in "
6152 "the I<sigevent> structure may be defined as part of a union.  Programs "
6153 "should only employ those fields relevant to the value specified in "
6154 "I<sigev_notify>."
6155 msgstr ""
6156
6157 #. type: Plain text
6158 #: build/C/man7/sigevent.7:73
6159 msgid ""
6160 "The I<sigev_notify> field specifies how notification is to be performed.  "
6161 "This field can have one of the following values:"
6162 msgstr ""
6163
6164 #. type: TP
6165 #: build/C/man7/sigevent.7:73 build/C/man2/timer_create.2:107
6166 #, no-wrap
6167 msgid "B<SIGEV_NONE>"
6168 msgstr "B<SIGEV_NONE>"
6169
6170 #. type: Plain text
6171 #: build/C/man7/sigevent.7:76
6172 msgid "A \"null\" notification: don't do anything when the event occurs."
6173 msgstr ""
6174
6175 #. type: TP
6176 #: build/C/man7/sigevent.7:76 build/C/man2/timer_create.2:112
6177 #, no-wrap
6178 msgid "B<SIGEV_SIGNAL>"
6179 msgstr "B<SIGEV_SIGNAL>"
6180
6181 #. type: Plain text
6182 #: build/C/man7/sigevent.7:80
6183 msgid "Notify the process by sending the signal specified in I<sigev_signo>."
6184 msgstr ""
6185
6186 #. type: Plain text
6187 #: build/C/man7/sigevent.7:87
6188 msgid ""
6189 "If the signal is caught with a signal handler that was registered using the "
6190 "B<sigaction>(2)  B<SA_SIGINFO> flag, then the following fields are set in "
6191 "the I<siginfo_t> structure that is passed as the second argument of the "
6192 "handler:"
6193 msgstr ""
6194
6195 #. type: Plain text
6196 #: build/C/man7/sigevent.7:92
6197 msgid ""
6198 "This field is set to a value that depends on the API delivering the "
6199 "notification."
6200 msgstr ""
6201
6202 #. type: TP
6203 #: build/C/man7/sigevent.7:92 build/C/man2/wait.2:300
6204 #, no-wrap
6205 msgid "I<si_signo>"
6206 msgstr "I<si_signo>"
6207
6208 #. type: Plain text
6209 #: build/C/man7/sigevent.7:96
6210 msgid ""
6211 "This field is set to the signal number (i.e., the same value as in "
6212 "I<sigev_signo>)."
6213 msgstr ""
6214
6215 #. type: Plain text
6216 #: build/C/man7/sigevent.7:100
6217 msgid "This field is set to the value specified in I<sigev_value>."
6218 msgstr ""
6219
6220 #. type: Plain text
6221 #: build/C/man7/sigevent.7:105
6222 msgid ""
6223 "Depending on the API, other fields may also be set in the I<siginfo_t> "
6224 "structure."
6225 msgstr ""
6226
6227 #. type: Plain text
6228 #: build/C/man7/sigevent.7:108
6229 msgid ""
6230 "The same information is also available if the signal is accepted using "
6231 "B<sigwaitinfo>(2)."
6232 msgstr ""
6233
6234 #. type: TP
6235 #: build/C/man7/sigevent.7:108 build/C/man2/timer_create.2:130
6236 #, no-wrap
6237 msgid "B<SIGEV_THREAD>"
6238 msgstr "B<SIGEV_THREAD>"
6239
6240 #. type: Plain text
6241 #: build/C/man7/sigevent.7:125
6242 msgid ""
6243 "Notify the process by invoking I<sigev_notify_function> \"as if\" it were "
6244 "the start function of a new thread.  (Among the implementation possibilities "
6245 "here are that each timer notification could result in the creation of a new "
6246 "thread, or that a single thread is created to receive all notifications.)  "
6247 "The function is invoked with I<sigev_value> as its sole argument.  If "
6248 "I<sigev_notify_attributes> is not NULL, it should point to a "
6249 "I<pthread_attr_t> structure that defines attributes for the new thread (see "
6250 "B<pthread_attr_init>(3))."
6251 msgstr ""
6252
6253 #. type: TP
6254 #: build/C/man7/sigevent.7:125 build/C/man2/timer_create.2:138
6255 #, no-wrap
6256 msgid "B<SIGEV_THREAD_ID> (Linux-specific)"
6257 msgstr ""
6258
6259 #.  | SIGEV_SIGNAL vs not?
6260 #. type: Plain text
6261 #: build/C/man7/sigevent.7:130
6262 msgid "Currently used only by POSIX timers; see B<timer_create>(2)."
6263 msgstr ""
6264
6265 #. type: Plain text
6266 #: build/C/man7/sigevent.7:132 build/C/man2/sigpending.2:63
6267 #: build/C/man2/sigprocmask.2:111 build/C/man3/sigqueue.3:116
6268 #: build/C/man3/sigsetops.3:130 build/C/man2/sigsuspend.2:84
6269 #: build/C/man3/sigwait.3:82 build/C/man2/sigwaitinfo.2:135
6270 #: build/C/man2/timer_create.2:195 build/C/man2/timer_delete.2:69
6271 #: build/C/man2/timer_getoverrun.2:99 build/C/man2/timer_settime.2:209
6272 msgid "POSIX.1-2001."
6273 msgstr "POSIX.1-2001."
6274
6275 #. type: Plain text
6276 #: build/C/man7/sigevent.7:142
6277 msgid ""
6278 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
6279 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
6280 "B<pthreads>(7)"
6281 msgstr ""
6282 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
6283 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
6284 "B<pthreads>(7)"
6285
6286 #. type: TH
6287 #: build/C/man3/siginterrupt.3:31
6288 #, no-wrap
6289 msgid "SIGINTERRUPT"
6290 msgstr "SIGINTERRUPT"
6291
6292 #. type: Plain text
6293 #: build/C/man3/siginterrupt.3:34
6294 msgid "siginterrupt - allow signals to interrupt system calls"
6295 msgstr "siginterrupt - シグナルでシステム・コールに割り込むことを許す"
6296
6297 #. type: Plain text
6298 #: build/C/man3/siginterrupt.3:39
6299 #, no-wrap
6300 msgid "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
6301 msgstr "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
6302
6303 #. type: Plain text
6304 #: build/C/man3/siginterrupt.3:47
6305 msgid "B<siginterrupt>():"
6306 msgstr "B<siginterrupt>():"
6307
6308 #. type: Plain text
6309 #: build/C/man3/siginterrupt.3:64
6310 msgid ""
6311 "The B<siginterrupt>()  function changes the restart behavior when a system "
6312 "call is interrupted by the signal I<sig>.  If the I<flag> argument is false "
6313 "(0), then system calls will be restarted if interrupted by the specified "
6314 "signal I<sig>.  This is the default behavior in Linux."
6315 msgstr ""
6316 "B<siginterrupt>()  関数は、システム・コールがシグナル I<sig> によって割り込ま"
6317 "れた後、再実行の際の振る舞いを変更する。 I<flag> 引き数が偽 (0) ならば、シス"
6318 "テム・コールが指定した シグナル I<sig> によって割り込まれた後に、そのシステ"
6319 "ム・コールは 再実行される。これは Linux においてデフォルトの動作である。"
6320
6321 #. type: Plain text
6322 #: build/C/man3/siginterrupt.3:69
6323 msgid ""
6324 "If the I<flag> argument is true (1) and no data has been transferred, then a "
6325 "system call interrupted by the signal I<sig> will return -1 and I<errno> "
6326 "will be set to B<EINTR>."
6327 msgstr ""
6328 "I<flag> 引き数が真 (1) でデータの転送が全く行なわれていないならば、 シグナル "
6329 "I<sig> でシステム・コールは中断されて、-1 が返され、 I<errno> に B<EINTR> が"
6330 "設定される。"
6331
6332 #. type: Plain text
6333 #: build/C/man3/siginterrupt.3:73
6334 msgid ""
6335 "If the I<flag> argument is true (1) and data transfer has started, then the "
6336 "system call will be interrupted and will return the actual amount of data "
6337 "transferred."
6338 msgstr ""
6339 "I<flag> 引き数が真 (1) でデータの転送が開始されていれば、 システム・コールは"
6340 "中断され、それまでに実際に転送されたデータ の量が返される。"
6341
6342 #. type: Plain text
6343 #: build/C/man3/siginterrupt.3:78
6344 msgid ""
6345 "The B<siginterrupt>()  function returns 0 on success, or -1 if the signal "
6346 "number I<sig> is invalid."
6347 msgstr ""
6348 "B<siginterrupt>()  関数は成功した場合 0 を返す。 シグナル番号 I<sig> が不正な"
6349 "場合は -1 を返す。"
6350
6351 #. type: Plain text
6352 #: build/C/man3/siginterrupt.3:82
6353 msgid "The specified signal number is invalid."
6354 msgstr "指定したシグナル番号が不正である。"
6355
6356 #. type: Plain text
6357 #: build/C/man3/siginterrupt.3:91
6358 msgid ""
6359 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 marks B<siginterrupt>()  as obsolete, "
6360 "recommending the use of B<sigaction>(2)  with the B<SA_RESTART> flag instead."
6361 msgstr ""
6362 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 は、 B<siginterrupt>()  を廃止予定として"
6363 "いる。 代わりに、 B<sigaction>(2)  に B<SA_RESTART> フラグを指定して使うこと"
6364 "を推奨している。"
6365
6366 #. type: Plain text
6367 #: build/C/man3/siginterrupt.3:93
6368 msgid "B<signal>(2)"
6369 msgstr "B<signal>(2)"
6370
6371 #. type: TH
6372 #: build/C/man2/signal.2:36 build/C/man7/signal.7:46
6373 #, no-wrap
6374 msgid "SIGNAL"
6375 msgstr "SIGNAL"
6376
6377 #. type: TH
6378 #: build/C/man2/signal.2:36
6379 #, fuzzy, no-wrap
6380 #| msgid "2009-02-20"
6381 msgid "2013-02-09"
6382 msgstr "2009-02-20"
6383
6384 #. type: Plain text
6385 #: build/C/man2/signal.2:39
6386 msgid "signal - ANSI C signal handling"
6387 msgstr "signal - ANSI C シグナル操作"
6388
6389 #. type: Plain text
6390 #: build/C/man2/signal.2:45
6391 msgid "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
6392 msgstr ""
6393 "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<sighandler>B<);>"
6394
6395 #. type: Plain text
6396 #: build/C/man2/signal.2:54
6397 msgid ""
6398 "The behavior of B<signal>()  varies across UNIX versions, and has also "
6399 "varied historically across different versions of Linux.  B<Avoid its use>: "
6400 "use B<sigaction>(2)  instead.  See I<Portability> below."
6401 msgstr ""
6402 "B<signal>()  の動作は UNIX のバージョンにより異なる。 また、歴史的に見て "
6403 "Linux のバージョンによっても異なっている。 B<このシステムコールの使用は避け、"
6404 "> 代わりに B<sigaction>(2)  を使用すること。 下記の「移植性」を参照。"
6405
6406 #. type: Plain text
6407 #: build/C/man2/signal.2:64
6408 msgid ""
6409 "B<signal>()  sets the disposition of the signal I<signum> to I<handler>, "
6410 "which is either B<SIG_IGN>, B<SIG_DFL>, or the address of a programmer-"
6411 "defined function (a \"signal handler\")."
6412 msgstr ""
6413 "B<signal>()  はシグナル I<signum> の処理方法を I<handler> に設定する。 "
6414 "I<handler> には、 B<SIG_IGN>、 B<SIG_DFL>、 プログラマが定義した関数 (「シグ"
6415 "ナル・ハンドラ」) のアドレスの いずれかを指定する。"
6416
6417 #. type: Plain text
6418 #: build/C/man2/signal.2:68
6419 msgid ""
6420 "If the signal I<signum> is delivered to the process, then one of the "
6421 "following happens:"
6422 msgstr ""
6423 "シグナル I<signum> がプロセスに配送されると、以下のいずれかが発生する。"
6424
6425 #. type: Plain text
6426 #: build/C/man2/signal.2:73
6427 msgid "If the disposition is set to B<SIG_IGN>, then the signal is ignored."
6428 msgstr "処理方法が B<SIG_IGN> に設定されている場合、そのシグナルは無視される。"
6429
6430 #. type: Plain text
6431 #: build/C/man2/signal.2:80
6432 msgid ""
6433 "If the disposition is set to B<SIG_DFL>, then the default action associated "
6434 "with the signal (see B<signal>(7))  occurs."
6435 msgstr ""
6436 "処理方法が B<SIG_DFL> に設定されている場合、シグナルに関連づけられた デフォル"
6437 "トの動作が行われる (B<signal>(7)  参照)。"
6438
6439 #. type: Plain text
6440 #: build/C/man2/signal.2:91
6441 msgid ""
6442 "If the disposition is set to a function, then first either the disposition "
6443 "is reset to B<SIG_DFL>, or the signal is blocked (see I<Portability> below), "
6444 "and then I<handler> is called with argument I<signum>.  If invocation of the "
6445 "handler caused the signal to be blocked, then the signal is unblocked upon "
6446 "return from the handler."
6447 msgstr ""
6448 "処理方法として関数が設定されている場合、 まず最初に処理方法が B<SIG_DFL> にリ"
6449 "セットされるかそのシグナルのブロックが実行された後、 I<signum> を引き数とし"
6450 "て I<handler> が呼び出される。 ハンドラが起動される際にシグナルがブロックされ"
6451 "た場合、 ハンドラが返る際にそのシグナルのブロックが解除される。"
6452
6453 #. type: Plain text
6454 #: build/C/man2/signal.2:97
6455 msgid "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught or ignored."
6456 msgstr ""
6457 "シグナル B<SIGKILL> と B<SIGSTOP> は捕捉できず、無視することもできない。"
6458
6459 #. type: Plain text
6460 #: build/C/man2/signal.2:102
6461 msgid ""
6462 "B<signal>()  returns the previous value of the signal handler, or B<SIG_ERR> "
6463 "on error."
6464 msgstr ""
6465 "B<signal>()  は、今までのシグナル・ハンドラの値を返す。エラーの場合は "
6466 "B<SIG_ERR> を返す。"
6467
6468 #. type: Plain text
6469 #: build/C/man2/signal.2:107
6470 msgid "I<signum> is invalid."
6471 msgstr "I<signum> が不正である。"
6472
6473 #. type: Plain text
6474 #: build/C/man2/signal.2:113
6475 msgid "The effects of B<signal>()  in a multithreaded process are unspecified."
6476 msgstr ""
6477 "マルチスレッドプロセスにおける B<signal>()  の結果は、指定されていない。"
6478
6479 #. type: Plain text
6480 #: build/C/man2/signal.2:138
6481 msgid ""
6482 "See B<sigaction>(2)  for details on what happens when B<SIGCHLD> is set to "
6483 "B<SIG_IGN>."
6484 msgstr ""
6485 "B<SIGCHLD> の動作として B<SIG_IGN> を設定した場合の詳細な動作については、 "
6486 "B<sigaction>(2)  を参照すること。"
6487
6488 #. type: Plain text
6489 #: build/C/man2/signal.2:143
6490 msgid ""
6491 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
6492 "safely called from inside a signal handler."
6493 msgstr ""
6494 "シグナル・ハンドラ内から安全に呼び出すことができる、 async-signal-safe "
6495 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
6496 "照。"
6497
6498 #.  libc4 and libc5 define
6499 #.  .IR SignalHandler ;
6500 #. type: Plain text
6501 #: build/C/man2/signal.2:159
6502 msgid ""
6503 "The use of I<sighandler_t> is a GNU extension, exposed if B<_GNU_SOURCE> is "
6504 "defined; glibc also defines (the BSD-derived)  I<sig_t> if B<_BSD_SOURCE> is "
6505 "defined.  Without use of such a type, the declaration of B<signal>()  is the "
6506 "somewhat harder to read:"
6507 msgstr ""
6508 "I<sighandler_t> の使用は GNU 拡張であり、 B<_GNU_SOURCE> が定義された\n"
6509 "場合に公開される。glibc では B<_BSD_SOURCE> が定義された場合には (BSD\n"
6510 "由来の) I<sig_t> も定義される。このような型を使用しないと、\n"
6511 "B<signal>() の宣言は読みにくいものとなる。"
6512
6513 #. type: Plain text
6514 #: build/C/man2/signal.2:163
6515 #, no-wrap
6516 msgid "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
6517 msgstr "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
6518
6519 #. type: SS
6520 #: build/C/man2/signal.2:165
6521 #, no-wrap
6522 msgid "Portability"
6523 msgstr "移植性"
6524
6525 #. type: Plain text
6526 #: build/C/man2/signal.2:177
6527 msgid ""
6528 "The only portable use of B<signal>()  is to set a signal's disposition to "
6529 "B<SIG_DFL> or B<SIG_IGN>.  The semantics when using B<signal>()  to "
6530 "establish a signal handler vary across systems (and POSIX.1 explicitly "
6531 "permits this variation); B<do not use it for this purpose.>"
6532 msgstr ""
6533 "移植性のある B<signal>()  の使い方は、シグナルの処理方法を B<SIG_DFL> か "
6534 "B<SIG_IGN> に設定する方法だけである。 シグナル・ハンドラを設定するのに "
6535 "B<signal>()  を使ったときの動作はシステムにより異なる (POSIX.1 は明示的にこの"
6536 "違いを認めている)。 B<移植性が必要なときはこのシステムコールを使用しないこ"
6537 "と。>"
6538
6539 #. type: Plain text
6540 #: build/C/man2/signal.2:183
6541 msgid ""
6542 "POSIX.1 solved the portability mess by specifying B<sigaction>(2), which "
6543 "provides explicit control of the semantics when a signal handler is invoked; "
6544 "use that interface instead of B<signal>()."
6545 msgstr ""
6546 "POSIX.1 は、 B<sigaction>(2)  を規定することで移植性に関する混乱を解決した。 "
6547 "B<sigaction>(2)  はシグナル・ハンドラが起動される際の挙動を明示的に制御でき"
6548 "る。 B<signal>()  の代わりにこのインターフェイスを使うこと。"
6549
6550 #. type: Plain text
6551 #: build/C/man2/signal.2:193
6552 #, fuzzy
6553 #| msgid ""
6554 #| "In the original UNIX systems, when a handler that was established using "
6555 #| "B<signal>()  was invoked by the delivery of a signal, the disposition of "
6556 #| "the signal would be reset to B<SIG_DFL>, and the system did not block "
6557 #| "delivery of further instances of the signal.  System V also provides "
6558 #| "these semantics for B<signal>().  This was bad because the signal might "
6559 #| "be delivered again before the handler had a chance to reestablish "
6560 #| "itself.  Furthermore, rapid deliveries of the same signal could result in "
6561 #| "recursive invocations of the handler."
6562 msgid ""
6563 "In the original UNIX systems, when a handler that was established using "
6564 "B<signal>()  was invoked by the delivery of a signal, the disposition of the "
6565 "signal would be reset to B<SIG_DFL>, and the system did not block delivery "
6566 "of further instances of the signal.  This is equivalent to calling "
6567 "B<sigaction>(2)  with the following flags:"
6568 msgstr ""
6569 "オリジナルの UNIX システムでは、 B<signal>()  を使って設定されたハンドラがシ"
6570 "グナルの配送により起動されると、 そのシグナルの処理方法は B<SIG_DFL> にリセッ"
6571 "トされ、システムは同じシグナルがさらに生成されても シグナルの配送をブロックし"
6572 "なかった。 System V でも、 B<signal>()  に対してこれらの挙動を規定している。 "
6573 "こうした挙動はまずく、ハンドラがハンドラ自身を再設定する機会が 来るより前に、"
6574 "同じシグナルがまた配送される可能性がある。 さらに、同じシグナルが立て続けに配"
6575 "送されると、同じシグナルが ハンドラを繰り返し起動されることになる。"
6576
6577 #. type: Plain text
6578 #: build/C/man2/signal.2:195
6579 #, no-wrap
6580 msgid "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
6581 msgstr ""
6582
6583 #. type: Plain text
6584 #: build/C/man2/signal.2:202
6585 #, fuzzy
6586 #| msgid ""
6587 #| "In the original UNIX systems, when a handler that was established using "
6588 #| "B<signal>()  was invoked by the delivery of a signal, the disposition of "
6589 #| "the signal would be reset to B<SIG_DFL>, and the system did not block "
6590 #| "delivery of further instances of the signal.  System V also provides "
6591 #| "these semantics for B<signal>().  This was bad because the signal might "
6592 #| "be delivered again before the handler had a chance to reestablish "
6593 #| "itself.  Furthermore, rapid deliveries of the same signal could result in "
6594 #| "recursive invocations of the handler."
6595 msgid ""
6596 "System V also provides these semantics for B<signal>().  This was bad "
6597 "because the signal might be delivered again before the handler had a chance "
6598 "to reestablish itself.  Furthermore, rapid deliveries of the same signal "
6599 "could result in recursive invocations of the handler."
6600 msgstr ""
6601 "オリジナルの UNIX システムでは、 B<signal>()  を使って設定されたハンドラがシ"
6602 "グナルの配送により起動されると、 そのシグナルの処理方法は B<SIG_DFL> にリセッ"
6603 "トされ、システムは同じシグナルがさらに生成されても シグナルの配送をブロックし"
6604 "なかった。 System V でも、 B<signal>()  に対してこれらの挙動を規定している。 "
6605 "こうした挙動はまずく、ハンドラがハンドラ自身を再設定する機会が 来るより前に、"
6606 "同じシグナルがまた配送される可能性がある。 さらに、同じシグナルが立て続けに配"
6607 "送されると、同じシグナルが ハンドラを繰り返し起動されることになる。"
6608
6609 #. type: Plain text
6610 #: build/C/man2/signal.2:217
6611 #, fuzzy
6612 #| msgid ""
6613 #| "BSD improved on this situation by changing the semantics of signal "
6614 #| "handling (but, unfortunately, silently changed the semantics when "
6615 #| "establishing a handler with B<signal>()).  On BSD, when a signal handler "
6616 #| "is invoked, the signal disposition is not reset, and further instances of "
6617 #| "the signal are blocked from being delivered while the handler is "
6618 #| "executing."
6619 msgid ""
6620 "BSD improved on this situation, but unfortunately also changed the semantics "
6621 "of the existing B<signal>()  interface while doing so.  On BSD, when a "
6622 "signal handler is invoked, the signal disposition is not reset, and further "
6623 "instances of the signal are blocked from being delivered while the handler "
6624 "is executing.  Furthermore, certain blocking system calls are automatically "
6625 "restarted if interrupted by a signal handler (see B<signal>(7)).  The BSD "
6626 "semantics are equivalent to calling B<sigaction>(2)  with the following "
6627 "flags:"
6628 msgstr ""
6629 "BSD では、シグナル処理の挙動を変更することで、この状況を改善した (しかし、残"
6630 "念なことに、 B<signal>()  を使ってハンドラを設定する際に挙動が黙って変更され"
6631 "る)。 BSD では、シグナルハンドラが起動された際、 シグナルの処理方法はリセット"
6632 "されず、 ハンドラの実行中は、同じシグナルのさらなる生成は配送がブロックされ"
6633 "る。"
6634
6635 #. type: Plain text
6636 #: build/C/man2/signal.2:219
6637 #, no-wrap
6638 msgid "    sa.sa_flags = SA_RESTART;\n"
6639 msgstr ""
6640
6641 #. type: Plain text
6642 #: build/C/man2/signal.2:221
6643 msgid "The situation on Linux is as follows:"
6644 msgstr "Linux での状況は以下の通りである。"
6645
6646 #. type: Plain text
6647 #: build/C/man2/signal.2:225
6648 msgid "The kernel's B<signal>()  system call provides System V semantics."
6649 msgstr "カーネルの B<signal>()  システムコールは System V 方式を提供している。"
6650
6651 #. type: Plain text
6652 #: build/C/man2/signal.2:241
6653 msgid ""
6654 "By default, in glibc 2 and later, the B<signal>()  wrapper function does not "
6655 "invoke the kernel system call.  Instead, it calls B<sigaction>(2)  using "
6656 "flags that supply BSD semantics.  This default behavior is provided as long "
6657 "as the B<_BSD_SOURCE> feature test macro is defined.  By default, "
6658 "B<_BSD_SOURCE> is defined; it is also implicitly defined if one defines "
6659 "B<_GNU_SOURCE>, and can of course be explicitly defined."
6660 msgstr ""
6661 "デフォルトでは、glibc 2 以降では、 B<signal>()  ラッパー関数はカーネルのシス"
6662 "テムコールを起動しない。 代わりに、ラッパー関数は BSD 方式を示すフラグを使っ"
6663 "て B<sigaction>(2)  を呼び出す。 機能検査マクロ B<_BSD_SOURCE> を定義していれ"
6664 "ば、このデフォルトの動作となる。 デフォルトでは、 B<_BSD_SOURCE> が定義され"
6665 "る。 B<_BSD_SOURCE> は B<_GNU_SOURCE> が定義された場合には暗黙のうちに定義さ"
6666 "れ、 もちろん明示的に定義することもできる。"
6667
6668 #.  System V semantics are also provided if one uses the separate
6669 #.  .BR sysv_signal (3)
6670 #.  function.
6671 #. type: Plain text
6672 #: build/C/man2/signal.2:264
6673 msgid ""
6674 "On glibc 2 and later, if the B<_BSD_SOURCE> feature test macro is not "
6675 "defined, then B<signal>()  provides System V semantics.  (The default "
6676 "implicit definition of B<_BSD_SOURCE> is not provided if one invokes B<gcc>"
6677 "(1)  in one of its standard modes (I<-std=xxx> or I<-ansi>)  or defines "
6678 "various other feature test macros such as B<_POSIX_SOURCE>, "
6679 "B<_XOPEN_SOURCE>, or B<_SVID_SOURCE>; see B<feature_test_macros>(7).)"
6680 msgstr ""
6681 "glibc 2 以降では、機能検査マクロ B<_BSD_SOURCE> が定義されていなければ、 "
6682 "B<signal>()  は System V 方式となる。 (B<gcc>(1)  が標準指定モード (I<-"
6683 "std=xxx> or I<-ansi>)  で起動された場合、もしくは B<_POSIX_SOURCE>, "
6684 "B<_XOPEN_SOURCE>, B<_SVID_SOURCE> といった他の様々な機能検査マクロが定義され"
6685 "た場合、 デフォルトの B<_BSD_SOURCE> の暗黙の定義は行われない。 "
6686 "B<feature_test_macros>(7)  を参照のこと。)"
6687
6688 #. type: Plain text
6689 #: build/C/man2/signal.2:275
6690 msgid ""
6691 "The B<signal>()  function in Linux libc4 and libc5 provide System V "
6692 "semantics.  If one on a libc5 system includes I<E<lt>bsd/signal.hE<gt>> "
6693 "instead of I<E<lt>signal.hE<gt>>, then B<signal>()  provides BSD semantics."
6694 msgstr ""
6695 "Linux の libc4 と libc5 の B<signal>()  関数は System V 方式である。 libc5 シ"
6696 "ステムにおいて I<E<lt>signal.hE<gt>> のかわりに I<E<lt>bsd/signal.hE<gt>> を"
6697 "インクルードすると、 B<signal>()  は B<__bsd_signal>()  に再定義され、 "
6698 "B<signal>()  は BSD 方式となる。"
6699
6700 #. type: Plain text
6701 #: build/C/man2/signal.2:294
6702 msgid ""
6703 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaction>"
6704 "(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
6705 "B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), B<sigqueue>(3), "
6706 "B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), B<signal>(7)"
6707 msgstr ""
6708 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaction>"
6709 "(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
6710 "B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), B<sigqueue>(3), "
6711 "B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), B<signal>(7)"
6712
6713 #. type: TH
6714 #: build/C/man7/signal.7:46
6715 #, no-wrap
6716 msgid "2012-05-01"
6717 msgstr "2012-05-01"
6718
6719 #. type: Plain text
6720 #: build/C/man7/signal.7:49
6721 msgid "signal - overview of signals"
6722 msgstr "signal - シグナルの概要"
6723
6724 #. type: Plain text
6725 #: build/C/man7/signal.7:52
6726 msgid ""
6727 "Linux supports both POSIX reliable signals (hereinafter \"standard signals"
6728 "\") and POSIX real-time signals."
6729 msgstr ""
6730 "Linux は POSIX 信頼シグナル (reliable signal; 以後 \"標準シグナル\"と表記)  "
6731 "と POSIX リアルタイムシグナルの両方に対応している。"
6732
6733 #. type: SS
6734 #: build/C/man7/signal.7:52
6735 #, fuzzy, no-wrap
6736 #| msgid "Signal Dispositions"
6737 msgid "Signal dispositions"
6738 msgstr "シグナル処理方法"
6739
6740 #. type: Plain text
6741 #: build/C/man7/signal.7:57
6742 msgid ""
6743 "Each signal has a current I<disposition>, which determines how the process "
6744 "behaves when it is delivered the signal."
6745 msgstr ""
6746 "シグナルはそれぞれ現在の「処理方法 (disposition)」を保持しており、 この処理方"
6747 "法によりシグナルが配送された際にプロセスが どのような振舞いをするかが決まる。"
6748
6749 #. type: Plain text
6750 #: build/C/man7/signal.7:60
6751 msgid ""
6752 "The entries in the \"Action\" column of the tables below specify the default "
6753 "disposition for each signal, as follows:"
6754 msgstr ""
6755 "後述の表の \"動作\" の欄のエントリは各シグナルのデフォルトの 処理方法を示して"
6756 "おり、以下のような意味を持つ。"
6757
6758 #. type: IP
6759 #: build/C/man7/signal.7:60
6760 #, no-wrap
6761 msgid "Term"
6762 msgstr "Term"
6763
6764 #. type: Plain text
6765 #: build/C/man7/signal.7:62
6766 msgid "Default action is to terminate the process."
6767 msgstr "デフォルトの動作はプロセス終了。"
6768
6769 #. type: IP
6770 #: build/C/man7/signal.7:62
6771 #, no-wrap
6772 msgid "Ign"
6773 msgstr "Ign"
6774
6775 #. type: Plain text
6776 #: build/C/man7/signal.7:64
6777 msgid "Default action is to ignore the signal."
6778 msgstr "デフォルトの動作はこのシグナルの無視。"
6779
6780 #. type: IP
6781 #: build/C/man7/signal.7:64
6782 #, no-wrap
6783 msgid "Core"
6784 msgstr "Core"
6785
6786 #. type: Plain text
6787 #: build/C/man7/signal.7:67
6788 msgid ""
6789 "Default action is to terminate the process and dump core (see B<core>(5))."
6790 msgstr "デフォルトの動作はプロセス終了とコアダンプ出力 (B<core>(5)  参照)。"
6791
6792 #. type: IP
6793 #: build/C/man7/signal.7:67
6794 #, no-wrap
6795 msgid "Stop"
6796 msgstr "Stop"
6797
6798 #. type: Plain text
6799 #: build/C/man7/signal.7:69
6800 msgid "Default action is to stop the process."
6801 msgstr "デフォルトの動作はプロセスの一時停止。"
6802
6803 #. type: IP
6804 #: build/C/man7/signal.7:69
6805 #, no-wrap
6806 msgid "Cont"
6807 msgstr "Cont"
6808
6809 #. type: Plain text
6810 #: build/C/man7/signal.7:71
6811 msgid "Default action is to continue the process if it is currently stopped."
6812 msgstr "デフォルトの動作は、プロセスが停止中の場合にその実行の再開。"
6813
6814 #. type: Plain text
6815 #: build/C/man7/signal.7:93
6816 msgid ""
6817 "A process can change the disposition of a signal using B<sigaction>(2)  or "
6818 "B<signal>(2).  (The latter is less portable when establishing a signal "
6819 "handler; see B<signal>(2)  for details.)  Using these system calls, a "
6820 "process can elect one of the following behaviors to occur on delivery of the "
6821 "signal: perform the default action; ignore the signal; or catch the signal "
6822 "with a I<signal handler>, a programmer-defined function that is "
6823 "automatically invoked when the signal is delivered.  (By default, the signal "
6824 "handler is invoked on the normal process stack.  It is possible to arrange "
6825 "that the signal handler uses an alternate stack; see B<sigaltstack>(2)  for "
6826 "a discussion of how to do this and when it might be useful.)"
6827 msgstr ""
6828 "プロセスは、 B<sigaction>(2)  や B<signal>(2)  を使って、シグナルの処理方法を"
6829 "変更することができる (B<signal>(2)  の方がシグナルハンドラを設定する際の移植"
6830 "性が低い; 詳細は B<signal>(2)  を参照)。 シグナルの配送時に起こる動作として "
6831 "プロセスが選択できるのは、次のいずれか一つである。 デフォルトの動作を実行す"
6832 "る、シグナルを無視する、 I<シグナルハンドラ (signal handler)> でシグナルを捕"
6833 "捉する。シグナルハンドラとは、シグナル配送時に 自動的に起動されるプログラマ定"
6834 "義の関数である。 (デフォルトでは、シグナルハンドラは通常のプロセスのスタック"
6835 "上で起動される。 シグナルハンドラが代替スタック (alternate stack) を使用する"
6836 "ように設定する こともできる。代替スタックを使用するように設定する方法と、どの"
6837 "ような際に 代替スタックが役に立つかについての議論については B<sigaltstack>"
6838 "(2)  を参照のこと。"
6839
6840 #. type: Plain text
6841 #: build/C/man7/signal.7:97
6842 msgid ""
6843 "The signal disposition is a per-process attribute: in a multithreaded "
6844 "application, the disposition of a particular signal is the same for all "
6845 "threads."
6846 msgstr ""
6847 "シグナルの処理方法はプロセス単位の属性である。 マルチスレッドのアプリケーショ"
6848 "ンでは、あるシグナルの処理方法は 全てのスレッドで同じである。"
6849
6850 #. type: SS
6851 #: build/C/man7/signal.7:105
6852 #, fuzzy, no-wrap
6853 #| msgid "Sending a Signal"
6854 msgid "Sending a signal"
6855 msgstr "シグナルの送信"
6856
6857 #. type: Plain text
6858 #: build/C/man7/signal.7:108
6859 msgid ""
6860 "The following system calls and library functions allow the caller to send a "
6861 "signal:"
6862 msgstr ""
6863 "以下のシステムコールとライブラリ関数を使って、 呼び出し者はシグナルを送信する"
6864 "ことができる。"
6865
6866 #. type: TP
6867 #: build/C/man7/signal.7:108
6868 #, no-wrap
6869 msgid "B<raise>(3)"
6870 msgstr "B<raise>(3)"
6871
6872 #. type: Plain text
6873 #: build/C/man7/signal.7:111
6874 msgid "Sends a signal to the calling thread."
6875 msgstr "呼び出したスレッドにシグナルを送る。"
6876
6877 #. type: Plain text
6878 #: build/C/man7/signal.7:116
6879 msgid ""
6880 "Sends a signal to a specified process, to all members of a specified process "
6881 "group, or to all processes on the system."
6882 msgstr ""
6883 "指定されたプロセスや、指定されたプロセスグループの全メンバー、 システムの全プ"
6884 "ロセスにシグナルを送る。"
6885
6886 #. type: TP
6887 #: build/C/man7/signal.7:116
6888 #, no-wrap
6889 msgid "B<killpg>(2)"
6890 msgstr "B<killpg>(2)"
6891
6892 #. type: Plain text
6893 #: build/C/man7/signal.7:119
6894 msgid "Sends a signal to all of the members of a specified process group."
6895 msgstr "指定されたプロセスグループの全メンバーにシグナルを送る。"
6896
6897 #. type: TP
6898 #: build/C/man7/signal.7:119
6899 #, no-wrap
6900 msgid "B<pthread_kill>(3)"
6901 msgstr "B<pthread_kill>(3)"
6902
6903 #. type: Plain text
6904 #: build/C/man7/signal.7:123
6905 msgid ""
6906 "Sends a signal to a specified POSIX thread in the same process as the caller."
6907 msgstr ""
6908 "呼び出し者と同じプロセス内の指定された POSIX スレッドにシグナルを送る。"
6909
6910 #. type: TP
6911 #: build/C/man7/signal.7:123
6912 #, no-wrap
6913 msgid "B<tgkill>(2)"
6914 msgstr "B<tgkill>(2)"
6915
6916 #. type: Plain text
6917 #: build/C/man7/signal.7:128
6918 msgid ""
6919 "Sends a signal to a specified thread within a specific process.  (This is "
6920 "the system call used to implement B<pthread_kill>(3).)"
6921 msgstr ""
6922 "指定されたプロセス内の指定されたスレッドにシグナルを送る (このシステムコール"
6923 "を使って B<pthread_kill>(3)  は実装されている)。"
6924
6925 #. type: Plain text
6926 #: build/C/man7/signal.7:131
6927 msgid "Sends a real-time signal with accompanying data to a specified process."
6928 msgstr "指定されたプロセスに付属データとともにリアルタイムシグナルを送る。"
6929
6930 #. type: SS
6931 #: build/C/man7/signal.7:131
6932 #, fuzzy, no-wrap
6933 #| msgid "Waiting for a Signal to be Caught"
6934 msgid "Waiting for a signal to be caught"
6935 msgstr "シグナルが捕捉されるのを待つ"
6936
6937 #. type: Plain text
6938 #: build/C/man7/signal.7:135
6939 msgid ""
6940 "The following system calls suspend execution of the calling process or "
6941 "thread until a signal is caught (or an unhandled signal terminates the "
6942 "process):"
6943 msgstr ""
6944 "以下のシステムコールを使って、シグナルが捕捉されるまで 呼び出したプロセスやス"
6945 "レッドの実行を中断 (suspend) することができる (ハンドラが設定されていないシグ"
6946 "ナルによりそのプロセスが終了した 場合にも実行の停止は終了する)。"
6947
6948 #. type: TP
6949 #: build/C/man7/signal.7:135
6950 #, no-wrap
6951 msgid "B<pause>(2)"
6952 msgstr "B<pause>(2)"
6953
6954 #. type: Plain text
6955 #: build/C/man7/signal.7:138
6956 msgid "Suspends execution until any signal is caught."
6957 msgstr "何かシグナルが捕捉されるまで実行を停止する。"
6958
6959 #. type: TP
6960 #: build/C/man7/signal.7:138
6961 #, no-wrap
6962 msgid "B<sigsuspend>(2)"
6963 msgstr "B<sigsuspend>(2)"
6964
6965 #. type: Plain text
6966 #: build/C/man7/signal.7:142
6967 msgid ""
6968 "Temporarily changes the signal mask (see below) and suspends execution until "
6969 "one of the unmasked signals is caught."
6970 msgstr ""
6971 "一時的にシグナルマスク (下記参照) を変更し、 マスクされていないシグナルのいず"
6972 "れかが捕捉されるまで 実行を中断する。"
6973
6974 #. type: SS
6975 #: build/C/man7/signal.7:142
6976 #, fuzzy, no-wrap
6977 #| msgid "Synchronously Accepting a Signal"
6978 msgid "Synchronously accepting a signal"
6979 msgstr "シグナルの同期受信"
6980
6981 #. type: Plain text
6982 #: build/C/man7/signal.7:149
6983 msgid ""
6984 "Rather than asynchronously catching a signal via a signal handler, it is "
6985 "possible to synchronously accept the signal, that is, to block execution "
6986 "until the signal is delivered, at which point the kernel returns information "
6987 "about the signal to the caller.  There are two general ways to do this:"
6988 msgstr ""
6989 "シグナルハンドラ経由でシグナルを非同期 (asynchronously) で捕捉する以外にも、 "
6990 "シグナルを同期 (synchronously) して受け付けることもできる。 同期して受け付け"
6991 "るとは、シグナルが配送されるまで実行を停止 (block)  するということである。シ"
6992 "グナルを受け付けた際に、カーネルは そのシグナルに関する情報を呼び出し者に返"
6993 "す。 これを行う一般的な方法が二つある。"
6994
6995 #. type: Plain text
6996 #: build/C/man7/signal.7:157
6997 msgid ""
6998 "B<sigwaitinfo>(2), B<sigtimedwait>(2), and B<sigwait>(3)  suspend execution "
6999 "until one of the signals in a specified set is delivered.  Each of these "
7000 "calls returns information about the delivered signal."
7001 msgstr ""
7002 "B<sigwaitinfo>(2), B<sigtimedwait>(2), B<sigwait>(3)  は、指定されたシグナル"
7003 "集合のシグナルの一つが配送されるまで実行を中断する。 どのシステムコールや関数"
7004 "でも、配送されたシグナルに関する情報が返される。"
7005
7006 #. type: Plain text
7007 #: build/C/man7/signal.7:170
7008 msgid ""
7009 "B<signalfd>(2)  returns a file descriptor that can be used to read "
7010 "information about signals that are delivered to the caller.  Each B<read>"
7011 "(2)  from this file descriptor blocks until one of the signals in the set "
7012 "specified in the B<signalfd>(2)  call is delivered to the caller.  The "
7013 "buffer returned by B<read>(2)  contains a structure describing the signal."
7014 msgstr ""
7015 "B<signalfd>(2)  が返すファイルディスクリプタを使うと、呼び出し元に配送された "
7016 "シグナルに関する情報を読み出すことができる。 このファイルディスクリプタから"
7017 "の B<read>(2)  は、 B<signalfd>(2)  の呼び出し時に指定されたシグナル集合のシ"
7018 "グナルの一つが呼び出し元に 配送されるまで停止 (block) する。 B<read>(2)  が返"
7019 "すバッファにはシグナルに関する情報を格納した構造体が入っている。"
7020
7021 #. type: SS
7022 #: build/C/man7/signal.7:170
7023 #, fuzzy, no-wrap
7024 #| msgid "Signal Mask and Pending Signals"
7025 msgid "Signal mask and pending signals"
7026 msgstr "シグナルマスクと処理待ちシグナル"
7027
7028 #. type: Plain text
7029 #: build/C/man7/signal.7:177
7030 msgid ""
7031 "A signal may be I<blocked>, which means that it will not be delivered until "
7032 "it is later unblocked.  Between the time when it is generated and when it is "
7033 "delivered a signal is said to be I<pending>."
7034 msgstr ""
7035 "シグナルは I<ブロック (block)> されることがある。ブロックされると、そのシグナ"
7036 "ルは その後ブロックを解除されるまで配送されなくなる。 シグナルが生成されてか"
7037 "ら配送されるまでの間、そのシグナルは I<処理待ち (pending)> であると呼ばれる。"
7038
7039 #. type: Plain text
7040 #: build/C/man7/signal.7:186
7041 msgid ""
7042 "Each thread in a process has an independent I<signal mask>, which indicates "
7043 "the set of signals that the thread is currently blocking.  A thread can "
7044 "manipulate its signal mask using B<pthread_sigmask>(3).  In a traditional "
7045 "single-threaded application, B<sigprocmask>(2)  can be used to manipulate "
7046 "the signal mask."
7047 msgstr ""
7048 "プロセス内の各スレッドは、それぞれ独立な I<シグナルマスク (signal mask)> を持"
7049 "つ。シグナルマスクはそのスレッドが現在ブロックしている シグナル集合を示すもの"
7050 "である。 スレッドは、 B<pthread_sigmask>(3)  を使って自分のシグナルマスクを操"
7051 "作できる。 伝統的なシングルスレッドのアプリケーションでは、 B<sigprocmask>"
7052 "(2)  を使って、シグナルマスクを操作できる。"
7053
7054 #. type: Plain text
7055 #: build/C/man7/signal.7:192 build/C/man2/sigprocmask.2:123
7056 msgid ""
7057 "A child created via B<fork>(2)  inherits a copy of its parent's signal mask; "
7058 "the signal mask is preserved across B<execve>(2)."
7059 msgstr ""
7060 "B<fork>(2)  経由で作成された子プロセスは親プロセスのシグナルマスクのコピーを"
7061 "継承する。 B<execve>(2)  の前後でシグナルマスクは保持される。"
7062
7063 #. type: Plain text
7064 #: build/C/man7/signal.7:209
7065 msgid ""
7066 "A signal may be generated (and thus pending)  for a process as a whole (e."
7067 "g., when sent using B<kill>(2))  or for a specific thread (e.g., certain "
7068 "signals, such as B<SIGSEGV> and B<SIGFPE>, generated as a consequence of "
7069 "executing a specific machine-language instruction are thread directed, as "
7070 "are signals targeted at a specific thread using B<pthread_kill>(3)).  A "
7071 "process-directed signal may be delivered to any one of the threads that does "
7072 "not currently have the signal blocked.  If more than one of the threads has "
7073 "the signal unblocked, then the kernel chooses an arbitrary thread to which "
7074 "to deliver the signal."
7075 msgstr ""
7076 "生成されるシグナル (したがって処理待ちとなるシグナル) には、 プロセス全体宛て"
7077 "と特定のスレッド宛てがある。 例えば、プロセス全体宛てのシグナルは B<kill>"
7078 "(2)  を使って送信される。 特定のマシン語の命令の実行の結果として生成される、 "
7079 "B<SIGSEGV> や B<SIGFPE> などのシグナルは、スレッド宛てとなる。 また、 "
7080 "B<pthread_kill>(3)  を使って特定のスレッド宛てに生成されたシグナルも スレッド"
7081 "宛てとなる。 プロセス宛てのシグナルは、そのシグナルをブロックしていないスレッ"
7082 "ドのうち いずれかの一つに配送することができる。そのシグナルをブロックしていな"
7083 "い スレッドが複数ある場合、シグナルを配送するスレッドはカーネルが 無作為に選"
7084 "択する。"
7085
7086 #. type: Plain text
7087 #: build/C/man7/signal.7:216
7088 msgid ""
7089 "A thread can obtain the set of signals that it currently has pending using "
7090 "B<sigpending>(2).  This set will consist of the union of the set of pending "
7091 "process-directed signals and the set of signals pending for the calling "
7092 "thread."
7093 msgstr ""
7094 "スレッドは、 B<sigpending>(2)  を使って、現在処理待ちのシグナル集合を取得する"
7095 "ことができる。 この集合は、プロセス宛ての処理待ちシグナルと 呼び出したスレッ"
7096 "ド宛てのシグナルの両方から構成される。"
7097
7098 #. type: Plain text
7099 #: build/C/man7/signal.7:222 build/C/man2/sigpending.2:78
7100 msgid ""
7101 "A child created via B<fork>(2)  initially has an empty pending signal set; "
7102 "the pending signal set is preserved across an B<execve>(2)."
7103 msgstr ""
7104 "B<fork>(2)  経由で作成された子プロセスでは、処理待ちのシグナル集合は空の集合"
7105 "で初期化される。 B<execve>(2)  の前後で、処理待ちのシグナル集合は保持される。"
7106
7107 #. type: SS
7108 #: build/C/man7/signal.7:222
7109 #, fuzzy, no-wrap
7110 #| msgid "Standard Signals"
7111 msgid "Standard signals"
7112 msgstr "標準シグナル"
7113
7114 #. type: Plain text
7115 #: build/C/man7/signal.7:234
7116 #, fuzzy
7117 #| msgid ""
7118 #| "Linux supports the standard signals listed below.  Several signal numbers "
7119 #| "are architecture-dependent, as indicated in the \"Value\" column.  (Where "
7120 #| "three values are given, the first one is usually valid for alpha and "
7121 #| "sparc, the middle one for x86, arm, and most other architectures, and the "
7122 #| "last one for mips.  (Values for parisc are I<not> shown; see the kernel "
7123 #| "source for signal numbering on that architecture.)  A - denotes that a "
7124 #| "signal is absent on the corresponding architecture.)"
7125 msgid ""
7126 "Linux supports the standard signals listed below.  Several signal numbers "
7127 "are architecture-dependent, as indicated in the \"Value\" column.  (Where "
7128 "three values are given, the first one is usually valid for alpha and sparc, "
7129 "the middle one for x86, arm, and most other architectures, and the last one "
7130 "for mips.  (Values for parisc are I<not> shown; see the Linux kernel source "
7131 "for signal numbering on that architecture.)  A - denotes that a signal is "
7132 "absent on the corresponding architecture.)"
7133 msgstr ""
7134 "Linux は以下に示す標準シグナルに対応している。シグナル番号の一部はアー\n"
7135 "キテクチャ依存であり、\"値\" 欄に示す通りである。 (3つの値が書かれている\n"
7136 "ものは、 1つ目が alpha と sparc で通常有効な値、 真ん中が x86, arm や\n"
7137 "他のほとんどのアーキテクチャでの有効な値、最後が mips での値である。\n"
7138 "(parisc での値は記載されてI<いない>。 parisc でのシグナル番号は\n"
7139 "カーネルソースを参照してほしい)。 - はそのアーキテ\n"
7140 "クチャにおいて対応するシグナルがないことを示す。)"
7141
7142 #. type: Plain text
7143 #: build/C/man7/signal.7:236
7144 msgid "First the signals described in the original POSIX.1-1990 standard."
7145 msgstr "最初に、POSIX.1-1990 に定義されているシグナルを示す。"
7146
7147 #. type: tbl table
7148 #: build/C/man7/signal.7:240 build/C/man7/signal.7:276
7149 #: build/C/man7/signal.7:305
7150 #, no-wrap
7151 msgid "Signal\tValue\tAction\tComment\n"
7152 msgstr "シグナル\t値\t動作\tコメント\n"
7153
7154 #. type: tbl table
7155 #: build/C/man7/signal.7:241
7156 #, no-wrap
7157 msgid "SIGHUP\t\\01\tTerm\tHangup detected on controlling terminal\n"
7158 msgstr "SIGHUP\t\\01\tTerm\t制御端末(controlling terminal)のハングアップ検出、\n"
7159
7160 #. type: tbl table
7161 #: build/C/man7/signal.7:242
7162 #, no-wrap
7163 msgid "\t\t\tor death of controlling process\n"
7164 msgstr "\t\t\tまたは制御しているプロセスの死\n"
7165
7166 #. type: tbl table
7167 #: build/C/man7/signal.7:243
7168 #, no-wrap
7169 msgid "SIGINT\t\\02\tTerm\tInterrupt from keyboard\n"
7170 msgstr "SIGINT\t\\02\tTerm\tキーボードからの割り込み (Interrupt)\n"
7171
7172 #. type: tbl table
7173 #: build/C/man7/signal.7:244
7174 #, no-wrap
7175 msgid "SIGQUIT\t\\03\tCore\tQuit from keyboard\n"
7176 msgstr "SIGQUIT\t\\03\tCore\tキーボードによる中止 (Quit)\n"
7177
7178 #. type: tbl table
7179 #: build/C/man7/signal.7:245
7180 #, no-wrap
7181 msgid "SIGILL\t\\04\tCore\tIllegal Instruction\n"
7182 msgstr "SIGILL\t\\04\tCore\t不正な命令\n"
7183
7184 #. type: tbl table
7185 #: build/C/man7/signal.7:246
7186 #, no-wrap
7187 msgid "SIGABRT\t\\06\tCore\tAbort signal from B<abort>(3)\n"
7188 msgstr "SIGABRT\t\\06\tCore\tB<abort>(3) からの中断 (Abort) シグナル\n"
7189
7190 #. type: tbl table
7191 #: build/C/man7/signal.7:247
7192 #, no-wrap
7193 msgid "SIGFPE\t\\08\tCore\tFloating point exception\n"
7194 msgstr "SIGFPE\t\\08\tCore\t浮動小数点例外\n"
7195
7196 #. type: tbl table
7197 #: build/C/man7/signal.7:248
7198 #, no-wrap
7199 msgid "SIGKILL\t\\09\tTerm\tKill signal\n"
7200 msgstr "SIGKILL\t\\09\tTerm\tKill シグナル\n"
7201
7202 #. type: tbl table
7203 #: build/C/man7/signal.7:249
7204 #, no-wrap
7205 msgid "SIGSEGV\t11\tCore\tInvalid memory reference\n"
7206 msgstr "SIGSEGV\t11\tCore\t不正なメモリ参照\n"
7207
7208 #. type: tbl table
7209 #: build/C/man7/signal.7:250
7210 #, no-wrap
7211 msgid "SIGPIPE\t13\tTerm\tBroken pipe: write to pipe with no\n"
7212 msgstr "SIGPIPE\t13\tTerm\tパイプ破壊:\n"
7213
7214 #. type: tbl table
7215 #: build/C/man7/signal.7:251
7216 #, no-wrap
7217 msgid "\t\t\treaders\n"
7218 msgstr "\t\t\t読み手の無いパイプへの書き出し\n"
7219
7220 #. type: tbl table
7221 #: build/C/man7/signal.7:252
7222 #, no-wrap
7223 msgid "SIGALRM\t14\tTerm\tTimer signal from B<alarm>(2)\n"
7224 msgstr "SIGALRM\t14\tTerm\tB<alarm>(2) からのタイマーシグナル\n"
7225
7226 #. type: tbl table
7227 #: build/C/man7/signal.7:253
7228 #, no-wrap
7229 msgid "SIGTERM\t15\tTerm\tTermination signal\n"
7230 msgstr "SIGTERM\t15\tTerm\t終了 (termination) シグナル\n"
7231
7232 #. type: tbl table
7233 #: build/C/man7/signal.7:254
7234 #, no-wrap
7235 msgid "SIGUSR1\t30,10,16\tTerm\tUser-defined signal 1\n"
7236 msgstr "SIGUSR1\t30,10,16\tTerm\tユーザ定義シグナル 1\n"
7237
7238 #. type: tbl table
7239 #: build/C/man7/signal.7:255
7240 #, no-wrap
7241 msgid "SIGUSR2\t31,12,17\tTerm\tUser-defined signal 2\n"
7242 msgstr "SIGUSR2\t31,12,17\tTerm\tユーザ定義シグナル 2\n"
7243
7244 #. type: tbl table
7245 #: build/C/man7/signal.7:256
7246 #, no-wrap
7247 msgid "SIGCHLD\t20,17,18\tIgn\tChild stopped or terminated\n"
7248 msgstr "SIGCHLD\t20,17,18\tIgn\t子プロセスの一時停止 (stop) または終了\n"
7249
7250 #. type: tbl table
7251 #: build/C/man7/signal.7:257
7252 #, no-wrap
7253 msgid "SIGCONT\t19,18,25\tCont\tContinue if stopped\n"
7254 msgstr "SIGCONT\t19,18,25\tCont\t一時停止 (stop) からの再開\n"
7255
7256 #. type: tbl table
7257 #: build/C/man7/signal.7:258
7258 #, no-wrap
7259 msgid "SIGSTOP\t17,19,23\tStop\tStop process\n"
7260 msgstr "SIGSTOP\t17,19,23\tStop\tプロセスの一時停止 (stop)\n"
7261
7262 #. type: tbl table
7263 #: build/C/man7/signal.7:259
7264 #, fuzzy, no-wrap
7265 #| msgid "SIGTSTP\t18,20,24\tStop\tStop typed at tty\n"
7266 msgid "SIGTSTP\t18,20,24\tStop\tStop typed at terminal\n"
7267 msgstr "SIGTSTP\t18,20,24\tStop\t端末 (tty) より入力された一時停止 (stop)\n"
7268
7269 #. type: tbl table
7270 #: build/C/man7/signal.7:260
7271 #, fuzzy, no-wrap
7272 #| msgid "SIGTTIN\t21,21,26\tStop\ttty input for background process\n"
7273 msgid "SIGTTIN\t21,21,26\tStop\tTerminal input for background process\n"
7274 msgstr "SIGTTIN\t21,21,26\tStop\tバックグランドプロセスの tty 入力\n"
7275
7276 #. type: tbl table
7277 #: build/C/man7/signal.7:261
7278 #, fuzzy, no-wrap
7279 #| msgid "SIGTTOU\t22,22,27\tStop\ttty output for background process\n"
7280 msgid "SIGTTOU\t22,22,27\tStop\tTerminal output for background process\n"
7281 msgstr "SIGTTOU\t22,22,27\tStop\tバックグランドプロセスの tty 出力\n"
7282
7283 #. type: Plain text
7284 #: build/C/man7/signal.7:269
7285 msgid ""
7286 "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught, blocked, or ignored."
7287 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> はキャッチ、ブロック、無視できない。"
7288
7289 #. type: Plain text
7290 #: build/C/man7/signal.7:272
7291 msgid ""
7292 "Next the signals not in the POSIX.1-1990 standard but described in SUSv2 and "
7293 "POSIX.1-2001."
7294 msgstr ""
7295 "次に、 POSIX.1-1990 標準にはないが、 SUSv2 と POSIX.1-2001 に記述されているシ"
7296 "グナルを示す。"
7297
7298 #. type: tbl table
7299 #: build/C/man7/signal.7:277
7300 #, no-wrap
7301 msgid "SIGBUS\t10,7,10\tCore\tBus error (bad memory access)\n"
7302 msgstr "SIGBUS\t10,7,10\tCore\tバスエラー (不正なメモリアクセス)\n"
7303
7304 #. type: tbl table
7305 #: build/C/man7/signal.7:278
7306 #, no-wrap
7307 msgid "SIGPOLL\t\tTerm\tPollable event (Sys V).\n"
7308 msgstr "SIGPOLL\t\tTerm\tポーリング可能なイベント (Sys V)。\n"
7309
7310 #. type: tbl table
7311 #: build/C/man7/signal.7:279
7312 #, no-wrap
7313 msgid "\t\t\tSynonym for B<SIGIO>\n"
7314 msgstr "\t\t\tB<SIGIO> と同義\n"
7315
7316 #. type: tbl table
7317 #: build/C/man7/signal.7:280
7318 #, no-wrap
7319 msgid "SIGPROF\t27,27,29\tTerm\tProfiling timer expired\n"
7320 msgstr "SIGPROF\t27,27,29\tTerm\tprofiling タイマの時間切れ\n"
7321
7322 #. type: tbl table
7323 #: build/C/man7/signal.7:281
7324 #, no-wrap
7325 msgid "SIGSYS\t12,31,12\tCore\tBad argument to routine (SVr4)\n"
7326 msgstr "SIGSYS\t12,31,12\tCore\tルーチンへの引き数が不正 (SVr4)\n"
7327
7328 #. type: tbl table
7329 #: build/C/man7/signal.7:282
7330 #, no-wrap
7331 msgid "SIGTRAP\t5\tCore\tTrace/breakpoint trap\n"
7332 msgstr "SIGTRAP\t5\tCore\tトレース/ブレークポイント トラップ\n"
7333
7334 #. type: tbl table
7335 #: build/C/man7/signal.7:283
7336 #, no-wrap
7337 msgid "SIGURG\t16,23,21\tIgn\tUrgent condition on socket (4.2BSD)\n"
7338 msgstr "SIGURG\t16,23,21\tIgn\tソケットの緊急事態 (urgent condition) (4.2BSD)\n"
7339
7340 #. type: tbl table
7341 #: build/C/man7/signal.7:284
7342 #, no-wrap
7343 msgid "SIGVTALRM\t26,26,28\tTerm\tVirtual alarm clock (4.2BSD)\n"
7344 msgstr "SIGVTALRM\t26,26,28\tTerm\t仮想アラームクロック (4.2BSD)\n"
7345
7346 #. type: tbl table
7347 #: build/C/man7/signal.7:285
7348 #, no-wrap
7349 msgid "SIGXCPU\t24,24,30\tCore\tCPU time limit exceeded (4.2BSD)\n"
7350 msgstr "SIGXCPU\t24,24,30\tCore\tCPU時間制限超過 (4.2BSD)\n"
7351
7352 #. type: tbl table
7353 #: build/C/man7/signal.7:286
7354 #, no-wrap
7355 msgid "SIGXFSZ\t25,25,31\tCore\tFile size limit exceeded (4.2BSD)\n"
7356 msgstr "SIGXFSZ\t25,25,31\tCore\tファイルサイズ制限の超過 (4.2BSD)\n"
7357
7358 #. type: Plain text
7359 #: build/C/man7/signal.7:299
7360 msgid ""
7361 "Up to and including Linux 2.2, the default behavior for B<SIGSYS>, "
7362 "B<SIGXCPU>, B<SIGXFSZ>, and (on architectures other than SPARC and MIPS)  "
7363 "B<SIGBUS> was to terminate the process (without a core dump).  (On some "
7364 "other UNIX systems the default action for B<SIGXCPU> and B<SIGXFSZ> is to "
7365 "terminate the process without a core dump.)  Linux 2.4 conforms to the "
7366 "POSIX.1-2001 requirements for these signals, terminating the process with a "
7367 "core dump."
7368 msgstr ""
7369 "Linux 2.2 以前では、 B<SIGSYS>, B<SIGXCPU>, B<SIGXFSZ> および SPARC と MIPS "
7370 "以外のアーキテクチャでの B<SIGBUS> のデフォルトの振る舞いは (コアダンプ出力な"
7371 "しの) プロセス終了であった。 (他の UNIX システムにも B<SIGXCPU> と "
7372 "B<SIGXFSZ> のデフォルトの動作がコアダンプなしのプロセス終了のものがある。)  "
7373 "Linux 2.4 では、POSIX.1-2001 での要求仕様に準拠して、 これらのシグナルで、プ"
7374 "ロセスを終了させ、コアダンプを出力する ようになっている。"
7375
7376 #. type: Plain text
7377 #: build/C/man7/signal.7:301
7378 msgid "Next various other signals."
7379 msgstr "次にその他の各種シグナルを示す。"
7380
7381 #. type: tbl table
7382 #: build/C/man7/signal.7:306
7383 #, no-wrap
7384 msgid "SIGIOT\t6\tCore\tIOT trap. A synonym for B<SIGABRT>\n"
7385 msgstr "SIGIOT\t6\tCore\tIOT トラップ。B<SIGABRT> と同義\n"
7386
7387 #. type: tbl table
7388 #: build/C/man7/signal.7:307
7389 #, no-wrap
7390 msgid "SIGEMT\t7,-,7\tTerm\n"
7391 msgstr "SIGEMT\t7,-,7\tTerm\n"
7392
7393 #. type: tbl table
7394 #: build/C/man7/signal.7:308
7395 #, no-wrap
7396 msgid "SIGSTKFLT\t-,16,-\tTerm\tStack fault on coprocessor (unused)\n"
7397 msgstr "SIGSTKFLT\t-,16,-\tA\t数値演算プロセッサにおけるスタックフォルト (未使用)\n"
7398
7399 #. type: tbl table
7400 #: build/C/man7/signal.7:309
7401 #, no-wrap
7402 msgid "SIGIO\t23,29,22\tTerm\tI/O now possible (4.2BSD)\n"
7403 msgstr "SIGIO\t23,29,22\tTerm\t入出力が可能になった (4.2BSD)\n"
7404
7405 #. type: tbl table
7406 #: build/C/man7/signal.7:310
7407 #, no-wrap
7408 msgid "SIGCLD\t-,-,18\tIgn\tA synonym for B<SIGCHLD>\n"
7409 msgstr "SIGCLD\t-,-,18\tIgn\tB<SIGCHLD> と同義\n"
7410
7411 #. type: tbl table
7412 #: build/C/man7/signal.7:311
7413 #, no-wrap
7414 msgid "SIGPWR\t29,30,19\tTerm\tPower failure (System V)\n"
7415 msgstr "SIGPWR\t29,30,19\tTerm\t電源喪失 (Power failure) (System V)\n"
7416
7417 #. type: tbl table
7418 #: build/C/man7/signal.7:312
7419 #, no-wrap
7420 msgid "SIGINFO\t29,-,-\t\tA synonym for B<SIGPWR>\n"
7421 msgstr "SIGINFO\t29,-,-\t \tB<SIGPWR> と同義\n"
7422
7423 #. type: tbl table
7424 #: build/C/man7/signal.7:313
7425 #, no-wrap
7426 msgid "SIGLOST\t-,-,-\tTerm\tFile lock lost (unused)\n"
7427 msgstr "SIGLOST\t-,-,-\tTerm\tファイルロックが失われた (未使用)\n"
7428
7429 #. type: tbl table
7430 #: build/C/man7/signal.7:314
7431 #, no-wrap
7432 msgid "SIGWINCH\t28,28,20\tIgn\tWindow resize signal (4.3BSD, Sun)\n"
7433 msgstr "SIGWINCH\t28,28,20\tIgn\tウィンドウ リサイズ シグナル (4.3BSD, Sun)\n"
7434
7435 #. type: tbl table
7436 #: build/C/man7/signal.7:315
7437 #, no-wrap
7438 msgid "SIGUNUSED\t-,31,-\tCore\tSynonymous with B<SIGSYS>\n"
7439 msgstr "SIGUNUSED\t-,31,-\tCore\tB<SIGSYS> と同義\n"
7440
7441 #. type: Plain text
7442 #: build/C/man7/signal.7:325
7443 msgid ""
7444 "(Signal 29 is B<SIGINFO> / B<SIGPWR> on an alpha but B<SIGLOST> on a sparc.)"
7445 msgstr ""
7446 "(シグナル 29 は alpha では B<SIGINFO> / B<SIGPWR> だが、sparc では "
7447 "B<SIGLOST> である。)"
7448
7449 #. type: Plain text
7450 #: build/C/man7/signal.7:331
7451 msgid ""
7452 "B<SIGEMT> is not specified in POSIX.1-2001, but nevertheless appears on most "
7453 "other UNIX systems, where its default action is typically to terminate the "
7454 "process with a core dump."
7455 msgstr ""
7456 "B<SIGEMT> は POSIX.1-2001 に規定されていないが、 その他の多くの UNIX システム"
7457 "に存在する。 デフォルトの動作は多くの場合、コアダンプ出力を伴うプロセスの終了"
7458 "である。"
7459
7460 #. type: Plain text
7461 #: build/C/man7/signal.7:335
7462 msgid ""
7463 "B<SIGPWR> (which is not specified in POSIX.1-2001) is typically ignored by "
7464 "default on those other UNIX systems where it appears."
7465 msgstr ""
7466 "B<SIGPWR> は (POSIX.1-2001 に規定されていないが) このシグナルが存在する 他の "
7467 "UNIX システムでは多くの場合、デフォルト動作は無視である。"
7468
7469 #. type: Plain text
7470 #: build/C/man7/signal.7:339
7471 msgid ""
7472 "B<SIGIO> (which is not specified in POSIX.1-2001) is ignored by default on "
7473 "several other UNIX systems."
7474 msgstr ""
7475 "B<SIGIO> は (POSIX.1-2001 に規定されていないが) いくつかの他の UNIX システム"
7476 "では デフォルト動作は無視である。"
7477
7478 #.  parisc is the only exception: SIGSYS is 12, SIGUNUSED is 31
7479 #. type: Plain text
7480 #: build/C/man7/signal.7:346
7481 msgid ""
7482 "Where defined, B<SIGUNUSED> is synonymous with B<SIGSYS> on most "
7483 "architectures."
7484 msgstr ""
7485 "B<SIGUNUSED> が定義されている場合には、ほとんどのアーキテクチャで B<SIGSYS> "
7486 "の同義語となっている。"
7487
7488 #. type: SS
7489 #: build/C/man7/signal.7:346
7490 #, fuzzy, no-wrap
7491 #| msgid "Real-time Signals"
7492 msgid "Real-time signals"
7493 msgstr "リアルタイムシグナル"
7494
7495 #. type: Plain text
7496 #: build/C/man7/signal.7:356
7497 msgid ""
7498 "Linux supports real-time signals as originally defined in the POSIX.1b real-"
7499 "time extensions (and now included in POSIX.1-2001).  The range of supported "
7500 "real-time signals is defined by the macros B<SIGRTMIN> and B<SIGRTMAX>.  "
7501 "POSIX.1-2001 requires that an implementation support at least "
7502 "B<_POSIX_RTSIG_MAX> (8) real-time signals."
7503 msgstr ""
7504 "Linux はリアルタイムシグナルをサポートしている。 リアルタイムシグナルは元々 "
7505 "POSIX.1b のリアルタイム拡張で定義されて いるものであり、現在では "
7506 "POSIX.1-2001 に含まれている。 対応しているリアルタイムシグナルの範囲は、マク"
7507 "ロ B<SIGRTMIN> と B<SIGRTMAX> で定義される。 POSIX.1-2001 では、少なくとも "
7508 "B<_POSIX_RTSIG_MAX> (8) 個のリアルタイムシグナルに対応した実装が要求されてい"
7509 "る。"
7510
7511 #. type: Plain text
7512 #: build/C/man7/signal.7:378
7513 msgid ""
7514 "The Linux kernel supports a range of 32 different real-time signals, "
7515 "numbered 33 to 64.  However, the glibc POSIX threads implementation "
7516 "internally uses two (for NPTL) or three (for LinuxThreads) real-time signals "
7517 "(see B<pthreads>(7)), and adjusts the value of B<SIGRTMIN> suitably (to 34 "
7518 "or 35).  Because the range of available real-time signals varies according "
7519 "to the glibc threading implementation (and this variation can occur at run "
7520 "time according to the available kernel and glibc), and indeed the range of "
7521 "real-time signals varies across UNIX systems, programs should I<never refer "
7522 "to real-time signals using hard-coded numbers>, but instead should always "
7523 "refer to real-time signals using the notation B<SIGRTMIN>+n, and include "
7524 "suitable (run-time) checks that B<SIGRTMIN>+n does not exceed B<SIGRTMAX>."
7525 msgstr ""
7526 "Linux は、32 個の異なるリアルタイムシグナルに対応しており、 その番号は 33 か"
7527 "ら 64 である。 しかしながら、glibc の POSIX スレッド実装は、 内部で 2個 "
7528 "(NPTL の場合) か 3個 (LinuxThreads の場合) の リアルタイムシグナルを使用して"
7529 "おり (B<pthreads>(7)  参照)、 B<SIGRTMIN> の値を適切に (34 か 35 に) 調整す"
7530 "る。 利用可能なリアルタイムシグナルの範囲は glibc のスレッド実装により 異なる"
7531 "し (使用するカーネルと glibc により実行時にも変化する)、 UNIX システムの種類"
7532 "によっても異なる。したがって、 プログラムでは「ハードコーディングした数字を"
7533 "使ってのリアルタイムシグナルの 参照は決してすべきではなく」、代わりに "
7534 "B<SIGRTMIN>+n の形で参照すべきである。また、 B<SIGRTMIN>+n が B<SIGRTMAX> を"
7535 "超えていないかのチェックを (実行時に) 適切に行うべきである。"
7536
7537 #. type: Plain text
7538 #: build/C/man7/signal.7:382
7539 msgid ""
7540 "Unlike standard signals, real-time signals have no predefined meanings: the "
7541 "entire set of real-time signals can be used for application-defined purposes."
7542 msgstr ""
7543 "標準シグナルと異なり、リアルタイムシグナルには 事前に定義された意味はない。 "
7544 "リアルタイムシグナルの全部をアプリケーションで定義した用途に使える。"
7545
7546 #. type: Plain text
7547 #: build/C/man7/signal.7:385
7548 msgid ""
7549 "The default action for an unhandled real-time signal is to terminate the "
7550 "receiving process."
7551 msgstr ""
7552 "ハンドリングしないリアルタイムシグナルのデフォルトの動作は 受信したプロセスの"
7553 "終了である。"
7554
7555 #. type: Plain text
7556 #: build/C/man7/signal.7:387
7557 msgid "Real-time signals are distinguished by the following:"
7558 msgstr "リアルタイムシグナルは以下の特徴がある:"
7559
7560 #. type: Plain text
7561 #: build/C/man7/signal.7:391
7562 msgid ""
7563 "Multiple instances of real-time signals can be queued.  By contrast, if "
7564 "multiple instances of a standard signal are delivered while that signal is "
7565 "currently blocked, then only one instance is queued."
7566 msgstr ""
7567 "リアルタイムシグナルは複数の実体をキューに入れることができる。 一方、標準シグ"
7568 "ナルの場合、そのシグナルがブロックされている間に 同じシグナルの複数のインスタ"
7569 "ンスが配送されても、 1 つだけがキューに入れられる。"
7570
7571 #. type: Plain text
7572 #: build/C/man7/signal.7:411
7573 msgid ""
7574 "If the signal is sent using B<sigqueue>(3), an accompanying value (either an "
7575 "integer or a pointer) can be sent with the signal.  If the receiving process "
7576 "establishes a handler for this signal using the B<SA_SIGINFO> flag to "
7577 "B<sigaction>(2)  then it can obtain this data via the I<si_value> field of "
7578 "the I<siginfo_t> structure passed as the second argument to the handler.  "
7579 "Furthermore, the I<si_pid> and I<si_uid> fields of this structure can be "
7580 "used to obtain the PID and real user ID of the process sending the signal."
7581 msgstr ""
7582 "シグナルが B<sigqueue>(3)  を用いて送信された場合、 付属データ (整数かポイン"
7583 "タ) をシグナルと共に送信できる。 受信側プロセスが B<sigaction>(2)  に "
7584 "B<SA_SIGINFO> フラグを指定してシグナルハンドラを設定した場合、 このデータは "
7585 "I<siginfo_t> 構造体の I<si_value> フィールド経由でハンドラの第 2 引き数として"
7586 "渡され、 利用することができる。 さらに、この構造体の I<si_pid> と I<si_uid> "
7587 "フィールドでシグナルを送信したプロセスの PID と実ユーザ ID を 得ることができ"
7588 "る。"
7589
7590 #. type: Plain text
7591 #: build/C/man7/signal.7:420
7592 msgid ""
7593 "Real-time signals are delivered in a guaranteed order.  Multiple real-time "
7594 "signals of the same type are delivered in the order they were sent.  If "
7595 "different real-time signals are sent to a process, they are delivered "
7596 "starting with the lowest-numbered signal.  (I.e., low-numbered signals have "
7597 "highest priority.)  By contrast, if multiple standard signals are pending "
7598 "for a process, the order in which they are delivered is unspecified."
7599 msgstr ""
7600 "リアルタイムシグナルでは配送される順序が保証される。 同じタイプのリアルタイム"
7601 "シグナルは送信された順番に到着する。 異なるリアルタイムシグナルが一つのプロセ"
7602 "スに送信された場合、 番号の小さいシグナルから先に到着する。 (つまり小さい番号"
7603 "のシグナルが高い優先順位を持つ。)  対照的に、一つのプロセスに対して複数の標準"
7604 "シグナルが処理待ちとなった場合、 これらのシグナルが配送される順序は不定であ"
7605 "る。"
7606
7607 #. type: Plain text
7608 #: build/C/man7/signal.7:425
7609 msgid ""
7610 "If both standard and real-time signals are pending for a process, POSIX "
7611 "leaves it unspecified which is delivered first.  Linux, like many other "
7612 "implementations, gives priority to standard signals in this case."
7613 msgstr ""
7614 "一つのプロセスに対して標準シグナルとリアルタイムシグナルの両方が 処理待ちの場"
7615 "合、POSIX はどちらが先に配送されるかを規定していない。 Linux では、他の多くの"
7616 "実装と同様、このような場合には 標準シグナルが優先される。"
7617
7618 #. type: Plain text
7619 #: build/C/man7/signal.7:448
7620 msgid ""
7621 "According to POSIX, an implementation should permit at least "
7622 "B<_POSIX_SIGQUEUE_MAX> (32) real-time signals to be queued to a process.  "
7623 "However, Linux does things differently.  In kernels up to and including "
7624 "2.6.7, Linux imposes a system-wide limit on the number of queued real-time "
7625 "signals for all processes.  This limit can be viewed and (with privilege) "
7626 "changed via the I</proc/sys/kernel/rtsig-max> file.  A related file, I</proc/"
7627 "sys/kernel/rtsig-nr>, can be used to find out how many real-time signals are "
7628 "currently queued.  In Linux 2.6.8, these I</proc> interfaces were replaced "
7629 "by the B<RLIMIT_SIGPENDING> resource limit, which specifies a per-user limit "
7630 "for queued signals; see B<setrlimit>(2)  for further details."
7631 msgstr ""
7632 "POSIX によれば、1 プロセス毎に最低 B<_POSIX_SIGQUEUE_MAX> (32) 個のリアルタイ"
7633 "ムシグナルをキューに入れられるべきとしている。 しかし、 Linux では違った実装"
7634 "になっている。カーネル 2.6.7 までは (2.6.7 を含む)、全プロセスでキューに入っ"
7635 "ているリアルタイムシグナル の数の合計についてシステム全体での制限がある。 こ"
7636 "の制限は I</proc/sys/kernel/rtsig-max> ファイルで見ることができ、 (権限があれ"
7637 "ば) 変更もできる。 関係するファイルとして、 I</proc/sys/kernel/rtsig-nr> を見"
7638 "ることで、いくつのリアルタイムシグナルが現在キューに入っているかを 知ることが"
7639 "できる。 Linux 2.6.8 で、これらの I</proc> 経由のインターフェースは、 "
7640 "B<RLIMIT_SIGPENDING> リソース制限に置き換えられた。 これは、キューに入るシグ"
7641 "ナル数に関してユーザ単位に 上限を指定するものである。 詳しくは B<setrlimit>"
7642 "(2)  を参照。"
7643
7644 #. type: SS
7645 #: build/C/man7/signal.7:448
7646 #, no-wrap
7647 msgid "Async-signal-safe functions"
7648 msgstr "非同期シグナルで安全な関数 (async-signal-safe functions)"
7649
7650 #. type: Plain text
7651 #: build/C/man7/signal.7:457
7652 msgid ""
7653 "A signal handler function must be very careful, since processing elsewhere "
7654 "may be interrupted at some arbitrary point in the execution of the program.  "
7655 "POSIX has the concept of \"safe function\".  If a signal interrupts the "
7656 "execution of an unsafe function, and I<handler> calls an unsafe function, "
7657 "then the behavior of the program is undefined."
7658 msgstr ""
7659 "シグナルハンドラ関数には非常に注意しなければならない。 他の場所の処理はプログ"
7660 "ラム実行の任意の箇所で中断される可能性があるためである。 POSIX には「安全な関"
7661 "数 (safe function)」という概念がある。 シグナルが安全でない関数の実行を中断"
7662 "し、かつ I<handler> が安全でない関数を呼び出した場合、プログラムの挙動は未定"
7663 "義である。"
7664
7665 #. type: Plain text
7666 #: build/C/man7/signal.7:461
7667 msgid ""
7668 "POSIX.1-2004 (also known as POSIX.1-2001 Technical Corrigendum 2)  requires "
7669 "an implementation to guarantee that the following functions can be safely "
7670 "called inside a signal handler:"
7671 msgstr ""
7672 "POSIX.1-2004 (POSIX.1-2001 Technical Corrigendum (正誤表) 2 とも言う) では、 "
7673 "シグナルハンドラ内での安全な呼び出しを保証することが必須の関数として 以下が規"
7674 "定されている。"
7675
7676 #. type: Plain text
7677 #: build/C/man7/signal.7:582
7678 #, no-wrap
7679 msgid ""
7680 "_Exit()\n"
7681 "_exit()\n"
7682 "abort()\n"
7683 "accept()\n"
7684 "access()\n"
7685 "aio_error()\n"
7686 "aio_return()\n"
7687 "aio_suspend()\n"
7688 "alarm()\n"
7689 "bind()\n"
7690 "cfgetispeed()\n"
7691 "cfgetospeed()\n"
7692 "cfsetispeed()\n"
7693 "cfsetospeed()\n"
7694 "chdir()\n"
7695 "chmod()\n"
7696 "chown()\n"
7697 "clock_gettime()\n"
7698 "close()\n"
7699 "connect()\n"
7700 "creat()\n"
7701 "dup()\n"
7702 "dup2()\n"
7703 "execle()\n"
7704 "execve()\n"
7705 "fchmod()\n"
7706 "fchown()\n"
7707 "fcntl()\n"
7708 "fdatasync()\n"
7709 "fork()\n"
7710 "fpathconf()\n"
7711 "fstat()\n"
7712 "fsync()\n"
7713 "ftruncate()\n"
7714 "getegid()\n"
7715 "geteuid()\n"
7716 "getgid()\n"
7717 "getgroups()\n"
7718 "getpeername()\n"
7719 "getpgrp()\n"
7720 "getpid()\n"
7721 "getppid()\n"
7722 "getsockname()\n"
7723 "getsockopt()\n"
7724 "getuid()\n"
7725 "kill()\n"
7726 "link()\n"
7727 "listen()\n"
7728 "lseek()\n"
7729 "lstat()\n"
7730 "mkdir()\n"
7731 "mkfifo()\n"
7732 "open()\n"
7733 "pathconf()\n"
7734 "pause()\n"
7735 "pipe()\n"
7736 "poll()\n"
7737 "posix_trace_event()\n"
7738 "pselect()\n"
7739 "raise()\n"
7740 "read()\n"
7741 "readlink()\n"
7742 "recv()\n"
7743 "recvfrom()\n"
7744 "recvmsg()\n"
7745 "rename()\n"
7746 "rmdir()\n"
7747 "select()\n"
7748 "sem_post()\n"
7749 "send()\n"
7750 "sendmsg()\n"
7751 "sendto()\n"
7752 "setgid()\n"
7753 "setpgid()\n"
7754 "setsid()\n"
7755 "setsockopt()\n"
7756 "setuid()\n"
7757 "shutdown()\n"
7758 "sigaction()\n"
7759 "sigaddset()\n"
7760 "sigdelset()\n"
7761 "sigemptyset()\n"
7762 "sigfillset()\n"
7763 "sigismember()\n"
7764 "signal()\n"
7765 "sigpause()\n"
7766 "sigpending()\n"
7767 "sigprocmask()\n"
7768 "sigqueue()\n"
7769 "sigset()\n"
7770 "sigsuspend()\n"
7771 "sleep()\n"
7772 "sockatmark()\n"
7773 "socket()\n"
7774 "socketpair()\n"
7775 "stat()\n"
7776 "symlink()\n"
7777 "sysconf()\n"
7778 "tcdrain()\n"
7779 "tcflow()\n"
7780 "tcflush()\n"
7781 "tcgetattr()\n"
7782 "tcgetpgrp()\n"
7783 "tcsendbreak()\n"
7784 "tcsetattr()\n"
7785 "tcsetpgrp()\n"
7786 "time()\n"
7787 "timer_getoverrun()\n"
7788 "timer_gettime()\n"
7789 "timer_settime()\n"
7790 "times()\n"
7791 "umask()\n"
7792 "uname()\n"
7793 "unlink()\n"
7794 "utime()\n"
7795 "wait()\n"
7796 "waitpid()\n"
7797 "write()\n"
7798 msgstr ""
7799 "_Exit()\n"
7800 "_exit()\n"
7801 "abort()\n"
7802 "accept()\n"
7803 "access()\n"
7804 "aio_error()\n"
7805 "aio_return()\n"
7806 "aio_suspend()\n"
7807 "alarm()\n"
7808 "bind()\n"
7809 "cfgetispeed()\n"
7810 "cfgetospeed()\n"
7811 "cfsetispeed()\n"
7812 "cfsetospeed()\n"
7813 "chdir()\n"
7814 "chmod()\n"
7815 "chown()\n"
7816 "clock_gettime()\n"
7817 "close()\n"
7818 "connect()\n"
7819 "creat()\n"
7820 "dup()\n"
7821 "dup2()\n"
7822 "execle()\n"
7823 "execve()\n"
7824 "fchmod()\n"
7825 "fchown()\n"
7826 "fcntl()\n"
7827 "fdatasync()\n"
7828 "fork()\n"
7829 "fpathconf()\n"
7830 "fstat()\n"
7831 "fsync()\n"
7832 "ftruncate()\n"
7833 "getegid()\n"
7834 "geteuid()\n"
7835 "getgid()\n"
7836 "getgroups()\n"
7837 "getpeername()\n"
7838 "getpgrp()\n"
7839 "getpid()\n"
7840 "getppid()\n"
7841 "getsockname()\n"
7842 "getsockopt()\n"
7843 "getuid()\n"
7844 "kill()\n"
7845 "link()\n"
7846 "listen()\n"
7847 "lseek()\n"
7848 "lstat()\n"
7849 "mkdir()\n"
7850 "mkfifo()\n"
7851 "open()\n"
7852 "pathconf()\n"
7853 "pause()\n"
7854 "pipe()\n"
7855 "poll()\n"
7856 "posix_trace_event()\n"
7857 "pselect()\n"
7858 "raise()\n"
7859 "read()\n"
7860 "readlink()\n"
7861 "recv()\n"
7862 "recvfrom()\n"
7863 "recvmsg()\n"
7864 "rename()\n"
7865 "rmdir()\n"
7866 "select()\n"
7867 "sem_post()\n"
7868 "send()\n"
7869 "sendmsg()\n"
7870 "sendto()\n"
7871 "setgid()\n"
7872 "setpgid()\n"
7873 "setsid()\n"
7874 "setsockopt()\n"
7875 "setuid()\n"
7876 "shutdown()\n"
7877 "sigaction()\n"
7878 "sigaddset()\n"
7879 "sigdelset()\n"
7880 "sigemptyset()\n"
7881 "sigfillset()\n"
7882 "sigismember()\n"
7883 "signal()\n"
7884 "sigpause()\n"
7885 "sigpending()\n"
7886 "sigprocmask()\n"
7887 "sigqueue()\n"
7888 "sigset()\n"
7889 "sigsuspend()\n"
7890 "sleep()\n"
7891 "sockatmark()\n"
7892 "socket()\n"
7893 "socketpair()\n"
7894 "stat()\n"
7895 "symlink()\n"
7896 "sysconf()\n"
7897 "tcdrain()\n"
7898 "tcflow()\n"
7899 "tcflush()\n"
7900 "tcgetattr()\n"
7901 "tcgetpgrp()\n"
7902 "tcsendbreak()\n"
7903 "tcsetattr()\n"
7904 "tcsetpgrp()\n"
7905 "time()\n"
7906 "timer_getoverrun()\n"
7907 "timer_gettime()\n"
7908 "timer_settime()\n"
7909 "times()\n"
7910 "umask()\n"
7911 "uname()\n"
7912 "unlink()\n"
7913 "utime()\n"
7914 "wait()\n"
7915 "waitpid()\n"
7916 "write()\n"
7917
7918 #. type: Plain text
7919 #: build/C/man7/signal.7:587
7920 msgid ""
7921 "POSIX.1-2008 removes fpathconf(), pathconf(), and sysconf()  from the above "
7922 "list, and adds the following functions:"
7923 msgstr ""
7924 "POSIX.1-2008 では、上記のリストのうち fpathconf(), pathconf(), sysconf()  が"
7925 "削除され、以下の関数が追加された。"
7926
7927 #. type: Plain text
7928 #: build/C/man7/signal.7:610
7929 #, no-wrap
7930 msgid ""
7931 "execl()\n"
7932 "execv()\n"
7933 "faccessat()\n"
7934 "fchmodat()\n"
7935 "fchownat()\n"
7936 "fexecve()\n"
7937 "fstatat()\n"
7938 "futimens()\n"
7939 "linkat()\n"
7940 "mkdirat()\n"
7941 "mkfifoat()\n"
7942 "mknod()\n"
7943 "mknodat()\n"
7944 "openat()\n"
7945 "readlinkat()\n"
7946 "renameat()\n"
7947 "symlinkat()\n"
7948 "unlinkat()\n"
7949 "utimensat()\n"
7950 "utimes()\n"
7951 msgstr ""
7952 "execl()\n"
7953 "execv()\n"
7954 "faccessat()\n"
7955 "fchmodat()\n"
7956 "fchownat()\n"
7957 "fexecve()\n"
7958 "fstatat()\n"
7959 "futimens()\n"
7960 "linkat()\n"
7961 "mkdirat()\n"
7962 "mkfifoat()\n"
7963 "mknod()\n"
7964 "mknodat()\n"
7965 "openat()\n"
7966 "readlinkat()\n"
7967 "renameat()\n"
7968 "symlinkat()\n"
7969 "unlinkat()\n"
7970 "utimensat()\n"
7971 "utimes()\n"
7972
7973 #. type: SS
7974 #: build/C/man7/signal.7:612
7975 #, fuzzy, no-wrap
7976 #| msgid "Interruption of System Calls and Library Functions by Signal Handlers"
7977 msgid "Interruption of system calls and library functions by signal handlers"
7978 msgstr "シグナルハンドラによるシステムコールやライブラリ関数への割り込み"
7979
7980 #. type: Plain text
7981 #: build/C/man7/signal.7:615
7982 msgid ""
7983 "If a signal handler is invoked while a system call or library function call "
7984 "is blocked, then either:"
7985 msgstr ""
7986 "システムコールやライブラリが停止 (block) している間にシグナルハンドラが 起動"
7987 "されると、以下のどちらかとなる。"
7988
7989 #. type: Plain text
7990 #: build/C/man7/signal.7:617
7991 msgid ""
7992 "the call is automatically restarted after the signal handler returns; or"
7993 msgstr "シグナルが返った後、呼び出しは自動的に再スタートされる。"
7994
7995 #. type: Plain text
7996 #: build/C/man7/signal.7:620
7997 msgid "the call fails with the error B<EINTR>."
7998 msgstr "呼び出しはエラー B<EINTR> で失敗する。"
7999
8000 #. type: Plain text
8001 #: build/C/man7/signal.7:628
8002 msgid ""
8003 "Which of these two behaviors occurs depends on the interface and whether or "
8004 "not the signal handler was established using the B<SA_RESTART> flag (see "
8005 "B<sigaction>(2)).  The details vary across UNIX systems; below, the details "
8006 "for Linux."
8007 msgstr ""
8008 "これらの二つの挙動のうちどちらが起こるかは、インターフェイスにより依存し、 シ"
8009 "グナルハンドラが B<SA_RESTART> フラグ (B<sigaction>(2)  参照) を使って設定さ"
8010 "れていたかにも依存する。 詳細は UNIX システムによって異なる。 Linux における"
8011 "詳細を以下で説明する。"
8012
8013 #.  The following system calls use ERESTARTSYS,
8014 #.  so that they are restartable
8015 #. type: Plain text
8016 #: build/C/man7/signal.7:637
8017 msgid ""
8018 "If a blocked call to one of the following interfaces is interrupted by a "
8019 "signal handler, then the call will be automatically restarted after the "
8020 "signal handler returns if the B<SA_RESTART> flag was used; otherwise the "
8021 "call will fail with the error B<EINTR>:"
8022 msgstr ""
8023 "以下のインターフェイスのいずれかの呼び出しが停止している間に シグナルハンドラ"
8024 "により割り込まれた場合、 B<SA_RESTART> フラグが使用されていれば、シグナルハン"
8025 "ドラが返った後に その呼び出しは自動的に再スタートされることになる。 それ以外"
8026 "の場合は、その呼び出しはエラー B<EINTR> で失敗することになる。"
8027
8028 #. type: Plain text
8029 #: build/C/man7/signal.7:653
8030 msgid ""
8031 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), and B<ioctl>(2)  calls "
8032 "on \"slow\" devices.  A \"slow\" device is one where the I/O call may block "
8033 "for an indefinite time, for example, a terminal, pipe, or socket.  (A disk "
8034 "is not a slow device according to this definition.)  If an I/O call on a "
8035 "slow device has already transferred some data by the time it is interrupted "
8036 "by a signal handler, then the call will return a success status (normally, "
8037 "the number of bytes transferred)."
8038 msgstr ""
8039 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), B<ioctl>(2)  の「遅い "
8040 "(slow)」デバイスに対する呼び出し。 ここでいう「遅い」デバイスとは、I/O 呼び出"
8041 "しが無期限に停止 (block) する 可能性のあるデバイスのことで、例としては端末、"
8042 "パイプ、ソケットがある (この定義では、ディスクは遅いデバイスではない)。 遅い"
8043 "デバイスに対する I/O 呼び出しが、 シグナルハンドラにより割り込まれた時点まで"
8044 "に何らかのデータを すでに転送していれば、呼び出しは成功ステータス (通常は、転"
8045 "送されたバイト数) を返すことだろう。"
8046
8047 #. type: Plain text
8048 #: build/C/man7/signal.7:657
8049 msgid ""
8050 "B<open>(2), if it can block (e.g., when opening a FIFO; see B<fifo>(7))."
8051 msgstr ""
8052 "停止 (block) する可能性のある B<open>(2)  (例えば、FIFO のオープン時; B<fifo>"
8053 "(7)  参照)。"
8054
8055 #. type: Plain text
8056 #: build/C/man7/signal.7:664
8057 msgid "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), and B<waitpid>(2)."
8058 msgstr "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), B<waitpid>(2)."
8059
8060 #.  If a timeout (setsockopt()) is in effect on the socket, then these
8061 #.  system calls switch to using EINTR.  Consequently, they and are not
8062 #.  automatically restarted, and they show the stop/cont behavior
8063 #.  described below.  (Verified from 2.6.26 source, and by experiment; mtk)
8064 #. type: Plain text
8065 #: build/C/man7/signal.7:680
8066 msgid ""
8067 "Socket interfaces: B<accept>(2), B<connect>(2), B<recv>(2), B<recvfrom>(2), "
8068 "B<recvmsg>(2), B<send>(2), B<sendto>(2), and B<sendmsg>(2), unless a timeout "
8069 "has been set on the socket (see below)."
8070 msgstr ""
8071 "ソケットインターフェイス: B<accept>(2), B<connect>(2), B<recv>(2), "
8072 "B<recvfrom>(2), B<recvmsg>(2), B<send>(2), B<sendto>(2), B<sendmsg>(2).  但"
8073 "し、ソケットにタイムアウトが設定されていない場合 (下記参照)。"
8074
8075 #. type: Plain text
8076 #: build/C/man7/signal.7:686
8077 msgid "File locking interfaces: B<flock>(2)  and B<fcntl>(2)  B<F_SETLKW>."
8078 msgstr ""
8079 "ファイルロック用インターフェイス: B<flock>(2), B<fcntl>(2)  B<F_SETLKW>."
8080
8081 #. type: Plain text
8082 #: build/C/man7/signal.7:693
8083 msgid ""
8084 "POSIX message queue interfaces: B<mq_receive>(3), B<mq_timedreceive>(3), "
8085 "B<mq_send>(3), and B<mq_timedsend>(3)."
8086 msgstr ""
8087 "POSIX メッセージキューインターフェイス: B<mq_receive>(3), B<mq_timedreceive>"
8088 "(3), B<mq_send>(3), B<mq_timedsend>(3)."
8089
8090 #. type: Plain text
8091 #: build/C/man7/signal.7:698
8092 msgid ""
8093 "B<futex>(2)  B<FUTEX_WAIT> (since Linux 2.6.22; beforehand, always failed "
8094 "with B<EINTR>)."
8095 msgstr ""
8096 "B<futex>(2)  B<FUTEX_WAIT> (Linux 2.6.22 以降; それ以前は常に B<EINTR> で失敗"
8097 "していた)。"
8098
8099 #. type: Plain text
8100 #: build/C/man7/signal.7:705
8101 msgid ""
8102 "POSIX semaphore interfaces: B<sem_wait>(3)  and B<sem_timedwait>(3)  (since "
8103 "Linux 2.6.22; beforehand, always failed with B<EINTR>)."
8104 msgstr ""
8105 "POSIX セマフォインターフェイス: B<sem_wait>(3), B<sem_timedwait>(3)  (Linux "
8106 "2.6.22 以降; それ以前は常に B<EINTR> で失敗していた)。"
8107
8108 #.  These are the system calls that give EINTR or ERESTARTNOHAND
8109 #.  on interruption by a signal handler.
8110 #. type: Plain text
8111 #: build/C/man7/signal.7:716
8112 msgid ""
8113 "The following interfaces are never restarted after being interrupted by a "
8114 "signal handler, regardless of the use of B<SA_RESTART>; they always fail "
8115 "with the error B<EINTR> when interrupted by a signal handler:"
8116 msgstr ""
8117 "以下のインターフェイスは、 B<SA_RESTART> を使っているどうかに関わらず、シグナ"
8118 "ルハンドラにより割り込まれた後、 再スタートすることは決してない。 これらは、"
8119 "シグナルハンドラにより割り込まれると、常にエラー B<EINTR> で失敗する。"
8120
8121 #. type: Plain text
8122 #: build/C/man7/signal.7:736 build/C/man7/signal.7:810
8123 msgid ""
8124 "Socket interfaces, when a timeout has been set on the socket using "
8125 "B<setsockopt>(2): B<accept>(2), B<recv>(2), B<recvfrom>(2), and B<recvmsg>"
8126 "(2), if a receive timeout (B<SO_RCVTIMEO>)  has been set; B<connect>(2), "
8127 "B<send>(2), B<sendto>(2), and B<sendmsg>(2), if a send timeout "
8128 "(B<SO_SNDTIMEO>)  has been set."
8129 msgstr ""
8130 "B<setsockopt>(2)  を使ってタイムアウトが設定されているソケットインターフェー"
8131 "ス: B<accept>(2), B<recv>(2), B<recvfrom>(2), B<recvmsg>(2)  で受信タイムアウ"
8132 "ト (B<SO_RCVTIMEO>)  が設定されている場合と、 B<connect>(2), B<send>(2), "
8133 "B<sendto>(2), B<sendmsg>(2)  で送信タイムアウト (B<SO_SNDTIMEO>)  が設定され"
8134 "ている場合。"
8135
8136 #. type: Plain text
8137 #: build/C/man7/signal.7:743
8138 msgid ""
8139 "Interfaces used to wait for signals: B<pause>(2), B<sigsuspend>(2), "
8140 "B<sigtimedwait>(2), and B<sigwaitinfo>(2)."
8141 msgstr ""
8142 "シグナル待ちに使われるインターフェイス: B<pause>(2), B<sigsuspend>(2), "
8143 "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8144
8145 #. type: Plain text
8146 #: build/C/man7/signal.7:752
8147 msgid ""
8148 "File descriptor multiplexing interfaces: B<epoll_wait>(2), B<epoll_pwait>"
8149 "(2), B<poll>(2), B<ppoll>(2), B<select>(2), and B<pselect>(2)."
8150 msgstr ""
8151 "ファイルディスクリプタ多重インターフェイス: B<epoll_wait>(2), B<epoll_pwait>"
8152 "(2), B<poll>(2), B<ppoll>(2), B<select>(2), B<pselect>(2)."
8153
8154 #.  On some other systems, SA_RESTART does restart these system calls
8155 #. type: Plain text
8156 #: build/C/man7/signal.7:760
8157 msgid ""
8158 "System V IPC interfaces: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), and "
8159 "B<semtimedop>(2)."
8160 msgstr ""
8161 "System V IPC インターフェイス: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), "
8162 "B<semtimedop>(2)."
8163
8164 #. type: Plain text
8165 #: build/C/man7/signal.7:766
8166 msgid ""
8167 "Sleep interfaces: B<clock_nanosleep>(2), B<nanosleep>(2), and B<usleep>(3)."
8168 msgstr ""
8169 "スリープ用のインターフェイス: B<clock_nanosleep>(2), B<nanosleep>(2), "
8170 "B<usleep>(3)."
8171
8172 #. type: Plain text
8173 #: build/C/man7/signal.7:771 build/C/man7/signal.7:824
8174 msgid "B<read>(2)  from an B<inotify>(7)  file descriptor."
8175 msgstr "B<inotify>(7)  ファイルディスクリプタからの B<read>(2)."
8176
8177 #. type: Plain text
8178 #: build/C/man7/signal.7:773
8179 msgid "B<io_getevents>(2)."
8180 msgstr "B<io_getevents>(2)."
8181
8182 #. type: Plain text
8183 #: build/C/man7/signal.7:779
8184 msgid ""
8185 "The B<sleep>(3)  function is also never restarted if interrupted by a "
8186 "handler, but gives a success return: the number of seconds remaining to "
8187 "sleep."
8188 msgstr ""
8189 "B<sleep>(3)  関数も、ハンドラにより割り込まれた場合、決して再スタートされるこ"
8190 "とはない。 しかし、成功となり、残っている停止時間を返す。"
8191
8192 #. type: SS
8193 #: build/C/man7/signal.7:779
8194 #, fuzzy, no-wrap
8195 #| msgid "Interruption of System Calls and Library Functions by Stop Signals"
8196 msgid "Interruption of system calls and library functions by stop signals"
8197 msgstr "一時停止シグナルによるシステムコールやライブラリ関数への割り込み"
8198
8199 #. type: Plain text
8200 #: build/C/man7/signal.7:788
8201 msgid ""
8202 "On Linux, even in the absence of signal handlers, certain blocking "
8203 "interfaces can fail with the error B<EINTR> after the process is stopped by "
8204 "one of the stop signals and then resumed via B<SIGCONT>.  This behavior is "
8205 "not sanctioned by POSIX.1, and doesn't occur on other systems."
8206 msgstr ""
8207 "Linux では、シグナルハンドラが設定されていない場合でも、 いくつかのブロッキン"
8208 "グ型のインターフェイスは、 プロセスが一時停止 (stop) シグナルの一つにより停止"
8209 "され、 B<SIGCONT> により再開された後に、エラー B<EINTR> で失敗する可能性があ"
8210 "る。 この挙動は POSIX.1 で認められておらず、他のシステムでは起こらない。"
8211
8212 #. type: Plain text
8213 #: build/C/man7/signal.7:790
8214 msgid "The Linux interfaces that display this behavior are:"
8215 msgstr "この挙動を示す Linux のインターフェイスは以下の通りである。"
8216
8217 #. type: Plain text
8218 #: build/C/man7/signal.7:813
8219 msgid "B<epoll_wait>(2), B<epoll_pwait>(2)."
8220 msgstr "B<epoll_wait>(2), B<epoll_pwait>(2)."
8221
8222 #. type: Plain text
8223 #: build/C/man7/signal.7:816
8224 msgid "B<semop>(2), B<semtimedop>(2)."
8225 msgstr "B<semop>(2), B<semtimedop>(2)."
8226
8227 #. type: Plain text
8228 #: build/C/man7/signal.7:819
8229 msgid "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8230 msgstr "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8231
8232 #. type: Plain text
8233 #: build/C/man7/signal.7:830
8234 msgid ""
8235 "Linux 2.6.21 and earlier: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
8236 "B<sem_wait>(3)."
8237 msgstr ""
8238 "Linux 2.6.21 以前: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
8239 "B<sem_wait>(3)."
8240
8241 #. type: Plain text
8242 #: build/C/man7/signal.7:834
8243 msgid "Linux 2.6.8 and earlier: B<msgrcv>(2), B<msgsnd>(2)."
8244 msgstr "Linux 2.6.8 以前: B<msgrcv>(2), B<msgsnd>(2)."
8245
8246 #. type: Plain text
8247 #: build/C/man7/signal.7:837
8248 msgid "Linux 2.4 and earlier: B<nanosleep>(2)."
8249 msgstr "Linux 2.4 以前: B<nanosleep>(2)."
8250
8251 #.  It must be a *very* long time since this was true:
8252 #.  .SH BUGS
8253 #.  .B SIGIO
8254 #.  and
8255 #.  .B SIGLOST
8256 #.  have the same value.
8257 #.  The latter is commented out in the kernel source, but
8258 #.  the build process of some software still thinks that
8259 #.  signal 29 is
8260 #.  .BR SIGLOST .
8261 #. type: Plain text
8262 #: build/C/man7/signal.7:850
8263 msgid "POSIX.1, except as noted."
8264 msgstr "POSIX.1 (注記した内容以外)。"
8265
8266 #. type: Plain text
8267 #: build/C/man7/signal.7:883
8268 msgid ""
8269 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), B<rt_sigqueueinfo>"
8270 "(2), B<setitimer>(2), B<setrlimit>(2), B<sgetmask>(2), B<sigaction>(2), "
8271 "B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
8272 "B<sigprocmask>(2), B<sigsuspend>(2), B<sigwaitinfo>(2), B<abort>(3), "
8273 "B<bsd_signal>(3), B<longjmp>(3), B<raise>(3), B<pthread_sigqueue>(3), "
8274 "B<sigqueue>(3), B<sigset>(3), B<sigsetops>(3), B<sigvec>(3), B<sigwait>(3), "
8275 "B<strsignal>(3), B<sysv_signal>(3), B<core>(5), B<proc>(5), B<pthreads>(7), "
8276 "B<sigevent>(7)"
8277 msgstr ""
8278 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), B<rt_sigqueueinfo>"
8279 "(2), B<setitimer>(2), B<setrlimit>(2), B<sgetmask>(2), B<sigaction>(2), "
8280 "B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
8281 "B<sigprocmask>(2), B<sigsuspend>(2), B<sigwaitinfo>(2), B<abort>(3), "
8282 "B<bsd_signal>(3), B<longjmp>(3), B<raise>(3), B<pthread_sigqueue>(3), "
8283 "B<sigqueue>(3), B<sigset>(3), B<sigsetops>(3), B<sigvec>(3), B<sigwait>(3), "
8284 "B<strsignal>(3), B<sysv_signal>(3), B<core>(5), B<proc>(5), B<pthreads>(7), "
8285 "B<sigevent>(7)"
8286
8287 #. type: TH
8288 #: build/C/man2/signalfd.2:20
8289 #, no-wrap
8290 msgid "SIGNALFD"
8291 msgstr "SIGNALFD"
8292
8293 #. type: TH
8294 #: build/C/man2/signalfd.2:20
8295 #, no-wrap
8296 msgid "2009-01-13"
8297 msgstr "2009-01-13"
8298
8299 #. type: Plain text
8300 #: build/C/man2/signalfd.2:23
8301 msgid "signalfd - create a file descriptor for accepting signals"
8302 msgstr "signalfd - シグナル受け付け用のファイルディスクリプタを生成する"
8303
8304 #. type: Plain text
8305 #: build/C/man2/signalfd.2:25
8306 msgid "B<#include E<lt>sys/signalfd.hE<gt>>"
8307 msgstr "B<#include E<lt>sys/signalfd.hE<gt>>"
8308
8309 #. type: Plain text
8310 #: build/C/man2/signalfd.2:27
8311 msgid ""
8312 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
8313 msgstr ""
8314 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
8315
8316 #. type: Plain text
8317 #: build/C/man2/signalfd.2:38
8318 msgid ""
8319 "B<signalfd>()  creates a file descriptor that can be used to accept signals "
8320 "targeted at the caller.  This provides an alternative to the use of a signal "
8321 "handler or B<sigwaitinfo>(2), and has the advantage that the file descriptor "
8322 "may be monitored by B<select>(2), B<poll>(2), and B<epoll>(7)."
8323 msgstr ""
8324 "B<signalfd>()  は、呼び出し元宛てのシグナルを受け付けるために使用されるファイ"
8325 "ル ディスクリプタを生成する。 この方法はシグナルハンドラや B<sigwaitinfo>"
8326 "(2)  を用いる方法の代わりとなるものであり、このファイルディスクリプタを "
8327 "B<select>(2), B<poll>(2), B<epoll>(7)  で監視できるという利点がある。"
8328
8329 #. type: Plain text
8330 #: build/C/man2/signalfd.2:58
8331 msgid ""
8332 "The I<mask> argument specifies the set of signals that the caller wishes to "
8333 "accept via the file descriptor.  This argument is a signal set whose "
8334 "contents can be initialized using the macros described in B<sigsetops>(3).  "
8335 "Normally, the set of signals to be received via the file descriptor should "
8336 "be blocked using B<sigprocmask>(2), to prevent the signals being handled "
8337 "according to their default dispositions.  It is not possible to receive "
8338 "B<SIGKILL> or B<SIGSTOP> signals via a signalfd file descriptor; these "
8339 "signals are silently ignored if specified in I<mask>."
8340 msgstr ""
8341 "I<mask> 引き数には、呼び出し元がこのファイルディスクリプタ経由で受け付けたい "
8342 "シグナル集合を指定する。この引き数で指定するシグナル集合の内容は、 "
8343 "B<sigsetops>(3)  で説明されているマクロを使って初期化することができる。 通"
8344 "常、ファイルディスクリプタ経由で受信するシグナル集合は、 そのシグナルがデフォ"
8345 "ルトの配送方法に基いて処理されるのを防ぐために、 B<sigprocmask>(2)  を使って"
8346 "ブロックしておくべきである。 シグナル B<SIGKILL> と B<SIGSTOP> を signalfd "
8347 "ファイルディスクリプタ経由で受信することはできない。 これらのシグナルが "
8348 "I<mask> で指定された場合には黙って無視される。"
8349
8350 #. type: Plain text
8351 #: build/C/man2/signalfd.2:72
8352 msgid ""
8353 "If the I<fd> argument is -1, then the call creates a new file descriptor and "
8354 "associates the signal set specified in I<mask> with that descriptor.  If "
8355 "I<fd> is not -1, then it must specify a valid existing signalfd file "
8356 "descriptor, and I<mask> is used to replace the signal set associated with "
8357 "that descriptor."
8358 msgstr ""
8359 "I<fd> 引き数が -1 の場合、 B<signalfd>()  は新しいファイルディスクリプタを生"
8360 "成し、 I<mask> で指定されたシグナル集合をそのファイルディスクリプタに関連付け"
8361 "る。 I<fd> 引き数が -1 以外の場合、 I<fd> には有効な既存の signalfd ファイル"
8362 "ディスクリプタを指定しなければならず、 そのディスクリプタに関連付けられている"
8363 "シグナル集合は I<mask> を使って置き換えられる。"
8364
8365 #. type: Plain text
8366 #: build/C/man2/signalfd.2:77
8367 msgid ""
8368 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
8369 "I<flags> to change the behaviour of B<signalfd>():"
8370 msgstr ""
8371 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
8372 "ることで、 B<signalfd>()  の振舞いを変更することができる。"
8373
8374 #. type: TP
8375 #: build/C/man2/signalfd.2:77
8376 #, no-wrap
8377 msgid "B<SFD_NONBLOCK>"
8378 msgstr "B<SFD_NONBLOCK>"
8379
8380 #. type: TP
8381 #: build/C/man2/signalfd.2:85
8382 #, no-wrap
8383 msgid "B<SFD_CLOEXEC>"
8384 msgstr "B<SFD_CLOEXEC>"
8385
8386 #. type: Plain text
8387 #: build/C/man2/signalfd.2:102
8388 msgid ""
8389 "B<signalfd>()  returns a file descriptor that supports the following "
8390 "operations:"
8391 msgstr ""
8392 "B<signalfd>()  が返すファイルディスクリプタは以下の操作をサポートしている。"
8393
8394 #. type: Plain text
8395 #: build/C/man2/signalfd.2:121
8396 msgid ""
8397 "If one or more of the signals specified in I<mask> is pending for the "
8398 "process, then the buffer supplied to B<read>(2)  is used to return one or "
8399 "more I<signalfd_siginfo> structures (see below) that describe the signals.  "
8400 "The B<read>(2)  returns information for as many signals as are pending and "
8401 "will fit in the supplied buffer.  The buffer must be at least I<sizeof"
8402 "(struct signalfd_siginfo)> bytes.  The return value of the B<read>(2)  is "
8403 "the total number of bytes read."
8404 msgstr ""
8405 "I<mask> に指定されているシグナルのうち一つ以上がそのプロセスに対して 処理待"
8406 "ち (pending) であれば、それらのシグナルの情報が B<read>(2)  に渡されたバッ"
8407 "ファを使って、 I<signalfd_siginfo> 構造体に格納されて返される。 B<read>(2)  "
8408 "は、バッファに格納可能な範囲でできるだけ多くの処理待ちのシグナルに ついての情"
8409 "報を返す。 バッファは最低でも I<sizeof(struct signalfd_siginfo)> バイトの大き"
8410 "さがなければならない。 B<read>(2)  の返り値は読み出されたトータルのバイト数で"
8411 "ある。"
8412
8413 #. type: Plain text
8414 #: build/C/man2/signalfd.2:129
8415 msgid ""
8416 "As a consequence of the B<read>(2), the signals are consumed, so that they "
8417 "are no longer pending for the process (i.e., will not be caught by signal "
8418 "handlers, and cannot be accepted using B<sigwaitinfo>(2))."
8419 msgstr ""
8420 "B<read>(2)  が行われた結果、シグナルは消費され、 これらのシグナルはそのプロセ"
8421 "スに対しては処理待ちではなくなる (つまり、シグナルハンドラで捕捉されることも"
8422 "なく、 B<sigwaitinfo>(2)  を使って受け取ることもできなくなる)。"
8423
8424 #. type: Plain text
8425 #: build/C/man2/signalfd.2:140
8426 msgid ""
8427 "If none of the signals in I<mask> is pending for the process, then the "
8428 "B<read>(2)  either blocks until one of the signals in I<mask> is generated "
8429 "for the process, or fails with the error B<EAGAIN> if the file descriptor "
8430 "has been made nonblocking."
8431 msgstr ""
8432 "I<mask> に指定されているシグナルがそのプロセスに対して一つも処理待ちでなけれ"
8433 "ば、 B<read>(2)  は、 I<mask> で指定されたシグナルのうちいずれか一つがそのプ"
8434 "ロセスに対して発生するまで 停止 (block) する、もしくはファイルディスクリプタ"
8435 "が非停止 (nonblocking)  に設定されている場合はエラー B<EAGAIN> で失敗する。"
8436
8437 #. type: Plain text
8438 #: build/C/man2/signalfd.2:153
8439 msgid ""
8440 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
8441 "B<poll>(2)  B<POLLIN> flag)  if one or more of the signals in I<mask> is "
8442 "pending for the process."
8443 msgstr ""
8444 "I<mask> に指定されたシグナルのうち一つ以上がそのプロセスに対して処理待ちであ"
8445 "れば、 ファイルディスクリプタは読み出し可能となる (B<select>(2)  の "
8446 "I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
8447
8448 #. type: Plain text
8449 #: build/C/man2/signalfd.2:160
8450 msgid ""
8451 "The signalfd file descriptor also supports the other file-descriptor "
8452 "multiplexing APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
8453 msgstr ""
8454 "signalfd ファイルディスクリプタは、これ以外のファイルディスクリプタ 多重 API "
8455 "である B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
8456
8457 #. type: Plain text
8458 #: build/C/man2/signalfd.2:165
8459 msgid ""
8460 "When the file descriptor is no longer required it should be closed.  When "
8461 "all file descriptors associated with the same signalfd object have been "
8462 "closed, the resources for object are freed by the kernel."
8463 msgstr ""
8464 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
8465 "る。 同じ signalfd オブジェクトに関連付けられたファイルディスクリプタが全て "
8466 "クローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
8467
8468 #. type: SS
8469 #: build/C/man2/signalfd.2:165
8470 #, no-wrap
8471 msgid "The signalfd_siginfo structure"
8472 msgstr "signalfd_siginfo 構造体"
8473
8474 #. type: Plain text
8475 #: build/C/man2/signalfd.2:171
8476 msgid ""
8477 "The format of the I<signalfd_siginfo> structure(s) returned by B<read>(2)s "
8478 "from a signalfd file descriptor is as follows:"
8479 msgstr ""
8480 "signalfd ファイルディスクリプタからの B<read>(2)  で返される "
8481 "I<signalfd_siginfo> 構造体のフォーマットは以下の通りである。"
8482
8483 #.  ssi_trapno is unused on most arches
8484 #.  FIXME Since Linux 2.6.37 there is 'uint16_t ssi_addr_lsb'
8485 #.  which is not yet documented
8486 #. type: Plain text
8487 #: build/C/man2/signalfd.2:198
8488 #, no-wrap
8489 msgid ""
8490 "struct signalfd_siginfo {\n"
8491 "    uint32_t ssi_signo;   /* Signal number */\n"
8492 "    int32_t  ssi_errno;   /* Error number (unused) */\n"
8493 "    int32_t  ssi_code;    /* Signal code */\n"
8494 "    uint32_t ssi_pid;     /* PID of sender */\n"
8495 "    uint32_t ssi_uid;     /* Real UID of sender */\n"
8496 "    int32_t  ssi_fd;      /* File descriptor (SIGIO) */\n"
8497 "    uint32_t ssi_tid;     /* Kernel timer ID (POSIX timers)\n"
8498 "    uint32_t ssi_band;    /* Band event (SIGIO) */\n"
8499 "    uint32_t ssi_overrun; /* POSIX timer overrun count */\n"
8500 "    uint32_t ssi_trapno;  /* Trap number that caused signal */\n"
8501 "    int32_t  ssi_status;  /* Exit status or signal (SIGCHLD) */\n"
8502 "    int32_t  ssi_int;     /* Integer sent by sigqueue(3) */\n"
8503 "    uint64_t ssi_ptr;     /* Pointer sent by sigqueue(3) */\n"
8504 "    uint64_t ssi_utime;   /* User CPU time consumed (SIGCHLD) */\n"
8505 "    uint64_t ssi_stime;   /* System CPU time consumed (SIGCHLD) */\n"
8506 "    uint64_t ssi_addr;    /* Address that generated signal\n"
8507 "                             (for hardware-generated signals) */\n"
8508 "    uint8_t  pad[I<X>];      /* Pad size to 128 bytes (allow for\n"
8509 "                              additional fields in the future) */\n"
8510 "};\n"
8511 msgstr ""
8512 "struct signalfd_siginfo {\n"
8513 "struct signalfd_siginfo {\n"
8514 "    uint32_t ssi_signo;   /* シグナル番号 */\n"
8515 "    int32_t  ssi_errno;   /* エラー番号 (未使用) */\n"
8516 "    int32_t  ssi_code;    /* シグナルコード */\n"
8517 "    uint32_t ssi_pid;     /* 送信元の PID */\n"
8518 "    uint32_t ssi_uid;     /* 送信元の実 UID */\n"
8519 "    int32_t  ssi_fd;      /* ファイルディスクリプタ (SIGIO) */\n"
8520 "    uint32_t ssi_tid;     /* カーネルタイマ ID (POSIX タイマ)\n"
8521 "    uint32_t ssi_band;    /* Band イベント (SIGIO) */\n"
8522 "    uint32_t ssi_overrun; /* POSIX タイマのオーバーラン回数 */\n"
8523 "    uint32_t ssi_trapno;  /* シグナルの原因となったトラップ番号 */\n"
8524 "    int32_t  ssi_status;  /* 終了ステータスかシグナル (SIGCHLD) */\n"
8525 "    int32_t  ssi_int;     /* sigqueue(3) から送られた整数 */\n"
8526 "    uint64_t ssi_ptr;     /* sigqueue(3) から送られたポインタ */\n"
8527 "    uint64_t ssi_utime;   /* 消費したユーザ CPU 時間 (SIGCHLD) */\n"
8528 "    uint64_t ssi_stime;   /* 消費したシステム CPU 時間 (SIGCHLD) */\n"
8529 "    uint64_t ssi_addr;    /* シグナルを生成したアドレス\n"
8530 "                             (ハードウェアが生成したシグナルの場合) */\n"
8531 "    uint8_t  pad[I<X>];      /* pad の大きさは 128 バイト\n"
8532 "                             (将来のフィールド追加用の場所の確保) */\n"
8533 "};\n"
8534
8535 #. type: Plain text
8536 #: build/C/man2/signalfd.2:221
8537 msgid ""
8538 "Each of the fields in this structure is analogous to the similarly named "
8539 "field in the I<siginfo_t> structure.  The I<siginfo_t> structure is "
8540 "described in B<sigaction>(2).  Not all fields in the returned "
8541 "I<signalfd_siginfo> structure will be valid for a specific signal; the set "
8542 "of valid fields can be determined from the value returned in the I<ssi_code> "
8543 "field.  This field is the analog of the I<siginfo_t> I<si_code> field; see "
8544 "B<sigaction>(2)  for details."
8545 msgstr ""
8546 "I<signalfd_siginfo> 構造体の各フィールドは、 I<siginfo_t> 構造体の同じような"
8547 "名前のフィールドと同様である。 I<siginfo_t> 構造体については B<sigaction>"
8548 "(2)  に説明がある。 返された I<signalfd_siginfo> 構造体の全てのフィールドがあ"
8549 "るシグナルに対して有効なわけではない。 どのフィールドが有効かは、 "
8550 "I<ssi_code> フィールドで返される値から判定することができる。 このフィールド"
8551 "は I<siginfo_t> の I<si_code> フィールドと同様である。詳細は B<sigaction>"
8552 "(2)  を参照。"
8553
8554 #. type: SS
8555 #: build/C/man2/signalfd.2:221 build/C/man2/timerfd_create.2:269
8556 #, no-wrap
8557 msgid "fork(2) semantics"
8558 msgstr "fork(2) での扱い"
8559
8560 #. type: Plain text
8561 #: build/C/man2/signalfd.2:229
8562 msgid ""
8563 "After a B<fork>(2), the child inherits a copy of the signalfd file "
8564 "descriptor.  A B<read>(2)  from the file descriptor in the child will return "
8565 "information about signals queued to the child."
8566 msgstr ""
8567 "B<fork>(2)  が行われると、子プロセスは signalfd ファイルディスクリプタのコ"
8568 "ピーを 継承する。 子プロセスでこのファイルディスクリプタから B<read>(2)  を行"
8569 "うと、子プロセスに対するキューに入っているシグナルに関する 情報が返される。"
8570
8571 #. type: SS
8572 #: build/C/man2/signalfd.2:229 build/C/man2/timerfd_create.2:281
8573 #, no-wrap
8574 msgid "execve(2) semantics"
8575 msgstr "execve(2) での扱い"
8576
8577 #. type: Plain text
8578 #: build/C/man2/signalfd.2:241
8579 msgid ""
8580 "Just like any other file descriptor, a signalfd file descriptor remains open "
8581 "across an B<execve>(2), unless it has been marked for close-on-exec (see "
8582 "B<fcntl>(2)).  Any signals that were available for reading before the "
8583 "B<execve>(2)  remain available to the newly loaded program.  (This is "
8584 "analogous to traditional signal semantics, where a blocked signal that is "
8585 "pending remains pending across an B<execve>(2).)"
8586 msgstr ""
8587 "他のファイルディスクリプタと全く同様に、 signalfd ファイルディスクリプタも "
8588 "B<execve>(2)  の前後でオープンされたままとなる。但し、そのファイルディスクリ"
8589 "プタに close-on-exec のマーク (B<fcntl>(2)  参照) が付いている場合はクローズ"
8590 "される。 B<execve>(2)  の前に読み出し可能となっていた全てのシグナルは新しく起"
8591 "動されたプログラム でも引き続き読み出し可能である (これは伝統的なシグナルの扱"
8592 "いと同じであり、 処理待ちのブロックされたシグナルは B<execve>(2)  の前後で処"
8593 "理待ちのままとなる)。"
8594
8595 #. type: SS
8596 #: build/C/man2/signalfd.2:241
8597 #, no-wrap
8598 msgid "Thread semantics"
8599 msgstr "スレッドでの扱い"
8600
8601 #. type: Plain text
8602 #: build/C/man2/signalfd.2:251
8603 msgid ""
8604 "The semantics of signalfd file descriptors in a multithreaded program mirror "
8605 "the standard semantics for signals.  In other words, when a thread reads "
8606 "from a signalfd file descriptor, it will read the signals that are directed "
8607 "to the thread itself and the signals that are directed to the process (i.e., "
8608 "the entire thread group).  (A thread will not be able to read signals that "
8609 "are directed to other threads in the process.)"
8610 msgstr ""
8611 "マルチスレッドプログラムにおける signalfd ファイルディスクリプタの扱いは シグ"
8612 "ナルの標準的な扱いと全く同じである。 言い換えると、あるスレッドが signalfd "
8613 "ファイルディスクリプタから 読み出しを行うと、そのスレッド自身宛てのシグナルと"
8614 "プロセス (すなわち スレッドグループ全体) 宛てのシグナルが読み出される。 (ス"
8615 "レッドは同じプロセスの他のスレッド宛てのシグナルを読み出すことはできない。)"
8616
8617 #. type: Plain text
8618 #: build/C/man2/signalfd.2:265
8619 msgid ""
8620 "On success, B<signalfd>()  returns a signalfd file descriptor; this is "
8621 "either a new file descriptor (if I<fd> was -1), or I<fd> if I<fd> was a "
8622 "valid signalfd file descriptor.  On error, -1 is returned and I<errno> is "
8623 "set to indicate the error."
8624 msgstr ""
8625 "成功すると、 B<signalfd>()  は signalfd ファイルディスクリプタを返す。 返され"
8626 "るファイルディスクリプタは、 I<fd> が -1 の場合は新規のファイルディスクリプタ"
8627 "であり、 I<fd> が有効な signalfd ファイルディスクリプタだった場合は I<fd> 自"
8628 "身である。 エラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
8629
8630 #. type: TP
8631 #: build/C/man2/signalfd.2:266 build/C/man2/timerfd_create.2:338
8632 #, no-wrap
8633 msgid "B<EBADF>"
8634 msgstr "B<EBADF>"
8635
8636 #. type: Plain text
8637 #: build/C/man2/signalfd.2:271
8638 msgid "The I<fd> file descriptor is not a valid file descriptor."
8639 msgstr "ファイルディスクリプタ I<fd> が有効なファイルディスクリプタでない。"
8640
8641 #.  or, the
8642 #.  .I sizemask
8643 #.  argument is not equal to
8644 #.  .IR sizeof(sigset_t) ;
8645 #. type: Plain text
8646 #: build/C/man2/signalfd.2:279
8647 msgid "I<fd> is not a valid signalfd file descriptor."
8648 msgstr "I<fd> が有効な signalfd ファイルディスクリプタではない。"
8649
8650 #. type: Plain text
8651 #: build/C/man2/signalfd.2:286 build/C/man2/timerfd_create.2:320
8652 msgid ""
8653 "I<flags> is invalid; or, in Linux 2.6.26 or earlier, I<flags> is nonzero."
8654 msgstr ""
8655 "I<flags> が無効である。もしくは、Linux 2.6.26 以前の場合には I<flags> が 0 以"
8656 "外である。"
8657
8658 #. type: Plain text
8659 #: build/C/man2/signalfd.2:289 build/C/man2/timerfd_create.2:323
8660 msgid "The per-process limit of open file descriptors has been reached."
8661 msgstr ""
8662 "オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。"
8663
8664 #. type: Plain text
8665 #: build/C/man2/signalfd.2:299
8666 msgid "There was insufficient memory to create a new signalfd file descriptor."
8667 msgstr ""
8668 "新しい signalfd ファイルディスクリプタを生成するのに十分なメモリがなかった。"
8669
8670 #.  signalfd() is in glibc 2.7, but reportedly does not build
8671 #. type: Plain text
8672 #: build/C/man2/signalfd.2:307
8673 msgid ""
8674 "B<signalfd>()  is available on Linux since kernel 2.6.22.  Working support "
8675 "is provided in glibc since version 2.8.  The B<signalfd4>()  system call "
8676 "(see NOTES) is available on Linux since kernel 2.6.27."
8677 msgstr ""
8678 "B<signalfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
8679 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<signalfd4>()  "
8680 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
8681 "る。"
8682
8683 #. type: Plain text
8684 #: build/C/man2/signalfd.2:312
8685 msgid "B<signalfd>()  and B<signalfd4>()  are Linux-specific."
8686 msgstr "B<signalfd>()  と B<signalfd4>()  は Linux 固有である。"
8687
8688 #. type: Plain text
8689 #: build/C/man2/signalfd.2:322
8690 msgid ""
8691 "The underlying Linux system call requires an additional argument, I<size_t "
8692 "sizemask>, which specifies the size of the I<mask> argument.  The glibc "
8693 "B<signalfd>()  wrapper function does not include this argument, since it "
8694 "provides the required value for the underlying system call."
8695 msgstr ""
8696 "実際の Linux のシステムコールでは I<size_t sizemask> という引き数が追加で必要"
8697 "である。この引き数で I<mask> のサイズを指定する。 glibc の B<signalfd>()  "
8698 "ラッパー関数にはこの引き数は含まれず、 ラッパー関数が必要な値を計算して内部で"
8699 "呼び出すシステムコールに提供する。"
8700
8701 #. type: Plain text
8702 #: build/C/man2/signalfd.2:336
8703 msgid ""
8704 "A process can create multiple signalfd file descriptors.  This makes it "
8705 "possible to accept different signals on different file descriptors.  (This "
8706 "may be useful if monitoring the file descriptors using B<select>(2), B<poll>"
8707 "(2), or B<epoll>(7): the arrival of different signals will make different "
8708 "descriptors ready.)  If a signal appears in the I<mask> of more than one of "
8709 "the file descriptors, then occurrences of that signal can be read (once) "
8710 "from any one of the descriptors."
8711 msgstr ""
8712 "一つのプロセスは複数の signalfd ファイルディスクリプタを生成することができ"
8713 "る。 これにより、異なるファイルディスクリプタで異なるシグナルを受け取ること"
8714 "が できる (この機能は B<select>(2), B<poll>(2), B<epoll>(7)  を使ってファイル"
8715 "ディスクリプタを監視する場合に有用かもしれない。 異なるシグナルが到着すると、"
8716 "異なるファイルディスクリプタが利用可能に なるからだ)。 一つのシグナルが二つ以"
8717 "上のファイルディスクリプタの I<mask> に含まれている場合、そのシグナルの発生は"
8718 "そのシグナルを I<mask> に含むファイルディスクリプタのうちいずれか一つから読み"
8719 "出すことができる。"
8720
8721 #. type: Plain text
8722 #: build/C/man2/signalfd.2:352
8723 msgid ""
8724 "There are two underlying Linux system calls: B<signalfd>()  and the more "
8725 "recent B<signalfd4>().  The former system call does not implement a I<flags> "
8726 "argument.  The latter system call implements the I<flags> values described "
8727 "above.  Starting with glibc 2.9, the B<signalfd>()  wrapper function will "
8728 "use B<signalfd4>()  where it is available."
8729 msgstr ""
8730 "下層にある Linux システムコールは二種類あり、 B<signalfd>()  と、もっと新し"
8731 "い B<signalfd4>()  である。 B<signalfd>()  は I<flags> 引き数を実装していな"
8732 "い。 B<signalfd4>()  では上記の値の I<flags> が実装されている。 glibc 2.9 以"
8733 "降では、 B<signalfd>()  のラッパー関数は、 B<signalfd4>()  が利用可能であれ"
8734 "ば、これを使用する。"
8735
8736 #.  The fix also was put into 2.6.24.5
8737 #. type: Plain text
8738 #: build/C/man2/signalfd.2:360
8739 msgid ""
8740 "In kernels before 2.6.25, the I<ssi_ptr> and I<ssi_int> fields are not "
8741 "filled in with the data accompanying a signal sent by B<sigqueue>(3)."
8742 msgstr ""
8743 "カーネル 2.6.25 より前では、 B<sigqueue>(3)  により送信されたシグナルと一緒に"
8744 "渡されるデータでは、フィールド I<ssi_ptr> と I<ssi_int> は設定されない。"
8745
8746 #. type: Plain text
8747 #: build/C/man2/signalfd.2:370
8748 msgid ""
8749 "The program below accepts the signals B<SIGINT> and B<SIGQUIT> via a "
8750 "signalfd file descriptor.  The program terminates after accepting a "
8751 "B<SIGQUIT> signal.  The following shell session demonstrates the use of the "
8752 "program:"
8753 msgstr ""
8754 "下記のプログラムは、シグナル B<SIGINT> と B<SIGQUIT> を signalfd ファイルディ"
8755 "スクリプタ経由で受信する。 シグナル B<SIGQUIT> 受信後にプログラムは終了す"
8756 "る。 以下に示すシェルセッションにこのプログラムの使い方を示す。"
8757
8758 #. type: Plain text
8759 #: build/C/man2/signalfd.2:381
8760 #, no-wrap
8761 msgid ""
8762 "$B< ./signalfd_demo>\n"
8763 "B<^C>                   # Control-C generates SIGINT\n"
8764 "Got SIGINT\n"
8765 "B<^C>\n"
8766 "Got SIGINT\n"
8767 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
8768 "Got SIGQUIT\n"
8769 "$\n"
8770 msgstr ""
8771 "$B< ./signalfd_demo>\n"
8772 "B<^C>                   # Control-C generates SIGINT\n"
8773 "Got SIGINT\n"
8774 "B<^C>\n"
8775 "Got SIGINT\n"
8776 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
8777 "Got SIGQUIT\n"
8778 "$\n"
8779
8780 #. type: Plain text
8781 #: build/C/man2/signalfd.2:391
8782 #, no-wrap
8783 msgid ""
8784 "#include E<lt>sys/signalfd.hE<gt>\n"
8785 "#include E<lt>signal.hE<gt>\n"
8786 "#include E<lt>unistd.hE<gt>\n"
8787 "#include E<lt>stdlib.hE<gt>\n"
8788 "#include E<lt>stdio.hE<gt>\n"
8789 msgstr ""
8790 "#include E<lt>sys/signalfd.hE<gt>\n"
8791 "#include E<lt>signal.hE<gt>\n"
8792 "#include E<lt>unistd.hE<gt>\n"
8793 "#include E<lt>stdlib.hE<gt>\n"
8794 "#include E<lt>stdio.hE<gt>\n"
8795
8796 #. type: Plain text
8797 #: build/C/man2/signalfd.2:402
8798 #, no-wrap
8799 msgid ""
8800 "int\n"
8801 "main(int argc, char *argv[])\n"
8802 "{\n"
8803 "    sigset_t mask;\n"
8804 "    int sfd;\n"
8805 "    struct signalfd_siginfo fdsi;\n"
8806 "    ssize_t s;\n"
8807 msgstr ""
8808 "int\n"
8809 "main(int argc, char *argv[])\n"
8810 "{\n"
8811 "    sigset_t mask;\n"
8812 "    int sfd;\n"
8813 "    struct signalfd_siginfo fdsi;\n"
8814 "    ssize_t s;\n"
8815
8816 #. type: Plain text
8817 #: build/C/man2/signalfd.2:406
8818 #, no-wrap
8819 msgid ""
8820 "    sigemptyset(&mask);\n"
8821 "    sigaddset(&mask, SIGINT);\n"
8822 "    sigaddset(&mask, SIGQUIT);\n"
8823 msgstr ""
8824 "    sigemptyset(&mask);\n"
8825 "    sigaddset(&mask, SIGINT);\n"
8826 "    sigaddset(&mask, SIGQUIT);\n"
8827
8828 #. type: Plain text
8829 #: build/C/man2/signalfd.2:409
8830 #, no-wrap
8831 msgid ""
8832 "    /* Block signals so that they aren\\(aqt handled\n"
8833 "       according to their default dispositions */\n"
8834 msgstr ""
8835 "    /* Block signals so that they aren\\(aqt handled\n"
8836 "       according to their default dispositions */\n"
8837
8838 #. type: Plain text
8839 #: build/C/man2/signalfd.2:412
8840 #, no-wrap
8841 msgid ""
8842 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
8843 "        handle_error(\"sigprocmask\");\n"
8844 msgstr ""
8845 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
8846 "        handle_error(\"sigprocmask\");\n"
8847
8848 #. type: Plain text
8849 #: build/C/man2/signalfd.2:416
8850 #, no-wrap
8851 msgid ""
8852 "    sfd = signalfd(-1, &mask, 0);\n"
8853 "    if (sfd == -1)\n"
8854 "        handle_error(\"signalfd\");\n"
8855 msgstr ""
8856 "    sfd = signalfd(-1, &mask, 0);\n"
8857 "    if (sfd == -1)\n"
8858 "        handle_error(\"signalfd\");\n"
8859
8860 #. type: Plain text
8861 #: build/C/man2/signalfd.2:421
8862 #, no-wrap
8863 msgid ""
8864 "    for (;;) {\n"
8865 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
8866 "        if (s != sizeof(struct signalfd_siginfo))\n"
8867 "            handle_error(\"read\");\n"
8868 msgstr ""
8869 "    for (;;) {\n"
8870 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
8871 "        if (s != sizeof(struct signalfd_siginfo))\n"
8872 "            handle_error(\"read\");\n"
8873
8874 #. type: Plain text
8875 #: build/C/man2/signalfd.2:432
8876 #, no-wrap
8877 msgid ""
8878 "        if (fdsi.ssi_signo == SIGINT) {\n"
8879 "            printf(\"Got SIGINT\\en\");\n"
8880 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
8881 "            printf(\"Got SIGQUIT\\en\");\n"
8882 "            exit(EXIT_SUCCESS);\n"
8883 "        } else {\n"
8884 "            printf(\"Read unexpected signal\\en\");\n"
8885 "        }\n"
8886 "    }\n"
8887 "}\n"
8888 msgstr ""
8889 "        if (fdsi.ssi_signo == SIGINT) {\n"
8890 "            printf(\"Got SIGINT\\en\");\n"
8891 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
8892 "            printf(\"Got SIGQUIT\\en\");\n"
8893 "            exit(EXIT_SUCCESS);\n"
8894 "        } else {\n"
8895 "            printf(\"Read unexpected signal\\en\");\n"
8896 "        }\n"
8897 "    }\n"
8898 "}\n"
8899
8900 #. type: Plain text
8901 #: build/C/man2/signalfd.2:446
8902 msgid ""
8903 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
8904 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
8905 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
8906 msgstr ""
8907 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
8908 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
8909 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
8910
8911 #. type: TH
8912 #: build/C/man3/sigpause.3:25
8913 #, no-wrap
8914 msgid "SIGPAUSE"
8915 msgstr "SIGPAUSE"
8916
8917 #. type: TH
8918 #: build/C/man3/sigpause.3:25
8919 #, no-wrap
8920 msgid "2010-09-12"
8921 msgstr "2010-09-12"
8922
8923 #. type: Plain text
8924 #: build/C/man3/sigpause.3:28
8925 msgid "sigpause - atomically release blocked signals and wait for interrupt"
8926 msgstr "sigpause - ブロックされたシグナルをアトミックに解放して割り込みを待つ"
8927
8928 #. type: Plain text
8929 #: build/C/man3/sigpause.3:33
8930 #, no-wrap
8931 msgid "B<int sigpause(int >I<sigmask>B<);  /* BSD */>\n"
8932 msgstr "B<int sigpause(int >I<sigmask>B<);  /* BSD */>\n"
8933
8934 #. type: Plain text
8935 #: build/C/man3/sigpause.3:35
8936 #, no-wrap
8937 msgid "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
8938 msgstr "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
8939
8940 #. type: Plain text
8941 #: build/C/man3/sigpause.3:41
8942 msgid "Don't use this function.  Use B<sigsuspend>(2)  instead."
8943 msgstr "この関数を使わないこと。 代わりに B<sigsuspend>(2)  を使うこと。"
8944
8945 #. type: Plain text
8946 #: build/C/man3/sigpause.3:48
8947 msgid ""
8948 "The function B<sigpause>()  is designed to wait for some signal.  It changes "
8949 "the process's signal mask (set of blocked signals), and then waits for a "
8950 "signal to arrive.  Upon arrival of a signal, the original signal mask is "
8951 "restored."
8952 msgstr ""
8953 "関数 B<sigpause>()  はシグナルを待つように設計されている。 この関数はプロセス"
8954 "のシグナルマスク (ブロックされたシグナルのセット) を変更し、 シグナルが到着す"
8955 "るのを待つ。 シグナルが到着すると、シグナルマスクは元に戻される。"
8956
8957 #. type: Plain text
8958 #: build/C/man3/sigpause.3:56
8959 msgid ""
8960 "If B<sigpause>()  returns, it was interrupted by a signal and the return "
8961 "value is -1 with I<errno> set to B<EINTR>."
8962 msgstr ""
8963 "B<sigpause>()  が返った場合、この関数はシグナルによって割り込まれている。 返"
8964 "り値は -1 で、 I<errno> は B<EINTR> に設定される。"
8965
8966 #. type: Plain text
8967 #: build/C/man3/sigpause.3:60
8968 msgid "The System V version of B<sigpause>()  is standardized in POSIX.1-2001."
8969 msgstr "System V 版の B<sigpause>()  は POSIX.1-2001 で標準化されている。"
8970
8971 #.  __xpg_sigpause: UNIX 95, spec 1170, SVID, SVr4, XPG
8972 #. type: Plain text
8973 #: build/C/man3/sigpause.3:77
8974 msgid ""
8975 "The classical BSD version of this function appeared in 4.2BSD.  It sets the "
8976 "process's signal mask to I<sigmask>.  UNIX 95 standardized the incompatible "
8977 "System V version of this function, which removes only the specified signal "
8978 "I<sig> from the process's signal mask.  The unfortunate situation with two "
8979 "incompatible functions with the same name was solved by the B<\\%sigsuspend>"
8980 "(2)  function, that takes a I<sigset_t *> argument (instead of an I<int>)."
8981 msgstr ""
8982 "この関数の古典的な BSD 版は 4.2BSD で登場した。 この関数はプロセスのシグナル"
8983 "マスクを I<sigmask> に設定する。 UNIX 95 では BSD 版と互換性のない System V "
8984 "版のこの関数が標準化された。 UNIX 95 版は、指定されたシグナル I<sig> をプロセ"
8985 "スのシグナルマスクから削除するだけである。 同じ名前で互換性のない 2 つの関数"
8986 "があるという不幸な事態は、 B<\\%sigsuspend>(2)  関数によって解消された。 この"
8987 "関数は (I<int> の代わりに)  B<sigset_t *> 引き数をとる。"
8988
8989 #. type: Plain text
8990 #: build/C/man3/sigpause.3:80
8991 msgid ""
8992 "On Linux, this routine is a system call only on the Sparc (sparc64)  "
8993 "architecture."
8994 msgstr ""
8995 "Linux では、このルーチンは Sparc (sparc64) アーキテクチャでのみ システムコー"
8996 "ルとなっている。"
8997
8998 #. type: Plain text
8999 #: build/C/man3/sigpause.3:82
9000 msgid "Libc4 and libc5 only know about the BSD version."
9001 msgstr "libc4 と libc5 には BSD 版しかない。"
9002
9003 #.  For the BSD version, one usually uses a zero
9004 #.  .I sigmask
9005 #.  to indicate that no signals are to be blocked.
9006 #. type: Plain text
9007 #: build/C/man3/sigpause.3:98
9008 msgid ""
9009 "Glibc uses the BSD version if the B<_BSD_SOURCE> feature test macro is "
9010 "defined and none of B<_POSIX_SOURCE>, B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, "
9011 "B<_GNU_SOURCE>, or B<_SVID_SOURCE> is defined.  Otherwise, the System V "
9012 "version is used."
9013 msgstr ""
9014 "機能検査マクロ B<_BSD_SOURCE> が定義され、 B<_POSIX_SOURCE>, "
9015 "B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, B<_GNU_SOURCE>, B<_SVID_SOURCE> のいず"
9016 "れも定義されていない場合、 glibc は BSD 版を使う。 それ以外の場合には、"
9017 "System V 版を使用する。"
9018
9019 #. type: Plain text
9020 #: build/C/man3/sigpause.3:106
9021 msgid ""
9022 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<sigblock>"
9023 "(3), B<sigvec>(3), B<feature_test_macros>(7)"
9024 msgstr ""
9025 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<sigblock>"
9026 "(3), B<sigvec>(3), B<feature_test_macros>(7)"
9027
9028 #. type: TH
9029 #: build/C/man2/sigpending.2:29
9030 #, no-wrap
9031 msgid "SIGPENDING"
9032 msgstr "SIGPENDING"
9033
9034 #. type: TH
9035 #: build/C/man2/sigpending.2:29
9036 #, no-wrap
9037 msgid "2008-10-04"
9038 msgstr "2008-10-04"
9039
9040 #. type: Plain text
9041 #: build/C/man2/sigpending.2:32
9042 msgid "sigpending - examine pending signals"
9043 msgstr "sigpending - 処理待ちのシグナルの検査"
9044
9045 #. type: Plain text
9046 #: build/C/man2/sigpending.2:36
9047 msgid "B<int sigpending(sigset_t *>I<set>B<);>"
9048 msgstr "B<int sigpending(sigset_t *>I<set>B<);>"
9049
9050 #. type: Plain text
9051 #: build/C/man2/sigpending.2:45
9052 msgid ""
9053 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9054 "_POSIX_SOURCE"
9055 msgstr ""
9056 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9057 "_POSIX_SOURCE"
9058
9059 #. type: Plain text
9060 #: build/C/man2/sigpending.2:53
9061 msgid ""
9062 "B<sigpending>()  returns the set of signals that are pending for delivery to "
9063 "the calling thread (i.e., the signals which have been raised while "
9064 "blocked).  The mask of pending signals is returned in I<set>."
9065 msgstr ""
9066 "B<sigpending>()  は、呼び出し元のスレッドへの配送を待っている (pending) シグ"
9067 "ナル集合 (すなわち、禁止中に発生したシグナル) を返す。 処理待ちのシグナルのマ"
9068 "スクが I<set> に格納される。"
9069
9070 #. type: Plain text
9071 #: build/C/man2/sigpending.2:56
9072 msgid "B<sigpending>()  returns 0 on success and -1 on error."
9073 msgstr "B<sigpending>()  は成功すれば 0 を返し、エラーならば -1 を返す。"
9074
9075 #. type: Plain text
9076 #: build/C/man2/sigpending.2:61
9077 msgid ""
9078 "I<set> points to memory which is not a valid part of the process address "
9079 "space."
9080 msgstr ""
9081 "I<set> が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。"
9082
9083 #. type: Plain text
9084 #: build/C/man2/sigpending.2:72
9085 msgid ""
9086 "The set of signals that is pending for a thread is the union of the set of "
9087 "signals that is pending for that thread and the set of signals that is "
9088 "pending for the process as a whole; see B<signal>(7)."
9089 msgstr ""
9090 "あるスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体への処理待ち"
9091 "のシグナル集合と、プロセス全体への処理待ちの シグナル集合をあわせたものであ"
9092 "る。 B<signal>(7)  参照。"
9093
9094 #. type: Plain text
9095 #: build/C/man2/sigpending.2:84
9096 msgid ""
9097 "In versions of glibc up to and including 2.2.1, there is a bug in the "
9098 "wrapper function for B<sigpending>()  which means that information about "
9099 "pending real-time signals is not correctly returned."
9100 msgstr ""
9101 "バージョン 2.2.1 以前の glibc では、 B<sigpending>()  のラッパー関数に、処理"
9102 "待ちのリアルタイムシグナルに関する情報が 正しく返されないというバグがある。"
9103
9104 #. type: Plain text
9105 #: build/C/man2/sigpending.2:92
9106 msgid ""
9107 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), B<sigsuspend>"
9108 "(2), B<sigsetops>(3), B<signal>(7)"
9109 msgstr ""
9110 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), B<sigsuspend>"
9111 "(2), B<sigsetops>(3), B<signal>(7)"
9112
9113 #. type: TH
9114 #: build/C/man2/sigprocmask.2:29
9115 #, no-wrap
9116 msgid "SIGPROCMASK"
9117 msgstr "SIGPROCMASK"
9118
9119 #. type: TH
9120 #: build/C/man2/sigprocmask.2:29
9121 #, no-wrap
9122 msgid "2012-04-15"
9123 msgstr "2012-04-15"
9124
9125 #. type: Plain text
9126 #: build/C/man2/sigprocmask.2:32
9127 msgid "sigprocmask - examine and change blocked signals"
9128 msgstr "sigprocmask - 禁止するシグナルの確認と変更"
9129
9130 #. type: Plain text
9131 #: build/C/man2/sigprocmask.2:37
9132 msgid ""
9133 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
9134 "*>I<oldset>B<);>"
9135 msgstr ""
9136 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
9137 "*>I<oldset>B<);>"
9138
9139 #. type: Plain text
9140 #: build/C/man2/sigprocmask.2:46
9141 msgid ""
9142 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9143 "_POSIX_SOURCE"
9144 msgstr ""
9145 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9146 "_POSIX_SOURCE"
9147
9148 #. type: Plain text
9149 #: build/C/man2/sigprocmask.2:55
9150 msgid ""
9151 "B<sigprocmask>()  is used to fetch and/or change the signal mask of the "
9152 "calling thread.  The signal mask is the set of signals whose delivery is "
9153 "currently blocked for the caller (see also B<signal>(7)  for more details)."
9154 msgstr ""
9155 "B<sigprocmask>()  を使うと、呼び出したスレッドのシグナルマスクの取得/変更がで"
9156 "きる。 シグナルマスクは、呼び出し元に対して現在配送が禁止されているシグナル"
9157 "の 集合のことである (詳細については B<signal>(7)  も参照のこと)。"
9158
9159 #. type: Plain text
9160 #: build/C/man2/sigprocmask.2:59
9161 msgid ""
9162 "The behavior of the call is dependent on the value of I<how>, as follows."
9163 msgstr "このコールの動作は I<how> の値によって決まる:"
9164
9165 #. type: TP
9166 #: build/C/man2/sigprocmask.2:59
9167 #, no-wrap
9168 msgid "B<SIG_BLOCK>"
9169 msgstr "B<SIG_BLOCK>"
9170
9171 #. type: Plain text
9172 #: build/C/man2/sigprocmask.2:64
9173 msgid ""
9174 "The set of blocked signals is the union of the current set and the I<set> "
9175 "argument."
9176 msgstr ""
9177 "禁止されたシグナルの集合は現在の値と I<set> 引き数を結合したものとなる。"
9178
9179 #. type: TP
9180 #: build/C/man2/sigprocmask.2:64
9181 #, no-wrap
9182 msgid "B<SIG_UNBLOCK>"
9183 msgstr "B<SIG_UNBLOCK>"
9184
9185 #. type: Plain text
9186 #: build/C/man2/sigprocmask.2:70
9187 msgid ""
9188 "The signals in I<set> are removed from the current set of blocked signals.  "
9189 "It is permissible to attempt to unblock a signal which is not blocked."
9190 msgstr ""
9191 "現在禁止されているシグナルの集合から I<set> にあるシグナルを取り除く。禁止さ"
9192 "れていないシグナルを取り除こうと することも認められている。"
9193
9194 #. type: TP
9195 #: build/C/man2/sigprocmask.2:70
9196 #, no-wrap
9197 msgid "B<SIG_SETMASK>"
9198 msgstr "B<SIG_SETMASK>"
9199
9200 #. type: Plain text
9201 #: build/C/man2/sigprocmask.2:74
9202 msgid "The set of blocked signals is set to the argument I<set>."
9203 msgstr "禁止されているシグナルの集合に I<set> 引き数を設定する。"
9204
9205 #. type: Plain text
9206 #: build/C/man2/sigprocmask.2:79
9207 msgid ""
9208 "If I<oldset> is non-NULL, the previous value of the signal mask is stored in "
9209 "I<oldset>."
9210 msgstr ""
9211 "I<oldset> が NULL でなければ、シグナルマスクの今までの値を I<oldset> に格納す"
9212 "る。"
9213
9214 #. type: Plain text
9215 #: build/C/man2/sigprocmask.2:88
9216 msgid ""
9217 "If I<set> is NULL, then the signal mask is unchanged (i.e., I<how> is "
9218 "ignored), but the current value of the signal mask is nevertheless returned "
9219 "in I<oldset> (if it is not NULL)."
9220 msgstr ""
9221 "I<set> が NULL であれば、シグナルマスクは変更されない (すなわち、 I<how> は無"
9222 "視される)。 I<set> の値にかかわらず、現在のシグナルマスクの値は I<oldset> に"
9223 "入れて返される (但し、 I<oldset> が NULL でない場合)。"
9224
9225 #. type: Plain text
9226 #: build/C/man2/sigprocmask.2:93
9227 msgid ""
9228 "The use of B<sigprocmask>()  is unspecified in a multithreaded process; see "
9229 "B<pthread_sigmask>(3)."
9230 msgstr ""
9231 "マルチスレッドのプロセスで B<sigprocmask>()  を使用した場合の動作は規定されて"
9232 "いない。 B<pthread_sigmask>(3)  を参照のこと。"
9233
9234 #. type: Plain text
9235 #: build/C/man2/sigprocmask.2:96
9236 msgid "B<sigprocmask>()  returns 0 on success and -1 on error."
9237 msgstr "B<sigprocmask>()  は成功すれば 0 を返し、エラーならば -1 を返す。"
9238
9239 #. type: Plain text
9240 #: build/C/man2/sigprocmask.2:104
9241 msgid ""
9242 "the I<set> or I<oldset> argument points outside the process's allocated "
9243 "address space."
9244 msgstr ""
9245 "引き数 I<set> か I<oldset> がプロセスに割り当てられた\n"
9246 "アドレス空間の外を指している。"
9247
9248 #. type: Plain text
9249 #: build/C/man2/sigprocmask.2:109
9250 msgid "The value specified in I<how> was invalid."
9251 msgstr "I<how> に指定された値が有効ではない。"
9252
9253 #. type: Plain text
9254 #: build/C/man2/sigprocmask.2:115
9255 msgid ""
9256 "It is not possible to block B<SIGKILL> or B<SIGSTOP>.  Attempts to do so are "
9257 "silently ignored."
9258 msgstr ""
9259 "B<SIGKILL> や B<SIGSTOP> を禁止することはできない。 禁止しようとしても黙って"
9260 "無視される。"
9261
9262 #. type: Plain text
9263 #: build/C/man2/sigprocmask.2:117
9264 msgid "Each of the threads in a process has its own signal mask."
9265 msgstr "プロセス内の各スレッドはそれぞれ専用のシグナルマスクを持つ。"
9266
9267 #. type: Plain text
9268 #: build/C/man2/sigprocmask.2:137
9269 msgid ""
9270 "If B<SIGBUS>, B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> are generated while they "
9271 "are blocked, the result is undefined, unless the signal was generated by "
9272 "B<kill>(2), B<sigqueue>(3), or B<raise>(3)."
9273 msgstr ""
9274 "シグナル B<SIGBUS>, B<SIGFPE>, B<SIGILL>, B<SIGSEGV> が禁止されている間に生成"
9275 "された場合で、 そのシグナルが B<kill>(2), B<sigqueue>(3), B<raise>(3)  によっ"
9276 "て生成されたものでないときには、 その後の動作は未定義である。"
9277
9278 #. type: Plain text
9279 #: build/C/man2/sigprocmask.2:152
9280 msgid ""
9281 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
9282 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
9283 "B<signal>(7)"
9284 msgstr ""
9285 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
9286 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
9287 "B<signal>(7)"
9288
9289 #. type: TH
9290 #: build/C/man3/sigqueue.3:28
9291 #, no-wrap
9292 msgid "SIGQUEUE"
9293 msgstr "SIGQUEUE"
9294
9295 #. type: TH
9296 #: build/C/man3/sigqueue.3:28
9297 #, no-wrap
9298 msgid "2012-03-25"
9299 msgstr "2012-03-25"
9300
9301 #. type: Plain text
9302 #: build/C/man3/sigqueue.3:31
9303 msgid "sigqueue - queue a signal and data to a process"
9304 msgstr "sigqueue - シグナルとデータをプロセスに送る"
9305
9306 #. type: Plain text
9307 #: build/C/man3/sigqueue.3:35
9308 msgid ""
9309 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
9310 ">I<value>B<);>"
9311 msgstr ""
9312 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
9313 ">I<value>B<);>"
9314
9315 #. type: Plain text
9316 #: build/C/man3/sigqueue.3:43
9317 msgid "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
9318 msgstr "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
9319
9320 #. type: Plain text
9321 #: build/C/man3/sigqueue.3:55
9322 msgid ""
9323 "B<sigqueue>()  sends the signal specified in I<sig> to the process whose PID "
9324 "is given in I<pid>.  The permissions required to send a signal are the same "
9325 "as for B<kill>(2).  As with B<kill>(2), the null signal (0) can be used to "
9326 "check if a process with a given PID exists."
9327 msgstr ""
9328 "B<sigqueue>()  は I<sig> で指定されたシグナルを、PID が I<pid> であるプロセス"
9329 "に送る。 シグナルを送るのに必要な権限は B<kill>(2)  と同じである。 B<kill>"
9330 "(2)  と同様に、ヌル・シグナル (0) を使って 指定した PID のプロセスが存在する"
9331 "かをチェックすることができる。"
9332
9333 #. type: Plain text
9334 #: build/C/man3/sigqueue.3:60
9335 msgid ""
9336 "The I<value> argument is used to specify an accompanying item of data "
9337 "(either an integer or a pointer value) to be sent with the signal, and has "
9338 "the following type:"
9339 msgstr ""
9340 "I<value> 引き数はシグナルと一緒に送るデータの付属アイテムを指定する。 "
9341 "I<value> は (整数またはポインタの値であり) 以下のような型である。"
9342
9343 #. type: Plain text
9344 #: build/C/man3/sigqueue.3:67
9345 #, no-wrap
9346 msgid ""
9347 "union sigval {\n"
9348 "    int   sival_int;\n"
9349 "    void *sival_ptr;\n"
9350 "};\n"
9351 msgstr ""
9352 "union sigval {\n"
9353 "    int   sival_int;\n"
9354 "    void *sival_ptr;\n"
9355 "};\n"
9356
9357 #. type: Plain text
9358 #: build/C/man3/sigqueue.3:83
9359 msgid ""
9360 "If the receiving process has installed a handler for this signal using the "
9361 "B<SA_SIGINFO> flag to B<sigaction>(2), then it can obtain this data via the "
9362 "I<si_value> field of the I<siginfo_t> structure passed as the second "
9363 "argument to the handler.  Furthermore, the I<si_code> field of that "
9364 "structure will be set to B<SI_QUEUE>."
9365 msgstr ""
9366 "受取先のプロセスに、このシグナルに対するハンドラを (B<sigaction>(2)  に "
9367 "B<SA_SIGINFO> を指定して) インストールしておくと、 そのハンドラの第 2 引き数"
9368 "に渡される I<siginfo_t> 構造体の I<si_value> フィールドによって、このデータを"
9369 "取得できる。 さらに、この構造体の I<si_code> フィールドは B<SI_QUEUE> に設定"
9370 "される。"
9371
9372 #. type: Plain text
9373 #: build/C/man3/sigqueue.3:91
9374 msgid ""
9375 "On success, B<sigqueue>()  returns 0, indicating that the signal was "
9376 "successfully queued to the receiving process.  Otherwise -1 is returned and "
9377 "I<errno> is set to indicate the error."
9378 msgstr ""
9379 "成功した場合、 B<sigqueue>()  は 0 を返す。 これは受け取り側プロセスの待ち行"
9380 "列に シグナルが正しく入れられたことを示す。 失敗した場合は -1 が返され、 "
9381 "I<errno> がエラーを表す値に設定される。"
9382
9383 #. type: Plain text
9384 #: build/C/man3/sigqueue.3:102
9385 msgid "I<sig> was invalid."
9386 msgstr "I<sig> が不正である。"
9387
9388 #. type: Plain text
9389 #: build/C/man3/sigqueue.3:108
9390 msgid ""
9391 "The process does not have permission to send the signal to the receiving "
9392 "process.  For the required permissions, see B<kill>(2)."
9393 msgstr ""
9394 "このプロセスには、受け取り側プロセスにシグナルを送る権限がない。 必要な権限に"
9395 "ついては、 B<kill>(2)  を参照すること。"
9396
9397 #. type: Plain text
9398 #: build/C/man3/sigqueue.3:112
9399 msgid "No process has a PID matching I<pid>."
9400 msgstr "I<pid> にマッチする PID のプロセスがない。"
9401
9402 #. type: Plain text
9403 #: build/C/man3/sigqueue.3:114
9404 msgid "This system call first appeared in Linux 2.2."
9405 msgstr "このシステムコールは Linux 2.2 で初めて登場した。"
9406
9407 #. type: Plain text
9408 #: build/C/man3/sigqueue.3:124
9409 msgid ""
9410 "If this function results in the sending of a signal to the process that "
9411 "invoked it, and that signal was not blocked by the calling thread, and no "
9412 "other threads were willing to handle this signal (either by having it "
9413 "unblocked, or by waiting for it using B<sigwait>(3)), then at least some "
9414 "signal must be delivered to this thread before this function returns."
9415 msgstr ""
9416 "この関数を呼び出したプロセスにこの関数がシグナルを送ったときに、 シグナルが呼"
9417 "び出し側スレッドにブロックされず、 かつ (シグナルがブロックされなかった、また"
9418 "は B<sigwait>(3)  を使用するのを待っていることにより)  このシグナルを扱うス"
9419 "レッドが何もない場合は、 この関数がリターンする前に、少なくとも そのスレッド"
9420 "に対してシグナルが配送されていなければならない。"
9421
9422 #. type: Plain text
9423 #: build/C/man3/sigqueue.3:139
9424 msgid ""
9425 "On Linux, this function is implemented using the B<rt_sigqueueinfo>(2)  "
9426 "system call.  The system call differs in its third argument, which is the "
9427 "I<siginfo_t> structure that will be supplied to the receiving process's "
9428 "signal handler or returned by the receiving process's B<sigtimedwait>(2)  "
9429 "call.  Inside the glibc B<sigqueue>()  wrapper, this argument, I<uinfo>, is "
9430 "initialized as follows:"
9431 msgstr ""
9432 "Linux では、この関数は B<rt_sigqueueinfo>(2)  システムコールを使って実装され"
9433 "ている。 両者には 3 番目の引き数に違いがあり、 B<rt_sigqueueinfo>(2)  では 3 "
9434 "番目の引き数は I<siginfo_t> 構造体である。 I<siginfo_t> 構造体は、シグナルを"
9435 "受信するプロセスのシグナルハンドラに渡されたり、 シグナル受信プロセスの "
9436 "B<sigtimedwait>(2)  システムコールから返されたりする。 glibc の B<sigqueue>"
9437 "()  ラッパー関数内部では、 この引き数 I<uinfo> は以下のように初期化される。"
9438
9439 #. type: Plain text
9440 #: build/C/man3/sigqueue.3:147
9441 #, no-wrap
9442 msgid ""
9443 "uinfo.si_signo = sig;      /* argument supplied to sigqueue() */\n"
9444 "uinfo.si_code = SI_QUEUE;\n"
9445 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
9446 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
9447 "uinfo.si_value = val;      /* argument supplied to sigqueue() */\n"
9448 msgstr ""
9449 "uinfo.si_signo = sig;      /* argument supplied to sigqueue() */\n"
9450 "uinfo.si_code = SI_QUEUE;\n"
9451 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
9452 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
9453 "uinfo.si_value = val;      /* argument supplied to sigqueue() */\n"
9454
9455 #. type: Plain text
9456 #: build/C/man3/sigqueue.3:157
9457 msgid ""
9458 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
9459 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
9460 msgstr ""
9461 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
9462 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
9463
9464 #. type: TH
9465 #: build/C/man2/sigreturn.2:29
9466 #, no-wrap
9467 msgid "SIGRETURN"
9468 msgstr "SIGRETURN"
9469
9470 #. type: TH
9471 #: build/C/man2/sigreturn.2:29
9472 #, no-wrap
9473 msgid "2008-06-26"
9474 msgstr "2008-06-26"
9475
9476 #. type: Plain text
9477 #: build/C/man2/sigreturn.2:32
9478 msgid "sigreturn - return from signal handler and cleanup stack frame"
9479 msgstr "sigreturn - シグナル・ハンドラから返り、スタックを掃除する"
9480
9481 #. type: Plain text
9482 #: build/C/man2/sigreturn.2:34
9483 msgid "B<int sigreturn(unsigned long >I<__unused>B<);>"
9484 msgstr "B<int sigreturn(unsigned long >I<__unused>B<);>"
9485
9486 #. type: Plain text
9487 #: build/C/man2/sigreturn.2:42
9488 msgid ""
9489 "When the Linux kernel creates the stack frame for a signal handler, a call "
9490 "to B<sigreturn>()  is inserted into the stack frame so that upon return from "
9491 "the signal handler, B<sigreturn>()  will be called."
9492 msgstr ""
9493 "Linux カーネルは、 シグナル・ハンドラ用にスタック・フレームを作成する際、 "
9494 "B<sigreturn>()  をスタック・フレームに挿入し、シグナル・ハンドラが返るときに "
9495 "B<sigreturn>()  が呼ばれるようにする。"
9496
9497 #. type: Plain text
9498 #: build/C/man2/sigreturn.2:53
9499 msgid ""
9500 "This B<sigreturn>()  call undoes everything that was done\\(emchanging the "
9501 "process's signal mask, switching stacks (see B<sigaltstack>(2))\\(emin order "
9502 "to invoke the signal handler: it restores the process's signal mask, "
9503 "switches stacks, and restores the process's context (registers, processor "
9504 "flags), so that the process directly resumes execution at the point where it "
9505 "was interrupted by the signal."
9506 msgstr ""
9507 "B<sigreturn>()  は、シグナル・ハンドラを起動するために行ったことの全て \\(em "
9508 "プロセスのシグナルマスクの変更、スタックの切り替え (B<sigaltstack>(2)  参照) "
9509 "\\(em の取り消しを行う。 プロセスのシグナルマスクの復元、スタックの切り替"
9510 "え、 プロセスのコンテキスト (レジスタ、プロセッサ・フラグ) の復元を行い、 プ"
9511 "ロセスがシグナルにより割り込まれた場所からそのまま実行を 再開できるようにす"
9512 "る。"
9513
9514 #. type: Plain text
9515 #: build/C/man2/sigreturn.2:56
9516 msgid "B<sigreturn>()  never returns."
9517 msgstr "B<sigreturn>()  が返ることはない。"
9518
9519 #. type: SH
9520 #: build/C/man2/sigreturn.2:56
9521 #, no-wrap
9522 msgid "FILES"
9523 msgstr "ファイル"
9524
9525 #. type: Plain text
9526 #: build/C/man2/sigreturn.2:58
9527 msgid "/usr/src/linux/arch/i386/kernel/signal.c"
9528 msgstr "/usr/src/linux/arch/i386/kernel/signal.c"
9529
9530 #. type: Plain text
9531 #: build/C/man2/sigreturn.2:60
9532 msgid "/usr/src/linux/arch/alpha/kernel/entry.S"
9533 msgstr "/usr/src/linux/arch/alpha/kernel/entry.S"
9534
9535 #. type: Plain text
9536 #: build/C/man2/sigreturn.2:64
9537 msgid ""
9538 "B<sigreturn>()  is specific to Linux and should not be used in programs "
9539 "intended to be portable."
9540 msgstr ""
9541 "B<sigreturn>()  は Linux 特有であり、移植を意図したプログラムでは使用してはい"
9542 "けない。"
9543
9544 #. type: Plain text
9545 #: build/C/man2/sigreturn.2:74
9546 msgid ""
9547 "The B<sigreturn>()  call is used by the kernel to implement signal "
9548 "handlers.  It should B<never> be called directly.  Better yet, the specific "
9549 "use of the I<__unused> argument varies depending on the architecture."
9550 msgstr ""
9551 "B<sigreturn>()  コールは、シグナル・ハンドラを実装するためにカーネルにより使"
9552 "用される。 これを直接呼び出しては B<決して> いけない。さらに I<__unused> 引き"
9553 "数がどのように使われるかはそのアーキテクチャに依存して変化する。"
9554
9555 #. type: Plain text
9556 #: build/C/man2/sigreturn.2:79
9557 msgid "B<kill>(2), B<sigaltstack>(2), B<signal>(2), B<signal>(7)"
9558 msgstr "B<kill>(2), B<sigaltstack>(2), B<signal>(2), B<signal>(7)"
9559
9560 #. type: TH
9561 #: build/C/man3/sigset.3:26
9562 #, no-wrap
9563 msgid "SIGSET"
9564 msgstr "SIGSET"
9565
9566 #. type: Plain text
9567 #: build/C/man3/sigset.3:29
9568 msgid "sigset, sighold, sigrelse, sigignore - System V signal API"
9569 msgstr "sigset, sighold, sigrelse, sigignore - System V 版シグナル API"
9570
9571 #. type: Plain text
9572 #: build/C/man3/sigset.3:35
9573 msgid "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
9574 msgstr "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
9575
9576 #. type: Plain text
9577 #: build/C/man3/sigset.3:37
9578 msgid "B<int sighold(int >I<sig>B<);>"
9579 msgstr "B<int sighold(int >I<sig>B<);>"
9580
9581 #. type: Plain text
9582 #: build/C/man3/sigset.3:39
9583 msgid "B<int sigrelse(int >I<sig>B<);>"
9584 msgstr "B<int sigrelse(int >I<sig>B<);>"
9585
9586 #. type: Plain text
9587 #: build/C/man3/sigset.3:41
9588 msgid "B<int sigignore(int >I<sig>B<);>"
9589 msgstr "B<int sigignore(int >I<sig>B<);>"
9590
9591 #. type: Plain text
9592 #: build/C/man3/sigset.3:52
9593 msgid "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
9594 msgstr "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
9595
9596 #. type: Plain text
9597 #: build/C/man3/sigset.3:56
9598 msgid ""
9599 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
9600 msgstr ""
9601 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
9602
9603 #. type: Plain text
9604 #: build/C/man3/sigset.3:65
9605 msgid ""
9606 "These functions are provided in glibc as a compatibility interface for "
9607 "programs that make use of the historical System V signal API.  This API is "
9608 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
9609 "B<sigprocmask>(2), etc.)"
9610 msgstr ""
9611 "これらの関数は、昔ながらの System V 版シグナル API を使用しているプログラム "
9612 "に対して互換性のあるインタフェースを glibc で提供するものである。 この API は"
9613 "過去のものであり、新しいアプリケーションでは POSIX シグナル API (B<sigaction>"
9614 "(2), B<sigprocmask>(2)  など) を使用すべきである。"
9615
9616 #. type: Plain text
9617 #: build/C/man3/sigset.3:74
9618 msgid ""
9619 "The B<sigset>()  function modifies the disposition of the signal I<sig>.  "
9620 "The I<disp> argument can be the address of a signal handler function, or one "
9621 "of the following constants:"
9622 msgstr ""
9623 "関数 B<sigset>()  はシグナル I<sig> のシグナルハンドラの動作を変更する。 "
9624 "I<disp> 引き数には、シグナルハンドラ関数のアドレスか、 以下の定数のいずれか一"
9625 "つを指定できる。"
9626
9627 #. type: TP
9628 #: build/C/man3/sigset.3:74
9629 #, no-wrap
9630 msgid "B<SIG_DFL>"
9631 msgstr "B<SIG_DFL>"
9632
9633 #. type: Plain text
9634 #: build/C/man3/sigset.3:79
9635 msgid "Reset the disposition of I<sig> to the default."
9636 msgstr "I<sig> の動作をデフォルトにリセットする。"
9637
9638 #. type: TP
9639 #: build/C/man3/sigset.3:79
9640 #, no-wrap
9641 msgid "B<SIG_IGN>"
9642 msgstr "B<SIG_IGN>"
9643
9644 #. type: Plain text
9645 #: build/C/man3/sigset.3:83
9646 msgid "Ignore I<sig>."
9647 msgstr "I<sig> を無視する。"
9648
9649 #. type: TP
9650 #: build/C/man3/sigset.3:83
9651 #, no-wrap
9652 msgid "B<SIG_HOLD>"
9653 msgstr "B<SIG_HOLD>"
9654
9655 #. type: Plain text
9656 #: build/C/man3/sigset.3:90
9657 msgid ""
9658 "Add I<sig> to the process's signal mask, but leave the disposition of I<sig> "
9659 "unchanged."
9660 msgstr ""
9661 "そのプロセスのシグナルマスクに I<sig> を追加するが、 I<sig> の動作は変更しな"
9662 "い。"
9663
9664 #. type: Plain text
9665 #: build/C/man3/sigset.3:96
9666 msgid ""
9667 "If I<disp> specifies the address of a signal handler, then I<sig> is added "
9668 "to the process's signal mask during execution of the handler."
9669 msgstr ""
9670 "I<disp> にシグナルハンドラのアドレスが指定された場合、 シグナルハンドラの実行"
9671 "中は、そのプロセスのシグナルマスクに I<sig> が追加される。"
9672
9673 #. type: Plain text
9674 #: build/C/man3/sigset.3:104
9675 msgid ""
9676 "If I<disp> was specified as a value other than B<SIG_HOLD>, then I<sig> is "
9677 "removed from the process's signal mask."
9678 msgstr ""
9679 "I<disp> に B<SIG_HOLD> 以外の値が指定された場合、 そのプロセスのシグナルマス"
9680 "クから I<sig> が削除される。"
9681
9682 #. type: Plain text
9683 #: build/C/man3/sigset.3:110 build/C/man3/sigvec.3:87
9684 msgid "The dispositions for B<SIGKILL> and B<SIGSTOP> cannot be changed."
9685 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> に対する動作は変更できない。"
9686
9687 #. type: Plain text
9688 #: build/C/man3/sigset.3:116
9689 msgid ""
9690 "The B<sighold>()  function adds I<sig> to the calling process's signal mask."
9691 msgstr ""
9692 "関数 B<sighold>()  は、呼び出し元プロセスのシグナルマスクに I<sig> を追加す"
9693 "る。"
9694
9695 #. type: Plain text
9696 #: build/C/man3/sigset.3:122
9697 msgid ""
9698 "The B<sigrelse>()  function removes I<sig> from the calling process's signal "
9699 "mask."
9700 msgstr ""
9701 "関数 B<sigrelse>()  は、呼び出し元プロセスのシグナルマスクから I<sig> を削除"
9702 "する。"
9703
9704 #. type: Plain text
9705 #: build/C/man3/sigset.3:129
9706 msgid ""
9707 "The B<sigignore>()  function sets the disposition of I<sig> to B<SIG_IGN>."
9708 msgstr "関数 B<sigignore>()  は、 I<sig> の動作を B<SIG_IGN> に設定する。"
9709
9710 #. type: Plain text
9711 #: build/C/man3/sigset.3:145
9712 msgid ""
9713 "On success, B<sigset>()  returns B<SIG_HOLD> if I<sig> was blocked before "
9714 "the call, or the signal's previous disposition if it was not blocked before "
9715 "the call.  On error, B<sigset>()  returns -1, with I<errno> set to indicate "
9716 "the error.  (But see BUGS below.)"
9717 msgstr ""
9718 "B<sigset>()  は成功すると、 呼び出し前に I<sig> がブロックされていた場合には "
9719 "B<SIG_HOLD> を返し、 ブロックされていなかった場合には 変更前のそのシグナルの"
9720 "動作を返す。 エラーの場合、 B<sigset>()  は -1 を返し、 I<errno> にエラーを示"
9721 "す値をセットする。 但し、以下の「バグ」の節も参照のこと。"
9722
9723 #. type: Plain text
9724 #: build/C/man3/sigset.3:154
9725 msgid ""
9726 "The B<sighold>(), B<sigrelse>(), and B<sigignore>()  functions return 0 on "
9727 "success; on error, these functions return -1 and set I<errno> to indicate "
9728 "the error."
9729 msgstr ""
9730 "関数 B<sighold>(), B<sigrelse>(), B<sigignore>()  は成功すると 0 を返す。エ"
9731 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値をセットする。"
9732
9733 #. type: Plain text
9734 #: build/C/man3/sigset.3:161
9735 msgid ""
9736 "For B<sigset>()  see the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
9737 msgstr ""
9738 "B<sigset>()  に関しては、 B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」"
9739 "の節を参照。"
9740
9741 #. type: Plain text
9742 #: build/C/man3/sigset.3:168
9743 msgid ""
9744 "For B<sighold>()  and B<sigrelse>()  see the ERRORS under B<sigprocmask>(2)."
9745 msgstr ""
9746 "B<sighold>()  と B<sigrelse>()  に関しては、 B<sigprocmask>(2)  の「エラー」"
9747 "の節を参照。"
9748
9749 #. type: Plain text
9750 #: build/C/man3/sigset.3:173
9751 msgid "For B<sigignore>(), see the errors under B<sigaction>(2)."
9752 msgstr "B<sigignore>()  に関しては、 B<sigaction>(2)  の「エラー」の節を参照。"
9753
9754 #. type: Plain text
9755 #: build/C/man3/sigset.3:190
9756 msgid ""
9757 "SVr4, POSIX.1-2001.  These functions are obsolete: do not use them in new "
9758 "programs.  POSIX.1-2008 marks B<sighold>(), B<sigignore>(), B<sigpause>(), "
9759 "B<sigrelse>(), and B<sigset>()  as obsolete, recommending the use of "
9760 "B<sigaction>(2), B<sigprocmask>(2), B<pthread_sigmask>(3), and B<sigsuspend>"
9761 "(2)  instead."
9762 msgstr ""
9763 "SVr4, POSIX.1-2001.  これらの関数は廃止予定である。新しいプログラムでは使用し"
9764 "ないこと。 POSIX.1-2008 は、 B<sighold>(), B<sigignore>(), B<sigpause>(), "
9765 "B<sigrelse>(), B<sigset>()  を廃止予定としている。 代わりに、 B<sigaction>"
9766 "(2), B<sigprocmask>(2), B<pthread_sigmask>(3), B<sigsuspend>(2)  の使用が推奨"
9767 "されている。"
9768
9769 #. type: Plain text
9770 #: build/C/man3/sigset.3:192
9771 msgid "These functions appeared in glibc version 2.1."
9772 msgstr "これらの関数は glibc 2.1 で登場した。"
9773
9774 #. type: Plain text
9775 #: build/C/man3/sigset.3:198
9776 msgid ""
9777 "The I<sighandler_t> type is a GNU extension; it is only used on this page to "
9778 "make the B<sigset>()  prototype more easily readable."
9779 msgstr ""
9780 "I<sighandler_t> 型は GNU による拡張であり、この man page で B<sigset>()  のプ"
9781 "ロトタイプをより読みやすくするために使われているだけである。"
9782
9783 #. type: Plain text
9784 #: build/C/man3/sigset.3:206
9785 msgid ""
9786 "The B<sigset>()  function provides reliable signal handling semantics (as "
9787 "when calling B<sigaction>(2)  with I<sa_mask> equal to 0)."
9788 msgstr ""
9789 "関数 B<sigset>()  は信頼性のあるシグナル処理機構を提供する (I<sa_mask> を 0 "
9790 "で B<sigaction>(2)  を呼び出したときと同様)。"
9791
9792 #. type: Plain text
9793 #: build/C/man3/sigset.3:224
9794 msgid ""
9795 "On System V, the B<signal>()  function provides unreliable semantics (as "
9796 "when calling B<sigaction>(2)  with I<sa_mask> equal to I<SA_RESETHAND | "
9797 "SA_NODEFER>).  On BSD, B<signal>()  provides reliable semantics.  "
9798 "POSIX.1-2001 leaves these aspects of B<signal>()  unspecified.  See B<signal>"
9799 "(2)  for further details."
9800 msgstr ""
9801 "System V では、関数 B<signal>()  が提供する処理機構は信頼性のないものである "
9802 "(I<sa_mask> を I<SA_RESETHAND | SA_NODEFER> として B<sigaction>(2)  を呼び出"
9803 "したときと同様)。 BSD では、 B<signal>()  は信頼性のある処理機構を提供する。 "
9804 "POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままとなっている。 さら"
9805 "なる詳細については B<signal>(2)  を参照。"
9806
9807 #. type: Plain text
9808 #: build/C/man3/sigset.3:232 build/C/man3/sigvec.3:252
9809 msgid ""
9810 "In order to wait for a signal, BSD and System V both provided a function "
9811 "named B<sigpause>(3), but this function has a different argument on the two "
9812 "systems.  See B<sigpause>(3)  for details."
9813 msgstr ""
9814 "BSD と System V のどちらのシステムでも シグナルを待つために、 B<sigpause>"
9815 "(3)  という名前の関数が提供されているが、 この関数の引き数は両方のシステムで"
9816 "異なる。 詳細は B<sigpause>(3)  を参照。"
9817
9818 #. type: Plain text
9819 #: build/C/man3/sigset.3:241
9820 msgid ""
9821 "In versions of glibc before 2.2, B<sigset>()  did not unblock I<sig> if "
9822 "I<disp> was specified as a value other than B<SIG_HOLD>."
9823 msgstr ""
9824 "2.2 より前のバージョンの glibc では、 I<disp> に B<SIG_HOLD> 以外の値が指定さ"
9825 "れた場合、 I<sig> のブロック解除を行っていなかった。"
9826
9827 #.  See http://sourceware.org/bugzilla/show_bug.cgi?id=1951
9828 #. type: Plain text
9829 #: build/C/man3/sigset.3:266
9830 msgid ""
9831 "In versions of glibc before 2.5, B<sigset>()  does not correctly return the "
9832 "previous disposition of the signal in two cases.  First, if I<disp> is "
9833 "specified as B<SIG_HOLD>, then a successful B<sigset>()  always returns "
9834 "B<SIG_HOLD>.  Instead, it should return the previous disposition of the "
9835 "signal (unless the signal was blocked, in which case B<SIG_HOLD> should be "
9836 "returned).  Second, if the signal is currently blocked, then the return "
9837 "value of a successful B<sigset>()  should be B<SIG_HOLD>.  Instead, the "
9838 "previous disposition of the signal is returned.  These problems have been "
9839 "fixed since glibc 2.5."
9840 msgstr ""
9841 "2.3.5 以前の全てのバージョンの glibc では、 B<sigset>()  が変更前のシグナルの"
9842 "動作を正しく返さない場合が 2つある。 一つめは、 I<disp> に B<SIG_HOLD> が指定"
9843 "されると、成功した場合 B<sigset>()  は常に B<SIG_HOLD> を返すことである。 正"
9844 "しくは、(シグナルがブロックされていなかった場合には)  変更前のシグナルの動作"
9845 "を返すべきである (シグナルがブロックされていた場合には、 B<SIG_HOLD> が返され"
9846 "る)。 もう一つは、シグナルが現在ブロックされている場合には、 成功した場合の "
9847 "B<sigset>()  の返り値は B<SIG_HOLD> になるべきであるが、実際には 変更前のシグ"
9848 "ナルの動作が返されることである。 これらの問題は glibc 2.5 以降で修正されてい"
9849 "る。"
9850
9851 #. type: Plain text
9852 #: build/C/man3/sigset.3:276
9853 msgid ""
9854 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9855 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
9856 msgstr ""
9857 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9858 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
9859
9860 #. type: TH
9861 #: build/C/man3/sigsetops.3:31
9862 #, no-wrap
9863 msgid "SIGSETOPS"
9864 msgstr "SIGSETOPS"
9865
9866 #. type: TH
9867 #: build/C/man3/sigsetops.3:31
9868 #, no-wrap
9869 msgid "2008-09-01"
9870 msgstr "2008-09-01"
9871
9872 #. type: Plain text
9873 #: build/C/man3/sigsetops.3:35
9874 msgid ""
9875 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX signal "
9876 "set operations."
9877 msgstr ""
9878 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX シグナル集"
9879 "合の操作"
9880
9881 #. type: Plain text
9882 #: build/C/man3/sigsetops.3:39
9883 msgid "B<int sigemptyset(sigset_t *>I<set>B<);>"
9884 msgstr "B<int sigemptyset(sigset_t *>I<set>B<);>"
9885
9886 #. type: Plain text
9887 #: build/C/man3/sigsetops.3:41
9888 msgid "B<int sigfillset(sigset_t *>I<set>B<);>"
9889 msgstr "B<int sigfillset(sigset_t *>I<set>B<);>"
9890
9891 #. type: Plain text
9892 #: build/C/man3/sigsetops.3:43
9893 msgid "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9894 msgstr "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9895
9896 #. type: Plain text
9897 #: build/C/man3/sigsetops.3:45
9898 msgid "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9899 msgstr "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9900
9901 #. type: Plain text
9902 #: build/C/man3/sigsetops.3:47
9903 msgid "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
9904 msgstr "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
9905
9906 #. type: Plain text
9907 #: build/C/man3/sigsetops.3:59
9908 msgid ""
9909 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
9910 "B<sigismember>():"
9911 msgstr ""
9912 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
9913 "B<sigismember>():"
9914
9915 #. type: Plain text
9916 #: build/C/man3/sigsetops.3:61
9917 msgid "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
9918 msgstr "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
9919
9920 #. type: Plain text
9921 #: build/C/man3/sigsetops.3:65
9922 msgid "These functions allow the manipulation of POSIX signal sets."
9923 msgstr "これらの関数は POSIX シグナル集合(signal set)を操作するため使用する。"
9924
9925 #. type: Plain text
9926 #: build/C/man3/sigsetops.3:70
9927 msgid ""
9928 "B<sigemptyset>()  initializes the signal set given by I<set> to empty, with "
9929 "all signals excluded from the set."
9930 msgstr ""
9931 "B<sigemptyset>()  は I<set> で与えられたシグナル集合を空に初期化し、シグナル"
9932 "が一つも 含まれていない状態にする。"
9933
9934 #. type: Plain text
9935 #: build/C/man3/sigsetops.3:75
9936 msgid "B<sigfillset>()  initializes I<set> to full, including all signals."
9937 msgstr ""
9938 "B<sigfillset>()  は I<set> で与えられたシグナル集合が全てのシグナルを含むよう"
9939 "にする。"
9940
9941 #. type: Plain text
9942 #: build/C/man3/sigsetops.3:83
9943 msgid ""
9944 "B<sigaddset>()  and B<sigdelset>()  add and delete respectively signal "
9945 "I<signum> from I<set>."
9946 msgstr ""
9947 "B<sigaddset>()  と B<sigdelset>()  は I<set> に I<signum> シグナルをそれぞれ"
9948 "加えたり、削除したりする。"
9949
9950 #. type: Plain text
9951 #: build/C/man3/sigsetops.3:89
9952 msgid "B<sigismember>()  tests whether I<signum> is a member of I<set>."
9953 msgstr ""
9954 "B<sigismember>()  は I<signum> が I<set> に含まれているかどうかをテストする。"
9955
9956 #. type: Plain text
9957 #: build/C/man3/sigsetops.3:107
9958 msgid ""
9959 "Objects of type I<sigset_t> must be initialized by a call to either "
9960 "B<sigemptyset>()  or B<sigfillset>()  before being passed to the functions "
9961 "B<sigaddset>(), B<sigdelset>()  and B<sigismember>()  or the additional "
9962 "glibc functions described below (B<sigisemptyset>(), B<sigandset>(), and "
9963 "B<sigorset>()).  The results are undefined if this is not done."
9964 msgstr ""
9965 "I<sigset_t> 型のオブジェクトは、関数 B<sigaddset>(), B<sigdelset>(), "
9966 "B<sigismember>()  や後述の glibc の追加関数 (B<sigisemptyset>(), B<sigandset>"
9967 "(), B<sigorset>())  に渡す前に、 B<sigemptyset>()  か B<sigfillset>()  を呼び"
9968 "出して初期化しなければならない。 初期化しなかった場合の結果は未定義である。"
9969
9970 #. type: Plain text
9971 #: build/C/man3/sigsetops.3:114
9972 msgid ""
9973 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), and B<sigdelset>()  "
9974 "return 0 on success and -1 on error."
9975 msgstr ""
9976 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>()  は成功すれ"
9977 "ば 0 を、エラーの場合は -1 を返す。"
9978
9979 #. type: Plain text
9980 #: build/C/man3/sigsetops.3:123
9981 msgid ""
9982 "B<sigismember>()  returns 1 if I<signum> is a member of I<set>, 0 if "
9983 "I<signum> is not a member, and -1 on error."
9984 msgstr ""
9985 "B<sigismember>()  は I<signum> が I<set> に含まれていれば 1 を返し、含まれて"
9986 "いなければ 0 を返す。 エラーの場合は -1 を返す。"
9987
9988 #. type: Plain text
9989 #: build/C/man3/sigsetops.3:128
9990 msgid "I<sig> is not a valid signal."
9991 msgstr "I<sig> が有効なシグナルではない。"
9992
9993 #. type: SS
9994 #: build/C/man3/sigsetops.3:131
9995 #, fuzzy, no-wrap
9996 #| msgid "Glibc Notes"
9997 msgid "Glibc notes"
9998 msgstr "glibc での注意"
9999
10000 #. type: Plain text
10001 #: build/C/man3/sigsetops.3:137
10002 msgid ""
10003 "If the B<_GNU_SOURCE> feature test macro is defined, then I<E<lt>signal."
10004 "hE<gt>> exposes three other functions for manipulating signal sets."
10005 msgstr ""
10006 "B<_GNU_SOURCE> 機能検査マクロが定義されていると、 I<E<lt>signal.hE<gt>> でシ"
10007 "グナル集合を操作する 3つの関数が追加で公開される。"
10008
10009 #. type: TP
10010 #: build/C/man3/sigsetops.3:137
10011 #, no-wrap
10012 msgid "B<int sigisemptyset(sigset_t *>I<set>B<);>"
10013 msgstr "B<int sigisemptyset(sigset_t *>I<set>B<);>"
10014
10015 #. type: Plain text
10016 #: build/C/man3/sigsetops.3:142
10017 msgid "returns 1 if I<set> contains no signals, and 0 otherwise."
10018 msgstr ""
10019 "I<set> にシグナルが一つも含まれていなければ 1 を返し、 それ以外は 0 を返す。"
10020
10021 #. type: TP
10022 #: build/C/man3/sigsetops.3:142
10023 #, no-wrap
10024 msgid "B<int sigorset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
10025 msgstr "B<int sigorset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
10026
10027 #. type: Plain text
10028 #: build/C/man3/sigsetops.3:151
10029 msgid "places the union of the sets I<left> and I<right> in I<dest>."
10030 msgstr "シグナル集合 I<left> と I<left> の和集合を I<dest> に書き込む。"
10031
10032 #. type: TP
10033 #: build/C/man3/sigsetops.3:151
10034 #, no-wrap
10035 msgid "B<int sigandset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
10036 msgstr "B<int sigandset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
10037
10038 #. type: Plain text
10039 #: build/C/man3/sigsetops.3:160
10040 msgid "places the intersection of the sets I<left> and I<right> in I<dest>."
10041 msgstr "シグナル集合 I<left> と I<left> の積集合を I<dest> に書き込む。"
10042
10043 #. type: Plain text
10044 #: build/C/man3/sigsetops.3:165
10045 msgid ""
10046 "B<sigorset>()  and B<sigandset>()  return 0 on success, and -1 on failure."
10047 msgstr ""
10048 "B<sigorset>()  と B<sigandset>()  は成功すると 0 を、失敗すると -1 を返す。"
10049
10050 #. type: Plain text
10051 #: build/C/man3/sigsetops.3:168
10052 msgid ""
10053 "These functions are nonstandard (a few other systems provide similar "
10054 "functions) and their use should be avoided in portable applications."
10055 msgstr ""
10056 "これらの関数は非標準であり、(他にも同様の関数を提供しているシステムも いくつ"
10057 "かはあるが) 移植性を考慮したアプリケーションでは使用を避けるべき である。"
10058
10059 #. type: Plain text
10060 #: build/C/man3/sigsetops.3:173
10061 msgid "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
10062 msgstr "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
10063
10064 #. type: TH
10065 #: build/C/man2/sigsuspend.2:29
10066 #, no-wrap
10067 msgid "SIGSUSPEND"
10068 msgstr "SIGSUSPEND"
10069
10070 #. type: TH
10071 #: build/C/man2/sigsuspend.2:29
10072 #, no-wrap
10073 msgid "2008-08-29"
10074 msgstr "2008-08-29"
10075
10076 #. type: Plain text
10077 #: build/C/man2/sigsuspend.2:32
10078 msgid "sigsuspend - wait for a signal"
10079 msgstr "sigsuspend - シグナルを待つ"
10080
10081 #. type: Plain text
10082 #: build/C/man2/sigsuspend.2:36
10083 msgid "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
10084 msgstr "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
10085
10086 #. type: Plain text
10087 #: build/C/man2/sigsuspend.2:45
10088 msgid ""
10089 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
10090 "_POSIX_SOURCE"
10091 msgstr ""
10092 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
10093 "_POSIX_SOURCE"
10094
10095 #. type: Plain text
10096 #: build/C/man2/sigsuspend.2:53
10097 msgid ""
10098 "B<sigsuspend>()  temporarily replaces the signal mask of the calling process "
10099 "with the mask given by I<mask> and then suspends the process until delivery "
10100 "of a signal whose action is to invoke a signal handler or to terminate a "
10101 "process."
10102 msgstr ""
10103 "B<sigsuspend>()  は、呼び出し元プロセスのシグナルマスクを I<mask> で指定され"
10104 "たマスクに一時的に置き換え、 シグナルハンドラの起動もしくはプロセスの終了がア"
10105 "クションとして 設定されたシグナルが配送されるまで、そのプロセスを停止する。"
10106
10107 #. type: Plain text
10108 #: build/C/man2/sigsuspend.2:62
10109 msgid ""
10110 "If the signal terminates the process, then B<sigsuspend>()  does not "
10111 "return.  If the signal is caught, then B<sigsuspend>()  returns after the "
10112 "signal handler returns, and the signal mask is restored to the state before "
10113 "the call to B<sigsuspend>()."
10114 msgstr ""
10115 "シグナルがプロセスを終了させるものの場合、 B<sigsuspend>()  は返らない。シグ"
10116 "ナルが捕捉された場合、 シグナルハンドラの処理が終わった後に B<sigsuspend>()  "
10117 "は返り、シグナルマスクは B<sigsuspend>()  が呼び出される前の状態に復元され"
10118 "る。"
10119
10120 #. type: Plain text
10121 #: build/C/man2/sigsuspend.2:70
10122 msgid ""
10123 "It is not possible to block B<SIGKILL> or B<SIGSTOP>; specifying these "
10124 "signals in I<mask>, has no effect on the process's signal mask."
10125 msgstr ""
10126 "B<SIGKILL> と B<SIGSTOP> を禁止 (block) することはできない; これらのシグナル"
10127 "を I<mask> に指定しても、プロセスのシグナルマスクは影響を受けない。"
10128
10129 #. type: Plain text
10130 #: build/C/man2/sigsuspend.2:74
10131 msgid "B<sigsuspend>()  always returns -1, normally with the error B<EINTR>."
10132 msgstr "B<sigsuspend>()  は常に -1 を返し、通常は B<EINTR> エラーが発生する。"
10133
10134 #. type: Plain text
10135 #: build/C/man2/sigsuspend.2:79
10136 msgid ""
10137 "I<mask> points to memory which is not a valid part of the process address "
10138 "space."
10139 msgstr ""
10140 "I<mask> が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。"
10141
10142 #. type: Plain text
10143 #: build/C/man2/sigsuspend.2:82
10144 msgid "The call was interrupted by a signal."
10145 msgstr "システムコールはシグナルにより割り込まれた。"
10146
10147 #. type: Plain text
10148 #: build/C/man2/sigsuspend.2:102
10149 msgid ""
10150 "Normally, B<sigsuspend>()  is used in conjunction with B<sigprocmask>(2)  in "
10151 "order to prevent delivery of a signal during the execution of a critical "
10152 "code section.  The caller first blocks the signals with B<sigprocmask>(2).  "
10153 "When the critical code has completed, the caller then waits for the signals "
10154 "by calling B<sigsuspend>()  with the signal mask that was returned by "
10155 "B<sigprocmask>(2)  (in the I<oldset> argument)."
10156 msgstr ""
10157 "B<sigsuspend>()  は、通常、クリティカル・コード・セクション (critical code "
10158 "section) の 実行中にシグナルが配送されるのを防止するために、 B<sigprocmask>"
10159 "(2)  と組み合わせて使用される。 まず最初に、呼び出し元は B<sigprocmask>(2)  "
10160 "を使ってシグナルを禁止する。 クリティカル・コードが完了すると、呼び出し元は "
10161 "B<sigprocmask>(2)  が (I<oldset> 引き数で) 返すシグナルマスクを指定して "
10162 "B<sigsuspend>()  を呼び出すことで、クリティカル・コード実行中に発生した シグ"
10163 "ナルを待つことができる。"
10164
10165 #. type: Plain text
10166 #: build/C/man2/sigsuspend.2:116
10167 msgid ""
10168 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10169 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
10170 msgstr ""
10171 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10172 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
10173
10174 #. type: TH
10175 #: build/C/man3/sigvec.3:26
10176 #, no-wrap
10177 msgid "SIGVEC"
10178 msgstr "SIGVEC"
10179
10180 #. type: TH
10181 #: build/C/man3/sigvec.3:26
10182 #, fuzzy, no-wrap
10183 #| msgid "2012-04-20"
10184 msgid "2012-09-06"
10185 msgstr "2012-04-20"
10186
10187 #. type: Plain text
10188 #: build/C/man3/sigvec.3:29
10189 msgid "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD signal API"
10190 msgstr "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD 版シグナル API"
10191
10192 #. type: Plain text
10193 #: build/C/man3/sigvec.3:33
10194 msgid ""
10195 "B<int sigvec(int >I<sig>B<, struct sigvec *>I<vec>B<, struct sigvec "
10196 "*>I<ovec>B<);>"
10197 msgstr ""
10198 "B<int sigvec(int >I<sig>B<, struct sigvec *>I<vec>B<, struct sigvec "
10199 "*>I<ovec>B<);>"
10200
10201 #. type: Plain text
10202 #: build/C/man3/sigvec.3:35
10203 msgid "B<int sigmask(int >I<signum>B<);>"
10204 msgstr "B<int sigmask(int >I<signum>B<);>"
10205
10206 #. type: Plain text
10207 #: build/C/man3/sigvec.3:37
10208 msgid "B<int sigblock(int >I<mask>B<);>"
10209 msgstr "B<int sigblock(int >I<mask>B<);>"
10210
10211 #. type: Plain text
10212 #: build/C/man3/sigvec.3:39
10213 msgid "B<int sigsetmask(int >I<mask>B<);>"
10214 msgstr "B<int sigsetmask(int >I<mask>B<);>"
10215
10216 #. type: Plain text
10217 #: build/C/man3/sigvec.3:41
10218 msgid "B<int siggetmask(void);>"
10219 msgstr "B<int siggetmask(void);>"
10220
10221 #. type: Plain text
10222 #: build/C/man3/sigvec.3:49
10223 msgid "All functions shown above: _BSD_SOURCE"
10224 msgstr "上記の全ての関数: _BSD_SOURCE"
10225
10226 #. type: Plain text
10227 #: build/C/man3/sigvec.3:56
10228 #, fuzzy
10229 #| msgid ""
10230 #| "These functions are provided in glibc as a compatibility interface for "
10231 #| "programs that make use of the historical BSD signal API.  This API is "
10232 #| "obsolete: new applications should use the POSIX signal API (B<sigaction>"
10233 #| "(2), B<sigprocmask>(2), etc.)"
10234 msgid ""
10235 "These functions are provided in glibc as a compatibility interface for "
10236 "programs that make use of the historical BSD signal API.  This API is "
10237 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
10238 "B<sigprocmask>(2), etc.)."
10239 msgstr ""
10240 "これらの関数は、昔ながらの BSD 版シグナル API を使用しているプログラム に対し"
10241 "て互換性のあるインタフェースを glibc で提供するものである。 この API は過去の"
10242 "ものであり、新しいアプリケーションでは POSIX シグナル API (B<sigaction>(2), "
10243 "B<sigprocmask>(2)  など) を使用すべきである。"
10244
10245 #. type: Plain text
10246 #: build/C/man3/sigvec.3:81
10247 msgid ""
10248 "The B<sigvec>()  function sets and/or gets the disposition of the signal "
10249 "I<sig> (like the POSIX B<sigaction>(2)).  If I<vec> is not NULL, it points "
10250 "to a I<sigvec> structure that defines the new disposition for I<sig>.  If "
10251 "I<ovec> is not NULL, it points to a I<sigvec> structure that is used to "
10252 "return the previous disposition of I<sig>.  To obtain the current "
10253 "disposition of I<sig> without changing it, specify NULL for I<vec>, and a "
10254 "non-NULL pointer for I<ovec>."
10255 msgstr ""
10256 "関数 B<sigvec>()  は、(POSIX の B<sigaction>(2)  と同様に) シグナル I<sig> の"
10257 "動作の設定・取得を行う。 I<vec> は、NULL 以外の場合、 I<sig> の新しい動作を定"
10258 "義した I<sigvec> 構造体へのポインタである。 I<ovec> は、NULL 以外の場合、 "
10259 "I<sig> の変更前の動作を返すために使用される I<sigvec> 構造体へのポインタであ"
10260 "る。 I<sig> の動作を変更せずに現在の動作を取得するためには、 I<vec> に NULL "
10261 "を指定し、 I<ovec> に NULL でないポインタを指定すればよい。"
10262
10263 #. type: Plain text
10264 #: build/C/man3/sigvec.3:91
10265 msgid "The I<sigvec> structure has the following form:"
10266 msgstr "I<sigvec> 構造体は以下の通りである:"
10267
10268 #. type: Plain text
10269 #: build/C/man3/sigvec.3:99
10270 #, fuzzy, no-wrap
10271 #| msgid ""
10272 #| "struct sigvec {\n"
10273 #| "    void (*sv_handler)();  /* Signal disposition */\n"
10274 #| "    int    sv_mask;        /* Signals to be blocked in handler */\n"
10275 #| "    int    sv_flags;       /* Flags */\n"
10276 #| "};\n"
10277 msgid ""
10278 "struct sigvec {\n"
10279 "    void (*sv_handler)(int); /* Signal disposition */\n"
10280 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
10281 "    int    sv_flags;         /* Flags */\n"
10282 "};\n"
10283 msgstr ""
10284 "struct sigvec {\n"
10285 "    void (*sv_handler)();  /* Signal disposition */\n"
10286 "    int    sv_mask;        /* Signals to be blocked in handler */\n"
10287 "    int    sv_flags;       /* Flags */\n"
10288 "};\n"
10289
10290 #. type: Plain text
10291 #: build/C/man3/sigvec.3:110
10292 #, fuzzy
10293 #| msgid ""
10294 #| "The I<sv_handler> field specifies the disposition of the signal, and is "
10295 #| "either: the address of a signal handler function; or B<SIG_DFL> meaning "
10296 #| "the default disposition applies for the signal; or B<SIG_IGN> meaning "
10297 #| "that the signal is ignored."
10298 msgid ""
10299 "The I<sv_handler> field specifies the disposition of the signal, and is "
10300 "either: the address of a signal handler function; B<SIG_DFL>, meaning the "
10301 "default disposition applies for the signal; or B<SIG_IGN>, meaning that the "
10302 "signal is ignored."
10303 msgstr ""
10304 "I<sv_handler> フィールドはシグナルの動作を指定するもので、 シグナルハンドラ関"
10305 "数のアドレスか、 B<SIG_DFL> と B<SIG_IGN> のいずれかを指定できる。 "
10306 "B<SIG_DFL> はシグナルに適用されるデフォルトの動作を意味し、 B<SIG_IGN> はシグ"
10307 "ナルを無視することを意味する。"
10308
10309 #. type: Plain text
10310 #: build/C/man3/sigvec.3:124
10311 #, fuzzy
10312 #| msgid ""
10313 #| "If I<sv_handler> specifies the address of a signal handler, then "
10314 #| "I<sv_mask> specifies a mask of signals that are to be blocked while the "
10315 #| "handler is executing.  In addition, the signal for which the handler is "
10316 #| "invoked is also blocked by default.  Attempts to block B<SIGKILL> or "
10317 #| "B<SIGSTOP> are silently ignored."
10318 msgid ""
10319 "If I<sv_handler> specifies the address of a signal handler, then I<sv_mask> "
10320 "specifies a mask of signals that are to be blocked while the handler is "
10321 "executing.  In addition, the signal for which the handler is invoked is also "
10322 "blocked.  Attempts to block B<SIGKILL> or B<SIGSTOP> are silently ignored."
10323 msgstr ""
10324 "I<sv_handler> にシグナルハンドラのアドレスを指定した場合、 I<sv_mask> はハン"
10325 "ドラが実行中にブロックされるべきシグナルのマスクを指定する。 また、ハンドラを"
10326 "起動したシグナル自身はデフォルトでブロックされる。 B<SIGKILL> か B<SIGSTOP> "
10327 "をブロックしようとした場合には、黙って無視される。"
10328
10329 #. type: Plain text
10330 #: build/C/man3/sigvec.3:131
10331 msgid ""
10332 "If I<sv_handler> specifies the address of a signal handler, then the "
10333 "I<sv_flags> field specifies flags controlling what happens when the handler "
10334 "is called.  This field may contain zero or more of the following flags:"
10335 msgstr ""
10336 "I<sv_handler> にシグナルハンドラのアドレスを指定した場合、 I<sv_flags> フィー"
10337 "ルドはハンドラが呼ばれた際の挙動を制御するフラグを指定する。 このフィールドに"
10338 "は、0 か、以下のフラグを 1個以上指定できる:"
10339
10340 #. type: TP
10341 #: build/C/man3/sigvec.3:131
10342 #, no-wrap
10343 msgid "B<SV_INTERRUPT>"
10344 msgstr "B<SV_INTERRUPT>"
10345
10346 #. type: Plain text
10347 #: build/C/man3/sigvec.3:139
10348 msgid ""
10349 "If the signal handler interrupts a blocking system call, then upon return "
10350 "from the handler the system call will not be restarted: instead it will fail "
10351 "with the error B<EINTR>.  If this flag is not specified, then system calls "
10352 "are restarted by default."
10353 msgstr ""
10354 "シグナルハンドラが停止中のシステムコールを中断した場合、 ハンドラから復帰して"
10355 "も、システムコールは再開されず、 エラー B<EINTR> で失敗する。 このフラグを指"
10356 "定しなかった場合、システムコールは デフォルトで再開される。"
10357
10358 #. type: TP
10359 #: build/C/man3/sigvec.3:139
10360 #, no-wrap
10361 msgid "B<SV_RESETHAND>"
10362 msgstr "B<SV_RESETHAND>"
10363
10364 #. type: Plain text
10365 #: build/C/man3/sigvec.3:148
10366 msgid ""
10367 "Reset the disposition of the signal to the default before calling the signal "
10368 "handler.  If this flag is not specified, then the handler remains "
10369 "established until explicitly removed by a later call to B<sigvec>()  or "
10370 "until the process performs an B<execve>(2)."
10371 msgstr ""
10372 "シグナルハンドラを呼び出す前にシグナルの動作を デフォルトにリセットする。 こ"
10373 "のフラグを指定しなかった場合、もう一度 B<sigvec>()  を呼び出して明示的に削除"
10374 "されるか、プロセスが B<execve>(2)  を実行するまで、ハンドラは設定されたままと"
10375 "なる。"
10376
10377 #. type: TP
10378 #: build/C/man3/sigvec.3:148
10379 #, no-wrap
10380 msgid "B<SV_ONSTACK>"
10381 msgstr "B<SV_ONSTACK>"
10382
10383 #. type: Plain text
10384 #: build/C/man3/sigvec.3:155
10385 msgid ""
10386 "Handle the signal on the alternate signal stack (historically established "
10387 "under BSD using the obsolete B<sigstack>()  function; the POSIX replacement "
10388 "is B<sigaltstack>(2))."
10389 msgstr ""
10390 "代替シグナルスタック上でシグナルハンドラを実行する (歴史的に、BSD では代替シ"
10391 "グナルスタックは廃止された関数 B<sigstack>()  を使って設定する。POSIX では、"
10392 "代わりに B<sigaltstack>(2)  を使用する)。"
10393
10394 #. type: Plain text
10395 #: build/C/man3/sigvec.3:165
10396 msgid ""
10397 "The B<sigmask>()  function constructs and returns a \"signal mask\" for "
10398 "I<signum>.  For example, we can initialize the I<vec.sv_mask> field given to "
10399 "B<sigvec>()  using code such as the following:"
10400 msgstr ""
10401 "関数 B<sigmask>()  は I<signum> に対する「シグナルマスク」を構成して返す。 例"
10402 "えば、以下のようなコードを使うと、 B<sigvec>()  に渡す I<vec.sv_mask> を初期"
10403 "化できる。"
10404
10405 #. type: Plain text
10406 #: build/C/man3/sigvec.3:170
10407 #, no-wrap
10408 msgid ""
10409 "    vec.sv_mask = sigmask(SIGQUIT) | sigpause(SIGABRT);\n"
10410 "                /* Block SIGQUIT and SIGABRT during\n"
10411 "                   handler execution */\n"
10412 msgstr ""
10413 "    vec.sv_mask = sigmask(SIGQUIT) | sigpause(SIGABRT);\n"
10414 "                /* Block SIGQUIT and SIGABRT during\n"
10415 "                   handler execution */\n"
10416
10417 #. type: Plain text
10418 #: build/C/man3/sigvec.3:185
10419 msgid ""
10420 "The B<sigblock>()  function adds the signals in I<mask> to the process's "
10421 "signal mask (like POSIX I<sigprocmask(SIG_BLOCK)>), and returns the "
10422 "process's previous signal mask.  Attempts to block B<SIGKILL> or B<SIGSTOP> "
10423 "are silently ignored."
10424 msgstr ""
10425 "B<sigblock>()  関数は、 I<mask> にあるシグナルをプロセスのシグナルマスクに追"
10426 "加し (POSIX の I<sigprocmask(SIG_BLOCK)> と同様)、変更前のプロセスのシグナル"
10427 "マスクを返す。 B<SIGKILL> や B<SIGSTOP> をブロックしようとした場合には、黙っ"
10428 "て無視される。"
10429
10430 #. type: Plain text
10431 #: build/C/man3/sigvec.3:193
10432 msgid ""
10433 "The B<sigsetmask>()  function sets the process's signal mask to the value "
10434 "given in I<mask> (like POSIX I<sigprocmask(SIG_SETMASK)>), and returns the "
10435 "process's previous signal mask."
10436 msgstr ""
10437 "B<sigsetmask>()  関数はプロセスのシグナルマスクを I<mask> で指定された値に設"
10438 "定し (POSIX の I<sigprocmask(SIG_SETMASK)> と同様)、変更前のプロセスのシグナ"
10439 "ルマスクを返す。"
10440
10441 #. type: Plain text
10442 #: build/C/man3/sigvec.3:199
10443 msgid ""
10444 "The B<siggetmask>()  function returns the process's current signal mask.  "
10445 "This call is equivalent to I<sigblock(0)>."
10446 msgstr ""
10447 "B<siggetmask>()  関数はプロセスの現在のシグナルマスクを返す。この関数は "
10448 "I<sigblock(0)> と等価である。"
10449
10450 #. type: Plain text
10451 #: build/C/man3/sigvec.3:205
10452 msgid ""
10453 "The B<sigvec>()  function returns 0 on success; on error, it returns -1 and "
10454 "sets I<errno> to indicate the error."
10455 msgstr ""
10456 "B<sigvec>()  関数は成功すると 0 を返す。エラーの場合、-1 を返し、 I<errno> に"
10457 "エラーを示す値をセットする。"
10458
10459 #. type: Plain text
10460 #: build/C/man3/sigvec.3:211
10461 msgid ""
10462 "The B<sigblock>()  and B<sigsetmask>()  functions return the previous signal "
10463 "mask."
10464 msgstr "B<sigblock>()  と B<sigsetmask>()  は変更前のシグナルマスクを返す。"
10465
10466 #. type: Plain text
10467 #: build/C/man3/sigvec.3:216
10468 msgid "The B<sigmask>()  function returns the signal mask for I<signum>."
10469 msgstr "B<sigmask>()  関数は I<signum> のシグナルマスクを返す。"
10470
10471 #. type: Plain text
10472 #: build/C/man3/sigvec.3:221
10473 msgid "See the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
10474 msgstr "B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」の節を参照。"
10475
10476 #. type: Plain text
10477 #: build/C/man3/sigvec.3:227
10478 msgid ""
10479 "All of these functions were in 4.3BSD, except B<siggetmask>(), whose origin "
10480 "is unclear.  These functions are obsolete: do not use them in new programs."
10481 msgstr ""
10482 "これらの関数のうち B<siggetmask>()  以外の全ては 4.3BSD にあった。 "
10483 "B<siggetmask>()  の出自ははっきりしない。 これらの関数は廃止予定であり、新し"
10484 "いプログラムでは使用しないこと。"
10485
10486 #. type: Plain text
10487 #: build/C/man3/sigvec.3:244
10488 msgid ""
10489 "On 4.3BSD, the B<signal>()  function provided reliable semantics (as when "
10490 "calling B<sigvec>()  with I<vec.sv_mask> equal to 0).  On System V, B<signal>"
10491 "()  provides unreliable semantics.  POSIX.1-2001 leaves these aspects of "
10492 "B<signal>()  unspecified.  See B<signal>(2)  for further details."
10493 msgstr ""
10494 "4.3BSD では、信頼性のあるシグナル処理機構を提供する (I<vec.sv_mask> を 0 で "
10495 "B<sigvec>()  を呼び出したときと同様)。 System V が提供する処理機構は信頼性の"
10496 "ないものである。 POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままと"
10497 "なっている。 さらなる詳細については B<signal>(2)  を参照。"
10498
10499 #. type: Plain text
10500 #: build/C/man3/sigvec.3:262
10501 msgid ""
10502 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10503 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
10504 msgstr ""
10505 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10506 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
10507
10508 #. type: TH
10509 #: build/C/man3/sigwait.3:26
10510 #, no-wrap
10511 msgid "SIGWAIT"
10512 msgstr "SIGWAIT"
10513
10514 #. type: TH
10515 #: build/C/man3/sigwait.3:26 build/C/man2/sigwaitinfo.2:25
10516 #, fuzzy, no-wrap
10517 #| msgid "2012-04-23"
10518 msgid "2012-07-21"
10519 msgstr "2012-04-23"
10520
10521 #. type: Plain text
10522 #: build/C/man3/sigwait.3:29
10523 msgid "sigwait - wait for a signal"
10524 msgstr "sigwait - シグナルを待つ"
10525
10526 #. type: Plain text
10527 #: build/C/man3/sigwait.3:34
10528 #, no-wrap
10529 msgid "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
10530 msgstr "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
10531
10532 #. type: Plain text
10533 #: build/C/man3/sigwait.3:44
10534 msgid ""
10535 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10536 msgstr ""
10537 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10538
10539 #. type: Plain text
10540 #: build/C/man3/sigwait.3:56
10541 #, fuzzy
10542 #| msgid ""
10543 #| "The B<sigwait>()  function suspends execution of the calling thread until "
10544 #| "the delivery of one of the signals specified in the signal set I<set>.  "
10545 #| "The function accepts the signal (removes it from the pending list of "
10546 #| "signals), and returns the signal number in I<sig>."
10547 msgid ""
10548 "The B<sigwait>()  function suspends execution of the calling thread until "
10549 "one of the signals specified in the signal set I<set> becomes pending.  The "
10550 "function accepts the signal (removes it from the pending list of signals), "
10551 "and returns the signal number in I<sig>."
10552 msgstr ""
10553 "B<sigwait>()  関数は、シグナル集合 I<set> で指定されたシグナルの一つが配送さ"
10554 "れるまで、 呼び出したスレッドの実行を中断する。 この関数はそのシグナルを受け"
10555 "取り (つまり、処理待ちのシグナルのリスト からそのシグナルを削除し)、そのシグ"
10556 "ナル番号を I<sig> に格納して返す。"
10557
10558 #. type: Plain text
10559 #: build/C/man3/sigwait.3:62
10560 msgid ""
10561 "The operation of B<sigwait>()  is the same as B<sigwaitinfo>(2), except that:"
10562 msgstr ""
10563 "B<sigwait>()  の動作は B<sigwaitinfo>(2)  と同じだが、以下の点が異なる。"
10564
10565 #. type: Plain text
10566 #: build/C/man3/sigwait.3:67
10567 msgid ""
10568 "B<sigwait>()  only returns the signal number, rather than a I<siginfo_t> "
10569 "structure describing the signal."
10570 msgstr ""
10571 "B<sigwait>()  は、シグナルの内容を表す I<siginfo_t> 構造体を返すのではなく、"
10572 "単にシグナル番号を返す。"
10573
10574 #. type: Plain text
10575 #: build/C/man3/sigwait.3:69
10576 msgid "The return values of the two functions are different."
10577 msgstr "返り値が B<sigwaitinfo>(2)  とは異なる。"
10578
10579 #. type: Plain text
10580 #: build/C/man3/sigwait.3:74
10581 msgid ""
10582 "On success, B<sigwait>()  returns 0.  On error, it returns a positive error "
10583 "number (listed in ERRORS)."
10584 msgstr ""
10585 "成功すると、 B<sigwait>()  は 0 を返す。 エラーの場合、(「エラー」の節のリス"
10586 "トにある) 正のエラー番号を返す。"
10587
10588 #.  Does not occur for glibc.
10589 #. type: Plain text
10590 #: build/C/man3/sigwait.3:80
10591 msgid "I<set> contains an invalid signal number."
10592 msgstr "I<set> に無効なシグナル番号が入っている。"
10593
10594 #. type: Plain text
10595 #: build/C/man3/sigwait.3:86
10596 msgid "B<sigwait>()  is implemented using B<sigtimedwait>(2)."
10597 msgstr "B<sigwait>()  は B<sigtimedwait>(2)  を使って実装されている。"
10598
10599 #. type: Plain text
10600 #: build/C/man3/sigwait.3:89
10601 msgid "See B<pthread_sigmask>(3)."
10602 msgstr "B<pthread_sigmask>(3)  を参照。"
10603
10604 #. type: Plain text
10605 #: build/C/man3/sigwait.3:97
10606 msgid ""
10607 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
10608 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
10609 msgstr ""
10610 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
10611 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
10612
10613 #. type: TH
10614 #: build/C/man2/sigwaitinfo.2:25
10615 #, no-wrap
10616 msgid "SIGWAITINFO"
10617 msgstr "SIGWAITINFO"
10618
10619 #. type: Plain text
10620 #: build/C/man2/sigwaitinfo.2:28
10621 msgid "sigwaitinfo, sigtimedwait - synchronously wait for queued signals"
10622 msgstr "sigwaitinfo, sigtimedwait - キューに入れられたシグナルを同期して待つ"
10623
10624 #. type: Plain text
10625 #: build/C/man2/sigwaitinfo.2:33
10626 #, no-wrap
10627 msgid "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
10628 msgstr "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
10629
10630 #. type: Plain text
10631 #: build/C/man2/sigwaitinfo.2:36
10632 #, no-wrap
10633 msgid ""
10634 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
10635 "B<                 const struct timespec *>I<timeout>B<);>\n"
10636 msgstr ""
10637 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
10638 "B<                 const struct timespec *>I<timeout>B<);>\n"
10639
10640 #. type: Plain text
10641 #: build/C/man2/sigwaitinfo.2:46
10642 msgid "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10643 msgstr ""
10644 "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10645
10646 #. type: Plain text
10647 #: build/C/man2/sigwaitinfo.2:56
10648 #, fuzzy
10649 #| msgid ""
10650 #| "B<sigwaitinfo>()  suspends execution of the calling thread until one of "
10651 #| "the signals in I<set> is delivered.  (If one of the signals in I<set> is "
10652 #| "already pending for the calling thread, B<sigwaitinfo>()  will return "
10653 #| "immediately with information about that signal.)"
10654 msgid ""
10655 "B<sigwaitinfo>()  suspends execution of the calling thread until one of the "
10656 "signals in I<set> is pending (If one of the signals in I<set> is already "
10657 "pending for the calling thread, B<sigwaitinfo>()  will return immediately.)"
10658 msgstr ""
10659 "B<sigwaitinfo>()  は I<set> のうちのどれかのシグナルが配送されるまで、 呼び出"
10660 "しスレッドの実行を一時停止する (呼び出しスレッドに対して I<set> のうちのどれ"
10661 "かのシグナルが既に待機中 (pending) である場合、 B<sigwaitinfo>()  はそのシグ"
10662 "ナルの情報を返してすぐに戻る)。"
10663
10664 #. type: Plain text
10665 #: build/C/man2/sigwaitinfo.2:68
10666 #, fuzzy
10667 #| msgid ""
10668 #| "B<sigwaitinfo>()  removes the delivered signal from the set of pending "
10669 #| "signals and returns the signal number as its function result.  If the "
10670 #| "I<info> argument is not NULL, then it returns a structure of type "
10671 #| "I<siginfo_t> (see B<sigaction>(2))  containing information about the "
10672 #| "signal."
10673 msgid ""
10674 "B<sigwaitinfo>()  removes the signal from the set of pending signals and "
10675 "returns the signal number as its function result.  If the I<info> argument "
10676 "is not NULL, then the buffer that it points to is used to return a structure "
10677 "of type I<siginfo_t> (see B<sigaction>(2))  containing information about the "
10678 "signal."
10679 msgstr ""
10680 "B<sigwaitinfo>()  は配送されたシグナルを待機中のシグナルの集合から削除し、 関"
10681 "数の結果としてシグナル番号を返す。 I<info> 引き数が NULL でない場合、配送され"
10682 "たシグナルの情報が入った I<siginfo_t> 型 (B<sigaction>(2)  を参照) の構造体を"
10683 "返す。"
10684
10685 #. type: Plain text
10686 #: build/C/man2/sigwaitinfo.2:76
10687 #, fuzzy
10688 #| msgid ""
10689 #| "Signals returned via B<sigwaitinfo>()  are delivered in the usual order; "
10690 #| "see B<signal>(7)  for further details."
10691 msgid ""
10692 "If multiple signals in I<set> are pending for the caller, the signal that is "
10693 "retrieved by B<sigwaitinfo>()  is determined according to the usual ordering "
10694 "rules; see B<signal>(7)  for further details."
10695 msgstr ""
10696 "B<sigwaitinfo>()  で返されるシグナルは、通常の順番で配送される。 詳細は "
10697 "B<signal>(7)  を参照すること。"
10698
10699 #. type: Plain text
10700 #: build/C/man2/sigwaitinfo.2:88
10701 msgid ""
10702 "B<sigtimedwait>()  operates in exactly the same way as B<sigwaitinfo>()  "
10703 "except that it has an additional argument, I<timeout>, which specifies a "
10704 "minimum interval for which the thread is suspended waiting for a signal.  "
10705 "(This interval will be rounded up to the system clock granularity, and "
10706 "kernel scheduling delays mean that the interval may overrun by a small "
10707 "amount.)  This argument is of the following type:"
10708 msgstr ""
10709 "B<sigtimedwait>() は、 B<sigwaitinfo>() と次の点を除いて全く同じように\n"
10710 "動作する。この関数にはもう 1 つの引き数 I<timeout> があり、シグナル待ち\n"
10711 "でスレッドが一時停止する最小時間を指定することができる(この時間はシステ\n"
10712 "ムクロックの粒度に切り上げられ、カーネルのスケジューリング遅延により\n"
10713 "少しだけ長くなる可能性がある)。この引き数の型は以下のとおりである:"
10714
10715 #. type: Plain text
10716 #: build/C/man2/sigwaitinfo.2:95
10717 #, no-wrap
10718 msgid ""
10719 "struct timespec {\n"
10720 "    long    tv_sec;         /* seconds */\n"
10721 "    long    tv_nsec;        /* nanoseconds */\n"
10722 "}\n"
10723 msgstr ""
10724 "struct timespec {\n"
10725 "    long    tv_sec;         /* 秒 */\n"
10726 "    long    tv_nsec;        /* ナノ秒 */\n"
10727 "}\n"
10728
10729 #. type: Plain text
10730 #: build/C/man2/sigwaitinfo.2:105
10731 msgid ""
10732 "If both fields of this structure are specified as 0, a poll is performed: "
10733 "B<sigtimedwait>()  returns immediately, either with information about a "
10734 "signal that was pending for the caller, or with an error if none of the "
10735 "signals in I<set> was pending."
10736 msgstr ""
10737 "この構造体の 2 つのフィールドがともに 0 の場合、ポーリングが行われる: "
10738 "B<sigtimedwait>()  は、呼び出し側プロセスに対して 待機しているシグナルの情報"
10739 "を返して戻るか、 I<set> のうちのどのシグナルも待機していない場合はエラーを返"
10740 "して戻る。"
10741
10742 #. type: Plain text
10743 #: build/C/man2/sigwaitinfo.2:114
10744 msgid ""
10745 "On success, both B<sigwaitinfo>()  and B<sigtimedwait>()  return a signal "
10746 "number (i.e., a value greater than zero).  On failure both calls return -1, "
10747 "with I<errno> set to indicate the error."
10748 msgstr ""
10749 "成功した場合、 B<sigwaitinfo>()  と B<sigtimedwait>()  はシグナル番号 (すなわ"
10750 "ち 0 より大きい数) を返す。 失敗した場合、2 つの関数は -1 を返し、 I<errno> "
10751 "はエラーを表す値に設定される。"
10752
10753 #. type: Plain text
10754 #: build/C/man2/sigwaitinfo.2:123
10755 #, fuzzy
10756 #| msgid ""
10757 #| "No signal in I<set> was delivered within the I<timeout> period specified "
10758 #| "to B<sigtimedwait>()."
10759 msgid ""
10760 "No signal in I<set> was became pending within the I<timeout> period "
10761 "specified to B<sigtimedwait>()."
10762 msgstr ""
10763 "I<set> のうちのどのシグナルも B<sigtimedwait>()  に指定された I<timeout> の期"
10764 "間内に配送されなかった。"
10765
10766 #. type: Plain text
10767 #: build/C/man2/sigwaitinfo.2:129
10768 msgid ""
10769 "The wait was interrupted by a signal handler; see B<signal>(7).  (This "
10770 "handler was for a signal other than one of those in I<set>.)"
10771 msgstr ""
10772 "シグナル待ちがシグナルハンドラによって中断 (interrupt) された (このハンドラ"
10773 "は I<set> にあるシグナル以外のものである)。 B<signal>(7)  参照。"
10774
10775 #. type: Plain text
10776 #: build/C/man2/sigwaitinfo.2:133
10777 msgid "I<timeout> was invalid."
10778 msgstr "I<timeout> が不正である。"
10779
10780 #. type: Plain text
10781 #: build/C/man2/sigwaitinfo.2:153
10782 #, fuzzy
10783 #| msgid ""
10784 #| "In normal usage, the calling program blocks the signals in I<set> via a "
10785 #| "prior call to B<sigprocmask>(2)  (so that the default disposition for "
10786 #| "these signals does not occur if they are delivered between successive "
10787 #| "calls to B<sigwaitinfo>()  or B<sigtimedwait>())  and does not establish "
10788 #| "handlers for these signals.  In a multithreaded program, the signal "
10789 #| "should be blocked in all threads to prevent the signal being delivered to "
10790 #| "a thread other than the one calling B<sigwaitinfo>()  or B<sigtimedwait>"
10791 #| "())."
10792 msgid ""
10793 "In normal usage, the calling program blocks the signals in I<set> via a "
10794 "prior call to B<sigprocmask>(2)  (so that the default disposition for these "
10795 "signals does not occur if they become pending between successive calls to "
10796 "B<sigwaitinfo>()  or B<sigtimedwait>())  and does not establish handlers for "
10797 "these signals.  In a multithreaded program, the signal should be blocked in "
10798 "all threads, in order to prevent the signal being treated according to its "
10799 "default disposition in a thread other than the one calling B<sigwaitinfo>()  "
10800 "or B<sigtimedwait>())."
10801 msgstr ""
10802 "通常の使用法では、呼び出し側プロセスはこれらの関数より先に B<sigprocmask>"
10803 "(2)  の呼び出すことにより I<set> に含まれるシグナルをブロックし (そのためにこ"
10804 "れらのシグナルがこの後に続く B<sigwaitinfo>()  や B<sigtimedwait>()  の呼び出"
10805 "しの間に配送された場合には、 デフォルトの配置は行われず)、 これらのシグナルに"
10806 "対するハンドラは設定しない。 マルチスレッドプログラムでは、 B<sigwaitinfo>"
10807 "()  や B<sigtimedwait>()  を呼び出したスレッド以外のスレッドにそのシグナルが"
10808 "配送されないように、 全てのスレッドで該当シグナルをブロックすべきである。"
10809
10810 #. type: Plain text
10811 #: build/C/man2/sigwaitinfo.2:158
10812 msgid ""
10813 "The set of signals that is pending for a given thread is the union of the "
10814 "set of signals that is pending specifically for that thread and the set of "
10815 "signals that is pending for the process as a whole (see B<signal>(7))."
10816 msgstr ""
10817 "指定されたスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体宛ての"
10818 "処理待ちのシグナル集合と、プロセス全体宛ての 処理待ちのシグナル集合をあわせた"
10819 "ものである (B<signal>(7)  参照)。"
10820
10821 #. type: Plain text
10822 #: build/C/man2/sigwaitinfo.2:164
10823 msgid "Attempts to wait for B<SIGKILL> and B<SIGSTOP> are silently ignored."
10824 msgstr "B<SIGKILL> と B<SIGSTOP> を待とうとした場合、黙って無視される。"
10825
10826 #. type: Plain text
10827 #: build/C/man2/sigwaitinfo.2:173
10828 #, fuzzy
10829 #| msgid ""
10830 #| "If multiple threads of a process are blocked waiting for the same signal"
10831 #| "(s) in B<sigwaitinfo>()  or B<sigtimedwait>(), then exactly one of the "
10832 #| "threads will actually receive the signal if it is delivered to the "
10833 #| "process as a whole; which of the threads receives the signal is "
10834 #| "indeterminate."
10835 msgid ""
10836 "If multiple threads of a process are blocked waiting for the same signal(s) "
10837 "in B<sigwaitinfo>()  or B<sigtimedwait>(), then exactly one of the threads "
10838 "will actually receive the signal if it becomes pending for the process as a "
10839 "whole; which of the threads receives the signal is indeterminate."
10840 msgstr ""
10841 "一つのプロセス内の複数のスレッドが B<sigwaitinfo>()  や B<sigtimedwait>()  で"
10842 "同じシグナルを待って停止した場合、 プロセス全体宛てのシグナルが配送されると、"
10843 "複数のスレッドのうち一つだけが 実際にそのシグナルを受信することになる。 どの"
10844 "スレッドがシグナルを受信するかは決まっていない。"
10845
10846 #. type: Plain text
10847 #: build/C/man2/sigwaitinfo.2:182
10848 msgid ""
10849 "POSIX leaves the meaning of a NULL value for the I<timeout> argument of "
10850 "B<sigtimedwait>()  unspecified, permitting the possibility that this has the "
10851 "same meaning as a call to B<sigwaitinfo>(), and indeed this is what is done "
10852 "on Linux."
10853 msgstr ""
10854 "POSIX では B<sigtimedwait>()  の引き数 I<timeout> の値を NULL にした場合の意"
10855 "味を未定義としている。 B<sigwaitinfo>()  を呼び出したのと同じ意味としてもよい"
10856 "ことになっており、 実際 Linux ではこのように動作する。"
10857
10858 #. type: Plain text
10859 #: build/C/man2/sigwaitinfo.2:187
10860 msgid ""
10861 "On Linux, B<sigwaitinfo>()  is a library function implemented on top of "
10862 "B<sigtimedwait>()."
10863 msgstr ""
10864 "Linux では、 B<sigwaitinfo>()  は B<sigtimedwait>()  を用いて実装されたライブ"
10865 "ラリ関数である。"
10866
10867 #. type: Plain text
10868 #: build/C/man2/sigwaitinfo.2:199
10869 msgid ""
10870 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
10871 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), B<signal>"
10872 "(7), B<time>(7)"
10873 msgstr ""
10874 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
10875 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), B<signal>"
10876 "(7), B<time>(7)"
10877
10878 #. type: TH
10879 #: build/C/man3/sysv_signal.3:25
10880 #, no-wrap
10881 msgid "SYSV_SIGNAL"
10882 msgstr "SYSV_SIGNAL"
10883
10884 #. type: TH
10885 #: build/C/man3/sysv_signal.3:25
10886 #, no-wrap
10887 msgid "2007-05-04"
10888 msgstr "2007-05-04"
10889
10890 #. type: Plain text
10891 #: build/C/man3/sysv_signal.3:28
10892 msgid "sysv_signal - signal handling with System V semantics"
10893 msgstr "sysv_signal - System V 方式のシグナル処理"
10894
10895 #. type: Plain text
10896 #: build/C/man3/sysv_signal.3:30
10897 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
10898 msgstr "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */"
10899
10900 #. type: Plain text
10901 #: build/C/man3/sysv_signal.3:36
10902 msgid ""
10903 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
10904 msgstr ""
10905 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
10906
10907 #. type: Plain text
10908 #: build/C/man3/sysv_signal.3:41
10909 msgid ""
10910 "The B<sysv_signal>()  function takes the same arguments, and performs the "
10911 "same task, as B<signal>(2)."
10912 msgstr ""
10913 "B<sysv_signal>()  関数は B<signal>(2)  と同じ引き数をとり、同じ処理を実行す"
10914 "る。"
10915
10916 #. type: Plain text
10917 #: build/C/man3/sysv_signal.3:51
10918 msgid ""
10919 "However B<sysv_signal>()  provides the System V unreliable signal semantics, "
10920 "that is: a) the disposition of the signal is reset to the default when the "
10921 "handler is invoked; b) delivery of further instances of the signal is not "
10922 "blocked while the signal handler is executing; and c) if the handler "
10923 "interrupts (certain) blocking system calls, then the system call is not "
10924 "automatically restarted."
10925 msgstr ""
10926 "しかしながら、 B<sysv_signal>()  は System V の信頼性に欠けるシグナル処理方式"
10927 "を提供している。 信頼性に欠けるシグナル処理方式は以下の特徴を持つ。 a) ハンド"
10928 "ラが起動されると、シグナルの処理方法 (disposition) が デフォルトにリセットさ"
10929 "れる、 b) シグナルハンドラの実行中は、それ以降に発生した同じシグナルの配送が "
10930 "ブロックされない、 c) ハンドラが停止中の (blocking している) システムコールを"
10931 "中断した場合、 自動的に再開されないシステムコールがある。"
10932
10933 #. type: Plain text
10934 #: build/C/man3/sysv_signal.3:57
10935 msgid ""
10936 "The B<sysv_signal>()  function returns the previous value of the signal "
10937 "handler, or B<SIG_ERR> on error."
10938 msgstr ""
10939 "B<sysv_signal>()  関数はシグナルハンドラの直前の値を返す。 エラーの場合、 "
10940 "B<SIG_ERR> を返す。"
10941
10942 #. type: Plain text
10943 #: build/C/man3/sysv_signal.3:62
10944 msgid "This function is nonstandard."
10945 msgstr "この関数は非標準である。"
10946
10947 #. type: Plain text
10948 #: build/C/man3/sysv_signal.3:68
10949 msgid ""
10950 "Use of B<sysv_signal>()  should be avoided; use B<sigaction>(2)  instead."
10951 msgstr ""
10952 "B<sysv_signal>()  の使用は避けるべきである。代わりに B<sigaction>(2)  を使う"
10953 "こと。"
10954
10955 #. type: Plain text
10956 #: build/C/man3/sysv_signal.3:79
10957 msgid ""
10958 "On older Linux systems, B<sysv_signal>()  and B<signal>(2)  were "
10959 "equivalent.  But on newer systems, B<signal>(2)  provides reliable signal "
10960 "semantics; see B<signal>(2)  for details."
10961 msgstr ""
10962 "以前の Linux システムでは、 B<sysv_signal>()  と B<signal>(2)  は等価であっ"
10963 "た。しかし、新しめのシステムでは、 B<signal>(2)  は信頼性のあるシグナル処理方"
10964 "式を提供している。 詳細は B<signal>(2)  を参照。"
10965
10966 #. type: Plain text
10967 #: build/C/man3/sysv_signal.3:92
10968 msgid "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
10969 msgstr "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
10970
10971 #. type: TH
10972 #: build/C/man2/timer_create.2:31
10973 #, no-wrap
10974 msgid "TIMER_CREATE"
10975 msgstr "TIMER_CREATE"
10976
10977 #. type: TH
10978 #: build/C/man2/timer_create.2:31
10979 #, no-wrap
10980 msgid "2010-09-27"
10981 msgstr "2010-09-27"
10982
10983 #. type: Plain text
10984 #: build/C/man2/timer_create.2:34
10985 msgid "timer_create - create a POSIX per-process timer"
10986 msgstr ""
10987
10988 #. type: Plain text
10989 #: build/C/man2/timer_create.2:38
10990 #, no-wrap
10991 msgid ""
10992 "B<#include E<lt>signal.hE<gt>>\n"
10993 "B<#include E<lt>time.hE<gt>>\n"
10994 msgstr ""
10995 "B<#include E<lt>signal.hE<gt>>\n"
10996 "B<#include E<lt>time.hE<gt>>\n"
10997
10998 #. type: Plain text
10999 #: build/C/man2/timer_create.2:41
11000 #, no-wrap
11001 msgid ""
11002 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
11003 "B<                 timer_t *>I<timerid>B<);>\n"
11004 msgstr ""
11005 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
11006 "B<                 timer_t *>I<timerid>B<);>\n"
11007
11008 #. type: Plain text
11009 #: build/C/man2/timer_create.2:44 build/C/man2/timer_delete.2:37
11010 #: build/C/man2/timer_getoverrun.2:37 build/C/man2/timer_settime.2:41
11011 msgid "Link with I<-lrt>."
11012 msgstr ""
11013
11014 #. type: Plain text
11015 #: build/C/man2/timer_create.2:52
11016 msgid "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11017 msgstr "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11018
11019 #. type: Plain text
11020 #: build/C/man2/timer_create.2:60
11021 msgid ""
11022 "B<timer_create>()  creates a new per-process interval timer.  The ID of the "
11023 "new timer is returned in the buffer pointed to by I<timerid>, which must be "
11024 "a non-NULL pointer.  This ID is unique within the process, until the timer "
11025 "is deleted.  The new timer is initially disarmed."
11026 msgstr ""
11027
11028 #. type: Plain text
11029 #: build/C/man2/timer_create.2:65
11030 msgid ""
11031 "The I<clockid> argument specifies the clock that the new timer uses to "
11032 "measure time.  It can be specified as one of the following values:"
11033 msgstr ""
11034
11035 #. type: TP
11036 #: build/C/man2/timer_create.2:65
11037 #, no-wrap
11038 msgid "B<CLOCK_REALTIME>"
11039 msgstr "B<CLOCK_REALTIME>"
11040
11041 #. type: Plain text
11042 #: build/C/man2/timer_create.2:68
11043 msgid "A settable system-wide real-time clock."
11044 msgstr ""
11045
11046 #. type: TP
11047 #: build/C/man2/timer_create.2:68
11048 #, no-wrap
11049 msgid "B<CLOCK_MONOTONIC>"
11050 msgstr "B<CLOCK_MONOTONIC>"
11051
11052 #.  Note: the CLOCK_MONOTONIC_RAW clock added for clock_gettime()
11053 #.  in 2.6.28 is not supported for POSIX timers -- mtk, Feb 2009
11054 #. type: Plain text
11055 #: build/C/man2/timer_create.2:75
11056 msgid ""
11057 "A nonsettable monotonically increasing clock that measures time from some "
11058 "unspecified point in the past that does not change after system startup."
11059 msgstr ""
11060
11061 #. type: TP
11062 #: build/C/man2/timer_create.2:75
11063 #, no-wrap
11064 msgid "B<CLOCK_PROCESS_CPUTIME_ID> (since Linux 2.6.12)"
11065 msgstr ""
11066
11067 #. type: Plain text
11068 #: build/C/man2/timer_create.2:79
11069 msgid ""
11070 "A clock that measures (user and system) CPU time consumed by (all of the "
11071 "threads in) the calling process."
11072 msgstr ""
11073
11074 #. type: TP
11075 #: build/C/man2/timer_create.2:79
11076 #, no-wrap
11077 msgid "B<CLOCK_THREAD_CPUTIME_ID> (since Linux 2.6.12)"
11078 msgstr ""
11079
11080 #.  The CLOCK_MONOTONIC_RAW that was added in 2.6.28 can't be used
11081 #.  to create a timer -- mtk, Feb 2009
11082 #. type: Plain text
11083 #: build/C/man2/timer_create.2:85
11084 msgid ""
11085 "A clock that measures (user and system) CPU time consumed by the calling "
11086 "thread."
11087 msgstr ""
11088
11089 #. type: Plain text
11090 #: build/C/man2/timer_create.2:94
11091 msgid ""
11092 "As well as the above values, I<clockid> can be specified as the I<clockid> "
11093 "returned by a call to B<clock_getcpuclockid>(3)  or B<pthread_getcpuclockid>"
11094 "(3)."
11095 msgstr ""
11096
11097 #. type: Plain text
11098 #: build/C/man2/timer_create.2:103
11099 msgid ""
11100 "The I<sevp> argument points to a I<sigevent> structure that specifies how "
11101 "the caller should be notified when the timer expires.  For the definition "
11102 "and general details of this structure, see B<sigevent>(7)."
11103 msgstr ""
11104
11105 #. type: Plain text
11106 #: build/C/man2/timer_create.2:107
11107 msgid "The I<sevp.sigev_notify> field can have the following values:"
11108 msgstr ""
11109
11110 #. type: Plain text
11111 #: build/C/man2/timer_create.2:112
11112 msgid ""
11113 "Don't asynchronously notify when the timer expires.  Progress of the timer "
11114 "can be monitored using B<timer_gettime>(2)."
11115 msgstr ""
11116
11117 #. type: Plain text
11118 #: build/C/man2/timer_create.2:130
11119 msgid ""
11120 "Upon timer expiration, generate the signal I<sigev_signo> for the process.  "
11121 "See B<sigevent>(7)  for general details.  The I<si_code> field of the "
11122 "I<siginfo_t> structure will be set to B<SI_TIMER>.  At any point in time, at "
11123 "most one signal is queued to the process for a given timer; see "
11124 "B<timer_getoverrun>(2)  for more details."
11125 msgstr ""
11126
11127 #. type: Plain text
11128 #: build/C/man2/timer_create.2:138
11129 msgid ""
11130 "Upon timer expiration, invoke I<sigev_notify_function> as if it were the "
11131 "start function of a new thread.  See B<sigevent>(7)  for details."
11132 msgstr ""
11133
11134 #. type: Plain text
11135 #: build/C/man2/timer_create.2:152
11136 msgid ""
11137 "As for B<SIGEV_SIGNAL>, but the signal is targeted at the thread whose ID is "
11138 "given in I<sigev_notify_thread_id>, which must be a thread in the same "
11139 "process as the caller.  The I<sigev_notify_thread_id> field specifies a "
11140 "kernel thread ID, that is, the value returned by B<clone>(2)  or B<gettid>"
11141 "(2).  This flag is only intended for use by threading libraries."
11142 msgstr ""
11143
11144 #. type: Plain text
11145 #: build/C/man2/timer_create.2:167
11146 msgid ""
11147 "Specifying I<sevp> as NULL is equivalent to specifying a pointer to a "
11148 "I<sigevent> structure in which I<sigev_notify> is B<SIGEV_SIGNAL>, "
11149 "I<sigev_signo> is B<SIGALRM>, and I<sigev_value.sival_int> is the timer ID."
11150 msgstr ""
11151
11152 #. type: Plain text
11153 #: build/C/man2/timer_create.2:175
11154 msgid ""
11155 "On success, B<timer_create>()  returns 0, and the ID of the new timer is "
11156 "placed in I<*timerid>.  On failure, -1 is returned, and I<errno> is set to "
11157 "indicate the error."
11158 msgstr ""
11159
11160 #. type: Plain text
11161 #: build/C/man2/timer_create.2:179
11162 msgid "Temporary error during kernel allocation of timer structures."
11163 msgstr ""
11164
11165 #. type: Plain text
11166 #: build/C/man2/timer_create.2:187
11167 msgid ""
11168 "Clock ID, I<sigev_notify>, I<sigev_signo>, or I<sigev_notify_thread_id> is "
11169 "invalid."
11170 msgstr ""
11171
11172 #.  glibc layer: malloc()
11173 #. type: Plain text
11174 #: build/C/man2/timer_create.2:191
11175 msgid "Could not allocate memory."
11176 msgstr ""
11177
11178 #. type: Plain text
11179 #: build/C/man2/timer_create.2:193 build/C/man2/timer_delete.2:67
11180 #: build/C/man2/timer_getoverrun.2:97
11181 msgid "This system call is available since Linux 2.6."
11182 msgstr ""
11183
11184 #. type: Plain text
11185 #: build/C/man2/timer_create.2:198
11186 msgid "A program may create multiple interval timers using B<timer_create>()."
11187 msgstr ""
11188
11189 #. type: Plain text
11190 #: build/C/man2/timer_create.2:203
11191 msgid ""
11192 "Timers are not inherited by the child of a B<fork>(2), and are disarmed and "
11193 "deleted during an B<execve>(2)."
11194 msgstr ""
11195
11196 #. type: Plain text
11197 #: build/C/man2/timer_create.2:211
11198 msgid ""
11199 "The kernel preallocates a \"queued real-time signal\" for each timer created "
11200 "using B<timer_create>().  Consequently, the number of timers is limited by "
11201 "the B<RLIMIT_SIGPENDING> resource limit (see B<setrlimit>(2))."
11202 msgstr ""
11203
11204 #. type: Plain text
11205 #: build/C/man2/timer_create.2:216
11206 msgid ""
11207 "The timers created by B<timer_create>()  are commonly known as \"POSIX "
11208 "(interval) timers\".  The POSIX timers API consists of the following "
11209 "interfaces:"
11210 msgstr ""
11211
11212 #. type: Plain text
11213 #: build/C/man2/timer_create.2:219
11214 msgid "B<timer_create>(): Create a timer."
11215 msgstr ""
11216
11217 #. type: Plain text
11218 #: build/C/man2/timer_create.2:222
11219 msgid "B<timer_settime>(2): Arm (start) or disarm (stop) a timer."
11220 msgstr ""
11221
11222 #. type: Plain text
11223 #: build/C/man2/timer_create.2:226
11224 msgid ""
11225 "B<timer_gettime>(2): Fetch the time remaining until the next expiration of a "
11226 "timer, along with the interval setting of the timer."
11227 msgstr ""
11228
11229 #. type: Plain text
11230 #: build/C/man2/timer_create.2:229
11231 msgid ""
11232 "B<timer_getoverrun>(2): Return the overrun count for the last timer "
11233 "expiration."
11234 msgstr ""
11235
11236 #. type: Plain text
11237 #: build/C/man2/timer_create.2:232
11238 msgid "B<timer_delete>(2): Disarm and delete a timer."
11239 msgstr ""
11240
11241 #. type: Plain text
11242 #: build/C/man2/timer_create.2:235
11243 msgid ""
11244 "Part of the implementation of the POSIX timers API is provided by glibc.  In "
11245 "particular:"
11246 msgstr ""
11247
11248 #. type: Plain text
11249 #: build/C/man2/timer_create.2:239
11250 msgid ""
11251 "The functionality for B<SIGEV_THREAD> is implemented within glibc, rather "
11252 "than the kernel."
11253 msgstr ""
11254
11255 #.  See the glibc source file kernel-posix-timers.h for the structure
11256 #.  that glibc uses to map user-space timer IDs to kernel timer IDs
11257 #.  The kernel-level timer ID is exposed via siginfo.si_tid.
11258 #. type: Plain text
11259 #: build/C/man2/timer_create.2:245
11260 msgid ""
11261 "The timer IDs presented at user level are maintained by glibc, which maps "
11262 "these IDs to the timer IDs employed by the kernel."
11263 msgstr ""
11264
11265 #. type: Plain text
11266 #: build/C/man2/timer_create.2:253
11267 msgid ""
11268 "The POSIX timers system calls first appeared in Linux 2.6.  Prior to this, "
11269 "glibc provided an incomplete user-space implementation (B<CLOCK_REALTIME> "
11270 "timers only) using POSIX threads, and current glibc falls back to this "
11271 "implementation on systems running pre-2.6 Linux kernels."
11272 msgstr ""
11273
11274 #. type: Plain text
11275 #: build/C/man2/timer_create.2:265
11276 msgid ""
11277 "The program below takes two arguments: a sleep period in seconds, and a "
11278 "timer frequency in nanoseconds.  The program establishes a handler for the "
11279 "signal it uses for the timer, blocks that signal, creates and arms a timer "
11280 "that expires with the given frequency, sleeps for the specified number of "
11281 "seconds, and then unblocks the timer signal.  Assuming that the timer "
11282 "expired at least once while the program slept, the signal handler will be "
11283 "invoked, and the handler displays some information about the timer "
11284 "notification.  The program terminates after one invocation of the signal "
11285 "handler."
11286 msgstr ""
11287
11288 #. type: Plain text
11289 #: build/C/man2/timer_create.2:270
11290 msgid ""
11291 "In the following example run, the program sleeps for 1 second, after "
11292 "creating a timer that has a frequency of 100 nanoseconds.  By the time the "
11293 "signal is unblocked and delivered, there have been around ten million "
11294 "overruns."
11295 msgstr ""
11296
11297 #. type: Plain text
11298 #: build/C/man2/timer_create.2:282
11299 #, no-wrap
11300 msgid ""
11301 "$ B<./a.out 1 100>\n"
11302 "Establishing handler for signal 34\n"
11303 "Blocking signal 34\n"
11304 "timer ID is 0x804c008\n"
11305 "Sleeping for 1 seconds\n"
11306 "Unblocking signal 34\n"
11307 "Caught signal 34\n"
11308 "    sival_ptr = 0xbfb174f4;     *sival_ptr = 0x804c008\n"
11309 "    overrun count = 10004886\n"
11310 msgstr ""
11311
11312 #. type: Plain text
11313 #: build/C/man2/timer_create.2:292
11314 #, no-wrap
11315 msgid ""
11316 "#include E<lt>stdlib.hE<gt>\n"
11317 "#include E<lt>unistd.hE<gt>\n"
11318 "#include E<lt>stdio.hE<gt>\n"
11319 "#include E<lt>signal.hE<gt>\n"
11320 "#include E<lt>time.hE<gt>\n"
11321 msgstr ""
11322 "#include E<lt>stdlib.hE<gt>\n"
11323 "#include E<lt>unistd.hE<gt>\n"
11324 "#include E<lt>stdio.hE<gt>\n"
11325 "#include E<lt>signal.hE<gt>\n"
11326 "#include E<lt>time.hE<gt>\n"
11327
11328 #. type: Plain text
11329 #: build/C/man2/timer_create.2:295
11330 #, no-wrap
11331 msgid ""
11332 "#define CLOCKID CLOCK_REALTIME\n"
11333 "#define SIG SIGRTMIN\n"
11334 msgstr ""
11335 "#define CLOCKID CLOCK_REALTIME\n"
11336 "#define SIG SIGRTMIN\n"
11337
11338 #. type: Plain text
11339 #: build/C/man2/timer_create.2:298
11340 #, no-wrap
11341 msgid ""
11342 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
11343 "                        } while (0)\n"
11344 msgstr ""
11345 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
11346 "                        } while (0)\n"
11347
11348 #. type: Plain text
11349 #: build/C/man2/timer_create.2:304
11350 #, no-wrap
11351 msgid ""
11352 "static void\n"
11353 "print_siginfo(siginfo_t *si)\n"
11354 "{\n"
11355 "    timer_t *tidp;\n"
11356 "    int or;\n"
11357 msgstr ""
11358 "static void\n"
11359 "print_siginfo(siginfo_t *si)\n"
11360 "{\n"
11361 "    timer_t *tidp;\n"
11362 "    int or;\n"
11363
11364 #. type: Plain text
11365 #: build/C/man2/timer_create.2:306
11366 #, no-wrap
11367 msgid "    tidp = si-E<gt>si_value.sival_ptr;\n"
11368 msgstr "    tidp = si-E<gt>si_value.sival_ptr;\n"
11369
11370 #. type: Plain text
11371 #: build/C/man2/timer_create.2:309
11372 #, no-wrap
11373 msgid ""
11374 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
11375 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
11376 msgstr ""
11377 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
11378 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
11379
11380 #. type: Plain text
11381 #: build/C/man2/timer_create.2:316
11382 #, no-wrap
11383 msgid ""
11384 "    or = timer_getoverrun(*tidp);\n"
11385 "    if (or == -1)\n"
11386 "        errExit(\"timer_getoverrun\");\n"
11387 "    else\n"
11388 "        printf(\"    overrun count = %d\\en\", or);\n"
11389 "}\n"
11390 msgstr ""
11391 "    or = timer_getoverrun(*tidp);\n"
11392 "    if (or == -1)\n"
11393 "        errExit(\"timer_getoverrun\");\n"
11394 "    else\n"
11395 "        printf(\"    overrun count = %d\\en\", or);\n"
11396 "}\n"
11397
11398 #. type: Plain text
11399 #: build/C/man2/timer_create.2:323
11400 #, no-wrap
11401 msgid ""
11402 "static void\n"
11403 "handler(int sig, siginfo_t *si, void *uc)\n"
11404 "{\n"
11405 "    /* Note: calling printf() from a signal handler is not\n"
11406 "       strictly correct, since printf() is not async-signal-safe;\n"
11407 "       see signal(7) */\n"
11408 msgstr ""
11409 "static void\n"
11410 "handler(int sig, siginfo_t *si, void *uc)\n"
11411 "{\n"
11412 "    /* Note: calling printf() from a signal handler is not\n"
11413 "       strictly correct, since printf() is not async-signal-safe;\n"
11414 "       see signal(7) */\n"
11415
11416 #. type: Plain text
11417 #: build/C/man2/timer_create.2:328
11418 #, no-wrap
11419 msgid ""
11420 "    printf(\"Caught signal %d\\en\", sig);\n"
11421 "    print_siginfo(si);\n"
11422 "    signal(sig, SIG_IGN);\n"
11423 "}\n"
11424 msgstr ""
11425 "    printf(\"Caught signal %d\\en\", sig);\n"
11426 "    print_siginfo(si);\n"
11427 "    signal(sig, SIG_IGN);\n"
11428 "}\n"
11429
11430 #. type: Plain text
11431 #: build/C/man2/timer_create.2:338
11432 #, no-wrap
11433 msgid ""
11434 "int\n"
11435 "main(int argc, char *argv[])\n"
11436 "{\n"
11437 "    timer_t timerid;\n"
11438 "    struct sigevent sev;\n"
11439 "    struct itimerspec its;\n"
11440 "    long long freq_nanosecs;\n"
11441 "    sigset_t mask;\n"
11442 "    struct sigaction sa;\n"
11443 msgstr ""
11444 "int\n"
11445 "main(int argc, char *argv[])\n"
11446 "{\n"
11447 "    timer_t timerid;\n"
11448 "    struct sigevent sev;\n"
11449 "    struct itimerspec its;\n"
11450 "    long long freq_nanosecs;\n"
11451 "    sigset_t mask;\n"
11452 "    struct sigaction sa;\n"
11453
11454 #. type: Plain text
11455 #: build/C/man2/timer_create.2:344
11456 #, no-wrap
11457 msgid ""
11458 "    if (argc != 3) {\n"
11459 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
11460 "                argv[0]);\n"
11461 "        exit(EXIT_FAILURE);\n"
11462 "    }\n"
11463 msgstr ""
11464 "    if (argc != 3) {\n"
11465 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
11466 "                argv[0]);\n"
11467 "        exit(EXIT_FAILURE);\n"
11468 "    }\n"
11469
11470 #. type: Plain text
11471 #: build/C/man2/timer_create.2:346
11472 #, no-wrap
11473 msgid "    /* Establish handler for timer signal */\n"
11474 msgstr "    /* Establish handler for timer signal */\n"
11475
11476 #. type: Plain text
11477 #: build/C/man2/timer_create.2:353
11478 #, no-wrap
11479 msgid ""
11480 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
11481 "    sa.sa_flags = SA_SIGINFO;\n"
11482 "    sa.sa_sigaction = handler;\n"
11483 "    sigemptyset(&sa.sa_mask);\n"
11484 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
11485 "        errExit(\"sigaction\");\n"
11486 msgstr ""
11487 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
11488 "    sa.sa_flags = SA_SIGINFO;\n"
11489 "    sa.sa_sigaction = handler;\n"
11490 "    sigemptyset(&sa.sa_mask);\n"
11491 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
11492 "        errExit(\"sigaction\");\n"
11493
11494 #. type: Plain text
11495 #: build/C/man2/timer_create.2:355
11496 #, no-wrap
11497 msgid "    /* Block timer signal temporarily */\n"
11498 msgstr "    /* Block timer signal temporarily */\n"
11499
11500 #. type: Plain text
11501 #: build/C/man2/timer_create.2:361
11502 #, no-wrap
11503 msgid ""
11504 "    printf(\"Blocking signal %d\\en\", SIG);\n"
11505 "    sigemptyset(&mask);\n"
11506 "    sigaddset(&mask, SIG);\n"
11507 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
11508 "        errExit(\"sigprocmask\");\n"
11509 msgstr ""
11510 "    printf(\"Blocking signal %d\\en\", SIG);\n"
11511 "    sigemptyset(&mask);\n"
11512 "    sigaddset(&mask, SIG);\n"
11513 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
11514 "        errExit(\"sigprocmask\");\n"
11515
11516 #. type: Plain text
11517 #: build/C/man2/timer_create.2:363
11518 #, no-wrap
11519 msgid "    /* Create the timer */\n"
11520 msgstr "    /* Create the timer */\n"
11521
11522 #. type: Plain text
11523 #: build/C/man2/timer_create.2:369
11524 #, no-wrap
11525 msgid ""
11526 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
11527 "    sev.sigev_signo = SIG;\n"
11528 "    sev.sigev_value.sival_ptr = &timerid;\n"
11529 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
11530 "        errExit(\"timer_create\");\n"
11531 msgstr ""
11532 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
11533 "    sev.sigev_signo = SIG;\n"
11534 "    sev.sigev_value.sival_ptr = &timerid;\n"
11535 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
11536 "        errExit(\"timer_create\");\n"
11537
11538 #. type: Plain text
11539 #: build/C/man2/timer_create.2:371
11540 #, no-wrap
11541 msgid "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
11542 msgstr "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
11543
11544 #. type: Plain text
11545 #: build/C/man2/timer_create.2:373
11546 #, no-wrap
11547 msgid "    /* Start the timer */\n"
11548 msgstr "    /* Start the timer */\n"
11549
11550 #. type: Plain text
11551 #: build/C/man2/timer_create.2:379
11552 #, no-wrap
11553 msgid ""
11554 "    freq_nanosecs = atoll(argv[2]);\n"
11555 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
11556 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
11557 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
11558 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
11559 msgstr ""
11560 "    freq_nanosecs = atoll(argv[2]);\n"
11561 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
11562 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
11563 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
11564 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
11565
11566 #. type: Plain text
11567 #: build/C/man2/timer_create.2:382
11568 #, no-wrap
11569 msgid ""
11570 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
11571 "         errExit(\"timer_settime\");\n"
11572 msgstr ""
11573 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
11574 "         errExit(\"timer_settime\");\n"
11575
11576 #. type: Plain text
11577 #: build/C/man2/timer_create.2:385
11578 #, no-wrap
11579 msgid ""
11580 "    /* Sleep for a while; meanwhile, the timer may expire\n"
11581 "       multiple times */\n"
11582 msgstr ""
11583 "    /* Sleep for a while; meanwhile, the timer may expire\n"
11584 "       multiple times */\n"
11585
11586 #. type: Plain text
11587 #: build/C/man2/timer_create.2:388
11588 #, no-wrap
11589 msgid ""
11590 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
11591 "    sleep(atoi(argv[1]));\n"
11592 msgstr ""
11593 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
11594 "    sleep(atoi(argv[1]));\n"
11595
11596 #. type: Plain text
11597 #: build/C/man2/timer_create.2:391
11598 #, no-wrap
11599 msgid ""
11600 "    /* Unlock the timer signal, so that timer notification\n"
11601 "       can be delivered */\n"
11602 msgstr ""
11603 "    /* Unlock the timer signal, so that timer notification\n"
11604 "       can be delivered */\n"
11605
11606 #. type: Plain text
11607 #: build/C/man2/timer_create.2:395
11608 #, no-wrap
11609 msgid ""
11610 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
11611 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
11612 "        errExit(\"sigprocmask\");\n"
11613 msgstr ""
11614 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
11615 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
11616 "        errExit(\"sigprocmask\");\n"
11617
11618 #. type: Plain text
11619 #: build/C/man2/timer_create.2:398 build/C/man2/timerfd_create.2:540
11620 #, no-wrap
11621 msgid ""
11622 "    exit(EXIT_SUCCESS);\n"
11623 "}\n"
11624 msgstr ""
11625 "    exit(EXIT_SUCCESS);\n"
11626 "}\n"
11627
11628 #. type: Plain text
11629 #: build/C/man2/timer_create.2:414
11630 msgid ""
11631 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), B<timer_getoverrun>"
11632 "(2), B<timer_settime>(2), B<timerfd_create>(2), B<clock_getcpuclockid>(3), "
11633 "B<pthread_getcpuclockid>(3), B<pthreads>(7), B<sigevent>(7), B<signal>(7), "
11634 "B<time>(7)"
11635 msgstr ""
11636 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), B<timer_getoverrun>"
11637 "(2), B<timer_settime>(2), B<timerfd_create>(2), B<clock_getcpuclockid>(3), "
11638 "B<pthread_getcpuclockid>(3), B<pthreads>(7), B<sigevent>(7), B<signal>(7), "
11639 "B<time>(7)"
11640
11641 #. type: TH
11642 #: build/C/man2/timer_delete.2:26
11643 #, no-wrap
11644 msgid "TIMER_DELETE"
11645 msgstr "TIMER_DELETE"
11646
11647 #. type: TH
11648 #: build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26
11649 #, no-wrap
11650 msgid "2009-02-20"
11651 msgstr "2009-02-20"
11652
11653 #. type: Plain text
11654 #: build/C/man2/timer_delete.2:29
11655 msgid "timer_delete - delete a POSIX per-process timer"
11656 msgstr ""
11657
11658 #. type: Plain text
11659 #: build/C/man2/timer_delete.2:32 build/C/man2/timer_getoverrun.2:32
11660 #: build/C/man2/timer_settime.2:33
11661 #, no-wrap
11662 msgid "B<#include E<lt>time.hE<gt>>\n"
11663 msgstr "B<#include E<lt>time.hE<gt>>\n"
11664
11665 #. type: Plain text
11666 #: build/C/man2/timer_delete.2:34
11667 #, no-wrap
11668 msgid "B<int timer_delete(timer_t >I<timerid>B<);>\n"
11669 msgstr "B<int timer_delete(timer_t >I<timerid>B<);>\n"
11670
11671 #. type: Plain text
11672 #: build/C/man2/timer_delete.2:45
11673 msgid "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11674 msgstr "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11675
11676 #. type: Plain text
11677 #: build/C/man2/timer_delete.2:53
11678 msgid ""
11679 "B<timer_delete>()  deletes the timer whose ID is given in I<timerid>.  If "
11680 "the timer was armed at the time of this call, it is disarmed before being "
11681 "deleted.  The treatment of any pending signal generated by the deleted timer "
11682 "is unspecified."
11683 msgstr ""
11684
11685 #. type: Plain text
11686 #: build/C/man2/timer_delete.2:60
11687 msgid ""
11688 "On success, B<timer_delete>()  returns 0.  On failure, -1 is returned, and "
11689 "I<errno> is set to indicate the error."
11690 msgstr ""
11691
11692 #. type: Plain text
11693 #: build/C/man2/timer_delete.2:65 build/C/man2/timer_getoverrun.2:95
11694 msgid "I<timerid> is not a valid timer ID."
11695 msgstr ""
11696
11697 #. type: Plain text
11698 #: build/C/man2/timer_delete.2:75
11699 msgid ""
11700 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
11701 "B<timer_settime>(2), B<time>(7)"
11702 msgstr ""
11703 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
11704 "B<timer_settime>(2), B<time>(7)"
11705
11706 #. type: TH
11707 #: build/C/man2/timer_getoverrun.2:26
11708 #, no-wrap
11709 msgid "TIMER_GETOVERRUN"
11710 msgstr "TIMER_GETOVERRUN"
11711
11712 #. type: Plain text
11713 #: build/C/man2/timer_getoverrun.2:29
11714 msgid "timer_getoverrun - get overrun count for a POSIX per-process timer"
11715 msgstr ""
11716
11717 #. type: Plain text
11718 #: build/C/man2/timer_getoverrun.2:34
11719 #, no-wrap
11720 msgid "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
11721 msgstr "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
11722
11723 #. type: Plain text
11724 #: build/C/man2/timer_getoverrun.2:45
11725 msgid "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11726 msgstr "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11727
11728 #. type: Plain text
11729 #: build/C/man2/timer_getoverrun.2:56
11730 msgid ""
11731 "B<timer_getoverrun>()  returns the \"overrun count\" for the timer referred "
11732 "to by I<timerid>.  An application can use the overrun count to accurately "
11733 "calculate the number of timer expirations that would have occurred over a "
11734 "given time interval.  Timer overruns can occur both when receiving "
11735 "expiration notifications via signals (B<SIGEV_SIGNAL>), and via threads "
11736 "(B<SIGEV_THREAD>)."
11737 msgstr ""
11738
11739 #. type: Plain text
11740 #: build/C/man2/timer_getoverrun.2:76
11741 msgid ""
11742 "When expiration notifications are delivered via a signal, overruns can occur "
11743 "as follows.  Regardless of whether or not a real-time signal is used for "
11744 "timer notifications, the system queues at most one signal per timer.  (This "
11745 "is the behavior specified by POSIX.1-2001.  The alternative, queuing one "
11746 "signal for each timer expiration, could easily result in overflowing the "
11747 "allowed limits for queued signals on the system.)  Because of system "
11748 "scheduling delays, or because the signal may be temporarily blocked, there "
11749 "can be a delay between the time when the notification signal is generated "
11750 "and the time when it is delivered (e.g., caught by a signal handler) or "
11751 "accepted (e.g., using B<sigwaitinfo>(2)).  In this interval, further timer "
11752 "expirations may occur.  The timer overrun count is the number of additional "
11753 "timer expirations that occurred between the time when the signal was "
11754 "generated and when it was delivered or accepted."
11755 msgstr ""
11756
11757 #. type: Plain text
11758 #: build/C/man2/timer_getoverrun.2:82
11759 msgid ""
11760 "Timer overruns can also occur when expiration notifications are delivered "
11761 "via invocation of a thread, since there may be an arbitrary delay between an "
11762 "expiration of the timer and the invocation of the notification thread, and "
11763 "in that delay interval, additional timer expirations may occur"
11764 msgstr ""
11765
11766 #. type: Plain text
11767 #: build/C/man2/timer_getoverrun.2:90
11768 msgid ""
11769 "On success, B<timer_getoverrun>()  returns the overrun count of the "
11770 "specified timer; this count may be 0 if no overruns have occurred.  On "
11771 "failure, -1 is returned, and I<errno> is set to indicate the error."
11772 msgstr ""
11773
11774 #. type: Plain text
11775 #: build/C/man2/timer_getoverrun.2:111
11776 msgid ""
11777 "When timer notifications are delivered via signals (B<SIGEV_SIGNAL>), on "
11778 "Linux it is also possible to obtain the overrun count via the I<si_overrun> "
11779 "field of the I<siginfo_t> structure (see B<sigaction>(2)).  This allows an "
11780 "application to avoid the overhead of making a system call to obtain the "
11781 "overrun count, but is a nonportable extension to POSIX.1-2001."
11782 msgstr ""
11783
11784 #.  FIXME . Austin bug filed, 11 Feb 09
11785 #. type: Plain text
11786 #: build/C/man2/timer_getoverrun.2:115
11787 msgid ""
11788 "POSIX.1-2001 only discusses timer overruns in the context of timer "
11789 "notifications using signals."
11790 msgstr ""
11791
11792 #.  Bug filed: http://bugzilla.kernel.org/show_bug.cgi?id=12665
11793 #.  http://thread.gmane.org/gmane.linux.kernel/113276/
11794 #. type: Plain text
11795 #: build/C/man2/timer_getoverrun.2:128
11796 msgid ""
11797 "POSIX.1-2001 specifies that if the timer overrun count is equal to or "
11798 "greater than an implementation-defined maximum, B<DELAYTIMER_MAX>, then "
11799 "B<timer_getoverrun>()  should return B<DELAYTIMER_MAX>.  However, Linux does "
11800 "not implement this feature: instead, if the timer overrun value exceeds the "
11801 "maximum representable integer, the counter cycles, starting once more from "
11802 "low values."
11803 msgstr ""
11804
11805 #. type: Plain text
11806 #: build/C/man2/timer_getoverrun.2:131 build/C/man2/timer_settime.2:212
11807 msgid "See B<timer_create>(2)."
11808 msgstr ""
11809
11810 #. type: Plain text
11811 #: build/C/man2/timer_getoverrun.2:141
11812 msgid ""
11813 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
11814 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
11815 "B<time>(7)"
11816 msgstr ""
11817 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
11818 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
11819 "B<time>(7)"
11820
11821 #. type: TH
11822 #: build/C/man2/timer_settime.2:26
11823 #, no-wrap
11824 msgid "TIMER_SETTIME"
11825 msgstr "TIMER_SETTIME"
11826
11827 #. type: TH
11828 #: build/C/man2/timer_settime.2:26
11829 #, fuzzy, no-wrap
11830 #| msgid "2012-04-15"
11831 msgid "2012-10-15"
11832 msgstr "2012-04-15"
11833
11834 #. type: Plain text
11835 #: build/C/man2/timer_settime.2:30
11836 msgid ""
11837 "timer_settime, timer_gettime - arm/disarm and fetch state of POSIX per-"
11838 "process timer"
11839 msgstr ""
11840
11841 #. type: Plain text
11842 #: build/C/man2/timer_settime.2:38
11843 #, no-wrap
11844 msgid ""
11845 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
11846 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
11847 "B<                  struct itimerspec * >I<old_value>B<);>\n"
11848 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
11849 msgstr ""
11850 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
11851 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
11852 "B<                  struct itimerspec * >I<old_value>B<);>\n"
11853 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
11854
11855 #. type: Plain text
11856 #: build/C/man2/timer_settime.2:50
11857 msgid ""
11858 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11859 msgstr ""
11860 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11861
11862 #. type: Plain text
11863 #: build/C/man2/timer_settime.2:63
11864 msgid ""
11865 "B<timer_settime>()  arms or disarms the timer identified by I<timerid>.  The "
11866 "I<new_value> argument is pointer to an I<itimerspec> structure that "
11867 "specifies the new initial value and the new interval for the timer.  The "
11868 "I<itimerspec> structure is defined as follows:"
11869 msgstr ""
11870
11871 #. type: Plain text
11872 #: build/C/man2/timer_settime.2:70 build/C/man2/timerfd_create.2:128
11873 #, no-wrap
11874 msgid ""
11875 "struct timespec {\n"
11876 "    time_t tv_sec;                /* Seconds */\n"
11877 "    long   tv_nsec;               /* Nanoseconds */\n"
11878 "};\n"
11879 msgstr ""
11880 "struct timespec {\n"
11881 "    time_t tv_sec;                /* Seconds */\n"
11882 "    long   tv_nsec;               /* Nanoseconds */\n"
11883 "};\n"
11884
11885 #. type: Plain text
11886 #: build/C/man2/timer_settime.2:75
11887 #, no-wrap
11888 msgid ""
11889 "struct itimerspec {\n"
11890 "    struct timespec it_interval;  /* Timer interval */\n"
11891 "    struct timespec it_value;     /* Initial expiration */\n"
11892 "};\n"
11893 msgstr ""
11894 "struct itimerspec {\n"
11895 "    struct timespec it_interval;  /* Timer interval */\n"
11896 "    struct timespec it_value;     /* Initial expiration */\n"
11897 "};\n"
11898
11899 #. type: Plain text
11900 #: build/C/man2/timer_settime.2:87
11901 msgid ""
11902 "Each of the substructures of the I<itimerspec> structure is a I<timespec> "
11903 "structure that allows a time value to be specified in seconds and "
11904 "nanoseconds.  These time values are measured according to the clock that was "
11905 "specified when the timer was created by B<timer_create>(2)"
11906 msgstr ""
11907
11908 #. type: Plain text
11909 #: build/C/man2/timer_settime.2:101
11910 msgid ""
11911 "If I<new_value-E<gt>it_value> specifies a nonzero value (i.e., either "
11912 "subfield is nonzero), then B<timer_settime>()  arms (starts) the timer, "
11913 "setting it to initially expire at the given time.  (If the timer was already "
11914 "armed, then the previous settings are overwritten.)  If I<new_value-"
11915 "E<gt>it_value> specifies a zero value (i.e., both subfields are zero), then "
11916 "the timer is disarmed."
11917 msgstr ""
11918
11919 #. type: Plain text
11920 #: build/C/man2/timer_settime.2:113
11921 msgid ""
11922 "The I<new_value-E<gt>it_interval> field specifies the period of the timer, "
11923 "in seconds and nanoseconds.  If this field is nonzero, then each time that "
11924 "an armed timer expires, the timer is reloaded from the value specified in "
11925 "I<new_value-E<gt>it_interval>.  If I<new_value-E<gt>it_interval> specifies a "
11926 "zero value then the timer expires just once, at the time specified by "
11927 "I<it_value>."
11928 msgstr ""
11929
11930 #.  By experiment: the overrun count is set correctly, for CLOCK_REALTIME.
11931 #. type: Plain text
11932 #: build/C/man2/timer_settime.2:134
11933 msgid ""
11934 "By default, the initial expiration time specified in I<new_value-"
11935 "E<gt>it_value> is interpreted relative to the current time on the timer's "
11936 "clock at the time of the call.  This can be modified by specifying "
11937 "B<TIMER_ABSTIME> in I<flags>, in which case I<new_value-E<gt>it_value> is "
11938 "interpreted as an absolute value as measured on the timer's clock; that is, "
11939 "the timer will expire when the clock value reaches the value specified by "
11940 "I<new_value-E<gt>it_value>.  If the specified absolute time has already "
11941 "passed, then the timer expires immediately, and the overrun count (see "
11942 "B<timer_getoverrun>(2))  will be set correctly."
11943 msgstr ""
11944
11945 #.  Similar remarks might apply with respect to process and thread CPU time
11946 #.  clocks, but these clocks are not currently (2.6.28) settable on Linux.
11947 #. type: Plain text
11948 #: build/C/man2/timer_settime.2:144
11949 msgid ""
11950 "If the value of the B<CLOCK_REALTIME> clock is adjusted while an absolute "
11951 "timer based on that clock is armed, then the expiration of the timer will be "
11952 "appropriately adjusted.  Adjustments to the B<CLOCK_REALTIME> clock have no "
11953 "effect on relative timers based on that clock."
11954 msgstr ""
11955
11956 #. type: Plain text
11957 #: build/C/man2/timer_settime.2:153
11958 msgid ""
11959 "If I<old_value> is not NULL, then it points to a buffer that is used to "
11960 "return the previous interval of the timer (in I<old_value-"
11961 "E<gt>it_interval>)  and the amount of time until the timer would previously "
11962 "have next expired (in I<old_value-E<gt>it_value>)."
11963 msgstr ""
11964
11965 #. type: Plain text
11966 #: build/C/man2/timer_settime.2:173
11967 msgid ""
11968 "B<timer_gettime>()  returns the time until next expiration, and the "
11969 "interval, for the timer specified by I<timerid>, in the buffer pointed to by "
11970 "I<curr_value>.  The time remaining until the next timer expiration is "
11971 "returned in I<curr_value-E<gt>it_value>; this is always a relative value, "
11972 "regardless of whether the B<TIMER_ABSTIME> flag was used when arming the "
11973 "timer.  If the value returned in I<curr_value-E<gt>it_value> is zero, then "
11974 "the timer is currently disarmed.  The timer interval is returned in "
11975 "I<curr_value-E<gt>it_interval>.  If the value returned in I<curr_value-"
11976 "E<gt>it_interval> is zero, then this is a \"one-shot\" timer."
11977 msgstr ""
11978
11979 #. type: Plain text
11980 #: build/C/man2/timer_settime.2:182
11981 msgid ""
11982 "On success, B<timer_settime>()  and B<timer_gettime>()  return 0.  On error, "
11983 "-1 is returned, and I<errno> is set to indicate the error."
11984 msgstr ""
11985
11986 #. type: Plain text
11987 #: build/C/man2/timer_settime.2:184
11988 msgid "These functions may fail with the following errors:"
11989 msgstr ""
11990
11991 #. type: Plain text
11992 #: build/C/man2/timer_settime.2:191
11993 msgid "I<new_value>, I<old_value>, or I<curr_value> is not a valid pointer."
11994 msgstr ""
11995
11996 #.  FIXME . eventually: invalid value in flags
11997 #. type: Plain text
11998 #: build/C/man2/timer_settime.2:196
11999 msgid "I<timerid> is invalid."
12000 msgstr ""
12001
12002 #. type: Plain text
12003 #: build/C/man2/timer_settime.2:199
12004 msgid "B<timer_settime>()  may fail with the following errors:"
12005 msgstr ""
12006
12007 #. type: Plain text
12008 #: build/C/man2/timer_settime.2:205
12009 msgid ""
12010 "I<new_value.it_value> is negative; or I<new_value.it_value.tv_nsec> is "
12011 "negative or greater than 999,999,999."
12012 msgstr ""
12013
12014 #. type: Plain text
12015 #: build/C/man2/timer_settime.2:207
12016 msgid "These system calls are available since Linux 2.6."
12017 msgstr ""
12018
12019 #. type: Plain text
12020 #: build/C/man2/timer_settime.2:216
12021 msgid "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
12022 msgstr "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
12023
12024 #. type: TH
12025 #: build/C/man2/timerfd_create.2:21
12026 #, no-wrap
12027 msgid "TIMERFD_CREATE"
12028 msgstr "TIMERFD_CREATE"
12029
12030 #. type: TH
12031 #: build/C/man2/timerfd_create.2:21
12032 #, no-wrap
12033 msgid "2011-09-14"
12034 msgstr "2011-09-14"
12035
12036 #. type: Plain text
12037 #: build/C/man2/timerfd_create.2:25
12038 msgid ""
12039 "timerfd_create, timerfd_settime, timerfd_gettime - timers that notify via "
12040 "file descriptors"
12041 msgstr ""
12042 "timerfd_create, timerfd_settime, timerfd_gettime - ファイルディスクリプタ経由"
12043 "で通知するタイマー"
12044
12045 #. type: Plain text
12046 #: build/C/man2/timerfd_create.2:28
12047 #, no-wrap
12048 msgid "B<#include E<lt>sys/timerfd.hE<gt>>\n"
12049 msgstr "B<#include E<lt>sys/timerfd.hE<gt>>\n"
12050
12051 #. type: Plain text
12052 #: build/C/man2/timerfd_create.2:30
12053 #, no-wrap
12054 msgid "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
12055 msgstr "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
12056
12057 #. type: Plain text
12058 #: build/C/man2/timerfd_create.2:34
12059 #, no-wrap
12060 msgid ""
12061 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
12062 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
12063 "B<                    struct itimerspec *>I<old_value>B<);>\n"
12064 msgstr ""
12065 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
12066 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
12067 "B<                    struct itimerspec *>I<old_value>B<);>\n"
12068
12069 #. type: Plain text
12070 #: build/C/man2/timerfd_create.2:36
12071 #, no-wrap
12072 msgid "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
12073 msgstr "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
12074
12075 #. type: Plain text
12076 #: build/C/man2/timerfd_create.2:49
12077 msgid ""
12078 "These system calls create and operate on a timer that delivers timer "
12079 "expiration notifications via a file descriptor.  They provide an alternative "
12080 "to the use of B<setitimer>(2)  or B<timer_create>(2), with the advantage "
12081 "that the file descriptor may be monitored by B<select>(2), B<poll>(2), and "
12082 "B<epoll>(7)."
12083 msgstr ""
12084 "これらのシステムコールは、満了通知をファイルディスクリプタ経由で配送する タイ"
12085 "マーの生成と操作を行う。 これらは、 B<setitimer>(2)  や B<timer_create>(2)  "
12086 "を用いる方法の代わりとなるものであり、このファイルディスクリプタを B<select>"
12087 "(2), B<poll>(2), B<epoll>(7)  で監視できるという利点がある。"
12088
12089 #. type: Plain text
12090 #: build/C/man2/timerfd_create.2:61
12091 msgid ""
12092 "The use of these three system calls is analogous to the use of "
12093 "B<timer_create>(2), B<timer_settime>(2), and B<timer_gettime>(2).  (There is "
12094 "no analog of B<timer_getoverrun>(2), since that functionality is provided by "
12095 "B<read>(2), as described below.)"
12096 msgstr ""
12097 "これらのシステムコールを使うのは、それぞれ B<timer_create>(2), "
12098 "B<timer_settime>(2), B<timer_gettime>(2)  を使うのと同様である "
12099 "(B<timer_getoverrun>(2)  に対応するものはなく、以下で説明するように この機能"
12100 "は B<read>(2)  により提供される)。"
12101
12102 #. type: SS
12103 #: build/C/man2/timerfd_create.2:61
12104 #, no-wrap
12105 msgid "timerfd_create()"
12106 msgstr "timerfd_create()"
12107
12108 #. type: Plain text
12109 #: build/C/man2/timerfd_create.2:80
12110 msgid ""
12111 "B<timerfd_create>()  creates a new timer object, and returns a file "
12112 "descriptor that refers to that timer.  The I<clockid> argument specifies the "
12113 "clock that is used to mark the progress of the timer, and must be either "
12114 "B<CLOCK_REALTIME> or B<CLOCK_MONOTONIC>.  B<CLOCK_REALTIME> is a settable "
12115 "system-wide clock.  B<CLOCK_MONOTONIC> is a nonsettable clock that is not "
12116 "affected by discontinuous changes in the system clock (e.g., manual changes "
12117 "to system time).  The current value of each of these clocks can be retrieved "
12118 "using B<clock_gettime>(2)."
12119 msgstr ""
12120 "B<timerfd_create>()  は新規のタイマーオブジェクトを生成し、そのタイマーを参照"
12121 "するファイル ディスクリプタを返す。 I<clockid> 引き数は、タイマーの進捗を管理"
12122 "するためのクロックを指定するもので、 B<CLOCK_REALTIME> か B<CLOCK_MONOTONIC> "
12123 "のいずれかでなければならない。 B<CLOCK_REALTIME> はシステム全体で使用されるク"
12124 "ロックで、このクロックは変更可能である。 B<CLOCK_MONOTONIC> は変更されること"
12125 "のないクロックで、(システム時刻の手動での変更などの)  システムクロックの不連"
12126 "続な変化の影響を受けない。 これらのクロックの現在の値は B<clock_gettime>(2)  "
12127 "を使って取得できる。"
12128
12129 #. type: Plain text
12130 #: build/C/man2/timerfd_create.2:85
12131 msgid ""
12132 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
12133 "I<flags> to change the behavior of B<timerfd_create>():"
12134 msgstr ""
12135 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
12136 "ることで、 B<timerfd_create>()  の振舞いを変更することができる。"
12137
12138 #. type: TP
12139 #: build/C/man2/timerfd_create.2:85
12140 #, no-wrap
12141 msgid "B<TFD_NONBLOCK>"
12142 msgstr "B<TFD_NONBLOCK>"
12143
12144 #. type: TP
12145 #: build/C/man2/timerfd_create.2:93
12146 #, no-wrap
12147 msgid "B<TFD_CLOEXEC>"
12148 msgstr "B<TFD_CLOEXEC>"
12149
12150 #. type: Plain text
12151 #: build/C/man2/timerfd_create.2:107
12152 msgid ""
12153 "In Linux versions up to and including 2.6.26, I<flags> must be specified as "
12154 "zero."
12155 msgstr ""
12156 "バージョン 2.6.26 以前の Linux では、 I<flags> 引き数は未使用であり、0 を指定"
12157 "しなければならない。"
12158
12159 #. type: SS
12160 #: build/C/man2/timerfd_create.2:107
12161 #, no-wrap
12162 msgid "timerfd_settime()"
12163 msgstr "timerfd_settime()"
12164
12165 #. type: Plain text
12166 #: build/C/man2/timerfd_create.2:112
12167 msgid ""
12168 "B<timerfd_settime>()  arms (starts) or disarms (stops)  the timer referred "
12169 "to by the file descriptor I<fd>."
12170 msgstr ""
12171 "B<timerfd_settime>()  は、ファイルディスクリプタ I<fd> により参照されるタイ"
12172 "マーを開始したり停止したりする。"
12173
12174 #. type: Plain text
12175 #: build/C/man2/timerfd_create.2:121
12176 msgid ""
12177 "The I<new_value> argument specifies the initial expiration and interval for "
12178 "the timer.  The I<itimer> structure used for this argument contains two "
12179 "fields, each of which is in turn a structure of type I<timespec>:"
12180 msgstr ""
12181 "I<new_value> 引き数は、タイマーの満了時間 (expiration) の初期値と間隔 "
12182 "(interval) を 指定する。この引き数で使用されている I<itimerspec> 構造体には "
12183 "2 つのフィールドがあり、各フィールドは I<timespec> 型の構造体である。"
12184
12185 #. type: Plain text
12186 #: build/C/man2/timerfd_create.2:133
12187 #, no-wrap
12188 msgid ""
12189 "struct itimerspec {\n"
12190 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
12191 "    struct timespec it_value;     /* Initial expiration */\n"
12192 "};\n"
12193 msgstr ""
12194 "struct itimerspec {\n"
12195 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
12196 "    struct timespec it_value;     /* Initial expiration */\n"
12197 "};\n"
12198
12199 #. type: Plain text
12200 #: build/C/man2/timerfd_create.2:145
12201 msgid ""
12202 "I<new_value.it_value> specifies the initial expiration of the timer, in "
12203 "seconds and nanoseconds.  Setting either field of I<new_value.it_value> to a "
12204 "nonzero value arms the timer.  Setting both fields of I<new_value.it_value> "
12205 "to zero disarms the timer."
12206 msgstr ""
12207 "I<new_value.it_value> はタイマーの満了時間の初期値を、秒とナノ秒で指定する。 "
12208 "I<new_value.it_value> のフィールドのうち少なくとも一方に 0 以外の値を設定する"
12209 "と、 タイマーが開始される。 両方のフィールドに 0 を設定すると、タイマーが停止"
12210 "する。"
12211
12212 #. type: Plain text
12213 #: build/C/man2/timerfd_create.2:154
12214 msgid ""
12215 "Setting one or both fields of I<new_value.it_interval> to nonzero values "
12216 "specifies the period, in seconds and nanoseconds, for repeated timer "
12217 "expirations after the initial expiration.  If both fields of I<new_value."
12218 "it_interval> are zero, the timer expires just once, at the time specified by "
12219 "I<new_value.it_value>."
12220 msgstr ""
12221 "I<new_value.it_interval> はタイマーの一回目の満了後に繰り返しタイマーの満了間"
12222 "隔を、秒とナノ秒で指定する。 I<new_value.it_interval> のフィールドのうち少な"
12223 "くとも一方に 0 以外の値を設定すると、 繰り返しタイマーが有効になる。 両方の"
12224 "フィールドに 0 を設定した場合、タイマーは I<new_value.it_value> で指定された"
12225 "時間後に、一回だけ満了して停止する。"
12226
12227 #. type: Plain text
12228 #: build/C/man2/timerfd_create.2:170
12229 msgid ""
12230 "The I<flags> argument is either 0, to start a relative timer (I<new_value."
12231 "it_value> specifies a time relative to the current value of the clock "
12232 "specified by I<clockid>), or B<TFD_TIMER_ABSTIME>, to start an absolute "
12233 "timer (I<new_value.it_value> specifies an absolute time for the clock "
12234 "specified by I<clockid>; that is, the timer will expire when the value of "
12235 "that clock reaches the value specified in I<new_value.it_value>)."
12236 msgstr ""
12237 "I<flags> 引き数には 0 か B<TFD_TIMER_ABSTIME> を指定する。 0 は相対時刻\n"
12238 "タイマーを意味し、 I<new_value.it_value> では I<clockid> で指定された\n"
12239 "クロックの現在の値からの相対的な時刻を指定する。 B<TFD_TIMER_ABSTIME>\n"
12240 "は絶対時刻タイマーを意味し、 I<new_value.it_interval> では I<clockid>\n"
12241 "で指定されたクロックの絶対時刻を指定する。\n"
12242 "つまり、クロックの値が I<new_value.it_interval> で指定された時刻に\n"
12243 "達したら、タイマーが満了する。"
12244
12245 #. type: Plain text
12246 #: build/C/man2/timerfd_create.2:181
12247 msgid ""
12248 "If the I<old_value> argument is not NULL, then the I<itimerspec> structure "
12249 "that it points to is used to return the setting of the timer that was "
12250 "current at the time of the call; see the description of B<timerfd_gettime>"
12251 "()  following."
12252 msgstr ""
12253 "I<old_value> 引き数が NULL でない場合、 I<old_value> 引き数が指す\n"
12254 "I<itimerspec> 構造体は、 B<timerfd_settime>() を呼び出した時点での\n"
12255 "タイマーの設定を返すのに使用される。\n"
12256 "下記の B<timerfd_gettime>() の説明を参照。"
12257
12258 #. type: SS
12259 #: build/C/man2/timerfd_create.2:181
12260 #, no-wrap
12261 msgid "timerfd_gettime()"
12262 msgstr "timerfd_gettime()"
12263
12264 #. type: Plain text
12265 #: build/C/man2/timerfd_create.2:190
12266 msgid ""
12267 "B<timerfd_gettime>()  returns, in I<curr_value>, an I<itimerspec> structure "
12268 "that contains the current setting of the timer referred to by the file "
12269 "descriptor I<fd>."
12270 msgstr ""
12271 "B<timerfd_gettime>()  は、ファイルディスクリプタ I<fd> で参照されるタイマーの"
12272 "現在の設定が入った I<itimerspec> 構造体を、 I<curr_value> に格納して返す。"
12273
12274 #. type: Plain text
12275 #: build/C/man2/timerfd_create.2:200
12276 msgid ""
12277 "The I<it_value> field returns the amount of time until the timer will next "
12278 "expire.  If both fields of this structure are zero, then the timer is "
12279 "currently disarmed.  This field always contains a relative value, regardless "
12280 "of whether the B<TFD_TIMER_ABSTIME> flag was specified when setting the "
12281 "timer."
12282 msgstr ""
12283 "I<it_value> フィールドは、タイマーが次に満了するまでの残り時間を返す。 この構"
12284 "造体の両方のフィールドが 0 であれば、タイマーは現在停止している。 タイマー設"
12285 "定時に B<TFD_TIMER_ABSTIME> フラグが指定されたかに関わらず、このフィールドは"
12286 "常に相対値が格納される。"
12287
12288 #. type: Plain text
12289 #: build/C/man2/timerfd_create.2:207
12290 msgid ""
12291 "The I<it_interval> field returns the interval of the timer.  If both fields "
12292 "of this structure are zero, then the timer is set to expire just once, at "
12293 "the time specified by I<curr_value.it_value>."
12294 msgstr ""
12295 "I<it_interval> フィールドは、タイマーの間隔を返す。 この構造体の両方のフィー"
12296 "ルドが 0 であれば、タイマーは I<new_value.it_value> で指定された時間後に一回"
12297 "だけ満了して停止するように設定されている。"
12298
12299 #. type: SS
12300 #: build/C/man2/timerfd_create.2:207
12301 #, no-wrap
12302 msgid "Operating on a timer file descriptor"
12303 msgstr "タイマー・ファイルディスクリプタに対する操作"
12304
12305 #. type: Plain text
12306 #: build/C/man2/timerfd_create.2:211
12307 msgid ""
12308 "The file descriptor returned by B<timerfd_create>()  supports the following "
12309 "operations:"
12310 msgstr ""
12311 "B<timerfd_create>()  が返すファイルディスクリプタは以下の操作をサポートしてい"
12312 "る。"
12313
12314 #. type: Plain text
12315 #: build/C/man2/timerfd_create.2:225
12316 msgid ""
12317 "If the timer has already expired one or more times since its settings were "
12318 "last modified using B<timerfd_settime>(), or since the last successful "
12319 "B<read>(2), then the buffer given to B<read>(2)  returns an unsigned 8-byte "
12320 "integer (I<uint64_t>)  containing the number of expirations that have "
12321 "occurred.  (The returned value is in host byte order, i.e., the native byte "
12322 "order for integers on the host machine.)"
12323 msgstr ""
12324 "B<timerfd_settime>()  を使ってタイマーの設定が最後変更されて以降、または "
12325 "B<read>(2)  の呼び出しに最後に成功して以降に、タイマーの満了が一回以上発生し"
12326 "ていれば、 B<read>(2)  に渡されたバッファに、タイマー満了回数を示す 8 バイト"
12327 "の unsigned 型の整数 (I<uint64_t>)  が返される (返される値はホストバイトオー"
12328 "ダ、つまりそのホストマシンにおける 整数の通常のバイトオーダである)。"
12329
12330 #. type: Plain text
12331 #: build/C/man2/timerfd_create.2:238
12332 msgid ""
12333 "If no timer expirations have occurred at the time of the B<read>(2), then "
12334 "the call either blocks until the next timer expiration, or fails with the "
12335 "error B<EAGAIN> if the file descriptor has been made nonblocking (via the "
12336 "use of the B<fcntl>(2)  B<F_SETFL> operation to set the B<O_NONBLOCK> flag)."
12337 msgstr ""
12338 "B<read>(2)  を行った時点でタイマーの満了が発生していなければ、 B<read>(2)  は"
12339 "停止 (block) する、もしくはファイルディスクリプタが 非停止 (nonblocking) に設"
12340 "定されている場合はエラー B<EAGAIN> で失敗する (非停止モードにするには、 "
12341 "B<fcntl>(2)  の B<F_SETFL> 命令で B<O_NONBLOCK> フラグをセットする)。"
12342
12343 #. type: Plain text
12344 #: build/C/man2/timerfd_create.2:244
12345 msgid ""
12346 "A B<read>(2)  will fail with the error B<EINVAL> if the size of the supplied "
12347 "buffer is less than 8 bytes."
12348 msgstr ""
12349 "渡されたバッファの大きさが 8 バイト未満の場合、 B<read>(2)  はエラー "
12350 "B<EINVAL> で失敗する。"
12351
12352 #. type: Plain text
12353 #: build/C/man2/timerfd_create.2:255
12354 msgid ""
12355 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
12356 "B<poll>(2)  B<POLLIN> flag)  if one or more timer expirations have occurred."
12357 msgstr ""
12358 "一つ以上のタイマー満了が発生していれば、 ファイルディスクリプタは読み出し可能"
12359 "となる (B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラ"
12360 "グ)。"
12361
12362 #. type: Plain text
12363 #: build/C/man2/timerfd_create.2:262
12364 msgid ""
12365 "The file descriptor also supports the other file-descriptor multiplexing "
12366 "APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
12367 msgstr ""
12368 "このファイルディスクリプタは、他のファイルディスクリプタ多重 API である "
12369 "B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
12370
12371 #. type: Plain text
12372 #: build/C/man2/timerfd_create.2:269
12373 msgid ""
12374 "When the file descriptor is no longer required it should be closed.  When "
12375 "all file descriptors associated with the same timer object have been closed, "
12376 "the timer is disarmed and its resources are freed by the kernel."
12377 msgstr ""
12378 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
12379 "る。 同じ timer オブジェクトに関連付けられたファイルディスクリプタが全て ク"
12380 "ローズされると、そのタイマーは解除され、 そのオブジェクト用の資源がカーネルに"
12381 "より解放される。"
12382
12383 #. type: Plain text
12384 #: build/C/man2/timerfd_create.2:281
12385 msgid ""
12386 "After a B<fork>(2), the child inherits a copy of the file descriptor created "
12387 "by B<timerfd_create>().  The file descriptor refers to the same underlying "
12388 "timer object as the corresponding file descriptor in the parent, and B<read>"
12389 "(2)s in the child will return information about expirations of the timer."
12390 msgstr ""
12391 "B<fork>(2)  が行われると、子プロセスは B<timerfd_create>()  により生成された"
12392 "ファイルディスクリプタのコピーを 継承する。そのファイルディスクリプタは、親プ"
12393 "ロセスの対応する ファイルディスクリプタと同じタイマーオブジェクトを参照してお"
12394 "り、 子プロセスの B<read>(2)  でも同じタイマーの満了に関する情報が返される。"
12395
12396 #. type: Plain text
12397 #: build/C/man2/timerfd_create.2:287
12398 msgid ""
12399 "A file descriptor created by B<timerfd_create>()  is preserved across "
12400 "B<execve>(2), and continues to generate timer expirations if the timer was "
12401 "armed."
12402 msgstr ""
12403 "B<execve>(2)  の前後で B<timerfd_create>()  により生成されたファイルディスク"
12404 "リプタは保持され、 タイマーが開始されていた場合にはタイマーの満了が発生し続け"
12405 "る。"
12406
12407 #. type: Plain text
12408 #: build/C/man2/timerfd_create.2:294
12409 msgid ""
12410 "On success, B<timerfd_create>()  returns a new file descriptor.  On error, "
12411 "-1 is returned and I<errno> is set to indicate the error."
12412 msgstr ""
12413 "成功すると、 B<timerfd_create>()  は新しいファイルディスクリプタを返す。 エ"
12414 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
12415
12416 #. type: Plain text
12417 #: build/C/man2/timerfd_create.2:302
12418 msgid ""
12419 "B<timerfd_settime>()  and B<timerfd_gettime>()  return 0 on success; on "
12420 "error they return -1, and set I<errno> to indicate the error."
12421 msgstr ""
12422 "B<timerfd_settime>()  と B<timerfd_gettime>()  は成功すると 0 を返す。 エラー"
12423 "の場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
12424
12425 #. type: Plain text
12426 #: build/C/man2/timerfd_create.2:305
12427 msgid "B<timerfd_create>()  can fail with the following errors:"
12428 msgstr "B<timerfd_create>()  は以下のエラーで失敗する可能性がある。"
12429
12430 #. type: Plain text
12431 #: build/C/man2/timerfd_create.2:313
12432 msgid ""
12433 "The I<clockid> argument is neither B<CLOCK_MONOTONIC> nor B<CLOCK_REALTIME>;"
12434 msgstr ""
12435 "I<clockid> 引き数が B<CLOCK_MONOTONIC> でも B<CLOCK_REALTIME> でもない。"
12436
12437 #. type: Plain text
12438 #: build/C/man2/timerfd_create.2:333
12439 msgid "There was insufficient kernel memory to create the timer."
12440 msgstr "タイマーを作成するのに十分なカーネルメモリがなかった。"
12441
12442 #. type: Plain text
12443 #: build/C/man2/timerfd_create.2:338
12444 msgid ""
12445 "B<timerfd_settime>()  and B<timerfd_gettime>()  can fail with the following "
12446 "errors:"
12447 msgstr ""
12448 "B<timerfd_settime>()  と B<timerfd_gettime>()  は以下のエラーで失敗する可能性"
12449 "がある。"
12450
12451 #. type: Plain text
12452 #: build/C/man2/timerfd_create.2:342
12453 msgid "I<fd> is not a valid file descriptor."
12454 msgstr "I<fd> が有効なファイルディスクリプタでない。"
12455
12456 #. type: Plain text
12457 #: build/C/man2/timerfd_create.2:353
12458 msgid "I<fd> is not a valid timerfd file descriptor."
12459 msgstr "I<fd> が有効な timerfd ファイルディスクリプタでない。"
12460
12461 #. type: Plain text
12462 #: build/C/man2/timerfd_create.2:356
12463 msgid "B<timerfd_settime>()  can also fail with the following errors:"
12464 msgstr "B<timerfd_settime>()  は以下のエラーで失敗することもある。"
12465
12466 #. type: Plain text
12467 #: build/C/man2/timerfd_create.2:362
12468 msgid ""
12469 "I<new_value> is not properly initialized (one of the I<tv_nsec> falls "
12470 "outside the range zero to 999,999,999)."
12471 msgstr ""
12472 "I<new_value> が適切に初期化されていない (I<tv_nsec> の一つが 0 から "
12473 "999,999,999 までの範囲に入っていない)。"
12474
12475 #.  This case only checked since 2.6.29, and 2.2.2[78].some-stable-version.
12476 #.  In older kernel versions, no check was made for invalid flags.
12477 #. type: Plain text
12478 #: build/C/man2/timerfd_create.2:368
12479 msgid "I<flags> is invalid."
12480 msgstr "I<flags> が無効である。"
12481
12482 #. type: Plain text
12483 #: build/C/man2/timerfd_create.2:371
12484 msgid ""
12485 "These system calls are available on Linux since kernel 2.6.25.  Library "
12486 "support is provided by glibc since version 2.8."
12487 msgstr ""
12488 "これらのシステムコールはカーネル 2.6.25 以降の Linux で利用可能である。 ライ"
12489 "ブラリ側のサポートはバージョン 2.8 以降の glibc で提供されている。"
12490
12491 #.  2.6.29
12492 #. type: Plain text
12493 #: build/C/man2/timerfd_create.2:379
12494 msgid ""
12495 "Currently, B<timerfd_create>()  supports fewer types of clock IDs than "
12496 "B<timer_create>(2)."
12497 msgstr ""
12498 "現在のところ、 B<timerfd_create>()  が対応している clockid の種類は "
12499 "B<timer_create>(2)  よりも少ない。"
12500
12501 #. type: Plain text
12502 #: build/C/man2/timerfd_create.2:388
12503 msgid ""
12504 "The following program creates a timer and then monitors its progress.  The "
12505 "program accepts up to three command-line arguments.  The first argument "
12506 "specifies the number of seconds for the initial expiration of the timer.  "
12507 "The second argument specifies the interval for the timer, in seconds.  The "
12508 "third argument specifies the number of times the program should allow the "
12509 "timer to expire before terminating.  The second and third command-line "
12510 "arguments are optional."
12511 msgstr ""
12512 "以下のプログラムは、タイマーを作成し、その進捗をモニターするものである。 この"
12513 "プログラムは最大で 3 個のコマンドライン引き数を取り、 第一引き数ではタイマー"
12514 "の満了時間の初期値 (秒数単位) を、 第二引き数ではタイマーの間隔 (秒数単位) "
12515 "を、 第三引き数ではタイマーが何回満了したらプログラムが終了するかを指定す"
12516 "る。 第二引き数と第三引き数は省略可能である。"
12517
12518 #. type: Plain text
12519 #: build/C/man2/timerfd_create.2:390 build/C/man2/wait.2:555
12520 msgid "The following shell session demonstrates the use of the program:"
12521 msgstr "以下のシェルのセッションはこのプログラムの使用例を示したものである。"
12522
12523 #. type: Plain text
12524 #: build/C/man2/timerfd_create.2:405
12525 #, no-wrap
12526 msgid ""
12527 "$B< a.out 3 1 100>\n"
12528 "0.000: timer started\n"
12529 "3.000: read: 1; total=1\n"
12530 "4.000: read: 1; total=2\n"
12531 "B<^Z >                 # type control-Z to suspend the program\n"
12532 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
12533 "$ B<fg>                # Resume execution after a few seconds\n"
12534 "a.out 3 1 100\n"
12535 "9.660: read: 5; total=7\n"
12536 "10.000: read: 1; total=8\n"
12537 "11.000: read: 1; total=9\n"
12538 "B<^C >                 # type control-C to suspend the program\n"
12539 msgstr ""
12540 "$B< a.out 3 1 100>\n"
12541 "0.000: timer started\n"
12542 "3.000: read: 1; total=1\n"
12543 "4.000: read: 1; total=2\n"
12544 "B<^Z >                 # type control-Z to suspend the program\n"
12545 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
12546 "$ B<fg>                # Resume execution after a few seconds\n"
12547 "a.out 3 1 100\n"
12548 "9.660: read: 5; total=7\n"
12549 "10.000: read: 1; total=8\n"
12550 "11.000: read: 1; total=9\n"
12551 "B<^C >                 # type control-C to suspend the program\n"
12552
12553 #.  The commented out code here is what we currently need until
12554 #.  the required stuff is in glibc
12555 #. /* Link with -lrt */
12556 #. #define _GNU_SOURCE
12557 #. #include <sys/syscall.h>
12558 #. #include <unistd.h>
12559 #. #include <time.h>
12560 #. #if defined(__i386__)
12561 #. #define __NR_timerfd_create 322
12562 #. #define __NR_timerfd_settime 325
12563 #. #define __NR_timerfd_gettime 326
12564 #. #endif
12565 #. static int
12566 #. timerfd_create(int clockid, int flags)
12567 #. {
12568 #.     return syscall(__NR_timerfd_create, clockid, flags);
12569 #. }
12570 #. static int
12571 #. timerfd_settime(int fd, int flags, struct itimerspec *new_value,
12572 #.         struct itimerspec *curr_value)
12573 #. {
12574 #.     return syscall(__NR_timerfd_settime, fd, flags, new_value,
12575 #.                    curr_value);
12576 #. }
12577 #. static int
12578 #. timerfd_gettime(int fd, struct itimerspec *curr_value)
12579 #. {
12580 #.     return syscall(__NR_timerfd_gettime, fd, curr_value);
12581 #. }
12582 #. #define TFD_TIMER_ABSTIME (1 << 0)
12583 #. ////////////////////////////////////////////////////////////
12584 #. type: Plain text
12585 #: build/C/man2/timerfd_create.2:454
12586 #, no-wrap
12587 msgid ""
12588 "#include E<lt>sys/timerfd.hE<gt>\n"
12589 "#include E<lt>time.hE<gt>\n"
12590 "#include E<lt>unistd.hE<gt>\n"
12591 "#include E<lt>stdlib.hE<gt>\n"
12592 "#include E<lt>stdio.hE<gt>\n"
12593 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
12594 msgstr ""
12595 "#include E<lt>sys/timerfd.hE<gt>\n"
12596 "#include E<lt>time.hE<gt>\n"
12597 "#include E<lt>unistd.hE<gt>\n"
12598 "#include E<lt>stdlib.hE<gt>\n"
12599 "#include E<lt>stdio.hE<gt>\n"
12600 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
12601
12602 #. type: Plain text
12603 #: build/C/man2/timerfd_create.2:457
12604 #, no-wrap
12605 msgid ""
12606 "#define handle_error(msg) \\e\n"
12607 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
12608 msgstr ""
12609 "#define handle_error(msg) \\e\n"
12610 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
12611
12612 #. type: Plain text
12613 #: build/C/man2/timerfd_create.2:465
12614 #, no-wrap
12615 msgid ""
12616 "static void\n"
12617 "print_elapsed_time(void)\n"
12618 "{\n"
12619 "    static struct timespec start;\n"
12620 "    struct timespec curr;\n"
12621 "    static int first_call = 1;\n"
12622 "    int secs, nsecs;\n"
12623 msgstr ""
12624 "static void\n"
12625 "print_elapsed_time(void)\n"
12626 "{\n"
12627 "    static struct timespec start;\n"
12628 "    struct timespec curr;\n"
12629 "    static int first_call = 1;\n"
12630 "    int secs, nsecs;\n"
12631
12632 #. type: Plain text
12633 #: build/C/man2/timerfd_create.2:471
12634 #, no-wrap
12635 msgid ""
12636 "    if (first_call) {\n"
12637 "        first_call = 0;\n"
12638 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
12639 "            handle_error(\"clock_gettime\");\n"
12640 "    }\n"
12641 msgstr ""
12642 "    if (first_call) {\n"
12643 "        first_call = 0;\n"
12644 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
12645 "            handle_error(\"clock_gettime\");\n"
12646 "    }\n"
12647
12648 #. type: Plain text
12649 #: build/C/man2/timerfd_create.2:474
12650 #, no-wrap
12651 msgid ""
12652 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
12653 "        handle_error(\"clock_gettime\");\n"
12654 msgstr ""
12655 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
12656 "        handle_error(\"clock_gettime\");\n"
12657
12658 #. type: Plain text
12659 #: build/C/man2/timerfd_create.2:483
12660 #, no-wrap
12661 msgid ""
12662 "    secs = curr.tv_sec - start.tv_sec;\n"
12663 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
12664 "    if (nsecs E<lt> 0) {\n"
12665 "        secs--;\n"
12666 "        nsecs += 1000000000;\n"
12667 "    }\n"
12668 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
12669 "}\n"
12670 msgstr ""
12671 "    secs = curr.tv_sec - start.tv_sec;\n"
12672 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
12673 "    if (nsecs E<lt> 0) {\n"
12674 "        secs--;\n"
12675 "        nsecs += 1000000000;\n"
12676 "    }\n"
12677 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
12678 "}\n"
12679
12680 #. type: Plain text
12681 #: build/C/man2/timerfd_create.2:492
12682 #, no-wrap
12683 msgid ""
12684 "int\n"
12685 "main(int argc, char *argv[])\n"
12686 "{\n"
12687 "    struct itimerspec new_value;\n"
12688 "    int max_exp, fd;\n"
12689 "    struct timespec now;\n"
12690 "    uint64_t exp, tot_exp;\n"
12691 "    ssize_t s;\n"
12692 msgstr ""
12693 "int\n"
12694 "main(int argc, char *argv[])\n"
12695 "{\n"
12696 "    struct itimerspec new_value;\n"
12697 "    int max_exp, fd;\n"
12698 "    struct timespec now;\n"
12699 "    uint64_t exp, tot_exp;\n"
12700 "    ssize_t s;\n"
12701
12702 #. type: Plain text
12703 #: build/C/man2/timerfd_create.2:498
12704 #, no-wrap
12705 msgid ""
12706 "    if ((argc != 2) && (argc != 4)) {\n"
12707 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
12708 "                argv[0]);\n"
12709 "        exit(EXIT_FAILURE);\n"
12710 "    }\n"
12711 msgstr ""
12712 "    if ((argc != 2) && (argc != 4)) {\n"
12713 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
12714 "                argv[0]);\n"
12715 "        exit(EXIT_FAILURE);\n"
12716 "    }\n"
12717
12718 #. type: Plain text
12719 #: build/C/man2/timerfd_create.2:501
12720 #, no-wrap
12721 msgid ""
12722 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
12723 "        handle_error(\"clock_gettime\");\n"
12724 msgstr ""
12725 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
12726 "        handle_error(\"clock_gettime\");\n"
12727
12728 #. type: Plain text
12729 #: build/C/man2/timerfd_create.2:504
12730 #, no-wrap
12731 msgid ""
12732 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
12733 "       expiration and interval as specified in command line */\n"
12734 msgstr ""
12735 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
12736 "       expiration and interval as specified in command line */\n"
12737
12738 #. type: Plain text
12739 #: build/C/man2/timerfd_create.2:515
12740 #, no-wrap
12741 msgid ""
12742 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
12743 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
12744 "    if (argc == 2) {\n"
12745 "        new_value.it_interval.tv_sec = 0;\n"
12746 "        max_exp = 1;\n"
12747 "    } else {\n"
12748 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
12749 "        max_exp = atoi(argv[3]);\n"
12750 "    }\n"
12751 "    new_value.it_interval.tv_nsec = 0;\n"
12752 msgstr ""
12753 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
12754 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
12755 "    if (argc == 2) {\n"
12756 "        new_value.it_interval.tv_sec = 0;\n"
12757 "        max_exp = 1;\n"
12758 "    } else {\n"
12759 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
12760 "        max_exp = atoi(argv[3]);\n"
12761 "    }\n"
12762 "    new_value.it_interval.tv_nsec = 0;\n"
12763
12764 #. type: Plain text
12765 #: build/C/man2/timerfd_create.2:519
12766 #, no-wrap
12767 msgid ""
12768 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
12769 "    if (fd == -1)\n"
12770 "        handle_error(\"timerfd_create\");\n"
12771 msgstr ""
12772 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
12773 "    if (fd == -1)\n"
12774 "        handle_error(\"timerfd_create\");\n"
12775
12776 #. type: Plain text
12777 #: build/C/man2/timerfd_create.2:522
12778 #, no-wrap
12779 msgid ""
12780 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
12781 "        handle_error(\"timerfd_settime\");\n"
12782 msgstr ""
12783 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
12784 "        handle_error(\"timerfd_settime\");\n"
12785
12786 #. type: Plain text
12787 #: build/C/man2/timerfd_create.2:525
12788 #, no-wrap
12789 msgid ""
12790 "    print_elapsed_time();\n"
12791 "    printf(\"timer started\\en\");\n"
12792 msgstr ""
12793 "    print_elapsed_time();\n"
12794 "    printf(\"timer started\\en\");\n"
12795
12796 #. type: Plain text
12797 #: build/C/man2/timerfd_create.2:530
12798 #, no-wrap
12799 msgid ""
12800 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
12801 "        s = read(fd, &exp, sizeof(uint64_t));\n"
12802 "        if (s != sizeof(uint64_t))\n"
12803 "            handle_error(\"read\");\n"
12804 msgstr ""
12805 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
12806 "        s = read(fd, &exp, sizeof(uint64_t));\n"
12807 "        if (s != sizeof(uint64_t))\n"
12808 "            handle_error(\"read\");\n"
12809
12810 #. type: Plain text
12811 #: build/C/man2/timerfd_create.2:537
12812 #, no-wrap
12813 msgid ""
12814 "        tot_exp += exp;\n"
12815 "        print_elapsed_time();\n"
12816 "        printf(\"read: %llu; total=%llu\\en\",\n"
12817 "                (unsigned long long) exp,\n"
12818 "                (unsigned long long) tot_exp);\n"
12819 "    }\n"
12820 msgstr ""
12821 "        tot_exp += exp;\n"
12822 "        print_elapsed_time();\n"
12823 "        printf(\"read: %llu; total=%llu\\en\",\n"
12824 "                (unsigned long long) exp,\n"
12825 "                (unsigned long long) tot_exp);\n"
12826 "    }\n"
12827
12828 #. type: Plain text
12829 #: build/C/man2/timerfd_create.2:553
12830 msgid ""
12831 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
12832 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), B<timer_settime>"
12833 "(2), B<epoll>(7), B<time>(7)"
12834 msgstr ""
12835 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
12836 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), B<timer_settime>"
12837 "(2), B<epoll>(7), B<time>(7)"
12838
12839 #. type: TH
12840 #: build/C/man2/tkill.2:29
12841 #, no-wrap
12842 msgid "TKILL"
12843 msgstr "TKILL"
12844
12845 #. type: Plain text
12846 #: build/C/man2/tkill.2:32
12847 msgid "tkill, tgkill - send a signal to a thread"
12848 msgstr "tkill, tgkill - スレッドにシグナルを送る"
12849
12850 #. type: Plain text
12851 #: build/C/man2/tkill.2:35
12852 #, no-wrap
12853 msgid "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
12854 msgstr "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
12855
12856 #. type: Plain text
12857 #: build/C/man2/tkill.2:37
12858 #, no-wrap
12859 msgid "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
12860 msgstr "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
12861
12862 #. type: Plain text
12863 #: build/C/man2/tkill.2:54
12864 msgid ""
12865 "B<tgkill>()  sends the signal I<sig> to the thread with the thread ID I<tid> "
12866 "in the thread group I<tgid>.  (By contrast, B<kill>(2)  can only be used to "
12867 "send a signal to a process (i.e., thread group)  as a whole, and the signal "
12868 "will be delivered to an arbitrary thread within that process.)"
12869 msgstr ""
12870 "B<tgkill>()  はスレッド・グループ I<tgid> に属するスレッド ID が I<tid> のス"
12871 "レッドにシグナル I<sig> を送る。 (これに対し、 B<kill>(2)  は一つのプロセス "
12872 "(すなわち、スレッド・グループ) にまとめてシグナルを 送るのにだけ利用できる。 "
12873 "B<kill>(2)  で送信されたシグナルはプロセス内の任意のスレッドに配送される。)"
12874
12875 #.  FIXME: Maybe say something about the following:
12876 #.  http://sourceware.org/bugzilla/show_bug.cgi?id=12889
12877 #.      Rich Felker <bugdal@aerifal.cx>
12878 #.      There is a race condition in pthread_kill: it is possible that,
12879 #.      between the time pthread_kill reads the pid/tid from the target
12880 #.      thread descriptor and the time it makes the tgkill syscall,
12881 #.      the target thread terminates and the same tid gets assigned
12882 #.      to a new thread in the same process.
12883 #.      (The tgkill syscall was designed to eliminate a similar race
12884 #.      condition in tkill, but it only succeeded in eliminating races
12885 #.      where the tid gets reused in a different process, and does not
12886 #.      help if the same tid gets assigned to a new thread in the
12887 #.      same process.)
12888 #.      The only solution I can see is to introduce a mutex that ensures
12889 #.      that a thread cannot exit while pthread_kill is being called on it.
12890 #.      Note that in most real-world situations, like almost all race
12891 #.      conditions, this one will be extremely rare. To make it
12892 #.      measurable, one could exhaust all but 1-2 available pid values,
12893 #.      possibly by lowering the max pid parameter in /proc, forcing
12894 #.      the same tid to be reused rapidly.
12895 #. type: Plain text
12896 #: build/C/man2/tkill.2:85
12897 msgid ""
12898 "B<tkill>()  is an obsolete predecessor to B<tgkill>().  It only allows the "
12899 "target thread ID to be specified, which may result in the wrong thread being "
12900 "signaled if a thread terminates and its thread ID is recycled.  Avoid using "
12901 "this system call."
12902 msgstr ""
12903 "B<tkill>()  はもう使われなくなった B<tgkill>()  の先祖である。 B<tkill>()  で"
12904 "はシグナルの送り先のスレッド ID しか指定できない。 そのため、スレッドが終了し"
12905 "て、そのスレッド ID が再利用される場合に、 意図しないスレッドにシグナルが送ら"
12906 "れる可能性がある。 このシステムコールの使用は避けること。"
12907
12908 #. type: Plain text
12909 #: build/C/man2/tkill.2:92
12910 msgid ""
12911 "If I<tgid> is specified as -1, B<tgkill>()  is equivalent to B<tkill>()."
12912 msgstr ""
12913 "I<tgid> に -1 が指定された場合、 B<tgkill>()  は B<tkill>()  と等価である。"
12914
12915 #. type: Plain text
12916 #: build/C/man2/tkill.2:95
12917 msgid ""
12918 "These are the raw system call interfaces, meant for internal thread library "
12919 "use."
12920 msgstr ""
12921 "これらはシステムコールへの直接のインターフェースであり、 スレッド・ライブラリ"
12922 "内部での使用を意図したものである。"
12923
12924 #. type: Plain text
12925 #: build/C/man2/tkill.2:103
12926 msgid "An invalid thread ID, thread group ID, or signal was specified."
12927 msgstr "指定されたスレッド ID、スレッドグループ ID、シグナルが不正であった。"
12928
12929 #. type: Plain text
12930 #: build/C/man2/tkill.2:108
12931 msgid "Permission denied.  For the required permissions, see B<kill>(2)."
12932 msgstr ""
12933 "許可がなかった。どのような許可が必要かについては、 B<kill>(2)  を参照のこと。"
12934
12935 #. type: Plain text
12936 #: build/C/man2/tkill.2:111
12937 msgid "No process with the specified thread ID (and thread group ID) exists."
12938 msgstr ""
12939 "指定されたスレッドID (とスレッド・グループID) を持つプロセスが存在しない。"
12940
12941 #. type: Plain text
12942 #: build/C/man2/tkill.2:116
12943 msgid ""
12944 "B<tkill>()  is supported since Linux 2.4.19 / 2.5.4.  B<tgkill>()  was added "
12945 "in Linux 2.5.75."
12946 msgstr ""
12947 "B<tkill>()  は Linux 2.4.19 / 2.5.4 以降でサポートされ、 B<tgkill>()  は "
12948 "Linux 2.5.75 で追加された。"
12949
12950 #. type: Plain text
12951 #: build/C/man2/tkill.2:122
12952 msgid ""
12953 "B<tkill>()  and B<tgkill>()  are Linux-specific and should not be used in "
12954 "programs that are intended to be portable."
12955 msgstr ""
12956 "B<tkill>()  と B<tgkill>()  は Linux 固有であり、 移植を想定したプログラムで"
12957 "は使用すべきではない。"
12958
12959 #. type: Plain text
12960 #: build/C/man2/tkill.2:128
12961 msgid ""
12962 "See the description of B<CLONE_THREAD> in B<clone>(2)  for an explanation of "
12963 "thread groups."
12964 msgstr ""
12965 "スレッド・グループの説明については B<clone>(2)  の B<CLONE_THREAD> の説明を参"
12966 "照のこと。"
12967
12968 #. type: Plain text
12969 #: build/C/man2/tkill.2:131
12970 msgid ""
12971 "Glibc does not provide wrappers for these system calls; call them using "
12972 "B<syscall>(2)."
12973 msgstr ""
12974 "glibc はこれらのシステムコールに対するラッパー関数を提供していない。 "
12975 "B<syscall>(2)  を使って呼び出すこと。"
12976
12977 #. type: Plain text
12978 #: build/C/man2/tkill.2:136
12979 msgid "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
12980 msgstr "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
12981
12982 #. type: TH
12983 #: build/C/man2/wait.2:49
12984 #, no-wrap
12985 msgid "WAIT"
12986 msgstr "WAIT"
12987
12988 #. type: TH
12989 #: build/C/man2/wait.2:49
12990 #, fuzzy, no-wrap
12991 #| msgid "2012-04-23"
12992 msgid "2012-12-21"
12993 msgstr "2012-04-23"
12994
12995 #. type: Plain text
12996 #: build/C/man2/wait.2:52
12997 msgid "wait, waitpid, waitid - wait for process to change state"
12998 msgstr "wait, waitpid, waitid - プロセスの状態変化を待つ"
12999
13000 #. type: Plain text
13001 #: build/C/man2/wait.2:54
13002 msgid "B<#include E<lt>sys/types.hE<gt>>"
13003 msgstr "B<#include E<lt>sys/types.hE<gt>>"
13004
13005 #. type: Plain text
13006 #: build/C/man2/wait.2:56
13007 msgid "B<#include E<lt>sys/wait.hE<gt>>"
13008 msgstr "B<#include E<lt>sys/wait.hE<gt>>"
13009
13010 #. type: Plain text
13011 #: build/C/man2/wait.2:58
13012 msgid "B<pid_t wait(int *>I<status>B<);>"
13013 msgstr "B<pid_t wait(int *>I<status>B<);>"
13014
13015 #. type: Plain text
13016 #: build/C/man2/wait.2:60
13017 msgid ""
13018 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
13019 msgstr ""
13020 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
13021
13022 #. type: Plain text
13023 #: build/C/man2/wait.2:63
13024 msgid ""
13025 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, "
13026 "int >I<options>B<);>"
13027 msgstr ""
13028 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, "
13029 "int >I<options>B<);>"
13030
13031 #. type: Plain text
13032 #: build/C/man2/wait.2:72
13033 msgid "B<waitid>():"
13034 msgstr "B<waitid>():"
13035
13036 #. type: Plain text
13037 #: build/C/man2/wait.2:76
13038 msgid ""
13039 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
13040 "_XOPEN_SOURCE_EXTENDED"
13041 msgstr ""
13042 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
13043 "_XOPEN_SOURCE_EXTENDED"
13044
13045 #. type: Plain text
13046 #: build/C/man2/wait.2:91
13047 msgid ""
13048 "All of these system calls are used to wait for state changes in a child of "
13049 "the calling process, and obtain information about the child whose state has "
13050 "changed.  A state change is considered to be: the child terminated; the "
13051 "child was stopped by a signal; or the child was resumed by a signal.  In the "
13052 "case of a terminated child, performing a wait allows the system to release "
13053 "the resources associated with the child; if a wait is not performed, then "
13054 "the terminated child remains in a \"zombie\" state (see NOTES below)."
13055 msgstr ""
13056 "これらのシステムコールはいずれも、呼び出し元プロセスの子プロセスの 状態変化を"
13057 "待ち、状態が変化したその子プロセスの情報を取得するのに 使用される。 状態変化"
13058 "とは以下のいずれかである: 子プロセスの終了、シグナルによる子プロセスの停止、 "
13059 "シグナルによる子プロセスの再開。 子プロセスが終了した場合は、wait を実行する"
13060 "ことで、 システムがその子プロセスに関連するリソースを解放できるようになる。 "
13061 "wait が実行されなかった場合には、終了した子プロセスは 「ゾンビ」状態で残り続"
13062 "ける (下記の注意の章を参照のこと)。"
13063
13064 #. type: Plain text
13065 #: build/C/man2/wait.2:103
13066 msgid ""
13067 "If a child has already changed state, then these calls return immediately.  "
13068 "Otherwise they block until either a child changes state or a signal handler "
13069 "interrupts the call (assuming that system calls are not automatically "
13070 "restarted using the B<SA_RESTART> flag of B<sigaction>(2)).  In the "
13071 "remainder of this page, a child whose state has changed and which has not "
13072 "yet been waited upon by one of these system calls is termed I<waitable>."
13073 msgstr ""
13074 "子プロセスの状態変化がすでに発生していた場合、これらのコールは すぐに復帰す"
13075 "る。それ以外の場合は、子プロセスの状態変化が起こるか、 シグナルハンドラにより"
13076 "システムコールが中断されるまで、 停止 (block) する (後者は、 B<sigaction>"
13077 "(2)  の B<SA_RESTART> フラグによりシステムコールが自動的に再スタートするよう"
13078 "になっていない 場合の動作である)。 以下の説明では、状態変化が起こったがこれら"
13079 "のシステムコールのいずれかに よって待たれていない子プロセスを I<waitable> (待"
13080 "ち可能) と呼ぶ。"
13081
13082 #. type: SS
13083 #: build/C/man2/wait.2:103
13084 #, no-wrap
13085 msgid "wait() and waitpid()"
13086 msgstr "wait() と waitpid()"
13087
13088 #. type: Plain text
13089 #: build/C/man2/wait.2:111
13090 msgid ""
13091 "The B<wait>()  system call suspends execution of the calling process until "
13092 "one of its children terminates.  The call I<wait(&status)> is equivalent to:"
13093 msgstr ""
13094 "B<wait>()  システムコールは、子プロセスのいずれかが終了するまで 呼び出し元の"
13095 "プロセスの実行を一時停止する。 呼び出し I<wait(&status)> は以下と等価である:"
13096
13097 #. type: Plain text
13098 #: build/C/man2/wait.2:114
13099 #, no-wrap
13100 msgid "    waitpid(-1, &status, 0);\n"
13101 msgstr "    waitpid(-1, &status, 0);\n"
13102
13103 #. type: Plain text
13104 #: build/C/man2/wait.2:128
13105 msgid ""
13106 "The B<waitpid>()  system call suspends execution of the calling process "
13107 "until a child specified by I<pid> argument has changed state.  By default, "
13108 "B<waitpid>()  waits only for terminated children, but this behavior is "
13109 "modifiable via the I<options> argument, as described below."
13110 msgstr ""
13111 "B<waitpid>()  システムコールは、 I<pid> 引き数で指定した子プロセスの状態変化"
13112 "が起こるまで、 呼び出し元のプロセスの実行を一時停止する。デフォルトでは、 "
13113 "B<waitpid>()  は子プロセスの終了だけを待つが、この動作は I<options> 引き数に"
13114 "より変更可能である。"
13115
13116 #. type: Plain text
13117 #: build/C/man2/wait.2:132
13118 msgid "The value of I<pid> can be:"
13119 msgstr "I<pid> に指定できる値は以下の通り:"
13120
13121 #. type: IP
13122 #: build/C/man2/wait.2:132
13123 #, no-wrap
13124 msgid "E<lt> -1"
13125 msgstr "E<lt> -1"
13126
13127 #. type: Plain text
13128 #: build/C/man2/wait.2:136
13129 msgid ""
13130 "meaning wait for any child process whose process group ID is equal to the "
13131 "absolute value of I<pid>."
13132 msgstr ""
13133 "プロセスグループID が I<pid> の絶対値に等しい子プロセスのいずれかが終了するま"
13134 "でを待つ。"
13135
13136 #. type: IP
13137 #: build/C/man2/wait.2:136
13138 #, no-wrap
13139 msgid "-1"
13140 msgstr "-1"
13141
13142 #. type: Plain text
13143 #: build/C/man2/wait.2:138
13144 msgid "meaning wait for any child process."
13145 msgstr "子プロセスのどれかが終了するまで待つ。"
13146
13147 #. type: IP
13148 #: build/C/man2/wait.2:138
13149 #, no-wrap
13150 msgid "0"
13151 msgstr "0"
13152
13153 #. type: Plain text
13154 #: build/C/man2/wait.2:141
13155 msgid ""
13156 "meaning wait for any child process whose process group ID is equal to that "
13157 "of the calling process."
13158 msgstr ""
13159 "プロセスグループID が呼び出したプロセスのものと等しい 子プロセスを待つ。"
13160
13161 #. type: IP
13162 #: build/C/man2/wait.2:141
13163 #, no-wrap
13164 msgid "E<gt> 0"
13165 msgstr "E<gt> 0"
13166
13167 #. type: Plain text
13168 #: build/C/man2/wait.2:145
13169 msgid ""
13170 "meaning wait for the child whose process ID is equal to the value of I<pid>."
13171 msgstr "プロセスID が I<pid> に等しい子プロセスを待つ。"
13172
13173 #. type: Plain text
13174 #: build/C/man2/wait.2:149
13175 msgid ""
13176 "The value of I<options> is an OR of zero or more of the following constants:"
13177 msgstr "I<options> の値は次の定数の 0 個以上の論理和である:"
13178
13179 #. type: TP
13180 #: build/C/man2/wait.2:149 build/C/man2/wait.2:278
13181 #, no-wrap
13182 msgid "B<WNOHANG>"
13183 msgstr "B<WNOHANG>"
13184
13185 #. type: Plain text
13186 #: build/C/man2/wait.2:152
13187 msgid "return immediately if no child has exited."
13188 msgstr "状態変化が起こった子プロセスがない場合にすぐに復帰する。"
13189
13190 #. type: TP
13191 #: build/C/man2/wait.2:152
13192 #, no-wrap
13193 msgid "B<WUNTRACED>"
13194 msgstr "B<WUNTRACED>"
13195
13196 #. type: Plain text
13197 #: build/C/man2/wait.2:161
13198 msgid ""
13199 "also return if a child has stopped (but not traced via B<ptrace>(2)).  "
13200 "Status for I<traced> children which have stopped is provided even if this "
13201 "option is not specified."
13202 msgstr ""
13203 "子プロセスが停止した場合にも復帰する (子プロセスが B<ptrace>(2)  でトレースさ"
13204 "れている場合は除く)。 このオプションが指定されていない場合でも、停止したプロ"
13205 "セスが 「トレース (traced)」されていれば、子プロセスの状態が報告される。"
13206
13207 #. type: TP
13208 #: build/C/man2/wait.2:161
13209 #, no-wrap
13210 msgid "B<WCONTINUED> (since Linux 2.6.10)"
13211 msgstr "B<WCONTINUED> (Linux 2.6.10 以降)"
13212
13213 #. type: Plain text
13214 #: build/C/man2/wait.2:165
13215 msgid ""
13216 "also return if a stopped child has been resumed by delivery of B<SIGCONT>."
13217 msgstr "停止した子プロセスが B<SIGCONT> の配送により再開した場合にも復帰する。"
13218
13219 #. type: Plain text
13220 #: build/C/man2/wait.2:167
13221 msgid "(For Linux-only options, see below.)"
13222 msgstr "(Linux 専用オプションについては後述する)"
13223
13224 #. type: Plain text
13225 #: build/C/man2/wait.2:181
13226 msgid ""
13227 "If I<status> is not NULL, B<wait>()  and B<waitpid>()  store status "
13228 "information in the I<int> to which it points.  This integer can be inspected "
13229 "with the following macros (which take the integer itself as an argument, not "
13230 "a pointer to it, as is done in B<wait>()  and B<waitpid>()!):"
13231 msgstr ""
13232 "I<status> が NULL でなければ、 B<wait>()  や B<waitpid>()  は I<status> で指"
13233 "す I<int> に状態情報を格納する。 この整数は以下のマクロを使って検査できる。 "
13234 "(これらのマクロの引き数には、 B<wait>()  や B<waitpid>()  が書き込んだ整数そ"
13235 "のものを指定する。ポインタではない!)"
13236
13237 #. type: TP
13238 #: build/C/man2/wait.2:181
13239 #, no-wrap
13240 msgid "B<WIFEXITED(>I<status>B<)>"
13241 msgstr "B<WIFEXITED(>I<status>B<)>"
13242
13243 #. type: Plain text
13244 #: build/C/man2/wait.2:189
13245 msgid ""
13246 "returns true if the child terminated normally, that is, by calling B<exit>"
13247 "(3)  or B<_exit>(2), or by returning from main()."
13248 msgstr ""
13249 "子プロセスが正常に終了した場合に真を返す。 「正常に」とは、 B<exit>(3)  か "
13250 "B<_exit>(2)  が呼び出された場合、もしくは main() から復帰した場合である。"
13251
13252 #. type: TP
13253 #: build/C/man2/wait.2:189
13254 #, no-wrap
13255 msgid "B<WEXITSTATUS(>I<status>B<)>"
13256 msgstr "B<WEXITSTATUS(>I<status>B<)>"
13257
13258 #. type: Plain text
13259 #: build/C/man2/wait.2:202
13260 msgid ""
13261 "returns the exit status of the child.  This consists of the least "
13262 "significant 8 bits of the I<status> argument that the child specified in a "
13263 "call to B<exit>(3)  or B<_exit>(2)  or as the argument for a return "
13264 "statement in main().  This macro should only be employed if B<WIFEXITED> "
13265 "returned true."
13266 msgstr ""
13267 "子プロセスの終了ステータスを返す。 終了ステータスは I<status> 引き数の下位 8"
13268 "ビットで構成されており、 B<exit>(3)  や B<_exit>(2)  の呼び出し時に渡された"
13269 "値、もしくは main() の return 文の 引き数として指定された値である。 このマク"
13270 "ロを使用するのは B<WIFEXITED> が真を返した場合だけにすべきである。"
13271
13272 #. type: TP
13273 #: build/C/man2/wait.2:202
13274 #, no-wrap
13275 msgid "B<WIFSIGNALED(>I<status>B<)>"
13276 msgstr "B<WIFSIGNALED(>I<status>B<)>"
13277
13278 #. type: Plain text
13279 #: build/C/man2/wait.2:205
13280 msgid "returns true if the child process was terminated by a signal."
13281 msgstr "子プロセスがシグナルにより終了した場合に真を返す。"
13282
13283 #. type: TP
13284 #: build/C/man2/wait.2:205
13285 #, no-wrap
13286 msgid "B<WTERMSIG(>I<status>B<)>"
13287 msgstr "B<WTERMSIG(>I<status>B<)>"
13288
13289 #. type: Plain text
13290 #: build/C/man2/wait.2:212
13291 msgid ""
13292 "returns the number of the signal that caused the child process to "
13293 "terminate.  This macro should only be employed if B<WIFSIGNALED> returned "
13294 "true."
13295 msgstr ""
13296 "子プロセス終了の原因となったシグナルの番号を返す。 このマクロを使用するのは "
13297 "B<WIFSIGNALED> が真を返した場合だけにすべきである。"
13298
13299 #. type: TP
13300 #: build/C/man2/wait.2:212
13301 #, no-wrap
13302 msgid "B<WCOREDUMP(>I<status>B<)>"
13303 msgstr "B<WCOREDUMP(>I<status>B<)>"
13304
13305 #. type: Plain text
13306 #: build/C/man2/wait.2:221
13307 msgid ""
13308 "returns true if the child produced a core dump.  This macro should only be "
13309 "employed if B<WIFSIGNALED> returned true.  This macro is not specified in "
13310 "POSIX.1-2001 and is not available on some UNIX implementations (e.g., AIX, "
13311 "SunOS).  Only use this enclosed in #ifdef WCOREDUMP ... #endif."
13312 msgstr ""
13313 "子プロセスがコアダンプを生成した場合に真を返す。 このマクロを使用するのは "
13314 "B<WIFSIGNALED> が真を返した場合だけにすべきである。 このマクロは "
13315 "POSIX.1-2001 では規定されておらず、 (AIX, SunOS などの) いくつかの UNIX の実"
13316 "装では利用できない。 必ず #ifdef WCOREDUMP ... #endif で括って使用すること。"
13317
13318 #. type: TP
13319 #: build/C/man2/wait.2:221
13320 #, no-wrap
13321 msgid "B<WIFSTOPPED(>I<status>B<)>"
13322 msgstr "B<WIFSTOPPED(>I<status>B<)>"
13323
13324 #. type: Plain text
13325 #: build/C/man2/wait.2:228
13326 msgid ""
13327 "returns true if the child process was stopped by delivery of a signal; this "
13328 "is only possible if the call was done using B<WUNTRACED> or when the child "
13329 "is being traced (see B<ptrace>(2))."
13330 msgstr ""
13331 "子プロセスがシグナルの配送により停止した場合に真を返す。 これが真になるのは、"
13332 "システムコールが B<WUNTRACED> を指定して呼び出された場合か、子プロセスがト"
13333 "レースされている場合 (B<ptrace>(2)  参照) だけである。"
13334
13335 #. type: TP
13336 #: build/C/man2/wait.2:228
13337 #, no-wrap
13338 msgid "B<WSTOPSIG(>I<status>B<)>"
13339 msgstr "B<WSTOPSIG(>I<status>B<)>"
13340
13341 #. type: Plain text
13342 #: build/C/man2/wait.2:234
13343 msgid ""
13344 "returns the number of the signal which caused the child to stop.  This macro "
13345 "should only be employed if B<WIFSTOPPED> returned true."
13346 msgstr ""
13347 "子プロセスを停止させたシグナルの番号を返す。 このマクロを使用するのは "
13348 "B<WIFSTOPPED> が 0 以外を返した場合だけにすべきである。"
13349
13350 #. type: TP
13351 #: build/C/man2/wait.2:234
13352 #, no-wrap
13353 msgid "B<WIFCONTINUED(>I<status>B<)>"
13354 msgstr "B<WIFCONTINUED(>I<status>B<)>"
13355
13356 #. type: Plain text
13357 #: build/C/man2/wait.2:239
13358 msgid ""
13359 "(since Linux 2.6.10)  returns true if the child process was resumed by "
13360 "delivery of B<SIGCONT>."
13361 msgstr ""
13362 "(Linux 2.6.10 以降)  子プロセスが B<SIGCONT> の配送により再開した場合に真を返"
13363 "す。"
13364
13365 #. type: SS
13366 #: build/C/man2/wait.2:239
13367 #, no-wrap
13368 msgid "waitid()"
13369 msgstr "waitid()"
13370
13371 #. type: Plain text
13372 #: build/C/man2/wait.2:244
13373 msgid ""
13374 "The B<waitid>()  system call (available since Linux 2.6.9) provides more "
13375 "precise control over which child state changes to wait for."
13376 msgstr ""
13377 "B<waitid>()  システムコール (Linux 2.6.9 以降で利用可能) を使うと、 子プロセ"
13378 "スのどの状態変化を待つかについてより細かな制御ができる。"
13379
13380 #. type: Plain text
13381 #: build/C/man2/wait.2:250
13382 msgid ""
13383 "The I<idtype> and I<id> arguments select the child(ren) to wait for, as "
13384 "follows:"
13385 msgstr "引き数 I<idtype> と I<id> でどの子プロセスを待つかを選択する:"
13386
13387 #. type: IP
13388 #: build/C/man2/wait.2:250
13389 #, no-wrap
13390 msgid "I<idtype> == B<P_PID>"
13391 msgstr "I<idtype> == B<P_PID>"
13392
13393 #. type: Plain text
13394 #: build/C/man2/wait.2:253
13395 msgid "Wait for the child whose process ID matches I<id>."
13396 msgstr "プロセスID が I<id> と一致する子プロセスを待つ。"
13397
13398 #. type: IP
13399 #: build/C/man2/wait.2:253
13400 #, no-wrap
13401 msgid "I<idtype> == B<P_PGID>"
13402 msgstr "I<idtype> == B<P_PGID>"
13403
13404 #. type: Plain text
13405 #: build/C/man2/wait.2:256
13406 msgid "Wait for any child whose process group ID matches I<id>."
13407 msgstr "プロセスグループID が I<id> と一致する子プロセスを待つ。"
13408
13409 #. type: IP
13410 #: build/C/man2/wait.2:256
13411 #, no-wrap
13412 msgid "I<idtype> == B<P_ALL>"
13413 msgstr "I<idtype> == B<P_ALL>"
13414
13415 #. type: Plain text
13416 #: build/C/man2/wait.2:260
13417 msgid "Wait for any child; I<id> is ignored."
13418 msgstr "子プロセス全部を対象に待つ。 I<id> は無視される。"
13419
13420 #. type: Plain text
13421 #: build/C/man2/wait.2:264
13422 msgid ""
13423 "The child state changes to wait for are specified by ORing one or more of "
13424 "the following flags in I<options>:"
13425 msgstr ""
13426 "子プロセスのどの状態変化を待つかは以下のフラグで指定する (I<options> には 1個"
13427 "以上のフラグの論理和をとって指定する):"
13428
13429 #. type: TP
13430 #: build/C/man2/wait.2:264
13431 #, no-wrap
13432 msgid "B<WEXITED>"
13433 msgstr "B<WEXITED>"
13434
13435 #. type: Plain text
13436 #: build/C/man2/wait.2:267
13437 msgid "Wait for children that have terminated."
13438 msgstr "子プロセスの終了を待つ。"
13439
13440 #. type: TP
13441 #: build/C/man2/wait.2:267
13442 #, no-wrap
13443 msgid "B<WSTOPPED>"
13444 msgstr "B<WSTOPPED>"
13445
13446 #. type: Plain text
13447 #: build/C/man2/wait.2:270
13448 msgid "Wait for children that have been stopped by delivery of a signal."
13449 msgstr "子プロセスがシグナルの配送により停止するのを待つ。"
13450
13451 #. type: TP
13452 #: build/C/man2/wait.2:270
13453 #, no-wrap
13454 msgid "B<WCONTINUED>"
13455 msgstr "B<WCONTINUED>"
13456
13457 #. type: Plain text
13458 #: build/C/man2/wait.2:275
13459 msgid ""
13460 "Wait for (previously stopped) children that have been resumed by delivery of "
13461 "B<SIGCONT>."
13462 msgstr "(停止していた) 子プロセスが B<SIGCONT> が配送されて再開するのを待つ。"
13463
13464 #. type: Plain text
13465 #: build/C/man2/wait.2:278
13466 msgid "The following flags may additionally be ORed in I<options>:"
13467 msgstr "さらに以下のフラグを論理和の形で I<options> に指定できる:"
13468
13469 #. type: Plain text
13470 #: build/C/man2/wait.2:282
13471 msgid "As for B<waitpid>()."
13472 msgstr "B<waitpid>()  と同様。"
13473
13474 #. type: TP
13475 #: build/C/man2/wait.2:282
13476 #, no-wrap
13477 msgid "B<WNOWAIT>"
13478 msgstr "B<WNOWAIT>"
13479
13480 #. type: Plain text
13481 #: build/C/man2/wait.2:286
13482 msgid ""
13483 "Leave the child in a waitable state; a later wait call can be used to again "
13484 "retrieve the child status information."
13485 msgstr ""
13486 "waitable 状態のプロセスをそのままにする。この後で wait コールを 使って、同じ"
13487 "子プロセスの状態情報をもう一度取得することができる。"
13488
13489 #. type: Plain text
13490 #: build/C/man2/wait.2:293
13491 msgid ""
13492 "Upon successful return, B<waitid>()  fills in the following fields of the "
13493 "I<siginfo_t> structure pointed to by I<infop>:"
13494 msgstr ""
13495 "成功した場合には、 B<waitid>()  は I<infop> が指す I<siginfo_t> 構造体の以下"
13496 "のフィールドを設定する:"
13497
13498 #. type: Plain text
13499 #: build/C/man2/wait.2:296
13500 msgid "The process ID of the child."
13501 msgstr "子プロセスのプロセスID。"
13502
13503 #. type: Plain text
13504 #: build/C/man2/wait.2:300
13505 msgid ""
13506 "The real user ID of the child.  (This field is not set on most other "
13507 "implementations.)"
13508 msgstr ""
13509 "子プロセスの実ユーザID (このフィールドは他のほとんどの実装では設定されない)。"
13510
13511 #. type: Plain text
13512 #: build/C/man2/wait.2:304
13513 msgid "Always set to B<SIGCHLD>."
13514 msgstr "常に B<SIGCHLD> が設定される。"
13515
13516 #. type: TP
13517 #: build/C/man2/wait.2:304
13518 #, no-wrap
13519 msgid "I<si_status>"
13520 msgstr "I<si_status>"
13521
13522 #. type: Plain text
13523 #: build/C/man2/wait.2:314
13524 msgid ""
13525 "Either the exit status of the child, as given to B<_exit>(2)  (or B<exit>"
13526 "(3)), or the signal that caused the child to terminate, stop, or continue.  "
13527 "The I<si_code> field can be used to determine how to interpret this field."
13528 msgstr ""
13529 "B<_exit>(2)  (か B<exit>(3))  に指定された子プロセスの終了ステータス、もしく"
13530 "は 子プロセスの終了、停止、再開の原因となったシグナルが設定される。 この"
13531 "フィールドをどう解釈するかは、 I<si_code> フィールドを参照して決めることがで"
13532 "きる。"
13533
13534 #. type: Plain text
13535 #: build/C/man2/wait.2:331
13536 msgid ""
13537 "Set to one of: B<CLD_EXITED> (child called B<_exit>(2)); B<CLD_KILLED> "
13538 "(child killed by signal); B<CLD_DUMPED> (child killed by signal, and dumped "
13539 "core); B<CLD_STOPPED> (child stopped by signal); B<CLD_TRAPPED> (traced "
13540 "child has trapped); or B<CLD_CONTINUED> (child continued by B<SIGCONT>)."
13541 msgstr ""
13542 "以下のいずれかが設定される: B<CLD_EXITED> (子プロセスが B<_exit>(2)  を呼び出"
13543 "した); B<CLD_KILLED> (シグナルにより子プロセスが kill された); B<CLD_DUMPED> "
13544 "(シグナルにより子プロセスが kill され、コア・ダンプが行われた); "
13545 "B<CLD_STOPPED> (シグナルにより子プロセスが停止した); B<CLD_TRAPPED> (トレース"
13546 "されていた子プロセスがトラップを受信した); B<CLD_CONTINUED> (B<SIGCONT> によ"
13547 "り子プロセスが再開された)。"
13548
13549 #.  POSIX.1-2001 leaves this possibility unspecified; most
13550 #.  implementations (including Linux) zero out the structure
13551 #.  in this case, but at least one implementation (AIX 5.1)
13552 #.  does not -- MTK Nov 04
13553 #. type: Plain text
13554 #: build/C/man2/wait.2:353
13555 msgid ""
13556 "If B<WNOHANG> was specified in I<options> and there were no children in a "
13557 "waitable state, then B<waitid>()  returns 0 immediately and the state of the "
13558 "I<siginfo_t> structure pointed to by I<infop> is unspecified.  To "
13559 "distinguish this case from that where a child was in a waitable state, zero "
13560 "out the I<si_pid> field before the call and check for a nonzero value in "
13561 "this field after the call returns."
13562 msgstr ""
13563 "B<WNOHANG> が I<options> に指定されていて、 waitable 状態の子プロセスがなかっ"
13564 "た場合には、 B<waitid>()  はすぐに 0 を返す。このとき、 I<infop> が指す "
13565 "I<siginfo_t> 構造体の内容は不定である。 この場合を waitable 状態の子プロセス"
13566 "があった場合と区別するには、 B<waitid>()  を呼び出す前に I<si_pid> を 0 にし"
13567 "ておき、コールが復帰した後でこのフィールドが 0 以外の値かどうか をチェックす"
13568 "ればよい。"
13569
13570 #. type: Plain text
13571 #: build/C/man2/wait.2:357
13572 msgid ""
13573 "B<wait>(): on success, returns the process ID of the terminated child; on "
13574 "error, -1 is returned."
13575 msgstr ""
13576 "B<wait>(): 成功すると、終了した子プロセスのプロセスID を返す。 エラーの場合 "
13577 "-1 を返す。"
13578
13579 #. type: Plain text
13580 #: build/C/man2/wait.2:366
13581 msgid ""
13582 "B<waitpid>(): on success, returns the process ID of the child whose state "
13583 "has changed; if B<WNOHANG> was specified and one or more child(ren) "
13584 "specified by I<pid> exist, but have not yet changed state, then 0 is "
13585 "returned.  On error, -1 is returned."
13586 msgstr ""
13587 "B<waitpid>(): 成功すると、状態が変化した子プロセスのプロセスID を返す。 "
13588 "B<WNOHANG> が指定されていて、 I<pid> で指示された子プロセスが一つ以上存在する"
13589 "が、どの子プロセスでも 状態変化が起こっていなかった場合は、 0 を返す。 エラー"
13590 "の場合 -1 を返す。"
13591
13592 #.  FIXME: As reported by Vegard Nossum, if infop is NULL, then waitid()
13593 #.  returns the PID of the child.  Either this is a bug, or it is intended
13594 #.  behavior that needs to be documented.  See my Jan 2009 LKML mail
13595 #.  "waitid() return value strangeness when infop is NULL".
13596 #. type: Plain text
13597 #: build/C/man2/wait.2:382
13598 msgid ""
13599 "B<waitid>(): returns 0 on success or if B<WNOHANG> was specified and no child"
13600 "(ren) specified by I<id> has yet changed state; on error, -1 is returned.  "
13601 "Each of these calls sets I<errno> to an appropriate value in the case of an "
13602 "error."
13603 msgstr ""
13604 "B<waitid>(): 成功すると 0 を返す。 B<WNOHANG> が指定されていて、 I<pid> で指"
13605 "示された子プロセスで状態変化が起こっていなかった場合にも 0 を返す。 エラーの"
13606 "場合 -1 を返す。 エラーの場合、これらのシステムコールはいずれも I<errno> に適"
13607 "切な値を設定する。"
13608
13609 #. type: TP
13610 #: build/C/man2/wait.2:383 build/C/man2/wait.2:388
13611 #, no-wrap
13612 msgid "B<ECHILD>"
13613 msgstr "B<ECHILD>"
13614
13615 #. type: Plain text
13616 #: build/C/man2/wait.2:388
13617 msgid ""
13618 "(for B<wait>())  The calling process does not have any unwaited-for children."
13619 msgstr ""
13620 "(B<wait>()  の場合)  呼び出し元プロセスには、wait を行っていない子プロセスは"
13621 "ない。"
13622
13623 #. type: Plain text
13624 #: build/C/man2/wait.2:408
13625 msgid ""
13626 "(for B<waitpid>()  or B<waitid>())  The process specified by I<pid> "
13627 "(B<waitpid>())  or I<idtype> and I<id> (B<waitid>())  does not exist or is "
13628 "not a child of the calling process.  (This can happen for one's own child if "
13629 "the action for B<SIGCHLD> is set to B<SIG_IGN>.  See also the I<Linux Notes> "
13630 "section about threads.)"
13631 msgstr ""
13632 "(B<waitpid>()  か B<waitid>()  の場合)  I<pid> (B<waitpid>())  か I<idtype> "
13633 "と I<id> (B<waitid>())  で指定したプロセスが存在しないか、呼び出し元プロセス"
13634 "の子プロセスでない (B<SIGCHLD> の動作に B<SIG_IGN> を設定した場合には、自分自"
13635 "身の子プロセスでも起こりうる。 スレッドに関しては「Linux での注意」の節も参照"
13636 "すること)。"
13637
13638 #. type: Plain text
13639 #: build/C/man2/wait.2:415
13640 msgid ""
13641 "B<WNOHANG> was not set and an unblocked signal or a B<SIGCHLD> was caught; "
13642 "see B<signal>(7)."
13643 msgstr ""
13644 "B<WNOHANG> が設定されておらず、禁止 (block) されていないシグナルや "
13645 "B<SIGCHLD> を受信した。 B<signal>(7)  参照。"
13646
13647 #. type: Plain text
13648 #: build/C/man2/wait.2:420
13649 msgid "The I<options> argument was invalid."
13650 msgstr "I<options> 引き数が不正である。"
13651
13652 #. type: Plain text
13653 #: build/C/man2/wait.2:435
13654 msgid ""
13655 "A child that terminates, but has not been waited for becomes a \"zombie\".  "
13656 "The kernel maintains a minimal set of information about the zombie process "
13657 "(PID, termination status, resource usage information)  in order to allow the "
13658 "parent to later perform a wait to obtain information about the child.  As "
13659 "long as a zombie is not removed from the system via a wait, it will consume "
13660 "a slot in the kernel process table, and if this table fills, it will not be "
13661 "possible to create further processes.  If a parent process terminates, then "
13662 "its \"zombie\" children (if any)  are adopted by B<init>(8), which "
13663 "automatically performs a wait to remove the zombies."
13664 msgstr ""
13665 "終了したが、wait されていない子プロセスは「ゾンビ」になる。 後で親プロセスが "
13666 "wait を実行して子プロセスについての情報を取得できるように、 カーネルはゾンビ"
13667 "プロセスについて最小限の情報 (PID、終了ステータス、 リソース使用状況) を保持"
13668 "する。 ゾンビプロセスは、 wait によってシステムから削除されない限り、 カーネ"
13669 "ルのプロセステーブルの 1 エントリを消費する。このプロセステーブルが 一杯にな"
13670 "ると、新たにプロセスを作ることができなくなる。 親プロセスが終了すると、その親"
13671 "プロセスの「ゾンビ」の 子プロセスは (もしあれば)  B<init>(8)  の養子となる。 "
13672 "B<init>(8)  は wait を自動的に実行し、ゾンビを削除する。"
13673
13674 #. type: Plain text
13675 #: build/C/man2/wait.2:476
13676 msgid ""
13677 "POSIX.1-2001 specifies that if the disposition of B<SIGCHLD> is set to "
13678 "B<SIG_IGN> or the B<SA_NOCLDWAIT> flag is set for B<SIGCHLD> (see "
13679 "B<sigaction>(2)), then children that terminate do not become zombies and a "
13680 "call to B<wait>()  or B<waitpid>()  will block until all children have "
13681 "terminated, and then fail with I<errno> set to B<ECHILD>.  (The original "
13682 "POSIX standard left the behavior of setting B<SIGCHLD> to B<SIG_IGN> "
13683 "unspecified.  Note that even though the default disposition of B<SIGCHLD> is "
13684 "\"ignore\", explicitly setting the disposition to B<SIG_IGN> results in "
13685 "different treatment of zombie process children.)  Linux 2.6 conforms to this "
13686 "specification.  However, Linux 2.4 (and earlier) does not: if a B<wait>()  "
13687 "or B<waitpid>()  call is made while B<SIGCHLD> is being ignored, the call "
13688 "behaves just as though B<SIGCHLD> were not being ignored, that is, the call "
13689 "blocks until the next child terminates and then returns the process ID and "
13690 "status of that child."
13691 msgstr ""
13692 "POSIX.1-2001 では以下のように規定されている。 B<SIGCHLD> の動作が B<SIG_IGN> "
13693 "に設定されたか、 B<SIGCHLD> に対して B<SA_NOCLDWAIT> フラグが設定された場合 "
13694 "(B<sigaction>(2)  参照)、終了した子プロセスはゾンビにはならず、 B<wait>()  "
13695 "や B<waitpid>()  の呼び出しは全ての子プロセスが終了するまで停止し、 子プロセ"
13696 "スが全部終了した後 I<errno> に B<ECHILD> を設定して失敗する。 (もともとの "
13697 "POSIX 標準は B<SIGCHLD> に B<SIG_IGN> を設定した場合の振る舞いを未規定のまま"
13698 "にしている。 B<SIGCHLD> のデフォルトの動作が「無視」であるにもかかわらず、 "
13699 "B<SIGCHLD> の動作として B<SIG_IGN> を明示的に設定した場合にはゾンビプロセスの"
13700 "子プロセスの扱いが 異なる点に注意すること。)  Linux 2.6 はこの仕様に準拠して"
13701 "いる。 しかし、Linux 2.4 (とそれ以前のバージョン) はそうではない: B<SIGCHLD> "
13702 "が無視される状態で B<wait>()  または B<waitpid>()  が呼び出された場合、 "
13703 "B<SIGCHLD> が無視されていないかのように振る舞う。 つまり、呼び出しによって次"
13704 "の子プロセスの終了までブロックされ、 終了した子プロセスの PID と状態が返され"
13705 "る。"
13706
13707 #. type: Plain text
13708 #: build/C/man2/wait.2:492
13709 msgid ""
13710 "In the Linux kernel, a kernel-scheduled thread is not a distinct construct "
13711 "from a process.  Instead, a thread is simply a process that is created using "
13712 "the Linux-unique B<clone>(2)  system call; other routines such as the "
13713 "portable B<pthread_create>(3)  call are implemented using B<clone>(2).  "
13714 "Before Linux 2.4, a thread was just a special case of a process, and as a "
13715 "consequence one thread could not wait on the children of another thread, "
13716 "even when the latter belongs to the same thread group.  However, POSIX "
13717 "prescribes such functionality, and since Linux 2.4 a thread can, and by "
13718 "default will, wait on children of other threads in the same thread group."
13719 msgstr ""
13720 "Linux カーネルでは、カーネルによってスケジュールされるスレッドは プロセスと明"
13721 "確に区別できる構成要素ではない。スレッドは Linux 固有の B<clone>(2)  システム"
13722 "コールを使用して生成されるプロセスに過ぎない。 移植性のある B<pthread_create>"
13723 "(3)  コールのような他のルーチンは B<clone>(2)  を使用して実装されている; これ"
13724 "らでは B<waitid>()  を使うことはできない。 Linux 2.4 より前では、スレッドは単"
13725 "に特殊なプロセスであったので、 例え同じスレッドグループであっても、 あるス"
13726 "レッドが別のスレッドの子プロセスが終了するのを待つことは出来なかった。 しか"
13727 "し、POSIX ではこのような機能を規定しており、 Linux 2.4 以降では、あるスレッド"
13728 "が同じスレッドグループの他のスレッドの 子プロセスが終了するのを待つことができ"
13729 "るようになった。 そして将来はこれがデフォルトの動作になるであろう。"
13730
13731 #. type: Plain text
13732 #: build/C/man2/wait.2:499
13733 msgid ""
13734 "The following Linux-specific I<options> are for use with children created "
13735 "using B<clone>(2); they cannot be used with B<waitid>():"
13736 msgstr ""
13737 "B<clone>(2)  を用いて作られた子プロセスには、以下の Linux 固有の I<options> "
13738 "が使用できる。"
13739
13740 #. type: TP
13741 #: build/C/man2/wait.2:499
13742 #, no-wrap
13743 msgid "B<__WCLONE>"
13744 msgstr "B<__WCLONE>"
13745
13746 #.  since 0.99pl10
13747 #. type: Plain text
13748 #: build/C/man2/wait.2:510
13749 msgid ""
13750 "Wait for \"clone\" children only.  If omitted then wait for \"non-clone\" "
13751 "children only.  (A \"clone\" child is one which delivers no signal, or a "
13752 "signal other than B<SIGCHLD> to its parent upon termination.)  This option "
13753 "is ignored if B<__WALL> is also specified."
13754 msgstr ""
13755 "\"clone\" な子プロセスだけを待つ。 指定されなかった場合は非 \"clone\" な子プ"
13756 "ロセスだけを待つ (\"clone\" な子プロセスは、終了時に親プロセスへ全くシグナル"
13757 "を送らないか、 B<SIGCHLD> 以外のシグナルを送る)。 このオプションは B<__WALL> "
13758 "も指定された場合は無視される。"
13759
13760 #. type: TP
13761 #: build/C/man2/wait.2:510
13762 #, no-wrap
13763 msgid "B<__WALL> (since Linux 2.4)"
13764 msgstr "B<__WALL> (Linux 2.4 以降)"
13765
13766 #.  since patch-2.3.48
13767 #. type: Plain text
13768 #: build/C/man2/wait.2:515
13769 msgid "Wait for all children, regardless of type (\"clone\" or \"non-clone\")."
13770 msgstr "\"clone\" であるかないかに関わらず、 全ての子プロセスを待つ。"
13771
13772 #. type: TP
13773 #: build/C/man2/wait.2:515
13774 #, no-wrap
13775 msgid "B<__WNOTHREAD> (since Linux 2.4)"
13776 msgstr "B<__WNOTHREAD> (Linux 2.4 以降)"
13777
13778 #.  since patch-2.4.0-test8
13779 #. type: Plain text
13780 #: build/C/man2/wait.2:521
13781 msgid ""
13782 "Do not wait for children of other threads in the same thread group.  This "
13783 "was the default before Linux 2.4."
13784 msgstr ""
13785 "同じスレッドグループの他のスレッドの子プロセスは待たない。 Linux 2.4 より前で"
13786 "はデフォルトであった。"
13787
13788 #. type: Plain text
13789 #: build/C/man2/wait.2:536
13790 msgid ""
13791 "According to POSIX.1-2008, an application calling B<waitid>()  must ensure "
13792 "that I<infop> points to a I<siginfo_t> structure (i.e., that it is a non-"
13793 "NULL pointer).  On Linux, if I<infop> is NULL, B<waitid>()  succeeds, and "
13794 "returns the process ID of the waited-for child.  Applications should avoid "
13795 "relying on this inconsistent, nonstandard, and unnecessary feature."
13796 msgstr ""
13797
13798 #.  fork.2 refers to this example program.
13799 #. type: Plain text
13800 #: build/C/man2/wait.2:553
13801 msgid ""
13802 "The following program demonstrates the use of B<fork>(2)  and B<waitpid>().  "
13803 "The program creates a child process.  If no command-line argument is "
13804 "supplied to the program, then the child suspends its execution using B<pause>"
13805 "(2), to allow the user to send signals to the child.  Otherwise, if a "
13806 "command-line argument is supplied, then the child exits immediately, using "
13807 "the integer supplied on the command line as the exit status.  The parent "
13808 "process executes a loop that monitors the child using B<waitpid>(), and uses "
13809 "the W*() macros described above to analyze the wait status value."
13810 msgstr ""
13811 "以下のプログラムは、 B<fork>(2)  と B<waitpid>()  の使用方法の例を示してい"
13812 "る。 このプログラムでは子プロセスを生成する。 コマンドライン引き数が指定され"
13813 "なかったときは、 子プロセスは B<pause>(2)  を使ってその実行を一時停止し、ユー"
13814 "ザがその子プロセスに シグナルを送信できるようにする。 コマンドライン引き数が"
13815 "指定された場合は、 子プロセスは直ちに終了し、 コマンドラインで指定された整数"
13816 "を終了ステータスとして使用する。 親プロセスは、 B<waitpid>()  を使って子プロ"
13817 "セスを監視し、 wait のステータス値を上記の W*() マクロを使って解析するという "
13818 "ループを実行する。"
13819
13820 #. type: Plain text
13821 #: build/C/man2/wait.2:569
13822 #, no-wrap
13823 msgid ""
13824 "$B< ./a.out &>\n"
13825 "Child PID is 32360\n"
13826 "[1] 32359\n"
13827 "$B< kill -STOP 32360>\n"
13828 "stopped by signal 19\n"
13829 "$B< kill -CONT 32360>\n"
13830 "continued\n"
13831 "$B< kill -TERM 32360>\n"
13832 "killed by signal 15\n"
13833 "[1]+  Done                    ./a.out\n"
13834 "$\n"
13835 msgstr ""
13836 "$B< ./a.out &>\n"
13837 "Child PID is 32360\n"
13838 "[1] 32359\n"
13839 "$B< kill -STOP 32360>\n"
13840 "stopped by signal 19\n"
13841 "$B< kill -CONT 32360>\n"
13842 "continued\n"
13843 "$B< kill -TERM 32360>\n"
13844 "killed by signal 15\n"
13845 "[1]+  Done                    ./a.out\n"
13846 "$\n"
13847
13848 #. type: Plain text
13849 #: build/C/man2/wait.2:578
13850 #, no-wrap
13851 msgid ""
13852 "#include E<lt>sys/wait.hE<gt>\n"
13853 "#include E<lt>stdlib.hE<gt>\n"
13854 "#include E<lt>unistd.hE<gt>\n"
13855 "#include E<lt>stdio.hE<gt>\n"
13856 msgstr ""
13857 "#include E<lt>sys/wait.hE<gt>\n"
13858 "#include E<lt>stdlib.hE<gt>\n"
13859 "#include E<lt>unistd.hE<gt>\n"
13860 "#include E<lt>stdio.hE<gt>\n"
13861
13862 #. type: Plain text
13863 #: build/C/man2/wait.2:584
13864 #, no-wrap
13865 msgid ""
13866 "int\n"
13867 "main(int argc, char *argv[])\n"
13868 "{\n"
13869 "    pid_t cpid, w;\n"
13870 "    int status;\n"
13871 msgstr ""
13872 "int\n"
13873 "main(int argc, char *argv[])\n"
13874 "{\n"
13875 "    pid_t cpid, w;\n"
13876 "    int status;\n"
13877
13878 #. type: Plain text
13879 #: build/C/man2/wait.2:590
13880 #, no-wrap
13881 msgid ""
13882 "    cpid = fork();\n"
13883 "    if (cpid == -1) {\n"
13884 "        perror(\"fork\");\n"
13885 "        exit(EXIT_FAILURE);\n"
13886 "    }\n"
13887 msgstr ""
13888 "    cpid = fork();\n"
13889 "    if (cpid == -1) {\n"
13890 "        perror(\"fork\");\n"
13891 "        exit(EXIT_FAILURE);\n"
13892 "    }\n"
13893
13894 #. type: Plain text
13895 #: build/C/man2/wait.2:596
13896 #, no-wrap
13897 msgid ""
13898 "    if (cpid == 0) {            /* Code executed by child */\n"
13899 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
13900 "        if (argc == 1)\n"
13901 "            pause();                    /* Wait for signals */\n"
13902 "        _exit(atoi(argv[1]));\n"
13903 msgstr ""
13904 "    if (cpid == 0) {            /* Code executed by child */\n"
13905 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
13906 "        if (argc == 1)\n"
13907 "            pause();                    /* Wait for signals */\n"
13908 "        _exit(atoi(argv[1]));\n"
13909
13910 #. type: Plain text
13911 #: build/C/man2/wait.2:604
13912 #, no-wrap
13913 msgid ""
13914 "    } else {                    /* Code executed by parent */\n"
13915 "        do {\n"
13916 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
13917 "            if (w == -1) {\n"
13918 "                perror(\"waitpid\");\n"
13919 "                exit(EXIT_FAILURE);\n"
13920 "            }\n"
13921 msgstr ""
13922 "    } else {                    /* Code executed by parent */\n"
13923 "        do {\n"
13924 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
13925 "            if (w == -1) {\n"
13926 "                perror(\"waitpid\");\n"
13927 "                exit(EXIT_FAILURE);\n"
13928 "            }\n"
13929
13930 #. type: Plain text
13931 #: build/C/man2/wait.2:618
13932 #, no-wrap
13933 msgid ""
13934 "            if (WIFEXITED(status)) {\n"
13935 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
13936 "            } else if (WIFSIGNALED(status)) {\n"
13937 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
13938 "            } else if (WIFSTOPPED(status)) {\n"
13939 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
13940 "            } else if (WIFCONTINUED(status)) {\n"
13941 "                printf(\"continued\\en\");\n"
13942 "            }\n"
13943 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
13944 "        exit(EXIT_SUCCESS);\n"
13945 "    }\n"
13946 "}\n"
13947 msgstr ""
13948 "            if (WIFEXITED(status)) {\n"
13949 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
13950 "            } else if (WIFSIGNALED(status)) {\n"
13951 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
13952 "            } else if (WIFSTOPPED(status)) {\n"
13953 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
13954 "            } else if (WIFCONTINUED(status)) {\n"
13955 "                printf(\"continued\\en\");\n"
13956 "            }\n"
13957 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
13958 "        exit(EXIT_SUCCESS);\n"
13959 "    }\n"
13960 "}\n"
13961
13962 #. type: Plain text
13963 #: build/C/man2/wait.2:631
13964 msgid ""
13965 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), B<sigaction>"
13966 "(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), B<credentials>(7), "
13967 "B<signal>(7)"
13968 msgstr ""
13969 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), B<sigaction>"
13970 "(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), B<credentials>(7), "
13971 "B<signal>(7)"
13972
13973 #. type: TH
13974 #: build/C/man2/wait4.2:33
13975 #, no-wrap
13976 msgid "WAIT4"
13977 msgstr "WAIT4"
13978
13979 #. type: TH
13980 #: build/C/man2/wait4.2:33
13981 #, fuzzy, no-wrap
13982 #| msgid "2012-04-23"
13983 msgid "2012-09-23"
13984 msgstr "2012-04-23"
13985
13986 #. type: Plain text
13987 #: build/C/man2/wait4.2:36
13988 msgid "wait3, wait4 - wait for process to change state, BSD style"
13989 msgstr "wait3, wait4 - BSD スタイルでプロセスの状態変化を待つ"
13990
13991 #. type: Plain text
13992 #: build/C/man2/wait4.2:42
13993 #, no-wrap
13994 msgid ""
13995 "B<#include E<lt>sys/types.hE<gt>>\n"
13996 "B<#include E<lt>sys/time.hE<gt>>\n"
13997 "B<#include E<lt>sys/resource.hE<gt>>\n"
13998 "B<#include E<lt>sys/wait.hE<gt>>\n"
13999 msgstr ""
14000 "B<#include E<lt>sys/types.hE<gt>>\n"
14001 "B<#include E<lt>sys/time.hE<gt>>\n"
14002 "B<#include E<lt>sys/resource.hE<gt>>\n"
14003 "B<#include E<lt>sys/wait.hE<gt>>\n"
14004
14005 #. type: Plain text
14006 #: build/C/man2/wait4.2:45
14007 #, no-wrap
14008 msgid ""
14009 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
14010 "B<            struct rusage *>I<rusage>B<);>\n"
14011 msgstr ""
14012 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
14013 "B<            struct rusage *>I<rusage>B<);>\n"
14014
14015 #. type: Plain text
14016 #: build/C/man2/wait4.2:48
14017 #, no-wrap
14018 msgid ""
14019 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
14020 "B<            struct rusage *>I<rusage>B<);>\n"
14021 msgstr ""
14022 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
14023 "B<            struct rusage *>I<rusage>B<);>\n"
14024
14025 #. type: Plain text
14026 #: build/C/man2/wait4.2:57
14027 msgid "B<wait3>():"
14028 msgstr "B<wait3>():"
14029
14030 #. type: Plain text
14031 #: build/C/man2/wait4.2:63
14032 msgid "B<wait4>():"
14033 msgstr "B<wait4>():"
14034
14035 #. type: Plain text
14036 #: build/C/man2/wait4.2:65
14037 msgid "_BSD_SOURCE"
14038 msgstr "_BSD_SOURCE"
14039
14040 #. type: Plain text
14041 #: build/C/man2/wait4.2:73
14042 msgid ""
14043 "These functions are obsolete; use B<waitpid>(2)  or B<waitid>(2)  in new "
14044 "programs."
14045 msgstr ""
14046
14047 #. type: Plain text
14048 #: build/C/man2/wait4.2:83
14049 msgid ""
14050 "The B<wait3>()  and B<wait4>()  system calls are similar to B<waitpid>(2), "
14051 "but additionally return resource usage information about the child in the "
14052 "structure pointed to by I<rusage>."
14053 msgstr ""
14054 "システムコール B<wait3>()  と B<wait4>()  は B<waitpid>(2)  と同様の動作をす"
14055 "る。それに加え、子プロセスのリソース使用状況の情報を I<rusage> が指す構造体に"
14056 "入れて返す。"
14057
14058 #. type: Plain text
14059 #: build/C/man2/wait4.2:89
14060 msgid ""
14061 "Other than the use of the I<rusage> argument, the following B<wait3>()  call:"
14062 msgstr "I<rusage> を使用する点を除けば、次の B<wait3>()  の呼び出し"
14063
14064 #. type: Plain text
14065 #: build/C/man2/wait4.2:92
14066 #, no-wrap
14067 msgid "    wait3(status, options, rusage);\n"
14068 msgstr "    wait3(status, options, rusage);\n"
14069
14070 #. type: Plain text
14071 #: build/C/man2/wait4.2:95 build/C/man2/wait4.2:109
14072 msgid "is equivalent to:"
14073 msgstr "は以下と等価である。"
14074
14075 #. type: Plain text
14076 #: build/C/man2/wait4.2:98
14077 #, no-wrap
14078 msgid "    waitpid(-1, status, options);\n"
14079 msgstr "    waitpid(-1, status, options);\n"
14080
14081 #. type: Plain text
14082 #: build/C/man2/wait4.2:103
14083 msgid "Similarly, the following B<wait4>()  call:"
14084 msgstr "同様に、次の B<wait4>()  の呼び出し"
14085
14086 #. type: Plain text
14087 #: build/C/man2/wait4.2:106
14088 #, no-wrap
14089 msgid "    wait4(pid, status, options, rusage);\n"
14090 msgstr "    wait4(pid, status, options, rusage);\n"
14091
14092 #. type: Plain text
14093 #: build/C/man2/wait4.2:112
14094 #, no-wrap
14095 msgid "    waitpid(pid, status, options);\n"
14096 msgstr "    waitpid(pid, status, options);\n"
14097
14098 #. type: Plain text
14099 #: build/C/man2/wait4.2:122
14100 msgid ""
14101 "In other words, B<wait3>()  waits of any child, while B<wait4>()  can be "
14102 "used to select a specific child, or children, on which to wait.  See B<wait>"
14103 "(2)  for further details."
14104 msgstr ""
14105 "言い換えると、 B<wait3>()  は全ての子プロセスを対象に待つが、 B<wait4>()  で"
14106 "は特定の子プロセス (複数可) を選んで待つことができる。"
14107
14108 #. type: Plain text
14109 #: build/C/man2/wait4.2:132
14110 msgid ""
14111 "If I<rusage> is not NULL, the I<struct rusage> to which it points will be "
14112 "filled with accounting information about the child.  See B<getrusage>(2)  "
14113 "for details."
14114 msgstr ""
14115 "I<rusage> が NULL でない場合、 I<rusage> が指す I<rusage 構造体> には子プロセ"
14116 "スのアカウント情報が格納される。 詳しくは B<getrusage>(2)  を参照のこと。"
14117
14118 #. type: Plain text
14119 #: build/C/man2/wait4.2:135 build/C/man2/wait4.2:138
14120 msgid "As for B<waitpid>(2)."
14121 msgstr "B<waitpid>(2)  と同様。"
14122
14123 #. type: Plain text
14124 #: build/C/man2/wait4.2:140
14125 msgid "4.3BSD."
14126 msgstr "4.3BSD."
14127
14128 #. type: Plain text
14129 #: build/C/man2/wait4.2:147
14130 msgid ""
14131 "SUSv1 included a specification of B<wait3>(); SUSv2 included B<wait3>(), but "
14132 "marked it LEGACY; SUSv3 removed it."
14133 msgstr ""
14134
14135 #. type: Plain text
14136 #: build/C/man2/wait4.2:159
14137 msgid ""
14138 "Including I<E<lt>sys/time.hE<gt>> is not required these days, but increases "
14139 "portability.  (Indeed, I<E<lt>sys/resource.hE<gt>> defines the I<rusage> "
14140 "structure with fields of type I<struct timeval> defined in I<E<lt>sys/time."
14141 "hE<gt>>.)"
14142 msgstr ""
14143 "現在では I<E<lt>sys/time.hE<gt>> をインクルードする必要はないが、インクルード"
14144 "しておくと 移植性を高めることができる (実際には I<E<lt>sys/resource.hE<gt>> "
14145 "で I<rusage> 構造体が定義されているが、そのフィールドで使用されている "
14146 "I<struct timeval> 型は I<E<lt>sys/time.hE<gt>> で定義されている)。"
14147
14148 #. type: Plain text
14149 #: build/C/man2/wait4.2:165
14150 msgid ""
14151 "On Linux, B<wait3>()  is a library function implemented on top of the "
14152 "B<wait4>()  system call."
14153 msgstr ""
14154 "Linux では、 B<wait3>()  はライブラリ関数であり、 B<wait4>()  システムコール"
14155 "を使って実装されている。"
14156
14157 #. type: Plain text
14158 #: build/C/man2/wait4.2:172
14159 msgid ""
14160 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
14161 "B<signal>(7)"
14162 msgstr ""
14163 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
14164 "B<signal>(7)"
14165
14166 #~ msgid "2009-09-15"
14167 #~ msgstr "2009-09-15"
14168
14169 #~ msgid "2011-09-18"
14170 #~ msgstr "2011-09-18"
14171
14172 #~ msgid "2007-07-05"
14173 #~ msgstr "2007-07-05"
14174
14175 #~ msgid "2012-04-26"
14176 #~ msgstr "2012-04-26"
14177
14178 #~ msgid "2010-09-10"
14179 #~ msgstr "2010-09-10"
14180
14181 #~ msgid "2012-05-02"
14182 #~ msgstr "2012-05-02"
14183
14184 #~ msgid "2008-07-11"
14185 #~ msgstr "2008-07-11"
14186
14187 #~ msgid ""
14188 #~ "B<SIGIO> and B<SIGLOST> have the same value.  The latter is commented out "
14189 #~ "in the kernel source, but the build process of some software still thinks "
14190 #~ "that signal 29 is B<SIGLOST>."
14191 #~ msgstr ""
14192 #~ "B<SIGIO> と B<SIGLOST> は同じ値を持っている。 B<SIGLOST> はカーネルのソー"
14193 #~ "スではコメントアウトされている。 しかし、ソフトウェアによってはビルドの過"
14194 #~ "程でシグナル 29 を B<SIGLOST> とみなしてしまうものがある。"
14195
14196 #~ msgid "2011-10-03"
14197 #~ msgstr "2011-10-03"
14198
14199 #~ msgid "B<kill>(2)  or B<raise>(3)"
14200 #~ msgstr "B<kill>(2)  または B<raise>(3)"
14201
14202 #~ msgid "queued SIGIO"
14203 #~ msgstr "キューイングされた SIGIO"
14204
14205 #~ msgid "EXAMPLES"
14206 #~ msgstr "例"
14207
14208 #~ msgid "POSIX.1b signals and B<SIGCHLD> fill in I<si_pid> and I<si_uid>."
14209 #~ msgstr ""
14210 #~ "POSIX.1b シグナルと B<SIGCHLD> は I<si_pid> と I<si_uid> を設定する。"
14211
14212 #~ msgid ""
14213 #~ "I<si_int> and I<si_ptr> are specified by the sender of the POSIX.1b "
14214 #~ "signal.  See B<sigqueue>(2)  for more details."
14215 #~ msgstr ""
14216 #~ "I<si_int> と I<si_ptr> は POSIX.1b シグナルの送信者によって指定される。 詳"
14217 #~ "細は B<sigqueue>(2)  を参照のこと。"
14218
14219 #~ msgid ""
14220 #~ "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, and B<SIGBUS> fill in I<si_addr> with "
14221 #~ "the address of the fault.  B<SIGPOLL> fills in I<si_band> and I<si_fd>."
14222 #~ msgstr ""
14223 #~ "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS> は I<si_addr> にエラーが発生し"
14224 #~ "たアドレスを設定する。 SIGPOLL は I<si_band> と I<si_fd> を設定する。"