OSDN Git Service

(split) LDP: Translate several pages
[linuxjm/LDP_man-pages.git] / po4a / signal / po / ja.po
1 # SOME DESCRIPTIVE TITLE
2 # Copyright (C) YEAR Free Software Foundation, Inc.
3 # This file is distributed under the same license as the PACKAGE package.
4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5 #
6 msgid ""
7 msgstr ""
8 "Project-Id-Version: PACKAGE VERSION\n"
9 "POT-Creation-Date: 2013-07-15 16:08+0900\n"
10 "PO-Revision-Date: 2013-07-30 22:57+0900\n"
11 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12 "Language-Team: LANGUAGE <LL@li.org>\n"
13 "Language: \n"
14 "MIME-Version: 1.0\n"
15 "Content-Type: text/plain; charset=UTF-8\n"
16 "Content-Transfer-Encoding: 8bit\n"
17
18 #. type: TH
19 #: build/C/man3/bsd_signal.3:25
20 #, no-wrap
21 msgid "BSD_SIGNAL"
22 msgstr "BSD_SIGNAL"
23
24 #. type: TH
25 #: build/C/man3/bsd_signal.3:25
26 #, no-wrap
27 msgid "2009-03-15"
28 msgstr "2009-03-15"
29
30 #. type: TH
31 #: build/C/man3/bsd_signal.3:25 build/C/man2/eventfd.2:22
32 #: build/C/man2/getitimer.2:12 build/C/man3/gsignal.3:27
33 #: build/C/man2/kill.2:44 build/C/man2/killpg.2:42 build/C/man2/pause.2:30
34 #: build/C/man2/prctl.2:52 build/C/man3/profil.3:28 build/C/man3/psignal.3:30
35 #: build/C/man3/raise.3:29 build/C/man2/rt_sigqueueinfo.2:25
36 #: build/C/man2/s390_runtime_instr.2:25 build/C/man2/sgetmask.2:26
37 #: build/C/man2/sigaction.2:47 build/C/man2/sigaltstack.2:27
38 #: build/C/man7/sigevent.7:26 build/C/man3/siginterrupt.3:31
39 #: build/C/man2/signal.2:36 build/C/man7/signal.7:46
40 #: build/C/man2/signalfd.2:20 build/C/man3/sigpause.3:25
41 #: build/C/man2/sigpending.2:29 build/C/man2/sigprocmask.2:29
42 #: build/C/man3/sigqueue.3:28 build/C/man2/sigreturn.2:29
43 #: build/C/man3/sigset.3:26 build/C/man3/sigsetops.3:31
44 #: build/C/man2/sigsuspend.2:29 build/C/man3/sigvec.3:26
45 #: build/C/man3/sigwait.3:26 build/C/man2/sigwaitinfo.2:25
46 #: build/C/man3/sysv_signal.3:25 build/C/man2/timer_create.2:31
47 #: build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26
48 #: build/C/man2/timer_settime.2:26 build/C/man2/timerfd_create.2:21
49 #: build/C/man2/tkill.2:29 build/C/man2/wait.2:49 build/C/man2/wait4.2:33
50 #, no-wrap
51 msgid "Linux Programmer's Manual"
52 msgstr "Linux Programmer's Manual"
53
54 #. type: SH
55 #: build/C/man3/bsd_signal.3:26 build/C/man2/eventfd.2:23
56 #: build/C/man2/getitimer.2:13 build/C/man3/gsignal.3:28
57 #: build/C/man2/kill.2:45 build/C/man2/killpg.2:43 build/C/man2/pause.2:31
58 #: build/C/man2/prctl.2:53 build/C/man3/profil.3:29 build/C/man3/psignal.3:31
59 #: build/C/man3/raise.3:30 build/C/man2/rt_sigqueueinfo.2:26
60 #: build/C/man2/s390_runtime_instr.2:26 build/C/man2/sgetmask.2:27
61 #: build/C/man2/sigaction.2:48 build/C/man2/sigaltstack.2:28
62 #: build/C/man7/sigevent.7:27 build/C/man3/siginterrupt.3:32
63 #: build/C/man2/signal.2:37 build/C/man7/signal.7:47
64 #: build/C/man2/signalfd.2:21 build/C/man3/sigpause.3:26
65 #: build/C/man2/sigpending.2:30 build/C/man2/sigprocmask.2:30
66 #: build/C/man3/sigqueue.3:29 build/C/man2/sigreturn.2:30
67 #: build/C/man3/sigset.3:27 build/C/man3/sigsetops.3:32
68 #: build/C/man2/sigsuspend.2:30 build/C/man3/sigvec.3:27
69 #: build/C/man3/sigwait.3:27 build/C/man2/sigwaitinfo.2:26
70 #: build/C/man3/sysv_signal.3:26 build/C/man2/timer_create.2:32
71 #: build/C/man2/timer_delete.2:27 build/C/man2/timer_getoverrun.2:27
72 #: build/C/man2/timer_settime.2:27 build/C/man2/timerfd_create.2:22
73 #: build/C/man2/tkill.2:30 build/C/man2/wait.2:50 build/C/man2/wait4.2:34
74 #, no-wrap
75 msgid "NAME"
76 msgstr "名前"
77
78 #. type: Plain text
79 #: build/C/man3/bsd_signal.3:28
80 msgid "bsd_signal - signal handling with BSD semantics"
81 msgstr "bsd_signal - BSD 方式のシグナル処理"
82
83 #. type: SH
84 #: build/C/man3/bsd_signal.3:28 build/C/man2/eventfd.2:25
85 #: build/C/man2/getitimer.2:15 build/C/man3/gsignal.3:30
86 #: build/C/man2/kill.2:47 build/C/man2/killpg.2:45 build/C/man2/pause.2:33
87 #: build/C/man2/prctl.2:55 build/C/man3/profil.3:31 build/C/man3/psignal.3:33
88 #: build/C/man3/raise.3:32 build/C/man2/rt_sigqueueinfo.2:28
89 #: build/C/man2/s390_runtime_instr.2:28 build/C/man2/sgetmask.2:29
90 #: build/C/man2/sigaction.2:50 build/C/man2/sigaltstack.2:30
91 #: build/C/man7/sigevent.7:29 build/C/man3/siginterrupt.3:34
92 #: build/C/man2/signal.2:39 build/C/man2/signalfd.2:23
93 #: build/C/man3/sigpause.3:28 build/C/man2/sigpending.2:32
94 #: build/C/man2/sigprocmask.2:32 build/C/man3/sigqueue.3:31
95 #: build/C/man2/sigreturn.2:32 build/C/man3/sigset.3:29
96 #: build/C/man3/sigsetops.3:35 build/C/man2/sigsuspend.2:32
97 #: build/C/man3/sigvec.3:29 build/C/man3/sigwait.3:29
98 #: build/C/man2/sigwaitinfo.2:28 build/C/man3/sysv_signal.3:28
99 #: build/C/man2/timer_create.2:34 build/C/man2/timer_delete.2:29
100 #: build/C/man2/timer_getoverrun.2:29 build/C/man2/timer_settime.2:30
101 #: build/C/man2/timerfd_create.2:25 build/C/man2/tkill.2:32
102 #: build/C/man2/wait.2:52 build/C/man2/wait4.2:36
103 #, no-wrap
104 msgid "SYNOPSIS"
105 msgstr "書式"
106
107 #. type: Plain text
108 #: build/C/man3/bsd_signal.3:30
109 msgid "B<#define _XOPEN_SOURCE> /* See feature_test_macros(7) */"
110 msgstr "B<#define _XOPEN_SOURCE> /* feature_test_macros(7) 参照 */"
111
112 #. type: Plain text
113 #: build/C/man3/bsd_signal.3:32 build/C/man2/killpg.2:47
114 #: build/C/man2/sigaltstack.2:32 build/C/man2/signal.2:41
115 #: build/C/man2/sigpending.2:34 build/C/man2/sigprocmask.2:34
116 #: build/C/man3/sigqueue.3:33 build/C/man3/sigset.3:31
117 #: build/C/man3/sigsetops.3:37 build/C/man2/sigsuspend.2:34
118 #: build/C/man3/sigvec.3:31 build/C/man3/sysv_signal.3:32
119 msgid "B<#include E<lt>signal.hE<gt>>"
120 msgstr "B<#include E<lt>signal.hE<gt>>"
121
122 #. type: Plain text
123 #: build/C/man3/bsd_signal.3:34 build/C/man2/signal.2:43
124 #: build/C/man3/sigset.3:33 build/C/man3/sysv_signal.3:34
125 msgid "B<typedef void (*sighandler_t)(int);>"
126 msgstr "B<typedef void (*sighandler_t)(int);>"
127
128 #. type: Plain text
129 #: build/C/man3/bsd_signal.3:36
130 msgid ""
131 "B<sighandler_t bsd_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
132 msgstr ""
133 "B<sighandler_t bsd_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
134
135 #. type: SH
136 #: build/C/man3/bsd_signal.3:36 build/C/man2/eventfd.2:29
137 #: build/C/man2/getitimer.2:24 build/C/man3/gsignal.3:49
138 #: build/C/man2/kill.2:65 build/C/man2/killpg.2:60 build/C/man2/pause.2:37
139 #: build/C/man2/prctl.2:62 build/C/man3/profil.3:46 build/C/man3/psignal.3:56
140 #: build/C/man3/raise.3:38 build/C/man2/rt_sigqueueinfo.2:38
141 #: build/C/man2/s390_runtime_instr.2:34 build/C/man2/sgetmask.2:36
142 #: build/C/man2/sigaction.2:70 build/C/man2/sigaltstack.2:51
143 #: build/C/man7/sigevent.7:52 build/C/man3/siginterrupt.3:55
144 #: build/C/man2/signal.2:45 build/C/man7/signal.7:49
145 #: build/C/man2/signalfd.2:27 build/C/man3/sigpause.3:36
146 #: build/C/man2/sigpending.2:46 build/C/man2/sigprocmask.2:47
147 #: build/C/man3/sigqueue.3:43 build/C/man2/sigreturn.2:34
148 #: build/C/man3/sigset.3:58 build/C/man3/sigsetops.3:63
149 #: build/C/man2/sigsuspend.2:46 build/C/man3/sigvec.3:49
150 #: build/C/man3/sigwait.3:45 build/C/man2/sigwaitinfo.2:46
151 #: build/C/man3/sysv_signal.3:36 build/C/man2/timer_create.2:52
152 #: build/C/man2/timer_delete.2:45 build/C/man2/timer_getoverrun.2:45
153 #: build/C/man2/timer_settime.2:50 build/C/man2/timerfd_create.2:37
154 #: build/C/man2/tkill.2:41 build/C/man2/wait.2:81 build/C/man2/wait4.2:67
155 #, no-wrap
156 msgid "DESCRIPTION"
157 msgstr "説明"
158
159 #. type: Plain text
160 #: build/C/man3/bsd_signal.3:41
161 msgid ""
162 "The B<bsd_signal>()  function takes the same arguments, and performs the "
163 "same task, as B<signal>(2)."
164 msgstr ""
165 "B<bsd_signal>()  関数は B<signal>(2)  と同じ引き数をとり、同じ処理を実行す"
166 "る。"
167
168 #. type: Plain text
169 #: build/C/man3/bsd_signal.3:54
170 msgid ""
171 "The difference between the two is that B<bsd_signal>()  is guaranteed to "
172 "provide reliable signal semantics, that is: a) the disposition of the signal "
173 "is not reset to the default when the handler is invoked; b) delivery of "
174 "further instances of the signal is blocked while the signal handler is "
175 "executing; and c) if the handler interrupts a blocking system call, then the "
176 "system call is automatically restarted.  A portable application cannot rely "
177 "on B<signal>(2)  to provide these guarantees."
178 msgstr ""
179 "両者の違いは、 B<bsd_signal>()  では信頼性のあるシグナル処理方式の提供が保証"
180 "されていることである。 信頼性のあるシグナル処理方式は以下の特徴を持つ。 a) ハ"
181 "ンドラが起動された場合に、シグナルの処理方法 (disposition) が デフォルトにリ"
182 "セットされない、 b) シグナルハンドラの実行中は、それ以降に発生した同じシグナ"
183 "ルの配送が ブロックされない、 c) ハンドラが停止中の (blocking している) シス"
184 "テムコールを 中断した場合、そのシステムコールが自動的に再開される。 移植性が"
185 "必要なアプリケーションでは、 B<signal>(2)  でこれらが保証されることを前提にす"
186 "べきではない。"
187
188 #. type: SH
189 #: build/C/man3/bsd_signal.3:54 build/C/man2/eventfd.2:222
190 #: build/C/man2/getitimer.2:122 build/C/man2/kill.2:99
191 #: build/C/man2/killpg.2:89 build/C/man2/pause.2:42 build/C/man2/prctl.2:775
192 #: build/C/man3/profil.3:68 build/C/man3/psignal.3:89 build/C/man3/raise.3:61
193 #: build/C/man2/rt_sigqueueinfo.2:129 build/C/man2/s390_runtime_instr.2:54
194 #: build/C/man2/sgetmask.2:59 build/C/man2/sigaction.2:660
195 #: build/C/man2/sigaltstack.2:133 build/C/man3/siginterrupt.3:73
196 #: build/C/man2/signal.2:97 build/C/man2/signalfd.2:251
197 #: build/C/man3/sigpause.3:48 build/C/man2/sigpending.2:53
198 #: build/C/man2/sigprocmask.2:93 build/C/man3/sigqueue.3:83
199 #: build/C/man2/sigreturn.2:53 build/C/man3/sigset.3:129
200 #: build/C/man3/sigsetops.3:107 build/C/man2/sigsuspend.2:70
201 #: build/C/man3/sigvec.3:199 build/C/man3/sigwait.3:69
202 #: build/C/man2/sigwaitinfo.2:105 build/C/man3/sysv_signal.3:51
203 #: build/C/man2/timer_create.2:167 build/C/man2/timer_delete.2:53
204 #: build/C/man2/timer_getoverrun.2:82 build/C/man2/timer_settime.2:173
205 #: build/C/man2/timerfd_create.2:287 build/C/man2/tkill.2:95
206 #: build/C/man2/wait.2:353 build/C/man2/wait4.2:132
207 #, no-wrap
208 msgid "RETURN VALUE"
209 msgstr "返り値"
210
211 #. type: Plain text
212 #: build/C/man3/bsd_signal.3:60
213 msgid ""
214 "The B<bsd_signal>()  function returns the previous value of the signal "
215 "handler, or B<SIG_ERR> on error."
216 msgstr ""
217 "B<bsd_signal>()  関数はシグナルハンドラの直前の値を返す。 エラーの場合、 "
218 "B<SIG_ERR> を返す。"
219
220 #. type: SH
221 #: build/C/man3/bsd_signal.3:60 build/C/man2/eventfd.2:229
222 #: build/C/man2/getitimer.2:127 build/C/man2/kill.2:104
223 #: build/C/man2/killpg.2:94 build/C/man2/pause.2:53 build/C/man2/prctl.2:793
224 #: build/C/man2/rt_sigqueueinfo.2:134 build/C/man2/s390_runtime_instr.2:65
225 #: build/C/man2/sgetmask.2:64 build/C/man2/sigaction.2:665
226 #: build/C/man2/sigaltstack.2:137 build/C/man3/siginterrupt.3:83
227 #: build/C/man2/signal.2:105 build/C/man2/signalfd.2:265
228 #: build/C/man2/sigpending.2:59 build/C/man2/sigprocmask.2:99
229 #: build/C/man3/sigqueue.3:91 build/C/man3/sigset.3:154
230 #: build/C/man3/sigsetops.3:126 build/C/man2/sigsuspend.2:76
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:965 build/C/man3/profil.3:70 build/C/man3/psignal.3:99
251 #: build/C/man3/raise.3:64 build/C/man2/rt_sigqueueinfo.2:176
252 #: build/C/man2/s390_runtime_instr.2:81 build/C/man2/sgetmask.2:66
253 #: build/C/man2/sigaction.2:677 build/C/man2/sigaltstack.2:156
254 #: build/C/man7/sigevent.7:130 build/C/man3/siginterrupt.3:87
255 #: build/C/man2/signal.2:110 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:64 build/C/man2/sigprocmask.2:112
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:131
260 #: build/C/man2/sigsuspend.2:84 build/C/man3/sigvec.3:221
261 #: build/C/man3/sigwait.3:80 build/C/man2/sigwaitinfo.2:133
262 #: build/C/man3/sysv_signal.3:60 build/C/man2/timer_create.2:193
263 #: build/C/man2/timer_delete.2:67 build/C/man2/timer_getoverrun.2:97
264 #: build/C/man2/timer_settime.2:207 build/C/man2/timerfd_create.2:371
265 #: build/C/man2/tkill.2:116 build/C/man2/wait.2:420 build/C/man2/wait4.2:138
266 #, no-wrap
267 msgid "CONFORMING TO"
268 msgstr "準拠"
269
270 #. type: Plain text
271 #: build/C/man3/bsd_signal.3:70
272 msgid ""
273 "4.2BSD, POSIX.1-2001.  POSIX.1-2008 removes the specification of "
274 "B<bsd_signal>(), recommending the use of B<sigaction>(2)  instead."
275 msgstr ""
276 "4.2BSD, POSIX.1-2001.  POSIX.1-2008 では B<bsd_signal>()  の仕様が削除されて"
277 "いる。 代わりに、 B<sigaction>(2)  の使用が推奨されている。"
278
279 #. type: SH
280 #: build/C/man3/bsd_signal.3:70 build/C/man2/eventfd.2:271
281 #: build/C/man2/getitimer.2:158 build/C/man2/kill.2:122
282 #: build/C/man2/killpg.2:115 build/C/man3/raise.3:66
283 #: build/C/man2/rt_sigqueueinfo.2:178 build/C/man2/s390_runtime_instr.2:84
284 #: build/C/man2/sgetmask.2:68 build/C/man2/sigaction.2:680
285 #: build/C/man2/sigaltstack.2:158 build/C/man2/signal.2:112
286 #: build/C/man2/signalfd.2:312 build/C/man3/sigpause.3:60
287 #: build/C/man2/sigpending.2:66 build/C/man2/sigprocmask.2:114
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:133
290 #: build/C/man2/sigsuspend.2:86 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 defined only 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:979 build/C/man3/profil.3:81
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:88
334 #: build/C/man2/sgetmask.2:80 build/C/man2/sigaction.2:793
335 #: build/C/man2/sigaltstack.2:232 build/C/man7/sigevent.7:132
336 #: build/C/man3/siginterrupt.3:96 build/C/man2/signal.2:278
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:87
339 #: build/C/man2/sigprocmask.2:144 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:171 build/C/man2/sigsuspend.2:108
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:982 build/C/man3/profil.3:86
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:91
364 #: build/C/man2/sgetmask.2:83 build/C/man2/sigaction.2:812
365 #: build/C/man2/sigaltstack.2:239 build/C/man7/sigevent.7:142
366 #: build/C/man3/siginterrupt.3:98 build/C/man2/signal.2:297
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:95
369 #: build/C/man2/sigprocmask.2:155 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:176 build/C/man2/sigsuspend.2:118
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:989 build/C/man3/profil.3:93
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:98
389 #: build/C/man2/sgetmask.2:90 build/C/man2/sigaction.2:819
390 #: build/C/man2/sigaltstack.2:246 build/C/man7/sigevent.7:149
391 #: build/C/man3/siginterrupt.3:105 build/C/man2/signal.2:304
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:102
394 #: build/C/man2/sigprocmask.2:162 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:183 build/C/man2/sigsuspend.2:125
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.52 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.52 の一部\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 msgid ""
463 "B<eventfd>()  creates an \"eventfd object\" that can be used as an event "
464 "wait/notify mechanism by user-space applications, and by the kernel to "
465 "notify user-space applications of events.  The object contains an unsigned "
466 "64-bit integer (I<uint64_t>)  counter that is maintained by the kernel.  "
467 "This counter is initialized with the value specified in the argument "
468 "I<initval>."
469 msgstr ""
470 "B<eventfd>()  は \"eventfd オブジェクト\" を生成する。 eventfd オブジェクトは"
471 "ユーザ空間アプリケーションがイベント待ち受け/通知用の 仕組みとして使うことが"
472 "できる。また、カーネルがユーザ空間アプリケーションに イベントを通知するために"
473 "も使うことができる。 このオブジェクトには、unsigned の 64 ビット整数 "
474 "(I<uint64_t>)  型のカウンタが含まれており、このカウンタはカーネルにより管理さ"
475 "れる。 このカウンタは I<initval> 引き数で指定された値で初期化される。"
476
477 #. type: Plain text
478 #: build/C/man2/eventfd.2:44
479 msgid ""
480 "The following values may be bitwise ORed in I<flags> to change the behaviour "
481 "of B<eventfd>():"
482 msgstr ""
483 "以下の値のいくつかをビット単位の論理和 (OR) で指定することで、\n"
484 "B<eventfd>() の振舞いを変更することができる。"
485
486 #. type: TP
487 #: build/C/man2/eventfd.2:44
488 #, no-wrap
489 msgid "B<EFD_CLOEXEC> (since Linux 2.6.27)"
490 msgstr "B<EFD_CLOEXEC> (Linux 2.6.27 以降)"
491
492 #. type: Plain text
493 #: build/C/man2/eventfd.2:54 build/C/man2/signalfd.2:95
494 #: build/C/man2/timerfd_create.2:103
495 msgid ""
496 "Set the close-on-exec (B<FD_CLOEXEC>)  flag on the new file descriptor.  See "
497 "the description of the B<O_CLOEXEC> flag in B<open>(2)  for reasons why this "
498 "may be useful."
499 msgstr ""
500 "新しいファイルディスクリプタに対して close-on-exec (B<FD_CLOEXEC>)  フラグを"
501 "セットする。 このフラグが役に立つ理由については、 B<open>(2)  の "
502 "B<O_CLOEXEC> フラグの説明を参照のこと。"
503
504 #. type: TP
505 #: build/C/man2/eventfd.2:54
506 #, no-wrap
507 msgid "B<EFD_NONBLOCK> (since Linux 2.6.27)"
508 msgstr "B<EFD_NONBLOCK> (Linux 2.6.27 以降)"
509
510 #. type: Plain text
511 #: build/C/man2/eventfd.2:62 build/C/man2/signalfd.2:85
512 #: build/C/man2/timerfd_create.2:93
513 msgid ""
514 "Set the B<O_NONBLOCK> file status flag on the new open file description.  "
515 "Using this flag saves extra calls to B<fcntl>(2)  to achieve the same result."
516 msgstr ""
517 "新しく生成されるオープンファイル記述 (open file description) の "
518 "B<O_NONBLOCK> ファイルステータスフラグをセットする。 このフラグを使うこと"
519 "で、 B<O_NONBLOCK> をセットするために B<fcntl>(2)  を追加で呼び出す必要がなく"
520 "なる。"
521
522 #. type: TP
523 #: build/C/man2/eventfd.2:62
524 #, no-wrap
525 msgid "B<EFD_SEMAPHORE> (since Linux 2.6.30)"
526 msgstr "B<EFD_SEMAPHORE> (Linux 2.6.30 以降)"
527
528 #. type: Plain text
529 #: build/C/man2/eventfd.2:66
530 msgid ""
531 "Provide semaphore-like semantics for reads from the new file descriptor.  "
532 "See below."
533 msgstr ""
534 "新しいファイルディスクリプタからの読み出しにおいて、セマフォ風の動作を行"
535 "う。\n"
536 "下記参照。"
537
538 #. type: Plain text
539 #: build/C/man2/eventfd.2:70 build/C/man2/signalfd.2:99
540 msgid ""
541 "In Linux up to version 2.6.26, the I<flags> argument is unused, and must be "
542 "specified as zero."
543 msgstr ""
544 "バージョン 2.6.26 以前の Linux では、 I<flags> 引き数は未使用であり、0 を指定"
545 "しなければならない。"
546
547 #. type: Plain text
548 #: build/C/man2/eventfd.2:76
549 msgid ""
550 "As its return value, B<eventfd>()  returns a new file descriptor that can be "
551 "used to refer to the eventfd object.  The following operations can be "
552 "performed on the file descriptor:"
553 msgstr ""
554 "B<eventfd>()  は eventfd オブジェクトを参照するのに使用できる新しいファイル"
555 "ディスクリプタ を返す。返されたファイルディスクリプタに対しては以下の操作を実"
556 "行できる。"
557
558 #. type: TP
559 #: build/C/man2/eventfd.2:76 build/C/man2/signalfd.2:102
560 #: build/C/man2/timerfd_create.2:211
561 #, no-wrap
562 msgid "B<read>(2)"
563 msgstr "B<read>(2)"
564
565 #. type: Plain text
566 #: build/C/man2/eventfd.2:86
567 msgid ""
568 "Each successful B<read>(2)  returns an 8-byte integer.  A B<read>(2)  will "
569 "fail with the error B<EINVAL> if the size of the supplied buffer is less "
570 "than 8 bytes."
571 msgstr ""
572 "B<read>(2) は成功すると、8 バイトの整数を返す。\n"
573 "渡されたバッファの大きさが 8 バイト未満の場合、\n"
574 "B<read>(2)  はエラー B<EINVAL> で失敗する。"
575
576 #. type: Plain text
577 #: build/C/man2/eventfd.2:91
578 msgid ""
579 "The value returned by B<read>(2)  is in host byte order, i.e., the native "
580 "byte order for integers on the host machine."
581 msgstr ""
582 "B<read>(2) が返す値は、ホストバイトオーダ、つまり\n"
583 "そのホストマシンにおける整数の通常のバイトオーダである。"
584
585 #. type: Plain text
586 #: build/C/man2/eventfd.2:98
587 msgid ""
588 "The semantics of B<read>(2)  depend on whether the eventfd counter currently "
589 "has a nonzero value and whether the B<EFD_SEMAPHORE> flag was specified when "
590 "creating the eventfd file descriptor:"
591 msgstr ""
592 "B<read>(2) の動作は、 eventfd カウンタの現在の値が 0 以外であるかと、\n"
593 "eventfd ファイルディスクリプタを作成する際に B<EFD_SEMAPHORE> フラグが\n"
594 "指定されたか、により変化する。"
595
596 #. type: IP
597 #: build/C/man2/eventfd.2:99 build/C/man2/eventfd.2:106
598 #: build/C/man2/eventfd.2:113 build/C/man2/eventfd.2:158
599 #: build/C/man2/eventfd.2:168 build/C/man2/eventfd.2:178
600 #: build/C/man2/prctl.2:836 build/C/man2/prctl.2:841 build/C/man2/prctl.2:846
601 #: build/C/man2/prctl.2:856 build/C/man3/psignal.3:105
602 #: build/C/man3/psignal.3:109 build/C/man2/sigaction.2:298
603 #: build/C/man2/sigaction.2:313 build/C/man2/sigaction.2:329
604 #: build/C/man2/sigaction.2:344 build/C/man2/sigaction.2:391
605 #: build/C/man2/sigaction.2:427 build/C/man2/signal.2:68
606 #: build/C/man2/signal.2:73 build/C/man2/signal.2:80 build/C/man2/signal.2:224
607 #: build/C/man2/signal.2:228 build/C/man2/signal.2:267
608 #: build/C/man7/signal.7:149 build/C/man7/signal.7:157
609 #: build/C/man7/signal.7:615 build/C/man7/signal.7:617
610 #: build/C/man7/signal.7:638 build/C/man7/signal.7:653
611 #: build/C/man7/signal.7:657 build/C/man7/signal.7:664
612 #: build/C/man7/signal.7:680 build/C/man7/signal.7:686
613 #: build/C/man7/signal.7:693 build/C/man7/signal.7:698
614 #: build/C/man7/signal.7:717 build/C/man7/signal.7:736
615 #: build/C/man7/signal.7:743 build/C/man7/signal.7:752
616 #: build/C/man7/signal.7:760 build/C/man7/signal.7:766
617 #: build/C/man7/signal.7:771 build/C/man7/signal.7:791
618 #: build/C/man7/signal.7:810 build/C/man7/signal.7:813
619 #: build/C/man7/signal.7:816 build/C/man7/signal.7:819
620 #: build/C/man7/signal.7:824 build/C/man7/signal.7:830
621 #: build/C/man7/signal.7:834 build/C/man3/sigwait.3:62
622 #: build/C/man3/sigwait.3:67 build/C/man2/timer_create.2:216
623 #: build/C/man2/timer_create.2:219 build/C/man2/timer_create.2:222
624 #: build/C/man2/timer_create.2:226 build/C/man2/timer_create.2:229
625 #: build/C/man2/timer_create.2:235 build/C/man2/timer_create.2:239
626 #, no-wrap
627 msgid "*"
628 msgstr "*"
629
630 #. type: Plain text
631 #: build/C/man2/eventfd.2:106
632 msgid ""
633 "If B<EFD_SEMAPHORE> was not specified and the eventfd counter has a nonzero "
634 "value, then a B<read>(2)  returns 8 bytes containing that value, and the "
635 "counter's value is reset to zero."
636 msgstr ""
637 "B<EFD_SEMAPHORE> が指定されておらず、eventfd カウンタが 0 以外の値\n"
638 "の場合、 B<read>(2) はカウンタ値を格納した 8 バイトの値を返し、\n"
639 "カウンタ値は 0 にリセットされる。"
640
641 #. type: Plain text
642 #: build/C/man2/eventfd.2:113
643 msgid ""
644 "If B<EFD_SEMAPHORE> was specified and the eventfd counter has a nonzero "
645 "value, then a B<read>(2)  returns 8 bytes containing the value 1, and the "
646 "counter's value is decremented by 1."
647 msgstr ""
648 "B<EFD_SEMAPHORE> が指定されていて eventfd カウンタが 0 以外の値の場合、\n"
649 "B<read>(2) は値 1 の 8 バイト値を返し、カウンタ値は 1 減算される。"
650
651 #. type: Plain text
652 #: build/C/man2/eventfd.2:123
653 msgid ""
654 "If the eventfd counter is zero at the time of the call to B<read>(2), then "
655 "the call either blocks until the counter becomes nonzero (at which time, the "
656 "B<read>(2)  proceeds as described above)  or fails with the error B<EAGAIN> "
657 "if the file descriptor has been made nonblocking."
658 msgstr ""
659 "B<read>(2) を呼び出した時点で eventfd カウンタが 0 の場合、 B<read>(2)\n"
660 "はカウンタが 0 以外になるまで停止 (block) する (0 以外になった時点で\n"
661 "B<read>(2) は上記で述べた通り実行を再開する)、 もしくはファイルディスク\n"
662 "リプタが非停止 (nonblocking) に設定されている場合はエラー B<EAGAIN>で\n"
663 "失敗する。"
664
665 #. type: TP
666 #: build/C/man2/eventfd.2:124
667 #, no-wrap
668 msgid "B<write>(2)"
669 msgstr "B<write>(2)"
670
671 #. type: Plain text
672 #: build/C/man2/eventfd.2:141
673 msgid ""
674 "A B<write>(2)  call adds the 8-byte integer value supplied in its buffer to "
675 "the counter.  The maximum value that may be stored in the counter is the "
676 "largest unsigned 64-bit value minus 1 (i.e., 0xfffffffffffffffe).  If the "
677 "addition would cause the counter's value to exceed the maximum, then the "
678 "B<write>(2)  either blocks until a B<read>(2)  is performed on the file "
679 "descriptor, or fails with the error B<EAGAIN> if the file descriptor has "
680 "been made nonblocking."
681 msgstr ""
682 "B<write>(2)  は、引き数のバッファで渡された 8 バイトの整数値をカウンタに加算"
683 "する。 カウンタに格納可能な最大値は unsigned の 64 ビット整数の最大値から 1 "
684 "を引いた値 (すなわち 0xfffffffffffffffe) である。 加算を行うとカウンタ値が最"
685 "大値を超過する場合には、 そのファイルディスクリプタに対して B<read>(2)  が実"
686 "行されるまで、 B<write>(2)  は停止 (block) する、 もしくはファイルディスクリ"
687 "プタが非停止 (nonblocking)  に設定されている場合はエラー B<EAGAIN> で失敗す"
688 "る。"
689
690 #. type: Plain text
691 #: build/C/man2/eventfd.2:148
692 msgid ""
693 "A B<write>(2)  will fail with the error B<EINVAL> if the size of the "
694 "supplied buffer is less than 8 bytes, or if an attempt is made to write the "
695 "value 0xffffffffffffffff."
696 msgstr ""
697 "渡されたバッファの大きさが 8 バイト未満の場合、もしくは 値 "
698 "0xffffffffffffffff を書き込もうとした場合、 B<write>(2)  はエラー B<EINVAL> "
699 "で失敗する。"
700
701 #. type: TP
702 #: build/C/man2/eventfd.2:148 build/C/man2/signalfd.2:140
703 #: build/C/man2/timerfd_create.2:244
704 #, no-wrap
705 msgid "B<poll>(2), B<select>(2) (and similar)"
706 msgstr "B<poll>(2), B<select>(2) (と同様の操作)"
707
708 #. type: Plain text
709 #: build/C/man2/eventfd.2:157
710 msgid ""
711 "The returned file descriptor supports B<poll>(2)  (and analogously B<epoll>"
712 "(7))  and B<select>(2), as follows:"
713 msgstr ""
714 "返されたファイルディスクリプタは、 B<poll>(2)  (B<epoll>(7)  も同じ) や "
715 "B<select>(2)  をサポートしており、以下のような動作をする。"
716
717 #. type: Plain text
718 #: build/C/man2/eventfd.2:168
719 msgid ""
720 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
721 "B<poll>(2)  B<POLLIN> flag)  if the counter has a value greater than 0."
722 msgstr ""
723 "カウンタが 0 より大きい値の場合、 ファイルディスクリプタは読み出し可能となる "
724 "(B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
725
726 #. type: Plain text
727 #: build/C/man2/eventfd.2:178
728 msgid ""
729 "The file descriptor is writable (the B<select>(2)  I<writefds> argument; the "
730 "B<poll>(2)  B<POLLOUT> flag)  if it is possible to write a value of at least "
731 "\"1\" without blocking."
732 msgstr ""
733 "少なくとも値 \"1\" を、停止 (block) を伴わずに書き込める場合、 ファイルディス"
734 "クリプタは書き込み可能となる (B<select>(2)  の I<writefds> 引き数や B<poll>"
735 "(2)  の B<POLLOUT> フラグ)。"
736
737 #. type: Plain text
738 #: build/C/man2/eventfd.2:198
739 msgid ""
740 "If an overflow of the counter value was detected, then B<select>(2)  "
741 "indicates the file descriptor as being both readable and writable, and "
742 "B<poll>(2)  returns a B<POLLERR> event.  As noted above, B<write>(2)  can "
743 "never overflow the counter.  However an overflow can occur if 2^64 eventfd "
744 "\"signal posts\" were performed by the KAIO subsystem (theoretically "
745 "possible, but practically unlikely).  If an overflow has occurred, then "
746 "B<read>(2)  will return that maximum I<uint64_t> value (i.e., "
747 "0xffffffffffffffff)."
748 msgstr ""
749 "カウンタ値のオーバーフローが検出された場合、 B<select>(2)  はファイルディスク"
750 "リプタは読み出し可能と書き込み可能の両方を通知し、 B<poll>(2)  は B<POLLERR> "
751 "イベントを返す。 上述の通り、 B<write>(2)  でカウンタがオーバーフローすること"
752 "は決してない。 しかしながら、 KAIO サブシステムによって 2^64 回の eventfd "
753 "\"signal posts\" が 実行された場合にはオーバーフローが起こり得る (理論的には"
754 "あり得るが、実用的にはあり得ない)。 オーバーフローが発生した場合、 B<read>"
755 "(2)  は I<uint64_t> の最大値 (すなわち 0xffffffffffffffff) を返す。"
756
757 #. type: Plain text
758 #: build/C/man2/eventfd.2:205
759 msgid ""
760 "The eventfd file descriptor also supports the other file-descriptor "
761 "multiplexing APIs: B<pselect>(2)  and B<ppoll>(2)."
762 msgstr ""
763 "eventfd ファイルディスクリプタは、これ以外のファイルディスクリプタ 多重 API "
764 "である B<pselect>(2) と B<ppoll>(2) もサポートしている。"
765
766 #. type: TP
767 #: build/C/man2/eventfd.2:205 build/C/man2/signalfd.2:160
768 #: build/C/man2/timerfd_create.2:262
769 #, no-wrap
770 msgid "B<close>(2)"
771 msgstr "B<close>(2)"
772
773 #. type: Plain text
774 #: build/C/man2/eventfd.2:210
775 msgid ""
776 "When the file descriptor is no longer required it should be closed.  When "
777 "all file descriptors associated with the same eventfd object have been "
778 "closed, the resources for object are freed by the kernel."
779 msgstr ""
780 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
781 "る。 同じ eventfd オブジェクトに関連付けられたファイルディスクリプタが全て ク"
782 "ローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
783
784 #. type: Plain text
785 #: build/C/man2/eventfd.2:222
786 msgid ""
787 "A copy of the file descriptor created by B<eventfd>()  is inherited by the "
788 "child produced by B<fork>(2).  The duplicate file descriptor is associated "
789 "with the same eventfd object.  File descriptors created by B<eventfd>()  are "
790 "preserved across B<execve>(2), unless the close-on-exec flag has been set."
791 msgstr ""
792 "B<fork>(2) で生成された子プロセスは、 B<eventfd>() で生成されたファイル\n"
793 "ディスクリプタのコピーを継承する。 複製されたファイルディスクリプタは同\n"
794 "じ eventfd オブジェクトに関連付けられる。\n"
795 "close-on-exec フラグが設定されていない場合、 B<execve>(2) の前後で\n"
796 "B<eventfd>() で生成されたファイルディスクリプタは保持される。"
797
798 #. type: Plain text
799 #: build/C/man2/eventfd.2:229
800 msgid ""
801 "On success, B<eventfd>()  returns a new eventfd file descriptor.  On error, "
802 "-1 is returned and I<errno> is set to indicate the error."
803 msgstr ""
804 "成功すると、 B<eventfd>()  は新規の eventfd ファイルディスクリプタを返す。 エ"
805 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
806
807 #. type: TP
808 #: build/C/man2/eventfd.2:230 build/C/man2/getitimer.2:135
809 #: build/C/man2/kill.2:105 build/C/man2/killpg.2:95 build/C/man2/prctl.2:798
810 #: build/C/man2/prctl.2:803 build/C/man2/prctl.2:815 build/C/man2/prctl.2:820
811 #: build/C/man2/prctl.2:829 build/C/man2/prctl.2:869
812 #: build/C/man2/rt_sigqueueinfo.2:141 build/C/man2/s390_runtime_instr.2:66
813 #: build/C/man2/sigaction.2:670 build/C/man2/sigaltstack.2:142
814 #: build/C/man3/siginterrupt.3:84 build/C/man2/signal.2:106
815 #: build/C/man2/signalfd.2:271 build/C/man2/signalfd.2:279
816 #: build/C/man2/sigprocmask.2:107 build/C/man3/sigqueue.3:98
817 #: build/C/man3/sigsetops.3:127 build/C/man3/sigwait.3:75
818 #: build/C/man2/sigwaitinfo.2:129 build/C/man2/timer_create.2:179
819 #: build/C/man2/timer_delete.2:61 build/C/man2/timer_getoverrun.2:91
820 #: build/C/man2/timer_settime.2:191 build/C/man2/timer_settime.2:199
821 #: build/C/man2/timerfd_create.2:305 build/C/man2/timerfd_create.2:313
822 #: build/C/man2/timerfd_create.2:349 build/C/man2/timerfd_create.2:356
823 #: build/C/man2/timerfd_create.2:362 build/C/man2/tkill.2:100
824 #: build/C/man2/wait.2:415
825 #, no-wrap
826 msgid "B<EINVAL>"
827 msgstr "B<EINVAL>"
828
829 #. type: Plain text
830 #: build/C/man2/eventfd.2:234
831 msgid "An unsupported value was specified in I<flags>."
832 msgstr "I<flags> にサポートされていない値が指定された。"
833
834 #. type: TP
835 #: build/C/man2/eventfd.2:234 build/C/man2/signalfd.2:286
836 #: build/C/man2/timerfd_create.2:320
837 #, no-wrap
838 msgid "B<EMFILE>"
839 msgstr "B<EMFILE>"
840
841 #. type: Plain text
842 #: build/C/man2/eventfd.2:237
843 msgid "The per-process limit on open file descriptors has been reached."
844 msgstr ""
845 "オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。"
846
847 #. type: TP
848 #: build/C/man2/eventfd.2:237 build/C/man2/signalfd.2:289
849 #: build/C/man2/timerfd_create.2:323
850 #, no-wrap
851 msgid "B<ENFILE>"
852 msgstr "B<ENFILE>"
853
854 #. type: Plain text
855 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
856 #: build/C/man2/timerfd_create.2:327
857 msgid ""
858 "The system-wide limit on the total number of open files has been reached."
859 msgstr "オープン済みのファイル総数がシステム全体の上限に達していた。"
860
861 #. type: TP
862 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
863 #: build/C/man2/timerfd_create.2:327
864 #, no-wrap
865 msgid "B<ENODEV>"
866 msgstr "B<ENODEV>"
867
868 #. type: Plain text
869 #: build/C/man2/eventfd.2:249 build/C/man2/signalfd.2:296
870 #: build/C/man2/timerfd_create.2:330
871 msgid "Could not mount (internal) anonymous inode device."
872 msgstr "(カーネル内の) 無名 inode デバイスをマウントできなかった。"
873
874 #. type: TP
875 #: build/C/man2/eventfd.2:249 build/C/man2/s390_runtime_instr.2:73
876 #: build/C/man2/sigaltstack.2:147 build/C/man2/signalfd.2:296
877 #: build/C/man2/timer_create.2:187 build/C/man2/timerfd_create.2:330
878 #, no-wrap
879 msgid "B<ENOMEM>"
880 msgstr "B<ENOMEM>"
881
882 #. type: Plain text
883 #: build/C/man2/eventfd.2:253
884 msgid "There was insufficient memory to create a new eventfd file descriptor."
885 msgstr ""
886 "新しい eventfd ファイルディスクリプタを生成するのに十分なメモリがなかった。"
887
888 #. type: SH
889 #: build/C/man2/eventfd.2:253 build/C/man2/prctl.2:960
890 #: build/C/man3/psignal.3:95 build/C/man2/rt_sigqueueinfo.2:169
891 #: build/C/man2/s390_runtime_instr.2:79 build/C/man2/signalfd.2:299
892 #: build/C/man3/sigqueue.3:112 build/C/man2/timer_create.2:191
893 #: build/C/man2/timer_delete.2:65 build/C/man2/timer_getoverrun.2:95
894 #: build/C/man2/timer_settime.2:205 build/C/man2/timerfd_create.2:368
895 #: build/C/man2/tkill.2:111
896 #, no-wrap
897 msgid "VERSIONS"
898 msgstr "バージョン"
899
900 #.  eventfd() is in glibc 2.7, but reportedly does not build
901 #. type: Plain text
902 #: build/C/man2/eventfd.2:266
903 msgid ""
904 "B<eventfd>()  is available on Linux since kernel 2.6.22.  Working support is "
905 "provided in glibc since version 2.8.  The B<eventfd2>()  system call (see "
906 "NOTES) is available on Linux since kernel 2.6.27.  Since version 2.9, the "
907 "glibc B<eventfd>()  wrapper will employ the B<eventfd2>()  system call, if "
908 "it is supported by the kernel."
909 msgstr ""
910 "B<eventfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
911 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<eventfd2>()  "
912 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
913 "る。 バージョン 2.9 以降では、glibc の B<eventfd>()  のラッパー関数は、カーネ"
914 "ルが対応していれば B<eventfd2>()  システムコールを利用する。"
915
916 #. type: Plain text
917 #: build/C/man2/eventfd.2:271
918 msgid "B<eventfd>()  and B<eventfd2>()  are Linux-specific."
919 msgstr "B<eventfd>()  と B<eventfd2>()  は Linux 固有である。"
920
921 #. type: Plain text
922 #: build/C/man2/eventfd.2:279
923 msgid ""
924 "Applications can use an eventfd file descriptor instead of a pipe (see "
925 "B<pipe>(2))  in all cases where a pipe is used simply to signal events.  The "
926 "kernel overhead of an eventfd file descriptor is much lower than that of a "
927 "pipe, and only one file descriptor is required (versus the two required for "
928 "a pipe)."
929 msgstr ""
930 "アプリケーションは、パイプをイベントを通知するためだけに使用している 全ての場"
931 "面において、パイプの代わりに eventfd ファイルディスクリプタを 使用することが"
932 "できる。 eventfd ファイルディスクリプタを使う方が、パイプを使う場合に比べて "
933 "カーネルでのオーバヘッドは比べるとずっと小さく、ファイルディスクリプタも 一つ"
934 "しか必要としない (パイプの場合は二つ必要である)。"
935
936 #.  or eventually syslets/threadlets
937 #. type: Plain text
938 #: build/C/man2/eventfd.2:285
939 msgid ""
940 "When used in the kernel, an eventfd file descriptor can provide a bridge "
941 "from kernel to user space, allowing, for example, functionalities like KAIO "
942 "(kernel AIO)  to signal to a file descriptor that some operation is complete."
943 msgstr ""
944 "カーネル内で使用すると、eventfd ファイルディスクリプタはカーネル空間からユー"
945 "ザ空間へのブリッジ機能を提供することができ、 例えば KAIO (kernel AIO)  のよう"
946 "な機能が、あるファイルディスクリプタに何らかの操作が完了したことを 通知するこ"
947 "とができる。"
948
949 #. type: Plain text
950 #: build/C/man2/eventfd.2:302
951 msgid ""
952 "A key point about an eventfd file descriptor is that it can be monitored "
953 "just like any other file descriptor using B<select>(2), B<poll>(2), or "
954 "B<epoll>(7).  This means that an application can simultaneously monitor the "
955 "readiness of \"traditional\" files and the readiness of other kernel "
956 "mechanisms that support the eventfd interface.  (Without the B<eventfd>()  "
957 "interface, these mechanisms could not be multiplexed via B<select>(2), "
958 "B<poll>(2), or B<epoll>(7).)"
959 msgstr ""
960 "eventfd ファイルディスクリプタの重要な点は、 eventfd ファイルディスクリプタ"
961 "が B<select>(2), B<poll>(2), B<epoll>(7)  を使って他のファイルディスクリプタ"
962 "と全く同様に監視できる点である。 このことは、アプリケーションは「従来の "
963 "(traditional)」 ファイルの状態変化と eventfd インタフェースをサポートする他の"
964 "カーネル機構の状態変化を同時に監視 できることを意味する (B<eventfd>()  インタ"
965 "フェースがない時には、これらのカーネル機構は B<select>(2), B<poll>(2), "
966 "B<epoll>(7)  経由で多重することはできなかった)。"
967
968 #. type: SS
969 #: build/C/man2/eventfd.2:302 build/C/man2/signalfd.2:336
970 #, no-wrap
971 msgid "Underlying Linux system calls"
972 msgstr "下層にある Linux のシステムコール"
973
974 #. type: Plain text
975 #: build/C/man2/eventfd.2:316
976 msgid ""
977 "There are two underlying Linux system calls: B<eventfd>()  and the more "
978 "recent B<eventfd2>().  The former system call does not implement a I<flags> "
979 "argument.  The latter system call implements the I<flags> values described "
980 "above.  The glibc wrapper function will use B<eventfd2>()  where it is "
981 "available."
982 msgstr ""
983 "下層にある Linux システムコールは二種類あり、 B<eventfd>()  と、もっと新しい "
984 "B<eventfd2>()  である。 B<eventfd>()  は I<flags> 引き数を実装していない。 "
985 "B<eventfd2>()  では上記の値の I<flags> が実装されている。 glibc のラッパー関"
986 "数は、 B<eventfd2>()  が利用可能であれば、これを使用する。"
987
988 #. type: SS
989 #: build/C/man2/eventfd.2:316
990 #, no-wrap
991 msgid "Additional glibc features"
992 msgstr "glibc の追加機能"
993
994 #. type: Plain text
995 #: build/C/man2/eventfd.2:320
996 msgid ""
997 "The GNU C library defines an additional type, and two functions that attempt "
998 "to abstract some of the details of reading and writing on an eventfd file "
999 "descriptor:"
1000 msgstr ""
1001 "GNU C ライブラリは、eventfd ファイルディスクリプタの読み出しと書き込みに を関"
1002 "する詳細のいくつか抽象化するために、一つの型と、二つの関数を追加で 定義してい"
1003 "る。"
1004
1005 #. type: Plain text
1006 #: build/C/man2/eventfd.2:324
1007 #, no-wrap
1008 msgid "typedef uint64_t eventfd_t;\n"
1009 msgstr "typedef uint64_t eventfd_t;\n"
1010
1011 #. type: Plain text
1012 #: build/C/man2/eventfd.2:327
1013 #, no-wrap
1014 msgid ""
1015 "int eventfd_read(int fd, eventfd_t *value);\n"
1016 "int eventfd_write(int fd, eventfd_t value);\n"
1017 msgstr ""
1018 "int eventfd_read(int fd, eventfd_t *value);\n"
1019 "int eventfd_write(int fd, eventfd_t value);\n"
1020
1021 #. type: Plain text
1022 #: build/C/man2/eventfd.2:334
1023 msgid ""
1024 "The functions perform the read and write operations on an eventfd file "
1025 "descriptor, returning 0 if the correct number of bytes was transferred, or "
1026 "-1 otherwise."
1027 msgstr ""
1028 "これらの関数は、eventfd ファイルディスクリプタに対する読み出しと 書き込みの操"
1029 "作を実行し、正しいバイト数が転送された場合には 0 を返し、そうでない場合は -1 "
1030 "を返す。"
1031
1032 #. type: SH
1033 #: build/C/man2/eventfd.2:334 build/C/man2/sigaction.2:790
1034 #: build/C/man2/sigaltstack.2:215 build/C/man2/signalfd.2:360
1035 #: build/C/man3/sigwait.3:86 build/C/man2/timer_create.2:253
1036 #: build/C/man2/timer_getoverrun.2:128 build/C/man2/timer_settime.2:209
1037 #: build/C/man2/timerfd_create.2:379 build/C/man2/wait.2:536
1038 #, no-wrap
1039 msgid "EXAMPLE"
1040 msgstr "例"
1041
1042 #. type: Plain text
1043 #: build/C/man2/eventfd.2:343
1044 msgid ""
1045 "The following program creates an eventfd file descriptor and then forks to "
1046 "create a child process.  While the parent briefly sleeps, the child writes "
1047 "each of the integers supplied in the program's command-line arguments to the "
1048 "eventfd file descriptor.  When the parent has finished sleeping, it reads "
1049 "from the eventfd file descriptor."
1050 msgstr ""
1051 "以下のプログラムは eventfd ファイルディスクリプタを生成し、 その後 fork を実"
1052 "行して子プロセスを生成する。 親プロセスが少しの間 sleep する間に、子プロセス"
1053 "は プログラムのコマンドライン引き数で指定された整数(列)をそれぞれ eventfd "
1054 "ファイルディスクリプタに書き込む。 親プロセスは sleep を完了すると eventfd "
1055 "ファイルディスクリプタから 読み出しを行う。"
1056
1057 #. type: Plain text
1058 #: build/C/man2/eventfd.2:345
1059 msgid "The following shell session shows a sample run of the program:"
1060 msgstr "以下に示すシェルセッションにこのプログラムの使い方を示す。"
1061
1062 #. type: Plain text
1063 #: build/C/man2/eventfd.2:357
1064 #, no-wrap
1065 msgid ""
1066 "$B< ./a.out 1 2 4 7 14>\n"
1067 "Child writing 1 to efd\n"
1068 "Child writing 2 to efd\n"
1069 "Child writing 4 to efd\n"
1070 "Child writing 7 to efd\n"
1071 "Child writing 14 to efd\n"
1072 "Child completed write loop\n"
1073 "Parent about to read\n"
1074 "Parent read 28 (0x1c) from efd\n"
1075 msgstr ""
1076 "$B< ./a.out 1 2 4 7 14>\n"
1077 "Child writing 1 to efd\n"
1078 "Child writing 2 to efd\n"
1079 "Child writing 4 to efd\n"
1080 "Child writing 7 to efd\n"
1081 "Child writing 14 to efd\n"
1082 "Child completed write loop\n"
1083 "Parent about to read\n"
1084 "Parent read 28 (0x1c) from efd\n"
1085
1086 #. type: SS
1087 #: build/C/man2/eventfd.2:359 build/C/man2/signalfd.2:383
1088 #: build/C/man2/timer_create.2:284 build/C/man2/timerfd_create.2:407
1089 #: build/C/man2/wait.2:571
1090 #, no-wrap
1091 msgid "Program source"
1092 msgstr "プログラムのソース"
1093
1094 #. type: Plain text
1095 #: build/C/man2/eventfd.2:367
1096 #, no-wrap
1097 msgid ""
1098 "#include E<lt>sys/eventfd.hE<gt>\n"
1099 "#include E<lt>unistd.hE<gt>\n"
1100 "#include E<lt>stdlib.hE<gt>\n"
1101 "#include E<lt>stdio.hE<gt>\n"
1102 "#include E<lt>stdint.hE<gt>             /* Definition of uint64_t */\n"
1103 msgstr ""
1104 "#include E<lt>sys/eventfd.hE<gt>\n"
1105 "#include E<lt>unistd.hE<gt>\n"
1106 "#include E<lt>stdlib.hE<gt>\n"
1107 "#include E<lt>stdio.hE<gt>\n"
1108 "#include E<lt>stdint.hE<gt>             /* Definition of uint64_t */\n"
1109
1110 #. type: Plain text
1111 #: build/C/man2/eventfd.2:370 build/C/man2/signalfd.2:394
1112 #, no-wrap
1113 msgid ""
1114 "#define handle_error(msg) \\e\n"
1115 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1116 msgstr ""
1117 "#define handle_error(msg) \\e\n"
1118 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1119
1120 #. type: Plain text
1121 #: build/C/man2/eventfd.2:377
1122 #, no-wrap
1123 msgid ""
1124 "int\n"
1125 "main(int argc, char *argv[])\n"
1126 "{\n"
1127 "    int efd, j;\n"
1128 "    uint64_t u;\n"
1129 "    ssize_t s;\n"
1130 msgstr ""
1131 "int\n"
1132 "main(int argc, char *argv[])\n"
1133 "{\n"
1134 "    int efd, j;\n"
1135 "    uint64_t u;\n"
1136 "    ssize_t s;\n"
1137
1138 #. type: Plain text
1139 #: build/C/man2/eventfd.2:382
1140 #, no-wrap
1141 msgid ""
1142 "    if (argc E<lt> 2) {\n"
1143 "        fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n"
1144 "        exit(EXIT_FAILURE);\n"
1145 "    }\n"
1146 msgstr ""
1147 "    if (argc E<lt> 2) {\n"
1148 "        fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n"
1149 "        exit(EXIT_FAILURE);\n"
1150 "    }\n"
1151
1152 #. type: Plain text
1153 #: build/C/man2/eventfd.2:386
1154 #, no-wrap
1155 msgid ""
1156 "    efd = eventfd(0, 0);\n"
1157 "    if (efd == -1)\n"
1158 "        handle_error(\"eventfd\");\n"
1159 msgstr ""
1160 "    efd = eventfd(0, 0);\n"
1161 "    if (efd == -1)\n"
1162 "        handle_error(\"eventfd\");\n"
1163
1164 #. type: Plain text
1165 #: build/C/man2/eventfd.2:398
1166 #, no-wrap
1167 msgid ""
1168 "    switch (fork()) {\n"
1169 "    case 0:\n"
1170 "        for (j = 1; j E<lt> argc; j++) {\n"
1171 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1172 "            u = strtoull(argv[j], NULL, 0);\n"
1173 "                    /* strtoull() allows various bases */\n"
1174 "            s = write(efd, &u, sizeof(uint64_t));\n"
1175 "            if (s != sizeof(uint64_t))\n"
1176 "                handle_error(\"write\");\n"
1177 "        }\n"
1178 "        printf(\"Child completed write loop\\en\");\n"
1179 msgstr ""
1180 "    switch (fork()) {\n"
1181 "    case 0:\n"
1182 "        for (j = 1; j E<lt> argc; j++) {\n"
1183 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1184 "            u = strtoull(argv[j], NULL, 0);\n"
1185 "                    /* strtoull() allows various bases */\n"
1186 "            s = write(efd, &u, sizeof(uint64_t));\n"
1187 "            if (s != sizeof(uint64_t))\n"
1188 "                handle_error(\"write\");\n"
1189 "        }\n"
1190 "        printf(\"Child completed write loop\\en\");\n"
1191
1192 #. type: Plain text
1193 #: build/C/man2/eventfd.2:400
1194 #, no-wrap
1195 msgid "        exit(EXIT_SUCCESS);\n"
1196 msgstr "        exit(EXIT_SUCCESS);\n"
1197
1198 #. type: Plain text
1199 #: build/C/man2/eventfd.2:403
1200 #, no-wrap
1201 msgid ""
1202 "    default:\n"
1203 "        sleep(2);\n"
1204 msgstr ""
1205 "    default:\n"
1206 "        sleep(2);\n"
1207
1208 #. type: Plain text
1209 #: build/C/man2/eventfd.2:411
1210 #, no-wrap
1211 msgid ""
1212 "        printf(\"Parent about to read\\en\");\n"
1213 "        s = read(efd, &u, sizeof(uint64_t));\n"
1214 "        if (s != sizeof(uint64_t))\n"
1215 "            handle_error(\"read\");\n"
1216 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1217 "                (unsigned long long) u, (unsigned long long) u);\n"
1218 "        exit(EXIT_SUCCESS);\n"
1219 msgstr ""
1220 "        printf(\"Parent about to read\\en\");\n"
1221 "        s = read(efd, &u, sizeof(uint64_t));\n"
1222 "        if (s != sizeof(uint64_t))\n"
1223 "            handle_error(\"read\");\n"
1224 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1225 "                (unsigned long long) u, (unsigned long long) u);\n"
1226 "        exit(EXIT_SUCCESS);\n"
1227
1228 #. type: Plain text
1229 #: build/C/man2/eventfd.2:416
1230 #, no-wrap
1231 msgid ""
1232 "    case -1:\n"
1233 "        handle_error(\"fork\");\n"
1234 "    }\n"
1235 "}\n"
1236 msgstr ""
1237 "    case -1:\n"
1238 "        handle_error(\"fork\");\n"
1239 "    }\n"
1240 "}\n"
1241
1242 #. type: Plain text
1243 #: build/C/man2/eventfd.2:428
1244 msgid ""
1245 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), B<signalfd>"
1246 "(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), B<sem_overview>(7)"
1247 msgstr ""
1248 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), B<signalfd>"
1249 "(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), B<sem_overview>(7)"
1250
1251 #. type: TH
1252 #: build/C/man2/getitimer.2:12
1253 #, no-wrap
1254 msgid "GETITIMER"
1255 msgstr "GETITIMER"
1256
1257 #. type: TH
1258 #: build/C/man2/getitimer.2:12
1259 #, no-wrap
1260 msgid "2012-10-01"
1261 msgstr "2012-10-01"
1262
1263 #. type: Plain text
1264 #: build/C/man2/getitimer.2:15
1265 msgid "getitimer, setitimer - get or set value of an interval timer"
1266 msgstr "getitimer, setitimer - インターバル・タイマーの値を取得または設定する"
1267
1268 #. type: Plain text
1269 #: build/C/man2/getitimer.2:18
1270 #, no-wrap
1271 msgid "B<#include E<lt>sys/time.hE<gt>>\n"
1272 msgstr "B<#include E<lt>sys/time.hE<gt>>\n"
1273
1274 #. type: Plain text
1275 #: build/C/man2/getitimer.2:20
1276 #, no-wrap
1277 msgid "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1278 msgstr "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1279
1280 #. type: Plain text
1281 #: build/C/man2/getitimer.2:23
1282 #, no-wrap
1283 msgid ""
1284 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1285 "B<              struct itimerval *>I<old_value>B<);>\n"
1286 msgstr ""
1287 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1288 "B<              struct itimerval *>I<old_value>B<);>\n"
1289
1290 #. type: Plain text
1291 #: build/C/man2/getitimer.2:29
1292 msgid ""
1293 "The system provides each process with three interval timers, each "
1294 "decrementing in a distinct time domain.  When any timer expires, a signal is "
1295 "sent to the process, and the timer (potentially) restarts."
1296 msgstr ""
1297 "システムは 1 個のプロセスにつき 3 個のインターバル・タイマーを提供する。 それ"
1298 "ぞれのタイマーは別々の時間領域で減少する。 どのタイマーも満了するとプロセスに"
1299 "シグナルが送られ、 タイマーは (設定によっては) 再び開始される。"
1300
1301 #. type: TP
1302 #: build/C/man2/getitimer.2:29
1303 #, no-wrap
1304 msgid "B<ITIMER_REAL>"
1305 msgstr "B<ITIMER_REAL>"
1306
1307 #. type: Plain text
1308 #: build/C/man2/getitimer.2:34
1309 msgid "decrements in real time, and delivers B<SIGALRM> upon expiration."
1310 msgstr "実時間 (real time) で減少し、満了すると B<SIGALRM> が送られる。"
1311
1312 #. type: TP
1313 #: build/C/man2/getitimer.2:34
1314 #, no-wrap
1315 msgid "B<ITIMER_VIRTUAL>"
1316 msgstr "B<ITIMER_VIRTUAL>"
1317
1318 #. type: Plain text
1319 #: build/C/man2/getitimer.2:39
1320 msgid ""
1321 "decrements only when the process is executing, and delivers B<SIGVTALRM> "
1322 "upon expiration."
1323 msgstr ""
1324 "プロセスが実行されている間のみ減少し、満了すると B<SIGVTALRM> が送られる。"
1325
1326 #. type: TP
1327 #: build/C/man2/getitimer.2:39
1328 #, no-wrap
1329 msgid "B<ITIMER_PROF>"
1330 msgstr "B<ITIMER_PROF>"
1331
1332 #. type: Plain text
1333 #: build/C/man2/getitimer.2:49
1334 msgid ""
1335 "decrements both when the process executes and when the system is executing "
1336 "on behalf of the process.  Coupled with B<ITIMER_VIRTUAL>, this timer is "
1337 "usually used to profile the time spent by the application in user and kernel "
1338 "space.  B<SIGPROF> is delivered upon expiration."
1339 msgstr ""
1340 "プロセスが実行されていて、 かつシステムがそのプロセスのために処理を行なってい"
1341 "る間に減少する。 多くの場合、このタイマーは B<ITIMER_VIRTUAL> と組み合わされ"
1342 "て、アプリケーションがカーネル空間とユーザー空間で どれだけの時間を過ごしたか"
1343 "をプロファイルするのに使用される。 満了すると B<SIGPROF> が送られる。"
1344
1345 #. type: Plain text
1346 #: build/C/man2/getitimer.2:51
1347 msgid "Timer values are defined by the following structures:"
1348 msgstr "タイマーの値は以下の構造体によって定義される:"
1349
1350 #. type: Plain text
1351 #: build/C/man2/getitimer.2:59
1352 #, no-wrap
1353 msgid ""
1354 "struct itimerval {\n"
1355 "    struct timeval it_interval; /* next value */\n"
1356 "    struct timeval it_value;    /* current value */\n"
1357 "};\n"
1358 msgstr ""
1359 "struct itimerval {\n"
1360 "    struct timeval it_interval; /* next value */\n"
1361 "    struct timeval it_value;    /* current value */\n"
1362 "};\n"
1363
1364 #. type: Plain text
1365 #: build/C/man2/getitimer.2:64
1366 #, no-wrap
1367 msgid ""
1368 "struct timeval {\n"
1369 "    time_t      tv_sec;         /* seconds */\n"
1370 "    suseconds_t tv_usec;        /* microseconds */\n"
1371 "};\n"
1372 msgstr ""
1373 "struct timeval {\n"
1374 "    time_t      tv_sec;         /* seconds */\n"
1375 "    suseconds_t tv_usec;        /* microseconds */\n"
1376 "};\n"
1377
1378 #. type: Plain text
1379 #: build/C/man2/getitimer.2:86
1380 msgid ""
1381 "The function B<getitimer>()  fills the structure pointed to by I<curr_value> "
1382 "with the current setting for the timer specified by I<which> (one of "
1383 "B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>).  The element "
1384 "I<it_value> is set to the amount of time remaining on the timer, or zero if "
1385 "the timer is disabled.  Similarly, I<it_interval> is set to the reset value."
1386 msgstr ""
1387 "B<getitimer>()  関数は、 I<which> で指定されたタイマー (B<ITIMER_REAL>, "
1388 "B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれか) の現在の設定を、 I<curr_value> で"
1389 "指定された構造体に格納する。 I<it_value> 要素にはタイマーの残り時間が設定され"
1390 "る。タイマーがオフの場合は ゼロが設定される。同様に I<it_interval> には初期値"
1391 "が設定される。"
1392
1393 #. type: Plain text
1394 #: build/C/man2/getitimer.2:94
1395 msgid ""
1396 "The function B<setitimer>()  sets the specified timer to the value in "
1397 "I<new_value>.  If I<old_value> is non-NULL, the old value of the timer is "
1398 "stored there."
1399 msgstr ""
1400 "B<setitimer>()  関数は指定されたタイマーに I<new_value> の値を設定する。 "
1401 "I<old_value> が NULL 以外の場合、タイマーの古い値が I<old_value> に格納され"
1402 "る。"
1403
1404 #. type: Plain text
1405 #: build/C/man2/getitimer.2:104
1406 msgid ""
1407 "Timers decrement from I<it_value> to zero, generate a signal, and reset to "
1408 "I<it_interval>.  A timer which is set to zero (I<it_value> is zero or the "
1409 "timer expires and I<it_interval> is zero) stops."
1410 msgstr ""
1411 "タイマーは I<it_value> からゼロへ向けて減っていき、シグナルを生成し、 "
1412 "I<it_interval> に初期化される。 タイマーがゼロに設定された場合 (I<it_value> "
1413 "がゼロか、タイマーが満了した時に I<it_interval> がゼロの場合) は停止する。"
1414
1415 #. type: Plain text
1416 #: build/C/man2/getitimer.2:110
1417 msgid ""
1418 "Both I<tv_sec> and I<tv_usec> are significant in determining the duration of "
1419 "a timer."
1420 msgstr "タイマーの期間は I<tv_sec> と I<tv_usec> の両方により決定される。"
1421
1422 #. type: Plain text
1423 #: build/C/man2/getitimer.2:122
1424 msgid ""
1425 "Timers will never expire before the requested time, but may expire some "
1426 "(short) time afterward, which depends on the system timer resolution and on "
1427 "the system load; see B<time>(7).  (But see BUGS below.)  Upon expiration, a "
1428 "signal will be generated and the timer reset.  If the timer expires while "
1429 "the process is active (always true for B<ITIMER_VIRTUAL>)  the signal will "
1430 "be delivered immediately when generated.  Otherwise the delivery will be "
1431 "offset by a small time dependent on the system loading."
1432 msgstr ""
1433 "要求した時間がくる前にタイマーが満了することはないが、 逆にある (短い) 時間だ"
1434 "け満了が遅れることはある。 どれだけ遅れるかはシステムの時間分解能とシステムの"
1435 "負荷に依存する (B<time>(7)  参照; 但し、バグの項も参照のこと)。 タイマーが満"
1436 "了するとシグナルが生成され、タイマーは初期化される。 プロセスがアクティブな"
1437 "時 (B<ITIMER_VIRTUAL> の場合には常にそうである) にタイマーが満了した場合、生"
1438 "成されたシグナルは すぐに配送される。それ以外の場合は、システムの負荷により少"
1439 "しの時間だけ 遅れて配送される。"
1440
1441 #. type: Plain text
1442 #: build/C/man2/getitimer.2:127 build/C/man2/killpg.2:94
1443 #: build/C/man2/tkill.2:99
1444 msgid ""
1445 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
1446 "appropriately."
1447 msgstr ""
1448 "成功した場合、0 が返される。エラーが発生した場合、-1 が返され、 I<errno> が適"
1449 "切に設定される。"
1450
1451 #. type: TP
1452 #: build/C/man2/getitimer.2:128 build/C/man2/prctl.2:794
1453 #: build/C/man2/sigaction.2:666 build/C/man2/sigaltstack.2:138
1454 #: build/C/man2/sigpending.2:60 build/C/man2/sigprocmask.2:100
1455 #: build/C/man2/sigsuspend.2:77 build/C/man2/timer_settime.2:184
1456 #: build/C/man2/timerfd_create.2:342
1457 #, no-wrap
1458 msgid "B<EFAULT>"
1459 msgstr "B<EFAULT>"
1460
1461 #. type: Plain text
1462 #: build/C/man2/getitimer.2:135 build/C/man2/timerfd_create.2:349
1463 msgid "I<new_value>, I<old_value>, or I<curr_value> is not valid a pointer."
1464 msgstr "I<new_value>, I<old_value>, I<curr_value> が有効なポインタではない。"
1465
1466 #. type: Plain text
1467 #: build/C/man2/getitimer.2:148
1468 msgid ""
1469 "I<which> is not one of B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>; "
1470 "or (since Linux 2.6.22) one of the I<tv_usec> fields in the structure "
1471 "pointed to by I<new_value> contains a value outside the range 0 to 999999."
1472 msgstr ""
1473 "I<which> が B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれでもな"
1474 "い。 または (Linux 2.6.22 以降で)  I<new_value> で指定された構造体の "
1475 "I<tv_usec> フィールドの一つが 0 以上 999999 以下の範囲に入らない値である。"
1476
1477 #. type: Plain text
1478 #: build/C/man2/getitimer.2:158
1479 msgid ""
1480 "POSIX.1-2001, SVr4, 4.4BSD (this call first appeared in 4.2BSD).  "
1481 "POSIX.1-2008 marks B<getitimer>()  and B<setitimer>()  obsolete, "
1482 "recommending the use of the POSIX timers API (B<timer_gettime>(2), "
1483 "B<timer_settime>(2), etc.) instead."
1484 msgstr ""
1485 "POSIX.1-2001, SVr4, 4.4BSD (このコールは 4.2BSD で始めて現われた).  "
1486 "POSIX.1-2008 では、 B<getitimer>()  と B<setitimer>()  は廃止予定とされてお"
1487 "り、 代わりに POSIX タイマー API (B<timer_gettime>(2), B<timer_settime>(2)  "
1488 "など) を使うことが推奨されている。"
1489
1490 #. type: Plain text
1491 #: build/C/man2/getitimer.2:164
1492 msgid ""
1493 "A child created via B<fork>(2)  does not inherit its parent's interval "
1494 "timers.  Interval timers are preserved across an B<execve>(2)."
1495 msgstr ""
1496 "B<fork>(2)  で作成された子プロセスは、 親プロセスのインターバル・タイマーを継"
1497 "承しない。 B<execve>(2)  の前後ではインターバル・タイマーは保存される。"
1498
1499 #. type: Plain text
1500 #: build/C/man2/getitimer.2:174
1501 msgid ""
1502 "POSIX.1 leaves the interaction between B<setitimer>()  and the three "
1503 "interfaces B<alarm>(2), B<sleep>(3), and B<usleep>(3)  unspecified."
1504 msgstr ""
1505 "POSIX.1 では、 B<setitimer>()  と、 B<alarm>(2), B<sleep>(3), B<usleep>(3)  "
1506 "という 3 つのインタフェースとの相互の影響については規定していない。"
1507
1508 #. type: Plain text
1509 #: build/C/man2/getitimer.2:176
1510 msgid "The standards are silent on the meaning of the call:"
1511 msgstr "標準では、次の呼び出しの意味については規定されていない。"
1512
1513 #. type: Plain text
1514 #: build/C/man2/getitimer.2:178
1515 #, no-wrap
1516 msgid "    setitimer(which, NULL, &old_value);\n"
1517 msgstr "    setitimer(which, NULL, &old_value);\n"
1518
1519 #. type: Plain text
1520 #: build/C/man2/getitimer.2:181
1521 msgid ""
1522 "Many systems (Solaris, the BSDs, and perhaps others)  treat this as "
1523 "equivalent to:"
1524 msgstr ""
1525 "(Solaris, BSD 系やおそらく他のシステムもそうだが) 多くのシステムでは、\n"
1526 "この呼び出しは以下と等価である。"
1527
1528 #. type: Plain text
1529 #: build/C/man2/getitimer.2:183
1530 #, no-wrap
1531 msgid "    getitimer(which, &old_value);\n"
1532 msgstr "    getitimer(which, &old_value);\n"
1533
1534 #. type: Plain text
1535 #: build/C/man2/getitimer.2:189
1536 msgid ""
1537 "In Linux, this is treated as being equivalent to a call in which the "
1538 "I<new_value> fields are zero; that is, the timer is disabled.  I<Don't use "
1539 "this Linux misfeature>: it is nonportable and unnecessary."
1540 msgstr ""
1541 "Linux では、この呼び出しは I<new_value> フィールドが 0 の呼び出しと等価なもの"
1542 "と扱われる。 つまり、タイマーが無効になる。 I<Linux のこの間違った機能を使用"
1543 "しないこと>。移植性もなく、不必要な機能である。"
1544
1545 #. type: SH
1546 #: build/C/man2/getitimer.2:189 build/C/man2/kill.2:160
1547 #: build/C/man3/profil.3:72 build/C/man3/psignal.3:101
1548 #: build/C/man2/sigaction.2:781 build/C/man2/signalfd.2:352
1549 #: build/C/man2/sigpending.2:81 build/C/man3/sigset.3:232
1550 #: build/C/man2/timer_getoverrun.2:115 build/C/man2/timerfd_create.2:373
1551 #: build/C/man2/wait.2:521
1552 #, no-wrap
1553 msgid "BUGS"
1554 msgstr "バグ"
1555
1556 #. type: Plain text
1557 #: build/C/man2/getitimer.2:198
1558 msgid ""
1559 "The generation and delivery of a signal are distinct, and only one instance "
1560 "of each of the signals listed above may be pending for a process.  Under "
1561 "very heavy loading, an B<ITIMER_REAL> timer may expire before the signal "
1562 "from a previous expiration has been delivered.  The second signal in such an "
1563 "event will be lost."
1564 msgstr ""
1565 "シグナルの生成と配送は別個のものであり、 前述のシグナルのそれぞれについて一つ"
1566 "だけがプロセスのために 待機する。 非常に重い負荷の下では、 B<ITIMER_REAL> タ"
1567 "イマーでは、時間切れにより生成された一つ前のシグナルが配送される前に、 次の時"
1568 "間切れが起こる場合がある。 そのような場合、 2 個めのイベントに対するシグナル"
1569 "は失われてしまう。"
1570
1571 #. type: Plain text
1572 #: build/C/man2/getitimer.2:213
1573 msgid ""
1574 "On Linux kernels before 2.6.16, timer values are represented in jiffies.  If "
1575 "a request is made set a timer with a value whose jiffies representation "
1576 "exceeds B<MAX_SEC_IN_JIFFIES> (defined in I<include/linux/jiffies.h>), then "
1577 "the timer is silently truncated to this ceiling value.  On Linux/i386 "
1578 "(where, since Linux 2.6.13, the default jiffy is 0.004 seconds), this means "
1579 "that the ceiling value for a timer is approximately 99.42 days.  Since Linux "
1580 "2.6.16, the kernel uses a different internal representation for times, and "
1581 "this ceiling is removed."
1582 msgstr ""
1583 "バージョン 2.6.16 より前の Linux カーネルでは、 タイマーの値は jiffy で表現さ"
1584 "れる。 要求が jiffy 表現で (I<include/linux/jiffies.h> で定義されている)  "
1585 "B<MAX_SEC_IN_JIFFIES> を越える値をタイマーに設定しようとするものの場合、 タイ"
1586 "マーは暗黙にこの上限値に切り詰められる。 Linux/i386 の場合 (Linux 2.6.13 以降"
1587 "では jiffy は 0.004 秒) の場合、 これはタイマーの上限値がおよそ 99.42 日にな"
1588 "ることを意味する。 Linux 2.6.16 以降では、カーネルは時間に関する内部表現とし"
1589 "て 異なる表現を使うようになっており、この上限はなくなった。"
1590
1591 #.  4 Jul 2005: It looks like this bug may remain in 2.4.x.
1592 #.      http://lkml.org/lkml/2005/7/1/165
1593 #. type: Plain text
1594 #: build/C/man2/getitimer.2:220
1595 msgid ""
1596 "On certain systems (including i386), Linux kernels before version 2.6.12 "
1597 "have a bug which will produce premature timer expirations of up to one jiffy "
1598 "under some circumstances.  This bug is fixed in kernel 2.6.12."
1599 msgstr ""
1600 "(i386 を含む) いくつかのシステムでは、 バージョン 2.6.12 以前の Linux カーネ"
1601 "ルは ある種の状況では 1 jiffy 早くタイマーが終了してしまうというバグがあっ"
1602 "た。 このバグはカーネル 2.6.12 で修正された。"
1603
1604 #.  Bugzilla report 25 Apr 2006:
1605 #.  http://bugzilla.kernel.org/show_bug.cgi?id=6443
1606 #.  "setitimer() should reject noncanonical arguments"
1607 #. type: Plain text
1608 #: build/C/man2/getitimer.2:239
1609 msgid ""
1610 "POSIX.1-2001 says that B<setitimer>()  should fail if a I<tv_usec> value is "
1611 "specified that is outside of the range 0 to 999999.  However, in kernels up "
1612 "to and including 2.6.21, Linux does not give an error, but instead silently "
1613 "adjusts the corresponding seconds value for the timer.  From kernel 2.6.22 "
1614 "onward, this nonconformance has been repaired: an improper I<tv_usec> value "
1615 "results in an B<EINVAL> error."
1616 msgstr ""
1617 "POSIX.1-2001 では B<setitimer>()  は I<tv_usec> の値が 0 から 999999 の範囲外"
1618 "である場合には失敗するべきだとしている。 しかし、2.6.21 以前のカーネルの "
1619 "Linux ではエラーにならず、 対応する秒数の分だけそのタイマーの秒の値が暗黙に調"
1620 "整される。 カーネル 2.6.22 以降では、この標準非準拠の動作は修正され、 "
1621 "I<tv_usec> の値が不適切な場合には B<EINVAL> エラーとなる。"
1622
1623 #. type: Plain text
1624 #: build/C/man2/getitimer.2:246
1625 msgid ""
1626 "B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
1627 "B<timerfd_create>(2), B<time>(7)"
1628 msgstr ""
1629 "B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
1630 "B<timerfd_create>(2), B<time>(7)"
1631
1632 #. type: TH
1633 #: build/C/man3/gsignal.3:27
1634 #, no-wrap
1635 msgid "GSIGNAL"
1636 msgstr "GSIGNAL"
1637
1638 #. type: TH
1639 #: build/C/man3/gsignal.3:27 build/C/man3/profil.3:28
1640 #, no-wrap
1641 msgid "2007-07-26"
1642 msgstr "2007-07-26"
1643
1644 #. type: Plain text
1645 #: build/C/man3/gsignal.3:30
1646 msgid "gsignal, ssignal - software signal facility"
1647 msgstr "gsignal, ssignal - ソフトウェア・シグナル機能"
1648
1649 #. type: Plain text
1650 #: build/C/man3/gsignal.3:33 build/C/man2/kill.2:52 build/C/man3/psignal.3:36
1651 #: build/C/man3/raise.3:35 build/C/man2/sigaction.2:53
1652 #: build/C/man3/siginterrupt.3:37 build/C/man3/sigpause.3:31
1653 #: build/C/man3/sigwait.3:32 build/C/man2/sigwaitinfo.2:31
1654 #, no-wrap
1655 msgid "B<#include E<lt>signal.hE<gt>>\n"
1656 msgstr "B<#include E<lt>signal.hE<gt>>\n"
1657
1658 #. type: Plain text
1659 #: build/C/man3/gsignal.3:35
1660 #, no-wrap
1661 msgid "B<typedef void (*sighandler_t)(int);>\n"
1662 msgstr "B<typedef void (*sighandler_t)(int);>\n"
1663
1664 #. type: Plain text
1665 #: build/C/man3/gsignal.3:37
1666 #, no-wrap
1667 msgid "B<int gsignal(int >I<signum>B<);>\n"
1668 msgstr "B<int gsignal(int >I<signum>B<);>\n"
1669
1670 #. type: Plain text
1671 #: build/C/man3/gsignal.3:39
1672 #, no-wrap
1673 msgid "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
1674 msgstr "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
1675
1676 #. type: Plain text
1677 #: build/C/man3/gsignal.3:44 build/C/man2/kill.2:59 build/C/man2/killpg.2:53
1678 #: build/C/man3/profil.3:42 build/C/man3/psignal.3:46
1679 #: build/C/man2/sigaction.2:61 build/C/man2/sigaltstack.2:38
1680 #: build/C/man3/siginterrupt.3:44 build/C/man2/sigpending.2:40
1681 #: build/C/man2/sigprocmask.2:41 build/C/man3/sigqueue.3:39
1682 #: build/C/man3/sigset.3:45 build/C/man3/sigsetops.3:51
1683 #: build/C/man2/sigsuspend.2:40 build/C/man3/sigvec.3:45
1684 #: build/C/man3/sigwait.3:39 build/C/man2/sigwaitinfo.2:41
1685 #: build/C/man2/timer_create.2:48 build/C/man2/timer_delete.2:41
1686 #: build/C/man2/timer_getoverrun.2:41 build/C/man2/timer_settime.2:45
1687 #: build/C/man2/wait.2:67 build/C/man2/wait4.2:53
1688 msgid ""
1689 "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
1690 msgstr "glibc 向けの機能検査マクロの要件 (B<feature_test_macros>(7)  参照):"
1691
1692 #. type: Plain text
1693 #: build/C/man3/gsignal.3:49
1694 msgid "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
1695 msgstr "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
1696
1697 #. type: Plain text
1698 #: build/C/man3/gsignal.3:57
1699 msgid ""
1700 "Don't use these functions under Linux.  Due to a historical mistake, under "
1701 "Linux these functions are aliases for B<raise>(3)  and B<signal>(2), "
1702 "respectively."
1703 msgstr ""
1704 "Linux ではこれらの関数を使用しないこと。 過去に間違いがあり、Linux では "
1705 "B<gsignal>()  と B<ssignal>()  はそれぞれ B<raise>(3)  と B<signal>(2)  の別"
1706 "名になっている。"
1707
1708 #. type: Plain text
1709 #: build/C/man3/gsignal.3:95
1710 msgid ""
1711 "Elsewhere, on System V-like systems, these functions implement software "
1712 "signaling, entirely independent of the classical B<signal>(2)  and B<kill>"
1713 "(2)  functions.  The function B<ssignal>()  defines the action to take when "
1714 "the software signal with number I<signum> is raised using the function "
1715 "B<gsignal>(), and returns the previous such action or B<SIG_DFL>.  The "
1716 "function B<gsignal>()  does the following: if no action (or the action "
1717 "B<SIG_DFL>)  was specified for I<signum>, then it does nothing and returns "
1718 "0.  If the action B<SIG_IGN> was specified for I<signum>, then it does "
1719 "nothing and returns 1.  Otherwise, it resets the action to B<SIG_DFL> and "
1720 "calls the action function with argument I<signum>, and returns the value "
1721 "returned by that function.  The range of possible values I<signum> varies "
1722 "(often 1-15 or 1-17)."
1723 msgstr ""
1724 "一方、System V 風のシステムでは、これらの関数で、 従来の B<signal>(2)  や "
1725 "B<kill>(2)  の関数群とは完全に独立な、 ソフトウェア・シグナリングを実現してい"
1726 "る。 B<ssignal>()  関数は、番号 I<signum> のソフトウェア・シグナルが "
1727 "B<gsignal>()  関数を使って発生された時にとるべきアクションを定義する。 "
1728 "B<gsignal>()  の返り値は、一つ前に指定されていたアクション、もしくは "
1729 "B<SIG_DFL> である。 B<gsignal>()  は以下のような動作を行う: I<signum> に対し"
1730 "てアクションが指定されていないか、アクション B<SIG_DFL> が指定されていた場"
1731 "合、何もせずに 0 を返す。 I<signum> に対して アクション B<SIG_IGN> が指定され"
1732 "ていた場合、何もせずに 1 を返す。 それ以外の場合、アクションを B<SIG_DFL> に"
1733 "リセットし、引き数に I<signum> を指定してアクション関数を呼び出して、アクショ"
1734 "ン関数の返り値を返す。 I<signum> がとり得る値の範囲は実装により異なる (多くの"
1735 "場合 1〜15 か 1〜17 である)。"
1736
1737 #. type: Plain text
1738 #: build/C/man3/gsignal.3:103
1739 msgid ""
1740 "These functions are available under AIX, DG/UX, HP-UX, SCO, Solaris, Tru64.  "
1741 "They are called obsolete under most of these systems, and are broken under "
1742 "Linux libc and glibc.  Some systems also have B<gsignal_r>()  and "
1743 "B<ssignal_r>()."
1744 msgstr ""
1745 "これらの関数は、AIX, DG/UX, HP-UX, SCO, Solaris, Tru64 で使用可能である。 こ"
1746 "れらのシステムのほとんどで廃止されたことになっており、 Linux の libc および "
1747 "glibc では正しく実装されていない。 B<gsignal_r>()  と B<ssignal_r>()  が実装"
1748 "されているシステムもある。"
1749
1750 #. type: Plain text
1751 #: build/C/man3/gsignal.3:107
1752 msgid "B<kill>(2), B<signal>(2), B<raise>(3)"
1753 msgstr "B<kill>(2), B<signal>(2), B<raise>(3)"
1754
1755 #. type: TH
1756 #: build/C/man2/kill.2:44
1757 #, no-wrap
1758 msgid "KILL"
1759 msgstr "KILL"
1760
1761 #. type: TH
1762 #: build/C/man2/kill.2:44
1763 #, no-wrap
1764 msgid "2013-02-05"
1765 msgstr "2013-02-05"
1766
1767 #. type: Plain text
1768 #: build/C/man2/kill.2:47
1769 msgid "kill - send signal to a process"
1770 msgstr "kill - プロセスにシグナルを送る"
1771
1772 #. type: Plain text
1773 #: build/C/man2/kill.2:50
1774 #, no-wrap
1775 msgid "B<#include E<lt>sys/types.hE<gt>>\n"
1776 msgstr "B<#include E<lt>sys/types.hE<gt>>\n"
1777
1778 #. type: Plain text
1779 #: build/C/man2/kill.2:54
1780 #, no-wrap
1781 msgid "B<int kill(pid_t >I<pid>B<, int >I<sig>B<);>\n"
1782 msgstr "B<int kill(pid_t >I<pid>B<, int >I<sig>B<);>\n"
1783
1784 #. type: Plain text
1785 #: build/C/man2/kill.2:64
1786 msgid ""
1787 "B<kill>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1788 msgstr ""
1789 "B<kill>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1790
1791 #. type: Plain text
1792 #: build/C/man2/kill.2:70
1793 msgid ""
1794 "The B<kill>()  system call can be used to send any signal to any process "
1795 "group or process."
1796 msgstr ""
1797 "システムコールの B<kill>()  は、任意のプロセス・グループもしくはプロセスにシ"
1798 "グナルを 送るのに使われる。"
1799
1800 #. type: Plain text
1801 #: build/C/man2/kill.2:73
1802 msgid ""
1803 "If I<pid> is positive, then signal I<sig> is sent to the process with the ID "
1804 "specified by I<pid>."
1805 msgstr ""
1806 "I<pid> に正の値を指定した場合、シグナル I<sig> が I<pid> で指定された ID を持"
1807 "つプロセスに送られる。"
1808
1809 #. type: Plain text
1810 #: build/C/man2/kill.2:76
1811 msgid ""
1812 "If I<pid> equals 0, then I<sig> is sent to every process in the process "
1813 "group of the calling process."
1814 msgstr ""
1815 "I<pid> に 0 を指定した場合、 呼び出し元のプロセスのプロセス・グループに属する"
1816 "すべてのプロセスに I<sig> で指定したシグナルが送られる。"
1817
1818 #. type: Plain text
1819 #: build/C/man2/kill.2:80
1820 msgid ""
1821 "If I<pid> equals -1, then I<sig> is sent to every process for which the "
1822 "calling process has permission to send signals, except for process 1 "
1823 "(I<init>), but see below."
1824 msgstr ""
1825 "I<pid> に -1 を指定した場合、 I<sig> で指定したシグナルが、 呼び出し元のプロ"
1826 "セスがシグナルを送る許可を持つ全てのプロセスに 送られる。但し、プロセス番号 "
1827 "1 (I<init>) へはシグナルは送られない。 以下の関連部分も参照のこと。"
1828
1829 #. type: Plain text
1830 #: build/C/man2/kill.2:83
1831 msgid ""
1832 "If I<pid> is less than -1, then I<sig> is sent to every process in the "
1833 "process group whose ID is I<-pid>."
1834 msgstr ""
1835 "I<pid> に -1 より小さな値を指定した場合、 ID が I<-pid> のプロセス・グループ"
1836 "に属するすべてのプロセスに I<sig> で指定したシグナルが送られる。"
1837
1838 #. type: Plain text
1839 #: build/C/man2/kill.2:88
1840 msgid ""
1841 "If I<sig> is 0, then no signal is sent, but error checking is still "
1842 "performed; this can be used to check for the existence of a process ID or "
1843 "process group ID."
1844 msgstr ""
1845 "I<sig> に 0 を指定した場合、シグナルは送られないが、 エラーのチェックは行われ"
1846 "る。これを使って、プロセス ID や プロセスグループ ID の存在確認を行うことがで"
1847 "きる。"
1848
1849 #. type: Plain text
1850 #: build/C/man2/kill.2:99 build/C/man2/killpg.2:89
1851 msgid ""
1852 "For a process to have permission to send a signal it must either be "
1853 "privileged (under Linux: have the B<CAP_KILL> capability), or the real or "
1854 "effective user ID of the sending process must equal the real or saved set-"
1855 "user-ID of the target process.  In the case of B<SIGCONT> it suffices when "
1856 "the sending and receiving processes belong to the same session."
1857 msgstr ""
1858 "プロセスがシグナルを送信する許可を持つためには、 プロセスが特権 (Linux では "
1859 "B<CAP_KILL> ケーパビリティ (capability)) を持つか、 送信元プロセスの実ユー"
1860 "ザー ID または実効ユーザー ID が 送信先プロセスの実 set-user-ID または保存 "
1861 "set-user-ID と 等しくなければならない。 B<SIGCONT> の場合、送信プロセスと受信"
1862 "プロセスが 同じセッションに属していれば十分である。"
1863
1864 #. type: Plain text
1865 #: build/C/man2/kill.2:104
1866 msgid ""
1867 "On success (at least one signal was sent), zero is returned.  On error, -1 "
1868 "is returned, and I<errno> is set appropriately."
1869 msgstr ""
1870 "成功した場合 (少なくとも一つのシグナルが送信された場合)、 0 が返される。エ"
1871 "ラーの場合 -1 が返され、 I<errno> が適切に設定される。"
1872
1873 #. type: Plain text
1874 #: build/C/man2/kill.2:108
1875 msgid "An invalid signal was specified."
1876 msgstr "無効なシグナルを指定した。"
1877
1878 #. type: TP
1879 #: build/C/man2/kill.2:108 build/C/man2/killpg.2:99 build/C/man2/prctl.2:879
1880 #: build/C/man2/prctl.2:891 build/C/man2/prctl.2:901 build/C/man2/prctl.2:909
1881 #: build/C/man2/rt_sigqueueinfo.2:148 build/C/man2/sigaltstack.2:151
1882 #: build/C/man3/sigqueue.3:102 build/C/man2/tkill.2:103
1883 #, no-wrap
1884 msgid "B<EPERM>"
1885 msgstr "B<EPERM>"
1886
1887 #. type: Plain text
1888 #: build/C/man2/kill.2:112 build/C/man2/killpg.2:103
1889 msgid ""
1890 "The process does not have permission to send the signal to any of the target "
1891 "processes."
1892 msgstr ""
1893 "プロセスが、受信するプロセスのいずれに対しても シグナルを送る許可を持っていな"
1894 "い。"
1895
1896 #. type: TP
1897 #: build/C/man2/kill.2:112 build/C/man2/killpg.2:103 build/C/man2/killpg.2:107
1898 #: build/C/man2/rt_sigqueueinfo.2:156 build/C/man3/sigqueue.3:108
1899 #: build/C/man2/tkill.2:108
1900 #, no-wrap
1901 msgid "B<ESRCH>"
1902 msgstr "B<ESRCH>"
1903
1904 #. type: Plain text
1905 #: build/C/man2/kill.2:120
1906 msgid ""
1907 "The pid or process group does not exist.  Note that an existing process "
1908 "might be a zombie, a process which already committed termination, but has "
1909 "not yet been B<wait>(2)ed for."
1910 msgstr ""
1911 "指定したプロセスまたはプロセス・グループが存在しなかった。 ゾンビプロセスは存"
1912 "在するプロセスとしてみなされる。 ゾンビプロセスとはすでに処理は終了している"
1913 "が、親プロセスによる B<wait>()  処理が行われていないプロセスのことである。"
1914
1915 #. type: Plain text
1916 #: build/C/man2/kill.2:122 build/C/man2/pause.2:59 build/C/man2/wait.2:422
1917 msgid "SVr4, 4.3BSD, POSIX.1-2001."
1918 msgstr "SVr4, 4.3BSD, POSIX.1-2001."
1919
1920 #. type: Plain text
1921 #: build/C/man2/kill.2:130
1922 msgid ""
1923 "The only signals that can be sent to process ID 1, the I<init> process, are "
1924 "those for which I<init> has explicitly installed signal handlers.  This is "
1925 "done to assure the system is not brought down accidentally."
1926 msgstr ""
1927 "プロセス番号 1 の I<init> プロセスに送ることができるシグナルは、 I<init> が明"
1928 "示的にシグナルハンドラを設定したシグナルだけである。 こうなっているのは、誤っ"
1929 "てシステムをダウンさせないようにするためである。"
1930
1931 #. type: Plain text
1932 #: build/C/man2/kill.2:136
1933 msgid ""
1934 "POSIX.1-2001 requires that I<kill(-1,sig)> send I<sig> to all processes that "
1935 "the calling process may send signals to, except possibly for some "
1936 "implementation-defined system processes.  Linux allows a process to signal "
1937 "itself, but on Linux the call I<kill(-1,sig)> does not signal the calling "
1938 "process."
1939 msgstr ""
1940 "POSIX.1-2001 では、 I<kill(-1,sig)> が 呼び出し元のプロセスがシグナルを送るこ"
1941 "とが出来るプロセス全てに I<sig> を送ることを要求している。 但し、システム実装"
1942 "時に定められたシステムプロセスは シグナルの送信対象から除外される。 Linux で"
1943 "は、プロセスが自分自身にシグナルを送れるようになっているが、 Linux の I<kill"
1944 "(-1,sig)> は呼び出し元のプロセスにはシグナルを送らない。"
1945
1946 #. type: Plain text
1947 #: build/C/man2/kill.2:146
1948 msgid ""
1949 "POSIX.1-2001 requires that if a process sends a signal to itself, and the "
1950 "sending thread does not have the signal blocked, and no other thread has it "
1951 "unblocked or is waiting for it in B<sigwait>(3), at least one unblocked "
1952 "signal must be delivered to the sending thread before the B<kill>()  returns."
1953 msgstr ""
1954 "POSIX.1-2001 では以下の動作になることを要求している。 自分自身にシグナルを送"
1955 "ると、シグナルを送ったスレッドがそのシグナルをブロック しておらず、他のどのス"
1956 "レッドもそのシグナルを受ける状態にもなく B<sigwait>(3)  でそのシグナルを待っ"
1957 "てもいない場合、 B<kill>()  が返る前に少なくとも一つのブロックされていない シ"
1958 "グナルがシグナルを送ったスレッドに配送されなければならない。"
1959
1960 #. type: SS
1961 #: build/C/man2/kill.2:146 build/C/man3/sigpause.3:77 build/C/man2/wait.2:476
1962 #, no-wrap
1963 msgid "Linux notes"
1964 msgstr "Linux での注意"
1965
1966 #.  In the 0.* kernels things chopped and changed quite
1967 #.  a bit - MTK, 24 Jul 02
1968 #. type: Plain text
1969 #: build/C/man2/kill.2:160
1970 msgid ""
1971 "Across different kernel versions, Linux has enforced different rules for the "
1972 "permissions required for an unprivileged process to send a signal to another "
1973 "process.  In kernels 1.0 to 1.2.2, a signal could be sent if the effective "
1974 "user ID of the sender matched that of the receiver, or the real user ID of "
1975 "the sender matched that of the receiver.  From kernel 1.2.3 until 1.3.77, a "
1976 "signal could be sent if the effective user ID of the sender matched either "
1977 "the real or effective user ID of the receiver.  The current rules, which "
1978 "conform to POSIX.1-2001, were adopted in kernel 1.3.78."
1979 msgstr ""
1980 "Linux では、特権のないプロセスが他のプロセスにシグナルを送信するために 必要な"
1981 "権限についてのルールが、カーネルバージョンにより違っている。 カーネル 1.0 か"
1982 "ら 1.2.2 では、送信側の実効ユーザーID が受信側の 実効ユーザー IDと一致すれば"
1983 "シグナルを送信できた。 カーネル 1.2.3 から 1.3.77では、送信側の実効ユーザー"
1984 "ID が受信側の 実ユーザーID か実効ユーザーID のいずれかと一致すればシグナルを"
1985 "送信できた。 現在のルールは、POSIX.1-2001 に準拠しており、カーネル 1.3.78 以"
1986 "降で 適用されている。"
1987
1988 #. type: Plain text
1989 #: build/C/man2/kill.2:170
1990 msgid ""
1991 "In 2.6 kernels up to and including 2.6.7, there was a bug that meant that "
1992 "when sending signals to a process group, B<kill>()  failed with the error "
1993 "B<EPERM> if the caller did not have permission to send the signal to I<any> "
1994 "(rather than I<all>) of the members of the process group.  Notwithstanding "
1995 "this error return, the signal was still delivered to all of the processes "
1996 "for which the caller had permission to signal."
1997 msgstr ""
1998 "バージョン 2.6.7 以前の 2.6 系のカーネルには、 プロセスグループにシグナルを"
1999 "送ったときに、 呼び出し元のプロセスがプロセスグループの (全メンバーではなく) "
2000 "一部のメンバーに対してのみシグナルを送る許可を持っていない場合に、 B<kill>"
2001 "()  がエラー B<EPERM> で失敗するというバグがある。 このエラーが返るにもかかわ"
2002 "らず、そのシグナルは呼び出し元が シグナルを送る許可を持つ全てのプロセスへ送ら"
2003 "れる。"
2004
2005 #. type: Plain text
2006 #: build/C/man2/kill.2:180
2007 msgid ""
2008 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), B<sigqueue>"
2009 "(3), B<capabilities>(7), B<credentials>(7), B<signal>(7)"
2010 msgstr ""
2011 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), B<sigqueue>"
2012 "(3), B<credentials>(7), B<capabilities>(7), B<signal>(7)"
2013
2014 #. type: TH
2015 #: build/C/man2/killpg.2:42
2016 #, no-wrap
2017 msgid "KILLPG"
2018 msgstr "KILLPG"
2019
2020 #. type: TH
2021 #: build/C/man2/killpg.2:42 build/C/man3/sigset.3:26
2022 #, no-wrap
2023 msgid "2010-09-20"
2024 msgstr "2010-09-20"
2025
2026 #. type: Plain text
2027 #: build/C/man2/killpg.2:45
2028 msgid "killpg - send signal to a process group"
2029 msgstr "killpg - シグナルをプロセス・グループに送る"
2030
2031 #. type: Plain text
2032 #: build/C/man2/killpg.2:49
2033 msgid "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2034 msgstr "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2035
2036 #. type: TP
2037 #: build/C/man2/killpg.2:55
2038 #, no-wrap
2039 msgid "B<killpg>():"
2040 msgstr "B<killpg>():"
2041
2042 #. type: Plain text
2043 #: build/C/man2/killpg.2:59 build/C/man2/sigaltstack.2:46
2044 #: build/C/man3/siginterrupt.3:51 build/C/man2/wait4.2:60
2045 msgid ""
2046 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2047 "_XOPEN_SOURCE_EXTENDED"
2048 msgstr ""
2049 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2050 "_XOPEN_SOURCE_EXTENDED"
2051
2052 #. type: Plain text
2053 #: build/C/man2/killpg.2:69
2054 msgid ""
2055 "B<killpg>()  sends the signal I<sig> to the process group I<pgrp>.  See "
2056 "B<signal>(7)  for a list of signals."
2057 msgstr ""
2058 "B<killpg>()  は I<sig> で指定したシグナルを I<pgrp> で指定したプロセス・グ"
2059 "ループに送る。 シグナルの定義の一覧は B<signal>(7)  を参照のこと。"
2060
2061 #. type: Plain text
2062 #: build/C/man2/killpg.2:78
2063 msgid ""
2064 "If I<pgrp> is 0, B<killpg>()  sends the signal to the calling process's "
2065 "process group.  (POSIX says: If I<pgrp> is less than or equal to 1, the "
2066 "behavior is undefined.)"
2067 msgstr ""
2068 "引き数 I<pgrp> に 0 を指定した場合には B<killpg>()  は呼び出し元のプロセスが"
2069 "属しているプロセス・グループに対してシグナルを送る。 (POSIX では以下のように"
2070 "記述されている: I<pgrp> が 1 以下である場合、動作は未定義である。)"
2071
2072 #. type: Plain text
2073 #: build/C/man2/killpg.2:99
2074 msgid "I<sig> is not a valid signal number."
2075 msgstr "I<sig> で指定された値は無効なシグナル番号である。"
2076
2077 #. type: Plain text
2078 #: build/C/man2/killpg.2:107
2079 msgid "No process can be found in the process group specified by I<pgrp>."
2080 msgstr ""
2081 "I<pgrp> で指定されたプロセス・グループに属するプロセスが存在しなかった。"
2082
2083 #. type: Plain text
2084 #: build/C/man2/killpg.2:111
2085 msgid ""
2086 "The process group was given as 0 but the sending process does not have a "
2087 "process group."
2088 msgstr ""
2089 "プロセス・グループとして 0 が指定されたが、送信プロセスは プロセス・グループ"
2090 "を持っていない。"
2091
2092 #. type: Plain text
2093 #: build/C/man2/killpg.2:115
2094 msgid ""
2095 "SVr4, 4.4BSD (the B<killpg>()  function call first appeared in 4BSD), "
2096 "POSIX.1-2001."
2097 msgstr "SVr4, 4.4BSD (B<killpg>()  は 4BSD で初めて追加された), POSIX.1-2001。"
2098
2099 #. type: Plain text
2100 #: build/C/man2/killpg.2:129
2101 msgid ""
2102 "There are various differences between the permission checking in BSD-type "
2103 "systems and System V-type systems.  See the POSIX rationale for B<kill>().  "
2104 "A difference not mentioned by POSIX concerns the return value B<EPERM>: BSD "
2105 "documents that no signal is sent and B<EPERM> returned when the permission "
2106 "check failed for at least one target process, while POSIX documents B<EPERM> "
2107 "only when the permission check failed for all target processes."
2108 msgstr ""
2109 "BSD 系システムと System V 系システムでは、 許可のチェックに様々な違いがあ"
2110 "る。 B<kill>(2)  についての POSIX の原理 (rationale) を参照すること。 POSIX "
2111 "で記述されていない違いとしては、返り値 B<EPERM> がある。 BSD では「送信先プロ"
2112 "セスの許可のチェックが 1 つでも失敗した場合は、 シグナルが送信されず、 "
2113 "B<EPERM> が返される」と記述されている。 POSIX では「送信先プロセスの許可の"
2114 "チェックが全て失敗した場合にのみ、 B<EPERM> が返される」と記述されている。"
2115
2116 #. type: Plain text
2117 #: build/C/man2/killpg.2:134
2118 msgid ""
2119 "On Linux, B<killpg>()  is implemented as a library function that makes the "
2120 "call I<kill(-pgrp,\\ sig)>."
2121 msgstr ""
2122 "Linux では、 B<killpg>()  はライブラリ関数として実装されており、 I<kill(-"
2123 "pgrp,\\ sig)> の呼び出しが行われる。"
2124
2125 #. type: Plain text
2126 #: build/C/man2/killpg.2:140
2127 msgid ""
2128 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<capabilities>(7), B<credentials>"
2129 "(7)"
2130 msgstr ""
2131 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<credentials>(7), B<capabilities>"
2132 "(7)"
2133
2134 #. type: TH
2135 #: build/C/man2/pause.2:30
2136 #, no-wrap
2137 msgid "PAUSE"
2138 msgstr "PAUSE"
2139
2140 #. type: TH
2141 #: build/C/man2/pause.2:30
2142 #, no-wrap
2143 msgid "2008-10-06"
2144 msgstr "2008-10-06"
2145
2146 #. type: Plain text
2147 #: build/C/man2/pause.2:33
2148 msgid "pause - wait for signal"
2149 msgstr "pause - シグナルを待つ"
2150
2151 #. type: Plain text
2152 #: build/C/man2/pause.2:35
2153 msgid "B<#include E<lt>unistd.hE<gt>>"
2154 msgstr "B<#include E<lt>unistd.hE<gt>>"
2155
2156 #. type: Plain text
2157 #: build/C/man2/pause.2:37
2158 msgid "B<int pause(void);>"
2159 msgstr "B<int pause(void);>"
2160
2161 #. type: Plain text
2162 #: build/C/man2/pause.2:42
2163 msgid ""
2164 "B<pause>()  causes the calling process (or thread) to sleep until a signal "
2165 "is delivered that either terminates the process or causes the invocation of "
2166 "a signal-catching function."
2167 msgstr ""
2168 "B<pause>()  は、呼び出したプロセス (またはスレッド) を、 そのプロセスを終了さ"
2169 "せたり、シグナル捕捉関数が起動されるような シグナルが配送されるまで、スリープ"
2170 "させる。"
2171
2172 #.  .BR ERESTARTNOHAND .
2173 #. type: Plain text
2174 #: build/C/man2/pause.2:53
2175 msgid ""
2176 "B<pause>()  returns only when a signal was caught and the signal-catching "
2177 "function returned.  In this case B<pause>()  returns -1, and I<errno> is set "
2178 "to B<EINTR>."
2179 msgstr ""
2180 "B<pause>()  が返るのは、シグナルを受け取りシグナル捕獲関数から返った場合だけ"
2181 "である。 この場合は B<pause>()  は -1 を返し、 I<errno> に B<EINTR> が設定さ"
2182 "れる。"
2183
2184 #. type: TP
2185 #: build/C/man2/pause.2:54 build/C/man2/sigsuspend.2:81
2186 #: build/C/man2/sigwaitinfo.2:123 build/C/man2/wait.2:408
2187 #, no-wrap
2188 msgid "B<EINTR>"
2189 msgstr "B<EINTR>"
2190
2191 #. type: Plain text
2192 #: build/C/man2/pause.2:57
2193 msgid "a signal was caught and the signal-catching function returned."
2194 msgstr "シグナルを受け取り、シグナル捕獲関数から帰ってきた。"
2195
2196 #. type: Plain text
2197 #: build/C/man2/pause.2:64
2198 msgid "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2199 msgstr "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2200
2201 #. type: TH
2202 #: build/C/man2/prctl.2:52
2203 #, no-wrap
2204 msgid "PRCTL"
2205 msgstr "PRCTL"
2206
2207 #. type: TH
2208 #: build/C/man2/prctl.2:52
2209 #, no-wrap
2210 msgid "2013-05-21"
2211 msgstr "2013-05-21"
2212
2213 #. type: Plain text
2214 #: build/C/man2/prctl.2:55
2215 msgid "prctl - operations on a process"
2216 msgstr "prctl - プロセスの操作を行なう"
2217
2218 #. type: Plain text
2219 #: build/C/man2/prctl.2:58
2220 #, no-wrap
2221 msgid "B<#include E<lt>sys/prctl.hE<gt>>\n"
2222 msgstr "B<#include E<lt>sys/prctl.hE<gt>>\n"
2223
2224 #. type: Plain text
2225 #: build/C/man2/prctl.2:61
2226 #, no-wrap
2227 msgid ""
2228 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2229 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2230 msgstr ""
2231 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2232 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2233
2234 #. type: Plain text
2235 #: build/C/man2/prctl.2:68
2236 msgid ""
2237 "B<prctl>()  is called with a first argument describing what to do (with "
2238 "values defined in I<E<lt>linux/prctl.hE<gt>>), and further arguments with a "
2239 "significance depending on the first one.  The first argument can be:"
2240 msgstr ""
2241 "B<prctl>()  の動作は最初の引き数によって決定される (この値は I<E<lt>linux/"
2242 "prctl.hE<gt>> に定義されている)。 残りの引き数は最初の引き数によって変化す"
2243 "る。 一番目の引き数として以下のものを指定できる:"
2244
2245 #. type: TP
2246 #: build/C/man2/prctl.2:68
2247 #, no-wrap
2248 msgid "B<PR_CAPBSET_READ> (since Linux 2.6.25)"
2249 msgstr "B<PR_CAPBSET_READ> (Linux 2.6.25 以降)"
2250
2251 #. type: Plain text
2252 #: build/C/man2/prctl.2:80
2253 msgid ""
2254 "Return (as the function result) 1 if the capability specified in I<arg2> is "
2255 "in the calling thread's capability bounding set, or 0 if it is not.  (The "
2256 "capability constants are defined in I<E<lt>linux/capability.hE<gt>>.)  The "
2257 "capability bounding set dictates whether the process can receive the "
2258 "capability through a file's permitted capability set on a subsequent call to "
2259 "B<execve>(2)."
2260 msgstr ""
2261 "で指定されたケーパビリティが呼び出したスレッドのケーパビリティ バインディング"
2262 "セット (capability bounding set) に含まれている場合、 (関数の返り値として) 1 "
2263 "を返し、そうでない場合 0 を返す (ケーパビリティ定数は I<E<lt>linux/"
2264 "capability.hE<gt>> で定義されている)。 ケーパビリティバウンディングセット"
2265 "は、 B<execve>(2)  を呼び出した際に、ファイルの許可 (permitted) ケーパビリ"
2266 "ティの中で そのプロセスが獲得できるケーパビリティを指示するものである。"
2267
2268 #. type: Plain text
2269 #: build/C/man2/prctl.2:85
2270 msgid ""
2271 "If the capability specified in I<arg2> is not valid, then the call fails "
2272 "with the error B<EINVAL>."
2273 msgstr ""
2274 "I<arg2> に指定されたケーパビリティが有効でない場合、 呼び出しはエラー "
2275 "B<EINVAL> で失敗する。"
2276
2277 #. type: TP
2278 #: build/C/man2/prctl.2:85
2279 #, no-wrap
2280 msgid "B<PR_CAPBSET_DROP> (since Linux 2.6.25)"
2281 msgstr "B<PR_CAPBSET_DROP> (Linux 2.6.25 以降)"
2282
2283 #. type: Plain text
2284 #: build/C/man2/prctl.2:94
2285 msgid ""
2286 "If the calling thread has the B<CAP_SETPCAP> capability, then drop the "
2287 "capability specified by I<arg2> from the calling thread's capability "
2288 "bounding set.  Any children of the calling thread will inherit the newly "
2289 "reduced bounding set."
2290 msgstr ""
2291 "呼び出したスレッドがケーパビリティ B<CAP_SETPCAP> を持っている場合、 呼び出し"
2292 "たスレッドのケーパビリティバウンディングセットから I<arg2> で指定されたケーパ"
2293 "ビリティを外す。 呼び出したスレッドの子プロセスは変更後のバウンディングセット"
2294 "を 継承する。"
2295
2296 #. type: Plain text
2297 #: build/C/man2/prctl.2:106
2298 msgid ""
2299 "The call fails with the error: B<EPERM> if the calling thread does not have "
2300 "the B<CAP_SETPCAP>; B<EINVAL> if I<arg2> does not represent a valid "
2301 "capability; or B<EINVAL> if file capabilities are not enabled in the kernel, "
2302 "in which case bounding sets are not supported."
2303 msgstr ""
2304 "呼び出したスレッドが B<CAP_SETPCAP> を持っていない場合、呼び出しはエラー "
2305 "B<EPERM> で失敗する。 I<arg2> に指定されたケーパビリティが有効でない場合、 "
2306 "B<EINVAL> で失敗する。 ファイルケーパビリティがカーネルで有効になっていない場"
2307 "合 (この場合にはバウンディングセットがサポートされない)、 B<EINVAL> で失敗す"
2308 "る。"
2309
2310 #. type: TP
2311 #: build/C/man2/prctl.2:106
2312 #, no-wrap
2313 msgid "B<PR_SET_CHILD_SUBREAPER> (since Linux 3.4)"
2314 msgstr "B<PR_SET_CHILD_SUBREAPER> (Linux 3.4 以降)"
2315
2316 #.  commit ebec18a6d3aa1e7d84aab16225e87fd25170ec2b
2317 #. type: Plain text
2318 #: build/C/man2/prctl.2:131
2319 msgid ""
2320 "If I<arg2> is nonzero, set the \"child subreaper\" attribute of the calling "
2321 "process; if I<arg2> is zero, unset the attribute.  When a process is marked "
2322 "as a child subreaper, all of the children that it creates, and their "
2323 "descendants, will be marked as having a subreaper.  In effect, a subreaper "
2324 "fulfills the role of B<init>(1)  for its descendant processes.  Upon "
2325 "termination of a process that is orphaned (i.e., its immediate parent has "
2326 "already terminated)  and marked as having a subreaper, the nearest still "
2327 "living ancestor subreaper will receive a B<SIGCHLD> signal and be able to "
2328 "B<wait>(2)  on the process to discover its termination status."
2329 msgstr ""
2330
2331 #. type: TP
2332 #: build/C/man2/prctl.2:131
2333 #, no-wrap
2334 msgid "B<PR_GET_CHILD_SUBREAPER> (since Linux 3.4)"
2335 msgstr "B<PR_GET_CHILD_SUBREAPER> (Linux 3.4 以降)"
2336
2337 #. type: Plain text
2338 #: build/C/man2/prctl.2:136
2339 msgid ""
2340 "Return the \"child subreaper\" setting of the caller, in the location "
2341 "pointed to by I<(int\\ *) arg2>."
2342 msgstr ""
2343
2344 #. type: TP
2345 #: build/C/man2/prctl.2:136
2346 #, no-wrap
2347 msgid "B<PR_SET_DUMPABLE> (since Linux 2.3.20)"
2348 msgstr "B<PR_SET_DUMPABLE> (Linux 2.3.20 以降)"
2349
2350 #.  See http://marc.theaimsgroup.com/?l=linux-kernel&m=115270289030630&w=2
2351 #.  Subject:    Fix prctl privilege escalation (CVE-2006-2451)
2352 #.  From:       Marcel Holtmann <marcel () holtmann ! org>
2353 #.  Date:       2006-07-12 11:12:00
2354 #. type: Plain text
2355 #: build/C/man2/prctl.2:162
2356 msgid ""
2357 "Set the state of the flag determining whether core dumps are produced for "
2358 "the calling process upon delivery of a signal whose default behavior is to "
2359 "produce a core dump.  (Normally, this flag is set for a process by default, "
2360 "but it is cleared when a set-user-ID or set-group-ID program is executed and "
2361 "also by various system calls that manipulate process UIDs and GIDs).  In "
2362 "kernels up to and including 2.6.12, I<arg2> must be either 0 (process is not "
2363 "dumpable) or 1 (process is dumpable).  Between kernels 2.6.13 and 2.6.17, "
2364 "the value 2 was also permitted, which caused any binary which normally would "
2365 "not be dumped to be dumped readable by root only; for security reasons, this "
2366 "feature has been removed.  (See also the description of I</proc/sys/fs/"
2367 "suid_dumpable> in B<proc>(5).)  Processes that are not dumpable can not be "
2368 "attached via B<ptrace>(2)  B<PTRACE_ATTACH>."
2369 msgstr ""
2370 "(Linux 2.3.20 以降) デフォルトの振る舞いではコアダンプを引き起こすよう\n"
2371 "なシグナルを受信したときに、呼び出し元のプロセスでコアダンプを\n"
2372 "生成するかどうかを決定するフラグを\n"
2373 "設定する (通常このフラグは、デフォルトではセットされているが、\n"
2374 "set-user-ID あるいは set-group-ID プログラムが実行されたり、 さまざまな\n"
2375 "システムコールによってプロセスの UID や GID が操作されたときに クリアさ\n"
2376 "れる)。 2.6.12 以前のカーネルでは、 I<arg2> は 0 (プロセスはダンプ不可)\n"
2377 "あるいは 1 (プロセスはダンプ可能) の どちらかでなければならない。\n"
2378 "2.6.13 から 2.6.17 までのカーネルでは、値 2 も認められていた。 この値を\n"
2379 "指定すると、通常はダンプされないバイナリが root だけが 読み込み可能な形\n"
2380 "でダンプされた。 セキュリティ上の理由から、この機能は削除された\n"
2381 "(B<proc>(5) の I</proc/sys/fs/suid_dumpable> の説明も参照)。\n"
2382 "ダンプ不可のプロセスを B<ptrace>(2) B<PTRACE_ATTACH> 経由で接続すること\n"
2383 "はできない。"
2384
2385 #. type: TP
2386 #: build/C/man2/prctl.2:162
2387 #, no-wrap
2388 msgid "B<PR_GET_DUMPABLE> (since Linux 2.3.20)"
2389 msgstr "B<PR_GET_DUMPABLE> (Linux 2.3.20 以降)"
2390
2391 #.  Since Linux 2.6.13, the dumpable flag can have the value 2,
2392 #.  but in 2.6.13 PR_GET_DUMPABLE simply returns 1 if the dumpable
2393 #.  flags has a nonzero value.  This was fixed in 2.6.14.
2394 #. type: Plain text
2395 #: build/C/man2/prctl.2:169
2396 msgid ""
2397 "Return (as the function result) the current state of the calling process's "
2398 "dumpable flag."
2399 msgstr ""
2400 "(Linux 2.3.20 以降)  呼び出し元プロセスにおけるダンプ可能フラグの 現在の状態"
2401 "を (関数の返り値として) 返す。"
2402
2403 #. type: TP
2404 #: build/C/man2/prctl.2:169
2405 #, no-wrap
2406 msgid "B<PR_SET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2407 msgstr "B<PR_SET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2408
2409 #.  Respectively 0, 1, 2
2410 #. type: Plain text
2411 #: build/C/man2/prctl.2:179
2412 msgid ""
2413 "Set the endian-ness of the calling process to the value given in I<arg2>, "
2414 "which should be one of the following: B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2415 "or B<PR_ENDIAN_PPC_LITTLE> (PowerPC pseudo little endian)."
2416 msgstr ""
2417 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<arg2> で指定された値"
2418 "に設定する。 指定できる値は B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2419 "B<PR_ENDIAN_PPC_LITTLE> (PowerPC 擬似リトルエンディアン)  のいずれか一つであ"
2420 "る。"
2421
2422 #. type: TP
2423 #: build/C/man2/prctl.2:179
2424 #, no-wrap
2425 msgid "B<PR_GET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2426 msgstr "B<PR_GET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2427
2428 #. type: Plain text
2429 #: build/C/man2/prctl.2:184
2430 msgid ""
2431 "Return the endian-ness of the calling process, in the location pointed to by "
2432 "I<(int\\ *) arg2>."
2433 msgstr ""
2434 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<(int\\ *) arg2> が指"
2435 "す場所に格納して返す。"
2436
2437 #. type: TP
2438 #: build/C/man2/prctl.2:184
2439 #, no-wrap
2440 msgid "B<PR_SET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2441 msgstr "B<PR_SET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2442
2443 #. type: Plain text
2444 #: build/C/man2/prctl.2:191
2445 msgid ""
2446 "Set floating-point emulation control bits to I<arg2>.  Pass "
2447 "B<PR_FPEMU_NOPRINT> to silently emulate fp operations accesses, or "
2448 "B<PR_FPEMU_SIGFPE> to not emulate fp operations and send B<SIGFPE> instead."
2449 msgstr ""
2450 "浮動小数点エミュレーション (floating-point emulation) 制御ビットを I<arg2> で"
2451 "指定された値に設定する。 指定できる値は B<PR_FPEMU_NOPRINT> (浮動小数点命令ア"
2452 "クセスを黙って エミュレートする) か B<PR_FPEMU_SIGFPE> (浮動小数点命令をエ"
2453 "ミュレートせず、 代わりに B<SIGFPE> を送る) である。"
2454
2455 #. type: TP
2456 #: build/C/man2/prctl.2:191
2457 #, no-wrap
2458 msgid "B<PR_GET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2459 msgstr "B<PR_GET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2460
2461 #. type: Plain text
2462 #: build/C/man2/prctl.2:196
2463 msgid ""
2464 "Return floating-point emulation control bits, in the location pointed to by "
2465 "I<(int\\ *) arg2>."
2466 msgstr ""
2467 "浮動小数点エミュレーション制御ビットの値を I<(int\\ *) arg2> が指す場所に格納"
2468 "して返す。"
2469
2470 #. type: TP
2471 #: build/C/man2/prctl.2:196
2472 #, no-wrap
2473 msgid "B<PR_SET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2474 msgstr "B<PR_SET_FPEXC> (Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2475
2476 #. type: Plain text
2477 #: build/C/man2/prctl.2:209
2478 msgid ""
2479 "Set floating-point exception mode to I<arg2>.  Pass B<PR_FP_EXC_SW_ENABLE> "
2480 "to use FPEXC for FP exception enables, B<PR_FP_EXC_DIV> for floating-point "
2481 "divide by zero, B<PR_FP_EXC_OVF> for floating-point overflow, "
2482 "B<PR_FP_EXC_UND> for floating-point underflow, B<PR_FP_EXC_RES> for floating-"
2483 "point inexact result, B<PR_FP_EXC_INV> for floating-point invalid operation, "
2484 "B<PR_FP_EXC_DISABLED> for FP exceptions disabled, B<PR_FP_EXC_NONRECOV> for "
2485 "async nonrecoverable exception mode, B<PR_FP_EXC_ASYNC> for async "
2486 "recoverable exception mode, B<PR_FP_EXC_PRECISE> for precise exception mode."
2487 msgstr ""
2488 "浮動小数点例外モード (floating-point exception mode) を I<arg2> で指定された"
2489 "値に設定する。 指定できるのは以下の値である: B<PR_FP_EXC_SW_ENABLE> (FPEXC で"
2490 "浮動小数点例外を有効にする)、 B<PR_FP_EXC_DIV> (0 除算)、 B<PR_FP_EXC_OVF> "
2491 "(オーバーフロー)、 B<PR_FP_EXC_UND> (アンダーフロー)、 B<PR_FP_EXC_RES> (不正"
2492 "確な結果 (inexact result))、 B<PR_FP_EXC_INV> (不正な命令 (invalid "
2493 "operation))、 B<PR_FP_EXC_DISABLED> (浮動小数点例外を無効にする)、 "
2494 "B<PR_FP_EXC_NONRECOV> (async nonrecoverable exception mode)、 "
2495 "B<PR_FP_EXC_ASYNC> (async recoverable exception mode)、 B<PR_FP_EXC_PRECISE> "
2496 "(precise exception mode)。"
2497
2498 #. type: TP
2499 #: build/C/man2/prctl.2:209
2500 #, no-wrap
2501 msgid "B<PR_GET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2502 msgstr "B<PR_GET_FPEXC>(Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2503
2504 #. type: Plain text
2505 #: build/C/man2/prctl.2:214
2506 msgid ""
2507 "Return floating-point exception mode, in the location pointed to by I<(int\\ "
2508 "*) arg2>."
2509 msgstr ""
2510 "浮動小数点例外モードの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
2511
2512 #. type: TP
2513 #: build/C/man2/prctl.2:214
2514 #, no-wrap
2515 msgid "B<PR_SET_KEEPCAPS> (since Linux 2.2.18)"
2516 msgstr "B<PR_SET_KEEPCAPS> (Linux 2.2.18 以降)"
2517
2518 #. type: Plain text
2519 #: build/C/man2/prctl.2:232
2520 msgid ""
2521 "Set the state of the thread's \"keep capabilities\" flag, which determines "
2522 "whether the threads's permitted capability set is cleared when a change is "
2523 "made to the threads's user IDs such that the threads's real UID, effective "
2524 "UID, and saved set-user-ID all become nonzero when at least one of them "
2525 "previously had the value 0.  By default, the permitted capability set is "
2526 "cleared when such a change is made; setting the \"keep capabilities\" flag "
2527 "prevents it from being cleared.  I<arg2> must be either 0 (permitted "
2528 "capabilities are cleared)  or 1 (permitted capabilities are kept).  (A "
2529 "thread's I<effective> capability set is always cleared when such a "
2530 "credential change is made, regardless of the setting of the \"keep "
2531 "capabilities\" flag.)  The \"keep capabilities\" value will be reset to 0 on "
2532 "subsequent calls to B<execve>(2)."
2533 msgstr ""
2534 "スレッドの「ケーパビリティ保持」フラグを設定する。\n"
2535 "このフラグは、スレッドの実 UID、実効 UID、保存 set-user-ID のうち少なく\n"
2536 "とも一つが 0 であった状態から、これら全てが 0 以外に変更されたとき、\n"
2537 "スレッドの許可ケーパビリティ集合がクリアされるかどうかを決定する。\n"
2538 "デフォルトでは、このような変更が行われた場合、許可ケーパビリティセット\n"
2539 "はクリアされる。「ケーパビリティ保持」フラグを設定すると、\n"
2540 "許可ケーパビリティセットはクリアされなくなる。\n"
2541 "I<arg2> は 0 (許可ケーパビリティをクリアする) か 1 (許可ケーパビリティ\n"
2542 "を保持する) の どちらかでなければならない。\n"
2543 "(このような ID の変更が行われた場合、「ケーパビリティ保持」フラグの設定\n"
2544 "に関わらず、スレッドのI<実効>ケーパビリティセットは常にクリアされる。)\n"
2545 "B<execve>(2) が呼び出されると、「ケーパビリティ保持」フラグは 0\n"
2546 "にリセットされる。"
2547
2548 #. type: TP
2549 #: build/C/man2/prctl.2:232
2550 #, no-wrap
2551 msgid "B<PR_GET_KEEPCAPS> (since Linux 2.2.18)"
2552 msgstr "B<PR_GET_KEEPCAPS> (Linux 2.2.18 以降)"
2553
2554 #. type: Plain text
2555 #: build/C/man2/prctl.2:236
2556 msgid ""
2557 "Return (as the function result) the current state of the calling threads's "
2558 "\"keep capabilities\" flag."
2559 msgstr ""
2560 "呼び出し元スレッドにおける「ケーパビリティ保持」フラグの 現在の状態を (関数の"
2561 "返り値として) 返す。"
2562
2563 #. type: TP
2564 #: build/C/man2/prctl.2:236
2565 #, no-wrap
2566 msgid "B<PR_SET_NAME> (since Linux 2.6.9)"
2567 msgstr "B<PR_SET_NAME> (Linux 2.6.9 以降)"
2568
2569 #.  TASK_COMM_LEN in include/linux/sched.h
2570 #. type: Plain text
2571 #: build/C/man2/prctl.2:253
2572 #, fuzzy
2573 #| msgid ""
2574 #| "Set the process name for the calling thread, using the value in the "
2575 #| "location pointed to by I<(char\\ *) arg2>.  The name can be up to 16 "
2576 #| "bytes long, and should be null-terminated if it contains fewer bytes."
2577 msgid ""
2578 "Set the name of the calling thread, using the value in the location pointed "
2579 "to by I<(char\\ *) arg2>.  The name can be up to 16 bytes long, and should "
2580 "be null-terminated if it contains fewer bytes.  This is the same attribute "
2581 "that can be set via B<pthread_setname_np>(3)  and retrieved using "
2582 "B<pthread_getname_np>(3).  The attribute is likewise accessible via I</proc/"
2583 "self/task/[tid]/comm>, where I<tid> is the name of the calling thread."
2584 msgstr ""
2585 "呼び出し元スレッドのプロセス名を I<(char\\ *) arg2> が指す場所に格納された値"
2586 "を使って設定する。 名前は最大で 16 バイトであり、 それより少ないバイト数の場"
2587 "合は NULL で終端すべきである。"
2588
2589 #. type: TP
2590 #: build/C/man2/prctl.2:253
2591 #, no-wrap
2592 msgid "B<PR_GET_NAME> (since Linux 2.6.11)"
2593 msgstr "B<PR_GET_NAME> (Linux 2.6.11 以降)"
2594
2595 #. type: Plain text
2596 #: build/C/man2/prctl.2:260
2597 msgid ""
2598 "Return the name of the calling thread, in the buffer pointed to by I<(char\\ "
2599 "*) arg2>.  The buffer should allow space for up to 16 bytes; the returned "
2600 "string will be null-terminated if it is shorter than that."
2601 msgstr ""
2602 "呼び出し元スレッドの名前を I<(char\\ *) arg2> が指す場所に格納して返す。 バッ"
2603 "ファは最大で 16 バイトを格納できるようにすべきである。 返される文字列は、長さ"
2604 "が 16 バイトより短い場合は NULL 終端される。"
2605
2606 #. type: TP
2607 #: build/C/man2/prctl.2:260
2608 #, no-wrap
2609 msgid "B<PR_SET_NO_NEW_PRIVS> (since Linux 3.5)"
2610 msgstr "B<PR_SET_NO_NEW_PRIVS> (Linux 3.5 以降)"
2611
2612 #. type: Plain text
2613 #: build/C/man2/prctl.2:283
2614 msgid ""
2615 "Set the calling process's I<no_new_privs> bit to the value in I<arg2>.  With "
2616 "I<no_new_privs> set to 1, B<execve>(2)  promises not to grant privileges to "
2617 "do anything that could not have been done without the B<execve>(2)  call "
2618 "(for example, rendering the set-user-ID and set-group-ID permission bits, "
2619 "and file capabilities non-functional).  Once set, this bit cannot be unset.  "
2620 "The setting of this bit is inherited by children created by B<fork>(2)  and "
2621 "B<clone>(2), and preserved across B<execve>(2)."
2622 msgstr ""
2623
2624 #. type: Plain text
2625 #: build/C/man2/prctl.2:286
2626 msgid ""
2627 "For more information, see the kernel source file I<Documentation/prctl/"
2628 "no_new_privs.txt>."
2629 msgstr ""
2630
2631 #. type: TP
2632 #: build/C/man2/prctl.2:286
2633 #, no-wrap
2634 msgid "B<PR_GET_NO_NEW_PRIVS> (since Linux 3.5)"
2635 msgstr "B<PR_GET_NO_NEW_PRIVS> (Linux 3.5 以降)"
2636
2637 #. type: Plain text
2638 #: build/C/man2/prctl.2:297
2639 msgid ""
2640 "Return the value of the I<no_new_privs> bit for the current process.  A "
2641 "value of 0 indicates the regular B<execve>(2)  behavior.  A value of 1 "
2642 "indicates B<execve>(2)  will operate in the privilege-restricting mode "
2643 "described above."
2644 msgstr ""
2645
2646 #. type: TP
2647 #: build/C/man2/prctl.2:297
2648 #, no-wrap
2649 msgid "B<PR_SET_PDEATHSIG> (since Linux 2.1.57)"
2650 msgstr "B<PR_SET_PDEATHSIG> (Linux 2.1.57 以降)"
2651
2652 #. type: Plain text
2653 #: build/C/man2/prctl.2:308
2654 msgid ""
2655 "Set the parent process death signal of the calling process to I<arg2> "
2656 "(either a signal value in the range 1..maxsig, or 0 to clear).  This is the "
2657 "signal that the calling process will get when its parent dies.  This value "
2658 "is cleared for the child of a B<fork>(2)  and (since Linux 2.4.36 / 2.6.23)  "
2659 "when executing a set-user-ID or set-group-ID binary."
2660 msgstr ""
2661 "親プロセス死亡シグナル (parent process death signal) を I<arg2> に設定\n"
2662 "する (設定できるシグナル値の範囲は 1..maxsig であり、0 は通知の解除であ\n"
2663 "る)。 呼び出し元プロセスの親プロセスが死んだ際に、ここで設定した値が シ\n"
2664 "グナルとして通知される。この値は B<fork>(2) の子プロセスでは解除される。\n"
2665 "(Linux 2.4.36 以降および 2.6.23 以降では) set-user-ID もしくは\n"
2666 "set-group-ID されたバイナリを実行した場合にも、このフラグは解除される。"
2667
2668 #. type: TP
2669 #: build/C/man2/prctl.2:308
2670 #, no-wrap
2671 msgid "B<PR_GET_PDEATHSIG> (since Linux 2.3.15)"
2672 msgstr "B<PR_GET_PDEATHSIG> (Linux 2.3.15 以降)"
2673
2674 #. type: Plain text
2675 #: build/C/man2/prctl.2:313
2676 msgid ""
2677 "Return the current value of the parent process death signal, in the location "
2678 "pointed to by I<(int\\ *) arg2>."
2679 msgstr ""
2680 "親プロセス死亡シグナルの現在の値を I<(int\\ *) arg2> が指す場所に格納して返"
2681 "す。"
2682
2683 #. type: TP
2684 #: build/C/man2/prctl.2:313
2685 #, no-wrap
2686 msgid "B<PR_SET_PTRACER> (since Linux 3.4)"
2687 msgstr "B<PR_SET_PTRACER> (Linux 3.4 以降)"
2688
2689 #.  commit 2d514487faf188938a4ee4fb3464eeecfbdcf8eb
2690 #.  commit bf06189e4d14641c0148bea16e9dd24943862215
2691 #. type: Plain text
2692 #: build/C/man2/prctl.2:338
2693 msgid ""
2694 "This is meaningful only when the Yama LSM is enabled and in mode 1 "
2695 "(\"restricted ptrace\", visible via I</proc/sys/kernel/yama/ptrace_scope>).  "
2696 "When a \"ptracer process ID\" is passed in I<arg2>, the caller is declaring "
2697 "that the ptracer process can B<ptrace>(2)  the calling process as if it were "
2698 "a direct process ancestor.  Each B<PR_SET_PTRACER> operation replaces the "
2699 "previous \"ptracer process ID\".  Employing B<PR_SET_PTRACER> with I<arg2> "
2700 "set to 0 clears the caller's \"ptracer process ID\".  If I<arg2> is "
2701 "B<PR_SET_PTRACER_ANY,> the ptrace restrictions introduced by Yama are "
2702 "effectively disabled for the calling process."
2703 msgstr ""
2704
2705 #. type: Plain text
2706 #: build/C/man2/prctl.2:341
2707 msgid ""
2708 "For further information, see the kernel source file I<Documentation/security/"
2709 "Yama.txt>."
2710 msgstr ""
2711
2712 #. type: TP
2713 #: build/C/man2/prctl.2:341
2714 #, no-wrap
2715 msgid "B<PR_SET_SECCOMP> (since Linux 2.6.23)"
2716 msgstr "B<PR_SET_SECCOMP> (Linux 2.6.23 以降)"
2717
2718 #.  See http://thread.gmane.org/gmane.linux.kernel/542632
2719 #.  [PATCH 0 of 2] seccomp updates
2720 #.  andrea@cpushare.com
2721 #. type: Plain text
2722 #: build/C/man2/prctl.2:352
2723 msgid ""
2724 "Set the secure computing (seccomp) mode for the calling thread, to limit the "
2725 "available system calls.  The seccomp mode is selected via I<arg2>.  (The "
2726 "seccomp constants are defined in I<E<lt>linux/seccomp.hE<gt>>.)"
2727 msgstr ""
2728
2729 #. type: Plain text
2730 #: build/C/man2/prctl.2:373
2731 #, fuzzy
2732 #| msgid ""
2733 #| "Set the secure computing mode for the calling thread.  In the current "
2734 #| "implementation, I<arg2> must be 1.  After the secure computing mode has "
2735 #| "been set to 1, the only system calls that the thread is permitted to make "
2736 #| "are B<read>(2), B<write>(2), B<_exit>(2), and B<sigreturn>(2).  Other "
2737 #| "system calls result in the delivery of a B<SIGKILL> signal.  Secure "
2738 #| "computing mode is useful for number-crunching applications that may need "
2739 #| "to execute untrusted byte code, perhaps obtained by reading from a pipe "
2740 #| "or socket.  This operation is only available if the kernel is configured "
2741 #| "with CONFIG_SECCOMP enabled."
2742 msgid ""
2743 "With I<arg2> set to B<SECCOMP_MODE_STRICT> the only system calls that the "
2744 "thread is permitted to make are B<read>(2), B<write>(2), B<_exit>(2), and "
2745 "B<sigreturn>(2).  Other system calls result in the delivery of a B<SIGKILL> "
2746 "signal.  Strict secure computing mode is useful for number-crunching "
2747 "applications that may need to execute untrusted byte code, perhaps obtained "
2748 "by reading from a pipe or socket.  This operation is available only if the "
2749 "kernel is configured with B<CONFIG_SECCOMP> enabled."
2750 msgstr ""
2751 "呼び出したスレッドの secure computing モードを設定する。 現在の実装では、 "
2752 "I<arg2> は 1 にしなければならない。 secure computing モードを 1 に設定する"
2753 "と、 そのスレッドが呼び出しを許可されるシステムコールは B<read>(2), B<write>"
2754 "(2), B<_exit>(2), B<sigreturn>(2)  だけになる。 それ以外のシステムコールを呼"
2755 "び出すと、シグナル B<SIGKILL> が配送される。 パイプやソケットから読み込んだ、"
2756 "信頼できないバイトコードを実行する 必要がある大量の演算を行うアプリケーション"
2757 "において、 secure computing モードは役立つ。 この操作は利用できるのは、カーネ"
2758 "ルが CONFIG_SECCOMP を有効にして 作成されている場合だけである。"
2759
2760 #. type: Plain text
2761 #: build/C/man2/prctl.2:388
2762 msgid ""
2763 "With I<arg2> set to B<SECCOMP_MODE_FILTER> (since Linux 3.5)  the system "
2764 "calls allowed are defined by a pointer to a Berkeley Packet Filter passed in "
2765 "I<arg3>.  This argument is a pointer to I<struct sock_fprog>; it can be "
2766 "designed to filter arbitrary system calls and system call arguments.  This "
2767 "mode is available only if the kernel is configured with "
2768 "B<CONFIG_SECCOMP_FILTER> enabled."
2769 msgstr ""
2770
2771 #. type: Plain text
2772 #: build/C/man2/prctl.2:403
2773 msgid ""
2774 "If B<SECCOMP_MODE_FILTER> filters permit B<fork>(2), then the seccomp mode "
2775 "is inherited by children created by B<fork>(2); if B<execve>(2)  is "
2776 "permitted, then the seccomp mode is preserved across B<execve>(2).  If the "
2777 "filters permit B<prctl>()  calls, then additional filters can be added; they "
2778 "are run in order until the first non-allow result is seen."
2779 msgstr ""
2780
2781 #. type: Plain text
2782 #: build/C/man2/prctl.2:406
2783 msgid ""
2784 "For further information, see the kernel source file I<Documentation/prctl/"
2785 "seccomp_filter.txt>."
2786 msgstr ""
2787
2788 #. type: TP
2789 #: build/C/man2/prctl.2:406
2790 #, no-wrap
2791 msgid "B<PR_GET_SECCOMP> (since Linux 2.6.23)"
2792 msgstr "B<PR_GET_SECCOMP> (Linux 2.6.23 以降)"
2793
2794 #. type: Plain text
2795 #: build/C/man2/prctl.2:421
2796 #, fuzzy
2797 #| msgid ""
2798 #| "Return the secure computing mode of the calling thread.  Not very useful "
2799 #| "for the current implementation (mode equals 1), but may be useful for "
2800 #| "other possible future modes: if the caller is not in secure computing "
2801 #| "mode, this operation returns 0; if the caller is in secure computing "
2802 #| "mode, then the B<prctl>()  call will cause a B<SIGKILL> signal to be sent "
2803 #| "to the process.  This operation is only available if the kernel is "
2804 #| "configured with CONFIG_SECCOMP enabled."
2805 msgid ""
2806 "Return the secure computing mode of the calling thread.  If the caller is "
2807 "not in secure computing mode, this operation returns 0; if the caller is in "
2808 "strict secure computing mode, then the B<prctl>()  call will cause a "
2809 "B<SIGKILL> signal to be sent to the process.  If the caller is in filter "
2810 "mode, and this system call is allowed by the seccomp filters, it returns 2.  "
2811 "This operation is available only if the kernel is configured with "
2812 "B<CONFIG_SECCOMP> enabled."
2813 msgstr ""
2814 "呼び出したスレッドの secure computing モードを返す。 現在の実装 (モードは 1 "
2815 "固定) はあまり役に立たないが、 将来他のモードが実装されると役立つようになるか"
2816 "もしれない。 呼び出したスレッドが secure computing モードでなかった場合、 こ"
2817 "の操作は 0 を返す。 呼び出したスレッドが secure computing モードの場合、 "
2818 "B<prctl>()  を呼び出すとシグナル B<SIGKILL> がそのプロセスに送信される。 この"
2819 "操作が利用できるのは、カーネルが CONFIG_SECCOMP を有効にして 作成されている場"
2820 "合だけである。"
2821
2822 #. type: TP
2823 #: build/C/man2/prctl.2:421
2824 #, no-wrap
2825 msgid "B<PR_SET_SECUREBITS> (since Linux 2.6.26)"
2826 msgstr "B<PR_SET_SECUREBITS> (Linux 2.6.26 以降)"
2827
2828 #. type: Plain text
2829 #: build/C/man2/prctl.2:427
2830 msgid ""
2831 "Set the \"securebits\" flags of the calling thread to the value supplied in "
2832 "I<arg2>.  See B<capabilities>(7)."
2833 msgstr ""
2834 "呼び出したスレッドの \"securebits\" フラグを I<arg2> で渡された値に設定す"
2835 "る。 B<capabilities>(7)  参照。"
2836
2837 #. type: TP
2838 #: build/C/man2/prctl.2:427
2839 #, no-wrap
2840 msgid "B<PR_GET_SECUREBITS> (since Linux 2.6.26)"
2841 msgstr "B<PR_GET_SECUREBITS> (Linux 2.6.26 以降)"
2842
2843 #. type: Plain text
2844 #: build/C/man2/prctl.2:433
2845 msgid ""
2846 "Return (as the function result)  the \"securebits\" flags of the calling "
2847 "thread.  See B<capabilities>(7)."
2848 msgstr ""
2849 "呼び出したスレッドの \"securebits\" フラグを (関数の返り値として) 返す。 "
2850 "B<capabilities>(7)  参照。"
2851
2852 #. type: TP
2853 #: build/C/man2/prctl.2:433
2854 #, no-wrap
2855 msgid "B<PR_GET_TID_ADDRESS> (since Linux 3.5)"
2856 msgstr "B<PR_GET_TID_ADDRESS> (Linux 3.5 以降)"
2857
2858 #.  commit 300f786b2683f8bb1ec0afb6e1851183a479c86d
2859 #. type: Plain text
2860 #: build/C/man2/prctl.2:448
2861 msgid ""
2862 "Retrieve the I<clear_child_tid> address set by B<set_tid_address>(2)  and "
2863 "the B<clone>(2)  B<CLONE_CHILD_CLEARTID> flag, in the location pointed to by "
2864 "I<(int\\ **)\\ arg2>.  This feature is available only if the kernel is built "
2865 "with the B<CONFIG_CHECKPOINT_RESTORE> option enabled."
2866 msgstr ""
2867
2868 #. type: TP
2869 #: build/C/man2/prctl.2:448
2870 #, no-wrap
2871 msgid "B<PR_SET_TIMERSLACK> (since Linux 2.6.28)"
2872 msgstr "B<PR_SET_TIMERSLACK> (Linux 2.6.28 以降)"
2873
2874 #.  See https://lwn.net/Articles/369549/
2875 #.  commit 6976675d94042fbd446231d1bd8b7de71a980ada
2876 #.  It seems that it's not possible to set the timer slack to zero;
2877 #.  The minimum value is 1? Seems a little strange.
2878 #. type: Plain text
2879 #: build/C/man2/prctl.2:467
2880 msgid ""
2881 "Set the current timer slack for the calling thread to the nanosecond value "
2882 "supplied in I<arg2>.  If I<arg2> is less than or equal to zero, reset the "
2883 "current timer slack to the thread's default timer slack value.  The timer "
2884 "slack is used by the kernel to group timer expirations for the calling "
2885 "thread that are close to one another; as a consequence, timer expirations "
2886 "for the thread may be up to the specified number of nanoseconds late (but "
2887 "will never expire early).  Grouping timer expirations can help reduce system "
2888 "power consumption by minimizing CPU wake-ups."
2889 msgstr ""
2890
2891 #.  List obtained by grepping for futex usage in glibc source
2892 #. type: Plain text
2893 #: build/C/man2/prctl.2:487
2894 msgid ""
2895 "The timer expirations affected by timer slack are those set by B<select>(2), "
2896 "B<pselect>(2), B<poll>(2), B<ppoll>(2), B<epoll_wait>(2), B<epoll_pwait>(2), "
2897 "B<clock_nanosleep>(2), B<nanosleep>(2), and B<futex>(2)  (and thus the "
2898 "library functions implemented via futexes, including "
2899 "B<pthread_cond_timedwait>(3), B<pthread_mutex_timedlock>(3), "
2900 "B<pthread_rwlock_timedrdlock>(3), B<pthread_rwlock_timedwrlock>(3), and "
2901 "B<sem_timedwait>(3))."
2902 msgstr ""
2903
2904 #. type: Plain text
2905 #: build/C/man2/prctl.2:491
2906 msgid ""
2907 "Timer slack is not applied to threads that are scheduled under a realtime "
2908 "scheduling policy (see B<sched_setscheduler>(2))."
2909 msgstr ""
2910
2911 #. type: Plain text
2912 #: build/C/man2/prctl.2:508
2913 msgid ""
2914 "Each thread has two associated timer slack values: a \"default\" value, and "
2915 "a \"current\" value.  The current value is the one that governs grouping of "
2916 "timer expirations.  When a new thread is created, the two timer slack values "
2917 "are made the same as the current value of the creating thread.  Thereafter, "
2918 "a thread can adjust its current timer slack value via B<PR_SET_TIMERSLACK> "
2919 "(the default value can't be changed).  The timer slack values of I<init> "
2920 "(PID 1), the ancestor of all processes, are 50,000 nanoseconds (50 "
2921 "microseconds).  The timer slack values are preserved across B<execve>(2)."
2922 msgstr ""
2923
2924 #. type: TP
2925 #: build/C/man2/prctl.2:508
2926 #, no-wrap
2927 msgid "B<PR_GET_TIMERSLACK> (since Linux 2.6.28)"
2928 msgstr "B<PR_GET_TIMERSLACK> (Linux 2.6.28 以降)"
2929
2930 #. type: Plain text
2931 #: build/C/man2/prctl.2:511
2932 msgid "Return the current timer slack value of the calling thread."
2933 msgstr ""
2934
2935 #. type: TP
2936 #: build/C/man2/prctl.2:511
2937 #, no-wrap
2938 msgid "B<PR_SET_TIMING> (since Linux 2.6.0-test4)"
2939 msgstr "B<PR_SET_TIMING> (Linux 2.6.0-test4 以降)"
2940
2941 #.  0
2942 #.  1
2943 #.  PR_TIMING_TIMESTAMP doesn't do anything in 2.6.26-rc8,
2944 #.  and looking at the patch history, it appears
2945 #.  that it never did anything.
2946 #. type: Plain text
2947 #: build/C/man2/prctl.2:528
2948 msgid ""
2949 "Set whether to use (normal, traditional) statistical process timing or "
2950 "accurate timestamp-based process timing, by passing B<PR_TIMING_STATISTICAL> "
2951 "or B<PR_TIMING_TIMESTAMP> to I<arg2>.  B<PR_TIMING_TIMESTAMP> is not "
2952 "currently implemented (attempting to set this mode will yield the error "
2953 "B<EINVAL>)."
2954 msgstr ""
2955 "(通常の、伝統的に使われてきた) 統計的なプロセスタイミングを使用するか、\n"
2956 "正確なタイムスタンプに基づくプロセスタイミングを使用するかを設定する。\n"
2957 "I<arg2> に指定できる値は B<PR_TIMING_STATISTICAL> か\n"
2958 "B<PR_TIMING_TIMESTAMP> である。 B<PR_TIMING_TIMESTAMP> は現在のところ実\n"
2959 "装されていない (このモードに設定しようとするとエラー B<EINVAL> が起こる\n"
2960 "ことだろう)。"
2961
2962 #. type: TP
2963 #: build/C/man2/prctl.2:528
2964 #, no-wrap
2965 msgid "B<PR_GET_TIMING> (since Linux 2.6.0-test4)"
2966 msgstr "B<PR_GET_TIMING> (Linux 2.6.0-test4 以降)"
2967
2968 #. type: Plain text
2969 #: build/C/man2/prctl.2:532
2970 msgid ""
2971 "Return (as the function result) which process timing method is currently in "
2972 "use."
2973 msgstr "現在使用中のプロセスタイミングを決める方法を返す。"
2974
2975 #. type: TP
2976 #: build/C/man2/prctl.2:532
2977 #, no-wrap
2978 msgid "B<PR_TASK_PERF_EVENTS_DISABLE> (since Linux 2.6.31)"
2979 msgstr "B<PR_TASK_PERF_EVENTS_DISABLE> (Linux 2.6.31 以降)"
2980
2981 #. type: Plain text
2982 #: build/C/man2/prctl.2:541
2983 msgid ""
2984 "Disable all performance counters attached to the calling process, regardless "
2985 "of whether the counters were created by this process or another process.  "
2986 "Performance counters created by the calling process for other processes are "
2987 "unaffected.  For more information on performance counters, see the Linux "
2988 "kernel source file I<tools/perf/design.txt>."
2989 msgstr ""
2990
2991 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
2992 #. type: Plain text
2993 #: build/C/man2/prctl.2:547
2994 msgid ""
2995 "Originally called B<PR_TASK_PERF_COUNTERS_DISABLE>; renamed (with same "
2996 "numerical value)  in Linux 2.6.32."
2997 msgstr ""
2998 "以前は B<PR_TASK_PERF_COUNTERS_DISABLE> と呼ばれていた。\n"
2999 "Linux 2.6.32 で名前が変更された (数値は同じままである)。"
3000
3001 #. type: TP
3002 #: build/C/man2/prctl.2:547
3003 #, no-wrap
3004 msgid "B<PR_TASK_PERF_EVENTS_ENABLE> (since Linux 2.6.31)"
3005 msgstr "B<PR_TASK_PERF_EVENTS_ENABLE> (Linux 2.6.31 以降)"
3006
3007 #. type: Plain text
3008 #: build/C/man2/prctl.2:552
3009 msgid ""
3010 "The converse of B<PR_TASK_PERF_EVENTS_DISABLE>; enable performance counters "
3011 "attached to the calling process."
3012 msgstr ""
3013
3014 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
3015 #.  commit cdd6c482c9ff9c55475ee7392ec8f672eddb7be6
3016 #. type: Plain text
3017 #: build/C/man2/prctl.2:559
3018 msgid ""
3019 "Originally called B<PR_TASK_PERF_COUNTERS_ENABLE>; renamed in Linux 2.6.32."
3020 msgstr ""
3021 "以前は B<PR_TASK_PERF_COUNTERS_ENABLE> と呼ばれていた。\n"
3022 "Linux 2.6.32 で名前が変更された。"
3023
3024 #. type: TP
3025 #: build/C/man2/prctl.2:559
3026 #, no-wrap
3027 msgid "B<PR_SET_TSC> (since Linux 2.6.26, x86 only)"
3028 msgstr "B<PR_SET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3029
3030 #. type: Plain text
3031 #: build/C/man2/prctl.2:572
3032 msgid ""
3033 "Set the state of the flag determining whether the timestamp counter can be "
3034 "read by the process.  Pass B<PR_TSC_ENABLE> to I<arg2> to allow it to be "
3035 "read, or B<PR_TSC_SIGSEGV> to generate a B<SIGSEGV> when the process tries "
3036 "to read the timestamp counter."
3037 msgstr ""
3038 "そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する フラグの状態を"
3039 "設定する。 読み出しを許可する場合は I<arg2> に B<PR_TSC_ENABLE> を、そのプロ"
3040 "セスがタイムスタンプ・カウンタを読み出そうとした際に B<SIGSEGV> を発生させる"
3041 "場合には B<PR_TSC_SIGSEGV> を渡す。"
3042
3043 #. type: TP
3044 #: build/C/man2/prctl.2:572
3045 #, no-wrap
3046 msgid "B<PR_GET_TSC> (since Linux 2.6.26, x86 only)"
3047 msgstr "B<PR_GET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3048
3049 #. type: Plain text
3050 #: build/C/man2/prctl.2:578
3051 msgid ""
3052 "Return the state of the flag determining whether the timestamp counter can "
3053 "be read, in the location pointed to by I<(int\\ *) arg2>."
3054 msgstr ""
3055 "そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する フラグの状態"
3056 "を I<(int\\ *) arg2> が指す場所に格納して返す。"
3057
3058 #. type: TP
3059 #: build/C/man2/prctl.2:578
3060 #, no-wrap
3061 msgid "B<PR_SET_UNALIGN>"
3062 msgstr "B<PR_SET_UNALIGN>"
3063
3064 #. type: Plain text
3065 #: build/C/man2/prctl.2:588
3066 msgid ""
3067 "(Only on: ia64, since Linux 2.3.48; parisc, since Linux 2.6.15; PowerPC, "
3068 "since Linux 2.6.18; Alpha, since Linux 2.6.22)  Set unaligned access control "
3069 "bits to I<arg2>.  Pass B<PR_UNALIGN_NOPRINT> to silently fix up unaligned "
3070 "user accesses, or B<PR_UNALIGN_SIGBUS> to generate B<SIGBUS> on unaligned "
3071 "user access."
3072 msgstr ""
3073 "(ia64 では Linux 2.3.48 以降; parisc では Linux 2.6.15 以降; PowerPC では "
3074 "Linux 2.6.18 以降; Alpha では Linux 2.6.22 以降; これらのアーキテクチャの"
3075 "み)  unaligned アクセス制御ビットを I<arg2> で指定された値に設定する。 指定で"
3076 "きる値は B<PR_UNALIGN_NOPRINT> (unaligned なユーザアクセスを黙って 修正する) "
3077 "か B<PR_UNALIGN_SIGBUS> (unaligned なユーザアクセスがあった場合 B<SIGBUS> を"
3078 "生成する) である。"
3079
3080 #. type: TP
3081 #: build/C/man2/prctl.2:588
3082 #, no-wrap
3083 msgid "B<PR_GET_UNALIGN>"
3084 msgstr "B<PR_GET_UNALIGN>"
3085
3086 #. type: Plain text
3087 #: build/C/man2/prctl.2:595
3088 msgid ""
3089 "(see B<PR_SET_UNALIGN> for information on versions and architectures)  "
3090 "Return unaligned access control bits, in the location pointed to by I<(int\\ "
3091 "*) arg2>."
3092 msgstr ""
3093 "(バージョンとアーキテクチャの情報は B<PR_SET_UNALIGN> 参照)  unaligned アクセ"
3094 "ス制御ビットの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
3095
3096 #. type: TP
3097 #: build/C/man2/prctl.2:595
3098 #, no-wrap
3099 msgid "B<PR_MCE_KILL> (since Linux 2.6.32)"
3100 msgstr "B<PR_MCE_KILL> (Linux 2.6.32 以降)"
3101
3102 #. type: Plain text
3103 #: build/C/man2/prctl.2:635
3104 msgid ""
3105 "Set the machine check memory corruption kill policy for the current thread.  "
3106 "If I<arg2> is B<PR_MCE_KILL_CLEAR>, clear the thread memory corruption kill "
3107 "policy and use the system-wide default.  (The system-wide default is defined "
3108 "by I</proc/sys/vm/memory_failure_early_kill>; see B<proc>(5).)  If I<arg2> "
3109 "is B<PR_MCE_KILL_SET>, use a thread-specific memory corruption kill policy.  "
3110 "In this case, I<arg3> defines whether the policy is I<early kill> "
3111 "(B<PR_MCE_KILL_EARLY>), I<late kill> (B<PR_MCE_KILL_LATE>), or the system-"
3112 "wide default (B<PR_MCE_KILL_DEFAULT>).  Early kill means that the thread "
3113 "receives a B<SIGBUS> signal as soon as hardware memory corruption is "
3114 "detected inside its address space.  In late kill mode, the process is killed "
3115 "only when it accesses a corrupted page.  See B<sigaction>(2)  for more "
3116 "information on the B<SIGBUS> signal.  The policy is inherited by children.  "
3117 "The remaining unused B<prctl>()  arguments must be zero for future "
3118 "compatibility."
3119 msgstr ""
3120
3121 #. type: TP
3122 #: build/C/man2/prctl.2:635
3123 #, no-wrap
3124 msgid "B<PR_MCE_KILL_GET> (since Linux 2.6.32)"
3125 msgstr "B<PR_MCE_KILL_GET> (Linux 2.6.32 以降)"
3126
3127 #. type: Plain text
3128 #: build/C/man2/prctl.2:641
3129 msgid ""
3130 "Return the current per-process machine check kill policy.  All unused "
3131 "B<prctl>()  arguments must be zero."
3132 msgstr ""
3133
3134 #. type: TP
3135 #: build/C/man2/prctl.2:641
3136 #, no-wrap
3137 msgid "B<PR_SET_MM> (since Linux 3.3)"
3138 msgstr "B<PR_SET_MM> (Linux 3.3 以降)"
3139
3140 #. type: Plain text
3141 #: build/C/man2/prctl.2:661
3142 msgid ""
3143 "Modify certain kernel memory map descriptor fields of the calling process.  "
3144 "Usually these fields are set by the kernel and dynamic loader (see B<ld.so>"
3145 "(8)  for more information) and a regular application should not use this "
3146 "feature.  However, there are cases, such as self-modifying programs, where a "
3147 "program might find it useful to change its own memory map.  This feature is "
3148 "available only if the kernel is built with the B<CONFIG_CHECKPOINT_RESTORE> "
3149 "option enabled.  The calling process must have the B<CAP_SYS_RESOURCE> "
3150 "capability.  The value in I<arg2> is one of the options below, while I<arg3> "
3151 "provides a new value for the option."
3152 msgstr ""
3153
3154 #. type: TP
3155 #: build/C/man2/prctl.2:662
3156 #, no-wrap
3157 msgid "B<PR_SET_MM_START_CODE>"
3158 msgstr "B<PR_SET_MM_START_CODE>"
3159
3160 #. type: Plain text
3161 #: build/C/man2/prctl.2:671
3162 msgid ""
3163 "Set the address above which the program text can run.  The corresponding "
3164 "memory area must be readable and executable, but not writable or sharable "
3165 "(see B<mprotect>(2)  and B<mmap>(2)  for more information)."
3166 msgstr ""
3167
3168 #. type: TP
3169 #: build/C/man2/prctl.2:671
3170 #, no-wrap
3171 msgid "B<PR_SET_MM_END_CODE>"
3172 msgstr "B<PR_SET_MM_END_CODE>"
3173
3174 #. type: Plain text
3175 #: build/C/man2/prctl.2:676
3176 msgid ""
3177 "Set the address below which the program text can run.  The corresponding "
3178 "memory area must be readable and executable, but not writable or sharable."
3179 msgstr ""
3180
3181 #. type: TP
3182 #: build/C/man2/prctl.2:676
3183 #, no-wrap
3184 msgid "B<PR_SET_MM_START_DATA>"
3185 msgstr "B<PR_SET_MM_START_DATA>"
3186
3187 #. type: Plain text
3188 #: build/C/man2/prctl.2:682
3189 msgid ""
3190 "Set the address above which initialized and uninitialized (bss) data are "
3191 "placed.  The corresponding memory area must be readable and writable, but "
3192 "not executable or sharable."
3193 msgstr ""
3194
3195 #. type: TP
3196 #: build/C/man2/prctl.2:682
3197 #, no-wrap
3198 msgid "B<PR_SET_MM_END_DATA>"
3199 msgstr "B<PR_SET_MM_END_DATA>"
3200
3201 #. type: Plain text
3202 #: build/C/man2/prctl.2:688
3203 msgid ""
3204 "Set the address below which initialized and uninitialized (bss) data are "
3205 "placed.  The corresponding memory area must be readable and writable, but "
3206 "not executable or sharable."
3207 msgstr ""
3208
3209 #. type: TP
3210 #: build/C/man2/prctl.2:688
3211 #, no-wrap
3212 msgid "B<PR_SET_MM_START_STACK>"
3213 msgstr "B<PR_SET_MM_START_STACK>"
3214
3215 #. type: Plain text
3216 #: build/C/man2/prctl.2:692
3217 msgid ""
3218 "Set the start address of the stack.  The corresponding memory area must be "
3219 "readable and writable."
3220 msgstr ""
3221
3222 #. type: TP
3223 #: build/C/man2/prctl.2:692
3224 #, no-wrap
3225 msgid "B<PR_SET_MM_START_BRK>"
3226 msgstr "B<PR_SET_MM_START_BRK>"
3227
3228 #. type: Plain text
3229 #: build/C/man2/prctl.2:704
3230 msgid ""
3231 "Set the address above which the program heap can be expanded with B<brk>(2)  "
3232 "call.  The address must be greater than the ending address of the current "
3233 "program data segment.  In addition, the combined size of the resulting heap "
3234 "and the size of the data segment can't exceed the B<RLIMIT_DATA> resource "
3235 "limit (see B<setrlimit>(2))."
3236 msgstr ""
3237
3238 #. type: TP
3239 #: build/C/man2/prctl.2:704
3240 #, no-wrap
3241 msgid "B<PR_SET_MM_BRK>"
3242 msgstr "B<PR_SET_MM_BRK>"
3243
3244 #.  FIXME The following (until ========) is not yet in mainline kernel,
3245 #.  so commented out for the moment.
3246 #.  .TP
3247 #.  .BR PR_SET_MM_ARG_START
3248 #.  Set the address above which the program command line is placed.
3249 #.  .TP
3250 #.  .BR PR_SET_MM_ARG_END
3251 #.  Set the address below which the program command line is placed.
3252 #.  .TP
3253 #.  .BR PR_SET_MM_ENV_START
3254 #.  Set the address above which the program environment is placed.
3255 #.  .TP
3256 #.  .BR PR_SET_MM_ENV_END
3257 #.  Set the address below which the program environment is placed.
3258 #.  .IP
3259 #.  The address passed with
3260 #.  .BR PR_SET_MM_ARG_START ,
3261 #.  .BR PR_SET_MM_ARG_END ,
3262 #.  .BR PR_SET_MM_ENV_START ,
3263 #.  and
3264 #.  .BR PR_SET_MM_ENV_END
3265 #.  should belong to a process stack area.
3266 #.  Thus, the corresponding memory area must be readable, writable, and
3267 #.  (depending on the kernel configuration) have the
3268 #.  .BR MAP_GROWSDOWN
3269 #.  attribute set (see
3270 #.  .BR mmap (2)).
3271 #.  .TP
3272 #.  .BR PR_SET_MM_AUXV
3273 #.  Set a new auxiliary vector.
3274 #.  The
3275 #.  .I arg3
3276 #.  argument should provide the address of the vector.
3277 #.  The
3278 #.  .I arg4
3279 #.  is the size of the vector.
3280 #.  .TP
3281 #.  .BR PR_SET_MM_EXE_FILE
3282 #.  Supersede the
3283 #.  .IR /proc/pid/exe
3284 #.  symbolic link with a new one pointing to a new executable file
3285 #.  identified by the file descriptor provided in
3286 #.  .I arg3
3287 #.  argument.
3288 #.  The file descriptor should be obtained with a regular
3289 #.  .BR open (2)
3290 #.  call.
3291 #.  .IP
3292 #.  To change the symbolic link, one needs to unmap all existing
3293 #.  executable memory areas, including those created by the kernel itself
3294 #.  (for example the kernel usually creates at least one executable
3295 #.  memory area for the ELF
3296 #.  .IR .text
3297 #.  section).
3298 #.  .IP
3299 #.  The second limitation is that such transitions can be done only once
3300 #.  in a process life time.
3301 #.  Any further attempts will be rejected.
3302 #.  This should help system administrators to monitor unusual
3303 #.  symbolic-link transitions over all process running in a system.
3304 #.  ========== END FIXME
3305 #. type: Plain text
3306 #: build/C/man2/prctl.2:773
3307 msgid ""
3308 "Set the current B<brk>(2)  value.  The requirements for the address are the "
3309 "same as for the B<PR_SET_MM_START_BRK> option."
3310 msgstr ""
3311
3312 #. type: Plain text
3313 #: build/C/man2/prctl.2:793
3314 msgid ""
3315 "On success, B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, B<PR_GET_NO_NEW_PRIVS>, "
3316 "B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, B<PR_GET_SECUREBITS>, "
3317 "B<PR_MCE_KILL_GET>, and (if it returns)  B<PR_GET_SECCOMP> return the "
3318 "nonnegative values described above.  All other I<option> values return 0 on "
3319 "success.  On error, -1 is returned, and I<errno> is set appropriately."
3320 msgstr ""
3321 "成功すると、 B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, "
3322 "B<PR_GET_NO_NEW_PRIVS>,\n"
3323 "B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, B<PR_GET_SECUREBITS>,\n"
3324 "B<PR_MCE_KILL_GET>, B<PR_GET_SECCOMP> は上述の負でない値を返す (なお、\n"
3325 "B<PR_GET_SECCOMP> は返らない場合もある)。 I<option> が他の値の場合は\n"
3326 "成功時に 0 を返す。\n"
3327 "エラーの場合、-1 を返し、 I<errno> に適切な値を設定する。"
3328
3329 #. type: Plain text
3330 #: build/C/man2/prctl.2:798
3331 msgid "I<arg2> is an invalid address."
3332 msgstr "I<arg2> が不正なアドレスである。"
3333
3334 #. type: Plain text
3335 #: build/C/man2/prctl.2:803
3336 msgid "The value of I<option> is not recognized."
3337 msgstr "I<option> の値が理解できない。"
3338
3339 #. type: Plain text
3340 #: build/C/man2/prctl.2:815
3341 msgid ""
3342 "I<option> is B<PR_MCE_KILL> or B<PR_MCE_KILL_GET> or B<PR_SET_MM>, and "
3343 "unused B<prctl>()  arguments were not specified as zero."
3344 msgstr ""
3345
3346 #. type: Plain text
3347 #: build/C/man2/prctl.2:820
3348 msgid "I<arg2> is not valid value for this I<option>."
3349 msgstr "I<arg2> が指定された I<option> で有効な値ではない。"
3350
3351 #. type: Plain text
3352 #: build/C/man2/prctl.2:829
3353 msgid ""
3354 "I<option> is B<PR_SET_SECCOMP> or B<PR_GET_SECCOMP>, and the kernel was not "
3355 "configured with B<CONFIG_SECCOMP>."
3356 msgstr ""
3357 "I<option> が B<PR_SET_SECCOMP> か B<PR_GET_SECCOMP> だが、カーネルが "
3358 "B<CONFIG_SECCOMP> を有効にして作成されていなかった。"
3359
3360 #. type: Plain text
3361 #: build/C/man2/prctl.2:835
3362 msgid "I<option> is B<PR_SET_MM>, and one of the following is true"
3363 msgstr ""
3364
3365 #. type: Plain text
3366 #: build/C/man2/prctl.2:841
3367 msgid "I<arg4> or I<arg5> is nonzero;"
3368 msgstr ""
3369
3370 #. type: Plain text
3371 #: build/C/man2/prctl.2:846
3372 msgid ""
3373 "I<arg3> is greater than B<TASK_SIZE> (the limit on the size of the user "
3374 "address space for this architecture);"
3375 msgstr ""
3376
3377 #. type: Plain text
3378 #: build/C/man2/prctl.2:856
3379 msgid ""
3380 "I<arg2> is B<PR_SET_MM_START_CODE>, B<PR_SET_MM_END_CODE>, "
3381 "B<PR_SET_MM_START_DATA>, B<PR_SET_MM_END_DATA>, or B<PR_SET_MM_START_STACK,> "
3382 "and the permissions of the corresponding memory area are not as required;"
3383 msgstr ""
3384
3385 #. type: Plain text
3386 #: build/C/man2/prctl.2:868
3387 msgid ""
3388 "I<arg2> is B<PR_SET_MM_START_BRK> or B<PR_SET_MM_BRK>, and I<arg3> is less "
3389 "than or equal to the end of the data segment or specifies a value that would "
3390 "cause the B<RLIMIT_DATA> resource limit to be exceeded."
3391 msgstr ""
3392
3393 #. type: Plain text
3394 #: build/C/man2/prctl.2:879
3395 msgid ""
3396 "I<option> is B<PR_SET_PTRACER> and I<arg2> is not 0, B<PR_SET_PTRACER_ANY>, "
3397 "or the PID of an existing process."
3398 msgstr ""
3399
3400 #. type: Plain text
3401 #: build/C/man2/prctl.2:891
3402 msgid ""
3403 "I<option> is B<PR_SET_SECUREBITS>, and the caller does not have the "
3404 "B<CAP_SETPCAP> capability, or tried to unset a \"locked\" flag, or tried to "
3405 "set a flag whose corresponding locked flag was set (see B<capabilities>(7))."
3406 msgstr ""
3407 "I<option> が B<PR_SET_SECUREBITS> で、呼び出し元がケーパビリティ "
3408 "B<CAP_SETPCAP> を持っていない。 または、\"locked\" フラグを解除しようとし"
3409 "た。 または、locked フラグがセットされているフラグをセットしようとした "
3410 "(B<capabilities>(7)  参照)。"
3411
3412 #. type: Plain text
3413 #: build/C/man2/prctl.2:901
3414 msgid ""
3415 "I<option> is B<PR_SET_KEEPCAPS>, and the callers's "
3416 "B<SECURE_KEEP_CAPS_LOCKED> flag is set (see B<capabilities>(7))."
3417 msgstr ""
3418 "I<option> が B<PR_SET_KEEPCAPS> で、呼び出し元のフラグ "
3419 "B<SECURE_KEEP_CAPS_LOCKED> がセットされている (B<capabilities>(7)  参照)。"
3420
3421 #. type: Plain text
3422 #: build/C/man2/prctl.2:909
3423 msgid ""
3424 "I<option> is B<PR_CAPBSET_DROP>, and the caller does not have the "
3425 "B<CAP_SETPCAP> capability."
3426 msgstr ""
3427 "I<option> が B<PR_CAPBSET_DROP> で、呼び出し元がケーパビリティ "
3428 "B<CAP_SETPCAP> を持っていない。"
3429
3430 #.  FIXME The following (until ========) is not yet in mainline kernel,
3431 #.  so commented out for the moment.
3432 #.  .TP
3433 #.  .B EACCES
3434 #.  .I option
3435 #.  is
3436 #.  .BR PR_SET_MM ,
3437 #.  and
3438 #.  .I arg3
3439 #.  is
3440 #.  .BR PR_SET_MM_EXE_FILE ,
3441 #.  the file is not executable.
3442 #.  .TP
3443 #.  .B EBUSY
3444 #.  .I option
3445 #.  is
3446 #.  .BR PR_SET_MM ,
3447 #.  .I arg3
3448 #.  is
3449 #.  .BR PR_SET_MM_EXE_FILE ,
3450 #.  and this the second attempt to change the
3451 #.  .I /proc/pid/exe
3452 #.  symbolic link, which is prohibited.
3453 #.  .TP
3454 #.  .B EBADF
3455 #.  .I option
3456 #.  is
3457 #.  .BR PR_SET_MM ,
3458 #.  .I arg3
3459 #.  is
3460 #.  .BR PR_SET_MM_EXE_FILE ,
3461 #.  and the file descriptor passed in
3462 #.  .I arg4
3463 #.  is not valid.
3464 #.  ========== END FIXME
3465 #.  The following can't actually happen, because prctl() in
3466 #.  seccomp mode will cause SIGKILL.
3467 #.  .TP
3468 #.  .B EPERM
3469 #.  .I option
3470 #.  is
3471 #.  .BR PR_SET_SECCOMP ,
3472 #.  and secure computing mode is already 1.
3473 #. type: Plain text
3474 #: build/C/man2/prctl.2:960
3475 msgid ""
3476 "I<option> is B<PR_SET_MM>, and the caller does not have the "
3477 "B<CAP_SYS_RESOURCE> capability."
3478 msgstr ""
3479 "I<option> が B<PR_SET_MM> で、呼び出し元がケーパビリティ\n"
3480 "B<CAP_SYS_RESOURCE> を持っていない。"
3481
3482 #.  The library interface was added in glibc 2.0.6
3483 #. type: Plain text
3484 #: build/C/man2/prctl.2:965
3485 msgid "The B<prctl>()  system call was introduced in Linux 2.1.57."
3486 msgstr "B<prctl>()  システムコールは Linux 2.1.57 で導入された。"
3487
3488 #. type: Plain text
3489 #: build/C/man2/prctl.2:972
3490 msgid ""
3491 "This call is Linux-specific.  IRIX has a B<prctl>()  system call (also "
3492 "introduced in Linux 2.1.44 as irix_prctl on the MIPS architecture), with "
3493 "prototype"
3494 msgstr ""
3495 "このコールは Linux 特有である。 IRIX には B<prctl>()  システム・コールがある"
3496 "が (MIPS アーキテクチャにおいて irix_prctl として Linux 2.1.44 で同様に導入さ"
3497 "れた)、 そのプロトタイプは"
3498
3499 #. type: Plain text
3500 #: build/C/man2/prctl.2:974
3501 msgid "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
3502 msgstr "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
3503
3504 #. type: Plain text
3505 #: build/C/man2/prctl.2:979
3506 msgid ""
3507 "and options to get the maximum number of processes per user, get the maximum "
3508 "number of processors the calling process can use, find out whether a "
3509 "specified process is currently blocked, get or set the maximum stack size, "
3510 "and so on."
3511 msgstr ""
3512 "である。ユーザー当りのプロセス最大数を取得するオプション、 プロセスの使用でき"
3513 "る最大プロッサー数を取得するオプション、 現在特定のプロセスが停止(block)させ"
3514 "られているかどうか調べるオプション、 スタックサイズの最大値の取得や設定を行な"
3515 "うオプションなどがある。"
3516
3517 #. type: Plain text
3518 #: build/C/man2/prctl.2:982
3519 msgid "B<signal>(2), B<core>(5)"
3520 msgstr "B<signal>(2), B<core>(5)"
3521
3522 #. type: TH
3523 #: build/C/man3/profil.3:28
3524 #, no-wrap
3525 msgid "PROFIL"
3526 msgstr "PROFIL"
3527
3528 #. type: Plain text
3529 #: build/C/man3/profil.3:31
3530 msgid "profil - execution time profile"
3531 msgstr "profil - 実行時間プロファイル (profile)"
3532
3533 #. type: Plain text
3534 #: build/C/man3/profil.3:34
3535 #, no-wrap
3536 msgid "B<#include E<lt>unistd.hE<gt>>\n"
3537 msgstr "B<#include E<lt>unistd.hE<gt>>\n"
3538
3539 #. type: Plain text
3540 #: build/C/man3/profil.3:37
3541 #, no-wrap
3542 msgid ""
3543 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<,>\n"
3544 "B<           size_t >I<offset>B<, unsigned int >I<scale>B<);>\n"
3545 msgstr ""
3546 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<,>\n"
3547 "B<           size_t >I<offset>B<, unsigned int >I<scale>B<);>\n"
3548
3549 #. type: Plain text
3550 #: build/C/man3/profil.3:46
3551 msgid ""
3552 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
3553 msgstr ""
3554 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
3555
3556 #. type: Plain text
3557 #: build/C/man3/profil.3:68
3558 msgid ""
3559 "This routine provides a means to find out in what areas your program spends "
3560 "most of its time.  The argument I<buf> points to I<bufsiz> bytes of core.  "
3561 "Every virtual 10 milliseconds, the user's program counter (PC)  is examined: "
3562 "I<offset> is subtracted and the result is multiplied by I<scale> and divided "
3563 "by 65536.  If the resulting value is less than I<bufsiz>, then the "
3564 "corresponding entry in I<buf> is incremented.  If I<buf> is NULL, profiling "
3565 "is disabled."
3566 msgstr ""
3567 "このルーティンはプログラムのどこの部分で時間を費やしているかを調べる 手段を提"
3568 "供する。引き数 I<buf> は I<bufsiz> バイトのメモリを指している。仮想の 10 ミリ"
3569 "秒ごとに、ユーザーの プログラム・カウンター (PC) が検査される: I<offset> が引"
3570 "かれ、その結果が I<scale> 倍され 65536 で割られる。 結果が I<bufsiz> より小さ"
3571 "い場合は I<buf> の対応するエントリがインクリメントされる。 I<buf> が NULL な"
3572 "らば、プロファイル (profile) は無効にされる。"
3573
3574 #. type: Plain text
3575 #: build/C/man3/profil.3:70
3576 msgid "Zero is always returned."
3577 msgstr "常に 0 が返される。"
3578
3579 #. type: Plain text
3580 #: build/C/man3/profil.3:72
3581 msgid "Similar to a call in SVr4 (but not POSIX.1-2001)."
3582 msgstr "SVr4 のコールに似ている (しかし POSIX.1-2001 ではない)。"
3583
3584 #. type: Plain text
3585 #: build/C/man3/profil.3:78
3586 msgid ""
3587 "B<profil>()  cannot be used on a program that also uses B<ITIMER_PROF> "
3588 "interval timers (see B<setitimer>(2))."
3589 msgstr ""
3590 "B<profil>()  は B<ITIMER_PROF> インターバル・タイマーも使用しているプログラム"
3591 "では使用できない (B<setitimer>(2)  参照)。"
3592
3593 #. type: Plain text
3594 #: build/C/man3/profil.3:81
3595 msgid ""
3596 "True kernel profiling provides more accurate results.  Libc 4.4 contained a "
3597 "kernel patch providing a system call profil."
3598 msgstr ""
3599 "本当のカーネル・プロファイルはより正確な結果を与える。 libc 4.4 にはシステム"
3600 "コール profil を提供するための カーネルパッチが含まれていた。"
3601
3602 #. type: Plain text
3603 #: build/C/man3/profil.3:86
3604 msgid "B<gprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
3605 msgstr "B<gprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
3606
3607 #. type: TH
3608 #: build/C/man3/psignal.3:30
3609 #, no-wrap
3610 msgid "PSIGNAL"
3611 msgstr "PSIGNAL"
3612
3613 #. type: TH
3614 #: build/C/man3/psignal.3:30
3615 #, no-wrap
3616 msgid "2010-10-06"
3617 msgstr "2010-10-06"
3618
3619 #. type: TH
3620 #: build/C/man3/psignal.3:30 build/C/man3/raise.3:29
3621 #: build/C/man7/sigevent.7:26
3622 #, no-wrap
3623 msgid "GNU"
3624 msgstr "GNU"
3625
3626 #. type: Plain text
3627 #: build/C/man3/psignal.3:33
3628 msgid "psignal, psiginfo - print signal message"
3629 msgstr "psignal, psiginfo - シグナルメッセージを表示"
3630
3631 #. type: Plain text
3632 #: build/C/man3/psignal.3:39
3633 #, no-wrap
3634 msgid ""
3635 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
3636 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
3637 msgstr ""
3638 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
3639 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
3640
3641 #. type: Plain text
3642 #: build/C/man3/psignal.3:41
3643 #, no-wrap
3644 msgid "B<extern const char *const >I<sys_siglist>B<[];>\n"
3645 msgstr "B<extern const char *const >I<sys_siglist>B<[];>\n"
3646
3647 #. type: Plain text
3648 #: build/C/man3/psignal.3:50
3649 msgid "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
3650 msgstr "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
3651
3652 #. type: Plain text
3653 #: build/C/man3/psignal.3:53
3654 msgid ""
3655 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
3656 "200809L"
3657 msgstr ""
3658 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
3659 "200809L"
3660
3661 #. type: Plain text
3662 #: build/C/man3/psignal.3:56
3663 msgid "I<sys_siglist>: _BSD_SOURCE"
3664 msgstr "I<sys_siglist>: _BSD_SOURCE"
3665
3666 #. type: Plain text
3667 #: build/C/man3/psignal.3:65
3668 msgid ""
3669 "The B<psignal>()  function displays a message on I<stderr> consisting of the "
3670 "string I<s>, a colon, a space, a string describing the signal number I<sig>, "
3671 "and a trailing newline.  If the string I<s> is NULL or empty, the colon and "
3672 "space are omitted.  If I<sig> is invalid, the message displayed will "
3673 "indicate an unknown signal."
3674 msgstr ""
3675 "B<psignal>() 関数は、文字列 I<s>、コロン、スペース、\n"
3676 "シグナル番号 I<sig> を説明する文字列、終端の改行から\n"
3677 "構成されるメッセージを I<stderr> に表示する。\n"
3678 "文字列 I<s> が NULL か空の場合、コロンとスペースは省略される。\n"
3679 "I<sig> が不正ならば、表示される メッセージは未知のシグナルを示す。"
3680
3681 #. type: Plain text
3682 #: build/C/man3/psignal.3:86
3683 msgid ""
3684 "The B<psiginfo>()  function is like B<psignal>(), except that it displays "
3685 "information about the signal described by I<pinfo>, which should point to a "
3686 "valid I<siginfo_t> structure.  As well as the signal description, B<psiginfo>"
3687 "()  displays information about the origin of the signal, and other "
3688 "information relevant to the signal (e.g., the relevant memory address for "
3689 "hardware-generated signals, the child process ID for B<SIGCHLD>, and the "
3690 "user ID and process ID of the sender, for signals set using B<kill>(2)  or "
3691 "B<sigqueue>(3))."
3692 msgstr ""
3693 "B<psiginfo>() 関数は B<psignal>() と同じだが、 I<pinfo> に書かれたシグナルの"
3694 "情報を表示する点が異なる。 I<pinfo> は有効な I<siginfo_t> 構造体を指している"
3695 "必要がある。 B<psiginfo>() は、 シグナルの説明だけでなく、 シグナルの送信元や"
3696 "そのシグナルに関連するその他の情報も表示する (例えば、ハードウェアが発生した"
3697 "シグナルの関連メモリアドレス、 B<SIGCHLD> の子プロセス ID、 I<kill>(2) や "
3698 "B<sigqueue>(3) を使って送信されたシグナルの送信元プロセスのユーザ ID とプロセ"
3699 "ス ID など)。"
3700
3701 #. type: Plain text
3702 #: build/C/man3/psignal.3:89
3703 msgid ""
3704 "The array I<sys_siglist> holds the signal description strings indexed by "
3705 "signal number."
3706 msgstr ""
3707 "配列 I<sys_siglist> はシグナルを説明する文字列を保持しており、 配列へのアクセ"
3708 "スにはシグナル番号を添え字として用いる事ができる。"
3709
3710 #. type: Plain text
3711 #: build/C/man3/psignal.3:95
3712 msgid "The B<psignal>()  and B<psiginfo>()  functions return no value."
3713 msgstr "関数 B<psignal>() と B<psiginfo>() は、値を返さない。"
3714
3715 #. type: Plain text
3716 #: build/C/man3/psignal.3:99
3717 msgid "The B<psiginfo>()  function was added to glibc in version 2.10."
3718 msgstr "B<psiginfo>() 関数は glibc バージョン 2.10 で追加された。"
3719
3720 #. type: Plain text
3721 #: build/C/man3/psignal.3:101
3722 msgid "POSIX.1-2008, 4.3BSD."
3723 msgstr "POSIX.1-2008, 4.3BSD."
3724
3725 #. type: Plain text
3726 #: build/C/man3/psignal.3:105
3727 msgid "In glibc versions up to 2.12, B<psiginfo>()  had the following bugs:"
3728 msgstr ""
3729 "バージョン 2.12 までの glibc では B<psiginfo>() には以下のバグがあった。"
3730
3731 #.  FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=12107
3732 #.  Reportedly now fixed; check glibc 2.13
3733 #. type: Plain text
3734 #: build/C/man3/psignal.3:109
3735 msgid "In some circumstances, a trailing newline is not printed."
3736 msgstr "特定の状況で、末尾の改行が出力されない。"
3737
3738 #.  FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=12108
3739 #.  Reportedly now fixed; check glibc 2.13
3740 #. type: Plain text
3741 #: build/C/man3/psignal.3:113
3742 msgid "Additional details are not displayed for real-time signals."
3743 msgstr "リアルタイムシグナルの場合に、追加の詳細情報が表示されない。"
3744
3745 #. type: Plain text
3746 #: build/C/man3/psignal.3:118
3747 msgid "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
3748 msgstr "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
3749
3750 #. type: TH
3751 #: build/C/man3/raise.3:29
3752 #, no-wrap
3753 msgid "RAISE"
3754 msgstr "RAISE"
3755
3756 #. type: TH
3757 #: build/C/man3/raise.3:29
3758 #, no-wrap
3759 msgid "2012-04-20"
3760 msgstr "2012-04-20"
3761
3762 #. type: Plain text
3763 #: build/C/man3/raise.3:32
3764 msgid "raise - send a signal to the caller"
3765 msgstr "raise - 呼び出し元にシグナルを送る"
3766
3767 #. type: Plain text
3768 #: build/C/man3/raise.3:37
3769 #, no-wrap
3770 msgid "B<int raise(int >I<sig>B<);>\n"
3771 msgstr "B<int raise(int >I<sig>B<);>\n"
3772
3773 #. type: Plain text
3774 #: build/C/man3/raise.3:43
3775 msgid ""
3776 "The B<raise>()  function sends a signal to the calling process or thread.  "
3777 "In a single-threaded program it is equivalent to"
3778 msgstr ""
3779 "B<raise>()  関数は、呼び出し元のプロセスもしくはスレッドにシグナルを送る。 シ"
3780 "ングルスレッドのプログラムでは、以下と等価である。"
3781
3782 #. type: Plain text
3783 #: build/C/man3/raise.3:47
3784 #, no-wrap
3785 msgid "kill(getpid(), sig);\n"
3786 msgstr "kill(getpid(), sig);\n"
3787
3788 #. type: Plain text
3789 #: build/C/man3/raise.3:51
3790 msgid "In a multithreaded program it is equivalent to"
3791 msgstr "マルチスレッドのプログラムでは、以下と等価である。"
3792
3793 #. type: Plain text
3794 #: build/C/man3/raise.3:55
3795 #, no-wrap
3796 msgid "pthread_kill(pthread_self(), sig);\n"
3797 msgstr "pthread_kill(pthread_self(), sig);\n"
3798
3799 #. type: Plain text
3800 #: build/C/man3/raise.3:61
3801 msgid ""
3802 "If the signal causes a handler to be called, B<raise>()  will return only "
3803 "after the signal handler has returned."
3804 msgstr ""
3805 "シグナルに起因してシグナル・ハンドラが呼び出される場合には、 B<raise>()  が返"
3806 "るのは必ずシグナル・ハンドラが返った後になる。"
3807
3808 #. type: Plain text
3809 #: build/C/man3/raise.3:64
3810 msgid "B<raise>()  returns 0 on success, and nonzero for failure."
3811 msgstr "成功した場合は 0 を、失敗した場合は 0 以外の値を返す。"
3812
3813 #. type: Plain text
3814 #: build/C/man3/raise.3:66 build/C/man2/signal.2:112
3815 msgid "C89, C99, POSIX.1-2001."
3816 msgstr "C89, C99, POSIX.1-2001."
3817
3818 #.  2.3.2 used the obsolete tkill(), if available.
3819 #. type: Plain text
3820 #: build/C/man3/raise.3:77
3821 msgid ""
3822 "Since version 2.3.3, glibc implements B<raise>()  by calling B<tgkill>(2), "
3823 "if the kernel supports that system call.  Older glibc versions implemented "
3824 "B<raise>()  using B<kill>(2)."
3825 msgstr ""
3826 "glibc バージョン 2.3.3 以降では、カーネルが B<tgkill>(2) システムコール\n"
3827 "をサポートしている場合はB<raise>() は B<tgkill>(2) を使って実装されて\n"
3828 "いる。古いバージョンの glibc では、B<raise>() は B<kill>(2) を使って\n"
3829 "実装されている。"
3830
3831 #. type: Plain text
3832 #: build/C/man3/raise.3:84
3833 msgid ""
3834 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
3835 "B<signal>(7)"
3836 msgstr ""
3837 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
3838 "B<signal>(7)"
3839
3840 #. type: TH
3841 #: build/C/man2/rt_sigqueueinfo.2:25
3842 #, no-wrap
3843 msgid "RT_SIGQUEUEINFO"
3844 msgstr "RT_SIGQUEUEINFO"
3845
3846 #. type: TH
3847 #: build/C/man2/rt_sigqueueinfo.2:25 build/C/man2/sgetmask.2:26
3848 #: build/C/man2/tkill.2:29
3849 #, no-wrap
3850 msgid "2012-07-13"
3851 msgstr "2012-07-13"
3852
3853 #. type: Plain text
3854 #: build/C/man2/rt_sigqueueinfo.2:28
3855 msgid "rt_sigqueueinfo, rt_tgsigqueueinfo - queue a signal and data"
3856 msgstr ""
3857
3858 #. type: Plain text
3859 #: build/C/man2/rt_sigqueueinfo.2:31
3860 #, no-wrap
3861 msgid "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
3862 msgstr "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
3863
3864 #. type: Plain text
3865 #: build/C/man2/rt_sigqueueinfo.2:34
3866 #, no-wrap
3867 msgid ""
3868 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
3869 "B<                      siginfo_t *>I<uinfo>B<);>\n"
3870 msgstr ""
3871 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
3872 "B<                      siginfo_t *>I<uinfo>B<);>\n"
3873
3874 #. type: Plain text
3875 #: build/C/man2/rt_sigqueueinfo.2:38 build/C/man2/sgetmask.2:36
3876 #: build/C/man2/tkill.2:41
3877 msgid "I<Note>: There are no glibc wrappers for these system calls; see NOTES."
3878 msgstr ""
3879 "I<注>: これらのシステムコールには、glibc のラッパー関数はない。「注意」の節を"
3880 "参照。"
3881
3882 #. type: Plain text
3883 #: build/C/man2/rt_sigqueueinfo.2:50
3884 msgid ""
3885 "The B<rt_sigqueueinfo>()  and B<rt_tgsigqueueinfo>()  system calls are the "
3886 "low-level interfaces used to send a signal plus data to a process or "
3887 "thread.  The receiver of the signal can obtain the accompanying data by "
3888 "establishing a signal handler with the B<sigaction>(2)  B<SA_SIGINFO> flag."
3889 msgstr ""
3890
3891 #. type: Plain text
3892 #: build/C/man2/rt_sigqueueinfo.2:56
3893 msgid ""
3894 "These system calls are not intended for direct application use; they are "
3895 "provided to allow the implementation of B<sigqueue>(3)  and "
3896 "B<pthread_sigqueue>(3)."
3897 msgstr ""
3898
3899 #. type: Plain text
3900 #: build/C/man2/rt_sigqueueinfo.2:68
3901 msgid ""
3902 "The B<rt_sigqueueinfo>()  system call sends the signal I<sig> to the thread "
3903 "group with the ID I<tgid>.  (The term \"thread group\" is synonymous with "
3904 "\"process\", and I<tid> corresponds to the traditional UNIX process ID.)  "
3905 "The signal will be delivered to an arbitrary member of the thread group (i."
3906 "e., one of the threads that is not currently blocking the signal)."
3907 msgstr ""
3908
3909 #. type: Plain text
3910 #: build/C/man2/rt_sigqueueinfo.2:79
3911 msgid ""
3912 "The I<uinfo> argument specifies the data to accompany the signal.  This "
3913 "argument is a pointer to a structure of type I<siginfo_t>, described in "
3914 "B<sigaction>(2)  (and defined by including I<E<lt>sigaction.hE<gt>>).  The "
3915 "caller should set the following fields in this structure:"
3916 msgstr ""
3917
3918 #. type: TP
3919 #: build/C/man2/rt_sigqueueinfo.2:79 build/C/man7/sigevent.7:88
3920 #: build/C/man2/wait.2:314
3921 #, no-wrap
3922 msgid "I<si_code>"
3923 msgstr "I<si_code>"
3924
3925 #.  tkill(2) or
3926 #. type: Plain text
3927 #: build/C/man2/rt_sigqueueinfo.2:95
3928 msgid ""
3929 "This must be one of the B<SI_*> codes in the Linux kernel source file "
3930 "I<include/asm-generic/siginfo.h>, with the restriction that the code must be "
3931 "negative (i.e., cannot be B<SI_USER>, which is used by the kernel to "
3932 "indicate a signal sent by B<kill>(2))  and cannot (since Linux 2.6.39) be "
3933 "B<SI_TKILL> (which is used by the kernel to indicate a signal sent using "
3934 "B<tgkill>(2))."
3935 msgstr ""
3936
3937 #. type: TP
3938 #: build/C/man2/rt_sigqueueinfo.2:95 build/C/man2/wait.2:293
3939 #, no-wrap
3940 msgid "I<si_pid>"
3941 msgstr "I<si_pid>"
3942
3943 #. type: Plain text
3944 #: build/C/man2/rt_sigqueueinfo.2:99
3945 msgid ""
3946 "This should be set to a process ID, typically the process ID of the sender."
3947 msgstr ""
3948
3949 #. type: TP
3950 #: build/C/man2/rt_sigqueueinfo.2:99 build/C/man2/wait.2:296
3951 #, no-wrap
3952 msgid "I<si_uid>"
3953 msgstr "I<si_uid>"
3954
3955 #. type: Plain text
3956 #: build/C/man2/rt_sigqueueinfo.2:103
3957 msgid ""
3958 "This should be set to a user ID, typically the real user ID of the sender."
3959 msgstr ""
3960
3961 #. type: TP
3962 #: build/C/man2/rt_sigqueueinfo.2:103 build/C/man7/sigevent.7:96
3963 #, no-wrap
3964 msgid "I<si_value>"
3965 msgstr "I<si_value>"
3966
3967 #. type: Plain text
3968 #: build/C/man2/rt_sigqueueinfo.2:110
3969 msgid ""
3970 "This field contains the user data to accompany the signal.  For more "
3971 "information, see the description of the last (I<union sigval>)  argument of "
3972 "B<sigqueue>(3)."
3973 msgstr ""
3974
3975 #. type: Plain text
3976 #: build/C/man2/rt_sigqueueinfo.2:117
3977 msgid ""
3978 "Internally, the kernel sets the I<si_signo> field to the value specified in "
3979 "I<sig>, so that the receiver of the signal can also obtain the signal number "
3980 "via that field."
3981 msgstr ""
3982
3983 #. type: Plain text
3984 #: build/C/man2/rt_sigqueueinfo.2:129
3985 msgid ""
3986 "The B<rt_tgsigqueueinfo>()  system call is like B<rt_sigqueueinfo>(), but "
3987 "sends the signal and data to the single thread specified by the combination "
3988 "of I<tgid>, a thread group ID, and I<tid>, a thread in that thread group."
3989 msgstr ""
3990
3991 #. type: Plain text
3992 #: build/C/man2/rt_sigqueueinfo.2:134
3993 msgid ""
3994 "On success, these system calls return 0.  On error, they return -1 and "
3995 "I<errno> is set to indicate the error."
3996 msgstr ""
3997
3998 #. type: TP
3999 #: build/C/man2/rt_sigqueueinfo.2:135 build/C/man3/sigqueue.3:92
4000 #: build/C/man2/sigwaitinfo.2:115 build/C/man2/timer_create.2:176
4001 #, no-wrap
4002 msgid "B<EAGAIN>"
4003 msgstr "B<EAGAIN>"
4004
4005 #. type: Plain text
4006 #: build/C/man2/rt_sigqueueinfo.2:141 build/C/man3/sigqueue.3:98
4007 msgid ""
4008 "The limit of signals which may be queued has been reached.  (See B<signal>"
4009 "(7)  for further information.)"
4010 msgstr ""
4011 "待ち行列に入れられるシグナルの最大数に達した (より詳しい情報は B<signal>(7)  "
4012 "を参照すること)。"
4013
4014 #. type: Plain text
4015 #: build/C/man2/rt_sigqueueinfo.2:148
4016 msgid "I<sig>, I<tgid>, or I<tid> was invalid."
4017 msgstr ""
4018
4019 #. type: Plain text
4020 #: build/C/man2/rt_sigqueueinfo.2:156
4021 msgid ""
4022 "The caller does not have permission to send the signal to the target.  For "
4023 "the required permissions, see B<kill>(2).  Or: I<uinfo-E<gt>si_code> is "
4024 "invalid."
4025 msgstr ""
4026
4027 #. type: Plain text
4028 #: build/C/man2/rt_sigqueueinfo.2:162
4029 msgid "B<rt_sigqueueinfo>(): No thread group matching I<tgid> was found."
4030 msgstr ""
4031
4032 #. type: Plain text
4033 #: build/C/man2/rt_sigqueueinfo.2:169
4034 msgid "B<rt_tgsigqueinfo>(): No thread matching I<tgid> and I<tid> was found."
4035 msgstr ""
4036
4037 #. type: Plain text
4038 #: build/C/man2/rt_sigqueueinfo.2:176
4039 msgid ""
4040 "The B<rt_sigqueueinfo>()  system call was added to Linux in version 2.2.  "
4041 "The B<rt_tgsigqueueinfo>()  system call was added to Linux in version 2.6.31."
4042 msgstr ""
4043
4044 #. type: Plain text
4045 #: build/C/man2/rt_sigqueueinfo.2:178 build/C/man2/sgetmask.2:68
4046 #: build/C/man2/timerfd_create.2:373
4047 msgid "These system calls are Linux-specific."
4048 msgstr "これらのシステムコールは Linux 固有である。"
4049
4050 #. type: Plain text
4051 #: build/C/man2/rt_sigqueueinfo.2:183
4052 msgid ""
4053 "Since these system calls are not intended for application use, there are no "
4054 "glibc wrapper functions; use B<syscall>(2)  in the unlikely case that you "
4055 "want to call them directly."
4056 msgstr ""
4057 "これらのシステムコールはアプリケーションでの使用を目的として用意されたわけで"
4058 "はないので、 glibc のラッパー関数は存在しない。おそらくないと思うが、このシス"
4059 "テムコールを直接呼び出したい場合は B<syscall>(2) を使うこと。"
4060
4061 #. type: Plain text
4062 #: build/C/man2/rt_sigqueueinfo.2:188
4063 msgid ""
4064 "As with B<kill>(2), the null signal (0) can be used to check if the "
4065 "specified process or thread exists."
4066 msgstr ""
4067
4068 #. type: Plain text
4069 #: build/C/man2/rt_sigqueueinfo.2:196
4070 msgid ""
4071 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4072 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4073 msgstr ""
4074 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4075 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4076
4077 #. type: TH
4078 #: build/C/man2/s390_runtime_instr.2:25
4079 #, no-wrap
4080 msgid "S390_RUNTIME_INSTR"
4081 msgstr ""
4082
4083 #. type: TH
4084 #: build/C/man2/s390_runtime_instr.2:25
4085 #, no-wrap
4086 msgid "2012-12-17"
4087 msgstr "2012-12-17"
4088
4089 #. type: Plain text
4090 #: build/C/man2/s390_runtime_instr.2:28
4091 msgid "s390_runtime_instr - enable/disable s390 CPU run-time instrumentation"
4092 msgstr ""
4093
4094 #. type: Plain text
4095 #: build/C/man2/s390_runtime_instr.2:31
4096 #, no-wrap
4097 msgid "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4098 msgstr "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4099
4100 #. type: Plain text
4101 #: build/C/man2/s390_runtime_instr.2:33
4102 #, no-wrap
4103 msgid "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4104 msgstr "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4105
4106 #. type: Plain text
4107 #: build/C/man2/s390_runtime_instr.2:39
4108 msgid ""
4109 "The B<s390_runtime_instr>()  system call starts or stops CPU run-time "
4110 "instrumentation for the calling thread."
4111 msgstr ""
4112
4113 #. type: Plain text
4114 #: build/C/man2/s390_runtime_instr.2:47
4115 msgid ""
4116 "The I<command> argument controls whether run-time instrumentation is started "
4117 "(B<S390_RUNTIME_INSTR_START>, 1) or stopped (B<S390_RUNTIME_INSTR_STOP>, 2) "
4118 "for the calling thread."
4119 msgstr ""
4120
4121 #. type: Plain text
4122 #: build/C/man2/s390_runtime_instr.2:54
4123 msgid ""
4124 "The I<signum> argument specifies the number of a real-time signal.  The real-"
4125 "time signal is sent to the thread if the run-time instrumentation buffer is "
4126 "full or if the run-time-instrumentation-halted interrupt occurred."
4127 msgstr ""
4128
4129 #. type: Plain text
4130 #: build/C/man2/s390_runtime_instr.2:65
4131 msgid ""
4132 "On success, B<s390_runtime_instr>()  returns 0 and enables the thread for "
4133 "run-time instrumentation by assigning the thread a default run-time "
4134 "instrumentation control block.  The caller can then read and modify the "
4135 "control block and start the run-time instrumentation.  On error, -1 is "
4136 "returned and I<errno> is set to one of the error codes listed below."
4137 msgstr ""
4138
4139 #. type: Plain text
4140 #: build/C/man2/s390_runtime_instr.2:73
4141 msgid ""
4142 "The value specified in I<command> is not a valid command or the value "
4143 "specified in I<signum> is not a real-time signal number."
4144 msgstr ""
4145
4146 #. type: Plain text
4147 #: build/C/man2/s390_runtime_instr.2:76
4148 msgid ""
4149 "Allocating memory for the run-time instrumentation control block failed."
4150 msgstr ""
4151
4152 #. type: TP
4153 #: build/C/man2/s390_runtime_instr.2:76
4154 #, no-wrap
4155 msgid "B<EOPNOTSUPP>"
4156 msgstr ""
4157
4158 #. type: Plain text
4159 #: build/C/man2/s390_runtime_instr.2:79
4160 msgid "The run-time instrumentation facility is not available."
4161 msgstr ""
4162
4163 #. type: Plain text
4164 #: build/C/man2/s390_runtime_instr.2:81
4165 msgid "This system call is available since Linux 3.7."
4166 msgstr "このシステムコールは Linux 3.7 で初めて登場した。"
4167
4168 #. type: Plain text
4169 #: build/C/man2/s390_runtime_instr.2:84
4170 msgid ""
4171 "This Linux-specific system call is available only on the s390 architecture.  "
4172 "The run-time instrumentation facility is available beginning with System z "
4173 "EC12."
4174 msgstr ""
4175
4176 #. type: Plain text
4177 #: build/C/man2/s390_runtime_instr.2:88
4178 msgid ""
4179 "Glibc does not provide a wrapper for this system call, use B<syscall>(2)  to "
4180 "call it."
4181 msgstr ""
4182 "glibc はこのシステムコールに対するラッパー関数を提供していない。 B<syscall>"
4183 "(2) を使用すること。"
4184
4185 #. type: Plain text
4186 #: build/C/man2/s390_runtime_instr.2:91
4187 msgid "B<syscall>(2), B<signal>(7)"
4188 msgstr "B<syscall>(2), B<signal>(7)"
4189
4190 #. type: TH
4191 #: build/C/man2/sgetmask.2:26
4192 #, no-wrap
4193 msgid "SGETMASK"
4194 msgstr "SGETMASK"
4195
4196 #. type: Plain text
4197 #: build/C/man2/sgetmask.2:29
4198 msgid "sgetmask, ssetmask - manipulation of signal mask (obsolete)"
4199 msgstr "sgetmask, ssetmask - シグナルマスクの操作 (廃止予定)"
4200
4201 #. type: Plain text
4202 #: build/C/man2/sgetmask.2:31
4203 msgid "B<long sgetmask(void);>"
4204 msgstr "B<long sgetmask(void);>"
4205
4206 #. type: Plain text
4207 #: build/C/man2/sgetmask.2:33
4208 msgid "B<long ssetmask(long >I<newmask>B<);>"
4209 msgstr "B<long ssetmask(long >I<newmask>B<);>"
4210
4211 #. type: Plain text
4212 #: build/C/man2/sgetmask.2:42
4213 msgid ""
4214 "These system calls are obsolete.  I<Do not use them>; use B<sigprocmask>(2)  "
4215 "instead."
4216 msgstr ""
4217 "これらのシステムコールは廃止予定であり、 「使用しないこと」。 代わりに "
4218 "B<sigprocmask>(2)  を使用すること。"
4219
4220 #. type: Plain text
4221 #: build/C/man2/sgetmask.2:45
4222 msgid "B<sgetmask>()  returns the signal mask of the calling process."
4223 msgstr "B<sgetmask>()  は、呼び出し元プロセスのシグナルマスクを返す。"
4224
4225 #. type: Plain text
4226 #: build/C/man2/sgetmask.2:50
4227 msgid ""
4228 "B<ssetmask>()  sets the signal mask of the calling process to the value "
4229 "given in I<newmask>.  The previous signal mask is returned."
4230 msgstr ""
4231 "B<ssetmask>()  は、呼び出し元プロセスのシグナルマスクを I<newmask> で指定され"
4232 "た値に設定し、変更前のシグナルマスクを返す。"
4233
4234 #. type: Plain text
4235 #: build/C/man2/sgetmask.2:59
4236 msgid ""
4237 "The signal masks dealt with by these two system calls are plain bit masks "
4238 "(unlike the I<sigset_t> used by B<sigprocmask>(2)); use B<sigmask>(3)  to "
4239 "create and inspect these masks."
4240 msgstr ""
4241 "これら二つのシステムコールが扱うシグナルマスクは、 単純なビットマスクである "
4242 "(この点が B<sigprocmask>(2)  で使用される I<sigset_t> と異なる)。 これらのマ"
4243 "スクを作成したり検査するには B<sigmask>(3)  を使用すること。"
4244
4245 #. type: Plain text
4246 #: build/C/man2/sgetmask.2:64
4247 msgid ""
4248 "B<sgetmask>()  always successfully returns the signal mask.  B<ssetmask>()  "
4249 "always succeeds, and returns the previous signal mask."
4250 msgstr ""
4251 "B<sgetmask>()  は常に成功し、シグナルマスクを返す。 B<ssetmask>()  は常に成功"
4252 "し、直前のシグナルマスクを返す。"
4253
4254 #. type: Plain text
4255 #: build/C/man2/sgetmask.2:66
4256 msgid "These system calls always succeed."
4257 msgstr "これらのシステムコールは常に成功する。"
4258
4259 #. type: Plain text
4260 #: build/C/man2/sgetmask.2:72
4261 msgid ""
4262 "Glibc does not provide wrappers for these obsolete system calls; in the "
4263 "unlikely event that you want to call them, use B<syscall>(2)."
4264 msgstr ""
4265 "glibc はこれらの古いシステムコールに対するラッパー関数を提供していない。\n"
4266 "あまりないと思うが、これらを呼び出したい場合には B<syscall>(2) を使うこと。"
4267
4268 #. type: Plain text
4269 #: build/C/man2/sgetmask.2:75
4270 msgid ""
4271 "These system calls are unaware of signal numbers greater than 31 (i.e., real-"
4272 "time signals)."
4273 msgstr ""
4274 "これらのシステムコールは、 31 より大きいシグナル番号 (つまり、リアルタイムシ"
4275 "グナル) を扱えない。"
4276
4277 #. type: Plain text
4278 #: build/C/man2/sgetmask.2:80
4279 msgid "It is not possible to block B<SIGSTOP> or B<SIGKILL>."
4280 msgstr "B<SIGSTOP> や B<SIGKILL> をブロックすることはできない。"
4281
4282 #. type: Plain text
4283 #: build/C/man2/sgetmask.2:83
4284 msgid "B<sigprocmask>(2), B<signal>(7)"
4285 msgstr "B<sigprocmask>(2), B<signal>(7)"
4286
4287 #. type: TH
4288 #: build/C/man2/sigaction.2:47
4289 #, no-wrap
4290 msgid "SIGACTION"
4291 msgstr "SIGACTION"
4292
4293 #. type: TH
4294 #: build/C/man2/sigaction.2:47 build/C/man3/siginterrupt.3:31
4295 #: build/C/man2/signal.2:36 build/C/man2/sigpending.2:29
4296 #: build/C/man2/sigprocmask.2:29 build/C/man3/sigsetops.3:31
4297 #: build/C/man2/sigsuspend.2:29
4298 #, no-wrap
4299 msgid "2013-04-19"
4300 msgstr "2013-04-19"
4301
4302 #. type: Plain text
4303 #: build/C/man2/sigaction.2:50
4304 msgid "sigaction - examine and change a signal action"
4305 msgstr "sigaction - シグナルの動作の確認と変更"
4306
4307 #. type: Plain text
4308 #: build/C/man2/sigaction.2:56
4309 #, no-wrap
4310 msgid ""
4311 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
4312 "B<              struct sigaction *>I<oldact>B<);>\n"
4313 msgstr ""
4314 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
4315 "B<              struct sigaction *>I<oldact>B<);>\n"
4316
4317 #. type: Plain text
4318 #: build/C/man2/sigaction.2:66
4319 msgid ""
4320 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4321 "_POSIX_SOURCE"
4322 msgstr ""
4323 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4324 "_POSIX_SOURCE"
4325
4326 #. type: Plain text
4327 #: build/C/man2/sigaction.2:69
4328 msgid "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
4329 msgstr "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
4330
4331 #. type: Plain text
4332 #: build/C/man2/sigaction.2:78
4333 msgid ""
4334 "The B<sigaction>()  system call is used to change the action taken by a "
4335 "process on receipt of a specific signal.  (See B<signal>(7)  for an overview "
4336 "of signals.)"
4337 msgstr ""
4338 "B<sigaction>()  システムコールは、特定のシグナルを受信した際の プロセスの動作"
4339 "を変更するのに使用される (シグナルの概要については B<signal>(7)  を参照)。"
4340
4341 #. type: Plain text
4342 #: build/C/man2/sigaction.2:84
4343 msgid ""
4344 "I<signum> specifies the signal and can be any valid signal except B<SIGKILL> "
4345 "and B<SIGSTOP>."
4346 msgstr ""
4347 "I<signum> には、 B<SIGKILL> と B<SIGSTOP> 以外の有効なシグナルをどれでも指定"
4348 "できる。"
4349
4350 #. type: Plain text
4351 #: build/C/man2/sigaction.2:95
4352 msgid ""
4353 "If I<act> is non-NULL, the new action for signal I<signum> is installed from "
4354 "I<act>.  If I<oldact> is non-NULL, the previous action is saved in I<oldact>."
4355 msgstr ""
4356 "I<act> が NULL 以外であれば、シグナル I<signum> の新しい動作 (action) として "
4357 "I<act> が設定される。 I<oldact> が NULL でなければ、今までの動作が I<oldact> "
4358 "に格納される。"
4359
4360 #. type: Plain text
4361 #: build/C/man2/sigaction.2:99
4362 msgid "The I<sigaction> structure is defined as something like:"
4363 msgstr "I<sigaction> 構造体は以下のような感じに定義される。"
4364
4365 #. type: Plain text
4366 #: build/C/man2/sigaction.2:109
4367 #, no-wrap
4368 msgid ""
4369 "struct sigaction {\n"
4370 "    void     (*sa_handler)(int);\n"
4371 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
4372 "    sigset_t   sa_mask;\n"
4373 "    int        sa_flags;\n"
4374 "    void     (*sa_restorer)(void);\n"
4375 "};\n"
4376 msgstr ""
4377 "struct sigaction {\n"
4378 "    void     (*sa_handler)(int);\n"
4379 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
4380 "    sigset_t   sa_mask;\n"
4381 "    int        sa_flags;\n"
4382 "    void     (*sa_restorer)(void);\n"
4383 "};\n"
4384
4385 #. type: Plain text
4386 #: build/C/man2/sigaction.2:116
4387 msgid ""
4388 "On some architectures a union is involved: do not assign to both "
4389 "I<sa_handler> and I<sa_sigaction>."
4390 msgstr ""
4391 "アーキテクチャによっては共用体 (union) が用いられており、その場合には "
4392 "I<sa_handler> と I<sa_sigaction> の両方を同時に割り当てることはできない。"
4393
4394 #. type: Plain text
4395 #: build/C/man2/sigaction.2:123
4396 msgid ""
4397 "The I<sa_restorer> element is obsolete and should not be used.  POSIX does "
4398 "not specify a I<sa_restorer> element."
4399 msgstr ""
4400 "I<sa_restorer> 要素は廃止予定であり使用すべきではない。 POSIX には "
4401 "I<sa_restorer> 要素に関する規定はない。"
4402
4403 #. type: Plain text
4404 #: build/C/man2/sigaction.2:133
4405 msgid ""
4406 "I<sa_handler> specifies the action to be associated with I<signum> and may "
4407 "be B<SIG_DFL> for the default action, B<SIG_IGN> to ignore this signal, or a "
4408 "pointer to a signal handling function.  This function receives the signal "
4409 "number as its only argument."
4410 msgstr ""
4411 "I<sa_handler> は I<signum> に対応する動作を指定するもので、 デフォルトの動作"
4412 "を行う B<SIG_DFL>、 そのシグナルを無視する B<SIG_IGN>、 シグナルハンドラ関数"
4413 "へのポインタが設定できる。 シグナルハンドラ関数の引き数は一つであり、シグナル"
4414 "番号が引き数として 渡される。"
4415
4416 #. type: Plain text
4417 #: build/C/man2/sigaction.2:155
4418 msgid ""
4419 "If B<SA_SIGINFO> is specified in I<sa_flags>, then I<sa_sigaction> (instead "
4420 "of I<sa_handler>)  specifies the signal-handling function for I<signum>.  "
4421 "This function receives the signal number as its first argument, a pointer to "
4422 "a I<siginfo_t> as its second argument and a pointer to a I<ucontext_t> (cast "
4423 "to I<void\\ *>) as its third argument.  (Commonly, the handler function "
4424 "doesn't make any use of the third argument.  See B<getcontext>(3)  for "
4425 "further information about I<ucontext_t>.)"
4426 msgstr ""
4427 "I<sa_flags> に B<SA_SIGINFO> が指定された場合、 (I<sa_handler> ではなく)\n"
4428 "I<sa_sigaction> により I<signum> に対応するシグナルハンドラ関数が指定さ\n"
4429 "れる。指定される関数は、最初の引き数としてシグナル番号を、二番目の引き\n"
4430 "数として I<siginfo_t> へのポインタを、三番目の引き数として (I<void\\ *>\n"
4431 "にキャストした) I<ucontext_t> へのポインタを受けとる。 (一般的には、\n"
4432 "ハンドラ関数の三番目の引き数が使用されない。I<ucontext_t> についての\n"
4433 "詳しい情報は B<getcontext>(3) を参照。)"
4434
4435 #. type: Plain text
4436 #: build/C/man2/sigaction.2:165
4437 msgid ""
4438 "I<sa_mask> specifies a mask of signals which should be blocked (i.e., added "
4439 "to the signal mask of the thread in which the signal handler is invoked)  "
4440 "during execution of the signal handler.  In addition, the signal which "
4441 "triggered the handler will be blocked, unless the B<SA_NODEFER> flag is used."
4442 msgstr ""
4443 "I<sa_mask> は、シグナル・ハンドラ実行中に禁止 (block) すべきシグナルのマスク"
4444 "を指定する (ハンドラ実行中のシグナルの禁止は、シグナル・ハンドラが起動された"
4445 "スレッド のシグナルのマスクに追加することで行われる)。 さらに、 "
4446 "B<SA_NODEFER> フラグが指定されていない場合は、ハンドラを起動するきっかけとな"
4447 "る シグナルにも I<sa_mask> が適用される。"
4448
4449 #. type: Plain text
4450 #: build/C/man2/sigaction.2:169
4451 msgid ""
4452 "I<sa_flags> specifies a set of flags which modify the behavior of the "
4453 "signal.  It is formed by the bitwise OR of zero or more of the following:"
4454 msgstr ""
4455 "I<sa_flags> はシグナル・ハンドラの動作を変更するためのフラグの集合を指定す"
4456 "る。 I<sa_flags> には、以下に示すフラグの (0 個以上の) 論理和をとったものを指"
4457 "定する。"
4458
4459 #. type: TP
4460 #: build/C/man2/sigaction.2:170
4461 #, no-wrap
4462 msgid "B<SA_NOCLDSTOP>"
4463 msgstr "B<SA_NOCLDSTOP>"
4464
4465 #. type: Plain text
4466 #: build/C/man2/sigaction.2:187
4467 msgid ""
4468 "If I<signum> is B<SIGCHLD>, do not receive notification when child processes "
4469 "stop (i.e., when they receive one of B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN> or "
4470 "B<SIGTTOU>)  or resume (i.e., they receive B<SIGCONT>)  (see B<wait>(2)).  "
4471 "This flag is meaningful only when establishing a handler for B<SIGCHLD>."
4472 msgstr ""
4473 "I<signum> が B<SIGCHLD> の場合、 子プロセスが停止したり (子プロセスが "
4474 "B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN>, B<SIGTTOU> を受けたとき) 再開したり (子プ"
4475 "ロセスが B<SIGCONT> を受けたとき) したときに B<SIGCHLD> の通知を受けない。 こ"
4476 "のフラグは、 B<SIGCHLD> に対してハンドラを設定する際にのみ意味を持つ。"
4477
4478 #. type: TP
4479 #: build/C/man2/sigaction.2:187
4480 #, no-wrap
4481 msgid "B<SA_NOCLDWAIT> (since Linux 2.6)"
4482 msgstr "B<SA_NOCLDWAIT> (Linux 2.6 以降)"
4483
4484 #.  To be precise: Linux 2.5.60 -- MTK
4485 #. type: Plain text
4486 #: build/C/man2/sigaction.2:201
4487 msgid ""
4488 "If I<signum> is B<SIGCHLD>, do not transform children into zombies when they "
4489 "terminate.  See also B<waitpid>(2).  This flag is meaningful only when "
4490 "establishing a handler for B<SIGCHLD>, or when setting that signal's "
4491 "disposition to B<SIG_DFL>."
4492 msgstr ""
4493 "(Linux 2.6 以降)  I<signum> が B<SIGCHLD> の場合、子プロセスが終了したときに "
4494 "子プロセスをゾンビプロセスに変化させない (B<waitpid>(2)  も参照)。 このフラグ"
4495 "は、 B<SIGCHLD> に対してハンドラを設定する際、もしくはそのシグナルの処理方法"
4496 "を B<SIG_DFL> に設定する際にのみ意味を持つ。"
4497
4498 #. type: Plain text
4499 #: build/C/man2/sigaction.2:213
4500 msgid ""
4501 "If the B<SA_NOCLDWAIT> flag is set when establishing a handler for "
4502 "B<SIGCHLD>, POSIX.1 leaves it unspecified whether a B<SIGCHLD> signal is "
4503 "generated when a child process terminates.  On Linux, a B<SIGCHLD> signal is "
4504 "generated in this case; on some other implementations, it is not."
4505 msgstr ""
4506 "B<SIGCHLD> に対してハンドラを設定する際に B<SA_NOCLDWAIT> フラグをセットした"
4507 "場合、 子プロセスが終了した際に B<SIGCHLD> シグナルが生成されるかどうかは、 "
4508 "POSIX.1 では規定されていない。 Linux では、この状況で B<SIGCHLD> シグナルは生"
4509 "成される。 いくつかの他の実装では生成されない。"
4510
4511 #. type: TP
4512 #: build/C/man2/sigaction.2:213
4513 #, no-wrap
4514 msgid "B<SA_NODEFER>"
4515 msgstr "B<SA_NODEFER>"
4516
4517 #. type: Plain text
4518 #: build/C/man2/sigaction.2:220
4519 msgid ""
4520 "Do not prevent the signal from being received from within its own signal "
4521 "handler.  This flag is meaningful only when establishing a signal handler.  "
4522 "B<SA_NOMASK> is an obsolete, nonstandard synonym for this flag."
4523 msgstr ""
4524 "それ自身のシグナル・ハンドラーの内部にいる時でも そのシグナルをマスクしないよ"
4525 "うにする。 このフラグはシグナルハンドラを設定する際にのみ意味を持つ。 "
4526 "B<SA_NOMASK> はこのフラグと同じ意味だが、廃止されており、非標準である。"
4527
4528 #. type: TP
4529 #: build/C/man2/sigaction.2:220
4530 #, no-wrap
4531 msgid "B<SA_ONSTACK>"
4532 msgstr "B<SA_ONSTACK>"
4533
4534 #. type: Plain text
4535 #: build/C/man2/sigaction.2:226
4536 msgid ""
4537 "Call the signal handler on an alternate signal stack provided by "
4538 "B<sigaltstack>(2).  If an alternate stack is not available, the default "
4539 "stack will be used.  This flag is meaningful only when establishing a signal "
4540 "handler."
4541 msgstr ""
4542 "B<sigaltstack>(2)  で提供される別のシグナル・スタックでシグナルハンドラを呼び"
4543 "出す。 別のシグナル・スタックが利用可能でなければ、デフォルトのスタックが 使"
4544 "用される。 このフラグはシグナルハンドラを設定する際にのみ意味を持つ。"
4545
4546 #. type: TP
4547 #: build/C/man2/sigaction.2:226
4548 #, no-wrap
4549 msgid "B<SA_RESETHAND>"
4550 msgstr "B<SA_RESETHAND>"
4551
4552 #. type: Plain text
4553 #: build/C/man2/sigaction.2:232
4554 msgid ""
4555 "Restore the signal action to the default upon entry to the signal handler.  "
4556 "This flag is meaningful only when establishing a signal handler.  "
4557 "B<SA_ONESHOT> is an obsolete, nonstandard synonym for this flag."
4558 msgstr ""
4559 "シグナルハンドラを設定する際に、シグナルの動作をデフォルトに戻す。 このフラグ"
4560 "はシグナルハンドラを設定する際にのみ意味を持つ。 B<SA_ONESHOT> はこのフラグと"
4561 "同じ意味だが、廃止されており、非標準である。"
4562
4563 #. type: TP
4564 #: build/C/man2/sigaction.2:232
4565 #, no-wrap
4566 msgid "B<SA_RESTART>"
4567 msgstr "B<SA_RESTART>"
4568
4569 #. type: Plain text
4570 #: build/C/man2/sigaction.2:240
4571 msgid ""
4572 "Provide behavior compatible with BSD signal semantics by making certain "
4573 "system calls restartable across signals.  This flag is meaningful only when "
4574 "establishing a signal handler.  See B<signal>(7)  for a discussion of system "
4575 "call restarting."
4576 msgstr ""
4577 "いくつかのシステムコールをシグナルの通知の前後で再開できるようにして、 BSD シ"
4578 "グナル方式 (semantics) と互換性のある動作を提供する。 このフラグはシグナルハ"
4579 "ンドラを設定する際にのみ意味を持つ。 B<signal>(7)  に書かれているシステムコー"
4580 "ルの再開に関する議論を参照のこと。"
4581
4582 #. type: TP
4583 #: build/C/man2/sigaction.2:240
4584 #, no-wrap
4585 msgid "B<SA_SIGINFO> (since Linux 2.2)"
4586 msgstr "B<SA_SIGINFO> (Linux 2.2 以降)"
4587
4588 #.  (The
4589 #.  .I sa_sigaction
4590 #.  field was added in Linux 2.1.86.)
4591 #. type: Plain text
4592 #: build/C/man2/sigaction.2:251
4593 msgid ""
4594 "The signal handler takes three arguments, not one.  In this case, "
4595 "I<sa_sigaction> should be set instead of I<sa_handler>.  This flag is "
4596 "meaningful only when establishing a signal handler."
4597 msgstr ""
4598 "シグナルハンドラは一つではなく、三つの引き数を持つ。この場合は I<sa_handler> "
4599 "のかわりに I<sa_sigaction> を設定しなければならない このフラグはシグナルハン"
4600 "ドラを設定する際にのみ意味を持つ。"
4601
4602 #. type: Plain text
4603 #: build/C/man2/sigaction.2:258
4604 msgid ""
4605 "The I<siginfo_t> argument to I<sa_sigaction> is a struct with the following "
4606 "elements:"
4607 msgstr ""
4608 "I<sa_sigaction> のパラメータ I<siginfo_t> は以下の要素を持つ構造体である:"
4609
4610 #.  FIXME
4611 #.  si_trapno seems to be only used on SPARC and Alpha;
4612 #.  this page could use a little more detail on its purpose there.
4613 #.  In the kernel: si_tid
4614 #. type: Plain text
4615 #: build/C/man2/sigaction.2:289
4616 #, no-wrap
4617 msgid ""
4618 "siginfo_t {\n"
4619 "    int      si_signo;    /* Signal number */\n"
4620 "    int      si_errno;    /* An errno value */\n"
4621 "    int      si_code;     /* Signal code */\n"
4622 "    int      si_trapno;   /* Trap number that caused\n"
4623 "                             hardware-generated signal\n"
4624 "                             (unused on most architectures) */\n"
4625 "    pid_t    si_pid;      /* Sending process ID */\n"
4626 "    uid_t    si_uid;      /* Real user ID of sending process */\n"
4627 "    int      si_status;   /* Exit value or signal */\n"
4628 "    clock_t  si_utime;    /* User time consumed */\n"
4629 "    clock_t  si_stime;    /* System time consumed */\n"
4630 "    sigval_t si_value;    /* Signal value */\n"
4631 "    int      si_int;      /* POSIX.1b signal */\n"
4632 "    void    *si_ptr;      /* POSIX.1b signal */\n"
4633 "    int      si_overrun;  /* Timer overrun count; POSIX.1b timers */\n"
4634 "    int      si_timerid;  /* Timer ID; POSIX.1b timers */\n"
4635 "    void    *si_addr;     /* Memory location which caused fault */\n"
4636 "    long     si_band;     /* Band event (was I<int> in\n"
4637 "                             glibc 2.3.2 and earlier) */\n"
4638 "    int      si_fd;       /* File descriptor */\n"
4639 "    short    si_addr_lsb; /* Least significant bit of address\n"
4640 "                             (since Linux 2.6.32) */\n"
4641 "}\n"
4642 msgstr ""
4643 "siginfo_t {\n"
4644 "    int      si_signo;    /* Signal number */\n"
4645 "    int      si_errno;    /* An errno value */\n"
4646 "    int      si_code;     /* Signal code */\n"
4647 "    int      si_trapno;   /* Trap number that caused\n"
4648 "                             hardware-generated signal\n"
4649 "                             (unused on most architectures) */\n"
4650 "    pid_t    si_pid;      /* Sending process ID */\n"
4651 "    uid_t    si_uid;      /* Real user ID of sending process */\n"
4652 "    int      si_status;   /* Exit value or signal */\n"
4653 "    clock_t  si_utime;    /* User time consumed */\n"
4654 "    clock_t  si_stime;    /* System time consumed */\n"
4655 "    sigval_t si_value;    /* Signal value */\n"
4656 "    int      si_int;      /* POSIX.1b signal */\n"
4657 "    void    *si_ptr;      /* POSIX.1b signal */\n"
4658 "    int      si_overrun;  /* Timer overrun count; POSIX.1b timers */\n"
4659 "    int      si_timerid;  /* Timer ID; POSIX.1b timers */\n"
4660 "    void    *si_addr;     /* Memory location which caused fault */\n"
4661 "    long     si_band;     /* Band event (was I<int> in\n"
4662 "                             glibc 2.3.2 and earlier) */\n"
4663 "    int      si_fd;       /* File descriptor */\n"
4664 "    short    si_addr_lsb; /* Least significant bit of address\n"
4665 "                             (since Linux 2.6.32) */\n"
4666 "}\n"
4667
4668 #. type: Plain text
4669 #: build/C/man2/sigaction.2:298
4670 msgid ""
4671 "I<si_signo>, I<si_errno> and I<si_code> are defined for all signals.  "
4672 "(I<si_errno> is generally unused on Linux.)  The rest of the struct may be a "
4673 "union, so that one should read only the fields that are meaningful for the "
4674 "given signal:"
4675 msgstr ""
4676 "I<si_signo>, I<si_errno>, I<si_code> は全てのシグナルに対して定義されている "
4677 "(I<si_errno> は Linux では一般的には使用されない)。 構造体の残りの部分は、共"
4678 "用体 (union) になっているかもしれない。 その場合は該当するシグナルにおいて意"
4679 "味のあるフィールドのみを読み込む ことができる。"
4680
4681 #. type: Plain text
4682 #: build/C/man2/sigaction.2:313
4683 msgid ""
4684 "Signals sent with B<kill>(2)  and B<sigqueue>(3)  fill in I<si_pid> and "
4685 "I<si_uid>.  In addition, signals sent with B<sigqueue>(3)  fill in I<si_int> "
4686 "and I<si_ptr> with the values specified by the sender of the signal; see "
4687 "B<sigqueue>(3)  for more details."
4688 msgstr ""
4689 "B<kill>(2) や B<sigqueue>(3) で送信されたシグナルでは I<si_pid> と I<si_uid> "
4690 "が設定される。\n"
4691 "さらに、 B<sigqueue>(3) で送信されたシグナルでは I<si_int> と I<si_pid> にシ"
4692 "グナルの送信者により指定された値が設定される。詳細は B<sigqueue>(3) を参照。"
4693
4694 #. type: Plain text
4695 #: build/C/man2/sigaction.2:329
4696 msgid ""
4697 "Signals sent by POSIX.1b timers (since Linux 2.6) fill in I<si_overrun> and "
4698 "I<si_timerid>.  The I<si_timerid> field is an internal ID used by the kernel "
4699 "to identify the timer; it is not the same as the timer ID returned by "
4700 "B<timer_create>(2).  The I<si_overrun> field is the timer overrun count; "
4701 "this is the same information as is obtained by a call to B<timer_getoverrun>"
4702 "(2).  These fields are nonstandard Linux extensions."
4703 msgstr ""
4704 "POSIX.1b タイマ (Linux 2.6 以降) は I<si_overrun> と I<si_timerid> を\n"
4705 "設定する。 I<si_timerid> フィールドはカーネルがタイマを特定するのに\n"
4706 "使用する内部 ID であり、 B<timer_create>(2) が返すタイマ ID と同じではな"
4707 "い。\n"
4708 "I<si_overrun> フィールドはタイマが回り切った回数である。\n"
4709 "これは B<timer_getoverrun>(2) の呼び出しで取得できる情報と同じである。\n"
4710 "これらのフィールドは非標準で Linux による拡張である。"
4711
4712 #. type: Plain text
4713 #: build/C/man2/sigaction.2:344
4714 msgid ""
4715 "Signals sent for message queue notification (see the description of "
4716 "B<SIGEV_SIGNAL> in B<mq_notify>(3))  fill in I<si_int>/I<si_ptr>, with the "
4717 "I<sigev_value> supplied to B<mq_notify>(3); I<si_pid>, with the process ID "
4718 "of the message sender; and I<si_uid>, with the real user ID of the message "
4719 "sender."
4720 msgstr ""
4721 "メッセージキューの通知用に送信されたシグナル (B<mq_notify>(3) の "
4722 "B<SIGEV_SIGNAL> の説明を参照) では、 I<si_int>/I<si_ptr> に B<mq_notify>(3) "
4723 "に渡された I<sigev_value> が設定される。 I<si_pid> にはメッセージ送信者のプロ"
4724 "セス ID が設定され、 I<si_uid> にはメッセージ送信者の実ユーザ ID が設定され"
4725 "る。"
4726
4727 #.  FIXME .
4728 #.  When si_utime and si_stime where originally implemented, the
4729 #.  measurement unit was HZ, which was the same as clock ticks
4730 #.  (sysconf(_SC_CLK_TCK)).  In 2.6, HZ became configurable, and
4731 #.  was *still* used as the unit to return the info these fields,
4732 #.  with the result that the field values depended on the the
4733 #.  configured HZ.  Of course, the should have been measured in
4734 #.  USER_HZ instead, so that sysconf(_SC_CLK_TCK) could be used to
4735 #.  convert to seconds.  I have a queued patch to fix this:
4736 #.  http://thread.gmane.org/gmane.linux.kernel/698061/ .
4737 #.  This patch made it into 2.6.27.
4738 #.  But note that these fields still don't return the times of
4739 #.  waited-for children (as is done by getrusage() and times()
4740 #.  and wait4()).  Solaris 8 does include child times.
4741 #. type: Plain text
4742 #: build/C/man2/sigaction.2:391
4743 msgid ""
4744 "B<SIGCHLD> fills in I<si_pid>, I<si_uid>, I<si_status>, I<si_utime> and "
4745 "I<si_stime>, providing information about the child.  The I<si_pid> field is "
4746 "the process ID of the child; I<si_uid> is the child's real user ID.  The "
4747 "I<si_status> field contains the exit status of the child (if I<si_code> is "
4748 "B<CLD_EXITED>), or the signal number that caused the process to change "
4749 "state.  The I<si_utime> and I<si_stime> contain the user and system CPU time "
4750 "used by the child process; these fields do not include the times used by "
4751 "waited-for children (unlike B<getrusage>(2)  and B<time>(2)).  In kernels up "
4752 "to 2.6, and since 2.6.27, these fields report CPU time in units of I<sysconf"
4753 "(_SC_CLK_TCK)>.  In 2.6 kernels before 2.6.27, a bug meant that these fields "
4754 "reported time in units of the (configurable) system jiffy (see B<time>(7))."
4755 msgstr ""
4756 "B<SIGCHLD> は I<si_pid>, I<si_uid>, I<si_status>, I<si_utime>,\n"
4757 "I<si_stime> を設定し、子プロセスに関する情報を提供する。\n"
4758 "I<si_pid> フィールドは子プロセスのプロセス ID で、\n"
4759 "I<si_uid> フィールドは子プロセスの実ユーザ ID である。\n"
4760 "I<si_stime> フィールドには、 (I<si_code> が B<CLD_EXITED> の場合は) \n"
4761 "子プロセスの終了ステータスが、それ以外の場合は状態が変化する原因と\n"
4762 "なったシグナル番号が格納される。\n"
4763 "I<si_utime> と I<si_stime> には子プロセスが使用したユーザ CPU 時間とシ\n"
4764 "ステム CPU 時間がそれぞれ格納される。(B<getrusage>(2) や B<time>(2) と\n"
4765 "異なり) これらのフィールドには wait 待ちの子プロセスにより使用された時\n"
4766 "間は含まれない。 2.6 より前と 2.6.27 以降のカーネルでは、 これらのフィー\n"
4767 "ルドに格納される CPU 時間の単位は I<sysconf(_SC_CLK_TCK)> である。\n"
4768 "2.6.27 より前の 2.6 系のカーネルでは、バグがあり、 これらのフィールドの\n"
4769 "CPU 時間の単位が (カーネルのコンフィグで指定される) システムの jiffy で\n"
4770 "あった (B<time>(7) 参照)。"
4771
4772 #.  FIXME SIGTRAP also sets the following for ptrace_notify() ?
4773 #.      info.si_code = exit_code;
4774 #.      info.si_pid = task_pid_vnr(current);
4775 #.      info.si_uid = current_uid();  /* Real UID */
4776 #. type: Plain text
4777 #: build/C/man2/sigaction.2:427
4778 msgid ""
4779 "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, and B<SIGTRAP> fill in "
4780 "I<si_addr> with the address of the fault.  On some architectures, these "
4781 "signals also fill in the I<si_trapno> filed.  Some suberrors of B<SIGBUS>, "
4782 "in particular B<BUS_MCEERR_AO> and B<BUS_MCEERR_AR>, also fill in "
4783 "I<si_addr_lsb>.  This field indicates the least significant bit of the "
4784 "reported address and therefore the extent of the corruption.  For example, "
4785 "if a full page was corrupted, I<si_addr_lsb> contains I<log2(sysconf"
4786 "(_SC_PAGESIZE))>.  B<BUS_MCERR_*> and I<si_addr_lsb> are Linux-specific "
4787 "extensions."
4788 msgstr ""
4789 "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, B<SIGTRAP> では、 I<si_addr> に "
4790 "fault が発生したアドレスが設定される。 いくつかのアーキテクチャでは "
4791 "I<si_trapno> も設定される。 B<SIGBUS> が発生するエラーのいくつか、特に "
4792 "B<BUS_MCEERR_AO> と B<BUS_MCEERR_AR> では、 I<si_addr_lsb> も設定される。 こ"
4793 "のフィールドは報告されるアドレスの最下位ビットを示し、 これによりメモリ破壊の"
4794 "程度を知ることができる。 例えば、ページ全体が壊れている場合には "
4795 "I<si_addr_lsb> には I<log2(sysconf(_SC_PAGESIZE))> が入る。 B<BUS_MCERR_*> "
4796 "と I<si_addr_lsb> は Linux 固有の拡張である。"
4797
4798 #. type: Plain text
4799 #: build/C/man2/sigaction.2:441
4800 msgid ""
4801 "B<SIGIO>/B<SIGPOLL> (the two names are synonyms on Linux)  fills in "
4802 "I<si_band> and I<si_fd>.  The I<si_band> event is a bit mask containing the "
4803 "same values as are filled in the I<revents> field by B<poll>(2).  The "
4804 "I<si_fd> field indicates the file descriptor for which the I/O event "
4805 "occurred."
4806 msgstr ""
4807 "B<SIGIO>/B<SIGPOLL> (2 つの名前は Linux では同義語) では I<si_band> と "
4808 "I<si_fd> が設定される。 I<si_band> イベントは、 B<poll>(2) が I<revents> "
4809 "フィールドに設定するのと同じ値が入ったビットマスクである。 I<si_fd> フィール"
4810 "ドは I/O イベントが発生したファイルディスクリプタを示す。"
4811
4812 #. type: Plain text
4813 #: build/C/man2/sigaction.2:448
4814 msgid ""
4815 "I<si_code> is a value (not a bit mask)  indicating why this signal was "
4816 "sent.  The following list shows the values which can be placed in I<si_code> "
4817 "for any signal, along with reason that the signal was generated."
4818 msgstr ""
4819 "I<si_code> は、そのシグナルが送信された理由を示す値である (ビットマスクではな"
4820 "い)。 以下は、どのシグナルの場合でも I<si_code> に入りうる値のリストである。"
4821 "シグナルが生成された理由も記載している。"
4822
4823 #. type: TP
4824 #: build/C/man2/sigaction.2:449
4825 #, no-wrap
4826 msgid "B<SI_USER>"
4827 msgstr "B<SI_USER>"
4828
4829 #. type: TP
4830 #: build/C/man2/sigaction.2:452 build/C/man7/signal.7:111
4831 #, no-wrap
4832 msgid "B<kill>(2)"
4833 msgstr "B<kill>(2)"
4834
4835 #. type: TP
4836 #: build/C/man2/sigaction.2:452
4837 #, no-wrap
4838 msgid "B<SI_KERNEL>"
4839 msgstr "B<SI_KERNEL>"
4840
4841 #. type: Plain text
4842 #: build/C/man2/sigaction.2:455
4843 msgid "Sent by the kernel."
4844 msgstr "カーネルにより送信された"
4845
4846 #. type: TP
4847 #: build/C/man2/sigaction.2:455
4848 #, no-wrap
4849 msgid "B<SI_QUEUE>"
4850 msgstr "B<SI_QUEUE>"
4851
4852 #. type: TP
4853 #: build/C/man2/sigaction.2:458 build/C/man7/signal.7:128
4854 #, no-wrap
4855 msgid "B<sigqueue>(3)"
4856 msgstr "B<sigqueue>(3)"
4857
4858 #. type: TP
4859 #: build/C/man2/sigaction.2:458
4860 #, no-wrap
4861 msgid "B<SI_TIMER>"
4862 msgstr "B<SI_TIMER>"
4863
4864 #. type: Plain text
4865 #: build/C/man2/sigaction.2:461
4866 msgid "POSIX timer expired"
4867 msgstr "POSIX タイマが満了した"
4868
4869 #. type: TP
4870 #: build/C/man2/sigaction.2:461
4871 #, no-wrap
4872 msgid "B<SI_MESGQ>"
4873 msgstr "B<SI_MESGQ>"
4874
4875 #. type: Plain text
4876 #: build/C/man2/sigaction.2:465
4877 msgid ""
4878 "POSIX message queue state changed (since Linux 2.6.6); see B<mq_notify>(3)"
4879 msgstr ""
4880 "POSIX メッセージキューの状態が変化した (Linux 2.6.6 以降)。 B<mq_notify>(3)B<"
4881 "参照。>"
4882
4883 #. type: TP
4884 #: build/C/man2/sigaction.2:465
4885 #, no-wrap
4886 msgid "B<SI_ASYNCIO>"
4887 msgstr "B<SI_ASYNCIO>"
4888
4889 #. type: Plain text
4890 #: build/C/man2/sigaction.2:468
4891 msgid "AIO completed"
4892 msgstr "非同期 IO (AIO) が完了した"
4893
4894 #. type: TP
4895 #: build/C/man2/sigaction.2:468
4896 #, no-wrap
4897 msgid "B<SI_SIGIO>"
4898 msgstr "B<SI_SIGIO>"
4899
4900 #. type: Plain text
4901 #: build/C/man2/sigaction.2:477
4902 msgid ""
4903 "Queued B<SIGIO> (only in kernels up to Linux 2.2; from Linux 2.4 onward "
4904 "B<SIGIO>/B<SIGPOLL> fills in I<si_code> as described below)."
4905 msgstr ""
4906 "B<SIGIO> がキューイングされた (Linux 2.2 以下のカーネルのみ; Linux 2.4 以降で"
4907 "は以下で説明する B<SIGIO>/B<SIGPOLL> の I<si_code> が入る)。"
4908
4909 #. type: TP
4910 #: build/C/man2/sigaction.2:477
4911 #, no-wrap
4912 msgid "B<SI_TKILL>"
4913 msgstr "B<SI_TKILL>"
4914
4915 #.  SI_DETHREAD is defined in 2.6.9 sources, but isn't implemented
4916 #.  It appears to have been an idea that was tried during 2.5.6
4917 #.  through to 2.5.24 and then was backed out.
4918 #. type: Plain text
4919 #: build/C/man2/sigaction.2:486
4920 msgid "B<tkill>(2)  or B<tgkill>(2)  (since Linux 2.4.19)"
4921 msgstr "B<tkill>(2)  または B<tgkill>(2)  (Linux 2.4.19 以降)"
4922
4923 #. type: Plain text
4924 #: build/C/man2/sigaction.2:493
4925 msgid ""
4926 "The following values can be placed in I<si_code> for a B<SIGILL> signal:"
4927 msgstr "B<SIGILL> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
4928
4929 #. type: TP
4930 #: build/C/man2/sigaction.2:494
4931 #, no-wrap
4932 msgid "B<ILL_ILLOPC>"
4933 msgstr "B<ILL_ILLOPC>"
4934
4935 #. type: Plain text
4936 #: build/C/man2/sigaction.2:497
4937 msgid "illegal opcode"
4938 msgstr "不正な命令コード (opcode)"
4939
4940 #. type: TP
4941 #: build/C/man2/sigaction.2:497
4942 #, no-wrap
4943 msgid "B<ILL_ILLOPN>"
4944 msgstr "B<ILL_ILLOPN>"
4945
4946 #. type: Plain text
4947 #: build/C/man2/sigaction.2:500
4948 msgid "illegal operand"
4949 msgstr "不正なオペランド"
4950
4951 #. type: TP
4952 #: build/C/man2/sigaction.2:500
4953 #, no-wrap
4954 msgid "B<ILL_ILLADR>"
4955 msgstr "B<ILL_ILLADR>"
4956
4957 #. type: Plain text
4958 #: build/C/man2/sigaction.2:503
4959 msgid "illegal addressing mode"
4960 msgstr "不正なアドレッシングモード"
4961
4962 #. type: TP
4963 #: build/C/man2/sigaction.2:503
4964 #, no-wrap
4965 msgid "B<ILL_ILLTRP>"
4966 msgstr "B<ILL_ILLTRP>"
4967
4968 #. type: Plain text
4969 #: build/C/man2/sigaction.2:506
4970 msgid "illegal trap"
4971 msgstr "不正なトラップ"
4972
4973 #. type: TP
4974 #: build/C/man2/sigaction.2:506
4975 #, no-wrap
4976 msgid "B<ILL_PRVOPC>"
4977 msgstr "B<ILL_PRVOPC>"
4978
4979 #. type: Plain text
4980 #: build/C/man2/sigaction.2:509
4981 msgid "privileged opcode"
4982 msgstr "特権が必要な命令コード (opcode)"
4983
4984 #. type: TP
4985 #: build/C/man2/sigaction.2:509
4986 #, no-wrap
4987 msgid "B<ILL_PRVREG>"
4988 msgstr "B<ILL_PRVREG>"
4989
4990 #. type: Plain text
4991 #: build/C/man2/sigaction.2:512
4992 msgid "privileged register"
4993 msgstr "特権が必要なレジスタ"
4994
4995 #. type: TP
4996 #: build/C/man2/sigaction.2:512
4997 #, no-wrap
4998 msgid "B<ILL_COPROC>"
4999 msgstr "B<ILL_COPROC>"
5000
5001 #. type: Plain text
5002 #: build/C/man2/sigaction.2:515
5003 msgid "coprocessor error"
5004 msgstr "コプロセッサのエラー"
5005
5006 #. type: TP
5007 #: build/C/man2/sigaction.2:515
5008 #, no-wrap
5009 msgid "B<ILL_BADSTK>"
5010 msgstr "B<ILL_BADSTK>"
5011
5012 #. type: Plain text
5013 #: build/C/man2/sigaction.2:518
5014 msgid "internal stack error"
5015 msgstr "内部スタックエラー"
5016
5017 #. type: Plain text
5018 #: build/C/man2/sigaction.2:525
5019 msgid ""
5020 "The following values can be placed in I<si_code> for a B<SIGFPE> signal:"
5021 msgstr "B<SIGFPE> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5022
5023 #. type: TP
5024 #: build/C/man2/sigaction.2:526
5025 #, no-wrap
5026 msgid "B<FPE_INTDIV>"
5027 msgstr "B<FPE_INTDIV>"
5028
5029 #. type: Plain text
5030 #: build/C/man2/sigaction.2:529
5031 msgid "integer divide by zero"
5032 msgstr "整数の 0 による除算"
5033
5034 #. type: TP
5035 #: build/C/man2/sigaction.2:529
5036 #, no-wrap
5037 msgid "B<FPE_INTOVF>"
5038 msgstr "B<FPE_INTOVF>"
5039
5040 #. type: Plain text
5041 #: build/C/man2/sigaction.2:532
5042 msgid "integer overflow"
5043 msgstr "整数のオーバーフロー"
5044
5045 #. type: TP
5046 #: build/C/man2/sigaction.2:532
5047 #, no-wrap
5048 msgid "B<FPE_FLTDIV>"
5049 msgstr "B<FPE_FLTDIV>"
5050
5051 #. type: Plain text
5052 #: build/C/man2/sigaction.2:535
5053 msgid "floating-point divide by zero"
5054 msgstr "浮動小数点の 0 による除算"
5055
5056 #. type: TP
5057 #: build/C/man2/sigaction.2:535
5058 #, no-wrap
5059 msgid "B<FPE_FLTOVF>"
5060 msgstr "B<FPE_FLTOVF>"
5061
5062 #. type: Plain text
5063 #: build/C/man2/sigaction.2:538
5064 msgid "floating-point overflow"
5065 msgstr "浮動小数点のオーバーフロー"
5066
5067 #. type: TP
5068 #: build/C/man2/sigaction.2:538
5069 #, no-wrap
5070 msgid "B<FPE_FLTUND>"
5071 msgstr "B<FPE_FLTUND>"
5072
5073 #. type: Plain text
5074 #: build/C/man2/sigaction.2:541
5075 msgid "floating-point underflow"
5076 msgstr "浮動小数点のアンダーフロー"
5077
5078 #. type: TP
5079 #: build/C/man2/sigaction.2:541
5080 #, no-wrap
5081 msgid "B<FPE_FLTRES>"
5082 msgstr "B<FPE_FLTRES>"
5083
5084 #. type: Plain text
5085 #: build/C/man2/sigaction.2:544
5086 msgid "floating-point inexact result"
5087 msgstr "浮動小数点の不正確な演算結果 (inexact result)"
5088
5089 #. type: TP
5090 #: build/C/man2/sigaction.2:544
5091 #, no-wrap
5092 msgid "B<FPE_FLTINV>"
5093 msgstr "B<FPE_FLTINV>"
5094
5095 #. type: Plain text
5096 #: build/C/man2/sigaction.2:547
5097 msgid "floating-point invalid operation"
5098 msgstr "浮動小数点の不正な操作"
5099
5100 #. type: TP
5101 #: build/C/man2/sigaction.2:547
5102 #, no-wrap
5103 msgid "B<FPE_FLTSUB>"
5104 msgstr "B<FPE_FLTSUB>"
5105
5106 #. type: Plain text
5107 #: build/C/man2/sigaction.2:550
5108 msgid "subscript out of range"
5109 msgstr "範囲外の添字 (subscript)"
5110
5111 #. type: Plain text
5112 #: build/C/man2/sigaction.2:557
5113 msgid ""
5114 "The following values can be placed in I<si_code> for a B<SIGSEGV> signal:"
5115 msgstr "B<SIGSEGV> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5116
5117 #. type: TP
5118 #: build/C/man2/sigaction.2:558
5119 #, no-wrap
5120 msgid "B<SEGV_MAPERR>"
5121 msgstr "B<SEGV_MAPERR>"
5122
5123 #. type: Plain text
5124 #: build/C/man2/sigaction.2:561
5125 msgid "address not mapped to object"
5126 msgstr "オブジェクトにマッピングされていないアドレス"
5127
5128 #. type: TP
5129 #: build/C/man2/sigaction.2:561
5130 #, no-wrap
5131 msgid "B<SEGV_ACCERR>"
5132 msgstr "B<SEGV_ACCERR>"
5133
5134 #. type: Plain text
5135 #: build/C/man2/sigaction.2:564
5136 msgid "invalid permissions for mapped object"
5137 msgstr "マッピングされたオブジェクトに対するアクセス許可がない"
5138
5139 #. type: Plain text
5140 #: build/C/man2/sigaction.2:571
5141 msgid ""
5142 "The following values can be placed in I<si_code> for a B<SIGBUS> signal:"
5143 msgstr "B<SIGBUS> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5144
5145 #. type: TP
5146 #: build/C/man2/sigaction.2:572
5147 #, no-wrap
5148 msgid "B<BUS_ADRALN>"
5149 msgstr "B<BUS_ADRALN>"
5150
5151 #. type: Plain text
5152 #: build/C/man2/sigaction.2:575
5153 msgid "invalid address alignment"
5154 msgstr "不正なアドレス・アライメント (alignment)"
5155
5156 #. type: TP
5157 #: build/C/man2/sigaction.2:575
5158 #, no-wrap
5159 msgid "B<BUS_ADRERR>"
5160 msgstr "B<BUS_ADRERR>"
5161
5162 #. type: Plain text
5163 #: build/C/man2/sigaction.2:578
5164 msgid "nonexistent physical address"
5165 msgstr "存在しない物理アドレス"
5166
5167 #. type: TP
5168 #: build/C/man2/sigaction.2:578
5169 #, no-wrap
5170 msgid "B<BUS_OBJERR>"
5171 msgstr "B<BUS_OBJERR>"
5172
5173 #. type: Plain text
5174 #: build/C/man2/sigaction.2:581
5175 msgid "object-specific hardware error"
5176 msgstr "オブジェクト固有のハードウェアエラー"
5177
5178 #. type: TP
5179 #: build/C/man2/sigaction.2:581
5180 #, no-wrap
5181 msgid "B<BUS_MCEERR_AR> (since Linux 2.6.32)"
5182 msgstr "B<BUS_MCEERR_AR> (Linux 2.6.32 以降)"
5183
5184 #. type: Plain text
5185 #: build/C/man2/sigaction.2:584
5186 msgid "Hardware memory error consumed on a machine check; action required."
5187 msgstr ""
5188 "マシンチェックで使用中のハードウェアメモリのエラーが検出された。対応が必須。"
5189
5190 #. type: TP
5191 #: build/C/man2/sigaction.2:584
5192 #, no-wrap
5193 msgid "B<BUS_MCEERR_AO> (since Linux 2.6.32)"
5194 msgstr "B<BUS_MCEERR_AO> (Linux 2.6.32  以降)"
5195
5196 #. type: Plain text
5197 #: build/C/man2/sigaction.2:587
5198 msgid ""
5199 "Hardware memory error detected in process but not consumed; action optional."
5200 msgstr ""
5201 "実行中にハードウェアメモリエラーが検出されたが、使用中のメモリではない。対応"
5202 "は必須ではない。"
5203
5204 #. type: Plain text
5205 #: build/C/man2/sigaction.2:594
5206 msgid ""
5207 "The following values can be placed in I<si_code> for a B<SIGTRAP> signal:"
5208 msgstr "B<SIGTRAP> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5209
5210 #. type: TP
5211 #: build/C/man2/sigaction.2:595
5212 #, no-wrap
5213 msgid "B<TRAP_BRKPT>"
5214 msgstr "B<TRAP_BRKPT>"
5215
5216 #. type: Plain text
5217 #: build/C/man2/sigaction.2:598
5218 msgid "process breakpoint"
5219 msgstr "プロセスのブレークポイント"
5220
5221 #. type: TP
5222 #: build/C/man2/sigaction.2:598
5223 #, no-wrap
5224 msgid "B<TRAP_TRACE>"
5225 msgstr "B<TRAP_TRACE>"
5226
5227 #. type: Plain text
5228 #: build/C/man2/sigaction.2:601
5229 msgid "process trace trap"
5230 msgstr "プロセスのトレース・トラップ"
5231
5232 #. type: TP
5233 #: build/C/man2/sigaction.2:601
5234 #, no-wrap
5235 msgid "B<TRAP_BRANCH> (since Linux 2.4)"
5236 msgstr "B<TRAP_BRANCH> (Linux 2.4 以降)"
5237
5238 #. type: Plain text
5239 #: build/C/man2/sigaction.2:604
5240 msgid "process taken branch trap"
5241 msgstr "プロセスのブランチ・トラップ"
5242
5243 #. type: TP
5244 #: build/C/man2/sigaction.2:604
5245 #, no-wrap
5246 msgid "B<TRAP_HWBKPT> (since Linux 2.4)"
5247 msgstr "B<TRAP_HWBKPT> (Linux 2.4 以降)"
5248
5249 #. type: Plain text
5250 #: build/C/man2/sigaction.2:607
5251 msgid "hardware breakpoint/watchpoint"
5252 msgstr "ハードウェア・ブレークポイント/ウォッチポイント"
5253
5254 #. type: Plain text
5255 #: build/C/man2/sigaction.2:614
5256 msgid ""
5257 "The following values can be placed in I<si_code> for a B<SIGCHLD> signal:"
5258 msgstr "B<SIGCHLD> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5259
5260 #. type: TP
5261 #: build/C/man2/sigaction.2:615
5262 #, no-wrap
5263 msgid "B<CLD_EXITED>"
5264 msgstr "B<CLD_EXITED>"
5265
5266 #. type: Plain text
5267 #: build/C/man2/sigaction.2:618
5268 msgid "child has exited"
5269 msgstr "子プロセスが終了した (exited)"
5270
5271 #. type: TP
5272 #: build/C/man2/sigaction.2:618
5273 #, no-wrap
5274 msgid "B<CLD_KILLED>"
5275 msgstr "B<CLD_KILLED>"
5276
5277 #. type: Plain text
5278 #: build/C/man2/sigaction.2:621
5279 msgid "child was killed"
5280 msgstr "子プロセスが kill された"
5281
5282 #. type: TP
5283 #: build/C/man2/sigaction.2:621
5284 #, no-wrap
5285 msgid "B<CLD_DUMPED>"
5286 msgstr "B<CLD_DUMPED>"
5287
5288 #. type: Plain text
5289 #: build/C/man2/sigaction.2:624
5290 msgid "child terminated abnormally"
5291 msgstr "子プロセスが異常終了した"
5292
5293 #. type: TP
5294 #: build/C/man2/sigaction.2:624
5295 #, no-wrap
5296 msgid "B<CLD_TRAPPED>"
5297 msgstr "B<CLD_TRAPPED>"
5298
5299 #. type: Plain text
5300 #: build/C/man2/sigaction.2:627
5301 msgid "traced child has trapped"
5302 msgstr "トレース対象の子プロセスがトラップを上げた"
5303
5304 #. type: TP
5305 #: build/C/man2/sigaction.2:627
5306 #, no-wrap
5307 msgid "B<CLD_STOPPED>"
5308 msgstr "B<CLD_STOPPED>"
5309
5310 #. type: Plain text
5311 #: build/C/man2/sigaction.2:630
5312 msgid "child has stopped"
5313 msgstr "子プロセスが停止 (stop) した"
5314
5315 #. type: TP
5316 #: build/C/man2/sigaction.2:630
5317 #, no-wrap
5318 msgid "B<CLD_CONTINUED>"
5319 msgstr "B<CLD_CONTINUED>"
5320
5321 #. type: Plain text
5322 #: build/C/man2/sigaction.2:633
5323 msgid "stopped child has continued (since Linux 2.6.9)"
5324 msgstr "停止していた子プロセスが再開した (Linux 2.6.9 以降)"
5325
5326 #. type: Plain text
5327 #: build/C/man2/sigaction.2:640
5328 msgid ""
5329 "The following values can be placed in I<si_code> for a B<SIGIO>/B<SIGPOLL> "
5330 "signal:"
5331 msgstr ""
5332 "B<SIGIO>/B<SIGPOLL> シグナルの場合、 I<si_code> には以下の値が入る可能性があ"
5333 "る:"
5334
5335 #. type: TP
5336 #: build/C/man2/sigaction.2:641
5337 #, no-wrap
5338 msgid "B<POLL_IN>"
5339 msgstr "B<POLL_IN>"
5340
5341 #. type: Plain text
5342 #: build/C/man2/sigaction.2:644
5343 msgid "data input available"
5344 msgstr "入力データが利用可能"
5345
5346 #. type: TP
5347 #: build/C/man2/sigaction.2:644
5348 #, no-wrap
5349 msgid "B<POLL_OUT>"
5350 msgstr "B<POLL_OUT>"
5351
5352 #. type: Plain text
5353 #: build/C/man2/sigaction.2:647
5354 msgid "output buffers available"
5355 msgstr "出力バッファが利用可能"
5356
5357 #. type: TP
5358 #: build/C/man2/sigaction.2:647
5359 #, no-wrap
5360 msgid "B<POLL_MSG>"
5361 msgstr "B<POLL_MSG>"
5362
5363 #. type: Plain text
5364 #: build/C/man2/sigaction.2:650
5365 msgid "input message available"
5366 msgstr "入力メッセージが利用可能"
5367
5368 #. type: TP
5369 #: build/C/man2/sigaction.2:650
5370 #, no-wrap
5371 msgid "B<POLL_ERR>"
5372 msgstr "B<POLL_ERR>"
5373
5374 #. type: Plain text
5375 #: build/C/man2/sigaction.2:653
5376 msgid "I/O error"
5377 msgstr "I/O エラー"
5378
5379 #. type: TP
5380 #: build/C/man2/sigaction.2:653
5381 #, no-wrap
5382 msgid "B<POLL_PRI>"
5383 msgstr "B<POLL_PRI>"
5384
5385 #. type: Plain text
5386 #: build/C/man2/sigaction.2:656
5387 msgid "high priority input available"
5388 msgstr "高優先の入力が利用可能"
5389
5390 #. type: TP
5391 #: build/C/man2/sigaction.2:656
5392 #, no-wrap
5393 msgid "B<POLL_HUP>"
5394 msgstr "B<POLL_HUP>"
5395
5396 #. type: Plain text
5397 #: build/C/man2/sigaction.2:659
5398 msgid "device disconnected"
5399 msgstr "デバイスが接続されていない"
5400
5401 #. type: Plain text
5402 #: build/C/man2/sigaction.2:665
5403 msgid ""
5404 "B<sigaction>()  returns 0 on success; on error, -1 is returned, and I<errno> "
5405 "is set to indicate the error."
5406 msgstr "B<sigaction>() 関数は成功すると 0 を返す。 エラーの場合、-1 を返し、 I<errno> にエラーを示す値をセットする。"
5407
5408 #. type: Plain text
5409 #: build/C/man2/sigaction.2:670
5410 msgid ""
5411 "I<act> or I<oldact> points to memory which is not a valid part of the "
5412 "process address space."
5413 msgstr ""
5414 "I<act> か I<oldact> が指しているメモリが正しいプロセスのアドレス空間にない。"
5415
5416 #. type: Plain text
5417 #: build/C/man2/sigaction.2:677
5418 msgid ""
5419 "An invalid signal was specified.  This will also be generated if an attempt "
5420 "is made to change the action for B<SIGKILL> or B<SIGSTOP>, which cannot be "
5421 "caught or ignored."
5422 msgstr ""
5423 "無効なシグナルが指定された。補足 (catch) したり無視したりできない シグナルで"
5424 "ある B<SIGKILL> や B<SIGSTOP> に対する動作を変更しようとした場合にも発生す"
5425 "る。"
5426
5427 #.  SVr4 does not document the EINTR condition.
5428 #. type: Plain text
5429 #: build/C/man2/sigaction.2:680
5430 msgid "POSIX.1-2001, SVr4."
5431 msgstr "POSIX.1-2001, SVr4."
5432
5433 #. type: Plain text
5434 #: build/C/man2/sigaction.2:688 build/C/man7/signal.7:105
5435 msgid ""
5436 "A child created via B<fork>(2)  inherits a copy of its parent's signal "
5437 "dispositions.  During an B<execve>(2), the dispositions of handled signals "
5438 "are reset to the default; the dispositions of ignored signals are left "
5439 "unchanged."
5440 msgstr ""
5441 "B<fork>(2) 経由で作成された子プロセスは、親プロセスのシグナルの処理方法の コ"
5442 "ピーを継承する。\n"
5443 "B<execve>(2) の前後で、ハンドラが設定されているシグナルの処理方法はデフォルト"
5444 "にリセットされ、\n"
5445 "無視が設定されているシグナルの処理方法は変更されずそのままとなる。"
5446
5447 #. type: Plain text
5448 #: build/C/man2/sigaction.2:706 build/C/man2/signal.2:134
5449 msgid ""
5450 "According to POSIX, the behavior of a process is undefined after it ignores "
5451 "a B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> signal that was not generated by "
5452 "B<kill>(2)  or B<raise>(3).  Integer division by zero has undefined result.  "
5453 "On some architectures it will generate a B<SIGFPE> signal.  (Also dividing "
5454 "the most negative integer by -1 may generate B<SIGFPE>.)  Ignoring this "
5455 "signal might lead to an endless loop."
5456 msgstr ""
5457 "POSIX では、 B<kill>(2)  や B<raise>(3)  で生成できないシグナル B<SIGFPE>, "
5458 "B<SIGILL>, B<SIGSEGV> を無視 (ignore) した場合、その後の動作は未定義である。 "
5459 "ゼロによる整数割り算の結果は未定義となる。 アーキテクチャーによっては、このと"
5460 "き B<SIGFPE> シグナルが生成される。 (同様に負の最大整数を -1 で割ると "
5461 "B<SIGFPE> が生成されるかもしれない)  このシグナルを無視すると無限ループに陥る"
5462 "かもしれない。"
5463
5464 #. type: Plain text
5465 #: build/C/man2/sigaction.2:723
5466 msgid ""
5467 "POSIX.1-1990 disallowed setting the action for B<SIGCHLD> to B<SIG_IGN>.  "
5468 "POSIX.1-2001 allows this possibility, so that ignoring B<SIGCHLD> can be "
5469 "used to prevent the creation of zombies (see B<wait>(2)).  Nevertheless, the "
5470 "historical BSD and System V behaviors for ignoring B<SIGCHLD> differ, so "
5471 "that the only completely portable method of ensuring that terminated "
5472 "children do not become zombies is to catch the B<SIGCHLD> signal and perform "
5473 "a B<wait>(2)  or similar."
5474 msgstr ""
5475 "POSIX.1-1990 では B<SIGCHLD> に B<SIG_IGN> を設定することを認めていない。 "
5476 "POSIX.1-2001 では認められており、 B<SIGCHLD> を無視することでゾンビプロセスの"
5477 "生成を防止することができる (B<wait>(2)  を参照)。 さらに、BSD と SystemV で"
5478 "は B<SIGCHLD> を無視した際の動作が異なっている。 そのため、完全に移植性がある"
5479 "方法で、終了した子プロセスがゾンビにならないこと を保証するには、 B<SIGCHLD> "
5480 "シグナルを補足し、 B<wait>(2)  などを実行するしかない。"
5481
5482 #. type: Plain text
5483 #: build/C/man2/sigaction.2:736
5484 msgid ""
5485 "POSIX.1-1990 specified only B<SA_NOCLDSTOP>.  POSIX.1-2001 added "
5486 "B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>, and B<SA_SIGINFO>.  Use of "
5487 "these latter values in I<sa_flags> may be less portable in applications "
5488 "intended for older UNIX implementations."
5489 msgstr ""
5490 "POSIX.1-1990 の仕様では B<SA_NOCLDSTOP> のみが定義されている。\n"
5491 "POSIX.1-2001 では B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>,\n"
5492 "B<SA_SIGINFO> が追加された。 UNIX の古い実装で動かすアプリケーションで、\n"
5493 "他の I<sa_flags> フラグを使用すると移植性が下がる。"
5494
5495 #. type: Plain text
5496 #: build/C/man2/sigaction.2:740
5497 msgid ""
5498 "The B<SA_RESETHAND> flag is compatible with the SVr4 flag of the same name."
5499 msgstr "B<SA_RESETHAND> フラグは SVr4 の同じ名前のフラグと互換性がある。"
5500
5501 #. type: Plain text
5502 #: build/C/man2/sigaction.2:750
5503 msgid ""
5504 "The B<SA_NODEFER> flag is compatible with the SVr4 flag of the same name "
5505 "under kernels 1.3.9 and newer.  On older kernels the Linux implementation "
5506 "allowed the receipt of any signal, not just the one we are installing "
5507 "(effectively overriding any I<sa_mask> settings)."
5508 msgstr ""
5509 "B<SA_NODEFER> フラグは 1.3.9 以降のカーネルでは同じ名前の SVr4 のフラグと互換"
5510 "性がある。 ぞれ以前の Linux カーネルの実装では、このフラグを設定しているシグ"
5511 "ナル だけでなく、どのシグナルでも受けることを許していた (実際には I<sa_mask> "
5512 "の設定により無効にできる)。"
5513
5514 #. type: Plain text
5515 #: build/C/man2/sigaction.2:756
5516 msgid ""
5517 "B<sigaction>()  can be called with a NULL second argument to query the "
5518 "current signal handler.  It can also be used to check whether a given signal "
5519 "is valid for the current machine by calling it with NULL second and third "
5520 "arguments."
5521 msgstr ""
5522 "B<sigaction>()  の二番目の引き数に NULL を指定して呼び出すと、現在のシグナル"
5523 "ハンドラを確認する ことができる。また、二番目と三番目の引き数を NULL にて呼び"
5524 "出すことで、 指定されたシグナルが現在のマシンで使えるかどうかチェックできる。"
5525
5526 #. type: Plain text
5527 #: build/C/man2/sigaction.2:762
5528 msgid ""
5529 "It is not possible to block B<SIGKILL> or B<SIGSTOP> (by specifying them in "
5530 "I<sa_mask>).  Attempts to do so are silently ignored."
5531 msgstr ""
5532 "B<SIGKILL> や B<SIGSTOP> を (I<sa_mask> に指定して) 禁止することはできない。 "
5533 "禁止しようとしても黙って無視される。"
5534
5535 #. type: Plain text
5536 #: build/C/man2/sigaction.2:766 build/C/man2/sigpending.2:70
5537 #: build/C/man2/sigprocmask.2:144 build/C/man2/sigsuspend.2:108
5538 msgid "See B<sigsetops>(3)  for details on manipulating signal sets."
5539 msgstr "シグナル集合の操作に関する詳細は B<sigsetops>(3)  を参照のこと。"
5540
5541 #. type: Plain text
5542 #: build/C/man2/sigaction.2:771
5543 msgid ""
5544 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
5545 "safely called inside from inside a signal handler."
5546 msgstr ""
5547 "シグナルハンドラ内から安全に呼び出すことができる、 async-signal-safe "
5548 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
5549 "照。"
5550
5551 #. type: SS
5552 #: build/C/man2/sigaction.2:771
5553 #, no-wrap
5554 msgid "Undocumented"
5555 msgstr "非公式"
5556
5557 #. type: Plain text
5558 #: build/C/man2/sigaction.2:781
5559 msgid ""
5560 "Before the introduction of B<SA_SIGINFO> it was also possible to get some "
5561 "additional information, namely by using a I<sa_handler> with second argument "
5562 "of type I<struct sigcontext>.  See the relevant Linux kernel sources for "
5563 "details.  This use is obsolete now."
5564 msgstr ""
5565 "B<SA_SIGINFO> が導入される前は、 I<struct sigcontext> 型の二番目の引き数と一"
5566 "緒に I<sa_handler> を使用することで、 いくつかの追加の情報を入手することがで"
5567 "きた。 詳細については Linux カーネルソースの関連部分を見てほしい。 現在はこの"
5568 "使用法は廃止されている。"
5569
5570 #. type: Plain text
5571 #: build/C/man2/sigaction.2:790
5572 msgid ""
5573 "In kernels up to and including 2.6.13, specifying B<SA_NODEFER> in "
5574 "I<sa_flags> prevents not only the delivered signal from being masked during "
5575 "execution of the handler, but also the signals specified in I<sa_mask>.  "
5576 "This bug was fixed in kernel 2.6.14."
5577 msgstr ""
5578 "2.6.13 以前のカーネルでは、 I<sa_flags> に B<SA_NODEFER> を指定した場合、 ハ"
5579 "ンドラが実行中に配送されたシグナル自身がマスクされなくなるだけでなく、 "
5580 "I<sa_mask> に指定されたシグナルもマスクされなくなる。 このバグは、カーネル "
5581 "2.6.14 で修正された。"
5582
5583 #. type: Plain text
5584 #: build/C/man2/sigaction.2:793
5585 msgid "See B<mprotect>(2)."
5586 msgstr "B<mprotect>(2)  参照。"
5587
5588 #. type: Plain text
5589 #: build/C/man2/sigaction.2:812
5590 msgid ""
5591 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaltstack>(2), "
5592 "B<signal>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
5593 "B<sigsuspend>(2), B<wait>(2), B<raise>(3), B<siginterrupt>(3), B<sigqueue>"
5594 "(3), B<sigsetops>(3), B<sigvec>(3), B<core>(5), B<signal>(7)"
5595 msgstr ""
5596 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaltstack>(2),\n"
5597 "B<signal>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2),\n"
5598 "B<sigsuspend>(2), B<wait>(2), B<raise>(3), B<siginterrupt>(3),\n"
5599 "B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), B<core>(5),\n"
5600 "B<signal>(7)"
5601
5602 #. type: TH
5603 #: build/C/man2/sigaltstack.2:27
5604 #, no-wrap
5605 msgid "SIGALTSTACK"
5606 msgstr "SIGALTSTACK"
5607
5608 #. type: TH
5609 #: build/C/man2/sigaltstack.2:27
5610 #, no-wrap
5611 msgid "2010-09-26"
5612 msgstr "2010-09-26"
5613
5614 #. type: Plain text
5615 #: build/C/man2/sigaltstack.2:30
5616 msgid "sigaltstack - set and/or get signal stack context"
5617 msgstr "sigaltstack - シグナルスタックのコンテキストを設定・取得する"
5618
5619 #. type: Plain text
5620 #: build/C/man2/sigaltstack.2:34
5621 msgid "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
5622 msgstr "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
5623
5624 #. type: Plain text
5625 #: build/C/man2/sigaltstack.2:41
5626 msgid "B<sigaltstack>():"
5627 msgstr "B<sigaltstack>():"
5628
5629 #. type: Plain text
5630 #: build/C/man2/sigaltstack.2:48 build/C/man3/siginterrupt.3:53
5631 #: build/C/man2/wait.2:78
5632 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
5633 msgstr "|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
5634
5635 #. type: Plain text
5636 #: build/C/man2/sigaltstack.2:60
5637 msgid ""
5638 "B<sigaltstack>()  allows a process to define a new alternate signal stack "
5639 "and/or retrieve the state of an existing alternate signal stack.  An "
5640 "alternate signal stack is used during the execution of a signal handler if "
5641 "the establishment of that handler (see B<sigaction>(2))  requested it."
5642 msgstr ""
5643 "B<sigaltstack>()  を使うと、 プロセスは新しい代替シグナルスタックを定義した"
5644 "り、 既存の代替シグナルスタックの状態を取得できる。 シグナルハンドラが代替シ"
5645 "グナルスタックを要求するように設定されていると (B<sigaction>(2)  参照)、ハン"
5646 "ドラの実行中はそのシグナルスタックが使われる。"
5647
5648 #. type: Plain text
5649 #: build/C/man2/sigaltstack.2:63
5650 msgid ""
5651 "The normal sequence of events for using an alternate signal stack is the "
5652 "following:"
5653 msgstr "代替シグナルスタックを使う際の一般的な手順は、以下の通りである:"
5654
5655 #. type: IP
5656 #: build/C/man2/sigaltstack.2:63 build/C/man7/signal.7:387
5657 #, no-wrap
5658 msgid "1."
5659 msgstr "1."
5660
5661 #. type: Plain text
5662 #: build/C/man2/sigaltstack.2:67
5663 msgid "Allocate an area of memory to be used for the alternate signal stack."
5664 msgstr "代替シグナルスタックで使うメモリ領域を確保する。"
5665
5666 #. type: IP
5667 #: build/C/man2/sigaltstack.2:67 build/C/man7/signal.7:391
5668 #, no-wrap
5669 msgid "2."
5670 msgstr "2."
5671
5672 #. type: Plain text
5673 #: build/C/man2/sigaltstack.2:73
5674 msgid ""
5675 "Use B<sigaltstack>()  to inform the system of the existence and location of "
5676 "the alternate signal stack."
5677 msgstr ""
5678 "B<sigaltstack>()  を使って、 代替シグナルスタックの存在と場所をシステムに知ら"
5679 "せる。"
5680
5681 #. type: IP
5682 #: build/C/man2/sigaltstack.2:73 build/C/man7/signal.7:411
5683 #, no-wrap
5684 msgid "3."
5685 msgstr "3."
5686
5687 #. type: Plain text
5688 #: build/C/man2/sigaltstack.2:80
5689 msgid ""
5690 "When establishing a signal handler using B<sigaction>(2), inform the system "
5691 "that the signal handler should be executed on the alternate signal stack by "
5692 "specifying the B<SA_ONSTACK> flag."
5693 msgstr ""
5694 "B<sigaction>(2)  を使ってシグナルハンドラを確立する際、 B<SA_ONSTACK> フラグ"
5695 "を指定することにより、 そのシグナルハンドラを代替シグナルスタック上で実行する"
5696 "ことを システムに知らせる。"
5697
5698 #. type: Plain text
5699 #: build/C/man2/sigaltstack.2:88
5700 msgid ""
5701 "The I<ss> argument is used to specify a new alternate signal stack, while "
5702 "the I<oss> argument is used to retrieve information about the currently "
5703 "established signal stack.  If we are interested in performing just one of "
5704 "these tasks then the other argument can be specified as NULL.  Each of these "
5705 "arguments is a structure of the following type:"
5706 msgstr ""
5707 "I<ss> 引き数は、新しいシグナルスタックを指定するために使う。 また I<oss> 引き"
5708 "数は、現在確立されている シグナルスタックの情報を取得するために使う。 この操"
5709 "作のうち 1 つだけを実行させるには、 使用しない引き数を NULL に指定すればよ"
5710 "い。 引き数となる構造体は、以下のような型である:"
5711
5712 #. type: Plain text
5713 #: build/C/man2/sigaltstack.2:96
5714 #, no-wrap
5715 msgid ""
5716 "typedef struct {\n"
5717 "    void  *ss_sp;     /* Base address of stack */\n"
5718 "    int    ss_flags;  /* Flags */\n"
5719 "    size_t ss_size;   /* Number of bytes in stack */\n"
5720 "} stack_t;\n"
5721 msgstr ""
5722 "typedef struct {\n"
5723 "    void  *ss_sp;     /* スタックのベースアドレス */\n"
5724 "    int    ss_flags;  /* フラグ */\n"
5725 "    size_t ss_size;   /* スタックのバイト数 */\n"
5726 "} stack_t;\n"
5727
5728 #. type: Plain text
5729 #: build/C/man2/sigaltstack.2:107
5730 msgid ""
5731 "To establish a new alternate signal stack, I<ss.ss_flags> is set to zero, "
5732 "and I<ss.ss_sp> and I<ss.ss_size> specify the starting address and size of "
5733 "the stack.  The constant B<SIGSTKSZ> is defined to be large enough to cover "
5734 "the usual size requirements for an alternate signal stack, and the constant "
5735 "B<MINSIGSTKSZ> defines the minimum size required to execute a signal handler."
5736 msgstr ""
5737 "新規の代替シグナルスタックを確立するには、 I<ss.ss_flags> を 0 に設定し、 "
5738 "I<ss.ss_sp> と I<ss.ss_size> に スタックの開始アドレスとスタックサイズを指定"
5739 "する。 定数 B<SIGSTKSZ> は、代替シグナルスタックが通常必要する サイズよりも充"
5740 "分大きく定義されている。 また定数 B<MINSIGSTKSZ> は、 シグナルハンドラの実行"
5741 "に必要な最小サイズに定義されている。"
5742
5743 #. type: Plain text
5744 #: build/C/man2/sigaltstack.2:111
5745 msgid ""
5746 "When a signal handler is invoked on the alternate stack, the kernel "
5747 "automatically aligns the address given in I<ss.ss_sp> to a suitable address "
5748 "boundary for the underlying hardware architecture."
5749 msgstr ""
5750 "代替スタックでシグナルハンドラが起動された場合には、 カーネルにより自動的に、"
5751 "I<ss.ss_sp> で指定されたアドレスは 動作しているハードウェアアーキテクチャに適"
5752 "したアドレス境界に 調整される。"
5753
5754 #. type: Plain text
5755 #: build/C/man2/sigaltstack.2:116
5756 msgid ""
5757 "To disable an existing stack, specify I<ss.ss_flags> as B<SS_DISABLE>.  In "
5758 "this case, the remaining fields in I<ss> are ignored."
5759 msgstr ""
5760 "既存のスタックを無効にするには、 I<ss.ss_flags> を B<SS_DISABLE> に指定す"
5761 "る。 この場合、I<ss> の他のフィールドは無視される。"
5762
5763 #. type: Plain text
5764 #: build/C/man2/sigaltstack.2:124
5765 msgid ""
5766 "If I<oss> is not NULL, then it is used to return information about the "
5767 "alternate signal stack which was in effect prior to the call to "
5768 "B<sigaltstack>().  The I<oss.ss_sp> and I<oss.ss_size> fields return the "
5769 "starting address and size of that stack.  The I<oss.ss_flags> may return "
5770 "either of the following values:"
5771 msgstr ""
5772 "I<oss> が NULL 以外の場合、 I<oss> に代替シグナルスタックの情報が返される。 "
5773 "これは (実質的に)  B<sigaltstack>()  の呼び出しより先に行われる。 I<oss."
5774 "ss_sp> と I<oss.ss_size> フィールドに スタックの開始アドレスとスタックサイズ"
5775 "が返される。 I<oss.ss_flags> には以下のどちらかの値が返される:"
5776
5777 #. type: TP
5778 #: build/C/man2/sigaltstack.2:124
5779 #, no-wrap
5780 msgid "B<SS_ONSTACK>"
5781 msgstr "B<SS_ONSTACK>"
5782
5783 #. type: Plain text
5784 #: build/C/man2/sigaltstack.2:130
5785 msgid ""
5786 "The process is currently executing on the alternate signal stack.  (Note "
5787 "that it is not possible to change the alternate signal stack if the process "
5788 "is currently executing on it.)"
5789 msgstr ""
5790 "プロセスが代替シグナルスタック上で実行されている (プロセスが既にそのシグナル"
5791 "スタック上で実行されている場合は、 それと同じシグナルスタックには変更できない"
5792 "点に注意すること)。"
5793
5794 #. type: TP
5795 #: build/C/man2/sigaltstack.2:130
5796 #, no-wrap
5797 msgid "B<SS_DISABLE>"
5798 msgstr "B<SS_DISABLE>"
5799
5800 #. type: Plain text
5801 #: build/C/man2/sigaltstack.2:133
5802 msgid "The alternate signal stack is currently disabled."
5803 msgstr "代替シグナルスタックが現在無効になっている。"
5804
5805 #. type: Plain text
5806 #: build/C/man2/sigaltstack.2:137
5807 msgid ""
5808 "B<sigaltstack>()  returns 0 on success, or -1 on failure with I<errno> set "
5809 "to indicate the error."
5810 msgstr ""
5811 "B<sigaltstack>()  は成功した場合 0 を返す。 失敗した場合は -1 を返して、 エ"
5812 "ラーを示す値に I<errno> を設定する。"
5813
5814 #. type: Plain text
5815 #: build/C/man2/sigaltstack.2:142
5816 msgid ""
5817 "Either I<ss> or I<oss> is not NULL and points to an area outside of the "
5818 "process's address space."
5819 msgstr ""
5820 "I<ss> または I<oss> のどちらが、NULL 以外で、 かつプロセスのアドレス空間の外"
5821 "を指している。"
5822
5823 #. type: Plain text
5824 #: build/C/man2/sigaltstack.2:147
5825 msgid ""
5826 "I<ss> is not NULL and the I<ss_flags> field contains a nonzero value other "
5827 "than B<SS_DISABLE>."
5828 msgstr ""
5829 "I<ss> が NULL 以外で、I<ss_flags> フィールドが B<SS_DISABLE> 以外の 0 でない"
5830 "値になっている。"
5831
5832 #. type: Plain text
5833 #: build/C/man2/sigaltstack.2:151
5834 msgid ""
5835 "The specified size of the new alternate signal stack (I<ss.ss_size>) was "
5836 "less than B<MINSTKSZ>."
5837 msgstr ""
5838 "新しい代替シグナルスタック (I<ss.ss_size>) に指定したサイズが B<MINSTKSZ> よ"
5839 "り小さい。"
5840
5841 #. type: Plain text
5842 #: build/C/man2/sigaltstack.2:156
5843 msgid ""
5844 "An attempt was made to change the alternate signal stack while it was active "
5845 "(i.e., the process was already executing on the current alternate signal "
5846 "stack)."
5847 msgstr ""
5848 "代替シグナルスタックが有効であるときに変更を行おうとした (つまり、プロセスが"
5849 "既に現在の代替シグナルスタック上で実行されていた)。"
5850
5851 #. type: Plain text
5852 #: build/C/man2/sigaltstack.2:158
5853 msgid "SUSv2, SVr4, POSIX.1-2001."
5854 msgstr "SUSv2, SVr4, POSIX.1-2001."
5855
5856 #. type: Plain text
5857 #: build/C/man2/sigaltstack.2:166
5858 msgid ""
5859 "The most common usage of an alternate signal stack is to handle the "
5860 "B<SIGSEGV> signal that is generated if the space available for the normal "
5861 "process stack is exhausted: in this case, a signal handler for B<SIGSEGV> "
5862 "cannot be invoked on the process stack; if we wish to handle it, we must use "
5863 "an alternate signal stack."
5864 msgstr ""
5865 "代替シグナルスタックを使用する最もよくある場面は、 B<SIGSEGV> シグナルを扱う"
5866 "ときである。 B<SIGSEGV> はプロセスの通常のスタックが利用できる空間が使い果た"
5867 "された際に 生成されるシグナルである。この場合には、 B<SIGSEGV> 用のシグナルハ"
5868 "ンドラをプロセスのスタック上では起動することができない。 そのため、このシグナ"
5869 "ルを扱おうとする場合には、 代替シグナルスタックを使用しなければならない。"
5870
5871 #. type: Plain text
5872 #: build/C/man2/sigaltstack.2:176
5873 msgid ""
5874 "Establishing an alternate signal stack is useful if a process expects that "
5875 "it may exhaust its standard stack.  This may occur, for example, because the "
5876 "stack grows so large that it encounters the upwardly growing heap, or it "
5877 "reaches a limit established by a call to B<setrlimit(RLIMIT_STACK, &rlim)>.  "
5878 "If the standard stack is exhausted, the kernel sends the process a "
5879 "B<SIGSEGV> signal.  In these circumstances the only way to catch this signal "
5880 "is on an alternate signal stack."
5881 msgstr ""
5882 "プロセスが標準のシグナルスタックを使い果たすことが予想される場合は、 代替シグ"
5883 "ナルスタックを確立すると便利である。 例えば、スタックが最上位アドレスから 下"
5884 "位アドレス方向に非常にたくさん積まれてしまうことで、 最下位アドレスから上位ア"
5885 "ドレス方向に積まれるヒープとぶつかってしまう場合や、 B<setrlimit"
5886 "(RLIMIT_STACK, &rlim)> の呼び出しで確立された 制限に達してしまった場合に、こ"
5887 "の様な事が起こる。 標準のスタックを使い果たしてしまうと、 カーネルはプロセス"
5888 "に B<SIGSEGV> シグナルを送る。 このような状況では、代替シグナルスタック上でし"
5889 "かシグナルをキャッチできない。"
5890
5891 #. type: Plain text
5892 #: build/C/man2/sigaltstack.2:182
5893 msgid ""
5894 "On most hardware architectures supported by Linux, stacks grow downward.  "
5895 "B<sigaltstack>()  automatically takes account of the direction of stack "
5896 "growth."
5897 msgstr ""
5898 "Linux がサポートする多くのハードウェアアーキテクチャでは、 スタックは下位アド"
5899 "レス方向に積まれる。 B<sigaltstack>()  はスタックが積まれる方向を自動的に決定"
5900 "する。"
5901
5902 #. type: Plain text
5903 #: build/C/man2/sigaltstack.2:191
5904 msgid ""
5905 "Functions called from a signal handler executing on an alternate signal "
5906 "stack will also use the alternate signal stack.  (This also applies to any "
5907 "handlers invoked for other signals while the process is executing on the "
5908 "alternate signal stack.)  Unlike the standard stack, the system does not "
5909 "automatically extend the alternate signal stack.  Exceeding the allocated "
5910 "size of the alternate signal stack will lead to unpredictable results."
5911 msgstr ""
5912 "代替シグナルスタック上で実行されている シグナルハンドラから呼ばれる関数も、代"
5913 "替シグナルハンドラを使う (プロセスが代替シグナルスタック上で実行されている場"
5914 "合、 他のシグナルで呼び出されるハンドラもこの代替シグナルハンドラを使う)。 標"
5915 "準のスタックとは異なり、 システムは代替シグナルスタックを自動的に拡張しな"
5916 "い。 代替シグナルスタック用に確保したサイズを越えた場合、 結果は予想できな"
5917 "い。"
5918
5919 #. type: Plain text
5920 #: build/C/man2/sigaltstack.2:199
5921 msgid ""
5922 "A successful call to B<execve>(2)  removes any existing alternate signal "
5923 "stack.  A child process created via B<fork>(2)  inherits a copy of its "
5924 "parent's alternate signal stack settings."
5925 msgstr ""
5926 "B<execve>(2)  の呼び出しが成功すると、 既存の全ての代替シグナルスタックが削除"
5927 "される。 B<fork>(2)  経由で作成された子プロセスは、親プロセスの代替シグナルス"
5928 "タックの 設定のコピーを継承する。"
5929
5930 #. type: Plain text
5931 #: build/C/man2/sigaltstack.2:208
5932 msgid ""
5933 "B<sigaltstack>()  supersedes the older B<sigstack>()  call.  For backward "
5934 "compatibility, glibc also provides B<sigstack>().  All new applications "
5935 "should be written using B<sigaltstack>()."
5936 msgstr ""
5937 "B<sigaltstack>()  は以前の B<sigstack>()  を置き換えるものである。 過去プログ"
5938 "ラムとの互換性のため、glibc では B<sigstack>()  も提供している。 新しいのアプ"
5939 "リケーションは全て B<sigaltstack>()  を使って書くべきである。"
5940
5941 #. type: SS
5942 #: build/C/man2/sigaltstack.2:208 build/C/man3/sigpause.3:61
5943 #, no-wrap
5944 msgid "History"
5945 msgstr "歴史"
5946
5947 #. type: Plain text
5948 #: build/C/man2/sigaltstack.2:215
5949 msgid ""
5950 "4.2BSD had a B<sigstack>()  system call.  It used a slightly different "
5951 "struct, and had the major disadvantage that the caller had to know the "
5952 "direction of stack growth."
5953 msgstr ""
5954 "4.2BSD には B<sigstack>()  システムコールがあった。 この関数は少し異なった構"
5955 "造体を使っており、 呼び出した側がスタックの積まれる方向を知っていなければなら"
5956 "ないという 大きな欠点があった。"
5957
5958 #. type: Plain text
5959 #: build/C/man2/sigaltstack.2:218
5960 msgid "The following code segment demonstrates the use of B<sigaltstack>():"
5961 msgstr "以下のコードで B<sigaltstack>()  の使用法の一部を示す:"
5962
5963 #. type: Plain text
5964 #: build/C/man2/sigaltstack.2:222
5965 #, no-wrap
5966 msgid "stack_t ss;\n"
5967 msgstr "stack_t ss;\n"
5968
5969 #. type: Plain text
5970 #: build/C/man2/sigaltstack.2:230
5971 #, no-wrap
5972 msgid ""
5973 "ss.ss_sp = malloc(SIGSTKSZ);\n"
5974 "if (ss.ss_sp == NULL)\n"
5975 "    /* Handle error */;\n"
5976 "ss.ss_size = SIGSTKSZ;\n"
5977 "ss.ss_flags = 0;\n"
5978 "if (sigaltstack(&ss, NULL) == -1)\n"
5979 "    /* Handle error */;\n"
5980 msgstr ""
5981 "ss.ss_sp = malloc(SIGSTKSZ);\n"
5982 "if (ss.ss_sp == NULL)\n"
5983 "    /* ハンドルエラー */;\n"
5984 "ss.ss_size = SIGSTKSZ;\n"
5985 "ss.ss_flags = 0;\n"
5986 "if (sigaltstack(&ss, NULL) == -1)\n"
5987 "    /* ハンドルエラー */;\n"
5988
5989 #. type: Plain text
5990 #: build/C/man2/sigaltstack.2:239
5991 msgid ""
5992 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
5993 "B<sigsetjmp>(3), B<signal>(7)"
5994 msgstr ""
5995 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
5996 "B<sigsetjmp>(3), B<signal>(7)"
5997
5998 #. type: TH
5999 #: build/C/man7/sigevent.7:26
6000 #, no-wrap
6001 msgid "SIGEVENT"
6002 msgstr "SIGEVENT"
6003
6004 #. type: TH
6005 #: build/C/man7/sigevent.7:26
6006 #, no-wrap
6007 msgid "2011-09-09"
6008 msgstr "2011-09-09"
6009
6010 #. type: Plain text
6011 #: build/C/man7/sigevent.7:29
6012 msgid "sigevent - structure for notification from asynchronous routines"
6013 msgstr "sigevent - 非同期ルーチンからの通知用の構造体"
6014
6015 #. type: Plain text
6016 #: build/C/man7/sigevent.7:36
6017 #, no-wrap
6018 msgid ""
6019 "union sigval {          /* Data passed with notification */\n"
6020 "    int     sival_int;         /* Integer value */\n"
6021 "    void   *sival_ptr;         /* Pointer value */\n"
6022 "};\n"
6023 msgstr ""
6024 "union sigval {          /* Data passed with notification */\n"
6025 "    int     sival_int;         /* Integer value */\n"
6026 "    void   *sival_ptr;         /* Pointer value */\n"
6027 "};\n"
6028
6029 #. type: Plain text
6030 #: build/C/man7/sigevent.7:51
6031 #, no-wrap
6032 msgid ""
6033 "struct sigevent {\n"
6034 "    int          sigev_notify; /* Notification method */\n"
6035 "    int          sigev_signo;  /* Notification signal */\n"
6036 "    union sigval sigev_value;  /* Data passed with\n"
6037 "                                  notification */\n"
6038 "    void       (*sigev_notify_function) (union sigval);\n"
6039 "                     /* Function used for thread\n"
6040 "                        notification (SIGEV_THREAD) */\n"
6041 "    void        *sigev_notify_attributes;\n"
6042 "                     /* Attributes for notification thread\n"
6043 "                        (SIGEV_THREAD) */\n"
6044 "    pid_t        sigev_notify_thread_id;\n"
6045 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
6046 "};\n"
6047 msgstr ""
6048 "struct sigevent {\n"
6049 "    int          sigev_notify; /* Notification method */\n"
6050 "    int          sigev_signo;  /* Notification signal */\n"
6051 "    union sigval sigev_value;  /* Data passed with\n"
6052 "                                  notification */\n"
6053 "    void       (*sigev_notify_function) (union sigval);\n"
6054 "                     /* Function used for thread\n"
6055 "                        notification (SIGEV_THREAD) */\n"
6056 "    void        *sigev_notify_attributes;\n"
6057 "                     /* Attributes for notification thread\n"
6058 "                        (SIGEV_THREAD) */\n"
6059 "    pid_t        sigev_notify_thread_id;\n"
6060 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
6061 "};\n"
6062
6063 #. type: Plain text
6064 #: build/C/man7/sigevent.7:60
6065 msgid ""
6066 "The I<sigevent> structure is used by various APIs to describe the way a "
6067 "process is to be notified about an event (e.g., completion of an "
6068 "asynchronous request, expiration of a timer, or the arrival of a message)."
6069 msgstr "I<sigevent> 構造体は、イベントに関する情報をプロセスに通知するために様々な API で使用される (イベントの例としては、 非同期処理要求の完了、 タイマーの満了、 メッセージの到着など)。"
6070
6071 #. type: Plain text
6072 #: build/C/man7/sigevent.7:68
6073 msgid ""
6074 "The definition shown in the SYNOPSIS is approximate: some of the fields in "
6075 "the I<sigevent> structure may be defined as part of a union.  Programs "
6076 "should employ only those fields relevant to the value specified in "
6077 "I<sigev_notify>."
6078 msgstr "「書式」に記載されている定義はおおよそのものである。 I<sigevent> 構造体のいくつかのフィールドは、 共用体の一部として定義されているものもある。 プログラムは、 I<sigev_notify> で指定された値に応じたフィールドだけを利用すべきである。"
6079
6080 #. type: Plain text
6081 #: build/C/man7/sigevent.7:73
6082 msgid ""
6083 "The I<sigev_notify> field specifies how notification is to be performed.  "
6084 "This field can have one of the following values:"
6085 msgstr "I<sigev_notify> フィールドは、通知をどのように処理すべきかを指定する。 このフィールドは、以下のいずれかの値である。"
6086
6087 #. type: TP
6088 #: build/C/man7/sigevent.7:73 build/C/man2/timer_create.2:107
6089 #, no-wrap
6090 msgid "B<SIGEV_NONE>"
6091 msgstr "B<SIGEV_NONE>"
6092
6093 #. type: Plain text
6094 #: build/C/man7/sigevent.7:76
6095 msgid "A \"null\" notification: don't do anything when the event occurs."
6096 msgstr "「空 (null)」の通知。 イベントが発生時には何もしないこと。"
6097
6098 #. type: TP
6099 #: build/C/man7/sigevent.7:76 build/C/man2/timer_create.2:112
6100 #, no-wrap
6101 msgid "B<SIGEV_SIGNAL>"
6102 msgstr "B<SIGEV_SIGNAL>"
6103
6104 #. type: Plain text
6105 #: build/C/man7/sigevent.7:80
6106 msgid "Notify the process by sending the signal specified in I<sigev_signo>."
6107 msgstr "I<sigev_signo> で指定されたシグナルを送信することで、プロセスへの通知を行う。"
6108
6109 #. type: Plain text
6110 #: build/C/man7/sigevent.7:87
6111 msgid ""
6112 "If the signal is caught with a signal handler that was registered using the "
6113 "B<sigaction>(2)  B<SA_SIGINFO> flag, then the following fields are set in "
6114 "the I<siginfo_t> structure that is passed as the second argument of the "
6115 "handler:"
6116 msgstr "B<sigaction>(2) の B<SA_SIGINFO> フラグを使った登録されたシグナルハンドラによりシグナルが捕捉されると、 シグナルハンドラの 2 番目の引き数として渡された I<siginfo_t> 構造体の以下のフィールドが設定される。"
6117
6118 #. type: Plain text
6119 #: build/C/man7/sigevent.7:92
6120 msgid ""
6121 "This field is set to a value that depends on the API delivering the "
6122 "notification."
6123 msgstr "このフィールドには通知を配送した API に応じた決まる値が設定される。"
6124
6125 #. type: TP
6126 #: build/C/man7/sigevent.7:92 build/C/man2/wait.2:300
6127 #, no-wrap
6128 msgid "I<si_signo>"
6129 msgstr "I<si_signo>"
6130
6131 #. type: Plain text
6132 #: build/C/man7/sigevent.7:96
6133 msgid ""
6134 "This field is set to the signal number (i.e., the same value as in "
6135 "I<sigev_signo>)."
6136 msgstr "このフィールドにはシグナル番号 (すなわち I<sigev_signo> と同じ値) が設定される。"
6137
6138 #. type: Plain text
6139 #: build/C/man7/sigevent.7:100
6140 msgid "This field is set to the value specified in I<sigev_value>."
6141 msgstr "このフィールドには I<sigev_value> で指定された値が設定される。"
6142
6143 #. type: Plain text
6144 #: build/C/man7/sigevent.7:105
6145 msgid ""
6146 "Depending on the API, other fields may also be set in the I<siginfo_t> "
6147 "structure."
6148 msgstr "API によっては I<siginfo_t> 構造体の他のフィールドが設定される場合もある。"
6149
6150 #. type: Plain text
6151 #: build/C/man7/sigevent.7:108
6152 msgid ""
6153 "The same information is also available if the signal is accepted using "
6154 "B<sigwaitinfo>(2)."
6155 msgstr "シグナルを受け取ったときには B<sigwaitinfo>(2) でも同じ情報が得られる。"
6156
6157 #. type: TP
6158 #: build/C/man7/sigevent.7:108 build/C/man2/timer_create.2:130
6159 #, no-wrap
6160 msgid "B<SIGEV_THREAD>"
6161 msgstr "B<SIGEV_THREAD>"
6162
6163 #. type: Plain text
6164 #: build/C/man7/sigevent.7:125
6165 msgid ""
6166 "Notify the process by invoking I<sigev_notify_function> \"as if\" it were "
6167 "the start function of a new thread.  (Among the implementation possibilities "
6168 "here are that each timer notification could result in the creation of a new "
6169 "thread, or that a single thread is created to receive all notifications.)  "
6170 "The function is invoked with I<sigev_value> as its sole argument.  If "
6171 "I<sigev_notify_attributes> is not NULL, it should point to a "
6172 "I<pthread_attr_t> structure that defines attributes for the new thread (see "
6173 "B<pthread_attr_init>(3))."
6174 msgstr "「あたかも」新しいスレッドセーフの開始関数であるかのように I<sigev_notify_function> を起動することで、 プロセスへの通知を行う (実装の可能性としては、 タイマー通知の度に新しいスレッドセーフが作成される場合も、 一つのスレッドを作成してすべての通知を受信する場合もある)。 この関数は I<sigev_value> を唯一の引き数として起動される。 I<sigev_notify_attributes> は、 NULL 以外の場合は、 新しいスレッドセーフの属性を定義する I<pthread_attr_t> 構造体を指していなければならない (B<pthread_attr_init>(3) 参照)。"
6175
6176 #. type: TP
6177 #: build/C/man7/sigevent.7:125 build/C/man2/timer_create.2:138
6178 #, no-wrap
6179 msgid "B<SIGEV_THREAD_ID> (Linux-specific)"
6180 msgstr "B<SIGEV_THREAD_ID> (Linux 固有)"
6181
6182 #.  | SIGEV_SIGNAL vs not?
6183 #. type: Plain text
6184 #: build/C/man7/sigevent.7:130
6185 msgid "Currently used only by POSIX timers; see B<timer_create>(2)."
6186 msgstr "現在のところ POSIX でのみ使用されている。 B<timer_create>(2) 参照。"
6187
6188 #. type: Plain text
6189 #: build/C/man7/sigevent.7:132 build/C/man2/sigpending.2:66
6190 #: build/C/man2/sigprocmask.2:114 build/C/man3/sigqueue.3:116
6191 #: build/C/man3/sigsetops.3:133 build/C/man2/sigsuspend.2:86
6192 #: build/C/man3/sigwait.3:82 build/C/man2/sigwaitinfo.2:135
6193 #: build/C/man2/timer_create.2:195 build/C/man2/timer_delete.2:69
6194 #: build/C/man2/timer_getoverrun.2:99 build/C/man2/timer_settime.2:209
6195 msgid "POSIX.1-2001."
6196 msgstr "POSIX.1-2001."
6197
6198 #. type: Plain text
6199 #: build/C/man7/sigevent.7:142
6200 msgid ""
6201 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
6202 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
6203 "B<pthreads>(7)"
6204 msgstr ""
6205 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
6206 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
6207 "B<pthreads>(7)"
6208
6209 #. type: TH
6210 #: build/C/man3/siginterrupt.3:31
6211 #, no-wrap
6212 msgid "SIGINTERRUPT"
6213 msgstr "SIGINTERRUPT"
6214
6215 #. type: Plain text
6216 #: build/C/man3/siginterrupt.3:34
6217 msgid "siginterrupt - allow signals to interrupt system calls"
6218 msgstr "siginterrupt - シグナルでシステム・コールに割り込むことを許す"
6219
6220 #. type: Plain text
6221 #: build/C/man3/siginterrupt.3:39
6222 #, no-wrap
6223 msgid "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
6224 msgstr "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
6225
6226 #. type: Plain text
6227 #: build/C/man3/siginterrupt.3:47
6228 msgid "B<siginterrupt>():"
6229 msgstr "B<siginterrupt>():"
6230
6231 #. type: Plain text
6232 #: build/C/man3/siginterrupt.3:64
6233 msgid ""
6234 "The B<siginterrupt>()  function changes the restart behavior when a system "
6235 "call is interrupted by the signal I<sig>.  If the I<flag> argument is false "
6236 "(0), then system calls will be restarted if interrupted by the specified "
6237 "signal I<sig>.  This is the default behavior in Linux."
6238 msgstr ""
6239 "B<siginterrupt>()  関数は、システム・コールがシグナル I<sig> によって割り込ま"
6240 "れた後、再実行の際の振る舞いを変更する。 I<flag> 引き数が偽 (0) ならば、シス"
6241 "テム・コールが指定した シグナル I<sig> によって割り込まれた後に、そのシステ"
6242 "ム・コールは 再実行される。これは Linux においてデフォルトの動作である。"
6243
6244 #. type: Plain text
6245 #: build/C/man3/siginterrupt.3:69
6246 msgid ""
6247 "If the I<flag> argument is true (1) and no data has been transferred, then a "
6248 "system call interrupted by the signal I<sig> will return -1 and I<errno> "
6249 "will be set to B<EINTR>."
6250 msgstr ""
6251 "I<flag> 引き数が真 (1) でデータの転送が全く行なわれていないならば、 シグナル "
6252 "I<sig> でシステム・コールは中断されて、-1 が返され、 I<errno> に B<EINTR> が"
6253 "設定される。"
6254
6255 #. type: Plain text
6256 #: build/C/man3/siginterrupt.3:73
6257 msgid ""
6258 "If the I<flag> argument is true (1) and data transfer has started, then the "
6259 "system call will be interrupted and will return the actual amount of data "
6260 "transferred."
6261 msgstr ""
6262 "I<flag> 引き数が真 (1) でデータの転送が開始されていれば、 システム・コールは"
6263 "中断され、それまでに実際に転送されたデータ の量が返される。"
6264
6265 #. type: Plain text
6266 #: build/C/man3/siginterrupt.3:83
6267 msgid ""
6268 "The B<siginterrupt>()  function returns 0 on success.  It returns -1 if the "
6269 "signal number I<sig> is invalid, with I<errno> set to indicate the cause of "
6270 "the error."
6271 msgstr "B<siginterrupt>()  関数は成功した場合 0 を返す。 シグナル番号 I<sig> が不正な場合、 -1 を返し、 I<errno> にエラーの原因を示す値を設定する。"
6272
6273 #. type: Plain text
6274 #: build/C/man3/siginterrupt.3:87
6275 msgid "The specified signal number is invalid."
6276 msgstr "指定したシグナル番号が不正である。"
6277
6278 #. type: Plain text
6279 #: build/C/man3/siginterrupt.3:96
6280 msgid ""
6281 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 marks B<siginterrupt>()  as obsolete, "
6282 "recommending the use of B<sigaction>(2)  with the B<SA_RESTART> flag instead."
6283 msgstr ""
6284 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 は、 B<siginterrupt>()  を廃止予定として"
6285 "いる。 代わりに、 B<sigaction>(2)  に B<SA_RESTART> フラグを指定して使うこと"
6286 "を推奨している。"
6287
6288 #. type: Plain text
6289 #: build/C/man3/siginterrupt.3:98
6290 msgid "B<signal>(2)"
6291 msgstr "B<signal>(2)"
6292
6293 #. type: TH
6294 #: build/C/man2/signal.2:36 build/C/man7/signal.7:46
6295 #, no-wrap
6296 msgid "SIGNAL"
6297 msgstr "SIGNAL"
6298
6299 #. type: Plain text
6300 #: build/C/man2/signal.2:39
6301 msgid "signal - ANSI C signal handling"
6302 msgstr "signal - ANSI C シグナル操作"
6303
6304 #. type: Plain text
6305 #: build/C/man2/signal.2:45
6306 msgid "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
6307 msgstr ""
6308 "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<sighandler>B<);>"
6309
6310 #. type: Plain text
6311 #: build/C/man2/signal.2:54
6312 msgid ""
6313 "The behavior of B<signal>()  varies across UNIX versions, and has also "
6314 "varied historically across different versions of Linux.  B<Avoid its use>: "
6315 "use B<sigaction>(2)  instead.  See I<Portability> below."
6316 msgstr ""
6317 "B<signal>()  の動作は UNIX のバージョンにより異なる。 また、歴史的に見て "
6318 "Linux のバージョンによっても異なっている。 B<このシステムコールの使用は避け、"
6319 "> 代わりに B<sigaction>(2)  を使用すること。 下記の「移植性」を参照。"
6320
6321 #. type: Plain text
6322 #: build/C/man2/signal.2:64
6323 msgid ""
6324 "B<signal>()  sets the disposition of the signal I<signum> to I<handler>, "
6325 "which is either B<SIG_IGN>, B<SIG_DFL>, or the address of a programmer-"
6326 "defined function (a \"signal handler\")."
6327 msgstr ""
6328 "B<signal>()  はシグナル I<signum> の処理方法を I<handler> に設定する。 "
6329 "I<handler> には、 B<SIG_IGN>、 B<SIG_DFL>、 プログラマが定義した関数 (「シグ"
6330 "ナル・ハンドラ」) のアドレスの いずれかを指定する。"
6331
6332 #. type: Plain text
6333 #: build/C/man2/signal.2:68
6334 msgid ""
6335 "If the signal I<signum> is delivered to the process, then one of the "
6336 "following happens:"
6337 msgstr ""
6338 "シグナル I<signum> がプロセスに配送されると、以下のいずれかが発生する。"
6339
6340 #. type: Plain text
6341 #: build/C/man2/signal.2:73
6342 msgid "If the disposition is set to B<SIG_IGN>, then the signal is ignored."
6343 msgstr "処理方法が B<SIG_IGN> に設定されている場合、そのシグナルは無視される。"
6344
6345 #. type: Plain text
6346 #: build/C/man2/signal.2:80
6347 msgid ""
6348 "If the disposition is set to B<SIG_DFL>, then the default action associated "
6349 "with the signal (see B<signal>(7))  occurs."
6350 msgstr ""
6351 "処理方法が B<SIG_DFL> に設定されている場合、シグナルに関連づけられた デフォル"
6352 "トの動作が行われる (B<signal>(7)  参照)。"
6353
6354 #. type: Plain text
6355 #: build/C/man2/signal.2:91
6356 msgid ""
6357 "If the disposition is set to a function, then first either the disposition "
6358 "is reset to B<SIG_DFL>, or the signal is blocked (see I<Portability> below), "
6359 "and then I<handler> is called with argument I<signum>.  If invocation of the "
6360 "handler caused the signal to be blocked, then the signal is unblocked upon "
6361 "return from the handler."
6362 msgstr ""
6363 "処理方法として関数が設定されている場合、 まず最初に処理方法が B<SIG_DFL> にリ"
6364 "セットされるかそのシグナルのブロックが実行された後、 I<signum> を引き数とし"
6365 "て I<handler> が呼び出される。 ハンドラが起動される際にシグナルがブロックされ"
6366 "た場合、 ハンドラが返る際にそのシグナルのブロックが解除される。"
6367
6368 #. type: Plain text
6369 #: build/C/man2/signal.2:97
6370 msgid "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught or ignored."
6371 msgstr ""
6372 "シグナル B<SIGKILL> と B<SIGSTOP> は捕捉できず、無視することもできない。"
6373
6374 #. type: Plain text
6375 #: build/C/man2/signal.2:105
6376 msgid ""
6377 "B<signal>()  returns the previous value of the signal handler, or B<SIG_ERR> "
6378 "on error.  In the event of an error, I<errno> is set to indicate the cause."
6379 msgstr "B<signal>()  は、今までのシグナル・ハンドラの値を返す。 エラーの場合は B<SIG_ERR> を返し、 I<errno> にエラーの原因を示す値を設定する。"
6380
6381 #. type: Plain text
6382 #: build/C/man2/signal.2:110
6383 msgid "I<signum> is invalid."
6384 msgstr "I<signum> が不正である。"
6385
6386 #. type: Plain text
6387 #: build/C/man2/signal.2:116
6388 msgid "The effects of B<signal>()  in a multithreaded process are unspecified."
6389 msgstr ""
6390 "マルチスレッドプロセスにおける B<signal>()  の結果は、指定されていない。"
6391
6392 #. type: Plain text
6393 #: build/C/man2/signal.2:141
6394 msgid ""
6395 "See B<sigaction>(2)  for details on what happens when B<SIGCHLD> is set to "
6396 "B<SIG_IGN>."
6397 msgstr ""
6398 "B<SIGCHLD> の動作として B<SIG_IGN> を設定した場合の詳細な動作については、 "
6399 "B<sigaction>(2)  を参照すること。"
6400
6401 #. type: Plain text
6402 #: build/C/man2/signal.2:146
6403 msgid ""
6404 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
6405 "safely called from inside a signal handler."
6406 msgstr ""
6407 "シグナル・ハンドラ内から安全に呼び出すことができる、 async-signal-safe "
6408 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
6409 "照。"
6410
6411 #.  libc4 and libc5 define
6412 #.  .IR SignalHandler ;
6413 #. type: Plain text
6414 #: build/C/man2/signal.2:162
6415 msgid ""
6416 "The use of I<sighandler_t> is a GNU extension, exposed if B<_GNU_SOURCE> is "
6417 "defined; glibc also defines (the BSD-derived)  I<sig_t> if B<_BSD_SOURCE> is "
6418 "defined.  Without use of such a type, the declaration of B<signal>()  is the "
6419 "somewhat harder to read:"
6420 msgstr ""
6421 "I<sighandler_t> の使用は GNU 拡張であり、 B<_GNU_SOURCE> が定義された\n"
6422 "場合に公開される。glibc では B<_BSD_SOURCE> が定義された場合には (BSD\n"
6423 "由来の) I<sig_t> も定義される。このような型を使用しないと、\n"
6424 "B<signal>() の宣言は読みにくいものとなる。"
6425
6426 #. type: Plain text
6427 #: build/C/man2/signal.2:166
6428 #, no-wrap
6429 msgid "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
6430 msgstr "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
6431
6432 #. type: SS
6433 #: build/C/man2/signal.2:168
6434 #, no-wrap
6435 msgid "Portability"
6436 msgstr "移植性"
6437
6438 #. type: Plain text
6439 #: build/C/man2/signal.2:180
6440 msgid ""
6441 "The only portable use of B<signal>()  is to set a signal's disposition to "
6442 "B<SIG_DFL> or B<SIG_IGN>.  The semantics when using B<signal>()  to "
6443 "establish a signal handler vary across systems (and POSIX.1 explicitly "
6444 "permits this variation); B<do not use it for this purpose.>"
6445 msgstr ""
6446 "移植性のある B<signal>()  の使い方は、シグナルの処理方法を B<SIG_DFL> か "
6447 "B<SIG_IGN> に設定する方法だけである。 シグナル・ハンドラを設定するのに "
6448 "B<signal>()  を使ったときの動作はシステムにより異なる (POSIX.1 は明示的にこの"
6449 "違いを認めている)。 B<移植性が必要なときはこのシステムコールを使用しないこ"
6450 "と。>"
6451
6452 #. type: Plain text
6453 #: build/C/man2/signal.2:186
6454 msgid ""
6455 "POSIX.1 solved the portability mess by specifying B<sigaction>(2), which "
6456 "provides explicit control of the semantics when a signal handler is invoked; "
6457 "use that interface instead of B<signal>()."
6458 msgstr ""
6459 "POSIX.1 は、 B<sigaction>(2)  を規定することで移植性に関する混乱を解決した。 "
6460 "B<sigaction>(2)  はシグナル・ハンドラが起動される際の挙動を明示的に制御でき"
6461 "る。 B<signal>()  の代わりにこのインターフェイスを使うこと。"
6462
6463 #. type: Plain text
6464 #: build/C/man2/signal.2:196
6465 msgid ""
6466 "In the original UNIX systems, when a handler that was established using "
6467 "B<signal>()  was invoked by the delivery of a signal, the disposition of the "
6468 "signal would be reset to B<SIG_DFL>, and the system did not block delivery "
6469 "of further instances of the signal.  This is equivalent to calling "
6470 "B<sigaction>(2)  with the following flags:"
6471 msgstr ""
6472 "オリジナルの UNIX システムでは、 B<signal>()  を使って設定されたハンドラがシ"
6473 "グナルの配送により起動されると、 そのシグナルの処理方法は B<SIG_DFL> にリセッ"
6474 "トされ、システムは同じシグナルがさらに生成されても シグナルの配送をブロックし"
6475 "なかった。これは、以下のフラグで B<sigaction>(2) を呼び出すのと等価である。"
6476
6477 #. type: Plain text
6478 #: build/C/man2/signal.2:198
6479 #, no-wrap
6480 msgid "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
6481 msgstr "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
6482
6483 #. type: Plain text
6484 #: build/C/man2/signal.2:205
6485 msgid ""
6486 "System V also provides these semantics for B<signal>().  This was bad "
6487 "because the signal might be delivered again before the handler had a chance "
6488 "to reestablish itself.  Furthermore, rapid deliveries of the same signal "
6489 "could result in recursive invocations of the handler."
6490 msgstr ""
6491 "System V でも、 B<signal>()  に対してこれらの挙動を規定している。 こうした挙"
6492 "動はまずく、ハンドラがハンドラ自身を再設定する機会が 来るより前に、同じシグナ"
6493 "ルがまた配送される可能性がある。 さらに、同じシグナルが立て続けに配送される"
6494 "と、同じシグナルが ハンドラを繰り返し起動されることになる。"
6495
6496 #. type: Plain text
6497 #: build/C/man2/signal.2:220
6498 msgid ""
6499 "BSD improved on this situation, but unfortunately also changed the semantics "
6500 "of the existing B<signal>()  interface while doing so.  On BSD, when a "
6501 "signal handler is invoked, the signal disposition is not reset, and further "
6502 "instances of the signal are blocked from being delivered while the handler "
6503 "is executing.  Furthermore, certain blocking system calls are automatically "
6504 "restarted if interrupted by a signal handler (see B<signal>(7)).  The BSD "
6505 "semantics are equivalent to calling B<sigaction>(2)  with the following "
6506 "flags:"
6507 msgstr ""
6508 "BSD はこの状況が改善したが、残念なことに、その過程で既存の B<signal>() の挙動"
6509 "も変更された。 BSD では、シグナルハンドラが起動された際、 シグナルの処理方法"
6510 "はリセットされず、 ハンドラの実行中は、同じシグナルのさらなる生成は配送がブ"
6511 "ロックされる。 また、 シグナルハンドラが中断された場合、 停止中のシステムコー"
6512 "ルのいくつかは自動的に再スタートされる。 BSD の挙動は、 以下のフラグを指定し"
6513 "た B<sigaction>(2) の呼び出しと等価である。"
6514
6515 #. type: Plain text
6516 #: build/C/man2/signal.2:222
6517 #, no-wrap
6518 msgid "    sa.sa_flags = SA_RESTART;\n"
6519 msgstr "    sa.sa_flags = SA_RESTART;\n"
6520
6521 #. type: Plain text
6522 #: build/C/man2/signal.2:224
6523 msgid "The situation on Linux is as follows:"
6524 msgstr "Linux での状況は以下の通りである。"
6525
6526 #. type: Plain text
6527 #: build/C/man2/signal.2:228
6528 msgid "The kernel's B<signal>()  system call provides System V semantics."
6529 msgstr "カーネルの B<signal>()  システムコールは System V 方式を提供している。"
6530
6531 #. type: Plain text
6532 #: build/C/man2/signal.2:244
6533 msgid ""
6534 "By default, in glibc 2 and later, the B<signal>()  wrapper function does not "
6535 "invoke the kernel system call.  Instead, it calls B<sigaction>(2)  using "
6536 "flags that supply BSD semantics.  This default behavior is provided as long "
6537 "as the B<_BSD_SOURCE> feature test macro is defined.  By default, "
6538 "B<_BSD_SOURCE> is defined; it is also implicitly defined if one defines "
6539 "B<_GNU_SOURCE>, and can of course be explicitly defined."
6540 msgstr ""
6541 "デフォルトでは、glibc 2 以降では、 B<signal>()  ラッパー関数はカーネルのシス"
6542 "テムコールを起動しない。 代わりに、ラッパー関数は BSD 方式を示すフラグを使っ"
6543 "て B<sigaction>(2)  を呼び出す。 機能検査マクロ B<_BSD_SOURCE> を定義していれ"
6544 "ば、このデフォルトの動作となる。 デフォルトでは、 B<_BSD_SOURCE> が定義され"
6545 "る。 B<_BSD_SOURCE> は B<_GNU_SOURCE> が定義された場合には暗黙のうちに定義さ"
6546 "れ、 もちろん明示的に定義することもできる。"
6547
6548 #.  System V semantics are also provided if one uses the separate
6549 #.  .BR sysv_signal (3)
6550 #.  function.
6551 #. type: Plain text
6552 #: build/C/man2/signal.2:267
6553 msgid ""
6554 "On glibc 2 and later, if the B<_BSD_SOURCE> feature test macro is not "
6555 "defined, then B<signal>()  provides System V semantics.  (The default "
6556 "implicit definition of B<_BSD_SOURCE> is not provided if one invokes B<gcc>"
6557 "(1)  in one of its standard modes (I<-std=xxx> or I<-ansi>)  or defines "
6558 "various other feature test macros such as B<_POSIX_SOURCE>, "
6559 "B<_XOPEN_SOURCE>, or B<_SVID_SOURCE>; see B<feature_test_macros>(7).)"
6560 msgstr ""
6561 "glibc 2 以降では、機能検査マクロ B<_BSD_SOURCE> が定義されていなければ、 "
6562 "B<signal>()  は System V 方式となる。 (B<gcc>(1)  が標準指定モード (I<-"
6563 "std=xxx> or I<-ansi>)  で起動された場合、もしくは B<_POSIX_SOURCE>, "
6564 "B<_XOPEN_SOURCE>, B<_SVID_SOURCE> といった他の様々な機能検査マクロが定義され"
6565 "た場合、 デフォルトの B<_BSD_SOURCE> の暗黙の定義は行われない。 "
6566 "B<feature_test_macros>(7)  を参照のこと。)"
6567
6568 #. type: Plain text
6569 #: build/C/man2/signal.2:278
6570 msgid ""
6571 "The B<signal>()  function in Linux libc4 and libc5 provide System V "
6572 "semantics.  If one on a libc5 system includes I<E<lt>bsd/signal.hE<gt>> "
6573 "instead of I<E<lt>signal.hE<gt>>, then B<signal>()  provides BSD semantics."
6574 msgstr ""
6575 "Linux の libc4 と libc5 の B<signal>()  関数は System V 方式である。 libc5 シ"
6576 "ステムにおいて I<E<lt>signal.hE<gt>> のかわりに I<E<lt>bsd/signal.hE<gt>> を"
6577 "インクルードすると、 B<signal>()  は B<__bsd_signal>()  に再定義され、 "
6578 "B<signal>()  は BSD 方式となる。"
6579
6580 #. type: Plain text
6581 #: build/C/man2/signal.2:297
6582 msgid ""
6583 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaction>"
6584 "(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
6585 "B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), B<sigqueue>(3), "
6586 "B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), B<signal>(7)"
6587 msgstr ""
6588 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaction>"
6589 "(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
6590 "B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), B<sigqueue>(3), "
6591 "B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), B<signal>(7)"
6592
6593 #. type: TH
6594 #: build/C/man7/signal.7:46
6595 #, no-wrap
6596 msgid "2012-05-01"
6597 msgstr "2012-05-01"
6598
6599 #. type: Plain text
6600 #: build/C/man7/signal.7:49
6601 msgid "signal - overview of signals"
6602 msgstr "signal - シグナルの概要"
6603
6604 #. type: Plain text
6605 #: build/C/man7/signal.7:52
6606 msgid ""
6607 "Linux supports both POSIX reliable signals (hereinafter \"standard signals"
6608 "\") and POSIX real-time signals."
6609 msgstr ""
6610 "Linux は POSIX 信頼シグナル (reliable signal; 以後 \"標準シグナル\"と表記)  "
6611 "と POSIX リアルタイムシグナルの両方に対応している。"
6612
6613 #. type: SS
6614 #: build/C/man7/signal.7:52
6615 #, no-wrap
6616 msgid "Signal dispositions"
6617 msgstr "シグナル処理方法"
6618
6619 #. type: Plain text
6620 #: build/C/man7/signal.7:57
6621 msgid ""
6622 "Each signal has a current I<disposition>, which determines how the process "
6623 "behaves when it is delivered the signal."
6624 msgstr ""
6625 "シグナルはそれぞれ現在の「処理方法 (disposition)」を保持しており、 この処理方"
6626 "法によりシグナルが配送された際にプロセスが どのような振舞いをするかが決まる。"
6627
6628 #. type: Plain text
6629 #: build/C/man7/signal.7:60
6630 msgid ""
6631 "The entries in the \"Action\" column of the tables below specify the default "
6632 "disposition for each signal, as follows:"
6633 msgstr ""
6634 "後述の表の \"動作\" の欄のエントリは各シグナルのデフォルトの 処理方法を示して"
6635 "おり、以下のような意味を持つ。"
6636
6637 #. type: IP
6638 #: build/C/man7/signal.7:60
6639 #, no-wrap
6640 msgid "Term"
6641 msgstr "Term"
6642
6643 #. type: Plain text
6644 #: build/C/man7/signal.7:62
6645 msgid "Default action is to terminate the process."
6646 msgstr "デフォルトの動作はプロセス終了。"
6647
6648 #. type: IP
6649 #: build/C/man7/signal.7:62
6650 #, no-wrap
6651 msgid "Ign"
6652 msgstr "Ign"
6653
6654 #. type: Plain text
6655 #: build/C/man7/signal.7:64
6656 msgid "Default action is to ignore the signal."
6657 msgstr "デフォルトの動作はこのシグナルの無視。"
6658
6659 #. type: IP
6660 #: build/C/man7/signal.7:64
6661 #, no-wrap
6662 msgid "Core"
6663 msgstr "Core"
6664
6665 #. type: Plain text
6666 #: build/C/man7/signal.7:67
6667 msgid ""
6668 "Default action is to terminate the process and dump core (see B<core>(5))."
6669 msgstr "デフォルトの動作はプロセス終了とコアダンプ出力 (B<core>(5)  参照)。"
6670
6671 #. type: IP
6672 #: build/C/man7/signal.7:67
6673 #, no-wrap
6674 msgid "Stop"
6675 msgstr "Stop"
6676
6677 #. type: Plain text
6678 #: build/C/man7/signal.7:69
6679 msgid "Default action is to stop the process."
6680 msgstr "デフォルトの動作はプロセスの一時停止。"
6681
6682 #. type: IP
6683 #: build/C/man7/signal.7:69
6684 #, no-wrap
6685 msgid "Cont"
6686 msgstr "Cont"
6687
6688 #. type: Plain text
6689 #: build/C/man7/signal.7:71
6690 msgid "Default action is to continue the process if it is currently stopped."
6691 msgstr "デフォルトの動作は、プロセスが停止中の場合にその実行の再開。"
6692
6693 #. type: Plain text
6694 #: build/C/man7/signal.7:93
6695 msgid ""
6696 "A process can change the disposition of a signal using B<sigaction>(2)  or "
6697 "B<signal>(2).  (The latter is less portable when establishing a signal "
6698 "handler; see B<signal>(2)  for details.)  Using these system calls, a "
6699 "process can elect one of the following behaviors to occur on delivery of the "
6700 "signal: perform the default action; ignore the signal; or catch the signal "
6701 "with a I<signal handler>, a programmer-defined function that is "
6702 "automatically invoked when the signal is delivered.  (By default, the signal "
6703 "handler is invoked on the normal process stack.  It is possible to arrange "
6704 "that the signal handler uses an alternate stack; see B<sigaltstack>(2)  for "
6705 "a discussion of how to do this and when it might be useful.)"
6706 msgstr ""
6707 "プロセスは、 B<sigaction>(2)  や B<signal>(2)  を使って、シグナルの処理方法を"
6708 "変更することができる (B<signal>(2)  の方がシグナルハンドラを設定する際の移植"
6709 "性が低い; 詳細は B<signal>(2)  を参照)。 シグナルの配送時に起こる動作として "
6710 "プロセスが選択できるのは、次のいずれか一つである。 デフォルトの動作を実行す"
6711 "る、シグナルを無視する、 I<シグナルハンドラ (signal handler)> でシグナルを捕"
6712 "捉する。シグナルハンドラとは、シグナル配送時に 自動的に起動されるプログラマ定"
6713 "義の関数である。 (デフォルトでは、シグナルハンドラは通常のプロセスのスタック"
6714 "上で起動される。 シグナルハンドラが代替スタック (alternate stack) を使用する"
6715 "ように設定する こともできる。代替スタックを使用するように設定する方法と、どの"
6716 "ような際に 代替スタックが役に立つかについての議論については B<sigaltstack>"
6717 "(2)  を参照のこと。"
6718
6719 #. type: Plain text
6720 #: build/C/man7/signal.7:97
6721 msgid ""
6722 "The signal disposition is a per-process attribute: in a multithreaded "
6723 "application, the disposition of a particular signal is the same for all "
6724 "threads."
6725 msgstr ""
6726 "シグナルの処理方法はプロセス単位の属性である。 マルチスレッドのアプリケーショ"
6727 "ンでは、あるシグナルの処理方法は 全てのスレッドで同じである。"
6728
6729 #. type: SS
6730 #: build/C/man7/signal.7:105
6731 #, no-wrap
6732 msgid "Sending a signal"
6733 msgstr "シグナルの送信"
6734
6735 #. type: Plain text
6736 #: build/C/man7/signal.7:108
6737 msgid ""
6738 "The following system calls and library functions allow the caller to send a "
6739 "signal:"
6740 msgstr ""
6741 "以下のシステムコールとライブラリ関数を使って、 呼び出し者はシグナルを送信する"
6742 "ことができる。"
6743
6744 #. type: TP
6745 #: build/C/man7/signal.7:108
6746 #, no-wrap
6747 msgid "B<raise>(3)"
6748 msgstr "B<raise>(3)"
6749
6750 #. type: Plain text
6751 #: build/C/man7/signal.7:111
6752 msgid "Sends a signal to the calling thread."
6753 msgstr "呼び出したスレッドにシグナルを送る。"
6754
6755 #. type: Plain text
6756 #: build/C/man7/signal.7:116
6757 msgid ""
6758 "Sends a signal to a specified process, to all members of a specified process "
6759 "group, or to all processes on the system."
6760 msgstr ""
6761 "指定されたプロセスや、指定されたプロセスグループの全メンバー、 システムの全プ"
6762 "ロセスにシグナルを送る。"
6763
6764 #. type: TP
6765 #: build/C/man7/signal.7:116
6766 #, no-wrap
6767 msgid "B<killpg>(2)"
6768 msgstr "B<killpg>(2)"
6769
6770 #. type: Plain text
6771 #: build/C/man7/signal.7:119
6772 msgid "Sends a signal to all of the members of a specified process group."
6773 msgstr "指定されたプロセスグループの全メンバーにシグナルを送る。"
6774
6775 #. type: TP
6776 #: build/C/man7/signal.7:119
6777 #, no-wrap
6778 msgid "B<pthread_kill>(3)"
6779 msgstr "B<pthread_kill>(3)"
6780
6781 #. type: Plain text
6782 #: build/C/man7/signal.7:123
6783 msgid ""
6784 "Sends a signal to a specified POSIX thread in the same process as the caller."
6785 msgstr ""
6786 "呼び出し者と同じプロセス内の指定された POSIX スレッドにシグナルを送る。"
6787
6788 #. type: TP
6789 #: build/C/man7/signal.7:123
6790 #, no-wrap
6791 msgid "B<tgkill>(2)"
6792 msgstr "B<tgkill>(2)"
6793
6794 #. type: Plain text
6795 #: build/C/man7/signal.7:128
6796 msgid ""
6797 "Sends a signal to a specified thread within a specific process.  (This is "
6798 "the system call used to implement B<pthread_kill>(3).)"
6799 msgstr ""
6800 "指定されたプロセス内の指定されたスレッドにシグナルを送る (このシステムコール"
6801 "を使って B<pthread_kill>(3)  は実装されている)。"
6802
6803 #. type: Plain text
6804 #: build/C/man7/signal.7:131
6805 msgid "Sends a real-time signal with accompanying data to a specified process."
6806 msgstr "指定されたプロセスに付属データとともにリアルタイムシグナルを送る。"
6807
6808 #. type: SS
6809 #: build/C/man7/signal.7:131
6810 #, no-wrap
6811 msgid "Waiting for a signal to be caught"
6812 msgstr "シグナルが捕捉されるのを待つ"
6813
6814 #. type: Plain text
6815 #: build/C/man7/signal.7:135
6816 msgid ""
6817 "The following system calls suspend execution of the calling process or "
6818 "thread until a signal is caught (or an unhandled signal terminates the "
6819 "process):"
6820 msgstr ""
6821 "以下のシステムコールを使って、シグナルが捕捉されるまで 呼び出したプロセスやス"
6822 "レッドの実行を中断 (suspend) することができる (ハンドラが設定されていないシグ"
6823 "ナルによりそのプロセスが終了した 場合にも実行の停止は終了する)。"
6824
6825 #. type: TP
6826 #: build/C/man7/signal.7:135
6827 #, no-wrap
6828 msgid "B<pause>(2)"
6829 msgstr "B<pause>(2)"
6830
6831 #. type: Plain text
6832 #: build/C/man7/signal.7:138
6833 msgid "Suspends execution until any signal is caught."
6834 msgstr "何かシグナルが捕捉されるまで実行を停止する。"
6835
6836 #. type: TP
6837 #: build/C/man7/signal.7:138
6838 #, no-wrap
6839 msgid "B<sigsuspend>(2)"
6840 msgstr "B<sigsuspend>(2)"
6841
6842 #. type: Plain text
6843 #: build/C/man7/signal.7:142
6844 msgid ""
6845 "Temporarily changes the signal mask (see below) and suspends execution until "
6846 "one of the unmasked signals is caught."
6847 msgstr ""
6848 "一時的にシグナルマスク (下記参照) を変更し、 マスクされていないシグナルのいず"
6849 "れかが捕捉されるまで 実行を中断する。"
6850
6851 #. type: SS
6852 #: build/C/man7/signal.7:142
6853 #, no-wrap
6854 msgid "Synchronously accepting a signal"
6855 msgstr "シグナルの同期受信"
6856
6857 #. type: Plain text
6858 #: build/C/man7/signal.7:149
6859 msgid ""
6860 "Rather than asynchronously catching a signal via a signal handler, it is "
6861 "possible to synchronously accept the signal, that is, to block execution "
6862 "until the signal is delivered, at which point the kernel returns information "
6863 "about the signal to the caller.  There are two general ways to do this:"
6864 msgstr ""
6865 "シグナルハンドラ経由でシグナルを非同期 (asynchronously) で捕捉する以外にも、 "
6866 "シグナルを同期 (synchronously) して受け付けることもできる。 同期して受け付け"
6867 "るとは、シグナルが配送されるまで実行を停止 (block)  するということである。シ"
6868 "グナルを受け付けた際に、カーネルは そのシグナルに関する情報を呼び出し者に返"
6869 "す。 これを行う一般的な方法が二つある。"
6870
6871 #. type: Plain text
6872 #: build/C/man7/signal.7:157
6873 msgid ""
6874 "B<sigwaitinfo>(2), B<sigtimedwait>(2), and B<sigwait>(3)  suspend execution "
6875 "until one of the signals in a specified set is delivered.  Each of these "
6876 "calls returns information about the delivered signal."
6877 msgstr ""
6878 "B<sigwaitinfo>(2), B<sigtimedwait>(2), B<sigwait>(3)  は、指定されたシグナル"
6879 "集合のシグナルの一つが配送されるまで実行を中断する。 どのシステムコールや関数"
6880 "でも、配送されたシグナルに関する情報が返される。"
6881
6882 #. type: Plain text
6883 #: build/C/man7/signal.7:170
6884 msgid ""
6885 "B<signalfd>(2)  returns a file descriptor that can be used to read "
6886 "information about signals that are delivered to the caller.  Each B<read>"
6887 "(2)  from this file descriptor blocks until one of the signals in the set "
6888 "specified in the B<signalfd>(2)  call is delivered to the caller.  The "
6889 "buffer returned by B<read>(2)  contains a structure describing the signal."
6890 msgstr ""
6891 "B<signalfd>(2)  が返すファイルディスクリプタを使うと、呼び出し元に配送された "
6892 "シグナルに関する情報を読み出すことができる。 このファイルディスクリプタから"
6893 "の B<read>(2)  は、 B<signalfd>(2)  の呼び出し時に指定されたシグナル集合のシ"
6894 "グナルの一つが呼び出し元に 配送されるまで停止 (block) する。 B<read>(2)  が返"
6895 "すバッファにはシグナルに関する情報を格納した構造体が入っている。"
6896
6897 #. type: SS
6898 #: build/C/man7/signal.7:170
6899 #, no-wrap
6900 msgid "Signal mask and pending signals"
6901 msgstr "シグナルマスクと処理待ちシグナル"
6902
6903 #. type: Plain text
6904 #: build/C/man7/signal.7:177
6905 msgid ""
6906 "A signal may be I<blocked>, which means that it will not be delivered until "
6907 "it is later unblocked.  Between the time when it is generated and when it is "
6908 "delivered a signal is said to be I<pending>."
6909 msgstr ""
6910 "シグナルは I<ブロック (block)> されることがある。ブロックされると、そのシグナ"
6911 "ルは その後ブロックを解除されるまで配送されなくなる。 シグナルが生成されてか"
6912 "ら配送されるまでの間、そのシグナルは I<処理待ち (pending)> であると呼ばれる。"
6913
6914 #. type: Plain text
6915 #: build/C/man7/signal.7:186
6916 msgid ""
6917 "Each thread in a process has an independent I<signal mask>, which indicates "
6918 "the set of signals that the thread is currently blocking.  A thread can "
6919 "manipulate its signal mask using B<pthread_sigmask>(3).  In a traditional "
6920 "single-threaded application, B<sigprocmask>(2)  can be used to manipulate "
6921 "the signal mask."
6922 msgstr ""
6923 "プロセス内の各スレッドは、それぞれ独立な I<シグナルマスク (signal mask)> を持"
6924 "つ。シグナルマスクはそのスレッドが現在ブロックしている シグナル集合を示すもの"
6925 "である。 スレッドは、 B<pthread_sigmask>(3)  を使って自分のシグナルマスクを操"
6926 "作できる。 伝統的なシングルスレッドのアプリケーションでは、 B<sigprocmask>"
6927 "(2)  を使って、シグナルマスクを操作できる。"
6928
6929 #. type: Plain text
6930 #: build/C/man7/signal.7:192 build/C/man2/sigprocmask.2:126
6931 msgid ""
6932 "A child created via B<fork>(2)  inherits a copy of its parent's signal mask; "
6933 "the signal mask is preserved across B<execve>(2)."
6934 msgstr ""
6935 "B<fork>(2)  経由で作成された子プロセスは親プロセスのシグナルマスクのコピーを"
6936 "継承する。 B<execve>(2)  の前後でシグナルマスクは保持される。"
6937
6938 #. type: Plain text
6939 #: build/C/man7/signal.7:209
6940 msgid ""
6941 "A signal may be generated (and thus pending)  for a process as a whole (e."
6942 "g., when sent using B<kill>(2))  or for a specific thread (e.g., certain "
6943 "signals, such as B<SIGSEGV> and B<SIGFPE>, generated as a consequence of "
6944 "executing a specific machine-language instruction are thread directed, as "
6945 "are signals targeted at a specific thread using B<pthread_kill>(3)).  A "
6946 "process-directed signal may be delivered to any one of the threads that does "
6947 "not currently have the signal blocked.  If more than one of the threads has "
6948 "the signal unblocked, then the kernel chooses an arbitrary thread to which "
6949 "to deliver the signal."
6950 msgstr ""
6951 "生成されるシグナル (したがって処理待ちとなるシグナル) には、 プロセス全体宛て"
6952 "と特定のスレッド宛てがある。 例えば、プロセス全体宛てのシグナルは B<kill>"
6953 "(2)  を使って送信される。 特定のマシン語の命令の実行の結果として生成される、 "
6954 "B<SIGSEGV> や B<SIGFPE> などのシグナルは、スレッド宛てとなる。 また、 "
6955 "B<pthread_kill>(3)  を使って特定のスレッド宛てに生成されたシグナルも スレッド"
6956 "宛てとなる。 プロセス宛てのシグナルは、そのシグナルをブロックしていないスレッ"
6957 "ドのうち いずれかの一つに配送することができる。そのシグナルをブロックしていな"
6958 "い スレッドが複数ある場合、シグナルを配送するスレッドはカーネルが 無作為に選"
6959 "択する。"
6960
6961 #. type: Plain text
6962 #: build/C/man7/signal.7:216
6963 msgid ""
6964 "A thread can obtain the set of signals that it currently has pending using "
6965 "B<sigpending>(2).  This set will consist of the union of the set of pending "
6966 "process-directed signals and the set of signals pending for the calling "
6967 "thread."
6968 msgstr ""
6969 "スレッドは、 B<sigpending>(2)  を使って、現在処理待ちのシグナル集合を取得する"
6970 "ことができる。 この集合は、プロセス宛ての処理待ちシグナルと 呼び出したスレッ"
6971 "ド宛てのシグナルの両方から構成される。"
6972
6973 #. type: Plain text
6974 #: build/C/man7/signal.7:222 build/C/man2/sigpending.2:81
6975 msgid ""
6976 "A child created via B<fork>(2)  initially has an empty pending signal set; "
6977 "the pending signal set is preserved across an B<execve>(2)."
6978 msgstr ""
6979 "B<fork>(2)  経由で作成された子プロセスでは、処理待ちのシグナル集合は空の集合"
6980 "で初期化される。 B<execve>(2)  の前後で、処理待ちのシグナル集合は保持される。"
6981
6982 #. type: SS
6983 #: build/C/man7/signal.7:222
6984 #, no-wrap
6985 msgid "Standard signals"
6986 msgstr "標準シグナル"
6987
6988 #. type: Plain text
6989 #: build/C/man7/signal.7:234
6990 msgid ""
6991 "Linux supports the standard signals listed below.  Several signal numbers "
6992 "are architecture-dependent, as indicated in the \"Value\" column.  (Where "
6993 "three values are given, the first one is usually valid for alpha and sparc, "
6994 "the middle one for x86, arm, and most other architectures, and the last one "
6995 "for mips.  (Values for parisc are I<not> shown; see the Linux kernel source "
6996 "for signal numbering on that architecture.)  A - denotes that a signal is "
6997 "absent on the corresponding architecture.)"
6998 msgstr ""
6999 "Linux は以下に示す標準シグナルに対応している。シグナル番号の一部はアー\n"
7000 "キテクチャ依存であり、\"値\" 欄に示す通りである。 (3つの値が書かれている\n"
7001 "ものは、 1つ目が alpha と sparc で通常有効な値、 真ん中が x86, arm や\n"
7002 "他のほとんどのアーキテクチャでの有効な値、最後が mips での値である。\n"
7003 "(parisc での値は記載されてI<いない>。 parisc でのシグナル番号は\n"
7004 "Linux カーネルソースを参照してほしい)。 - はそのアーキテ\n"
7005 "クチャにおいて対応するシグナルがないことを示す。)"
7006
7007 #. type: Plain text
7008 #: build/C/man7/signal.7:236
7009 msgid "First the signals described in the original POSIX.1-1990 standard."
7010 msgstr "最初に、POSIX.1-1990 に定義されているシグナルを示す。"
7011
7012 #. type: tbl table
7013 #: build/C/man7/signal.7:240 build/C/man7/signal.7:276
7014 #: build/C/man7/signal.7:305
7015 #, no-wrap
7016 msgid "Signal\tValue\tAction\tComment\n"
7017 msgstr "シグナル\t値\t動作\tコメント\n"
7018
7019 #. type: tbl table
7020 #: build/C/man7/signal.7:241
7021 #, no-wrap
7022 msgid "SIGHUP\t\\01\tTerm\tHangup detected on controlling terminal\n"
7023 msgstr "SIGHUP\t\\01\tTerm\t制御端末(controlling terminal)のハングアップ検出、\n"
7024
7025 #. type: tbl table
7026 #: build/C/man7/signal.7:242
7027 #, no-wrap
7028 msgid "\t\t\tor death of controlling process\n"
7029 msgstr "\t\t\tまたは制御しているプロセスの死\n"
7030
7031 #. type: tbl table
7032 #: build/C/man7/signal.7:243
7033 #, no-wrap
7034 msgid "SIGINT\t\\02\tTerm\tInterrupt from keyboard\n"
7035 msgstr "SIGINT\t\\02\tTerm\tキーボードからの割り込み (Interrupt)\n"
7036
7037 #. type: tbl table
7038 #: build/C/man7/signal.7:244
7039 #, no-wrap
7040 msgid "SIGQUIT\t\\03\tCore\tQuit from keyboard\n"
7041 msgstr "SIGQUIT\t\\03\tCore\tキーボードによる中止 (Quit)\n"
7042
7043 #. type: tbl table
7044 #: build/C/man7/signal.7:245
7045 #, no-wrap
7046 msgid "SIGILL\t\\04\tCore\tIllegal Instruction\n"
7047 msgstr "SIGILL\t\\04\tCore\t不正な命令\n"
7048
7049 #. type: tbl table
7050 #: build/C/man7/signal.7:246
7051 #, no-wrap
7052 msgid "SIGABRT\t\\06\tCore\tAbort signal from B<abort>(3)\n"
7053 msgstr "SIGABRT\t\\06\tCore\tB<abort>(3) からの中断 (Abort) シグナル\n"
7054
7055 #. type: tbl table
7056 #: build/C/man7/signal.7:247
7057 #, no-wrap
7058 msgid "SIGFPE\t\\08\tCore\tFloating point exception\n"
7059 msgstr "SIGFPE\t\\08\tCore\t浮動小数点例外\n"
7060
7061 #. type: tbl table
7062 #: build/C/man7/signal.7:248
7063 #, no-wrap
7064 msgid "SIGKILL\t\\09\tTerm\tKill signal\n"
7065 msgstr "SIGKILL\t\\09\tTerm\tKill シグナル\n"
7066
7067 #. type: tbl table
7068 #: build/C/man7/signal.7:249
7069 #, no-wrap
7070 msgid "SIGSEGV\t11\tCore\tInvalid memory reference\n"
7071 msgstr "SIGSEGV\t11\tCore\t不正なメモリ参照\n"
7072
7073 #. type: tbl table
7074 #: build/C/man7/signal.7:250
7075 #, no-wrap
7076 msgid "SIGPIPE\t13\tTerm\tBroken pipe: write to pipe with no\n"
7077 msgstr "SIGPIPE\t13\tTerm\tパイプ破壊:\n"
7078
7079 #. type: tbl table
7080 #: build/C/man7/signal.7:251
7081 #, no-wrap
7082 msgid "\t\t\treaders\n"
7083 msgstr "\t\t\t読み手の無いパイプへの書き出し\n"
7084
7085 #. type: tbl table
7086 #: build/C/man7/signal.7:252
7087 #, no-wrap
7088 msgid "SIGALRM\t14\tTerm\tTimer signal from B<alarm>(2)\n"
7089 msgstr "SIGALRM\t14\tTerm\tB<alarm>(2) からのタイマーシグナル\n"
7090
7091 #. type: tbl table
7092 #: build/C/man7/signal.7:253
7093 #, no-wrap
7094 msgid "SIGTERM\t15\tTerm\tTermination signal\n"
7095 msgstr "SIGTERM\t15\tTerm\t終了 (termination) シグナル\n"
7096
7097 #. type: tbl table
7098 #: build/C/man7/signal.7:254
7099 #, no-wrap
7100 msgid "SIGUSR1\t30,10,16\tTerm\tUser-defined signal 1\n"
7101 msgstr "SIGUSR1\t30,10,16\tTerm\tユーザ定義シグナル 1\n"
7102
7103 #. type: tbl table
7104 #: build/C/man7/signal.7:255
7105 #, no-wrap
7106 msgid "SIGUSR2\t31,12,17\tTerm\tUser-defined signal 2\n"
7107 msgstr "SIGUSR2\t31,12,17\tTerm\tユーザ定義シグナル 2\n"
7108
7109 #. type: tbl table
7110 #: build/C/man7/signal.7:256
7111 #, no-wrap
7112 msgid "SIGCHLD\t20,17,18\tIgn\tChild stopped or terminated\n"
7113 msgstr "SIGCHLD\t20,17,18\tIgn\t子プロセスの一時停止 (stop) または終了\n"
7114
7115 #. type: tbl table
7116 #: build/C/man7/signal.7:257
7117 #, no-wrap
7118 msgid "SIGCONT\t19,18,25\tCont\tContinue if stopped\n"
7119 msgstr "SIGCONT\t19,18,25\tCont\t一時停止 (stop) からの再開\n"
7120
7121 #. type: tbl table
7122 #: build/C/man7/signal.7:258
7123 #, no-wrap
7124 msgid "SIGSTOP\t17,19,23\tStop\tStop process\n"
7125 msgstr "SIGSTOP\t17,19,23\tStop\tプロセスの一時停止 (stop)\n"
7126
7127 #. type: tbl table
7128 #: build/C/man7/signal.7:259
7129 #, no-wrap
7130 msgid "SIGTSTP\t18,20,24\tStop\tStop typed at terminal\n"
7131 msgstr "SIGTSTP\t18,20,24\tStop\t端末より入力された一時停止 (stop)\n"
7132
7133 #. type: tbl table
7134 #: build/C/man7/signal.7:260
7135 #, no-wrap
7136 msgid "SIGTTIN\t21,21,26\tStop\tTerminal input for background process\n"
7137 msgstr "SIGTTIN\t21,21,26\tStop\tバックグランドプロセスの端末入力\n"
7138
7139 #. type: tbl table
7140 #: build/C/man7/signal.7:261
7141 #, no-wrap
7142 msgid "SIGTTOU\t22,22,27\tStop\tTerminal output for background process\n"
7143 msgstr "SIGTTOU\t22,22,27\tStop\tバックグランドプロセスの端末出力\n"
7144
7145 #. type: Plain text
7146 #: build/C/man7/signal.7:269
7147 msgid ""
7148 "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught, blocked, or ignored."
7149 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> はキャッチ、ブロック、無視できない。"
7150
7151 #. type: Plain text
7152 #: build/C/man7/signal.7:272
7153 msgid ""
7154 "Next the signals not in the POSIX.1-1990 standard but described in SUSv2 and "
7155 "POSIX.1-2001."
7156 msgstr ""
7157 "次に、 POSIX.1-1990 標準にはないが、 SUSv2 と POSIX.1-2001 に記述されているシ"
7158 "グナルを示す。"
7159
7160 #. type: tbl table
7161 #: build/C/man7/signal.7:277
7162 #, no-wrap
7163 msgid "SIGBUS\t10,7,10\tCore\tBus error (bad memory access)\n"
7164 msgstr "SIGBUS\t10,7,10\tCore\tバスエラー (不正なメモリアクセス)\n"
7165
7166 #. type: tbl table
7167 #: build/C/man7/signal.7:278
7168 #, no-wrap
7169 msgid "SIGPOLL\t\tTerm\tPollable event (Sys V).\n"
7170 msgstr "SIGPOLL\t\tTerm\tポーリング可能なイベント (Sys V)。\n"
7171
7172 #. type: tbl table
7173 #: build/C/man7/signal.7:279
7174 #, no-wrap
7175 msgid "\t\t\tSynonym for B<SIGIO>\n"
7176 msgstr "\t\t\tB<SIGIO> と同義\n"
7177
7178 #. type: tbl table
7179 #: build/C/man7/signal.7:280
7180 #, no-wrap
7181 msgid "SIGPROF\t27,27,29\tTerm\tProfiling timer expired\n"
7182 msgstr "SIGPROF\t27,27,29\tTerm\tprofiling タイマの時間切れ\n"
7183
7184 #. type: tbl table
7185 #: build/C/man7/signal.7:281
7186 #, no-wrap
7187 msgid "SIGSYS\t12,31,12\tCore\tBad argument to routine (SVr4)\n"
7188 msgstr "SIGSYS\t12,31,12\tCore\tルーチンへの引き数が不正 (SVr4)\n"
7189
7190 #. type: tbl table
7191 #: build/C/man7/signal.7:282
7192 #, no-wrap
7193 msgid "SIGTRAP\t5\tCore\tTrace/breakpoint trap\n"
7194 msgstr "SIGTRAP\t5\tCore\tトレース/ブレークポイント トラップ\n"
7195
7196 #. type: tbl table
7197 #: build/C/man7/signal.7:283
7198 #, no-wrap
7199 msgid "SIGURG\t16,23,21\tIgn\tUrgent condition on socket (4.2BSD)\n"
7200 msgstr "SIGURG\t16,23,21\tIgn\tソケットの緊急事態 (urgent condition) (4.2BSD)\n"
7201
7202 #. type: tbl table
7203 #: build/C/man7/signal.7:284
7204 #, no-wrap
7205 msgid "SIGVTALRM\t26,26,28\tTerm\tVirtual alarm clock (4.2BSD)\n"
7206 msgstr "SIGVTALRM\t26,26,28\tTerm\t仮想アラームクロック (4.2BSD)\n"
7207
7208 #. type: tbl table
7209 #: build/C/man7/signal.7:285
7210 #, no-wrap
7211 msgid "SIGXCPU\t24,24,30\tCore\tCPU time limit exceeded (4.2BSD)\n"
7212 msgstr "SIGXCPU\t24,24,30\tCore\tCPU時間制限超過 (4.2BSD)\n"
7213
7214 #. type: tbl table
7215 #: build/C/man7/signal.7:286
7216 #, no-wrap
7217 msgid "SIGXFSZ\t25,25,31\tCore\tFile size limit exceeded (4.2BSD)\n"
7218 msgstr "SIGXFSZ\t25,25,31\tCore\tファイルサイズ制限の超過 (4.2BSD)\n"
7219
7220 #. type: Plain text
7221 #: build/C/man7/signal.7:299
7222 msgid ""
7223 "Up to and including Linux 2.2, the default behavior for B<SIGSYS>, "
7224 "B<SIGXCPU>, B<SIGXFSZ>, and (on architectures other than SPARC and MIPS)  "
7225 "B<SIGBUS> was to terminate the process (without a core dump).  (On some "
7226 "other UNIX systems the default action for B<SIGXCPU> and B<SIGXFSZ> is to "
7227 "terminate the process without a core dump.)  Linux 2.4 conforms to the "
7228 "POSIX.1-2001 requirements for these signals, terminating the process with a "
7229 "core dump."
7230 msgstr ""
7231 "Linux 2.2 以前では、 B<SIGSYS>, B<SIGXCPU>, B<SIGXFSZ> および SPARC と MIPS "
7232 "以外のアーキテクチャでの B<SIGBUS> のデフォルトの振る舞いは (コアダンプ出力な"
7233 "しの) プロセス終了であった。 (他の UNIX システムにも B<SIGXCPU> と "
7234 "B<SIGXFSZ> のデフォルトの動作がコアダンプなしのプロセス終了のものがある。)  "
7235 "Linux 2.4 では、POSIX.1-2001 での要求仕様に準拠して、 これらのシグナルで、プ"
7236 "ロセスを終了させ、コアダンプを出力する ようになっている。"
7237
7238 #. type: Plain text
7239 #: build/C/man7/signal.7:301
7240 msgid "Next various other signals."
7241 msgstr "次にその他の各種シグナルを示す。"
7242
7243 #. type: tbl table
7244 #: build/C/man7/signal.7:306
7245 #, no-wrap
7246 msgid "SIGIOT\t6\tCore\tIOT trap. A synonym for B<SIGABRT>\n"
7247 msgstr "SIGIOT\t6\tCore\tIOT トラップ。B<SIGABRT> と同義\n"
7248
7249 #. type: tbl table
7250 #: build/C/man7/signal.7:307
7251 #, no-wrap
7252 msgid "SIGEMT\t7,-,7\tTerm\n"
7253 msgstr "SIGEMT\t7,-,7\tTerm\n"
7254
7255 #. type: tbl table
7256 #: build/C/man7/signal.7:308
7257 #, no-wrap
7258 msgid "SIGSTKFLT\t-,16,-\tTerm\tStack fault on coprocessor (unused)\n"
7259 msgstr "SIGSTKFLT\t-,16,-\tA\t数値演算プロセッサにおけるスタックフォルト (未使用)\n"
7260
7261 #. type: tbl table
7262 #: build/C/man7/signal.7:309
7263 #, no-wrap
7264 msgid "SIGIO\t23,29,22\tTerm\tI/O now possible (4.2BSD)\n"
7265 msgstr "SIGIO\t23,29,22\tTerm\t入出力が可能になった (4.2BSD)\n"
7266
7267 #. type: tbl table
7268 #: build/C/man7/signal.7:310
7269 #, no-wrap
7270 msgid "SIGCLD\t-,-,18\tIgn\tA synonym for B<SIGCHLD>\n"
7271 msgstr "SIGCLD\t-,-,18\tIgn\tB<SIGCHLD> と同義\n"
7272
7273 #. type: tbl table
7274 #: build/C/man7/signal.7:311
7275 #, no-wrap
7276 msgid "SIGPWR\t29,30,19\tTerm\tPower failure (System V)\n"
7277 msgstr "SIGPWR\t29,30,19\tTerm\t電源喪失 (Power failure) (System V)\n"
7278
7279 #. type: tbl table
7280 #: build/C/man7/signal.7:312
7281 #, no-wrap
7282 msgid "SIGINFO\t29,-,-\t\tA synonym for B<SIGPWR>\n"
7283 msgstr "SIGINFO\t29,-,-\t \tB<SIGPWR> と同義\n"
7284
7285 #. type: tbl table
7286 #: build/C/man7/signal.7:313
7287 #, no-wrap
7288 msgid "SIGLOST\t-,-,-\tTerm\tFile lock lost (unused)\n"
7289 msgstr "SIGLOST\t-,-,-\tTerm\tファイルロックが失われた (未使用)\n"
7290
7291 #. type: tbl table
7292 #: build/C/man7/signal.7:314
7293 #, no-wrap
7294 msgid "SIGWINCH\t28,28,20\tIgn\tWindow resize signal (4.3BSD, Sun)\n"
7295 msgstr "SIGWINCH\t28,28,20\tIgn\tウィンドウ リサイズ シグナル (4.3BSD, Sun)\n"
7296
7297 #. type: tbl table
7298 #: build/C/man7/signal.7:315
7299 #, no-wrap
7300 msgid "SIGUNUSED\t-,31,-\tCore\tSynonymous with B<SIGSYS>\n"
7301 msgstr "SIGUNUSED\t-,31,-\tCore\tB<SIGSYS> と同義\n"
7302
7303 #. type: Plain text
7304 #: build/C/man7/signal.7:325
7305 msgid ""
7306 "(Signal 29 is B<SIGINFO> / B<SIGPWR> on an alpha but B<SIGLOST> on a sparc.)"
7307 msgstr ""
7308 "(シグナル 29 は alpha では B<SIGINFO> / B<SIGPWR> だが、sparc では "
7309 "B<SIGLOST> である。)"
7310
7311 #. type: Plain text
7312 #: build/C/man7/signal.7:331
7313 msgid ""
7314 "B<SIGEMT> is not specified in POSIX.1-2001, but nevertheless appears on most "
7315 "other UNIX systems, where its default action is typically to terminate the "
7316 "process with a core dump."
7317 msgstr ""
7318 "B<SIGEMT> は POSIX.1-2001 に規定されていないが、 その他の多くの UNIX システム"
7319 "に存在する。 デフォルトの動作は多くの場合、コアダンプ出力を伴うプロセスの終了"
7320 "である。"
7321
7322 #. type: Plain text
7323 #: build/C/man7/signal.7:335
7324 msgid ""
7325 "B<SIGPWR> (which is not specified in POSIX.1-2001) is typically ignored by "
7326 "default on those other UNIX systems where it appears."
7327 msgstr ""
7328 "B<SIGPWR> は (POSIX.1-2001 に規定されていないが) このシグナルが存在する 他の "
7329 "UNIX システムでは多くの場合、デフォルト動作は無視である。"
7330
7331 #. type: Plain text
7332 #: build/C/man7/signal.7:339
7333 msgid ""
7334 "B<SIGIO> (which is not specified in POSIX.1-2001) is ignored by default on "
7335 "several other UNIX systems."
7336 msgstr ""
7337 "B<SIGIO> は (POSIX.1-2001 に規定されていないが) いくつかの他の UNIX システム"
7338 "では デフォルト動作は無視である。"
7339
7340 #.  parisc is the only exception: SIGSYS is 12, SIGUNUSED is 31
7341 #. type: Plain text
7342 #: build/C/man7/signal.7:346
7343 msgid ""
7344 "Where defined, B<SIGUNUSED> is synonymous with B<SIGSYS> on most "
7345 "architectures."
7346 msgstr ""
7347 "B<SIGUNUSED> が定義されている場合には、ほとんどのアーキテクチャで B<SIGSYS> "
7348 "の同義語となっている。"
7349
7350 #. type: SS
7351 #: build/C/man7/signal.7:346
7352 #, no-wrap
7353 msgid "Real-time signals"
7354 msgstr "リアルタイムシグナル"
7355
7356 #. type: Plain text
7357 #: build/C/man7/signal.7:356
7358 msgid ""
7359 "Linux supports real-time signals as originally defined in the POSIX.1b real-"
7360 "time extensions (and now included in POSIX.1-2001).  The range of supported "
7361 "real-time signals is defined by the macros B<SIGRTMIN> and B<SIGRTMAX>.  "
7362 "POSIX.1-2001 requires that an implementation support at least "
7363 "B<_POSIX_RTSIG_MAX> (8) real-time signals."
7364 msgstr ""
7365 "Linux はリアルタイムシグナルをサポートしている。 リアルタイムシグナルは元々 "
7366 "POSIX.1b のリアルタイム拡張で定義されて いるものであり、現在では "
7367 "POSIX.1-2001 に含まれている。 対応しているリアルタイムシグナルの範囲は、マク"
7368 "ロ B<SIGRTMIN> と B<SIGRTMAX> で定義される。 POSIX.1-2001 では、少なくとも "
7369 "B<_POSIX_RTSIG_MAX> (8) 個のリアルタイムシグナルに対応した実装が要求されてい"
7370 "る。"
7371
7372 #. type: Plain text
7373 #: build/C/man7/signal.7:378
7374 msgid ""
7375 "The Linux kernel supports a range of 32 different real-time signals, "
7376 "numbered 33 to 64.  However, the glibc POSIX threads implementation "
7377 "internally uses two (for NPTL) or three (for LinuxThreads) real-time signals "
7378 "(see B<pthreads>(7)), and adjusts the value of B<SIGRTMIN> suitably (to 34 "
7379 "or 35).  Because the range of available real-time signals varies according "
7380 "to the glibc threading implementation (and this variation can occur at run "
7381 "time according to the available kernel and glibc), and indeed the range of "
7382 "real-time signals varies across UNIX systems, programs should I<never refer "
7383 "to real-time signals using hard-coded numbers>, but instead should always "
7384 "refer to real-time signals using the notation B<SIGRTMIN>+n, and include "
7385 "suitable (run-time) checks that B<SIGRTMIN>+n does not exceed B<SIGRTMAX>."
7386 msgstr ""
7387 "Linux は、32 個の異なるリアルタイムシグナルに対応しており、 その番号は 33 か"
7388 "ら 64 である。 しかしながら、glibc の POSIX スレッド実装は、 内部で 2個 "
7389 "(NPTL の場合) か 3個 (LinuxThreads の場合) の リアルタイムシグナルを使用して"
7390 "おり (B<pthreads>(7)  参照)、 B<SIGRTMIN> の値を適切に (34 か 35 に) 調整す"
7391 "る。 利用可能なリアルタイムシグナルの範囲は glibc のスレッド実装により 異なる"
7392 "し (使用するカーネルと glibc により実行時にも変化する)、 UNIX システムの種類"
7393 "によっても異なる。したがって、 プログラムでは「ハードコーディングした数字を"
7394 "使ってのリアルタイムシグナルの 参照は決してすべきではなく」、代わりに "
7395 "B<SIGRTMIN>+n の形で参照すべきである。また、 B<SIGRTMIN>+n が B<SIGRTMAX> を"
7396 "超えていないかのチェックを (実行時に) 適切に行うべきである。"
7397
7398 #. type: Plain text
7399 #: build/C/man7/signal.7:382
7400 msgid ""
7401 "Unlike standard signals, real-time signals have no predefined meanings: the "
7402 "entire set of real-time signals can be used for application-defined purposes."
7403 msgstr ""
7404 "標準シグナルと異なり、リアルタイムシグナルには 事前に定義された意味はない。 "
7405 "リアルタイムシグナルの全部をアプリケーションで定義した用途に使える。"
7406
7407 #. type: Plain text
7408 #: build/C/man7/signal.7:385
7409 msgid ""
7410 "The default action for an unhandled real-time signal is to terminate the "
7411 "receiving process."
7412 msgstr ""
7413 "ハンドリングしないリアルタイムシグナルのデフォルトの動作は 受信したプロセスの"
7414 "終了である。"
7415
7416 #. type: Plain text
7417 #: build/C/man7/signal.7:387
7418 msgid "Real-time signals are distinguished by the following:"
7419 msgstr "リアルタイムシグナルは以下の特徴がある:"
7420
7421 #. type: Plain text
7422 #: build/C/man7/signal.7:391
7423 msgid ""
7424 "Multiple instances of real-time signals can be queued.  By contrast, if "
7425 "multiple instances of a standard signal are delivered while that signal is "
7426 "currently blocked, then only one instance is queued."
7427 msgstr ""
7428 "リアルタイムシグナルは複数の実体をキューに入れることができる。 一方、標準シグ"
7429 "ナルの場合、そのシグナルがブロックされている間に 同じシグナルの複数のインスタ"
7430 "ンスが配送されても、 1 つだけがキューに入れられる。"
7431
7432 #. type: Plain text
7433 #: build/C/man7/signal.7:411
7434 msgid ""
7435 "If the signal is sent using B<sigqueue>(3), an accompanying value (either an "
7436 "integer or a pointer) can be sent with the signal.  If the receiving process "
7437 "establishes a handler for this signal using the B<SA_SIGINFO> flag to "
7438 "B<sigaction>(2)  then it can obtain this data via the I<si_value> field of "
7439 "the I<siginfo_t> structure passed as the second argument to the handler.  "
7440 "Furthermore, the I<si_pid> and I<si_uid> fields of this structure can be "
7441 "used to obtain the PID and real user ID of the process sending the signal."
7442 msgstr ""
7443 "シグナルが B<sigqueue>(3)  を用いて送信された場合、 付属データ (整数かポイン"
7444 "タ) をシグナルと共に送信できる。 受信側プロセスが B<sigaction>(2)  に "
7445 "B<SA_SIGINFO> フラグを指定してシグナルハンドラを設定した場合、 このデータは "
7446 "I<siginfo_t> 構造体の I<si_value> フィールド経由でハンドラの第 2 引き数として"
7447 "渡され、 利用することができる。 さらに、この構造体の I<si_pid> と I<si_uid> "
7448 "フィールドでシグナルを送信したプロセスの PID と実ユーザ ID を 得ることができ"
7449 "る。"
7450
7451 #. type: Plain text
7452 #: build/C/man7/signal.7:420
7453 msgid ""
7454 "Real-time signals are delivered in a guaranteed order.  Multiple real-time "
7455 "signals of the same type are delivered in the order they were sent.  If "
7456 "different real-time signals are sent to a process, they are delivered "
7457 "starting with the lowest-numbered signal.  (I.e., low-numbered signals have "
7458 "highest priority.)  By contrast, if multiple standard signals are pending "
7459 "for a process, the order in which they are delivered is unspecified."
7460 msgstr ""
7461 "リアルタイムシグナルでは配送される順序が保証される。 同じタイプのリアルタイム"
7462 "シグナルは送信された順番に到着する。 異なるリアルタイムシグナルが一つのプロセ"
7463 "スに送信された場合、 番号の小さいシグナルから先に到着する。 (つまり小さい番号"
7464 "のシグナルが高い優先順位を持つ。)  対照的に、一つのプロセスに対して複数の標準"
7465 "シグナルが処理待ちとなった場合、 これらのシグナルが配送される順序は不定であ"
7466 "る。"
7467
7468 #. type: Plain text
7469 #: build/C/man7/signal.7:425
7470 msgid ""
7471 "If both standard and real-time signals are pending for a process, POSIX "
7472 "leaves it unspecified which is delivered first.  Linux, like many other "
7473 "implementations, gives priority to standard signals in this case."
7474 msgstr ""
7475 "一つのプロセスに対して標準シグナルとリアルタイムシグナルの両方が 処理待ちの場"
7476 "合、POSIX はどちらが先に配送されるかを規定していない。 Linux では、他の多くの"
7477 "実装と同様、このような場合には 標準シグナルが優先される。"
7478
7479 #. type: Plain text
7480 #: build/C/man7/signal.7:448
7481 msgid ""
7482 "According to POSIX, an implementation should permit at least "
7483 "B<_POSIX_SIGQUEUE_MAX> (32) real-time signals to be queued to a process.  "
7484 "However, Linux does things differently.  In kernels up to and including "
7485 "2.6.7, Linux imposes a system-wide limit on the number of queued real-time "
7486 "signals for all processes.  This limit can be viewed and (with privilege) "
7487 "changed via the I</proc/sys/kernel/rtsig-max> file.  A related file, I</proc/"
7488 "sys/kernel/rtsig-nr>, can be used to find out how many real-time signals are "
7489 "currently queued.  In Linux 2.6.8, these I</proc> interfaces were replaced "
7490 "by the B<RLIMIT_SIGPENDING> resource limit, which specifies a per-user limit "
7491 "for queued signals; see B<setrlimit>(2)  for further details."
7492 msgstr ""
7493 "POSIX によれば、1 プロセス毎に最低 B<_POSIX_SIGQUEUE_MAX> (32) 個のリアルタイ"
7494 "ムシグナルをキューに入れられるべきとしている。 しかし、 Linux では違った実装"
7495 "になっている。カーネル 2.6.7 までは (2.6.7 を含む)、全プロセスでキューに入っ"
7496 "ているリアルタイムシグナル の数の合計についてシステム全体での制限がある。 こ"
7497 "の制限は I</proc/sys/kernel/rtsig-max> ファイルで見ることができ、 (権限があれ"
7498 "ば) 変更もできる。 関係するファイルとして、 I</proc/sys/kernel/rtsig-nr> を見"
7499 "ることで、いくつのリアルタイムシグナルが現在キューに入っているかを 知ることが"
7500 "できる。 Linux 2.6.8 で、これらの I</proc> 経由のインターフェースは、 "
7501 "B<RLIMIT_SIGPENDING> リソース制限に置き換えられた。 これは、キューに入るシグ"
7502 "ナル数に関してユーザ単位に 上限を指定するものである。 詳しくは B<setrlimit>"
7503 "(2)  を参照。"
7504
7505 #. type: SS
7506 #: build/C/man7/signal.7:448
7507 #, no-wrap
7508 msgid "Async-signal-safe functions"
7509 msgstr "非同期シグナルで安全な関数 (async-signal-safe functions)"
7510
7511 #. type: Plain text
7512 #: build/C/man7/signal.7:457
7513 msgid ""
7514 "A signal handler function must be very careful, since processing elsewhere "
7515 "may be interrupted at some arbitrary point in the execution of the program.  "
7516 "POSIX has the concept of \"safe function\".  If a signal interrupts the "
7517 "execution of an unsafe function, and I<handler> calls an unsafe function, "
7518 "then the behavior of the program is undefined."
7519 msgstr ""
7520 "シグナルハンドラ関数には非常に注意しなければならない。 他の場所の処理はプログ"
7521 "ラム実行の任意の箇所で中断される可能性があるためである。 POSIX には「安全な関"
7522 "数 (safe function)」という概念がある。 シグナルが安全でない関数の実行を中断"
7523 "し、かつ I<handler> が安全でない関数を呼び出した場合、プログラムの挙動は未定"
7524 "義である。"
7525
7526 #. type: Plain text
7527 #: build/C/man7/signal.7:461
7528 msgid ""
7529 "POSIX.1-2004 (also known as POSIX.1-2001 Technical Corrigendum 2)  requires "
7530 "an implementation to guarantee that the following functions can be safely "
7531 "called inside a signal handler:"
7532 msgstr ""
7533 "POSIX.1-2004 (POSIX.1-2001 Technical Corrigendum (正誤表) 2 とも言う) では、 "
7534 "シグナルハンドラ内での安全な呼び出しを保証することが必須の関数として 以下が規"
7535 "定されている。"
7536
7537 #. type: Plain text
7538 #: build/C/man7/signal.7:582
7539 #, no-wrap
7540 msgid ""
7541 "_Exit()\n"
7542 "_exit()\n"
7543 "abort()\n"
7544 "accept()\n"
7545 "access()\n"
7546 "aio_error()\n"
7547 "aio_return()\n"
7548 "aio_suspend()\n"
7549 "alarm()\n"
7550 "bind()\n"
7551 "cfgetispeed()\n"
7552 "cfgetospeed()\n"
7553 "cfsetispeed()\n"
7554 "cfsetospeed()\n"
7555 "chdir()\n"
7556 "chmod()\n"
7557 "chown()\n"
7558 "clock_gettime()\n"
7559 "close()\n"
7560 "connect()\n"
7561 "creat()\n"
7562 "dup()\n"
7563 "dup2()\n"
7564 "execle()\n"
7565 "execve()\n"
7566 "fchmod()\n"
7567 "fchown()\n"
7568 "fcntl()\n"
7569 "fdatasync()\n"
7570 "fork()\n"
7571 "fpathconf()\n"
7572 "fstat()\n"
7573 "fsync()\n"
7574 "ftruncate()\n"
7575 "getegid()\n"
7576 "geteuid()\n"
7577 "getgid()\n"
7578 "getgroups()\n"
7579 "getpeername()\n"
7580 "getpgrp()\n"
7581 "getpid()\n"
7582 "getppid()\n"
7583 "getsockname()\n"
7584 "getsockopt()\n"
7585 "getuid()\n"
7586 "kill()\n"
7587 "link()\n"
7588 "listen()\n"
7589 "lseek()\n"
7590 "lstat()\n"
7591 "mkdir()\n"
7592 "mkfifo()\n"
7593 "open()\n"
7594 "pathconf()\n"
7595 "pause()\n"
7596 "pipe()\n"
7597 "poll()\n"
7598 "posix_trace_event()\n"
7599 "pselect()\n"
7600 "raise()\n"
7601 "read()\n"
7602 "readlink()\n"
7603 "recv()\n"
7604 "recvfrom()\n"
7605 "recvmsg()\n"
7606 "rename()\n"
7607 "rmdir()\n"
7608 "select()\n"
7609 "sem_post()\n"
7610 "send()\n"
7611 "sendmsg()\n"
7612 "sendto()\n"
7613 "setgid()\n"
7614 "setpgid()\n"
7615 "setsid()\n"
7616 "setsockopt()\n"
7617 "setuid()\n"
7618 "shutdown()\n"
7619 "sigaction()\n"
7620 "sigaddset()\n"
7621 "sigdelset()\n"
7622 "sigemptyset()\n"
7623 "sigfillset()\n"
7624 "sigismember()\n"
7625 "signal()\n"
7626 "sigpause()\n"
7627 "sigpending()\n"
7628 "sigprocmask()\n"
7629 "sigqueue()\n"
7630 "sigset()\n"
7631 "sigsuspend()\n"
7632 "sleep()\n"
7633 "sockatmark()\n"
7634 "socket()\n"
7635 "socketpair()\n"
7636 "stat()\n"
7637 "symlink()\n"
7638 "sysconf()\n"
7639 "tcdrain()\n"
7640 "tcflow()\n"
7641 "tcflush()\n"
7642 "tcgetattr()\n"
7643 "tcgetpgrp()\n"
7644 "tcsendbreak()\n"
7645 "tcsetattr()\n"
7646 "tcsetpgrp()\n"
7647 "time()\n"
7648 "timer_getoverrun()\n"
7649 "timer_gettime()\n"
7650 "timer_settime()\n"
7651 "times()\n"
7652 "umask()\n"
7653 "uname()\n"
7654 "unlink()\n"
7655 "utime()\n"
7656 "wait()\n"
7657 "waitpid()\n"
7658 "write()\n"
7659 msgstr ""
7660 "_Exit()\n"
7661 "_exit()\n"
7662 "abort()\n"
7663 "accept()\n"
7664 "access()\n"
7665 "aio_error()\n"
7666 "aio_return()\n"
7667 "aio_suspend()\n"
7668 "alarm()\n"
7669 "bind()\n"
7670 "cfgetispeed()\n"
7671 "cfgetospeed()\n"
7672 "cfsetispeed()\n"
7673 "cfsetospeed()\n"
7674 "chdir()\n"
7675 "chmod()\n"
7676 "chown()\n"
7677 "clock_gettime()\n"
7678 "close()\n"
7679 "connect()\n"
7680 "creat()\n"
7681 "dup()\n"
7682 "dup2()\n"
7683 "execle()\n"
7684 "execve()\n"
7685 "fchmod()\n"
7686 "fchown()\n"
7687 "fcntl()\n"
7688 "fdatasync()\n"
7689 "fork()\n"
7690 "fpathconf()\n"
7691 "fstat()\n"
7692 "fsync()\n"
7693 "ftruncate()\n"
7694 "getegid()\n"
7695 "geteuid()\n"
7696 "getgid()\n"
7697 "getgroups()\n"
7698 "getpeername()\n"
7699 "getpgrp()\n"
7700 "getpid()\n"
7701 "getppid()\n"
7702 "getsockname()\n"
7703 "getsockopt()\n"
7704 "getuid()\n"
7705 "kill()\n"
7706 "link()\n"
7707 "listen()\n"
7708 "lseek()\n"
7709 "lstat()\n"
7710 "mkdir()\n"
7711 "mkfifo()\n"
7712 "open()\n"
7713 "pathconf()\n"
7714 "pause()\n"
7715 "pipe()\n"
7716 "poll()\n"
7717 "posix_trace_event()\n"
7718 "pselect()\n"
7719 "raise()\n"
7720 "read()\n"
7721 "readlink()\n"
7722 "recv()\n"
7723 "recvfrom()\n"
7724 "recvmsg()\n"
7725 "rename()\n"
7726 "rmdir()\n"
7727 "select()\n"
7728 "sem_post()\n"
7729 "send()\n"
7730 "sendmsg()\n"
7731 "sendto()\n"
7732 "setgid()\n"
7733 "setpgid()\n"
7734 "setsid()\n"
7735 "setsockopt()\n"
7736 "setuid()\n"
7737 "shutdown()\n"
7738 "sigaction()\n"
7739 "sigaddset()\n"
7740 "sigdelset()\n"
7741 "sigemptyset()\n"
7742 "sigfillset()\n"
7743 "sigismember()\n"
7744 "signal()\n"
7745 "sigpause()\n"
7746 "sigpending()\n"
7747 "sigprocmask()\n"
7748 "sigqueue()\n"
7749 "sigset()\n"
7750 "sigsuspend()\n"
7751 "sleep()\n"
7752 "sockatmark()\n"
7753 "socket()\n"
7754 "socketpair()\n"
7755 "stat()\n"
7756 "symlink()\n"
7757 "sysconf()\n"
7758 "tcdrain()\n"
7759 "tcflow()\n"
7760 "tcflush()\n"
7761 "tcgetattr()\n"
7762 "tcgetpgrp()\n"
7763 "tcsendbreak()\n"
7764 "tcsetattr()\n"
7765 "tcsetpgrp()\n"
7766 "time()\n"
7767 "timer_getoverrun()\n"
7768 "timer_gettime()\n"
7769 "timer_settime()\n"
7770 "times()\n"
7771 "umask()\n"
7772 "uname()\n"
7773 "unlink()\n"
7774 "utime()\n"
7775 "wait()\n"
7776 "waitpid()\n"
7777 "write()\n"
7778
7779 #. type: Plain text
7780 #: build/C/man7/signal.7:587
7781 msgid ""
7782 "POSIX.1-2008 removes fpathconf(), pathconf(), and sysconf()  from the above "
7783 "list, and adds the following functions:"
7784 msgstr ""
7785 "POSIX.1-2008 では、上記のリストのうち fpathconf(), pathconf(), sysconf()  が"
7786 "削除され、以下の関数が追加された。"
7787
7788 #. type: Plain text
7789 #: build/C/man7/signal.7:610
7790 #, no-wrap
7791 msgid ""
7792 "execl()\n"
7793 "execv()\n"
7794 "faccessat()\n"
7795 "fchmodat()\n"
7796 "fchownat()\n"
7797 "fexecve()\n"
7798 "fstatat()\n"
7799 "futimens()\n"
7800 "linkat()\n"
7801 "mkdirat()\n"
7802 "mkfifoat()\n"
7803 "mknod()\n"
7804 "mknodat()\n"
7805 "openat()\n"
7806 "readlinkat()\n"
7807 "renameat()\n"
7808 "symlinkat()\n"
7809 "unlinkat()\n"
7810 "utimensat()\n"
7811 "utimes()\n"
7812 msgstr ""
7813 "execl()\n"
7814 "execv()\n"
7815 "faccessat()\n"
7816 "fchmodat()\n"
7817 "fchownat()\n"
7818 "fexecve()\n"
7819 "fstatat()\n"
7820 "futimens()\n"
7821 "linkat()\n"
7822 "mkdirat()\n"
7823 "mkfifoat()\n"
7824 "mknod()\n"
7825 "mknodat()\n"
7826 "openat()\n"
7827 "readlinkat()\n"
7828 "renameat()\n"
7829 "symlinkat()\n"
7830 "unlinkat()\n"
7831 "utimensat()\n"
7832 "utimes()\n"
7833
7834 #. type: SS
7835 #: build/C/man7/signal.7:612
7836 #, no-wrap
7837 msgid "Interruption of system calls and library functions by signal handlers"
7838 msgstr "シグナルハンドラによるシステムコールやライブラリ関数への割り込み"
7839
7840 #. type: Plain text
7841 #: build/C/man7/signal.7:615
7842 msgid ""
7843 "If a signal handler is invoked while a system call or library function call "
7844 "is blocked, then either:"
7845 msgstr ""
7846 "システムコールやライブラリが停止 (block) している間にシグナルハンドラが 起動"
7847 "されると、以下のどちらかとなる。"
7848
7849 #. type: Plain text
7850 #: build/C/man7/signal.7:617
7851 msgid ""
7852 "the call is automatically restarted after the signal handler returns; or"
7853 msgstr "シグナルが返った後、呼び出しは自動的に再スタートされる。"
7854
7855 #. type: Plain text
7856 #: build/C/man7/signal.7:620
7857 msgid "the call fails with the error B<EINTR>."
7858 msgstr "呼び出しはエラー B<EINTR> で失敗する。"
7859
7860 #. type: Plain text
7861 #: build/C/man7/signal.7:628
7862 msgid ""
7863 "Which of these two behaviors occurs depends on the interface and whether or "
7864 "not the signal handler was established using the B<SA_RESTART> flag (see "
7865 "B<sigaction>(2)).  The details vary across UNIX systems; below, the details "
7866 "for Linux."
7867 msgstr ""
7868 "これらの二つの挙動のうちどちらが起こるかは、インターフェイスにより依存し、 シ"
7869 "グナルハンドラが B<SA_RESTART> フラグ (B<sigaction>(2)  参照) を使って設定さ"
7870 "れていたかにも依存する。 詳細は UNIX システムによって異なる。 Linux における"
7871 "詳細を以下で説明する。"
7872
7873 #.  The following system calls use ERESTARTSYS,
7874 #.  so that they are restartable
7875 #. type: Plain text
7876 #: build/C/man7/signal.7:637
7877 msgid ""
7878 "If a blocked call to one of the following interfaces is interrupted by a "
7879 "signal handler, then the call will be automatically restarted after the "
7880 "signal handler returns if the B<SA_RESTART> flag was used; otherwise the "
7881 "call will fail with the error B<EINTR>:"
7882 msgstr ""
7883 "以下のインターフェイスのいずれかの呼び出しが停止している間に シグナルハンドラ"
7884 "により割り込まれた場合、 B<SA_RESTART> フラグが使用されていれば、シグナルハン"
7885 "ドラが返った後に その呼び出しは自動的に再スタートされることになる。 それ以外"
7886 "の場合は、その呼び出しはエラー B<EINTR> で失敗することになる。"
7887
7888 #. type: Plain text
7889 #: build/C/man7/signal.7:653
7890 msgid ""
7891 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), and B<ioctl>(2)  calls "
7892 "on \"slow\" devices.  A \"slow\" device is one where the I/O call may block "
7893 "for an indefinite time, for example, a terminal, pipe, or socket.  (A disk "
7894 "is not a slow device according to this definition.)  If an I/O call on a "
7895 "slow device has already transferred some data by the time it is interrupted "
7896 "by a signal handler, then the call will return a success status (normally, "
7897 "the number of bytes transferred)."
7898 msgstr ""
7899 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), B<ioctl>(2)  の「遅い "
7900 "(slow)」デバイスに対する呼び出し。 ここでいう「遅い」デバイスとは、I/O 呼び出"
7901 "しが無期限に停止 (block) する 可能性のあるデバイスのことで、例としては端末、"
7902 "パイプ、ソケットがある (この定義では、ディスクは遅いデバイスではない)。 遅い"
7903 "デバイスに対する I/O 呼び出しが、 シグナルハンドラにより割り込まれた時点まで"
7904 "に何らかのデータを すでに転送していれば、呼び出しは成功ステータス (通常は、転"
7905 "送されたバイト数) を返すことだろう。"
7906
7907 #. type: Plain text
7908 #: build/C/man7/signal.7:657
7909 msgid ""
7910 "B<open>(2), if it can block (e.g., when opening a FIFO; see B<fifo>(7))."
7911 msgstr ""
7912 "停止 (block) する可能性のある B<open>(2)  (例えば、FIFO のオープン時; B<fifo>"
7913 "(7)  参照)。"
7914
7915 #. type: Plain text
7916 #: build/C/man7/signal.7:664
7917 msgid "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), and B<waitpid>(2)."
7918 msgstr "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), B<waitpid>(2)."
7919
7920 #.  If a timeout (setsockopt()) is in effect on the socket, then these
7921 #.  system calls switch to using EINTR.  Consequently, they and are not
7922 #.  automatically restarted, and they show the stop/cont behavior
7923 #.  described below.  (Verified from 2.6.26 source, and by experiment; mtk)
7924 #. type: Plain text
7925 #: build/C/man7/signal.7:680
7926 msgid ""
7927 "Socket interfaces: B<accept>(2), B<connect>(2), B<recv>(2), B<recvfrom>(2), "
7928 "B<recvmsg>(2), B<send>(2), B<sendto>(2), and B<sendmsg>(2), unless a timeout "
7929 "has been set on the socket (see below)."
7930 msgstr ""
7931 "ソケットインターフェイス: B<accept>(2), B<connect>(2), B<recv>(2), "
7932 "B<recvfrom>(2), B<recvmsg>(2), B<send>(2), B<sendto>(2), B<sendmsg>(2).  但"
7933 "し、ソケットにタイムアウトが設定されていない場合 (下記参照)。"
7934
7935 #. type: Plain text
7936 #: build/C/man7/signal.7:686
7937 msgid "File locking interfaces: B<flock>(2)  and B<fcntl>(2)  B<F_SETLKW>."
7938 msgstr ""
7939 "ファイルロック用インターフェイス: B<flock>(2), B<fcntl>(2)  B<F_SETLKW>."
7940
7941 #. type: Plain text
7942 #: build/C/man7/signal.7:693
7943 msgid ""
7944 "POSIX message queue interfaces: B<mq_receive>(3), B<mq_timedreceive>(3), "
7945 "B<mq_send>(3), and B<mq_timedsend>(3)."
7946 msgstr ""
7947 "POSIX メッセージキューインターフェイス: B<mq_receive>(3), B<mq_timedreceive>"
7948 "(3), B<mq_send>(3), B<mq_timedsend>(3)."
7949
7950 #. type: Plain text
7951 #: build/C/man7/signal.7:698
7952 msgid ""
7953 "B<futex>(2)  B<FUTEX_WAIT> (since Linux 2.6.22; beforehand, always failed "
7954 "with B<EINTR>)."
7955 msgstr ""
7956 "B<futex>(2)  B<FUTEX_WAIT> (Linux 2.6.22 以降; それ以前は常に B<EINTR> で失敗"
7957 "していた)。"
7958
7959 #. type: Plain text
7960 #: build/C/man7/signal.7:705
7961 msgid ""
7962 "POSIX semaphore interfaces: B<sem_wait>(3)  and B<sem_timedwait>(3)  (since "
7963 "Linux 2.6.22; beforehand, always failed with B<EINTR>)."
7964 msgstr ""
7965 "POSIX セマフォインターフェイス: B<sem_wait>(3), B<sem_timedwait>(3)  (Linux "
7966 "2.6.22 以降; それ以前は常に B<EINTR> で失敗していた)。"
7967
7968 #.  These are the system calls that give EINTR or ERESTARTNOHAND
7969 #.  on interruption by a signal handler.
7970 #. type: Plain text
7971 #: build/C/man7/signal.7:716
7972 msgid ""
7973 "The following interfaces are never restarted after being interrupted by a "
7974 "signal handler, regardless of the use of B<SA_RESTART>; they always fail "
7975 "with the error B<EINTR> when interrupted by a signal handler:"
7976 msgstr ""
7977 "以下のインターフェイスは、 B<SA_RESTART> を使っているどうかに関わらず、シグナ"
7978 "ルハンドラにより割り込まれた後、 再スタートすることは決してない。 これらは、"
7979 "シグナルハンドラにより割り込まれると、常にエラー B<EINTR> で失敗する。"
7980
7981 #. type: Plain text
7982 #: build/C/man7/signal.7:736 build/C/man7/signal.7:810
7983 msgid ""
7984 "Socket interfaces, when a timeout has been set on the socket using "
7985 "B<setsockopt>(2): B<accept>(2), B<recv>(2), B<recvfrom>(2), and B<recvmsg>"
7986 "(2), if a receive timeout (B<SO_RCVTIMEO>)  has been set; B<connect>(2), "
7987 "B<send>(2), B<sendto>(2), and B<sendmsg>(2), if a send timeout "
7988 "(B<SO_SNDTIMEO>)  has been set."
7989 msgstr ""
7990 "B<setsockopt>(2)  を使ってタイムアウトが設定されているソケットインターフェー"
7991 "ス: B<accept>(2), B<recv>(2), B<recvfrom>(2), B<recvmsg>(2)  で受信タイムアウ"
7992 "ト (B<SO_RCVTIMEO>)  が設定されている場合と、 B<connect>(2), B<send>(2), "
7993 "B<sendto>(2), B<sendmsg>(2)  で送信タイムアウト (B<SO_SNDTIMEO>)  が設定され"
7994 "ている場合。"
7995
7996 #. type: Plain text
7997 #: build/C/man7/signal.7:743
7998 msgid ""
7999 "Interfaces used to wait for signals: B<pause>(2), B<sigsuspend>(2), "
8000 "B<sigtimedwait>(2), and B<sigwaitinfo>(2)."
8001 msgstr ""
8002 "シグナル待ちに使われるインターフェイス: B<pause>(2), B<sigsuspend>(2), "
8003 "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8004
8005 #. type: Plain text
8006 #: build/C/man7/signal.7:752
8007 msgid ""
8008 "File descriptor multiplexing interfaces: B<epoll_wait>(2), B<epoll_pwait>"
8009 "(2), B<poll>(2), B<ppoll>(2), B<select>(2), and B<pselect>(2)."
8010 msgstr ""
8011 "ファイルディスクリプタ多重インターフェイス: B<epoll_wait>(2), B<epoll_pwait>"
8012 "(2), B<poll>(2), B<ppoll>(2), B<select>(2), B<pselect>(2)."
8013
8014 #.  On some other systems, SA_RESTART does restart these system calls
8015 #. type: Plain text
8016 #: build/C/man7/signal.7:760
8017 msgid ""
8018 "System V IPC interfaces: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), and "
8019 "B<semtimedop>(2)."
8020 msgstr ""
8021 "System V IPC インターフェイス: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), "
8022 "B<semtimedop>(2)."
8023
8024 #. type: Plain text
8025 #: build/C/man7/signal.7:766
8026 msgid ""
8027 "Sleep interfaces: B<clock_nanosleep>(2), B<nanosleep>(2), and B<usleep>(3)."
8028 msgstr ""
8029 "スリープ用のインターフェイス: B<clock_nanosleep>(2), B<nanosleep>(2), "
8030 "B<usleep>(3)."
8031
8032 #. type: Plain text
8033 #: build/C/man7/signal.7:771 build/C/man7/signal.7:824
8034 msgid "B<read>(2)  from an B<inotify>(7)  file descriptor."
8035 msgstr "B<inotify>(7)  ファイルディスクリプタからの B<read>(2)."
8036
8037 #. type: Plain text
8038 #: build/C/man7/signal.7:773
8039 msgid "B<io_getevents>(2)."
8040 msgstr "B<io_getevents>(2)."
8041
8042 #. type: Plain text
8043 #: build/C/man7/signal.7:779
8044 msgid ""
8045 "The B<sleep>(3)  function is also never restarted if interrupted by a "
8046 "handler, but gives a success return: the number of seconds remaining to "
8047 "sleep."
8048 msgstr ""
8049 "B<sleep>(3)  関数も、ハンドラにより割り込まれた場合、決して再スタートされるこ"
8050 "とはない。 しかし、成功となり、残っている停止時間を返す。"
8051
8052 #. type: SS
8053 #: build/C/man7/signal.7:779
8054 #, no-wrap
8055 msgid "Interruption of system calls and library functions by stop signals"
8056 msgstr "一時停止シグナルによるシステムコールやライブラリ関数への割り込み"
8057
8058 #. type: Plain text
8059 #: build/C/man7/signal.7:788
8060 msgid ""
8061 "On Linux, even in the absence of signal handlers, certain blocking "
8062 "interfaces can fail with the error B<EINTR> after the process is stopped by "
8063 "one of the stop signals and then resumed via B<SIGCONT>.  This behavior is "
8064 "not sanctioned by POSIX.1, and doesn't occur on other systems."
8065 msgstr ""
8066 "Linux では、シグナルハンドラが設定されていない場合でも、 いくつかのブロッキン"
8067 "グ型のインターフェイスは、 プロセスが一時停止 (stop) シグナルの一つにより停止"
8068 "され、 B<SIGCONT> により再開された後に、エラー B<EINTR> で失敗する可能性があ"
8069 "る。 この挙動は POSIX.1 で認められておらず、他のシステムでは起こらない。"
8070
8071 #. type: Plain text
8072 #: build/C/man7/signal.7:790
8073 msgid "The Linux interfaces that display this behavior are:"
8074 msgstr "この挙動を示す Linux のインターフェイスは以下の通りである。"
8075
8076 #. type: Plain text
8077 #: build/C/man7/signal.7:813
8078 msgid "B<epoll_wait>(2), B<epoll_pwait>(2)."
8079 msgstr "B<epoll_wait>(2), B<epoll_pwait>(2)."
8080
8081 #. type: Plain text
8082 #: build/C/man7/signal.7:816
8083 msgid "B<semop>(2), B<semtimedop>(2)."
8084 msgstr "B<semop>(2), B<semtimedop>(2)."
8085
8086 #. type: Plain text
8087 #: build/C/man7/signal.7:819
8088 msgid "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8089 msgstr "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8090
8091 #. type: Plain text
8092 #: build/C/man7/signal.7:830
8093 msgid ""
8094 "Linux 2.6.21 and earlier: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
8095 "B<sem_wait>(3)."
8096 msgstr ""
8097 "Linux 2.6.21 以前: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
8098 "B<sem_wait>(3)."
8099
8100 #. type: Plain text
8101 #: build/C/man7/signal.7:834
8102 msgid "Linux 2.6.8 and earlier: B<msgrcv>(2), B<msgsnd>(2)."
8103 msgstr "Linux 2.6.8 以前: B<msgrcv>(2), B<msgsnd>(2)."
8104
8105 #. type: Plain text
8106 #: build/C/man7/signal.7:837
8107 msgid "Linux 2.4 and earlier: B<nanosleep>(2)."
8108 msgstr "Linux 2.4 以前: B<nanosleep>(2)."
8109
8110 #.  It must be a *very* long time since this was true:
8111 #.  .SH BUGS
8112 #.  .B SIGIO
8113 #.  and
8114 #.  .B SIGLOST
8115 #.  have the same value.
8116 #.  The latter is commented out in the kernel source, but
8117 #.  the build process of some software still thinks that
8118 #.  signal 29 is
8119 #.  .BR SIGLOST .
8120 #. type: Plain text
8121 #: build/C/man7/signal.7:850
8122 msgid "POSIX.1, except as noted."
8123 msgstr "POSIX.1 (注記した内容以外)。"
8124
8125 #. type: Plain text
8126 #: build/C/man7/signal.7:883
8127 msgid ""
8128 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), B<rt_sigqueueinfo>"
8129 "(2), B<setitimer>(2), B<setrlimit>(2), B<sgetmask>(2), B<sigaction>(2), "
8130 "B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
8131 "B<sigprocmask>(2), B<sigsuspend>(2), B<sigwaitinfo>(2), B<abort>(3), "
8132 "B<bsd_signal>(3), B<longjmp>(3), B<raise>(3), B<pthread_sigqueue>(3), "
8133 "B<sigqueue>(3), B<sigset>(3), B<sigsetops>(3), B<sigvec>(3), B<sigwait>(3), "
8134 "B<strsignal>(3), B<sysv_signal>(3), B<core>(5), B<proc>(5), B<pthreads>(7), "
8135 "B<sigevent>(7)"
8136 msgstr ""
8137 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), B<rt_sigqueueinfo>"
8138 "(2), B<setitimer>(2), B<setrlimit>(2), B<sgetmask>(2), B<sigaction>(2), "
8139 "B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
8140 "B<sigprocmask>(2), B<sigsuspend>(2), B<sigwaitinfo>(2), B<abort>(3), "
8141 "B<bsd_signal>(3), B<longjmp>(3), B<raise>(3), B<pthread_sigqueue>(3), "
8142 "B<sigqueue>(3), B<sigset>(3), B<sigsetops>(3), B<sigvec>(3), B<sigwait>(3), "
8143 "B<strsignal>(3), B<sysv_signal>(3), B<core>(5), B<proc>(5), B<pthreads>(7), "
8144 "B<sigevent>(7)"
8145
8146 #. type: TH
8147 #: build/C/man2/signalfd.2:20
8148 #, no-wrap
8149 msgid "SIGNALFD"
8150 msgstr "SIGNALFD"
8151
8152 #. type: TH
8153 #: build/C/man2/signalfd.2:20
8154 #, no-wrap
8155 msgid "2009-01-13"
8156 msgstr "2009-01-13"
8157
8158 #. type: Plain text
8159 #: build/C/man2/signalfd.2:23
8160 msgid "signalfd - create a file descriptor for accepting signals"
8161 msgstr "signalfd - シグナル受け付け用のファイルディスクリプタを生成する"
8162
8163 #. type: Plain text
8164 #: build/C/man2/signalfd.2:25
8165 msgid "B<#include E<lt>sys/signalfd.hE<gt>>"
8166 msgstr "B<#include E<lt>sys/signalfd.hE<gt>>"
8167
8168 #. type: Plain text
8169 #: build/C/man2/signalfd.2:27
8170 msgid ""
8171 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
8172 msgstr ""
8173 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
8174
8175 #. type: Plain text
8176 #: build/C/man2/signalfd.2:38
8177 msgid ""
8178 "B<signalfd>()  creates a file descriptor that can be used to accept signals "
8179 "targeted at the caller.  This provides an alternative to the use of a signal "
8180 "handler or B<sigwaitinfo>(2), and has the advantage that the file descriptor "
8181 "may be monitored by B<select>(2), B<poll>(2), and B<epoll>(7)."
8182 msgstr ""
8183 "B<signalfd>()  は、呼び出し元宛てのシグナルを受け付けるために使用されるファイ"
8184 "ル ディスクリプタを生成する。 この方法はシグナルハンドラや B<sigwaitinfo>"
8185 "(2)  を用いる方法の代わりとなるものであり、このファイルディスクリプタを "
8186 "B<select>(2), B<poll>(2), B<epoll>(7)  で監視できるという利点がある。"
8187
8188 #. type: Plain text
8189 #: build/C/man2/signalfd.2:58
8190 msgid ""
8191 "The I<mask> argument specifies the set of signals that the caller wishes to "
8192 "accept via the file descriptor.  This argument is a signal set whose "
8193 "contents can be initialized using the macros described in B<sigsetops>(3).  "
8194 "Normally, the set of signals to be received via the file descriptor should "
8195 "be blocked using B<sigprocmask>(2), to prevent the signals being handled "
8196 "according to their default dispositions.  It is not possible to receive "
8197 "B<SIGKILL> or B<SIGSTOP> signals via a signalfd file descriptor; these "
8198 "signals are silently ignored if specified in I<mask>."
8199 msgstr ""
8200 "I<mask> 引き数には、呼び出し元がこのファイルディスクリプタ経由で受け付けたい "
8201 "シグナル集合を指定する。この引き数で指定するシグナル集合の内容は、 "
8202 "B<sigsetops>(3)  で説明されているマクロを使って初期化することができる。 通"
8203 "常、ファイルディスクリプタ経由で受信するシグナル集合は、 そのシグナルがデフォ"
8204 "ルトの配送方法に基いて処理されるのを防ぐために、 B<sigprocmask>(2)  を使って"
8205 "ブロックしておくべきである。 シグナル B<SIGKILL> と B<SIGSTOP> を signalfd "
8206 "ファイルディスクリプタ経由で受信することはできない。 これらのシグナルが "
8207 "I<mask> で指定された場合には黙って無視される。"
8208
8209 #. type: Plain text
8210 #: build/C/man2/signalfd.2:72
8211 msgid ""
8212 "If the I<fd> argument is -1, then the call creates a new file descriptor and "
8213 "associates the signal set specified in I<mask> with that descriptor.  If "
8214 "I<fd> is not -1, then it must specify a valid existing signalfd file "
8215 "descriptor, and I<mask> is used to replace the signal set associated with "
8216 "that descriptor."
8217 msgstr ""
8218 "I<fd> 引き数が -1 の場合、 B<signalfd>()  は新しいファイルディスクリプタを生"
8219 "成し、 I<mask> で指定されたシグナル集合をそのファイルディスクリプタに関連付け"
8220 "る。 I<fd> 引き数が -1 以外の場合、 I<fd> には有効な既存の signalfd ファイル"
8221 "ディスクリプタを指定しなければならず、 そのディスクリプタに関連付けられている"
8222 "シグナル集合は I<mask> を使って置き換えられる。"
8223
8224 #. type: Plain text
8225 #: build/C/man2/signalfd.2:77
8226 msgid ""
8227 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
8228 "I<flags> to change the behaviour of B<signalfd>():"
8229 msgstr ""
8230 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
8231 "ることで、 B<signalfd>()  の振舞いを変更することができる。"
8232
8233 #. type: TP
8234 #: build/C/man2/signalfd.2:77
8235 #, no-wrap
8236 msgid "B<SFD_NONBLOCK>"
8237 msgstr "B<SFD_NONBLOCK>"
8238
8239 #. type: TP
8240 #: build/C/man2/signalfd.2:85
8241 #, no-wrap
8242 msgid "B<SFD_CLOEXEC>"
8243 msgstr "B<SFD_CLOEXEC>"
8244
8245 #. type: Plain text
8246 #: build/C/man2/signalfd.2:102
8247 msgid ""
8248 "B<signalfd>()  returns a file descriptor that supports the following "
8249 "operations:"
8250 msgstr ""
8251 "B<signalfd>()  が返すファイルディスクリプタは以下の操作をサポートしている。"
8252
8253 #. type: Plain text
8254 #: build/C/man2/signalfd.2:121
8255 msgid ""
8256 "If one or more of the signals specified in I<mask> is pending for the "
8257 "process, then the buffer supplied to B<read>(2)  is used to return one or "
8258 "more I<signalfd_siginfo> structures (see below) that describe the signals.  "
8259 "The B<read>(2)  returns information for as many signals as are pending and "
8260 "will fit in the supplied buffer.  The buffer must be at least I<sizeof"
8261 "(struct signalfd_siginfo)> bytes.  The return value of the B<read>(2)  is "
8262 "the total number of bytes read."
8263 msgstr ""
8264 "I<mask> に指定されているシグナルのうち一つ以上がそのプロセスに対して 処理待"
8265 "ち (pending) であれば、それらのシグナルの情報が B<read>(2)  に渡されたバッ"
8266 "ファを使って、 I<signalfd_siginfo> 構造体に格納されて返される。 B<read>(2)  "
8267 "は、バッファに格納可能な範囲でできるだけ多くの処理待ちのシグナルに ついての情"
8268 "報を返す。 バッファは最低でも I<sizeof(struct signalfd_siginfo)> バイトの大き"
8269 "さがなければならない。 B<read>(2)  の返り値は読み出されたトータルのバイト数で"
8270 "ある。"
8271
8272 #. type: Plain text
8273 #: build/C/man2/signalfd.2:129
8274 msgid ""
8275 "As a consequence of the B<read>(2), the signals are consumed, so that they "
8276 "are no longer pending for the process (i.e., will not be caught by signal "
8277 "handlers, and cannot be accepted using B<sigwaitinfo>(2))."
8278 msgstr ""
8279 "B<read>(2)  が行われた結果、シグナルは消費され、 これらのシグナルはそのプロセ"
8280 "スに対しては処理待ちではなくなる (つまり、シグナルハンドラで捕捉されることも"
8281 "なく、 B<sigwaitinfo>(2)  を使って受け取ることもできなくなる)。"
8282
8283 #. type: Plain text
8284 #: build/C/man2/signalfd.2:140
8285 msgid ""
8286 "If none of the signals in I<mask> is pending for the process, then the "
8287 "B<read>(2)  either blocks until one of the signals in I<mask> is generated "
8288 "for the process, or fails with the error B<EAGAIN> if the file descriptor "
8289 "has been made nonblocking."
8290 msgstr ""
8291 "I<mask> に指定されているシグナルがそのプロセスに対して一つも処理待ちでなけれ"
8292 "ば、 B<read>(2)  は、 I<mask> で指定されたシグナルのうちいずれか一つがそのプ"
8293 "ロセスに対して発生するまで 停止 (block) する、もしくはファイルディスクリプタ"
8294 "が非停止 (nonblocking)  に設定されている場合はエラー B<EAGAIN> で失敗する。"
8295
8296 #. type: Plain text
8297 #: build/C/man2/signalfd.2:153
8298 msgid ""
8299 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
8300 "B<poll>(2)  B<POLLIN> flag)  if one or more of the signals in I<mask> is "
8301 "pending for the process."
8302 msgstr ""
8303 "I<mask> に指定されたシグナルのうち一つ以上がそのプロセスに対して処理待ちであ"
8304 "れば、 ファイルディスクリプタは読み出し可能となる (B<select>(2)  の "
8305 "I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
8306
8307 #. type: Plain text
8308 #: build/C/man2/signalfd.2:160
8309 msgid ""
8310 "The signalfd file descriptor also supports the other file-descriptor "
8311 "multiplexing APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
8312 msgstr ""
8313 "signalfd ファイルディスクリプタは、これ以外のファイルディスクリプタ 多重 API "
8314 "である B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
8315
8316 #. type: Plain text
8317 #: build/C/man2/signalfd.2:165
8318 msgid ""
8319 "When the file descriptor is no longer required it should be closed.  When "
8320 "all file descriptors associated with the same signalfd object have been "
8321 "closed, the resources for object are freed by the kernel."
8322 msgstr ""
8323 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
8324 "る。 同じ signalfd オブジェクトに関連付けられたファイルディスクリプタが全て "
8325 "クローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
8326
8327 #. type: SS
8328 #: build/C/man2/signalfd.2:165
8329 #, no-wrap
8330 msgid "The signalfd_siginfo structure"
8331 msgstr "signalfd_siginfo 構造体"
8332
8333 #. type: Plain text
8334 #: build/C/man2/signalfd.2:171
8335 msgid ""
8336 "The format of the I<signalfd_siginfo> structure(s) returned by B<read>(2)s "
8337 "from a signalfd file descriptor is as follows:"
8338 msgstr ""
8339 "signalfd ファイルディスクリプタからの B<read>(2)  で返される "
8340 "I<signalfd_siginfo> 構造体のフォーマットは以下の通りである。"
8341
8342 #.  ssi_trapno is unused on most arches
8343 #.  FIXME Since Linux 2.6.37 there is 'uint16_t ssi_addr_lsb'
8344 #.  which is not yet documented
8345 #. type: Plain text
8346 #: build/C/man2/signalfd.2:198
8347 #, no-wrap
8348 msgid ""
8349 "struct signalfd_siginfo {\n"
8350 "    uint32_t ssi_signo;   /* Signal number */\n"
8351 "    int32_t  ssi_errno;   /* Error number (unused) */\n"
8352 "    int32_t  ssi_code;    /* Signal code */\n"
8353 "    uint32_t ssi_pid;     /* PID of sender */\n"
8354 "    uint32_t ssi_uid;     /* Real UID of sender */\n"
8355 "    int32_t  ssi_fd;      /* File descriptor (SIGIO) */\n"
8356 "    uint32_t ssi_tid;     /* Kernel timer ID (POSIX timers)\n"
8357 "    uint32_t ssi_band;    /* Band event (SIGIO) */\n"
8358 "    uint32_t ssi_overrun; /* POSIX timer overrun count */\n"
8359 "    uint32_t ssi_trapno;  /* Trap number that caused signal */\n"
8360 "    int32_t  ssi_status;  /* Exit status or signal (SIGCHLD) */\n"
8361 "    int32_t  ssi_int;     /* Integer sent by sigqueue(3) */\n"
8362 "    uint64_t ssi_ptr;     /* Pointer sent by sigqueue(3) */\n"
8363 "    uint64_t ssi_utime;   /* User CPU time consumed (SIGCHLD) */\n"
8364 "    uint64_t ssi_stime;   /* System CPU time consumed (SIGCHLD) */\n"
8365 "    uint64_t ssi_addr;    /* Address that generated signal\n"
8366 "                             (for hardware-generated signals) */\n"
8367 "    uint8_t  pad[I<X>];      /* Pad size to 128 bytes (allow for\n"
8368 "                              additional fields in the future) */\n"
8369 "};\n"
8370 msgstr ""
8371 "struct signalfd_siginfo {\n"
8372 "struct signalfd_siginfo {\n"
8373 "    uint32_t ssi_signo;   /* シグナル番号 */\n"
8374 "    int32_t  ssi_errno;   /* エラー番号 (未使用) */\n"
8375 "    int32_t  ssi_code;    /* シグナルコード */\n"
8376 "    uint32_t ssi_pid;     /* 送信元の PID */\n"
8377 "    uint32_t ssi_uid;     /* 送信元の実 UID */\n"
8378 "    int32_t  ssi_fd;      /* ファイルディスクリプタ (SIGIO) */\n"
8379 "    uint32_t ssi_tid;     /* カーネルタイマ ID (POSIX タイマ)\n"
8380 "    uint32_t ssi_band;    /* Band イベント (SIGIO) */\n"
8381 "    uint32_t ssi_overrun; /* POSIX タイマのオーバーラン回数 */\n"
8382 "    uint32_t ssi_trapno;  /* シグナルの原因となったトラップ番号 */\n"
8383 "    int32_t  ssi_status;  /* 終了ステータスかシグナル (SIGCHLD) */\n"
8384 "    int32_t  ssi_int;     /* sigqueue(3) から送られた整数 */\n"
8385 "    uint64_t ssi_ptr;     /* sigqueue(3) から送られたポインタ */\n"
8386 "    uint64_t ssi_utime;   /* 消費したユーザ CPU 時間 (SIGCHLD) */\n"
8387 "    uint64_t ssi_stime;   /* 消費したシステム CPU 時間 (SIGCHLD) */\n"
8388 "    uint64_t ssi_addr;    /* シグナルを生成したアドレス\n"
8389 "                             (ハードウェアが生成したシグナルの場合) */\n"
8390 "    uint8_t  pad[I<X>];      /* pad の大きさは 128 バイト\n"
8391 "                             (将来のフィールド追加用の場所の確保) */\n"
8392 "};\n"
8393
8394 #. type: Plain text
8395 #: build/C/man2/signalfd.2:221
8396 msgid ""
8397 "Each of the fields in this structure is analogous to the similarly named "
8398 "field in the I<siginfo_t> structure.  The I<siginfo_t> structure is "
8399 "described in B<sigaction>(2).  Not all fields in the returned "
8400 "I<signalfd_siginfo> structure will be valid for a specific signal; the set "
8401 "of valid fields can be determined from the value returned in the I<ssi_code> "
8402 "field.  This field is the analog of the I<siginfo_t> I<si_code> field; see "
8403 "B<sigaction>(2)  for details."
8404 msgstr ""
8405 "I<signalfd_siginfo> 構造体の各フィールドは、 I<siginfo_t> 構造体の同じような"
8406 "名前のフィールドと同様である。 I<siginfo_t> 構造体については B<sigaction>"
8407 "(2)  に説明がある。 返された I<signalfd_siginfo> 構造体の全てのフィールドがあ"
8408 "るシグナルに対して有効なわけではない。 どのフィールドが有効かは、 "
8409 "I<ssi_code> フィールドで返される値から判定することができる。 このフィールド"
8410 "は I<siginfo_t> の I<si_code> フィールドと同様である。詳細は B<sigaction>"
8411 "(2)  を参照。"
8412
8413 #. type: SS
8414 #: build/C/man2/signalfd.2:221 build/C/man2/timerfd_create.2:269
8415 #, no-wrap
8416 msgid "fork(2) semantics"
8417 msgstr "fork(2) での扱い"
8418
8419 #. type: Plain text
8420 #: build/C/man2/signalfd.2:229
8421 msgid ""
8422 "After a B<fork>(2), the child inherits a copy of the signalfd file "
8423 "descriptor.  A B<read>(2)  from the file descriptor in the child will return "
8424 "information about signals queued to the child."
8425 msgstr ""
8426 "B<fork>(2)  が行われると、子プロセスは signalfd ファイルディスクリプタのコ"
8427 "ピーを 継承する。 子プロセスでこのファイルディスクリプタから B<read>(2)  を行"
8428 "うと、子プロセスに対するキューに入っているシグナルに関する 情報が返される。"
8429
8430 #. type: SS
8431 #: build/C/man2/signalfd.2:229 build/C/man2/timerfd_create.2:281
8432 #, no-wrap
8433 msgid "execve(2) semantics"
8434 msgstr "execve(2) での扱い"
8435
8436 #. type: Plain text
8437 #: build/C/man2/signalfd.2:241
8438 msgid ""
8439 "Just like any other file descriptor, a signalfd file descriptor remains open "
8440 "across an B<execve>(2), unless it has been marked for close-on-exec (see "
8441 "B<fcntl>(2)).  Any signals that were available for reading before the "
8442 "B<execve>(2)  remain available to the newly loaded program.  (This is "
8443 "analogous to traditional signal semantics, where a blocked signal that is "
8444 "pending remains pending across an B<execve>(2).)"
8445 msgstr ""
8446 "他のファイルディスクリプタと全く同様に、 signalfd ファイルディスクリプタも "
8447 "B<execve>(2)  の前後でオープンされたままとなる。但し、そのファイルディスクリ"
8448 "プタに close-on-exec のマーク (B<fcntl>(2)  参照) が付いている場合はクローズ"
8449 "される。 B<execve>(2)  の前に読み出し可能となっていた全てのシグナルは新しく起"
8450 "動されたプログラム でも引き続き読み出し可能である (これは伝統的なシグナルの扱"
8451 "いと同じであり、 処理待ちのブロックされたシグナルは B<execve>(2)  の前後で処"
8452 "理待ちのままとなる)。"
8453
8454 #. type: SS
8455 #: build/C/man2/signalfd.2:241
8456 #, no-wrap
8457 msgid "Thread semantics"
8458 msgstr "スレッドでの扱い"
8459
8460 #. type: Plain text
8461 #: build/C/man2/signalfd.2:251
8462 msgid ""
8463 "The semantics of signalfd file descriptors in a multithreaded program mirror "
8464 "the standard semantics for signals.  In other words, when a thread reads "
8465 "from a signalfd file descriptor, it will read the signals that are directed "
8466 "to the thread itself and the signals that are directed to the process (i.e., "
8467 "the entire thread group).  (A thread will not be able to read signals that "
8468 "are directed to other threads in the process.)"
8469 msgstr ""
8470 "マルチスレッドプログラムにおける signalfd ファイルディスクリプタの扱いは シグ"
8471 "ナルの標準的な扱いと全く同じである。 言い換えると、あるスレッドが signalfd "
8472 "ファイルディスクリプタから 読み出しを行うと、そのスレッド自身宛てのシグナルと"
8473 "プロセス (すなわち スレッドグループ全体) 宛てのシグナルが読み出される。 (ス"
8474 "レッドは同じプロセスの他のスレッド宛てのシグナルを読み出すことはできない。)"
8475
8476 #. type: Plain text
8477 #: build/C/man2/signalfd.2:265
8478 msgid ""
8479 "On success, B<signalfd>()  returns a signalfd file descriptor; this is "
8480 "either a new file descriptor (if I<fd> was -1), or I<fd> if I<fd> was a "
8481 "valid signalfd file descriptor.  On error, -1 is returned and I<errno> is "
8482 "set to indicate the error."
8483 msgstr ""
8484 "成功すると、 B<signalfd>()  は signalfd ファイルディスクリプタを返す。 返され"
8485 "るファイルディスクリプタは、 I<fd> が -1 の場合は新規のファイルディスクリプタ"
8486 "であり、 I<fd> が有効な signalfd ファイルディスクリプタだった場合は I<fd> 自"
8487 "身である。 エラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
8488
8489 #. type: TP
8490 #: build/C/man2/signalfd.2:266 build/C/man2/timerfd_create.2:338
8491 #, no-wrap
8492 msgid "B<EBADF>"
8493 msgstr "B<EBADF>"
8494
8495 #. type: Plain text
8496 #: build/C/man2/signalfd.2:271
8497 msgid "The I<fd> file descriptor is not a valid file descriptor."
8498 msgstr "ファイルディスクリプタ I<fd> が有効なファイルディスクリプタでない。"
8499
8500 #.  or, the
8501 #.  .I sizemask
8502 #.  argument is not equal to
8503 #.  .IR sizeof(sigset_t) ;
8504 #. type: Plain text
8505 #: build/C/man2/signalfd.2:279
8506 msgid "I<fd> is not a valid signalfd file descriptor."
8507 msgstr "I<fd> が有効な signalfd ファイルディスクリプタではない。"
8508
8509 #. type: Plain text
8510 #: build/C/man2/signalfd.2:286 build/C/man2/timerfd_create.2:320
8511 msgid ""
8512 "I<flags> is invalid; or, in Linux 2.6.26 or earlier, I<flags> is nonzero."
8513 msgstr ""
8514 "I<flags> が無効である。もしくは、Linux 2.6.26 以前の場合には I<flags> が 0 以"
8515 "外である。"
8516
8517 #. type: Plain text
8518 #: build/C/man2/signalfd.2:289 build/C/man2/timerfd_create.2:323
8519 msgid "The per-process limit of open file descriptors has been reached."
8520 msgstr ""
8521 "オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。"
8522
8523 #. type: Plain text
8524 #: build/C/man2/signalfd.2:299
8525 msgid "There was insufficient memory to create a new signalfd file descriptor."
8526 msgstr ""
8527 "新しい signalfd ファイルディスクリプタを生成するのに十分なメモリがなかった。"
8528
8529 #.  signalfd() is in glibc 2.7, but reportedly does not build
8530 #. type: Plain text
8531 #: build/C/man2/signalfd.2:307
8532 msgid ""
8533 "B<signalfd>()  is available on Linux since kernel 2.6.22.  Working support "
8534 "is provided in glibc since version 2.8.  The B<signalfd4>()  system call "
8535 "(see NOTES) is available on Linux since kernel 2.6.27."
8536 msgstr ""
8537 "B<signalfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
8538 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<signalfd4>()  "
8539 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
8540 "る。"
8541
8542 #. type: Plain text
8543 #: build/C/man2/signalfd.2:312
8544 msgid "B<signalfd>()  and B<signalfd4>()  are Linux-specific."
8545 msgstr "B<signalfd>()  と B<signalfd4>()  は Linux 固有である。"
8546
8547 #. type: Plain text
8548 #: build/C/man2/signalfd.2:322
8549 msgid ""
8550 "The underlying Linux system call requires an additional argument, I<size_t "
8551 "sizemask>, which specifies the size of the I<mask> argument.  The glibc "
8552 "B<signalfd>()  wrapper function does not include this argument, since it "
8553 "provides the required value for the underlying system call."
8554 msgstr ""
8555 "実際の Linux のシステムコールでは I<size_t sizemask> という引き数が追加で必要"
8556 "である。この引き数で I<mask> のサイズを指定する。 glibc の B<signalfd>()  "
8557 "ラッパー関数にはこの引き数は含まれず、 ラッパー関数が必要な値を計算して内部で"
8558 "呼び出すシステムコールに提供する。"
8559
8560 #. type: Plain text
8561 #: build/C/man2/signalfd.2:336
8562 msgid ""
8563 "A process can create multiple signalfd file descriptors.  This makes it "
8564 "possible to accept different signals on different file descriptors.  (This "
8565 "may be useful if monitoring the file descriptors using B<select>(2), B<poll>"
8566 "(2), or B<epoll>(7): the arrival of different signals will make different "
8567 "descriptors ready.)  If a signal appears in the I<mask> of more than one of "
8568 "the file descriptors, then occurrences of that signal can be read (once) "
8569 "from any one of the descriptors."
8570 msgstr ""
8571 "一つのプロセスは複数の signalfd ファイルディスクリプタを生成することができ"
8572 "る。 これにより、異なるファイルディスクリプタで異なるシグナルを受け取ること"
8573 "が できる (この機能は B<select>(2), B<poll>(2), B<epoll>(7)  を使ってファイル"
8574 "ディスクリプタを監視する場合に有用かもしれない。 異なるシグナルが到着すると、"
8575 "異なるファイルディスクリプタが利用可能に なるからだ)。 一つのシグナルが二つ以"
8576 "上のファイルディスクリプタの I<mask> に含まれている場合、そのシグナルの発生は"
8577 "そのシグナルを I<mask> に含むファイルディスクリプタのうちいずれか一つから読み"
8578 "出すことができる。"
8579
8580 #. type: Plain text
8581 #: build/C/man2/signalfd.2:352
8582 msgid ""
8583 "There are two underlying Linux system calls: B<signalfd>()  and the more "
8584 "recent B<signalfd4>().  The former system call does not implement a I<flags> "
8585 "argument.  The latter system call implements the I<flags> values described "
8586 "above.  Starting with glibc 2.9, the B<signalfd>()  wrapper function will "
8587 "use B<signalfd4>()  where it is available."
8588 msgstr ""
8589 "下層にある Linux システムコールは二種類あり、 B<signalfd>()  と、もっと新し"
8590 "い B<signalfd4>()  である。 B<signalfd>()  は I<flags> 引き数を実装していな"
8591 "い。 B<signalfd4>()  では上記の値の I<flags> が実装されている。 glibc 2.9 以"
8592 "降では、 B<signalfd>()  のラッパー関数は、 B<signalfd4>()  が利用可能であれ"
8593 "ば、これを使用する。"
8594
8595 #.  The fix also was put into 2.6.24.5
8596 #. type: Plain text
8597 #: build/C/man2/signalfd.2:360
8598 msgid ""
8599 "In kernels before 2.6.25, the I<ssi_ptr> and I<ssi_int> fields are not "
8600 "filled in with the data accompanying a signal sent by B<sigqueue>(3)."
8601 msgstr ""
8602 "カーネル 2.6.25 より前では、 B<sigqueue>(3)  により送信されたシグナルと一緒に"
8603 "渡されるデータでは、フィールド I<ssi_ptr> と I<ssi_int> は設定されない。"
8604
8605 #. type: Plain text
8606 #: build/C/man2/signalfd.2:370
8607 msgid ""
8608 "The program below accepts the signals B<SIGINT> and B<SIGQUIT> via a "
8609 "signalfd file descriptor.  The program terminates after accepting a "
8610 "B<SIGQUIT> signal.  The following shell session demonstrates the use of the "
8611 "program:"
8612 msgstr ""
8613 "下記のプログラムは、シグナル B<SIGINT> と B<SIGQUIT> を signalfd ファイルディ"
8614 "スクリプタ経由で受信する。 シグナル B<SIGQUIT> 受信後にプログラムは終了す"
8615 "る。 以下に示すシェルセッションにこのプログラムの使い方を示す。"
8616
8617 #. type: Plain text
8618 #: build/C/man2/signalfd.2:381
8619 #, no-wrap
8620 msgid ""
8621 "$B< ./signalfd_demo>\n"
8622 "B<^C>                   # Control-C generates SIGINT\n"
8623 "Got SIGINT\n"
8624 "B<^C>\n"
8625 "Got SIGINT\n"
8626 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
8627 "Got SIGQUIT\n"
8628 "$\n"
8629 msgstr ""
8630 "$B< ./signalfd_demo>\n"
8631 "B<^C>                   # Control-C generates SIGINT\n"
8632 "Got SIGINT\n"
8633 "B<^C>\n"
8634 "Got SIGINT\n"
8635 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
8636 "Got SIGQUIT\n"
8637 "$\n"
8638
8639 #. type: Plain text
8640 #: build/C/man2/signalfd.2:391
8641 #, no-wrap
8642 msgid ""
8643 "#include E<lt>sys/signalfd.hE<gt>\n"
8644 "#include E<lt>signal.hE<gt>\n"
8645 "#include E<lt>unistd.hE<gt>\n"
8646 "#include E<lt>stdlib.hE<gt>\n"
8647 "#include E<lt>stdio.hE<gt>\n"
8648 msgstr ""
8649 "#include E<lt>sys/signalfd.hE<gt>\n"
8650 "#include E<lt>signal.hE<gt>\n"
8651 "#include E<lt>unistd.hE<gt>\n"
8652 "#include E<lt>stdlib.hE<gt>\n"
8653 "#include E<lt>stdio.hE<gt>\n"
8654
8655 #. type: Plain text
8656 #: build/C/man2/signalfd.2:402
8657 #, no-wrap
8658 msgid ""
8659 "int\n"
8660 "main(int argc, char *argv[])\n"
8661 "{\n"
8662 "    sigset_t mask;\n"
8663 "    int sfd;\n"
8664 "    struct signalfd_siginfo fdsi;\n"
8665 "    ssize_t s;\n"
8666 msgstr ""
8667 "int\n"
8668 "main(int argc, char *argv[])\n"
8669 "{\n"
8670 "    sigset_t mask;\n"
8671 "    int sfd;\n"
8672 "    struct signalfd_siginfo fdsi;\n"
8673 "    ssize_t s;\n"
8674
8675 #. type: Plain text
8676 #: build/C/man2/signalfd.2:406
8677 #, no-wrap
8678 msgid ""
8679 "    sigemptyset(&mask);\n"
8680 "    sigaddset(&mask, SIGINT);\n"
8681 "    sigaddset(&mask, SIGQUIT);\n"
8682 msgstr ""
8683 "    sigemptyset(&mask);\n"
8684 "    sigaddset(&mask, SIGINT);\n"
8685 "    sigaddset(&mask, SIGQUIT);\n"
8686
8687 #. type: Plain text
8688 #: build/C/man2/signalfd.2:409
8689 #, no-wrap
8690 msgid ""
8691 "    /* Block signals so that they aren\\(aqt handled\n"
8692 "       according to their default dispositions */\n"
8693 msgstr ""
8694 "    /* Block signals so that they aren\\(aqt handled\n"
8695 "       according to their default dispositions */\n"
8696
8697 #. type: Plain text
8698 #: build/C/man2/signalfd.2:412
8699 #, no-wrap
8700 msgid ""
8701 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
8702 "        handle_error(\"sigprocmask\");\n"
8703 msgstr ""
8704 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
8705 "        handle_error(\"sigprocmask\");\n"
8706
8707 #. type: Plain text
8708 #: build/C/man2/signalfd.2:416
8709 #, no-wrap
8710 msgid ""
8711 "    sfd = signalfd(-1, &mask, 0);\n"
8712 "    if (sfd == -1)\n"
8713 "        handle_error(\"signalfd\");\n"
8714 msgstr ""
8715 "    sfd = signalfd(-1, &mask, 0);\n"
8716 "    if (sfd == -1)\n"
8717 "        handle_error(\"signalfd\");\n"
8718
8719 #. type: Plain text
8720 #: build/C/man2/signalfd.2:421
8721 #, no-wrap
8722 msgid ""
8723 "    for (;;) {\n"
8724 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
8725 "        if (s != sizeof(struct signalfd_siginfo))\n"
8726 "            handle_error(\"read\");\n"
8727 msgstr ""
8728 "    for (;;) {\n"
8729 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
8730 "        if (s != sizeof(struct signalfd_siginfo))\n"
8731 "            handle_error(\"read\");\n"
8732
8733 #. type: Plain text
8734 #: build/C/man2/signalfd.2:432
8735 #, no-wrap
8736 msgid ""
8737 "        if (fdsi.ssi_signo == SIGINT) {\n"
8738 "            printf(\"Got SIGINT\\en\");\n"
8739 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
8740 "            printf(\"Got SIGQUIT\\en\");\n"
8741 "            exit(EXIT_SUCCESS);\n"
8742 "        } else {\n"
8743 "            printf(\"Read unexpected signal\\en\");\n"
8744 "        }\n"
8745 "    }\n"
8746 "}\n"
8747 msgstr ""
8748 "        if (fdsi.ssi_signo == SIGINT) {\n"
8749 "            printf(\"Got SIGINT\\en\");\n"
8750 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
8751 "            printf(\"Got SIGQUIT\\en\");\n"
8752 "            exit(EXIT_SUCCESS);\n"
8753 "        } else {\n"
8754 "            printf(\"Read unexpected signal\\en\");\n"
8755 "        }\n"
8756 "    }\n"
8757 "}\n"
8758
8759 #. type: Plain text
8760 #: build/C/man2/signalfd.2:446
8761 msgid ""
8762 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
8763 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
8764 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
8765 msgstr ""
8766 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
8767 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
8768 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
8769
8770 #. type: TH
8771 #: build/C/man3/sigpause.3:25
8772 #, no-wrap
8773 msgid "SIGPAUSE"
8774 msgstr "SIGPAUSE"
8775
8776 #. type: TH
8777 #: build/C/man3/sigpause.3:25
8778 #, no-wrap
8779 msgid "2010-09-12"
8780 msgstr "2010-09-12"
8781
8782 #. type: Plain text
8783 #: build/C/man3/sigpause.3:28
8784 msgid "sigpause - atomically release blocked signals and wait for interrupt"
8785 msgstr "sigpause - ブロックされたシグナルをアトミックに解放して割り込みを待つ"
8786
8787 #. type: Plain text
8788 #: build/C/man3/sigpause.3:33
8789 #, no-wrap
8790 msgid "B<int sigpause(int >I<sigmask>B<);  /* BSD */>\n"
8791 msgstr "B<int sigpause(int >I<sigmask>B<);  /* BSD */>\n"
8792
8793 #. type: Plain text
8794 #: build/C/man3/sigpause.3:35
8795 #, no-wrap
8796 msgid "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
8797 msgstr "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
8798
8799 #. type: Plain text
8800 #: build/C/man3/sigpause.3:41
8801 msgid "Don't use this function.  Use B<sigsuspend>(2)  instead."
8802 msgstr "この関数を使わないこと。 代わりに B<sigsuspend>(2)  を使うこと。"
8803
8804 #. type: Plain text
8805 #: build/C/man3/sigpause.3:48
8806 msgid ""
8807 "The function B<sigpause>()  is designed to wait for some signal.  It changes "
8808 "the process's signal mask (set of blocked signals), and then waits for a "
8809 "signal to arrive.  Upon arrival of a signal, the original signal mask is "
8810 "restored."
8811 msgstr ""
8812 "関数 B<sigpause>()  はシグナルを待つように設計されている。 この関数はプロセス"
8813 "のシグナルマスク (ブロックされたシグナルのセット) を変更し、 シグナルが到着す"
8814 "るのを待つ。 シグナルが到着すると、シグナルマスクは元に戻される。"
8815
8816 #. type: Plain text
8817 #: build/C/man3/sigpause.3:56
8818 msgid ""
8819 "If B<sigpause>()  returns, it was interrupted by a signal and the return "
8820 "value is -1 with I<errno> set to B<EINTR>."
8821 msgstr ""
8822 "B<sigpause>()  が返った場合、この関数はシグナルによって割り込まれている。 返"
8823 "り値は -1 で、 I<errno> は B<EINTR> に設定される。"
8824
8825 #. type: Plain text
8826 #: build/C/man3/sigpause.3:60
8827 msgid "The System V version of B<sigpause>()  is standardized in POSIX.1-2001."
8828 msgstr "System V 版の B<sigpause>()  は POSIX.1-2001 で標準化されている。"
8829
8830 #.  __xpg_sigpause: UNIX 95, spec 1170, SVID, SVr4, XPG
8831 #. type: Plain text
8832 #: build/C/man3/sigpause.3:77
8833 msgid ""
8834 "The classical BSD version of this function appeared in 4.2BSD.  It sets the "
8835 "process's signal mask to I<sigmask>.  UNIX 95 standardized the incompatible "
8836 "System V version of this function, which removes only the specified signal "
8837 "I<sig> from the process's signal mask.  The unfortunate situation with two "
8838 "incompatible functions with the same name was solved by the B<\\%sigsuspend>"
8839 "(2)  function, that takes a I<sigset_t\\ *> argument (instead of an I<int>)."
8840 msgstr "この関数の古典的な BSD 版は 4.2BSD で登場した。 この関数はプロセスのシグナルマスクを I<sigmask> に設定する。 UNIX 95 では BSD 版と互換性のない System V 版のこの関数が標準化された。 UNIX 95 版は、指定されたシグナル I<sig> をプロセスのシグナルマスクから削除するだけである。 同じ名前で互換性のない 2 つの関数があるという不幸な事態は、 B<\\%sigsuspend>(2)  関数によって解消された。 この関数は (I<int> の代わりに)  B<sigset_t\\ *> 引き数をとる。"
8841
8842 #. type: Plain text
8843 #: build/C/man3/sigpause.3:80
8844 msgid ""
8845 "On Linux, this routine is a system call only on the Sparc (sparc64)  "
8846 "architecture."
8847 msgstr ""
8848 "Linux では、このルーチンは Sparc (sparc64) アーキテクチャでのみ システムコー"
8849 "ルとなっている。"
8850
8851 #. type: Plain text
8852 #: build/C/man3/sigpause.3:82
8853 msgid "Libc4 and libc5 know only about the BSD version."
8854 msgstr "libc4 と libc5 には BSD 版しかない。"
8855
8856 #.  For the BSD version, one usually uses a zero
8857 #.  .I sigmask
8858 #.  to indicate that no signals are to be blocked.
8859 #. type: Plain text
8860 #: build/C/man3/sigpause.3:98
8861 msgid ""
8862 "Glibc uses the BSD version if the B<_BSD_SOURCE> feature test macro is "
8863 "defined and none of B<_POSIX_SOURCE>, B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, "
8864 "B<_GNU_SOURCE>, or B<_SVID_SOURCE> is defined.  Otherwise, the System V "
8865 "version is used."
8866 msgstr ""
8867 "機能検査マクロ B<_BSD_SOURCE> が定義され、 B<_POSIX_SOURCE>, "
8868 "B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, B<_GNU_SOURCE>, B<_SVID_SOURCE> のいず"
8869 "れも定義されていない場合、 glibc は BSD 版を使う。 それ以外の場合には、"
8870 "System V 版を使用する。"
8871
8872 #. type: Plain text
8873 #: build/C/man3/sigpause.3:106
8874 msgid ""
8875 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<sigblock>"
8876 "(3), B<sigvec>(3), B<feature_test_macros>(7)"
8877 msgstr ""
8878 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<sigblock>"
8879 "(3), B<sigvec>(3), B<feature_test_macros>(7)"
8880
8881 #. type: TH
8882 #: build/C/man2/sigpending.2:29
8883 #, no-wrap
8884 msgid "SIGPENDING"
8885 msgstr "SIGPENDING"
8886
8887 #. type: Plain text
8888 #: build/C/man2/sigpending.2:32
8889 msgid "sigpending - examine pending signals"
8890 msgstr "sigpending - 処理待ちのシグナルの検査"
8891
8892 #. type: Plain text
8893 #: build/C/man2/sigpending.2:36
8894 msgid "B<int sigpending(sigset_t *>I<set>B<);>"
8895 msgstr "B<int sigpending(sigset_t *>I<set>B<);>"
8896
8897 #. type: Plain text
8898 #: build/C/man2/sigpending.2:45
8899 msgid ""
8900 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
8901 "_POSIX_SOURCE"
8902 msgstr ""
8903 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
8904 "_POSIX_SOURCE"
8905
8906 #. type: Plain text
8907 #: build/C/man2/sigpending.2:53
8908 msgid ""
8909 "B<sigpending>()  returns the set of signals that are pending for delivery to "
8910 "the calling thread (i.e., the signals which have been raised while "
8911 "blocked).  The mask of pending signals is returned in I<set>."
8912 msgstr ""
8913 "B<sigpending>()  は、呼び出し元のスレッドへの配送を待っている (pending) シグ"
8914 "ナル集合 (すなわち、禁止中に発生したシグナル) を返す。 処理待ちのシグナルのマ"
8915 "スクが I<set> に格納される。"
8916
8917 #. type: Plain text
8918 #: build/C/man2/sigpending.2:59
8919 msgid ""
8920 "B<sigpending>()  returns 0 on success and -1 on error.  In the event of an "
8921 "error, I<errno> is set to indicate the cause."
8922 msgstr "B<sigpending>() は成功した場合 0 を返す。 エラーの場合、 -1 を返し、I<errno> にエラーの原因を示す値を設定する。"
8923
8924 #. type: Plain text
8925 #: build/C/man2/sigpending.2:64
8926 msgid ""
8927 "I<set> points to memory which is not a valid part of the process address "
8928 "space."
8929 msgstr ""
8930 "I<set> が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。"
8931
8932 #. type: Plain text
8933 #: build/C/man2/sigpending.2:75
8934 msgid ""
8935 "The set of signals that is pending for a thread is the union of the set of "
8936 "signals that is pending for that thread and the set of signals that is "
8937 "pending for the process as a whole; see B<signal>(7)."
8938 msgstr ""
8939 "あるスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体への処理待ち"
8940 "のシグナル集合と、プロセス全体への処理待ちの シグナル集合をあわせたものであ"
8941 "る。 B<signal>(7)  参照。"
8942
8943 #. type: Plain text
8944 #: build/C/man2/sigpending.2:87
8945 msgid ""
8946 "In versions of glibc up to and including 2.2.1, there is a bug in the "
8947 "wrapper function for B<sigpending>()  which means that information about "
8948 "pending real-time signals is not correctly returned."
8949 msgstr ""
8950 "バージョン 2.2.1 以前の glibc では、 B<sigpending>()  のラッパー関数に、処理"
8951 "待ちのリアルタイムシグナルに関する情報が 正しく返されないというバグがある。"
8952
8953 #. type: Plain text
8954 #: build/C/man2/sigpending.2:95
8955 msgid ""
8956 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), B<sigsuspend>"
8957 "(2), B<sigsetops>(3), B<signal>(7)"
8958 msgstr ""
8959 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), B<sigsuspend>"
8960 "(2), B<sigsetops>(3), B<signal>(7)"
8961
8962 #. type: TH
8963 #: build/C/man2/sigprocmask.2:29
8964 #, no-wrap
8965 msgid "SIGPROCMASK"
8966 msgstr "SIGPROCMASK"
8967
8968 #. type: Plain text
8969 #: build/C/man2/sigprocmask.2:32
8970 msgid "sigprocmask - examine and change blocked signals"
8971 msgstr "sigprocmask - 禁止するシグナルの確認と変更"
8972
8973 #. type: Plain text
8974 #: build/C/man2/sigprocmask.2:37
8975 msgid ""
8976 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
8977 "*>I<oldset>B<);>"
8978 msgstr ""
8979 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
8980 "*>I<oldset>B<);>"
8981
8982 #. type: Plain text
8983 #: build/C/man2/sigprocmask.2:46
8984 msgid ""
8985 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
8986 "_POSIX_SOURCE"
8987 msgstr ""
8988 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
8989 "_POSIX_SOURCE"
8990
8991 #. type: Plain text
8992 #: build/C/man2/sigprocmask.2:55
8993 msgid ""
8994 "B<sigprocmask>()  is used to fetch and/or change the signal mask of the "
8995 "calling thread.  The signal mask is the set of signals whose delivery is "
8996 "currently blocked for the caller (see also B<signal>(7)  for more details)."
8997 msgstr ""
8998 "B<sigprocmask>()  を使うと、呼び出したスレッドのシグナルマスクの取得/変更がで"
8999 "きる。 シグナルマスクは、呼び出し元に対して現在配送が禁止されているシグナル"
9000 "の 集合のことである (詳細については B<signal>(7)  も参照のこと)。"
9001
9002 #. type: Plain text
9003 #: build/C/man2/sigprocmask.2:59
9004 msgid ""
9005 "The behavior of the call is dependent on the value of I<how>, as follows."
9006 msgstr "このコールの動作は I<how> の値によって決まる:"
9007
9008 #. type: TP
9009 #: build/C/man2/sigprocmask.2:59
9010 #, no-wrap
9011 msgid "B<SIG_BLOCK>"
9012 msgstr "B<SIG_BLOCK>"
9013
9014 #. type: Plain text
9015 #: build/C/man2/sigprocmask.2:64
9016 msgid ""
9017 "The set of blocked signals is the union of the current set and the I<set> "
9018 "argument."
9019 msgstr ""
9020 "禁止されたシグナルの集合は現在の値と I<set> 引き数を結合したものとなる。"
9021
9022 #. type: TP
9023 #: build/C/man2/sigprocmask.2:64
9024 #, no-wrap
9025 msgid "B<SIG_UNBLOCK>"
9026 msgstr "B<SIG_UNBLOCK>"
9027
9028 #. type: Plain text
9029 #: build/C/man2/sigprocmask.2:70
9030 msgid ""
9031 "The signals in I<set> are removed from the current set of blocked signals.  "
9032 "It is permissible to attempt to unblock a signal which is not blocked."
9033 msgstr ""
9034 "現在禁止されているシグナルの集合から I<set> にあるシグナルを取り除く。禁止さ"
9035 "れていないシグナルを取り除こうと することも認められている。"
9036
9037 #. type: TP
9038 #: build/C/man2/sigprocmask.2:70
9039 #, no-wrap
9040 msgid "B<SIG_SETMASK>"
9041 msgstr "B<SIG_SETMASK>"
9042
9043 #. type: Plain text
9044 #: build/C/man2/sigprocmask.2:74
9045 msgid "The set of blocked signals is set to the argument I<set>."
9046 msgstr "禁止されているシグナルの集合に I<set> 引き数を設定する。"
9047
9048 #. type: Plain text
9049 #: build/C/man2/sigprocmask.2:79
9050 msgid ""
9051 "If I<oldset> is non-NULL, the previous value of the signal mask is stored in "
9052 "I<oldset>."
9053 msgstr ""
9054 "I<oldset> が NULL でなければ、シグナルマスクの今までの値を I<oldset> に格納す"
9055 "る。"
9056
9057 #. type: Plain text
9058 #: build/C/man2/sigprocmask.2:88
9059 msgid ""
9060 "If I<set> is NULL, then the signal mask is unchanged (i.e., I<how> is "
9061 "ignored), but the current value of the signal mask is nevertheless returned "
9062 "in I<oldset> (if it is not NULL)."
9063 msgstr ""
9064 "I<set> が NULL であれば、シグナルマスクは変更されない (すなわち、 I<how> は無"
9065 "視される)。 I<set> の値にかかわらず、現在のシグナルマスクの値は I<oldset> に"
9066 "入れて返される (但し、 I<oldset> が NULL でない場合)。"
9067
9068 #. type: Plain text
9069 #: build/C/man2/sigprocmask.2:93
9070 msgid ""
9071 "The use of B<sigprocmask>()  is unspecified in a multithreaded process; see "
9072 "B<pthread_sigmask>(3)."
9073 msgstr ""
9074 "マルチスレッドのプロセスで B<sigprocmask>()  を使用した場合の動作は規定されて"
9075 "いない。 B<pthread_sigmask>(3)  を参照のこと。"
9076
9077 #. type: Plain text
9078 #: build/C/man2/sigprocmask.2:99
9079 msgid ""
9080 "B<sigprocmask>()  returns 0 on success and -1 on error.  In the event of an "
9081 "error, I<errno> is set to indicate the cause."
9082 msgstr "B<sigprocmask>() は成功した場合 0 を返す。 エラーの場合、 -1 を返し、 I<errno> にエラーの原因を示す値を設定する。"
9083
9084 #. type: Plain text
9085 #: build/C/man2/sigprocmask.2:107
9086 msgid ""
9087 "the I<set> or I<oldset> argument points outside the process's allocated "
9088 "address space."
9089 msgstr ""
9090 "引き数 I<set> か I<oldset> がプロセスに割り当てられた\n"
9091 "アドレス空間の外を指している。"
9092
9093 #. type: Plain text
9094 #: build/C/man2/sigprocmask.2:112
9095 msgid "The value specified in I<how> was invalid."
9096 msgstr "I<how> に指定された値が有効ではない。"
9097
9098 #. type: Plain text
9099 #: build/C/man2/sigprocmask.2:118
9100 msgid ""
9101 "It is not possible to block B<SIGKILL> or B<SIGSTOP>.  Attempts to do so are "
9102 "silently ignored."
9103 msgstr ""
9104 "B<SIGKILL> や B<SIGSTOP> を禁止することはできない。 禁止しようとしても黙って"
9105 "無視される。"
9106
9107 #. type: Plain text
9108 #: build/C/man2/sigprocmask.2:120
9109 msgid "Each of the threads in a process has its own signal mask."
9110 msgstr "プロセス内の各スレッドはそれぞれ専用のシグナルマスクを持つ。"
9111
9112 #. type: Plain text
9113 #: build/C/man2/sigprocmask.2:140
9114 msgid ""
9115 "If B<SIGBUS>, B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> are generated while they "
9116 "are blocked, the result is undefined, unless the signal was generated by "
9117 "B<kill>(2), B<sigqueue>(3), or B<raise>(3)."
9118 msgstr ""
9119 "シグナル B<SIGBUS>, B<SIGFPE>, B<SIGILL>, B<SIGSEGV> が禁止されている間に生成"
9120 "された場合で、 そのシグナルが B<kill>(2), B<sigqueue>(3), B<raise>(3)  によっ"
9121 "て生成されたものでないときには、 その後の動作は未定義である。"
9122
9123 #. type: Plain text
9124 #: build/C/man2/sigprocmask.2:155
9125 msgid ""
9126 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
9127 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
9128 "B<signal>(7)"
9129 msgstr ""
9130 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
9131 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
9132 "B<signal>(7)"
9133
9134 #. type: TH
9135 #: build/C/man3/sigqueue.3:28
9136 #, no-wrap
9137 msgid "SIGQUEUE"
9138 msgstr "SIGQUEUE"
9139
9140 #. type: TH
9141 #: build/C/man3/sigqueue.3:28
9142 #, no-wrap
9143 msgid "2012-03-25"
9144 msgstr "2012-03-25"
9145
9146 #. type: Plain text
9147 #: build/C/man3/sigqueue.3:31
9148 msgid "sigqueue - queue a signal and data to a process"
9149 msgstr "sigqueue - シグナルとデータをプロセスに送る"
9150
9151 #. type: Plain text
9152 #: build/C/man3/sigqueue.3:35
9153 msgid ""
9154 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
9155 ">I<value>B<);>"
9156 msgstr ""
9157 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
9158 ">I<value>B<);>"
9159
9160 #. type: Plain text
9161 #: build/C/man3/sigqueue.3:43
9162 msgid "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
9163 msgstr "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
9164
9165 #. type: Plain text
9166 #: build/C/man3/sigqueue.3:55
9167 msgid ""
9168 "B<sigqueue>()  sends the signal specified in I<sig> to the process whose PID "
9169 "is given in I<pid>.  The permissions required to send a signal are the same "
9170 "as for B<kill>(2).  As with B<kill>(2), the null signal (0) can be used to "
9171 "check if a process with a given PID exists."
9172 msgstr ""
9173 "B<sigqueue>()  は I<sig> で指定されたシグナルを、PID が I<pid> であるプロセス"
9174 "に送る。 シグナルを送るのに必要な権限は B<kill>(2)  と同じである。 B<kill>"
9175 "(2)  と同様に、ヌル・シグナル (0) を使って 指定した PID のプロセスが存在する"
9176 "かをチェックすることができる。"
9177
9178 #. type: Plain text
9179 #: build/C/man3/sigqueue.3:60
9180 msgid ""
9181 "The I<value> argument is used to specify an accompanying item of data "
9182 "(either an integer or a pointer value) to be sent with the signal, and has "
9183 "the following type:"
9184 msgstr ""
9185 "I<value> 引き数はシグナルと一緒に送るデータの付属アイテムを指定する。 "
9186 "I<value> は (整数またはポインタの値であり) 以下のような型である。"
9187
9188 #. type: Plain text
9189 #: build/C/man3/sigqueue.3:67
9190 #, no-wrap
9191 msgid ""
9192 "union sigval {\n"
9193 "    int   sival_int;\n"
9194 "    void *sival_ptr;\n"
9195 "};\n"
9196 msgstr ""
9197 "union sigval {\n"
9198 "    int   sival_int;\n"
9199 "    void *sival_ptr;\n"
9200 "};\n"
9201
9202 #. type: Plain text
9203 #: build/C/man3/sigqueue.3:83
9204 msgid ""
9205 "If the receiving process has installed a handler for this signal using the "
9206 "B<SA_SIGINFO> flag to B<sigaction>(2), then it can obtain this data via the "
9207 "I<si_value> field of the I<siginfo_t> structure passed as the second "
9208 "argument to the handler.  Furthermore, the I<si_code> field of that "
9209 "structure will be set to B<SI_QUEUE>."
9210 msgstr ""
9211 "受取先のプロセスに、このシグナルに対するハンドラを (B<sigaction>(2)  に "
9212 "B<SA_SIGINFO> を指定して) インストールしておくと、 そのハンドラの第 2 引き数"
9213 "に渡される I<siginfo_t> 構造体の I<si_value> フィールドによって、このデータを"
9214 "取得できる。 さらに、この構造体の I<si_code> フィールドは B<SI_QUEUE> に設定"
9215 "される。"
9216
9217 #. type: Plain text
9218 #: build/C/man3/sigqueue.3:91
9219 msgid ""
9220 "On success, B<sigqueue>()  returns 0, indicating that the signal was "
9221 "successfully queued to the receiving process.  Otherwise -1 is returned and "
9222 "I<errno> is set to indicate the error."
9223 msgstr ""
9224 "成功した場合、 B<sigqueue>()  は 0 を返す。 これは受け取り側プロセスの待ち行"
9225 "列に シグナルが正しく入れられたことを示す。 失敗した場合は -1 が返され、 "
9226 "I<errno> がエラーを表す値に設定される。"
9227
9228 #. type: Plain text
9229 #: build/C/man3/sigqueue.3:102
9230 msgid "I<sig> was invalid."
9231 msgstr "I<sig> が不正である。"
9232
9233 #. type: Plain text
9234 #: build/C/man3/sigqueue.3:108
9235 msgid ""
9236 "The process does not have permission to send the signal to the receiving "
9237 "process.  For the required permissions, see B<kill>(2)."
9238 msgstr ""
9239 "このプロセスには、受け取り側プロセスにシグナルを送る権限がない。 必要な権限に"
9240 "ついては、 B<kill>(2)  を参照すること。"
9241
9242 #. type: Plain text
9243 #: build/C/man3/sigqueue.3:112
9244 msgid "No process has a PID matching I<pid>."
9245 msgstr "I<pid> にマッチする PID のプロセスがない。"
9246
9247 #. type: Plain text
9248 #: build/C/man3/sigqueue.3:114
9249 msgid "This system call first appeared in Linux 2.2."
9250 msgstr "このシステムコールは Linux 2.2 で初めて登場した。"
9251
9252 #. type: Plain text
9253 #: build/C/man3/sigqueue.3:124
9254 msgid ""
9255 "If this function results in the sending of a signal to the process that "
9256 "invoked it, and that signal was not blocked by the calling thread, and no "
9257 "other threads were willing to handle this signal (either by having it "
9258 "unblocked, or by waiting for it using B<sigwait>(3)), then at least some "
9259 "signal must be delivered to this thread before this function returns."
9260 msgstr ""
9261 "この関数を呼び出したプロセスにこの関数がシグナルを送ったときに、 シグナルが呼"
9262 "び出し側スレッドにブロックされず、 かつ (シグナルがブロックされなかった、また"
9263 "は B<sigwait>(3)  を使用するのを待っていることにより)  このシグナルを扱うス"
9264 "レッドが何もない場合は、 この関数がリターンする前に、少なくとも そのスレッド"
9265 "に対してシグナルが配送されていなければならない。"
9266
9267 #. type: Plain text
9268 #: build/C/man3/sigqueue.3:139
9269 msgid ""
9270 "On Linux, this function is implemented using the B<rt_sigqueueinfo>(2)  "
9271 "system call.  The system call differs in its third argument, which is the "
9272 "I<siginfo_t> structure that will be supplied to the receiving process's "
9273 "signal handler or returned by the receiving process's B<sigtimedwait>(2)  "
9274 "call.  Inside the glibc B<sigqueue>()  wrapper, this argument, I<uinfo>, is "
9275 "initialized as follows:"
9276 msgstr ""
9277 "Linux では、この関数は B<rt_sigqueueinfo>(2)  システムコールを使って実装され"
9278 "ている。 両者には 3 番目の引き数に違いがあり、 B<rt_sigqueueinfo>(2)  では 3 "
9279 "番目の引き数は I<siginfo_t> 構造体である。 I<siginfo_t> 構造体は、シグナルを"
9280 "受信するプロセスのシグナルハンドラに渡されたり、 シグナル受信プロセスの "
9281 "B<sigtimedwait>(2)  システムコールから返されたりする。 glibc の B<sigqueue>"
9282 "()  ラッパー関数内部では、 この引き数 I<uinfo> は以下のように初期化される。"
9283
9284 #. type: Plain text
9285 #: build/C/man3/sigqueue.3:147
9286 #, no-wrap
9287 msgid ""
9288 "uinfo.si_signo = sig;      /* argument supplied to sigqueue() */\n"
9289 "uinfo.si_code = SI_QUEUE;\n"
9290 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
9291 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
9292 "uinfo.si_value = val;      /* argument supplied to sigqueue() */\n"
9293 msgstr ""
9294 "uinfo.si_signo = sig;      /* argument supplied to sigqueue() */\n"
9295 "uinfo.si_code = SI_QUEUE;\n"
9296 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
9297 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
9298 "uinfo.si_value = val;      /* argument supplied to sigqueue() */\n"
9299
9300 #. type: Plain text
9301 #: build/C/man3/sigqueue.3:157
9302 msgid ""
9303 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
9304 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
9305 msgstr ""
9306 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
9307 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
9308
9309 #. type: TH
9310 #: build/C/man2/sigreturn.2:29
9311 #, no-wrap
9312 msgid "SIGRETURN"
9313 msgstr "SIGRETURN"
9314
9315 #. type: TH
9316 #: build/C/man2/sigreturn.2:29
9317 #, no-wrap
9318 msgid "2008-06-26"
9319 msgstr "2008-06-26"
9320
9321 #. type: Plain text
9322 #: build/C/man2/sigreturn.2:32
9323 msgid "sigreturn - return from signal handler and cleanup stack frame"
9324 msgstr "sigreturn - シグナル・ハンドラから返り、スタックを掃除する"
9325
9326 #. type: Plain text
9327 #: build/C/man2/sigreturn.2:34
9328 msgid "B<int sigreturn(unsigned long >I<__unused>B<);>"
9329 msgstr "B<int sigreturn(unsigned long >I<__unused>B<);>"
9330
9331 #. type: Plain text
9332 #: build/C/man2/sigreturn.2:42
9333 msgid ""
9334 "When the Linux kernel creates the stack frame for a signal handler, a call "
9335 "to B<sigreturn>()  is inserted into the stack frame so that upon return from "
9336 "the signal handler, B<sigreturn>()  will be called."
9337 msgstr ""
9338 "Linux カーネルは、 シグナル・ハンドラ用にスタック・フレームを作成する際、 "
9339 "B<sigreturn>()  をスタック・フレームに挿入し、シグナル・ハンドラが返るときに "
9340 "B<sigreturn>()  が呼ばれるようにする。"
9341
9342 #. type: Plain text
9343 #: build/C/man2/sigreturn.2:53
9344 msgid ""
9345 "This B<sigreturn>()  call undoes everything that was done\\(emchanging the "
9346 "process's signal mask, switching stacks (see B<sigaltstack>(2))\\(emin order "
9347 "to invoke the signal handler: it restores the process's signal mask, "
9348 "switches stacks, and restores the process's context (registers, processor "
9349 "flags), so that the process directly resumes execution at the point where it "
9350 "was interrupted by the signal."
9351 msgstr ""
9352 "B<sigreturn>()  は、シグナル・ハンドラを起動するために行ったことの全て \\(em "
9353 "プロセスのシグナルマスクの変更、スタックの切り替え (B<sigaltstack>(2)  参照) "
9354 "\\(em の取り消しを行う。 プロセスのシグナルマスクの復元、スタックの切り替"
9355 "え、 プロセスのコンテキスト (レジスタ、プロセッサ・フラグ) の復元を行い、 プ"
9356 "ロセスがシグナルにより割り込まれた場所からそのまま実行を 再開できるようにす"
9357 "る。"
9358
9359 #. type: Plain text
9360 #: build/C/man2/sigreturn.2:56
9361 msgid "B<sigreturn>()  never returns."
9362 msgstr "B<sigreturn>()  が返ることはない。"
9363
9364 #. type: SH
9365 #: build/C/man2/sigreturn.2:56
9366 #, no-wrap
9367 msgid "FILES"
9368 msgstr "ファイル"
9369
9370 #. type: Plain text
9371 #: build/C/man2/sigreturn.2:58
9372 msgid "/usr/src/linux/arch/i386/kernel/signal.c"
9373 msgstr "/usr/src/linux/arch/i386/kernel/signal.c"
9374
9375 #. type: Plain text
9376 #: build/C/man2/sigreturn.2:60
9377 msgid "/usr/src/linux/arch/alpha/kernel/entry.S"
9378 msgstr "/usr/src/linux/arch/alpha/kernel/entry.S"
9379
9380 #. type: Plain text
9381 #: build/C/man2/sigreturn.2:64
9382 msgid ""
9383 "B<sigreturn>()  is specific to Linux and should not be used in programs "
9384 "intended to be portable."
9385 msgstr ""
9386 "B<sigreturn>()  は Linux 特有であり、移植を意図したプログラムでは使用してはい"
9387 "けない。"
9388
9389 #. type: Plain text
9390 #: build/C/man2/sigreturn.2:74
9391 msgid ""
9392 "The B<sigreturn>()  call is used by the kernel to implement signal "
9393 "handlers.  It should B<never> be called directly.  Better yet, the specific "
9394 "use of the I<__unused> argument varies depending on the architecture."
9395 msgstr ""
9396 "B<sigreturn>()  コールは、シグナル・ハンドラを実装するためにカーネルにより使"
9397 "用される。 これを直接呼び出しては B<決して> いけない。さらに I<__unused> 引き"
9398 "数がどのように使われるかはそのアーキテクチャに依存して変化する。"
9399
9400 #. type: Plain text
9401 #: build/C/man2/sigreturn.2:79
9402 msgid "B<kill>(2), B<sigaltstack>(2), B<signal>(2), B<signal>(7)"
9403 msgstr "B<kill>(2), B<sigaltstack>(2), B<signal>(2), B<signal>(7)"
9404
9405 #. type: TH
9406 #: build/C/man3/sigset.3:26
9407 #, no-wrap
9408 msgid "SIGSET"
9409 msgstr "SIGSET"
9410
9411 #. type: Plain text
9412 #: build/C/man3/sigset.3:29
9413 msgid "sigset, sighold, sigrelse, sigignore - System V signal API"
9414 msgstr "sigset, sighold, sigrelse, sigignore - System V 版シグナル API"
9415
9416 #. type: Plain text
9417 #: build/C/man3/sigset.3:35
9418 msgid "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
9419 msgstr "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
9420
9421 #. type: Plain text
9422 #: build/C/man3/sigset.3:37
9423 msgid "B<int sighold(int >I<sig>B<);>"
9424 msgstr "B<int sighold(int >I<sig>B<);>"
9425
9426 #. type: Plain text
9427 #: build/C/man3/sigset.3:39
9428 msgid "B<int sigrelse(int >I<sig>B<);>"
9429 msgstr "B<int sigrelse(int >I<sig>B<);>"
9430
9431 #. type: Plain text
9432 #: build/C/man3/sigset.3:41
9433 msgid "B<int sigignore(int >I<sig>B<);>"
9434 msgstr "B<int sigignore(int >I<sig>B<);>"
9435
9436 #. type: Plain text
9437 #: build/C/man3/sigset.3:52
9438 msgid "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
9439 msgstr "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
9440
9441 #. type: Plain text
9442 #: build/C/man3/sigset.3:56
9443 msgid ""
9444 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
9445 msgstr ""
9446 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
9447
9448 #. type: Plain text
9449 #: build/C/man3/sigset.3:65
9450 msgid ""
9451 "These functions are provided in glibc as a compatibility interface for "
9452 "programs that make use of the historical System V signal API.  This API is "
9453 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
9454 "B<sigprocmask>(2), etc.)"
9455 msgstr ""
9456 "これらの関数は、昔ながらの System V 版シグナル API を使用しているプログラム "
9457 "に対して互換性のあるインタフェースを glibc で提供するものである。 この API は"
9458 "過去のものであり、新しいアプリケーションでは POSIX シグナル API (B<sigaction>"
9459 "(2), B<sigprocmask>(2)  など) を使用すべきである。"
9460
9461 #. type: Plain text
9462 #: build/C/man3/sigset.3:74
9463 msgid ""
9464 "The B<sigset>()  function modifies the disposition of the signal I<sig>.  "
9465 "The I<disp> argument can be the address of a signal handler function, or one "
9466 "of the following constants:"
9467 msgstr ""
9468 "関数 B<sigset>()  はシグナル I<sig> のシグナルハンドラの動作を変更する。 "
9469 "I<disp> 引き数には、シグナルハンドラ関数のアドレスか、 以下の定数のいずれか一"
9470 "つを指定できる。"
9471
9472 #. type: TP
9473 #: build/C/man3/sigset.3:74
9474 #, no-wrap
9475 msgid "B<SIG_DFL>"
9476 msgstr "B<SIG_DFL>"
9477
9478 #. type: Plain text
9479 #: build/C/man3/sigset.3:79
9480 msgid "Reset the disposition of I<sig> to the default."
9481 msgstr "I<sig> の動作をデフォルトにリセットする。"
9482
9483 #. type: TP
9484 #: build/C/man3/sigset.3:79
9485 #, no-wrap
9486 msgid "B<SIG_IGN>"
9487 msgstr "B<SIG_IGN>"
9488
9489 #. type: Plain text
9490 #: build/C/man3/sigset.3:83
9491 msgid "Ignore I<sig>."
9492 msgstr "I<sig> を無視する。"
9493
9494 #. type: TP
9495 #: build/C/man3/sigset.3:83
9496 #, no-wrap
9497 msgid "B<SIG_HOLD>"
9498 msgstr "B<SIG_HOLD>"
9499
9500 #. type: Plain text
9501 #: build/C/man3/sigset.3:90
9502 msgid ""
9503 "Add I<sig> to the process's signal mask, but leave the disposition of I<sig> "
9504 "unchanged."
9505 msgstr ""
9506 "そのプロセスのシグナルマスクに I<sig> を追加するが、 I<sig> の動作は変更しな"
9507 "い。"
9508
9509 #. type: Plain text
9510 #: build/C/man3/sigset.3:96
9511 msgid ""
9512 "If I<disp> specifies the address of a signal handler, then I<sig> is added "
9513 "to the process's signal mask during execution of the handler."
9514 msgstr ""
9515 "I<disp> にシグナルハンドラのアドレスが指定された場合、 シグナルハンドラの実行"
9516 "中は、そのプロセスのシグナルマスクに I<sig> が追加される。"
9517
9518 #. type: Plain text
9519 #: build/C/man3/sigset.3:104
9520 msgid ""
9521 "If I<disp> was specified as a value other than B<SIG_HOLD>, then I<sig> is "
9522 "removed from the process's signal mask."
9523 msgstr ""
9524 "I<disp> に B<SIG_HOLD> 以外の値が指定された場合、 そのプロセスのシグナルマス"
9525 "クから I<sig> が削除される。"
9526
9527 #. type: Plain text
9528 #: build/C/man3/sigset.3:110 build/C/man3/sigvec.3:87
9529 msgid "The dispositions for B<SIGKILL> and B<SIGSTOP> cannot be changed."
9530 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> に対する動作は変更できない。"
9531
9532 #. type: Plain text
9533 #: build/C/man3/sigset.3:116
9534 msgid ""
9535 "The B<sighold>()  function adds I<sig> to the calling process's signal mask."
9536 msgstr ""
9537 "関数 B<sighold>()  は、呼び出し元プロセスのシグナルマスクに I<sig> を追加す"
9538 "る。"
9539
9540 #. type: Plain text
9541 #: build/C/man3/sigset.3:122
9542 msgid ""
9543 "The B<sigrelse>()  function removes I<sig> from the calling process's signal "
9544 "mask."
9545 msgstr ""
9546 "関数 B<sigrelse>()  は、呼び出し元プロセスのシグナルマスクから I<sig> を削除"
9547 "する。"
9548
9549 #. type: Plain text
9550 #: build/C/man3/sigset.3:129
9551 msgid ""
9552 "The B<sigignore>()  function sets the disposition of I<sig> to B<SIG_IGN>."
9553 msgstr "関数 B<sigignore>()  は、 I<sig> の動作を B<SIG_IGN> に設定する。"
9554
9555 #. type: Plain text
9556 #: build/C/man3/sigset.3:145
9557 msgid ""
9558 "On success, B<sigset>()  returns B<SIG_HOLD> if I<sig> was blocked before "
9559 "the call, or the signal's previous disposition if it was not blocked before "
9560 "the call.  On error, B<sigset>()  returns -1, with I<errno> set to indicate "
9561 "the error.  (But see BUGS below.)"
9562 msgstr ""
9563 "B<sigset>()  は成功すると、 呼び出し前に I<sig> がブロックされていた場合には "
9564 "B<SIG_HOLD> を返し、 ブロックされていなかった場合には 変更前のそのシグナルの"
9565 "動作を返す。 エラーの場合、 B<sigset>()  は -1 を返し、 I<errno> にエラーを示"
9566 "す値をセットする。 但し、以下の「バグ」の節も参照のこと。"
9567
9568 #. type: Plain text
9569 #: build/C/man3/sigset.3:154
9570 msgid ""
9571 "The B<sighold>(), B<sigrelse>(), and B<sigignore>()  functions return 0 on "
9572 "success; on error, these functions return -1 and set I<errno> to indicate "
9573 "the error."
9574 msgstr ""
9575 "関数 B<sighold>(), B<sigrelse>(), B<sigignore>()  は成功すると 0 を返す。エ"
9576 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値をセットする。"
9577
9578 #. type: Plain text
9579 #: build/C/man3/sigset.3:161
9580 msgid ""
9581 "For B<sigset>()  see the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
9582 msgstr ""
9583 "B<sigset>()  に関しては、 B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」"
9584 "の節を参照。"
9585
9586 #. type: Plain text
9587 #: build/C/man3/sigset.3:168
9588 msgid ""
9589 "For B<sighold>()  and B<sigrelse>()  see the ERRORS under B<sigprocmask>(2)."
9590 msgstr ""
9591 "B<sighold>()  と B<sigrelse>()  に関しては、 B<sigprocmask>(2)  の「エラー」"
9592 "の節を参照。"
9593
9594 #. type: Plain text
9595 #: build/C/man3/sigset.3:173
9596 msgid "For B<sigignore>(), see the errors under B<sigaction>(2)."
9597 msgstr "B<sigignore>()  に関しては、 B<sigaction>(2)  の「エラー」の節を参照。"
9598
9599 #. type: Plain text
9600 #: build/C/man3/sigset.3:190
9601 msgid ""
9602 "SVr4, POSIX.1-2001.  These functions are obsolete: do not use them in new "
9603 "programs.  POSIX.1-2008 marks B<sighold>(), B<sigignore>(), B<sigpause>(), "
9604 "B<sigrelse>(), and B<sigset>()  as obsolete, recommending the use of "
9605 "B<sigaction>(2), B<sigprocmask>(2), B<pthread_sigmask>(3), and B<sigsuspend>"
9606 "(2)  instead."
9607 msgstr ""
9608 "SVr4, POSIX.1-2001.  これらの関数は廃止予定である。新しいプログラムでは使用し"
9609 "ないこと。 POSIX.1-2008 は、 B<sighold>(), B<sigignore>(), B<sigpause>(), "
9610 "B<sigrelse>(), B<sigset>()  を廃止予定としている。 代わりに、 B<sigaction>"
9611 "(2), B<sigprocmask>(2), B<pthread_sigmask>(3), B<sigsuspend>(2)  の使用が推奨"
9612 "されている。"
9613
9614 #. type: Plain text
9615 #: build/C/man3/sigset.3:192
9616 msgid "These functions appeared in glibc version 2.1."
9617 msgstr "これらの関数は glibc 2.1 で登場した。"
9618
9619 #. type: Plain text
9620 #: build/C/man3/sigset.3:198
9621 msgid ""
9622 "The I<sighandler_t> type is a GNU extension; it is used on this page only to "
9623 "make the B<sigset>()  prototype more easily readable."
9624 msgstr ""
9625 "I<sighandler_t> 型は GNU による拡張であり、この man page で B<sigset>()  のプ"
9626 "ロトタイプをより読みやすくするために使われているだけである。"
9627
9628 #. type: Plain text
9629 #: build/C/man3/sigset.3:206
9630 msgid ""
9631 "The B<sigset>()  function provides reliable signal handling semantics (as "
9632 "when calling B<sigaction>(2)  with I<sa_mask> equal to 0)."
9633 msgstr ""
9634 "関数 B<sigset>()  は信頼性のあるシグナル処理機構を提供する (I<sa_mask> を 0 "
9635 "で B<sigaction>(2)  を呼び出したときと同様)。"
9636
9637 #. type: Plain text
9638 #: build/C/man3/sigset.3:224
9639 msgid ""
9640 "On System V, the B<signal>()  function provides unreliable semantics (as "
9641 "when calling B<sigaction>(2)  with I<sa_mask> equal to I<SA_RESETHAND | "
9642 "SA_NODEFER>).  On BSD, B<signal>()  provides reliable semantics.  "
9643 "POSIX.1-2001 leaves these aspects of B<signal>()  unspecified.  See B<signal>"
9644 "(2)  for further details."
9645 msgstr ""
9646 "System V では、関数 B<signal>()  が提供する処理機構は信頼性のないものである "
9647 "(I<sa_mask> を I<SA_RESETHAND | SA_NODEFER> として B<sigaction>(2)  を呼び出"
9648 "したときと同様)。 BSD では、 B<signal>()  は信頼性のある処理機構を提供する。 "
9649 "POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままとなっている。 さら"
9650 "なる詳細については B<signal>(2)  を参照。"
9651
9652 #. type: Plain text
9653 #: build/C/man3/sigset.3:232 build/C/man3/sigvec.3:252
9654 msgid ""
9655 "In order to wait for a signal, BSD and System V both provided a function "
9656 "named B<sigpause>(3), but this function has a different argument on the two "
9657 "systems.  See B<sigpause>(3)  for details."
9658 msgstr ""
9659 "BSD と System V のどちらのシステムでも シグナルを待つために、 B<sigpause>"
9660 "(3)  という名前の関数が提供されているが、 この関数の引き数は両方のシステムで"
9661 "異なる。 詳細は B<sigpause>(3)  を参照。"
9662
9663 #. type: Plain text
9664 #: build/C/man3/sigset.3:241
9665 msgid ""
9666 "In versions of glibc before 2.2, B<sigset>()  did not unblock I<sig> if "
9667 "I<disp> was specified as a value other than B<SIG_HOLD>."
9668 msgstr ""
9669 "2.2 より前のバージョンの glibc では、 I<disp> に B<SIG_HOLD> 以外の値が指定さ"
9670 "れた場合、 I<sig> のブロック解除を行っていなかった。"
9671
9672 #.  See http://sourceware.org/bugzilla/show_bug.cgi?id=1951
9673 #. type: Plain text
9674 #: build/C/man3/sigset.3:266
9675 msgid ""
9676 "In versions of glibc before 2.5, B<sigset>()  does not correctly return the "
9677 "previous disposition of the signal in two cases.  First, if I<disp> is "
9678 "specified as B<SIG_HOLD>, then a successful B<sigset>()  always returns "
9679 "B<SIG_HOLD>.  Instead, it should return the previous disposition of the "
9680 "signal (unless the signal was blocked, in which case B<SIG_HOLD> should be "
9681 "returned).  Second, if the signal is currently blocked, then the return "
9682 "value of a successful B<sigset>()  should be B<SIG_HOLD>.  Instead, the "
9683 "previous disposition of the signal is returned.  These problems have been "
9684 "fixed since glibc 2.5."
9685 msgstr ""
9686 "2.3.5 以前の全てのバージョンの glibc では、 B<sigset>()  が変更前のシグナルの"
9687 "動作を正しく返さない場合が 2つある。 一つめは、 I<disp> に B<SIG_HOLD> が指定"
9688 "されると、成功した場合 B<sigset>()  は常に B<SIG_HOLD> を返すことである。 正"
9689 "しくは、(シグナルがブロックされていなかった場合には)  変更前のシグナルの動作"
9690 "を返すべきである (シグナルがブロックされていた場合には、 B<SIG_HOLD> が返され"
9691 "る)。 もう一つは、シグナルが現在ブロックされている場合には、 成功した場合の "
9692 "B<sigset>()  の返り値は B<SIG_HOLD> になるべきであるが、実際には 変更前のシグ"
9693 "ナルの動作が返されることである。 これらの問題は glibc 2.5 以降で修正されてい"
9694 "る。"
9695
9696 #. type: Plain text
9697 #: build/C/man3/sigset.3:276
9698 msgid ""
9699 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9700 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
9701 msgstr ""
9702 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9703 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
9704
9705 #. type: TH
9706 #: build/C/man3/sigsetops.3:31
9707 #, no-wrap
9708 msgid "SIGSETOPS"
9709 msgstr "SIGSETOPS"
9710
9711 #. type: Plain text
9712 #: build/C/man3/sigsetops.3:35
9713 msgid ""
9714 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX signal "
9715 "set operations."
9716 msgstr ""
9717 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX シグナル集"
9718 "合の操作"
9719
9720 #. type: Plain text
9721 #: build/C/man3/sigsetops.3:39
9722 msgid "B<int sigemptyset(sigset_t *>I<set>B<);>"
9723 msgstr "B<int sigemptyset(sigset_t *>I<set>B<);>"
9724
9725 #. type: Plain text
9726 #: build/C/man3/sigsetops.3:41
9727 msgid "B<int sigfillset(sigset_t *>I<set>B<);>"
9728 msgstr "B<int sigfillset(sigset_t *>I<set>B<);>"
9729
9730 #. type: Plain text
9731 #: build/C/man3/sigsetops.3:43
9732 msgid "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9733 msgstr "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9734
9735 #. type: Plain text
9736 #: build/C/man3/sigsetops.3:45
9737 msgid "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9738 msgstr "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9739
9740 #. type: Plain text
9741 #: build/C/man3/sigsetops.3:47
9742 msgid "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
9743 msgstr "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
9744
9745 #. type: Plain text
9746 #: build/C/man3/sigsetops.3:59
9747 msgid ""
9748 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
9749 "B<sigismember>():"
9750 msgstr ""
9751 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
9752 "B<sigismember>():"
9753
9754 #. type: Plain text
9755 #: build/C/man3/sigsetops.3:61
9756 msgid "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
9757 msgstr "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
9758
9759 #. type: Plain text
9760 #: build/C/man3/sigsetops.3:65
9761 msgid "These functions allow the manipulation of POSIX signal sets."
9762 msgstr "これらの関数は POSIX シグナル集合(signal set)を操作するため使用する。"
9763
9764 #. type: Plain text
9765 #: build/C/man3/sigsetops.3:70
9766 msgid ""
9767 "B<sigemptyset>()  initializes the signal set given by I<set> to empty, with "
9768 "all signals excluded from the set."
9769 msgstr ""
9770 "B<sigemptyset>()  は I<set> で与えられたシグナル集合を空に初期化し、シグナル"
9771 "が一つも 含まれていない状態にする。"
9772
9773 #. type: Plain text
9774 #: build/C/man3/sigsetops.3:75
9775 msgid "B<sigfillset>()  initializes I<set> to full, including all signals."
9776 msgstr ""
9777 "B<sigfillset>()  は I<set> で与えられたシグナル集合が全てのシグナルを含むよう"
9778 "にする。"
9779
9780 #. type: Plain text
9781 #: build/C/man3/sigsetops.3:83
9782 msgid ""
9783 "B<sigaddset>()  and B<sigdelset>()  add and delete respectively signal "
9784 "I<signum> from I<set>."
9785 msgstr ""
9786 "B<sigaddset>()  と B<sigdelset>()  は I<set> に I<signum> シグナルをそれぞれ"
9787 "加えたり、削除したりする。"
9788
9789 #. type: Plain text
9790 #: build/C/man3/sigsetops.3:89
9791 msgid "B<sigismember>()  tests whether I<signum> is a member of I<set>."
9792 msgstr ""
9793 "B<sigismember>()  は I<signum> が I<set> に含まれているかどうかをテストする。"
9794
9795 #. type: Plain text
9796 #: build/C/man3/sigsetops.3:107
9797 msgid ""
9798 "Objects of type I<sigset_t> must be initialized by a call to either "
9799 "B<sigemptyset>()  or B<sigfillset>()  before being passed to the functions "
9800 "B<sigaddset>(), B<sigdelset>()  and B<sigismember>()  or the additional "
9801 "glibc functions described below (B<sigisemptyset>(), B<sigandset>(), and "
9802 "B<sigorset>()).  The results are undefined if this is not done."
9803 msgstr ""
9804 "I<sigset_t> 型のオブジェクトは、関数 B<sigaddset>(), B<sigdelset>(), "
9805 "B<sigismember>()  や後述の glibc の追加関数 (B<sigisemptyset>(), B<sigandset>"
9806 "(), B<sigorset>())  に渡す前に、 B<sigemptyset>()  か B<sigfillset>()  を呼び"
9807 "出して初期化しなければならない。 初期化しなかった場合の結果は未定義である。"
9808
9809 #. type: Plain text
9810 #: build/C/man3/sigsetops.3:114
9811 msgid ""
9812 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), and B<sigdelset>()  "
9813 "return 0 on success and -1 on error."
9814 msgstr ""
9815 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>()  は成功すれ"
9816 "ば 0 を、エラーの場合は -1 を返す。"
9817
9818 #. type: Plain text
9819 #: build/C/man3/sigsetops.3:126
9820 msgid ""
9821 "B<sigismember>()  returns 1 if I<signum> is a member of I<set>, 0 if "
9822 "I<signum> is not a member, and -1 on error.  On error, these functions set "
9823 "I<errno> to indicate the cause."
9824 msgstr "B<sigismember>()  は I<signum> が I<set> のメンバの場合 1 を返し、メンバでない場合 0 を返す。 エラーの場合は -1 を返し、 I<errno> にエラーの原因を示す値を設定する。"
9825
9826 #. type: Plain text
9827 #: build/C/man3/sigsetops.3:131
9828 msgid "I<sig> is not a valid signal."
9829 msgstr "I<sig> が有効なシグナルではない。"
9830
9831 #. type: SS
9832 #: build/C/man3/sigsetops.3:134
9833 #, no-wrap
9834 msgid "Glibc notes"
9835 msgstr "glibc での注意"
9836
9837 #. type: Plain text
9838 #: build/C/man3/sigsetops.3:140
9839 msgid ""
9840 "If the B<_GNU_SOURCE> feature test macro is defined, then I<E<lt>signal."
9841 "hE<gt>> exposes three other functions for manipulating signal sets."
9842 msgstr ""
9843 "B<_GNU_SOURCE> 機能検査マクロが定義されていると、 I<E<lt>signal.hE<gt>> でシ"
9844 "グナル集合を操作する 3つの関数が追加で公開される。"
9845
9846 #. type: TP
9847 #: build/C/man3/sigsetops.3:140
9848 #, no-wrap
9849 msgid "B<int sigisemptyset(sigset_t *>I<set>B<);>"
9850 msgstr "B<int sigisemptyset(sigset_t *>I<set>B<);>"
9851
9852 #. type: Plain text
9853 #: build/C/man3/sigsetops.3:145
9854 msgid "returns 1 if I<set> contains no signals, and 0 otherwise."
9855 msgstr ""
9856 "I<set> にシグナルが一つも含まれていなければ 1 を返し、 それ以外は 0 を返す。"
9857
9858 #. type: TP
9859 #: build/C/man3/sigsetops.3:145
9860 #, no-wrap
9861 msgid "B<int sigorset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
9862 msgstr "B<int sigorset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
9863
9864 #. type: Plain text
9865 #: build/C/man3/sigsetops.3:154
9866 msgid "places the union of the sets I<left> and I<right> in I<dest>."
9867 msgstr "シグナル集合 I<left> と I<left> の和集合を I<dest> に書き込む。"
9868
9869 #. type: TP
9870 #: build/C/man3/sigsetops.3:154
9871 #, no-wrap
9872 msgid "B<int sigandset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
9873 msgstr "B<int sigandset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
9874
9875 #. type: Plain text
9876 #: build/C/man3/sigsetops.3:163
9877 msgid "places the intersection of the sets I<left> and I<right> in I<dest>."
9878 msgstr "シグナル集合 I<left> と I<left> の積集合を I<dest> に書き込む。"
9879
9880 #. type: Plain text
9881 #: build/C/man3/sigsetops.3:168
9882 msgid ""
9883 "B<sigorset>()  and B<sigandset>()  return 0 on success, and -1 on failure."
9884 msgstr ""
9885 "B<sigorset>()  と B<sigandset>()  は成功すると 0 を、失敗すると -1 を返す。"
9886
9887 #. type: Plain text
9888 #: build/C/man3/sigsetops.3:171
9889 msgid ""
9890 "These functions are nonstandard (a few other systems provide similar "
9891 "functions) and their use should be avoided in portable applications."
9892 msgstr ""
9893 "これらの関数は非標準であり、(他にも同様の関数を提供しているシステムも いくつ"
9894 "かはあるが) 移植性を考慮したアプリケーションでは使用を避けるべき である。"
9895
9896 #. type: Plain text
9897 #: build/C/man3/sigsetops.3:176
9898 msgid "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
9899 msgstr "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
9900
9901 #. type: TH
9902 #: build/C/man2/sigsuspend.2:29
9903 #, no-wrap
9904 msgid "SIGSUSPEND"
9905 msgstr "SIGSUSPEND"
9906
9907 #. type: Plain text
9908 #: build/C/man2/sigsuspend.2:32
9909 msgid "sigsuspend - wait for a signal"
9910 msgstr "sigsuspend - シグナルを待つ"
9911
9912 #. type: Plain text
9913 #: build/C/man2/sigsuspend.2:36
9914 msgid "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
9915 msgstr "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
9916
9917 #. type: Plain text
9918 #: build/C/man2/sigsuspend.2:45
9919 msgid ""
9920 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9921 "_POSIX_SOURCE"
9922 msgstr ""
9923 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9924 "_POSIX_SOURCE"
9925
9926 #. type: Plain text
9927 #: build/C/man2/sigsuspend.2:53
9928 msgid ""
9929 "B<sigsuspend>()  temporarily replaces the signal mask of the calling process "
9930 "with the mask given by I<mask> and then suspends the process until delivery "
9931 "of a signal whose action is to invoke a signal handler or to terminate a "
9932 "process."
9933 msgstr ""
9934 "B<sigsuspend>()  は、呼び出し元プロセスのシグナルマスクを I<mask> で指定され"
9935 "たマスクに一時的に置き換え、 シグナルハンドラの起動もしくはプロセスの終了がア"
9936 "クションとして 設定されたシグナルが配送されるまで、そのプロセスを停止する。"
9937
9938 #. type: Plain text
9939 #: build/C/man2/sigsuspend.2:62
9940 msgid ""
9941 "If the signal terminates the process, then B<sigsuspend>()  does not "
9942 "return.  If the signal is caught, then B<sigsuspend>()  returns after the "
9943 "signal handler returns, and the signal mask is restored to the state before "
9944 "the call to B<sigsuspend>()."
9945 msgstr ""
9946 "シグナルがプロセスを終了させるものの場合、 B<sigsuspend>()  は返らない。シグ"
9947 "ナルが捕捉された場合、 シグナルハンドラの処理が終わった後に B<sigsuspend>()  "
9948 "は返り、シグナルマスクは B<sigsuspend>()  が呼び出される前の状態に復元され"
9949 "る。"
9950
9951 #. type: Plain text
9952 #: build/C/man2/sigsuspend.2:70
9953 msgid ""
9954 "It is not possible to block B<SIGKILL> or B<SIGSTOP>; specifying these "
9955 "signals in I<mask>, has no effect on the process's signal mask."
9956 msgstr ""
9957 "B<SIGKILL> と B<SIGSTOP> を禁止 (block) することはできない; これらのシグナル"
9958 "を I<mask> に指定しても、プロセスのシグナルマスクは影響を受けない。"
9959
9960 #. type: Plain text
9961 #: build/C/man2/sigsuspend.2:76
9962 msgid ""
9963 "B<sigsuspend>()  always returns -1, with I<errno> set to inndicate the error "
9964 "(normally, B<EINTR>)."
9965 msgstr "B<sigsuspend>() は常に -1 を返し、 I<errno> にエラーの原因を示す値 (通常は B<EINTR>) を設定する。"
9966
9967 #. type: Plain text
9968 #: build/C/man2/sigsuspend.2:81
9969 msgid ""
9970 "I<mask> points to memory which is not a valid part of the process address "
9971 "space."
9972 msgstr ""
9973 "I<mask> が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。"
9974
9975 #. type: Plain text
9976 #: build/C/man2/sigsuspend.2:84
9977 msgid "The call was interrupted by a signal."
9978 msgstr "システムコールはシグナルにより割り込まれた。"
9979
9980 #. type: Plain text
9981 #: build/C/man2/sigsuspend.2:104
9982 msgid ""
9983 "Normally, B<sigsuspend>()  is used in conjunction with B<sigprocmask>(2)  in "
9984 "order to prevent delivery of a signal during the execution of a critical "
9985 "code section.  The caller first blocks the signals with B<sigprocmask>(2).  "
9986 "When the critical code has completed, the caller then waits for the signals "
9987 "by calling B<sigsuspend>()  with the signal mask that was returned by "
9988 "B<sigprocmask>(2)  (in the I<oldset> argument)."
9989 msgstr ""
9990 "B<sigsuspend>()  は、通常、クリティカル・コード・セクション (critical code "
9991 "section) の 実行中にシグナルが配送されるのを防止するために、 B<sigprocmask>"
9992 "(2)  と組み合わせて使用される。 まず最初に、呼び出し元は B<sigprocmask>(2)  "
9993 "を使ってシグナルを禁止する。 クリティカル・コードが完了すると、呼び出し元は "
9994 "B<sigprocmask>(2)  が (I<oldset> 引き数で) 返すシグナルマスクを指定して "
9995 "B<sigsuspend>()  を呼び出すことで、クリティカル・コード実行中に発生した シグ"
9996 "ナルを待つことができる。"
9997
9998 #. type: Plain text
9999 #: build/C/man2/sigsuspend.2:118
10000 msgid ""
10001 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10002 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
10003 msgstr ""
10004 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10005 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
10006
10007 #. type: TH
10008 #: build/C/man3/sigvec.3:26
10009 #, no-wrap
10010 msgid "SIGVEC"
10011 msgstr "SIGVEC"
10012
10013 #. type: TH
10014 #: build/C/man3/sigvec.3:26
10015 #, no-wrap
10016 msgid "2012-09-06"
10017 msgstr "2012-09-06"
10018
10019 #. type: Plain text
10020 #: build/C/man3/sigvec.3:29
10021 msgid "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD signal API"
10022 msgstr "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD 版シグナル API"
10023
10024 #. type: Plain text
10025 #: build/C/man3/sigvec.3:33
10026 msgid ""
10027 "B<int sigvec(int >I<sig>B<, struct sigvec *>I<vec>B<, struct sigvec "
10028 "*>I<ovec>B<);>"
10029 msgstr ""
10030 "B<int sigvec(int >I<sig>B<, struct sigvec *>I<vec>B<, struct sigvec "
10031 "*>I<ovec>B<);>"
10032
10033 #. type: Plain text
10034 #: build/C/man3/sigvec.3:35
10035 msgid "B<int sigmask(int >I<signum>B<);>"
10036 msgstr "B<int sigmask(int >I<signum>B<);>"
10037
10038 #. type: Plain text
10039 #: build/C/man3/sigvec.3:37
10040 msgid "B<int sigblock(int >I<mask>B<);>"
10041 msgstr "B<int sigblock(int >I<mask>B<);>"
10042
10043 #. type: Plain text
10044 #: build/C/man3/sigvec.3:39
10045 msgid "B<int sigsetmask(int >I<mask>B<);>"
10046 msgstr "B<int sigsetmask(int >I<mask>B<);>"
10047
10048 #. type: Plain text
10049 #: build/C/man3/sigvec.3:41
10050 msgid "B<int siggetmask(void);>"
10051 msgstr "B<int siggetmask(void);>"
10052
10053 #. type: Plain text
10054 #: build/C/man3/sigvec.3:49
10055 msgid "All functions shown above: _BSD_SOURCE"
10056 msgstr "上記の全ての関数: _BSD_SOURCE"
10057
10058 #. type: Plain text
10059 #: build/C/man3/sigvec.3:56
10060 msgid ""
10061 "These functions are provided in glibc as a compatibility interface for "
10062 "programs that make use of the historical BSD signal API.  This API is "
10063 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
10064 "B<sigprocmask>(2), etc.)."
10065 msgstr ""
10066 "これらの関数は、昔ながらの BSD 版シグナル API を使用しているプログラム に対し"
10067 "て互換性のあるインタフェースを glibc で提供するものである。 この API は過去の"
10068 "ものであり、新しいアプリケーションでは POSIX シグナル API (B<sigaction>(2), "
10069 "B<sigprocmask>(2)  など) を使用すべきである。"
10070
10071 #. type: Plain text
10072 #: build/C/man3/sigvec.3:81
10073 msgid ""
10074 "The B<sigvec>()  function sets and/or gets the disposition of the signal "
10075 "I<sig> (like the POSIX B<sigaction>(2)).  If I<vec> is not NULL, it points "
10076 "to a I<sigvec> structure that defines the new disposition for I<sig>.  If "
10077 "I<ovec> is not NULL, it points to a I<sigvec> structure that is used to "
10078 "return the previous disposition of I<sig>.  To obtain the current "
10079 "disposition of I<sig> without changing it, specify NULL for I<vec>, and a "
10080 "non-NULL pointer for I<ovec>."
10081 msgstr ""
10082 "関数 B<sigvec>()  は、(POSIX の B<sigaction>(2)  と同様に) シグナル I<sig> の"
10083 "動作の設定・取得を行う。 I<vec> は、NULL 以外の場合、 I<sig> の新しい動作を定"
10084 "義した I<sigvec> 構造体へのポインタである。 I<ovec> は、NULL 以外の場合、 "
10085 "I<sig> の変更前の動作を返すために使用される I<sigvec> 構造体へのポインタであ"
10086 "る。 I<sig> の動作を変更せずに現在の動作を取得するためには、 I<vec> に NULL "
10087 "を指定し、 I<ovec> に NULL でないポインタを指定すればよい。"
10088
10089 #. type: Plain text
10090 #: build/C/man3/sigvec.3:91
10091 msgid "The I<sigvec> structure has the following form:"
10092 msgstr "I<sigvec> 構造体は以下の通りである:"
10093
10094 #. type: Plain text
10095 #: build/C/man3/sigvec.3:99
10096 #, no-wrap
10097 msgid ""
10098 "struct sigvec {\n"
10099 "    void (*sv_handler)(int); /* Signal disposition */\n"
10100 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
10101 "    int    sv_flags;         /* Flags */\n"
10102 "};\n"
10103 msgstr ""
10104 "struct sigvec {\n"
10105 "    void (*sv_handler)(int); /* Signal disposition */\n"
10106 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
10107 "    int    sv_flags;         /* Flags */\n"
10108 "};\n"
10109
10110 #. type: Plain text
10111 #: build/C/man3/sigvec.3:110
10112 msgid ""
10113 "The I<sv_handler> field specifies the disposition of the signal, and is "
10114 "either: the address of a signal handler function; B<SIG_DFL>, meaning the "
10115 "default disposition applies for the signal; or B<SIG_IGN>, meaning that the "
10116 "signal is ignored."
10117 msgstr ""
10118 "I<sv_handler> フィールドはシグナルの動作を指定するもので、 シグナルハンドラ関"
10119 "数のアドレスか、 B<SIG_DFL> と B<SIG_IGN> のいずれかを指定できる。 "
10120 "B<SIG_DFL> はシグナルに適用されるデフォルトの動作を意味し、 B<SIG_IGN> はシグ"
10121 "ナルを無視することを意味する。"
10122
10123 #. type: Plain text
10124 #: build/C/man3/sigvec.3:124
10125 msgid ""
10126 "If I<sv_handler> specifies the address of a signal handler, then I<sv_mask> "
10127 "specifies a mask of signals that are to be blocked while the handler is "
10128 "executing.  In addition, the signal for which the handler is invoked is also "
10129 "blocked.  Attempts to block B<SIGKILL> or B<SIGSTOP> are silently ignored."
10130 msgstr ""
10131 "I<sv_handler> にシグナルハンドラのアドレスを指定した場合、 I<sv_mask> はハン"
10132 "ドラが実行中にブロックされるべきシグナルのマスクを指定する。 また、ハンドラを"
10133 "起動したシグナル自身はブロックされる。 B<SIGKILL> か B<SIGSTOP> をブロックし"
10134 "ようとした場合には、黙って無視される。"
10135
10136 #. type: Plain text
10137 #: build/C/man3/sigvec.3:131
10138 msgid ""
10139 "If I<sv_handler> specifies the address of a signal handler, then the "
10140 "I<sv_flags> field specifies flags controlling what happens when the handler "
10141 "is called.  This field may contain zero or more of the following flags:"
10142 msgstr ""
10143 "I<sv_handler> にシグナルハンドラのアドレスを指定した場合、 I<sv_flags> フィー"
10144 "ルドはハンドラが呼ばれた際の挙動を制御するフラグを指定する。 このフィールドに"
10145 "は、0 か、以下のフラグを 1個以上指定できる:"
10146
10147 #. type: TP
10148 #: build/C/man3/sigvec.3:131
10149 #, no-wrap
10150 msgid "B<SV_INTERRUPT>"
10151 msgstr "B<SV_INTERRUPT>"
10152
10153 #. type: Plain text
10154 #: build/C/man3/sigvec.3:139
10155 msgid ""
10156 "If the signal handler interrupts a blocking system call, then upon return "
10157 "from the handler the system call will not be restarted: instead it will fail "
10158 "with the error B<EINTR>.  If this flag is not specified, then system calls "
10159 "are restarted by default."
10160 msgstr ""
10161 "シグナルハンドラが停止中のシステムコールを中断した場合、 ハンドラから復帰して"
10162 "も、システムコールは再開されず、 エラー B<EINTR> で失敗する。 このフラグを指"
10163 "定しなかった場合、システムコールは デフォルトで再開される。"
10164
10165 #. type: TP
10166 #: build/C/man3/sigvec.3:139
10167 #, no-wrap
10168 msgid "B<SV_RESETHAND>"
10169 msgstr "B<SV_RESETHAND>"
10170
10171 #. type: Plain text
10172 #: build/C/man3/sigvec.3:148
10173 msgid ""
10174 "Reset the disposition of the signal to the default before calling the signal "
10175 "handler.  If this flag is not specified, then the handler remains "
10176 "established until explicitly removed by a later call to B<sigvec>()  or "
10177 "until the process performs an B<execve>(2)."
10178 msgstr ""
10179 "シグナルハンドラを呼び出す前にシグナルの動作を デフォルトにリセットする。 こ"
10180 "のフラグを指定しなかった場合、もう一度 B<sigvec>()  を呼び出して明示的に削除"
10181 "されるか、プロセスが B<execve>(2)  を実行するまで、ハンドラは設定されたままと"
10182 "なる。"
10183
10184 #. type: TP
10185 #: build/C/man3/sigvec.3:148
10186 #, no-wrap
10187 msgid "B<SV_ONSTACK>"
10188 msgstr "B<SV_ONSTACK>"
10189
10190 #. type: Plain text
10191 #: build/C/man3/sigvec.3:155
10192 msgid ""
10193 "Handle the signal on the alternate signal stack (historically established "
10194 "under BSD using the obsolete B<sigstack>()  function; the POSIX replacement "
10195 "is B<sigaltstack>(2))."
10196 msgstr ""
10197 "代替シグナルスタック上でシグナルハンドラを実行する (歴史的に、BSD では代替シ"
10198 "グナルスタックは廃止された関数 B<sigstack>()  を使って設定する。POSIX では、"
10199 "代わりに B<sigaltstack>(2)  を使用する)。"
10200
10201 #. type: Plain text
10202 #: build/C/man3/sigvec.3:165
10203 msgid ""
10204 "The B<sigmask>()  function constructs and returns a \"signal mask\" for "
10205 "I<signum>.  For example, we can initialize the I<vec.sv_mask> field given to "
10206 "B<sigvec>()  using code such as the following:"
10207 msgstr ""
10208 "関数 B<sigmask>()  は I<signum> に対する「シグナルマスク」を構成して返す。 例"
10209 "えば、以下のようなコードを使うと、 B<sigvec>()  に渡す I<vec.sv_mask> を初期"
10210 "化できる。"
10211
10212 #. type: Plain text
10213 #: build/C/man3/sigvec.3:170
10214 #, no-wrap
10215 msgid ""
10216 "    vec.sv_mask = sigmask(SIGQUIT) | sigpause(SIGABRT);\n"
10217 "                /* Block SIGQUIT and SIGABRT during\n"
10218 "                   handler execution */\n"
10219 msgstr ""
10220 "    vec.sv_mask = sigmask(SIGQUIT) | sigpause(SIGABRT);\n"
10221 "                /* Block SIGQUIT and SIGABRT during\n"
10222 "                   handler execution */\n"
10223
10224 #. type: Plain text
10225 #: build/C/man3/sigvec.3:185
10226 msgid ""
10227 "The B<sigblock>()  function adds the signals in I<mask> to the process's "
10228 "signal mask (like POSIX I<sigprocmask(SIG_BLOCK)>), and returns the "
10229 "process's previous signal mask.  Attempts to block B<SIGKILL> or B<SIGSTOP> "
10230 "are silently ignored."
10231 msgstr ""
10232 "B<sigblock>()  関数は、 I<mask> にあるシグナルをプロセスのシグナルマスクに追"
10233 "加し (POSIX の I<sigprocmask(SIG_BLOCK)> と同様)、変更前のプロセスのシグナル"
10234 "マスクを返す。 B<SIGKILL> や B<SIGSTOP> をブロックしようとした場合には、黙っ"
10235 "て無視される。"
10236
10237 #. type: Plain text
10238 #: build/C/man3/sigvec.3:193
10239 msgid ""
10240 "The B<sigsetmask>()  function sets the process's signal mask to the value "
10241 "given in I<mask> (like POSIX I<sigprocmask(SIG_SETMASK)>), and returns the "
10242 "process's previous signal mask."
10243 msgstr ""
10244 "B<sigsetmask>()  関数はプロセスのシグナルマスクを I<mask> で指定された値に設"
10245 "定し (POSIX の I<sigprocmask(SIG_SETMASK)> と同様)、変更前のプロセスのシグナ"
10246 "ルマスクを返す。"
10247
10248 #. type: Plain text
10249 #: build/C/man3/sigvec.3:199
10250 msgid ""
10251 "The B<siggetmask>()  function returns the process's current signal mask.  "
10252 "This call is equivalent to I<sigblock(0)>."
10253 msgstr ""
10254 "B<siggetmask>()  関数はプロセスの現在のシグナルマスクを返す。この関数は "
10255 "I<sigblock(0)> と等価である。"
10256
10257 #. type: Plain text
10258 #: build/C/man3/sigvec.3:205
10259 msgid ""
10260 "The B<sigvec>()  function returns 0 on success; on error, it returns -1 and "
10261 "sets I<errno> to indicate the error."
10262 msgstr ""
10263 "B<sigvec>()  関数は成功すると 0 を返す。エラーの場合、-1 を返し、 I<errno> に"
10264 "エラーを示す値をセットする。"
10265
10266 #. type: Plain text
10267 #: build/C/man3/sigvec.3:211
10268 msgid ""
10269 "The B<sigblock>()  and B<sigsetmask>()  functions return the previous signal "
10270 "mask."
10271 msgstr "B<sigblock>()  と B<sigsetmask>()  は変更前のシグナルマスクを返す。"
10272
10273 #. type: Plain text
10274 #: build/C/man3/sigvec.3:216
10275 msgid "The B<sigmask>()  function returns the signal mask for I<signum>."
10276 msgstr "B<sigmask>()  関数は I<signum> のシグナルマスクを返す。"
10277
10278 #. type: Plain text
10279 #: build/C/man3/sigvec.3:221
10280 msgid "See the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
10281 msgstr "B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」の節を参照。"
10282
10283 #. type: Plain text
10284 #: build/C/man3/sigvec.3:227
10285 msgid ""
10286 "All of these functions were in 4.3BSD, except B<siggetmask>(), whose origin "
10287 "is unclear.  These functions are obsolete: do not use them in new programs."
10288 msgstr ""
10289 "これらの関数のうち B<siggetmask>()  以外の全ては 4.3BSD にあった。 "
10290 "B<siggetmask>()  の出自ははっきりしない。 これらの関数は廃止予定であり、新し"
10291 "いプログラムでは使用しないこと。"
10292
10293 #. type: Plain text
10294 #: build/C/man3/sigvec.3:244
10295 msgid ""
10296 "On 4.3BSD, the B<signal>()  function provided reliable semantics (as when "
10297 "calling B<sigvec>()  with I<vec.sv_mask> equal to 0).  On System V, B<signal>"
10298 "()  provides unreliable semantics.  POSIX.1-2001 leaves these aspects of "
10299 "B<signal>()  unspecified.  See B<signal>(2)  for further details."
10300 msgstr ""
10301 "4.3BSD では、信頼性のあるシグナル処理機構を提供する (I<vec.sv_mask> を 0 で "
10302 "B<sigvec>()  を呼び出したときと同様)。 System V が提供する処理機構は信頼性の"
10303 "ないものである。 POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままと"
10304 "なっている。 さらなる詳細については B<signal>(2)  を参照。"
10305
10306 #. type: Plain text
10307 #: build/C/man3/sigvec.3:262
10308 msgid ""
10309 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10310 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
10311 msgstr ""
10312 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10313 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
10314
10315 #. type: TH
10316 #: build/C/man3/sigwait.3:26
10317 #, no-wrap
10318 msgid "SIGWAIT"
10319 msgstr "SIGWAIT"
10320
10321 #. type: TH
10322 #: build/C/man3/sigwait.3:26 build/C/man2/sigwaitinfo.2:25
10323 #, no-wrap
10324 msgid "2012-07-21"
10325 msgstr "2012-07-21"
10326
10327 #. type: Plain text
10328 #: build/C/man3/sigwait.3:29
10329 msgid "sigwait - wait for a signal"
10330 msgstr "sigwait - シグナルを待つ"
10331
10332 #. type: Plain text
10333 #: build/C/man3/sigwait.3:34
10334 #, no-wrap
10335 msgid "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
10336 msgstr "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
10337
10338 #. type: Plain text
10339 #: build/C/man3/sigwait.3:44
10340 msgid ""
10341 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10342 msgstr ""
10343 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10344
10345 #. type: Plain text
10346 #: build/C/man3/sigwait.3:56
10347 msgid ""
10348 "The B<sigwait>()  function suspends execution of the calling thread until "
10349 "one of the signals specified in the signal set I<set> becomes pending.  The "
10350 "function accepts the signal (removes it from the pending list of signals), "
10351 "and returns the signal number in I<sig>."
10352 msgstr ""
10353 "B<sigwait>()  関数は、シグナル集合 I<set> で指定されたシグナルの一つが処理待"
10354 "ち (pending) になるまで、 呼び出したスレッドの実行を中断する。 この関数はその"
10355 "シグナルを受け取り (つまり、処理待ちのシグナルのリスト からそのシグナルを削除"
10356 "し)、そのシグナル番号を I<sig> に格納して返す。"
10357
10358 #. type: Plain text
10359 #: build/C/man3/sigwait.3:62
10360 msgid ""
10361 "The operation of B<sigwait>()  is the same as B<sigwaitinfo>(2), except that:"
10362 msgstr ""
10363 "B<sigwait>()  の動作は B<sigwaitinfo>(2)  と同じだが、以下の点が異なる。"
10364
10365 #. type: Plain text
10366 #: build/C/man3/sigwait.3:67
10367 msgid ""
10368 "B<sigwait>()  returns only the signal number, rather than a I<siginfo_t> "
10369 "structure describing the signal."
10370 msgstr ""
10371 "B<sigwait>()  は、シグナルの内容を表す I<siginfo_t> 構造体を返すのではなく、"
10372 "単にシグナル番号を返す。"
10373
10374 #. type: Plain text
10375 #: build/C/man3/sigwait.3:69
10376 msgid "The return values of the two functions are different."
10377 msgstr "返り値が B<sigwaitinfo>(2)  とは異なる。"
10378
10379 #. type: Plain text
10380 #: build/C/man3/sigwait.3:74
10381 msgid ""
10382 "On success, B<sigwait>()  returns 0.  On error, it returns a positive error "
10383 "number (listed in ERRORS)."
10384 msgstr ""
10385 "成功すると、 B<sigwait>()  は 0 を返す。 エラーの場合、(「エラー」の節のリス"
10386 "トにある) 正のエラー番号を返す。"
10387
10388 #.  Does not occur for glibc.
10389 #. type: Plain text
10390 #: build/C/man3/sigwait.3:80
10391 msgid "I<set> contains an invalid signal number."
10392 msgstr "I<set> に無効なシグナル番号が入っている。"
10393
10394 #. type: Plain text
10395 #: build/C/man3/sigwait.3:86
10396 msgid "B<sigwait>()  is implemented using B<sigtimedwait>(2)."
10397 msgstr "B<sigwait>()  は B<sigtimedwait>(2)  を使って実装されている。"
10398
10399 #. type: Plain text
10400 #: build/C/man3/sigwait.3:89
10401 msgid "See B<pthread_sigmask>(3)."
10402 msgstr "B<pthread_sigmask>(3)  を参照。"
10403
10404 #. type: Plain text
10405 #: build/C/man3/sigwait.3:97
10406 msgid ""
10407 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
10408 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
10409 msgstr ""
10410 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
10411 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
10412
10413 #. type: TH
10414 #: build/C/man2/sigwaitinfo.2:25
10415 #, no-wrap
10416 msgid "SIGWAITINFO"
10417 msgstr "SIGWAITINFO"
10418
10419 #. type: Plain text
10420 #: build/C/man2/sigwaitinfo.2:28
10421 msgid "sigwaitinfo, sigtimedwait - synchronously wait for queued signals"
10422 msgstr "sigwaitinfo, sigtimedwait - キューに入れられたシグナルを同期して待つ"
10423
10424 #. type: Plain text
10425 #: build/C/man2/sigwaitinfo.2:33
10426 #, no-wrap
10427 msgid "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
10428 msgstr "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
10429
10430 #. type: Plain text
10431 #: build/C/man2/sigwaitinfo.2:36
10432 #, no-wrap
10433 msgid ""
10434 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
10435 "B<                 const struct timespec *>I<timeout>B<);>\n"
10436 msgstr ""
10437 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
10438 "B<                 const struct timespec *>I<timeout>B<);>\n"
10439
10440 #. type: Plain text
10441 #: build/C/man2/sigwaitinfo.2:46
10442 msgid "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10443 msgstr ""
10444 "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10445
10446 #. type: Plain text
10447 #: build/C/man2/sigwaitinfo.2:56
10448 msgid ""
10449 "B<sigwaitinfo>()  suspends execution of the calling thread until one of the "
10450 "signals in I<set> is pending (If one of the signals in I<set> is already "
10451 "pending for the calling thread, B<sigwaitinfo>()  will return immediately.)"
10452 msgstr ""
10453 "B<sigwaitinfo>()  は I<set> のうちのどれかのシグナルが処理待ちになるまで、 呼"
10454 "び出しスレッドの実行を一時停止する (呼び出しスレッドに対して I<set> のうちの"
10455 "どれかのシグナルが既に待機中 (pending) である場合、 B<sigwaitinfo>()  はすぐ"
10456 "に戻る)。"
10457
10458 #. type: Plain text
10459 #: build/C/man2/sigwaitinfo.2:68
10460 msgid ""
10461 "B<sigwaitinfo>()  removes the signal from the set of pending signals and "
10462 "returns the signal number as its function result.  If the I<info> argument "
10463 "is not NULL, then the buffer that it points to is used to return a structure "
10464 "of type I<siginfo_t> (see B<sigaction>(2))  containing information about the "
10465 "signal."
10466 msgstr ""
10467 "B<sigwaitinfo>()  はそのシグナルを待機中のシグナルの集合から削除し、関数の結"
10468 "果としてシグナル番号を返す。 I<info> 引き数が NULL でない場合、配送されたシグ"
10469 "ナルの情報が入った I<siginfo_t> 型 (B<sigaction>(2)  を参照) の構造体を "
10470 "I<info> が指すバッファに入れて返す。"
10471
10472 #. type: Plain text
10473 #: build/C/man2/sigwaitinfo.2:76
10474 msgid ""
10475 "If multiple signals in I<set> are pending for the caller, the signal that is "
10476 "retrieved by B<sigwaitinfo>()  is determined according to the usual ordering "
10477 "rules; see B<signal>(7)  for further details."
10478 msgstr ""
10479 "呼び出し元に対して I<set> の複数のシグナルが処理待ちの場合、 B<sigwaitinfo>"
10480 "() で取得するシグナルは通常の順序決定ルールに基づいて決定される。 詳細は "
10481 "B<signal>(7) を参照のこと。"
10482
10483 #. type: Plain text
10484 #: build/C/man2/sigwaitinfo.2:88
10485 msgid ""
10486 "B<sigtimedwait>()  operates in exactly the same way as B<sigwaitinfo>()  "
10487 "except that it has an additional argument, I<timeout>, which specifies a "
10488 "minimum interval for which the thread is suspended waiting for a signal.  "
10489 "(This interval will be rounded up to the system clock granularity, and "
10490 "kernel scheduling delays mean that the interval may overrun by a small "
10491 "amount.)  This argument is of the following type:"
10492 msgstr ""
10493 "B<sigtimedwait>() は、 B<sigwaitinfo>() と次の点を除いて全く同じように\n"
10494 "動作する。この関数にはもう 1 つの引き数 I<timeout> があり、シグナル待ち\n"
10495 "でスレッドが一時停止する最小時間を指定することができる(この時間はシステ\n"
10496 "ムクロックの粒度に切り上げられ、カーネルのスケジューリング遅延により\n"
10497 "少しだけ長くなる可能性がある)。この引き数の型は以下のとおりである:"
10498
10499 #. type: Plain text
10500 #: build/C/man2/sigwaitinfo.2:95
10501 #, no-wrap
10502 msgid ""
10503 "struct timespec {\n"
10504 "    long    tv_sec;         /* seconds */\n"
10505 "    long    tv_nsec;        /* nanoseconds */\n"
10506 "}\n"
10507 msgstr ""
10508 "struct timespec {\n"
10509 "    long    tv_sec;         /* 秒 */\n"
10510 "    long    tv_nsec;        /* ナノ秒 */\n"
10511 "}\n"
10512
10513 #. type: Plain text
10514 #: build/C/man2/sigwaitinfo.2:105
10515 msgid ""
10516 "If both fields of this structure are specified as 0, a poll is performed: "
10517 "B<sigtimedwait>()  returns immediately, either with information about a "
10518 "signal that was pending for the caller, or with an error if none of the "
10519 "signals in I<set> was pending."
10520 msgstr ""
10521 "この構造体の 2 つのフィールドがともに 0 の場合、ポーリングが行われる: "
10522 "B<sigtimedwait>()  は、呼び出し側プロセスに対して 待機しているシグナルの情報"
10523 "を返して戻るか、 I<set> のうちのどのシグナルも待機していない場合はエラーを返"
10524 "して戻る。"
10525
10526 #. type: Plain text
10527 #: build/C/man2/sigwaitinfo.2:114
10528 msgid ""
10529 "On success, both B<sigwaitinfo>()  and B<sigtimedwait>()  return a signal "
10530 "number (i.e., a value greater than zero).  On failure both calls return -1, "
10531 "with I<errno> set to indicate the error."
10532 msgstr ""
10533 "成功した場合、 B<sigwaitinfo>()  と B<sigtimedwait>()  はシグナル番号 (すなわ"
10534 "ち 0 より大きい数) を返す。 失敗した場合、2 つの関数は -1 を返し、 I<errno> "
10535 "はエラーを表す値に設定される。"
10536
10537 #. type: Plain text
10538 #: build/C/man2/sigwaitinfo.2:123
10539 msgid ""
10540 "No signal in I<set> was became pending within the I<timeout> period "
10541 "specified to B<sigtimedwait>()."
10542 msgstr ""
10543 "I<set> のうちのどのシグナルも B<sigtimedwait>()  に指定された I<timeout> の期"
10544 "間内に処理待ちにならなかった。"
10545
10546 #. type: Plain text
10547 #: build/C/man2/sigwaitinfo.2:129
10548 msgid ""
10549 "The wait was interrupted by a signal handler; see B<signal>(7).  (This "
10550 "handler was for a signal other than one of those in I<set>.)"
10551 msgstr ""
10552 "シグナル待ちがシグナルハンドラによって中断 (interrupt) された (このハンドラ"
10553 "は I<set> にあるシグナル以外のものである)。 B<signal>(7)  参照。"
10554
10555 #. type: Plain text
10556 #: build/C/man2/sigwaitinfo.2:133
10557 msgid "I<timeout> was invalid."
10558 msgstr "I<timeout> が不正である。"
10559
10560 #. type: Plain text
10561 #: build/C/man2/sigwaitinfo.2:153
10562 msgid ""
10563 "In normal usage, the calling program blocks the signals in I<set> via a "
10564 "prior call to B<sigprocmask>(2)  (so that the default disposition for these "
10565 "signals does not occur if they become pending between successive calls to "
10566 "B<sigwaitinfo>()  or B<sigtimedwait>())  and does not establish handlers for "
10567 "these signals.  In a multithreaded program, the signal should be blocked in "
10568 "all threads, in order to prevent the signal being treated according to its "
10569 "default disposition in a thread other than the one calling B<sigwaitinfo>()  "
10570 "or B<sigtimedwait>())."
10571 msgstr ""
10572 "通常の使用法では、呼び出し側プロセスはこれらの関数より先に B<sigprocmask>"
10573 "(2)  の呼び出すことにより I<set> に含まれるシグナルをブロックし (そのためにこ"
10574 "れらのシグナルがこの後に続く B<sigwaitinfo>()  や B<sigtimedwait>()  の呼び出"
10575 "しの間に処理待ちになった場合には、デフォルトの動作は行われず)、 これらのシグ"
10576 "ナルに対するハンドラは設定しない。 マルチスレッドプログラムでは、 "
10577 "B<sigwaitinfo>()  や B<sigtimedwait>() を呼び出したスレッド以外のスレッドで、"
10578 "そのシグナルがデフォルトの動作に基いて処理されないように、全てのスレッドで該"
10579 "当シグナルをブロックすべきである。"
10580
10581 #. type: Plain text
10582 #: build/C/man2/sigwaitinfo.2:158
10583 msgid ""
10584 "The set of signals that is pending for a given thread is the union of the "
10585 "set of signals that is pending specifically for that thread and the set of "
10586 "signals that is pending for the process as a whole (see B<signal>(7))."
10587 msgstr ""
10588 "指定されたスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体宛ての"
10589 "処理待ちのシグナル集合と、プロセス全体宛ての 処理待ちのシグナル集合をあわせた"
10590 "ものである (B<signal>(7)  参照)。"
10591
10592 #. type: Plain text
10593 #: build/C/man2/sigwaitinfo.2:164
10594 msgid "Attempts to wait for B<SIGKILL> and B<SIGSTOP> are silently ignored."
10595 msgstr "B<SIGKILL> と B<SIGSTOP> を待とうとした場合、黙って無視される。"
10596
10597 #. type: Plain text
10598 #: build/C/man2/sigwaitinfo.2:173
10599 msgid ""
10600 "If multiple threads of a process are blocked waiting for the same signal(s) "
10601 "in B<sigwaitinfo>()  or B<sigtimedwait>(), then exactly one of the threads "
10602 "will actually receive the signal if it becomes pending for the process as a "
10603 "whole; which of the threads receives the signal is indeterminate."
10604 msgstr ""
10605 "一つのプロセス内の複数のスレッドが B<sigwaitinfo>()  や B<sigtimedwait>()  で"
10606 "同じシグナルを待って停止した場合、 プロセス全体宛てのシグナルが処理待ちになる"
10607 "と、複数のスレッドのうち一つだけが 実際にそのシグナルを受信することになる。 "
10608 "どのスレッドがシグナルを受信するかは決まっていない。"
10609
10610 #. type: Plain text
10611 #: build/C/man2/sigwaitinfo.2:182
10612 msgid ""
10613 "POSIX leaves the meaning of a NULL value for the I<timeout> argument of "
10614 "B<sigtimedwait>()  unspecified, permitting the possibility that this has the "
10615 "same meaning as a call to B<sigwaitinfo>(), and indeed this is what is done "
10616 "on Linux."
10617 msgstr ""
10618 "POSIX では B<sigtimedwait>()  の引き数 I<timeout> の値を NULL にした場合の意"
10619 "味を未定義としている。 B<sigwaitinfo>()  を呼び出したのと同じ意味としてもよい"
10620 "ことになっており、 実際 Linux ではこのように動作する。"
10621
10622 #. type: Plain text
10623 #: build/C/man2/sigwaitinfo.2:187
10624 msgid ""
10625 "On Linux, B<sigwaitinfo>()  is a library function implemented on top of "
10626 "B<sigtimedwait>()."
10627 msgstr ""
10628 "Linux では、 B<sigwaitinfo>()  は B<sigtimedwait>()  を用いて実装されたライブ"
10629 "ラリ関数である。"
10630
10631 #. type: Plain text
10632 #: build/C/man2/sigwaitinfo.2:199
10633 msgid ""
10634 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
10635 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), B<signal>"
10636 "(7), B<time>(7)"
10637 msgstr ""
10638 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
10639 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), B<signal>"
10640 "(7), B<time>(7)"
10641
10642 #. type: TH
10643 #: build/C/man3/sysv_signal.3:25
10644 #, no-wrap
10645 msgid "SYSV_SIGNAL"
10646 msgstr "SYSV_SIGNAL"
10647
10648 #. type: TH
10649 #: build/C/man3/sysv_signal.3:25
10650 #, no-wrap
10651 msgid "2007-05-04"
10652 msgstr "2007-05-04"
10653
10654 #. type: Plain text
10655 #: build/C/man3/sysv_signal.3:28
10656 msgid "sysv_signal - signal handling with System V semantics"
10657 msgstr "sysv_signal - System V 方式のシグナル処理"
10658
10659 #. type: Plain text
10660 #: build/C/man3/sysv_signal.3:30
10661 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
10662 msgstr "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */"
10663
10664 #. type: Plain text
10665 #: build/C/man3/sysv_signal.3:36
10666 msgid ""
10667 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
10668 msgstr ""
10669 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
10670
10671 #. type: Plain text
10672 #: build/C/man3/sysv_signal.3:41
10673 msgid ""
10674 "The B<sysv_signal>()  function takes the same arguments, and performs the "
10675 "same task, as B<signal>(2)."
10676 msgstr ""
10677 "B<sysv_signal>()  関数は B<signal>(2)  と同じ引き数をとり、同じ処理を実行す"
10678 "る。"
10679
10680 #. type: Plain text
10681 #: build/C/man3/sysv_signal.3:51
10682 msgid ""
10683 "However B<sysv_signal>()  provides the System V unreliable signal semantics, "
10684 "that is: a) the disposition of the signal is reset to the default when the "
10685 "handler is invoked; b) delivery of further instances of the signal is not "
10686 "blocked while the signal handler is executing; and c) if the handler "
10687 "interrupts (certain) blocking system calls, then the system call is not "
10688 "automatically restarted."
10689 msgstr ""
10690 "しかしながら、 B<sysv_signal>()  は System V の信頼性に欠けるシグナル処理方式"
10691 "を提供している。 信頼性に欠けるシグナル処理方式は以下の特徴を持つ。 a) ハンド"
10692 "ラが起動されると、シグナルの処理方法 (disposition) が デフォルトにリセットさ"
10693 "れる、 b) シグナルハンドラの実行中は、それ以降に発生した同じシグナルの配送が "
10694 "ブロックされない、 c) ハンドラが停止中の (blocking している) システムコールを"
10695 "中断した場合、 自動的に再開されないシステムコールがある。"
10696
10697 #. type: Plain text
10698 #: build/C/man3/sysv_signal.3:57
10699 msgid ""
10700 "The B<sysv_signal>()  function returns the previous value of the signal "
10701 "handler, or B<SIG_ERR> on error."
10702 msgstr ""
10703 "B<sysv_signal>()  関数はシグナルハンドラの直前の値を返す。 エラーの場合、 "
10704 "B<SIG_ERR> を返す。"
10705
10706 #. type: Plain text
10707 #: build/C/man3/sysv_signal.3:62
10708 msgid "This function is nonstandard."
10709 msgstr "この関数は非標準である。"
10710
10711 #. type: Plain text
10712 #: build/C/man3/sysv_signal.3:68
10713 msgid ""
10714 "Use of B<sysv_signal>()  should be avoided; use B<sigaction>(2)  instead."
10715 msgstr ""
10716 "B<sysv_signal>()  の使用は避けるべきである。代わりに B<sigaction>(2)  を使う"
10717 "こと。"
10718
10719 #. type: Plain text
10720 #: build/C/man3/sysv_signal.3:79
10721 msgid ""
10722 "On older Linux systems, B<sysv_signal>()  and B<signal>(2)  were "
10723 "equivalent.  But on newer systems, B<signal>(2)  provides reliable signal "
10724 "semantics; see B<signal>(2)  for details."
10725 msgstr ""
10726 "以前の Linux システムでは、 B<sysv_signal>()  と B<signal>(2)  は等価であっ"
10727 "た。しかし、新しめのシステムでは、 B<signal>(2)  は信頼性のあるシグナル処理方"
10728 "式を提供している。 詳細は B<signal>(2)  を参照。"
10729
10730 #. type: Plain text
10731 #: build/C/man3/sysv_signal.3:92
10732 msgid "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
10733 msgstr "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
10734
10735 #. type: TH
10736 #: build/C/man2/timer_create.2:31
10737 #, no-wrap
10738 msgid "TIMER_CREATE"
10739 msgstr "TIMER_CREATE"
10740
10741 #. type: TH
10742 #: build/C/man2/timer_create.2:31
10743 #, no-wrap
10744 msgid "2010-09-27"
10745 msgstr "2010-09-27"
10746
10747 #. type: Plain text
10748 #: build/C/man2/timer_create.2:34
10749 msgid "timer_create - create a POSIX per-process timer"
10750 msgstr ""
10751
10752 #. type: Plain text
10753 #: build/C/man2/timer_create.2:38
10754 #, no-wrap
10755 msgid ""
10756 "B<#include E<lt>signal.hE<gt>>\n"
10757 "B<#include E<lt>time.hE<gt>>\n"
10758 msgstr ""
10759 "B<#include E<lt>signal.hE<gt>>\n"
10760 "B<#include E<lt>time.hE<gt>>\n"
10761
10762 #. type: Plain text
10763 #: build/C/man2/timer_create.2:41
10764 #, no-wrap
10765 msgid ""
10766 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
10767 "B<                 timer_t *>I<timerid>B<);>\n"
10768 msgstr ""
10769 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
10770 "B<                 timer_t *>I<timerid>B<);>\n"
10771
10772 #. type: Plain text
10773 #: build/C/man2/timer_create.2:44 build/C/man2/timer_delete.2:37
10774 #: build/C/man2/timer_getoverrun.2:37 build/C/man2/timer_settime.2:41
10775 msgid "Link with I<-lrt>."
10776 msgstr ""
10777
10778 #. type: Plain text
10779 #: build/C/man2/timer_create.2:52
10780 msgid "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10781 msgstr "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10782
10783 #. type: Plain text
10784 #: build/C/man2/timer_create.2:60
10785 msgid ""
10786 "B<timer_create>()  creates a new per-process interval timer.  The ID of the "
10787 "new timer is returned in the buffer pointed to by I<timerid>, which must be "
10788 "a non-NULL pointer.  This ID is unique within the process, until the timer "
10789 "is deleted.  The new timer is initially disarmed."
10790 msgstr ""
10791
10792 #. type: Plain text
10793 #: build/C/man2/timer_create.2:65
10794 msgid ""
10795 "The I<clockid> argument specifies the clock that the new timer uses to "
10796 "measure time.  It can be specified as one of the following values:"
10797 msgstr ""
10798
10799 #. type: TP
10800 #: build/C/man2/timer_create.2:65
10801 #, no-wrap
10802 msgid "B<CLOCK_REALTIME>"
10803 msgstr "B<CLOCK_REALTIME>"
10804
10805 #. type: Plain text
10806 #: build/C/man2/timer_create.2:68
10807 msgid "A settable system-wide real-time clock."
10808 msgstr ""
10809
10810 #. type: TP
10811 #: build/C/man2/timer_create.2:68
10812 #, no-wrap
10813 msgid "B<CLOCK_MONOTONIC>"
10814 msgstr "B<CLOCK_MONOTONIC>"
10815
10816 #.  Note: the CLOCK_MONOTONIC_RAW clock added for clock_gettime()
10817 #.  in 2.6.28 is not supported for POSIX timers -- mtk, Feb 2009
10818 #. type: Plain text
10819 #: build/C/man2/timer_create.2:75
10820 msgid ""
10821 "A nonsettable monotonically increasing clock that measures time from some "
10822 "unspecified point in the past that does not change after system startup."
10823 msgstr ""
10824
10825 #. type: TP
10826 #: build/C/man2/timer_create.2:75
10827 #, no-wrap
10828 msgid "B<CLOCK_PROCESS_CPUTIME_ID> (since Linux 2.6.12)"
10829 msgstr ""
10830
10831 #. type: Plain text
10832 #: build/C/man2/timer_create.2:79
10833 msgid ""
10834 "A clock that measures (user and system) CPU time consumed by (all of the "
10835 "threads in) the calling process."
10836 msgstr ""
10837
10838 #. type: TP
10839 #: build/C/man2/timer_create.2:79
10840 #, no-wrap
10841 msgid "B<CLOCK_THREAD_CPUTIME_ID> (since Linux 2.6.12)"
10842 msgstr ""
10843
10844 #.  The CLOCK_MONOTONIC_RAW that was added in 2.6.28 can't be used
10845 #.  to create a timer -- mtk, Feb 2009
10846 #. type: Plain text
10847 #: build/C/man2/timer_create.2:85
10848 msgid ""
10849 "A clock that measures (user and system) CPU time consumed by the calling "
10850 "thread."
10851 msgstr ""
10852
10853 #. type: Plain text
10854 #: build/C/man2/timer_create.2:94
10855 msgid ""
10856 "As well as the above values, I<clockid> can be specified as the I<clockid> "
10857 "returned by a call to B<clock_getcpuclockid>(3)  or B<pthread_getcpuclockid>"
10858 "(3)."
10859 msgstr ""
10860
10861 #. type: Plain text
10862 #: build/C/man2/timer_create.2:103
10863 msgid ""
10864 "The I<sevp> argument points to a I<sigevent> structure that specifies how "
10865 "the caller should be notified when the timer expires.  For the definition "
10866 "and general details of this structure, see B<sigevent>(7)."
10867 msgstr ""
10868
10869 #. type: Plain text
10870 #: build/C/man2/timer_create.2:107
10871 msgid "The I<sevp.sigev_notify> field can have the following values:"
10872 msgstr ""
10873
10874 #. type: Plain text
10875 #: build/C/man2/timer_create.2:112
10876 msgid ""
10877 "Don't asynchronously notify when the timer expires.  Progress of the timer "
10878 "can be monitored using B<timer_gettime>(2)."
10879 msgstr ""
10880
10881 #. type: Plain text
10882 #: build/C/man2/timer_create.2:130
10883 msgid ""
10884 "Upon timer expiration, generate the signal I<sigev_signo> for the process.  "
10885 "See B<sigevent>(7)  for general details.  The I<si_code> field of the "
10886 "I<siginfo_t> structure will be set to B<SI_TIMER>.  At any point in time, at "
10887 "most one signal is queued to the process for a given timer; see "
10888 "B<timer_getoverrun>(2)  for more details."
10889 msgstr ""
10890
10891 #. type: Plain text
10892 #: build/C/man2/timer_create.2:138
10893 msgid ""
10894 "Upon timer expiration, invoke I<sigev_notify_function> as if it were the "
10895 "start function of a new thread.  See B<sigevent>(7)  for details."
10896 msgstr ""
10897
10898 #. type: Plain text
10899 #: build/C/man2/timer_create.2:152
10900 msgid ""
10901 "As for B<SIGEV_SIGNAL>, but the signal is targeted at the thread whose ID is "
10902 "given in I<sigev_notify_thread_id>, which must be a thread in the same "
10903 "process as the caller.  The I<sigev_notify_thread_id> field specifies a "
10904 "kernel thread ID, that is, the value returned by B<clone>(2)  or B<gettid>"
10905 "(2).  This flag is intended only for use by threading libraries."
10906 msgstr ""
10907
10908 #. type: Plain text
10909 #: build/C/man2/timer_create.2:167
10910 msgid ""
10911 "Specifying I<sevp> as NULL is equivalent to specifying a pointer to a "
10912 "I<sigevent> structure in which I<sigev_notify> is B<SIGEV_SIGNAL>, "
10913 "I<sigev_signo> is B<SIGALRM>, and I<sigev_value.sival_int> is the timer ID."
10914 msgstr ""
10915
10916 #. type: Plain text
10917 #: build/C/man2/timer_create.2:175
10918 msgid ""
10919 "On success, B<timer_create>()  returns 0, and the ID of the new timer is "
10920 "placed in I<*timerid>.  On failure, -1 is returned, and I<errno> is set to "
10921 "indicate the error."
10922 msgstr ""
10923
10924 #. type: Plain text
10925 #: build/C/man2/timer_create.2:179
10926 msgid "Temporary error during kernel allocation of timer structures."
10927 msgstr ""
10928
10929 #. type: Plain text
10930 #: build/C/man2/timer_create.2:187
10931 msgid ""
10932 "Clock ID, I<sigev_notify>, I<sigev_signo>, or I<sigev_notify_thread_id> is "
10933 "invalid."
10934 msgstr ""
10935
10936 #.  glibc layer: malloc()
10937 #. type: Plain text
10938 #: build/C/man2/timer_create.2:191
10939 msgid "Could not allocate memory."
10940 msgstr ""
10941
10942 #. type: Plain text
10943 #: build/C/man2/timer_create.2:193 build/C/man2/timer_delete.2:67
10944 #: build/C/man2/timer_getoverrun.2:97
10945 msgid "This system call is available since Linux 2.6."
10946 msgstr ""
10947
10948 #. type: Plain text
10949 #: build/C/man2/timer_create.2:198
10950 msgid "A program may create multiple interval timers using B<timer_create>()."
10951 msgstr ""
10952
10953 #. type: Plain text
10954 #: build/C/man2/timer_create.2:203
10955 msgid ""
10956 "Timers are not inherited by the child of a B<fork>(2), and are disarmed and "
10957 "deleted during an B<execve>(2)."
10958 msgstr ""
10959
10960 #. type: Plain text
10961 #: build/C/man2/timer_create.2:211
10962 msgid ""
10963 "The kernel preallocates a \"queued real-time signal\" for each timer created "
10964 "using B<timer_create>().  Consequently, the number of timers is limited by "
10965 "the B<RLIMIT_SIGPENDING> resource limit (see B<setrlimit>(2))."
10966 msgstr ""
10967
10968 #. type: Plain text
10969 #: build/C/man2/timer_create.2:216
10970 msgid ""
10971 "The timers created by B<timer_create>()  are commonly known as \"POSIX "
10972 "(interval) timers\".  The POSIX timers API consists of the following "
10973 "interfaces:"
10974 msgstr ""
10975
10976 #. type: Plain text
10977 #: build/C/man2/timer_create.2:219
10978 msgid "B<timer_create>(): Create a timer."
10979 msgstr ""
10980
10981 #. type: Plain text
10982 #: build/C/man2/timer_create.2:222
10983 msgid "B<timer_settime>(2): Arm (start) or disarm (stop) a timer."
10984 msgstr ""
10985
10986 #. type: Plain text
10987 #: build/C/man2/timer_create.2:226
10988 msgid ""
10989 "B<timer_gettime>(2): Fetch the time remaining until the next expiration of a "
10990 "timer, along with the interval setting of the timer."
10991 msgstr ""
10992
10993 #. type: Plain text
10994 #: build/C/man2/timer_create.2:229
10995 msgid ""
10996 "B<timer_getoverrun>(2): Return the overrun count for the last timer "
10997 "expiration."
10998 msgstr ""
10999
11000 #. type: Plain text
11001 #: build/C/man2/timer_create.2:232
11002 msgid "B<timer_delete>(2): Disarm and delete a timer."
11003 msgstr ""
11004
11005 #. type: Plain text
11006 #: build/C/man2/timer_create.2:235
11007 msgid ""
11008 "Part of the implementation of the POSIX timers API is provided by glibc.  In "
11009 "particular:"
11010 msgstr ""
11011
11012 #. type: Plain text
11013 #: build/C/man2/timer_create.2:239
11014 msgid ""
11015 "The functionality for B<SIGEV_THREAD> is implemented within glibc, rather "
11016 "than the kernel."
11017 msgstr ""
11018
11019 #.  See the glibc source file kernel-posix-timers.h for the structure
11020 #.  that glibc uses to map user-space timer IDs to kernel timer IDs
11021 #.  The kernel-level timer ID is exposed via siginfo.si_tid.
11022 #. type: Plain text
11023 #: build/C/man2/timer_create.2:245
11024 msgid ""
11025 "The timer IDs presented at user level are maintained by glibc, which maps "
11026 "these IDs to the timer IDs employed by the kernel."
11027 msgstr ""
11028
11029 #. type: Plain text
11030 #: build/C/man2/timer_create.2:253
11031 msgid ""
11032 "The POSIX timers system calls first appeared in Linux 2.6.  Prior to this, "
11033 "glibc provided an incomplete user-space implementation (B<CLOCK_REALTIME> "
11034 "timers only) using POSIX threads, and current glibc falls back to this "
11035 "implementation on systems running pre-2.6 Linux kernels."
11036 msgstr ""
11037
11038 #. type: Plain text
11039 #: build/C/man2/timer_create.2:265
11040 msgid ""
11041 "The program below takes two arguments: a sleep period in seconds, and a "
11042 "timer frequency in nanoseconds.  The program establishes a handler for the "
11043 "signal it uses for the timer, blocks that signal, creates and arms a timer "
11044 "that expires with the given frequency, sleeps for the specified number of "
11045 "seconds, and then unblocks the timer signal.  Assuming that the timer "
11046 "expired at least once while the program slept, the signal handler will be "
11047 "invoked, and the handler displays some information about the timer "
11048 "notification.  The program terminates after one invocation of the signal "
11049 "handler."
11050 msgstr ""
11051
11052 #. type: Plain text
11053 #: build/C/man2/timer_create.2:270
11054 msgid ""
11055 "In the following example run, the program sleeps for 1 second, after "
11056 "creating a timer that has a frequency of 100 nanoseconds.  By the time the "
11057 "signal is unblocked and delivered, there have been around ten million "
11058 "overruns."
11059 msgstr ""
11060
11061 #. type: Plain text
11062 #: build/C/man2/timer_create.2:282
11063 #, no-wrap
11064 msgid ""
11065 "$ B<./a.out 1 100>\n"
11066 "Establishing handler for signal 34\n"
11067 "Blocking signal 34\n"
11068 "timer ID is 0x804c008\n"
11069 "Sleeping for 1 seconds\n"
11070 "Unblocking signal 34\n"
11071 "Caught signal 34\n"
11072 "    sival_ptr = 0xbfb174f4;     *sival_ptr = 0x804c008\n"
11073 "    overrun count = 10004886\n"
11074 msgstr ""
11075
11076 #. type: Plain text
11077 #: build/C/man2/timer_create.2:292
11078 #, no-wrap
11079 msgid ""
11080 "#include E<lt>stdlib.hE<gt>\n"
11081 "#include E<lt>unistd.hE<gt>\n"
11082 "#include E<lt>stdio.hE<gt>\n"
11083 "#include E<lt>signal.hE<gt>\n"
11084 "#include E<lt>time.hE<gt>\n"
11085 msgstr ""
11086 "#include E<lt>stdlib.hE<gt>\n"
11087 "#include E<lt>unistd.hE<gt>\n"
11088 "#include E<lt>stdio.hE<gt>\n"
11089 "#include E<lt>signal.hE<gt>\n"
11090 "#include E<lt>time.hE<gt>\n"
11091
11092 #. type: Plain text
11093 #: build/C/man2/timer_create.2:295
11094 #, no-wrap
11095 msgid ""
11096 "#define CLOCKID CLOCK_REALTIME\n"
11097 "#define SIG SIGRTMIN\n"
11098 msgstr ""
11099 "#define CLOCKID CLOCK_REALTIME\n"
11100 "#define SIG SIGRTMIN\n"
11101
11102 #. type: Plain text
11103 #: build/C/man2/timer_create.2:298
11104 #, no-wrap
11105 msgid ""
11106 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
11107 "                        } while (0)\n"
11108 msgstr ""
11109 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
11110 "                        } while (0)\n"
11111
11112 #. type: Plain text
11113 #: build/C/man2/timer_create.2:304
11114 #, no-wrap
11115 msgid ""
11116 "static void\n"
11117 "print_siginfo(siginfo_t *si)\n"
11118 "{\n"
11119 "    timer_t *tidp;\n"
11120 "    int or;\n"
11121 msgstr ""
11122 "static void\n"
11123 "print_siginfo(siginfo_t *si)\n"
11124 "{\n"
11125 "    timer_t *tidp;\n"
11126 "    int or;\n"
11127
11128 #. type: Plain text
11129 #: build/C/man2/timer_create.2:306
11130 #, no-wrap
11131 msgid "    tidp = si-E<gt>si_value.sival_ptr;\n"
11132 msgstr "    tidp = si-E<gt>si_value.sival_ptr;\n"
11133
11134 #. type: Plain text
11135 #: build/C/man2/timer_create.2:309
11136 #, no-wrap
11137 msgid ""
11138 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
11139 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
11140 msgstr ""
11141 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
11142 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
11143
11144 #. type: Plain text
11145 #: build/C/man2/timer_create.2:316
11146 #, no-wrap
11147 msgid ""
11148 "    or = timer_getoverrun(*tidp);\n"
11149 "    if (or == -1)\n"
11150 "        errExit(\"timer_getoverrun\");\n"
11151 "    else\n"
11152 "        printf(\"    overrun count = %d\\en\", or);\n"
11153 "}\n"
11154 msgstr ""
11155 "    or = timer_getoverrun(*tidp);\n"
11156 "    if (or == -1)\n"
11157 "        errExit(\"timer_getoverrun\");\n"
11158 "    else\n"
11159 "        printf(\"    overrun count = %d\\en\", or);\n"
11160 "}\n"
11161
11162 #. type: Plain text
11163 #: build/C/man2/timer_create.2:323
11164 #, no-wrap
11165 msgid ""
11166 "static void\n"
11167 "handler(int sig, siginfo_t *si, void *uc)\n"
11168 "{\n"
11169 "    /* Note: calling printf() from a signal handler is not\n"
11170 "       strictly correct, since printf() is not async-signal-safe;\n"
11171 "       see signal(7) */\n"
11172 msgstr ""
11173 "static void\n"
11174 "handler(int sig, siginfo_t *si, void *uc)\n"
11175 "{\n"
11176 "    /* Note: calling printf() from a signal handler is not\n"
11177 "       strictly correct, since printf() is not async-signal-safe;\n"
11178 "       see signal(7) */\n"
11179
11180 #. type: Plain text
11181 #: build/C/man2/timer_create.2:328
11182 #, no-wrap
11183 msgid ""
11184 "    printf(\"Caught signal %d\\en\", sig);\n"
11185 "    print_siginfo(si);\n"
11186 "    signal(sig, SIG_IGN);\n"
11187 "}\n"
11188 msgstr ""
11189 "    printf(\"Caught signal %d\\en\", sig);\n"
11190 "    print_siginfo(si);\n"
11191 "    signal(sig, SIG_IGN);\n"
11192 "}\n"
11193
11194 #. type: Plain text
11195 #: build/C/man2/timer_create.2:338
11196 #, no-wrap
11197 msgid ""
11198 "int\n"
11199 "main(int argc, char *argv[])\n"
11200 "{\n"
11201 "    timer_t timerid;\n"
11202 "    struct sigevent sev;\n"
11203 "    struct itimerspec its;\n"
11204 "    long long freq_nanosecs;\n"
11205 "    sigset_t mask;\n"
11206 "    struct sigaction sa;\n"
11207 msgstr ""
11208 "int\n"
11209 "main(int argc, char *argv[])\n"
11210 "{\n"
11211 "    timer_t timerid;\n"
11212 "    struct sigevent sev;\n"
11213 "    struct itimerspec its;\n"
11214 "    long long freq_nanosecs;\n"
11215 "    sigset_t mask;\n"
11216 "    struct sigaction sa;\n"
11217
11218 #. type: Plain text
11219 #: build/C/man2/timer_create.2:344
11220 #, no-wrap
11221 msgid ""
11222 "    if (argc != 3) {\n"
11223 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
11224 "                argv[0]);\n"
11225 "        exit(EXIT_FAILURE);\n"
11226 "    }\n"
11227 msgstr ""
11228 "    if (argc != 3) {\n"
11229 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
11230 "                argv[0]);\n"
11231 "        exit(EXIT_FAILURE);\n"
11232 "    }\n"
11233
11234 #. type: Plain text
11235 #: build/C/man2/timer_create.2:346
11236 #, no-wrap
11237 msgid "    /* Establish handler for timer signal */\n"
11238 msgstr "    /* Establish handler for timer signal */\n"
11239
11240 #. type: Plain text
11241 #: build/C/man2/timer_create.2:353
11242 #, no-wrap
11243 msgid ""
11244 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
11245 "    sa.sa_flags = SA_SIGINFO;\n"
11246 "    sa.sa_sigaction = handler;\n"
11247 "    sigemptyset(&sa.sa_mask);\n"
11248 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
11249 "        errExit(\"sigaction\");\n"
11250 msgstr ""
11251 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
11252 "    sa.sa_flags = SA_SIGINFO;\n"
11253 "    sa.sa_sigaction = handler;\n"
11254 "    sigemptyset(&sa.sa_mask);\n"
11255 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
11256 "        errExit(\"sigaction\");\n"
11257
11258 #. type: Plain text
11259 #: build/C/man2/timer_create.2:355
11260 #, no-wrap
11261 msgid "    /* Block timer signal temporarily */\n"
11262 msgstr "    /* Block timer signal temporarily */\n"
11263
11264 #. type: Plain text
11265 #: build/C/man2/timer_create.2:361
11266 #, no-wrap
11267 msgid ""
11268 "    printf(\"Blocking signal %d\\en\", SIG);\n"
11269 "    sigemptyset(&mask);\n"
11270 "    sigaddset(&mask, SIG);\n"
11271 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
11272 "        errExit(\"sigprocmask\");\n"
11273 msgstr ""
11274 "    printf(\"Blocking signal %d\\en\", SIG);\n"
11275 "    sigemptyset(&mask);\n"
11276 "    sigaddset(&mask, SIG);\n"
11277 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
11278 "        errExit(\"sigprocmask\");\n"
11279
11280 #. type: Plain text
11281 #: build/C/man2/timer_create.2:363
11282 #, no-wrap
11283 msgid "    /* Create the timer */\n"
11284 msgstr "    /* Create the timer */\n"
11285
11286 #. type: Plain text
11287 #: build/C/man2/timer_create.2:369
11288 #, no-wrap
11289 msgid ""
11290 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
11291 "    sev.sigev_signo = SIG;\n"
11292 "    sev.sigev_value.sival_ptr = &timerid;\n"
11293 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
11294 "        errExit(\"timer_create\");\n"
11295 msgstr ""
11296 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
11297 "    sev.sigev_signo = SIG;\n"
11298 "    sev.sigev_value.sival_ptr = &timerid;\n"
11299 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
11300 "        errExit(\"timer_create\");\n"
11301
11302 #. type: Plain text
11303 #: build/C/man2/timer_create.2:371
11304 #, no-wrap
11305 msgid "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
11306 msgstr "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
11307
11308 #. type: Plain text
11309 #: build/C/man2/timer_create.2:373
11310 #, no-wrap
11311 msgid "    /* Start the timer */\n"
11312 msgstr "    /* Start the timer */\n"
11313
11314 #. type: Plain text
11315 #: build/C/man2/timer_create.2:379
11316 #, no-wrap
11317 msgid ""
11318 "    freq_nanosecs = atoll(argv[2]);\n"
11319 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
11320 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
11321 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
11322 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
11323 msgstr ""
11324 "    freq_nanosecs = atoll(argv[2]);\n"
11325 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
11326 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
11327 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
11328 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
11329
11330 #. type: Plain text
11331 #: build/C/man2/timer_create.2:382
11332 #, no-wrap
11333 msgid ""
11334 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
11335 "         errExit(\"timer_settime\");\n"
11336 msgstr ""
11337 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
11338 "         errExit(\"timer_settime\");\n"
11339
11340 #. type: Plain text
11341 #: build/C/man2/timer_create.2:385
11342 #, no-wrap
11343 msgid ""
11344 "    /* Sleep for a while; meanwhile, the timer may expire\n"
11345 "       multiple times */\n"
11346 msgstr ""
11347 "    /* Sleep for a while; meanwhile, the timer may expire\n"
11348 "       multiple times */\n"
11349
11350 #. type: Plain text
11351 #: build/C/man2/timer_create.2:388
11352 #, no-wrap
11353 msgid ""
11354 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
11355 "    sleep(atoi(argv[1]));\n"
11356 msgstr ""
11357 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
11358 "    sleep(atoi(argv[1]));\n"
11359
11360 #. type: Plain text
11361 #: build/C/man2/timer_create.2:391
11362 #, no-wrap
11363 msgid ""
11364 "    /* Unlock the timer signal, so that timer notification\n"
11365 "       can be delivered */\n"
11366 msgstr ""
11367 "    /* Unlock the timer signal, so that timer notification\n"
11368 "       can be delivered */\n"
11369
11370 #. type: Plain text
11371 #: build/C/man2/timer_create.2:395
11372 #, no-wrap
11373 msgid ""
11374 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
11375 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
11376 "        errExit(\"sigprocmask\");\n"
11377 msgstr ""
11378 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
11379 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
11380 "        errExit(\"sigprocmask\");\n"
11381
11382 #. type: Plain text
11383 #: build/C/man2/timer_create.2:398 build/C/man2/timerfd_create.2:540
11384 #, no-wrap
11385 msgid ""
11386 "    exit(EXIT_SUCCESS);\n"
11387 "}\n"
11388 msgstr ""
11389 "    exit(EXIT_SUCCESS);\n"
11390 "}\n"
11391
11392 #. type: Plain text
11393 #: build/C/man2/timer_create.2:414
11394 msgid ""
11395 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), B<timer_getoverrun>"
11396 "(2), B<timer_settime>(2), B<timerfd_create>(2), B<clock_getcpuclockid>(3), "
11397 "B<pthread_getcpuclockid>(3), B<pthreads>(7), B<sigevent>(7), B<signal>(7), "
11398 "B<time>(7)"
11399 msgstr ""
11400 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), B<timer_getoverrun>"
11401 "(2), B<timer_settime>(2), B<timerfd_create>(2), B<clock_getcpuclockid>(3), "
11402 "B<pthread_getcpuclockid>(3), B<pthreads>(7), B<sigevent>(7), B<signal>(7), "
11403 "B<time>(7)"
11404
11405 #. type: TH
11406 #: build/C/man2/timer_delete.2:26
11407 #, no-wrap
11408 msgid "TIMER_DELETE"
11409 msgstr "TIMER_DELETE"
11410
11411 #. type: TH
11412 #: build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26
11413 #, no-wrap
11414 msgid "2009-02-20"
11415 msgstr "2009-02-20"
11416
11417 #. type: Plain text
11418 #: build/C/man2/timer_delete.2:29
11419 msgid "timer_delete - delete a POSIX per-process timer"
11420 msgstr ""
11421
11422 #. type: Plain text
11423 #: build/C/man2/timer_delete.2:32 build/C/man2/timer_getoverrun.2:32
11424 #: build/C/man2/timer_settime.2:33
11425 #, no-wrap
11426 msgid "B<#include E<lt>time.hE<gt>>\n"
11427 msgstr "B<#include E<lt>time.hE<gt>>\n"
11428
11429 #. type: Plain text
11430 #: build/C/man2/timer_delete.2:34
11431 #, no-wrap
11432 msgid "B<int timer_delete(timer_t >I<timerid>B<);>\n"
11433 msgstr "B<int timer_delete(timer_t >I<timerid>B<);>\n"
11434
11435 #. type: Plain text
11436 #: build/C/man2/timer_delete.2:45
11437 msgid "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11438 msgstr "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11439
11440 #. type: Plain text
11441 #: build/C/man2/timer_delete.2:53
11442 msgid ""
11443 "B<timer_delete>()  deletes the timer whose ID is given in I<timerid>.  If "
11444 "the timer was armed at the time of this call, it is disarmed before being "
11445 "deleted.  The treatment of any pending signal generated by the deleted timer "
11446 "is unspecified."
11447 msgstr ""
11448
11449 #. type: Plain text
11450 #: build/C/man2/timer_delete.2:60
11451 msgid ""
11452 "On success, B<timer_delete>()  returns 0.  On failure, -1 is returned, and "
11453 "I<errno> is set to indicate the error."
11454 msgstr ""
11455
11456 #. type: Plain text
11457 #: build/C/man2/timer_delete.2:65 build/C/man2/timer_getoverrun.2:95
11458 msgid "I<timerid> is not a valid timer ID."
11459 msgstr ""
11460
11461 #. type: Plain text
11462 #: build/C/man2/timer_delete.2:75
11463 msgid ""
11464 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
11465 "B<timer_settime>(2), B<time>(7)"
11466 msgstr ""
11467 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
11468 "B<timer_settime>(2), B<time>(7)"
11469
11470 #. type: TH
11471 #: build/C/man2/timer_getoverrun.2:26
11472 #, no-wrap
11473 msgid "TIMER_GETOVERRUN"
11474 msgstr "TIMER_GETOVERRUN"
11475
11476 #. type: Plain text
11477 #: build/C/man2/timer_getoverrun.2:29
11478 msgid "timer_getoverrun - get overrun count for a POSIX per-process timer"
11479 msgstr ""
11480
11481 #. type: Plain text
11482 #: build/C/man2/timer_getoverrun.2:34
11483 #, no-wrap
11484 msgid "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
11485 msgstr "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
11486
11487 #. type: Plain text
11488 #: build/C/man2/timer_getoverrun.2:45
11489 msgid "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11490 msgstr "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11491
11492 #. type: Plain text
11493 #: build/C/man2/timer_getoverrun.2:56
11494 msgid ""
11495 "B<timer_getoverrun>()  returns the \"overrun count\" for the timer referred "
11496 "to by I<timerid>.  An application can use the overrun count to accurately "
11497 "calculate the number of timer expirations that would have occurred over a "
11498 "given time interval.  Timer overruns can occur both when receiving "
11499 "expiration notifications via signals (B<SIGEV_SIGNAL>), and via threads "
11500 "(B<SIGEV_THREAD>)."
11501 msgstr ""
11502
11503 #. type: Plain text
11504 #: build/C/man2/timer_getoverrun.2:76
11505 msgid ""
11506 "When expiration notifications are delivered via a signal, overruns can occur "
11507 "as follows.  Regardless of whether or not a real-time signal is used for "
11508 "timer notifications, the system queues at most one signal per timer.  (This "
11509 "is the behavior specified by POSIX.1-2001.  The alternative, queuing one "
11510 "signal for each timer expiration, could easily result in overflowing the "
11511 "allowed limits for queued signals on the system.)  Because of system "
11512 "scheduling delays, or because the signal may be temporarily blocked, there "
11513 "can be a delay between the time when the notification signal is generated "
11514 "and the time when it is delivered (e.g., caught by a signal handler) or "
11515 "accepted (e.g., using B<sigwaitinfo>(2)).  In this interval, further timer "
11516 "expirations may occur.  The timer overrun count is the number of additional "
11517 "timer expirations that occurred between the time when the signal was "
11518 "generated and when it was delivered or accepted."
11519 msgstr ""
11520
11521 #. type: Plain text
11522 #: build/C/man2/timer_getoverrun.2:82
11523 msgid ""
11524 "Timer overruns can also occur when expiration notifications are delivered "
11525 "via invocation of a thread, since there may be an arbitrary delay between an "
11526 "expiration of the timer and the invocation of the notification thread, and "
11527 "in that delay interval, additional timer expirations may occur"
11528 msgstr ""
11529
11530 #. type: Plain text
11531 #: build/C/man2/timer_getoverrun.2:90
11532 msgid ""
11533 "On success, B<timer_getoverrun>()  returns the overrun count of the "
11534 "specified timer; this count may be 0 if no overruns have occurred.  On "
11535 "failure, -1 is returned, and I<errno> is set to indicate the error."
11536 msgstr ""
11537
11538 #. type: Plain text
11539 #: build/C/man2/timer_getoverrun.2:111
11540 msgid ""
11541 "When timer notifications are delivered via signals (B<SIGEV_SIGNAL>), on "
11542 "Linux it is also possible to obtain the overrun count via the I<si_overrun> "
11543 "field of the I<siginfo_t> structure (see B<sigaction>(2)).  This allows an "
11544 "application to avoid the overhead of making a system call to obtain the "
11545 "overrun count, but is a nonportable extension to POSIX.1-2001."
11546 msgstr ""
11547
11548 #.  FIXME . Austin bug filed, 11 Feb 09
11549 #. type: Plain text
11550 #: build/C/man2/timer_getoverrun.2:115
11551 msgid ""
11552 "POSIX.1-2001 discusses timer overruns only in the context of timer "
11553 "notifications using signals."
11554 msgstr ""
11555
11556 #.  Bug filed: http://bugzilla.kernel.org/show_bug.cgi?id=12665
11557 #.  http://thread.gmane.org/gmane.linux.kernel/113276/
11558 #. type: Plain text
11559 #: build/C/man2/timer_getoverrun.2:128
11560 msgid ""
11561 "POSIX.1-2001 specifies that if the timer overrun count is equal to or "
11562 "greater than an implementation-defined maximum, B<DELAYTIMER_MAX>, then "
11563 "B<timer_getoverrun>()  should return B<DELAYTIMER_MAX>.  However, Linux does "
11564 "not implement this feature: instead, if the timer overrun value exceeds the "
11565 "maximum representable integer, the counter cycles, starting once more from "
11566 "low values."
11567 msgstr ""
11568
11569 #. type: Plain text
11570 #: build/C/man2/timer_getoverrun.2:131 build/C/man2/timer_settime.2:212
11571 msgid "See B<timer_create>(2)."
11572 msgstr ""
11573
11574 #. type: Plain text
11575 #: build/C/man2/timer_getoverrun.2:141
11576 msgid ""
11577 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
11578 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
11579 "B<time>(7)"
11580 msgstr ""
11581 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
11582 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
11583 "B<time>(7)"
11584
11585 #. type: TH
11586 #: build/C/man2/timer_settime.2:26
11587 #, no-wrap
11588 msgid "TIMER_SETTIME"
11589 msgstr "TIMER_SETTIME"
11590
11591 #. type: TH
11592 #: build/C/man2/timer_settime.2:26
11593 #, no-wrap
11594 msgid "2012-10-15"
11595 msgstr "2012-10-15"
11596
11597 #. type: Plain text
11598 #: build/C/man2/timer_settime.2:30
11599 msgid ""
11600 "timer_settime, timer_gettime - arm/disarm and fetch state of POSIX per-"
11601 "process timer"
11602 msgstr ""
11603
11604 #. type: Plain text
11605 #: build/C/man2/timer_settime.2:38
11606 #, no-wrap
11607 msgid ""
11608 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
11609 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
11610 "B<                  struct itimerspec * >I<old_value>B<);>\n"
11611 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
11612 msgstr ""
11613 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
11614 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
11615 "B<                  struct itimerspec * >I<old_value>B<);>\n"
11616 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
11617
11618 #. type: Plain text
11619 #: build/C/man2/timer_settime.2:50
11620 msgid ""
11621 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11622 msgstr ""
11623 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11624
11625 #. type: Plain text
11626 #: build/C/man2/timer_settime.2:63
11627 msgid ""
11628 "B<timer_settime>()  arms or disarms the timer identified by I<timerid>.  The "
11629 "I<new_value> argument is pointer to an I<itimerspec> structure that "
11630 "specifies the new initial value and the new interval for the timer.  The "
11631 "I<itimerspec> structure is defined as follows:"
11632 msgstr ""
11633
11634 #. type: Plain text
11635 #: build/C/man2/timer_settime.2:70 build/C/man2/timerfd_create.2:128
11636 #, no-wrap
11637 msgid ""
11638 "struct timespec {\n"
11639 "    time_t tv_sec;                /* Seconds */\n"
11640 "    long   tv_nsec;               /* Nanoseconds */\n"
11641 "};\n"
11642 msgstr ""
11643 "struct timespec {\n"
11644 "    time_t tv_sec;                /* Seconds */\n"
11645 "    long   tv_nsec;               /* Nanoseconds */\n"
11646 "};\n"
11647
11648 #. type: Plain text
11649 #: build/C/man2/timer_settime.2:75
11650 #, no-wrap
11651 msgid ""
11652 "struct itimerspec {\n"
11653 "    struct timespec it_interval;  /* Timer interval */\n"
11654 "    struct timespec it_value;     /* Initial expiration */\n"
11655 "};\n"
11656 msgstr ""
11657 "struct itimerspec {\n"
11658 "    struct timespec it_interval;  /* Timer interval */\n"
11659 "    struct timespec it_value;     /* Initial expiration */\n"
11660 "};\n"
11661
11662 #. type: Plain text
11663 #: build/C/man2/timer_settime.2:87
11664 msgid ""
11665 "Each of the substructures of the I<itimerspec> structure is a I<timespec> "
11666 "structure that allows a time value to be specified in seconds and "
11667 "nanoseconds.  These time values are measured according to the clock that was "
11668 "specified when the timer was created by B<timer_create>(2)"
11669 msgstr ""
11670
11671 #. type: Plain text
11672 #: build/C/man2/timer_settime.2:101
11673 msgid ""
11674 "If I<new_value-E<gt>it_value> specifies a nonzero value (i.e., either "
11675 "subfield is nonzero), then B<timer_settime>()  arms (starts) the timer, "
11676 "setting it to initially expire at the given time.  (If the timer was already "
11677 "armed, then the previous settings are overwritten.)  If I<new_value-"
11678 "E<gt>it_value> specifies a zero value (i.e., both subfields are zero), then "
11679 "the timer is disarmed."
11680 msgstr ""
11681
11682 #. type: Plain text
11683 #: build/C/man2/timer_settime.2:113
11684 msgid ""
11685 "The I<new_value-E<gt>it_interval> field specifies the period of the timer, "
11686 "in seconds and nanoseconds.  If this field is nonzero, then each time that "
11687 "an armed timer expires, the timer is reloaded from the value specified in "
11688 "I<new_value-E<gt>it_interval>.  If I<new_value-E<gt>it_interval> specifies a "
11689 "zero value then the timer expires just once, at the time specified by "
11690 "I<it_value>."
11691 msgstr ""
11692
11693 #.  By experiment: the overrun count is set correctly, for CLOCK_REALTIME.
11694 #. type: Plain text
11695 #: build/C/man2/timer_settime.2:134
11696 msgid ""
11697 "By default, the initial expiration time specified in I<new_value-"
11698 "E<gt>it_value> is interpreted relative to the current time on the timer's "
11699 "clock at the time of the call.  This can be modified by specifying "
11700 "B<TIMER_ABSTIME> in I<flags>, in which case I<new_value-E<gt>it_value> is "
11701 "interpreted as an absolute value as measured on the timer's clock; that is, "
11702 "the timer will expire when the clock value reaches the value specified by "
11703 "I<new_value-E<gt>it_value>.  If the specified absolute time has already "
11704 "passed, then the timer expires immediately, and the overrun count (see "
11705 "B<timer_getoverrun>(2))  will be set correctly."
11706 msgstr ""
11707
11708 #.  Similar remarks might apply with respect to process and thread CPU time
11709 #.  clocks, but these clocks are not currently (2.6.28) settable on Linux.
11710 #. type: Plain text
11711 #: build/C/man2/timer_settime.2:144
11712 msgid ""
11713 "If the value of the B<CLOCK_REALTIME> clock is adjusted while an absolute "
11714 "timer based on that clock is armed, then the expiration of the timer will be "
11715 "appropriately adjusted.  Adjustments to the B<CLOCK_REALTIME> clock have no "
11716 "effect on relative timers based on that clock."
11717 msgstr ""
11718
11719 #. type: Plain text
11720 #: build/C/man2/timer_settime.2:153
11721 msgid ""
11722 "If I<old_value> is not NULL, then it points to a buffer that is used to "
11723 "return the previous interval of the timer (in I<old_value-"
11724 "E<gt>it_interval>)  and the amount of time until the timer would previously "
11725 "have next expired (in I<old_value-E<gt>it_value>)."
11726 msgstr ""
11727
11728 #. type: Plain text
11729 #: build/C/man2/timer_settime.2:173
11730 msgid ""
11731 "B<timer_gettime>()  returns the time until next expiration, and the "
11732 "interval, for the timer specified by I<timerid>, in the buffer pointed to by "
11733 "I<curr_value>.  The time remaining until the next timer expiration is "
11734 "returned in I<curr_value-E<gt>it_value>; this is always a relative value, "
11735 "regardless of whether the B<TIMER_ABSTIME> flag was used when arming the "
11736 "timer.  If the value returned in I<curr_value-E<gt>it_value> is zero, then "
11737 "the timer is currently disarmed.  The timer interval is returned in "
11738 "I<curr_value-E<gt>it_interval>.  If the value returned in I<curr_value-"
11739 "E<gt>it_interval> is zero, then this is a \"one-shot\" timer."
11740 msgstr ""
11741
11742 #. type: Plain text
11743 #: build/C/man2/timer_settime.2:182
11744 msgid ""
11745 "On success, B<timer_settime>()  and B<timer_gettime>()  return 0.  On error, "
11746 "-1 is returned, and I<errno> is set to indicate the error."
11747 msgstr ""
11748
11749 #. type: Plain text
11750 #: build/C/man2/timer_settime.2:184
11751 msgid "These functions may fail with the following errors:"
11752 msgstr ""
11753
11754 #. type: Plain text
11755 #: build/C/man2/timer_settime.2:191
11756 msgid "I<new_value>, I<old_value>, or I<curr_value> is not a valid pointer."
11757 msgstr ""
11758
11759 #.  FIXME . eventually: invalid value in flags
11760 #. type: Plain text
11761 #: build/C/man2/timer_settime.2:196
11762 msgid "I<timerid> is invalid."
11763 msgstr ""
11764
11765 #. type: Plain text
11766 #: build/C/man2/timer_settime.2:199
11767 msgid "B<timer_settime>()  may fail with the following errors:"
11768 msgstr ""
11769
11770 #. type: Plain text
11771 #: build/C/man2/timer_settime.2:205
11772 msgid ""
11773 "I<new_value.it_value> is negative; or I<new_value.it_value.tv_nsec> is "
11774 "negative or greater than 999,999,999."
11775 msgstr ""
11776
11777 #. type: Plain text
11778 #: build/C/man2/timer_settime.2:207
11779 msgid "These system calls are available since Linux 2.6."
11780 msgstr ""
11781
11782 #. type: Plain text
11783 #: build/C/man2/timer_settime.2:216
11784 msgid "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
11785 msgstr "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
11786
11787 #. type: TH
11788 #: build/C/man2/timerfd_create.2:21
11789 #, no-wrap
11790 msgid "TIMERFD_CREATE"
11791 msgstr "TIMERFD_CREATE"
11792
11793 #. type: TH
11794 #: build/C/man2/timerfd_create.2:21
11795 #, no-wrap
11796 msgid "2011-09-14"
11797 msgstr "2011-09-14"
11798
11799 #. type: Plain text
11800 #: build/C/man2/timerfd_create.2:25
11801 msgid ""
11802 "timerfd_create, timerfd_settime, timerfd_gettime - timers that notify via "
11803 "file descriptors"
11804 msgstr ""
11805 "timerfd_create, timerfd_settime, timerfd_gettime - ファイルディスクリプタ経由"
11806 "で通知するタイマー"
11807
11808 #. type: Plain text
11809 #: build/C/man2/timerfd_create.2:28
11810 #, no-wrap
11811 msgid "B<#include E<lt>sys/timerfd.hE<gt>>\n"
11812 msgstr "B<#include E<lt>sys/timerfd.hE<gt>>\n"
11813
11814 #. type: Plain text
11815 #: build/C/man2/timerfd_create.2:30
11816 #, no-wrap
11817 msgid "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
11818 msgstr "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
11819
11820 #. type: Plain text
11821 #: build/C/man2/timerfd_create.2:34
11822 #, no-wrap
11823 msgid ""
11824 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
11825 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
11826 "B<                    struct itimerspec *>I<old_value>B<);>\n"
11827 msgstr ""
11828 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
11829 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
11830 "B<                    struct itimerspec *>I<old_value>B<);>\n"
11831
11832 #. type: Plain text
11833 #: build/C/man2/timerfd_create.2:36
11834 #, no-wrap
11835 msgid "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
11836 msgstr "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
11837
11838 #. type: Plain text
11839 #: build/C/man2/timerfd_create.2:49
11840 msgid ""
11841 "These system calls create and operate on a timer that delivers timer "
11842 "expiration notifications via a file descriptor.  They provide an alternative "
11843 "to the use of B<setitimer>(2)  or B<timer_create>(2), with the advantage "
11844 "that the file descriptor may be monitored by B<select>(2), B<poll>(2), and "
11845 "B<epoll>(7)."
11846 msgstr ""
11847 "これらのシステムコールは、満了通知をファイルディスクリプタ経由で配送する タイ"
11848 "マーの生成と操作を行う。 これらは、 B<setitimer>(2)  や B<timer_create>(2)  "
11849 "を用いる方法の代わりとなるものであり、このファイルディスクリプタを B<select>"
11850 "(2), B<poll>(2), B<epoll>(7)  で監視できるという利点がある。"
11851
11852 #. type: Plain text
11853 #: build/C/man2/timerfd_create.2:61
11854 msgid ""
11855 "The use of these three system calls is analogous to the use of "
11856 "B<timer_create>(2), B<timer_settime>(2), and B<timer_gettime>(2).  (There is "
11857 "no analog of B<timer_getoverrun>(2), since that functionality is provided by "
11858 "B<read>(2), as described below.)"
11859 msgstr ""
11860 "これらのシステムコールを使うのは、それぞれ B<timer_create>(2), "
11861 "B<timer_settime>(2), B<timer_gettime>(2)  を使うのと同様である "
11862 "(B<timer_getoverrun>(2)  に対応するものはなく、以下で説明するように この機能"
11863 "は B<read>(2)  により提供される)。"
11864
11865 #. type: SS
11866 #: build/C/man2/timerfd_create.2:61
11867 #, no-wrap
11868 msgid "timerfd_create()"
11869 msgstr "timerfd_create()"
11870
11871 #. type: Plain text
11872 #: build/C/man2/timerfd_create.2:80
11873 msgid ""
11874 "B<timerfd_create>()  creates a new timer object, and returns a file "
11875 "descriptor that refers to that timer.  The I<clockid> argument specifies the "
11876 "clock that is used to mark the progress of the timer, and must be either "
11877 "B<CLOCK_REALTIME> or B<CLOCK_MONOTONIC>.  B<CLOCK_REALTIME> is a settable "
11878 "system-wide clock.  B<CLOCK_MONOTONIC> is a nonsettable clock that is not "
11879 "affected by discontinuous changes in the system clock (e.g., manual changes "
11880 "to system time).  The current value of each of these clocks can be retrieved "
11881 "using B<clock_gettime>(2)."
11882 msgstr ""
11883 "B<timerfd_create>()  は新規のタイマーオブジェクトを生成し、そのタイマーを参照"
11884 "するファイル ディスクリプタを返す。 I<clockid> 引き数は、タイマーの進捗を管理"
11885 "するためのクロックを指定するもので、 B<CLOCK_REALTIME> か B<CLOCK_MONOTONIC> "
11886 "のいずれかでなければならない。 B<CLOCK_REALTIME> はシステム全体で使用されるク"
11887 "ロックで、このクロックは変更可能である。 B<CLOCK_MONOTONIC> は変更されること"
11888 "のないクロックで、(システム時刻の手動での変更などの)  システムクロックの不連"
11889 "続な変化の影響を受けない。 これらのクロックの現在の値は B<clock_gettime>(2)  "
11890 "を使って取得できる。"
11891
11892 #. type: Plain text
11893 #: build/C/man2/timerfd_create.2:85
11894 msgid ""
11895 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
11896 "I<flags> to change the behavior of B<timerfd_create>():"
11897 msgstr ""
11898 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
11899 "ることで、 B<timerfd_create>()  の振舞いを変更することができる。"
11900
11901 #. type: TP
11902 #: build/C/man2/timerfd_create.2:85
11903 #, no-wrap
11904 msgid "B<TFD_NONBLOCK>"
11905 msgstr "B<TFD_NONBLOCK>"
11906
11907 #. type: TP
11908 #: build/C/man2/timerfd_create.2:93
11909 #, no-wrap
11910 msgid "B<TFD_CLOEXEC>"
11911 msgstr "B<TFD_CLOEXEC>"
11912
11913 #. type: Plain text
11914 #: build/C/man2/timerfd_create.2:107
11915 msgid ""
11916 "In Linux versions up to and including 2.6.26, I<flags> must be specified as "
11917 "zero."
11918 msgstr ""
11919 "バージョン 2.6.26 以前の Linux では、 I<flags> 引き数は未使用であり、0 を指定"
11920 "しなければならない。"
11921
11922 #. type: SS
11923 #: build/C/man2/timerfd_create.2:107
11924 #, no-wrap
11925 msgid "timerfd_settime()"
11926 msgstr "timerfd_settime()"
11927
11928 #. type: Plain text
11929 #: build/C/man2/timerfd_create.2:112
11930 msgid ""
11931 "B<timerfd_settime>()  arms (starts) or disarms (stops)  the timer referred "
11932 "to by the file descriptor I<fd>."
11933 msgstr ""
11934 "B<timerfd_settime>()  は、ファイルディスクリプタ I<fd> により参照されるタイ"
11935 "マーを開始したり停止したりする。"
11936
11937 #. type: Plain text
11938 #: build/C/man2/timerfd_create.2:121
11939 msgid ""
11940 "The I<new_value> argument specifies the initial expiration and interval for "
11941 "the timer.  The I<itimer> structure used for this argument contains two "
11942 "fields, each of which is in turn a structure of type I<timespec>:"
11943 msgstr ""
11944 "I<new_value> 引き数は、タイマーの満了時間 (expiration) の初期値と間隔 "
11945 "(interval) を 指定する。この引き数で使用されている I<itimerspec> 構造体には "
11946 "2 つのフィールドがあり、各フィールドは I<timespec> 型の構造体である。"
11947
11948 #. type: Plain text
11949 #: build/C/man2/timerfd_create.2:133
11950 #, no-wrap
11951 msgid ""
11952 "struct itimerspec {\n"
11953 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
11954 "    struct timespec it_value;     /* Initial expiration */\n"
11955 "};\n"
11956 msgstr ""
11957 "struct itimerspec {\n"
11958 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
11959 "    struct timespec it_value;     /* Initial expiration */\n"
11960 "};\n"
11961
11962 #. type: Plain text
11963 #: build/C/man2/timerfd_create.2:145
11964 msgid ""
11965 "I<new_value.it_value> specifies the initial expiration of the timer, in "
11966 "seconds and nanoseconds.  Setting either field of I<new_value.it_value> to a "
11967 "nonzero value arms the timer.  Setting both fields of I<new_value.it_value> "
11968 "to zero disarms the timer."
11969 msgstr ""
11970 "I<new_value.it_value> はタイマーの満了時間の初期値を、秒とナノ秒で指定する。 "
11971 "I<new_value.it_value> のフィールドのうち少なくとも一方に 0 以外の値を設定する"
11972 "と、 タイマーが開始される。 両方のフィールドに 0 を設定すると、タイマーが停止"
11973 "する。"
11974
11975 #. type: Plain text
11976 #: build/C/man2/timerfd_create.2:154
11977 msgid ""
11978 "Setting one or both fields of I<new_value.it_interval> to nonzero values "
11979 "specifies the period, in seconds and nanoseconds, for repeated timer "
11980 "expirations after the initial expiration.  If both fields of I<new_value."
11981 "it_interval> are zero, the timer expires just once, at the time specified by "
11982 "I<new_value.it_value>."
11983 msgstr ""
11984 "I<new_value.it_interval> はタイマーの一回目の満了後に繰り返しタイマーの満了間"
11985 "隔を、秒とナノ秒で指定する。 I<new_value.it_interval> のフィールドのうち少な"
11986 "くとも一方に 0 以外の値を設定すると、 繰り返しタイマーが有効になる。 両方の"
11987 "フィールドに 0 を設定した場合、タイマーは I<new_value.it_value> で指定された"
11988 "時間後に、一回だけ満了して停止する。"
11989
11990 #. type: Plain text
11991 #: build/C/man2/timerfd_create.2:170
11992 msgid ""
11993 "The I<flags> argument is either 0, to start a relative timer (I<new_value."
11994 "it_value> specifies a time relative to the current value of the clock "
11995 "specified by I<clockid>), or B<TFD_TIMER_ABSTIME>, to start an absolute "
11996 "timer (I<new_value.it_value> specifies an absolute time for the clock "
11997 "specified by I<clockid>; that is, the timer will expire when the value of "
11998 "that clock reaches the value specified in I<new_value.it_value>)."
11999 msgstr ""
12000 "I<flags> 引き数には 0 か B<TFD_TIMER_ABSTIME> を指定する。 0 は相対時刻\n"
12001 "タイマーを意味し、 I<new_value.it_value> では I<clockid> で指定された\n"
12002 "クロックの現在の値からの相対的な時刻を指定する。 B<TFD_TIMER_ABSTIME>\n"
12003 "は絶対時刻タイマーを意味し、 I<new_value.it_interval> では I<clockid>\n"
12004 "で指定されたクロックの絶対時刻を指定する。\n"
12005 "つまり、クロックの値が I<new_value.it_interval> で指定された時刻に\n"
12006 "達したら、タイマーが満了する。"
12007
12008 #. type: Plain text
12009 #: build/C/man2/timerfd_create.2:181
12010 msgid ""
12011 "If the I<old_value> argument is not NULL, then the I<itimerspec> structure "
12012 "that it points to is used to return the setting of the timer that was "
12013 "current at the time of the call; see the description of B<timerfd_gettime>"
12014 "()  following."
12015 msgstr ""
12016 "I<old_value> 引き数が NULL でない場合、 I<old_value> 引き数が指す\n"
12017 "I<itimerspec> 構造体は、 B<timerfd_settime>() を呼び出した時点での\n"
12018 "タイマーの設定を返すのに使用される。\n"
12019 "下記の B<timerfd_gettime>() の説明を参照。"
12020
12021 #. type: SS
12022 #: build/C/man2/timerfd_create.2:181
12023 #, no-wrap
12024 msgid "timerfd_gettime()"
12025 msgstr "timerfd_gettime()"
12026
12027 #. type: Plain text
12028 #: build/C/man2/timerfd_create.2:190
12029 msgid ""
12030 "B<timerfd_gettime>()  returns, in I<curr_value>, an I<itimerspec> structure "
12031 "that contains the current setting of the timer referred to by the file "
12032 "descriptor I<fd>."
12033 msgstr ""
12034 "B<timerfd_gettime>()  は、ファイルディスクリプタ I<fd> で参照されるタイマーの"
12035 "現在の設定が入った I<itimerspec> 構造体を、 I<curr_value> に格納して返す。"
12036
12037 #. type: Plain text
12038 #: build/C/man2/timerfd_create.2:200
12039 msgid ""
12040 "The I<it_value> field returns the amount of time until the timer will next "
12041 "expire.  If both fields of this structure are zero, then the timer is "
12042 "currently disarmed.  This field always contains a relative value, regardless "
12043 "of whether the B<TFD_TIMER_ABSTIME> flag was specified when setting the "
12044 "timer."
12045 msgstr ""
12046 "I<it_value> フィールドは、タイマーが次に満了するまでの残り時間を返す。 この構"
12047 "造体の両方のフィールドが 0 であれば、タイマーは現在停止している。 タイマー設"
12048 "定時に B<TFD_TIMER_ABSTIME> フラグが指定されたかに関わらず、このフィールドは"
12049 "常に相対値が格納される。"
12050
12051 #. type: Plain text
12052 #: build/C/man2/timerfd_create.2:207
12053 msgid ""
12054 "The I<it_interval> field returns the interval of the timer.  If both fields "
12055 "of this structure are zero, then the timer is set to expire just once, at "
12056 "the time specified by I<curr_value.it_value>."
12057 msgstr ""
12058 "I<it_interval> フィールドは、タイマーの間隔を返す。 この構造体の両方のフィー"
12059 "ルドが 0 であれば、タイマーは I<new_value.it_value> で指定された時間後に一回"
12060 "だけ満了して停止するように設定されている。"
12061
12062 #. type: SS
12063 #: build/C/man2/timerfd_create.2:207
12064 #, no-wrap
12065 msgid "Operating on a timer file descriptor"
12066 msgstr "タイマー・ファイルディスクリプタに対する操作"
12067
12068 #. type: Plain text
12069 #: build/C/man2/timerfd_create.2:211
12070 msgid ""
12071 "The file descriptor returned by B<timerfd_create>()  supports the following "
12072 "operations:"
12073 msgstr ""
12074 "B<timerfd_create>()  が返すファイルディスクリプタは以下の操作をサポートしてい"
12075 "る。"
12076
12077 #. type: Plain text
12078 #: build/C/man2/timerfd_create.2:225
12079 msgid ""
12080 "If the timer has already expired one or more times since its settings were "
12081 "last modified using B<timerfd_settime>(), or since the last successful "
12082 "B<read>(2), then the buffer given to B<read>(2)  returns an unsigned 8-byte "
12083 "integer (I<uint64_t>)  containing the number of expirations that have "
12084 "occurred.  (The returned value is in host byte order, i.e., the native byte "
12085 "order for integers on the host machine.)"
12086 msgstr ""
12087 "B<timerfd_settime>()  を使ってタイマーの設定が最後変更されて以降、または "
12088 "B<read>(2)  の呼び出しに最後に成功して以降に、タイマーの満了が一回以上発生し"
12089 "ていれば、 B<read>(2)  に渡されたバッファに、タイマー満了回数を示す 8 バイト"
12090 "の unsigned 型の整数 (I<uint64_t>)  が返される (返される値はホストバイトオー"
12091 "ダ、つまりそのホストマシンにおける 整数の通常のバイトオーダである)。"
12092
12093 #. type: Plain text
12094 #: build/C/man2/timerfd_create.2:238
12095 msgid ""
12096 "If no timer expirations have occurred at the time of the B<read>(2), then "
12097 "the call either blocks until the next timer expiration, or fails with the "
12098 "error B<EAGAIN> if the file descriptor has been made nonblocking (via the "
12099 "use of the B<fcntl>(2)  B<F_SETFL> operation to set the B<O_NONBLOCK> flag)."
12100 msgstr ""
12101 "B<read>(2)  を行った時点でタイマーの満了が発生していなければ、 B<read>(2)  は"
12102 "停止 (block) する、もしくはファイルディスクリプタが 非停止 (nonblocking) に設"
12103 "定されている場合はエラー B<EAGAIN> で失敗する (非停止モードにするには、 "
12104 "B<fcntl>(2)  の B<F_SETFL> 命令で B<O_NONBLOCK> フラグをセットする)。"
12105
12106 #. type: Plain text
12107 #: build/C/man2/timerfd_create.2:244
12108 msgid ""
12109 "A B<read>(2)  will fail with the error B<EINVAL> if the size of the supplied "
12110 "buffer is less than 8 bytes."
12111 msgstr ""
12112 "渡されたバッファの大きさが 8 バイト未満の場合、 B<read>(2)  はエラー "
12113 "B<EINVAL> で失敗する。"
12114
12115 #. type: Plain text
12116 #: build/C/man2/timerfd_create.2:255
12117 msgid ""
12118 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
12119 "B<poll>(2)  B<POLLIN> flag)  if one or more timer expirations have occurred."
12120 msgstr ""
12121 "一つ以上のタイマー満了が発生していれば、 ファイルディスクリプタは読み出し可能"
12122 "となる (B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラ"
12123 "グ)。"
12124
12125 #. type: Plain text
12126 #: build/C/man2/timerfd_create.2:262
12127 msgid ""
12128 "The file descriptor also supports the other file-descriptor multiplexing "
12129 "APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
12130 msgstr ""
12131 "このファイルディスクリプタは、他のファイルディスクリプタ多重 API である "
12132 "B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
12133
12134 #. type: Plain text
12135 #: build/C/man2/timerfd_create.2:269
12136 msgid ""
12137 "When the file descriptor is no longer required it should be closed.  When "
12138 "all file descriptors associated with the same timer object have been closed, "
12139 "the timer is disarmed and its resources are freed by the kernel."
12140 msgstr ""
12141 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
12142 "る。 同じ timer オブジェクトに関連付けられたファイルディスクリプタが全て ク"
12143 "ローズされると、そのタイマーは解除され、 そのオブジェクト用の資源がカーネルに"
12144 "より解放される。"
12145
12146 #. type: Plain text
12147 #: build/C/man2/timerfd_create.2:281
12148 msgid ""
12149 "After a B<fork>(2), the child inherits a copy of the file descriptor created "
12150 "by B<timerfd_create>().  The file descriptor refers to the same underlying "
12151 "timer object as the corresponding file descriptor in the parent, and B<read>"
12152 "(2)s in the child will return information about expirations of the timer."
12153 msgstr ""
12154 "B<fork>(2)  が行われると、子プロセスは B<timerfd_create>()  により生成された"
12155 "ファイルディスクリプタのコピーを 継承する。そのファイルディスクリプタは、親プ"
12156 "ロセスの対応する ファイルディスクリプタと同じタイマーオブジェクトを参照してお"
12157 "り、 子プロセスの B<read>(2)  でも同じタイマーの満了に関する情報が返される。"
12158
12159 #. type: Plain text
12160 #: build/C/man2/timerfd_create.2:287
12161 msgid ""
12162 "A file descriptor created by B<timerfd_create>()  is preserved across "
12163 "B<execve>(2), and continues to generate timer expirations if the timer was "
12164 "armed."
12165 msgstr ""
12166 "B<execve>(2)  の前後で B<timerfd_create>()  により生成されたファイルディスク"
12167 "リプタは保持され、 タイマーが開始されていた場合にはタイマーの満了が発生し続け"
12168 "る。"
12169
12170 #. type: Plain text
12171 #: build/C/man2/timerfd_create.2:294
12172 msgid ""
12173 "On success, B<timerfd_create>()  returns a new file descriptor.  On error, "
12174 "-1 is returned and I<errno> is set to indicate the error."
12175 msgstr ""
12176 "成功すると、 B<timerfd_create>()  は新しいファイルディスクリプタを返す。 エ"
12177 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
12178
12179 #. type: Plain text
12180 #: build/C/man2/timerfd_create.2:302
12181 msgid ""
12182 "B<timerfd_settime>()  and B<timerfd_gettime>()  return 0 on success; on "
12183 "error they return -1, and set I<errno> to indicate the error."
12184 msgstr ""
12185 "B<timerfd_settime>()  と B<timerfd_gettime>()  は成功すると 0 を返す。 エラー"
12186 "の場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
12187
12188 #. type: Plain text
12189 #: build/C/man2/timerfd_create.2:305
12190 msgid "B<timerfd_create>()  can fail with the following errors:"
12191 msgstr "B<timerfd_create>()  は以下のエラーで失敗する可能性がある。"
12192
12193 #. type: Plain text
12194 #: build/C/man2/timerfd_create.2:313
12195 msgid ""
12196 "The I<clockid> argument is neither B<CLOCK_MONOTONIC> nor B<CLOCK_REALTIME>;"
12197 msgstr ""
12198 "I<clockid> 引き数が B<CLOCK_MONOTONIC> でも B<CLOCK_REALTIME> でもない。"
12199
12200 #. type: Plain text
12201 #: build/C/man2/timerfd_create.2:333
12202 msgid "There was insufficient kernel memory to create the timer."
12203 msgstr "タイマーを作成するのに十分なカーネルメモリがなかった。"
12204
12205 #. type: Plain text
12206 #: build/C/man2/timerfd_create.2:338
12207 msgid ""
12208 "B<timerfd_settime>()  and B<timerfd_gettime>()  can fail with the following "
12209 "errors:"
12210 msgstr ""
12211 "B<timerfd_settime>()  と B<timerfd_gettime>()  は以下のエラーで失敗する可能性"
12212 "がある。"
12213
12214 #. type: Plain text
12215 #: build/C/man2/timerfd_create.2:342
12216 msgid "I<fd> is not a valid file descriptor."
12217 msgstr "I<fd> が有効なファイルディスクリプタでない。"
12218
12219 #. type: Plain text
12220 #: build/C/man2/timerfd_create.2:353
12221 msgid "I<fd> is not a valid timerfd file descriptor."
12222 msgstr "I<fd> が有効な timerfd ファイルディスクリプタでない。"
12223
12224 #. type: Plain text
12225 #: build/C/man2/timerfd_create.2:356
12226 msgid "B<timerfd_settime>()  can also fail with the following errors:"
12227 msgstr "B<timerfd_settime>()  は以下のエラーで失敗することもある。"
12228
12229 #. type: Plain text
12230 #: build/C/man2/timerfd_create.2:362
12231 msgid ""
12232 "I<new_value> is not properly initialized (one of the I<tv_nsec> falls "
12233 "outside the range zero to 999,999,999)."
12234 msgstr ""
12235 "I<new_value> が適切に初期化されていない (I<tv_nsec> の一つが 0 から "
12236 "999,999,999 までの範囲に入っていない)。"
12237
12238 #.  This case only checked since 2.6.29, and 2.2.2[78].some-stable-version.
12239 #.  In older kernel versions, no check was made for invalid flags.
12240 #. type: Plain text
12241 #: build/C/man2/timerfd_create.2:368
12242 msgid "I<flags> is invalid."
12243 msgstr "I<flags> が無効である。"
12244
12245 #. type: Plain text
12246 #: build/C/man2/timerfd_create.2:371
12247 msgid ""
12248 "These system calls are available on Linux since kernel 2.6.25.  Library "
12249 "support is provided by glibc since version 2.8."
12250 msgstr ""
12251 "これらのシステムコールはカーネル 2.6.25 以降の Linux で利用可能である。 ライ"
12252 "ブラリ側のサポートはバージョン 2.8 以降の glibc で提供されている。"
12253
12254 #.  2.6.29
12255 #. type: Plain text
12256 #: build/C/man2/timerfd_create.2:379
12257 msgid ""
12258 "Currently, B<timerfd_create>()  supports fewer types of clock IDs than "
12259 "B<timer_create>(2)."
12260 msgstr ""
12261 "現在のところ、 B<timerfd_create>()  が対応している clockid の種類は "
12262 "B<timer_create>(2)  よりも少ない。"
12263
12264 #. type: Plain text
12265 #: build/C/man2/timerfd_create.2:388
12266 msgid ""
12267 "The following program creates a timer and then monitors its progress.  The "
12268 "program accepts up to three command-line arguments.  The first argument "
12269 "specifies the number of seconds for the initial expiration of the timer.  "
12270 "The second argument specifies the interval for the timer, in seconds.  The "
12271 "third argument specifies the number of times the program should allow the "
12272 "timer to expire before terminating.  The second and third command-line "
12273 "arguments are optional."
12274 msgstr ""
12275 "以下のプログラムは、タイマーを作成し、その進捗をモニターするものである。 この"
12276 "プログラムは最大で 3 個のコマンドライン引き数を取り、 第一引き数ではタイマー"
12277 "の満了時間の初期値 (秒数単位) を、 第二引き数ではタイマーの間隔 (秒数単位) "
12278 "を、 第三引き数ではタイマーが何回満了したらプログラムが終了するかを指定す"
12279 "る。 第二引き数と第三引き数は省略可能である。"
12280
12281 #. type: Plain text
12282 #: build/C/man2/timerfd_create.2:390 build/C/man2/wait.2:555
12283 msgid "The following shell session demonstrates the use of the program:"
12284 msgstr "以下のシェルのセッションはこのプログラムの使用例を示したものである。"
12285
12286 #. type: Plain text
12287 #: build/C/man2/timerfd_create.2:405
12288 #, no-wrap
12289 msgid ""
12290 "$B< a.out 3 1 100>\n"
12291 "0.000: timer started\n"
12292 "3.000: read: 1; total=1\n"
12293 "4.000: read: 1; total=2\n"
12294 "B<^Z >                 # type control-Z to suspend the program\n"
12295 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
12296 "$ B<fg>                # Resume execution after a few seconds\n"
12297 "a.out 3 1 100\n"
12298 "9.660: read: 5; total=7\n"
12299 "10.000: read: 1; total=8\n"
12300 "11.000: read: 1; total=9\n"
12301 "B<^C >                 # type control-C to suspend the program\n"
12302 msgstr ""
12303 "$B< a.out 3 1 100>\n"
12304 "0.000: timer started\n"
12305 "3.000: read: 1; total=1\n"
12306 "4.000: read: 1; total=2\n"
12307 "B<^Z >                 # type control-Z to suspend the program\n"
12308 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
12309 "$ B<fg>                # Resume execution after a few seconds\n"
12310 "a.out 3 1 100\n"
12311 "9.660: read: 5; total=7\n"
12312 "10.000: read: 1; total=8\n"
12313 "11.000: read: 1; total=9\n"
12314 "B<^C >                 # type control-C to suspend the program\n"
12315
12316 #.  The commented out code here is what we currently need until
12317 #.  the required stuff is in glibc
12318 #. /* Link with -lrt */
12319 #. #define _GNU_SOURCE
12320 #. #include <sys/syscall.h>
12321 #. #include <unistd.h>
12322 #. #include <time.h>
12323 #. #if defined(__i386__)
12324 #. #define __NR_timerfd_create 322
12325 #. #define __NR_timerfd_settime 325
12326 #. #define __NR_timerfd_gettime 326
12327 #. #endif
12328 #. static int
12329 #. timerfd_create(int clockid, int flags)
12330 #. {
12331 #.     return syscall(__NR_timerfd_create, clockid, flags);
12332 #. }
12333 #. static int
12334 #. timerfd_settime(int fd, int flags, struct itimerspec *new_value,
12335 #.         struct itimerspec *curr_value)
12336 #. {
12337 #.     return syscall(__NR_timerfd_settime, fd, flags, new_value,
12338 #.                    curr_value);
12339 #. }
12340 #. static int
12341 #. timerfd_gettime(int fd, struct itimerspec *curr_value)
12342 #. {
12343 #.     return syscall(__NR_timerfd_gettime, fd, curr_value);
12344 #. }
12345 #. #define TFD_TIMER_ABSTIME (1 << 0)
12346 #. ////////////////////////////////////////////////////////////
12347 #. type: Plain text
12348 #: build/C/man2/timerfd_create.2:454
12349 #, no-wrap
12350 msgid ""
12351 "#include E<lt>sys/timerfd.hE<gt>\n"
12352 "#include E<lt>time.hE<gt>\n"
12353 "#include E<lt>unistd.hE<gt>\n"
12354 "#include E<lt>stdlib.hE<gt>\n"
12355 "#include E<lt>stdio.hE<gt>\n"
12356 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
12357 msgstr ""
12358 "#include E<lt>sys/timerfd.hE<gt>\n"
12359 "#include E<lt>time.hE<gt>\n"
12360 "#include E<lt>unistd.hE<gt>\n"
12361 "#include E<lt>stdlib.hE<gt>\n"
12362 "#include E<lt>stdio.hE<gt>\n"
12363 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
12364
12365 #. type: Plain text
12366 #: build/C/man2/timerfd_create.2:457
12367 #, no-wrap
12368 msgid ""
12369 "#define handle_error(msg) \\e\n"
12370 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
12371 msgstr ""
12372 "#define handle_error(msg) \\e\n"
12373 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
12374
12375 #. type: Plain text
12376 #: build/C/man2/timerfd_create.2:465
12377 #, no-wrap
12378 msgid ""
12379 "static void\n"
12380 "print_elapsed_time(void)\n"
12381 "{\n"
12382 "    static struct timespec start;\n"
12383 "    struct timespec curr;\n"
12384 "    static int first_call = 1;\n"
12385 "    int secs, nsecs;\n"
12386 msgstr ""
12387 "static void\n"
12388 "print_elapsed_time(void)\n"
12389 "{\n"
12390 "    static struct timespec start;\n"
12391 "    struct timespec curr;\n"
12392 "    static int first_call = 1;\n"
12393 "    int secs, nsecs;\n"
12394
12395 #. type: Plain text
12396 #: build/C/man2/timerfd_create.2:471
12397 #, no-wrap
12398 msgid ""
12399 "    if (first_call) {\n"
12400 "        first_call = 0;\n"
12401 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
12402 "            handle_error(\"clock_gettime\");\n"
12403 "    }\n"
12404 msgstr ""
12405 "    if (first_call) {\n"
12406 "        first_call = 0;\n"
12407 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
12408 "            handle_error(\"clock_gettime\");\n"
12409 "    }\n"
12410
12411 #. type: Plain text
12412 #: build/C/man2/timerfd_create.2:474
12413 #, no-wrap
12414 msgid ""
12415 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
12416 "        handle_error(\"clock_gettime\");\n"
12417 msgstr ""
12418 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
12419 "        handle_error(\"clock_gettime\");\n"
12420
12421 #. type: Plain text
12422 #: build/C/man2/timerfd_create.2:483
12423 #, no-wrap
12424 msgid ""
12425 "    secs = curr.tv_sec - start.tv_sec;\n"
12426 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
12427 "    if (nsecs E<lt> 0) {\n"
12428 "        secs--;\n"
12429 "        nsecs += 1000000000;\n"
12430 "    }\n"
12431 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
12432 "}\n"
12433 msgstr ""
12434 "    secs = curr.tv_sec - start.tv_sec;\n"
12435 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
12436 "    if (nsecs E<lt> 0) {\n"
12437 "        secs--;\n"
12438 "        nsecs += 1000000000;\n"
12439 "    }\n"
12440 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
12441 "}\n"
12442
12443 #. type: Plain text
12444 #: build/C/man2/timerfd_create.2:492
12445 #, no-wrap
12446 msgid ""
12447 "int\n"
12448 "main(int argc, char *argv[])\n"
12449 "{\n"
12450 "    struct itimerspec new_value;\n"
12451 "    int max_exp, fd;\n"
12452 "    struct timespec now;\n"
12453 "    uint64_t exp, tot_exp;\n"
12454 "    ssize_t s;\n"
12455 msgstr ""
12456 "int\n"
12457 "main(int argc, char *argv[])\n"
12458 "{\n"
12459 "    struct itimerspec new_value;\n"
12460 "    int max_exp, fd;\n"
12461 "    struct timespec now;\n"
12462 "    uint64_t exp, tot_exp;\n"
12463 "    ssize_t s;\n"
12464
12465 #. type: Plain text
12466 #: build/C/man2/timerfd_create.2:498
12467 #, no-wrap
12468 msgid ""
12469 "    if ((argc != 2) && (argc != 4)) {\n"
12470 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
12471 "                argv[0]);\n"
12472 "        exit(EXIT_FAILURE);\n"
12473 "    }\n"
12474 msgstr ""
12475 "    if ((argc != 2) && (argc != 4)) {\n"
12476 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
12477 "                argv[0]);\n"
12478 "        exit(EXIT_FAILURE);\n"
12479 "    }\n"
12480
12481 #. type: Plain text
12482 #: build/C/man2/timerfd_create.2:501
12483 #, no-wrap
12484 msgid ""
12485 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
12486 "        handle_error(\"clock_gettime\");\n"
12487 msgstr ""
12488 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
12489 "        handle_error(\"clock_gettime\");\n"
12490
12491 #. type: Plain text
12492 #: build/C/man2/timerfd_create.2:504
12493 #, no-wrap
12494 msgid ""
12495 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
12496 "       expiration and interval as specified in command line */\n"
12497 msgstr ""
12498 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
12499 "       expiration and interval as specified in command line */\n"
12500
12501 #. type: Plain text
12502 #: build/C/man2/timerfd_create.2:515
12503 #, no-wrap
12504 msgid ""
12505 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
12506 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
12507 "    if (argc == 2) {\n"
12508 "        new_value.it_interval.tv_sec = 0;\n"
12509 "        max_exp = 1;\n"
12510 "    } else {\n"
12511 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
12512 "        max_exp = atoi(argv[3]);\n"
12513 "    }\n"
12514 "    new_value.it_interval.tv_nsec = 0;\n"
12515 msgstr ""
12516 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
12517 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
12518 "    if (argc == 2) {\n"
12519 "        new_value.it_interval.tv_sec = 0;\n"
12520 "        max_exp = 1;\n"
12521 "    } else {\n"
12522 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
12523 "        max_exp = atoi(argv[3]);\n"
12524 "    }\n"
12525 "    new_value.it_interval.tv_nsec = 0;\n"
12526
12527 #. type: Plain text
12528 #: build/C/man2/timerfd_create.2:519
12529 #, no-wrap
12530 msgid ""
12531 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
12532 "    if (fd == -1)\n"
12533 "        handle_error(\"timerfd_create\");\n"
12534 msgstr ""
12535 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
12536 "    if (fd == -1)\n"
12537 "        handle_error(\"timerfd_create\");\n"
12538
12539 #. type: Plain text
12540 #: build/C/man2/timerfd_create.2:522
12541 #, no-wrap
12542 msgid ""
12543 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
12544 "        handle_error(\"timerfd_settime\");\n"
12545 msgstr ""
12546 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
12547 "        handle_error(\"timerfd_settime\");\n"
12548
12549 #. type: Plain text
12550 #: build/C/man2/timerfd_create.2:525
12551 #, no-wrap
12552 msgid ""
12553 "    print_elapsed_time();\n"
12554 "    printf(\"timer started\\en\");\n"
12555 msgstr ""
12556 "    print_elapsed_time();\n"
12557 "    printf(\"timer started\\en\");\n"
12558
12559 #. type: Plain text
12560 #: build/C/man2/timerfd_create.2:530
12561 #, no-wrap
12562 msgid ""
12563 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
12564 "        s = read(fd, &exp, sizeof(uint64_t));\n"
12565 "        if (s != sizeof(uint64_t))\n"
12566 "            handle_error(\"read\");\n"
12567 msgstr ""
12568 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
12569 "        s = read(fd, &exp, sizeof(uint64_t));\n"
12570 "        if (s != sizeof(uint64_t))\n"
12571 "            handle_error(\"read\");\n"
12572
12573 #. type: Plain text
12574 #: build/C/man2/timerfd_create.2:537
12575 #, no-wrap
12576 msgid ""
12577 "        tot_exp += exp;\n"
12578 "        print_elapsed_time();\n"
12579 "        printf(\"read: %llu; total=%llu\\en\",\n"
12580 "                (unsigned long long) exp,\n"
12581 "                (unsigned long long) tot_exp);\n"
12582 "    }\n"
12583 msgstr ""
12584 "        tot_exp += exp;\n"
12585 "        print_elapsed_time();\n"
12586 "        printf(\"read: %llu; total=%llu\\en\",\n"
12587 "                (unsigned long long) exp,\n"
12588 "                (unsigned long long) tot_exp);\n"
12589 "    }\n"
12590
12591 #. type: Plain text
12592 #: build/C/man2/timerfd_create.2:553
12593 msgid ""
12594 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
12595 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), B<timer_settime>"
12596 "(2), B<epoll>(7), B<time>(7)"
12597 msgstr ""
12598 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
12599 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), B<timer_settime>"
12600 "(2), B<epoll>(7), B<time>(7)"
12601
12602 #. type: TH
12603 #: build/C/man2/tkill.2:29
12604 #, no-wrap
12605 msgid "TKILL"
12606 msgstr "TKILL"
12607
12608 #. type: Plain text
12609 #: build/C/man2/tkill.2:32
12610 msgid "tkill, tgkill - send a signal to a thread"
12611 msgstr "tkill, tgkill - スレッドにシグナルを送る"
12612
12613 #. type: Plain text
12614 #: build/C/man2/tkill.2:35
12615 #, no-wrap
12616 msgid "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
12617 msgstr "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
12618
12619 #. type: Plain text
12620 #: build/C/man2/tkill.2:37
12621 #, no-wrap
12622 msgid "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
12623 msgstr "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
12624
12625 #. type: Plain text
12626 #: build/C/man2/tkill.2:54
12627 msgid ""
12628 "B<tgkill>()  sends the signal I<sig> to the thread with the thread ID I<tid> "
12629 "in the thread group I<tgid>.  (By contrast, B<kill>(2)  can be used to send "
12630 "a signal only to a process (i.e., thread group)  as a whole, and the signal "
12631 "will be delivered to an arbitrary thread within that process.)"
12632 msgstr ""
12633 "B<tgkill>()  はスレッド・グループ I<tgid> に属するスレッド ID が I<tid> のス"
12634 "レッドにシグナル I<sig> を送る。 (これに対し、 B<kill>(2)  は一つのプロセス "
12635 "(すなわち、スレッド・グループ) にまとめてシグナルを 送るのにだけ利用できる。 "
12636 "B<kill>(2)  で送信されたシグナルはプロセス内の任意のスレッドに配送される。)"
12637
12638 #.  FIXME: Maybe say something about the following:
12639 #.  http://sourceware.org/bugzilla/show_bug.cgi?id=12889
12640 #.      Rich Felker <bugdal@aerifal.cx>
12641 #.      There is a race condition in pthread_kill: it is possible that,
12642 #.      between the time pthread_kill reads the pid/tid from the target
12643 #.      thread descriptor and the time it makes the tgkill syscall,
12644 #.      the target thread terminates and the same tid gets assigned
12645 #.      to a new thread in the same process.
12646 #.      (The tgkill syscall was designed to eliminate a similar race
12647 #.      condition in tkill, but it only succeeded in eliminating races
12648 #.      where the tid gets reused in a different process, and does not
12649 #.      help if the same tid gets assigned to a new thread in the
12650 #.      same process.)
12651 #.      The only solution I can see is to introduce a mutex that ensures
12652 #.      that a thread cannot exit while pthread_kill is being called on it.
12653 #.      Note that in most real-world situations, like almost all race
12654 #.      conditions, this one will be extremely rare. To make it
12655 #.      measurable, one could exhaust all but 1-2 available pid values,
12656 #.      possibly by lowering the max pid parameter in /proc, forcing
12657 #.      the same tid to be reused rapidly.
12658 #. type: Plain text
12659 #: build/C/man2/tkill.2:85
12660 msgid ""
12661 "B<tkill>()  is an obsolete predecessor to B<tgkill>().  It allows only the "
12662 "target thread ID to be specified, which may result in the wrong thread being "
12663 "signaled if a thread terminates and its thread ID is recycled.  Avoid using "
12664 "this system call."
12665 msgstr ""
12666 "B<tkill>()  はもう使われなくなった B<tgkill>()  の先祖である。 B<tkill>()  で"
12667 "はシグナルの送り先のスレッド ID しか指定できない。 そのため、スレッドが終了し"
12668 "て、そのスレッド ID が再利用される場合に、 意図しないスレッドにシグナルが送ら"
12669 "れる可能性がある。 このシステムコールの使用は避けること。"
12670
12671 #. type: Plain text
12672 #: build/C/man2/tkill.2:92
12673 msgid ""
12674 "If I<tgid> is specified as -1, B<tgkill>()  is equivalent to B<tkill>()."
12675 msgstr ""
12676 "I<tgid> に -1 が指定された場合、 B<tgkill>()  は B<tkill>()  と等価である。"
12677
12678 #. type: Plain text
12679 #: build/C/man2/tkill.2:95
12680 msgid ""
12681 "These are the raw system call interfaces, meant for internal thread library "
12682 "use."
12683 msgstr ""
12684 "これらはシステムコールへの直接のインターフェースであり、 スレッド・ライブラリ"
12685 "内部での使用を意図したものである。"
12686
12687 #. type: Plain text
12688 #: build/C/man2/tkill.2:103
12689 msgid "An invalid thread ID, thread group ID, or signal was specified."
12690 msgstr "指定されたスレッド ID、スレッドグループ ID、シグナルが不正であった。"
12691
12692 #. type: Plain text
12693 #: build/C/man2/tkill.2:108
12694 msgid "Permission denied.  For the required permissions, see B<kill>(2)."
12695 msgstr ""
12696 "許可がなかった。どのような許可が必要かについては、 B<kill>(2)  を参照のこと。"
12697
12698 #. type: Plain text
12699 #: build/C/man2/tkill.2:111
12700 msgid "No process with the specified thread ID (and thread group ID) exists."
12701 msgstr ""
12702 "指定されたスレッドID (とスレッド・グループID) を持つプロセスが存在しない。"
12703
12704 #. type: Plain text
12705 #: build/C/man2/tkill.2:116
12706 msgid ""
12707 "B<tkill>()  is supported since Linux 2.4.19 / 2.5.4.  B<tgkill>()  was added "
12708 "in Linux 2.5.75."
12709 msgstr ""
12710 "B<tkill>()  は Linux 2.4.19 / 2.5.4 以降でサポートされ、 B<tgkill>()  は "
12711 "Linux 2.5.75 で追加された。"
12712
12713 #. type: Plain text
12714 #: build/C/man2/tkill.2:122
12715 msgid ""
12716 "B<tkill>()  and B<tgkill>()  are Linux-specific and should not be used in "
12717 "programs that are intended to be portable."
12718 msgstr ""
12719 "B<tkill>()  と B<tgkill>()  は Linux 固有であり、 移植を想定したプログラムで"
12720 "は使用すべきではない。"
12721
12722 #. type: Plain text
12723 #: build/C/man2/tkill.2:128
12724 msgid ""
12725 "See the description of B<CLONE_THREAD> in B<clone>(2)  for an explanation of "
12726 "thread groups."
12727 msgstr ""
12728 "スレッド・グループの説明については B<clone>(2)  の B<CLONE_THREAD> の説明を参"
12729 "照のこと。"
12730
12731 #. type: Plain text
12732 #: build/C/man2/tkill.2:131
12733 msgid ""
12734 "Glibc does not provide wrappers for these system calls; call them using "
12735 "B<syscall>(2)."
12736 msgstr ""
12737 "glibc はこれらのシステムコールに対するラッパー関数を提供していない。 "
12738 "B<syscall>(2)  を使って呼び出すこと。"
12739
12740 #. type: Plain text
12741 #: build/C/man2/tkill.2:136
12742 msgid "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
12743 msgstr "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
12744
12745 #. type: TH
12746 #: build/C/man2/wait.2:49
12747 #, no-wrap
12748 msgid "WAIT"
12749 msgstr "WAIT"
12750
12751 #. type: TH
12752 #: build/C/man2/wait.2:49
12753 #, no-wrap
12754 msgid "2012-12-21"
12755 msgstr "2012-12-21"
12756
12757 #. type: Plain text
12758 #: build/C/man2/wait.2:52
12759 msgid "wait, waitpid, waitid - wait for process to change state"
12760 msgstr "wait, waitpid, waitid - プロセスの状態変化を待つ"
12761
12762 #. type: Plain text
12763 #: build/C/man2/wait.2:54
12764 msgid "B<#include E<lt>sys/types.hE<gt>>"
12765 msgstr "B<#include E<lt>sys/types.hE<gt>>"
12766
12767 #. type: Plain text
12768 #: build/C/man2/wait.2:56
12769 msgid "B<#include E<lt>sys/wait.hE<gt>>"
12770 msgstr "B<#include E<lt>sys/wait.hE<gt>>"
12771
12772 #. type: Plain text
12773 #: build/C/man2/wait.2:58
12774 msgid "B<pid_t wait(int *>I<status>B<);>"
12775 msgstr "B<pid_t wait(int *>I<status>B<);>"
12776
12777 #. type: Plain text
12778 #: build/C/man2/wait.2:60
12779 msgid ""
12780 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
12781 msgstr ""
12782 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
12783
12784 #. type: Plain text
12785 #: build/C/man2/wait.2:63
12786 msgid ""
12787 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, "
12788 "int >I<options>B<);>"
12789 msgstr ""
12790 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, "
12791 "int >I<options>B<);>"
12792
12793 #. type: Plain text
12794 #: build/C/man2/wait.2:72
12795 msgid "B<waitid>():"
12796 msgstr "B<waitid>():"
12797
12798 #. type: Plain text
12799 #: build/C/man2/wait.2:76
12800 msgid ""
12801 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
12802 "_XOPEN_SOURCE_EXTENDED"
12803 msgstr ""
12804 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
12805 "_XOPEN_SOURCE_EXTENDED"
12806
12807 #. type: Plain text
12808 #: build/C/man2/wait.2:91
12809 msgid ""
12810 "All of these system calls are used to wait for state changes in a child of "
12811 "the calling process, and obtain information about the child whose state has "
12812 "changed.  A state change is considered to be: the child terminated; the "
12813 "child was stopped by a signal; or the child was resumed by a signal.  In the "
12814 "case of a terminated child, performing a wait allows the system to release "
12815 "the resources associated with the child; if a wait is not performed, then "
12816 "the terminated child remains in a \"zombie\" state (see NOTES below)."
12817 msgstr ""
12818 "これらのシステムコールはいずれも、呼び出し元プロセスの子プロセスの 状態変化を"
12819 "待ち、状態が変化したその子プロセスの情報を取得するのに 使用される。 状態変化"
12820 "とは以下のいずれかである: 子プロセスの終了、シグナルによる子プロセスの停止、 "
12821 "シグナルによる子プロセスの再開。 子プロセスが終了した場合は、wait を実行する"
12822 "ことで、 システムがその子プロセスに関連するリソースを解放できるようになる。 "
12823 "wait が実行されなかった場合には、終了した子プロセスは 「ゾンビ」状態で残り続"
12824 "ける (下記の注意の章を参照のこと)。"
12825
12826 #. type: Plain text
12827 #: build/C/man2/wait.2:103
12828 msgid ""
12829 "If a child has already changed state, then these calls return immediately.  "
12830 "Otherwise they block until either a child changes state or a signal handler "
12831 "interrupts the call (assuming that system calls are not automatically "
12832 "restarted using the B<SA_RESTART> flag of B<sigaction>(2)).  In the "
12833 "remainder of this page, a child whose state has changed and which has not "
12834 "yet been waited upon by one of these system calls is termed I<waitable>."
12835 msgstr ""
12836 "子プロセスの状態変化がすでに発生していた場合、これらのコールは すぐに復帰す"
12837 "る。それ以外の場合は、子プロセスの状態変化が起こるか、 シグナルハンドラにより"
12838 "システムコールが中断されるまで、 停止 (block) する (後者は、 B<sigaction>"
12839 "(2)  の B<SA_RESTART> フラグによりシステムコールが自動的に再スタートするよう"
12840 "になっていない 場合の動作である)。 以下の説明では、状態変化が起こったがこれら"
12841 "のシステムコールのいずれかに よって待たれていない子プロセスを I<waitable> (待"
12842 "ち可能) と呼ぶ。"
12843
12844 #. type: SS
12845 #: build/C/man2/wait.2:103
12846 #, no-wrap
12847 msgid "wait() and waitpid()"
12848 msgstr "wait() と waitpid()"
12849
12850 #. type: Plain text
12851 #: build/C/man2/wait.2:111
12852 msgid ""
12853 "The B<wait>()  system call suspends execution of the calling process until "
12854 "one of its children terminates.  The call I<wait(&status)> is equivalent to:"
12855 msgstr ""
12856 "B<wait>()  システムコールは、子プロセスのいずれかが終了するまで 呼び出し元の"
12857 "プロセスの実行を一時停止する。 呼び出し I<wait(&status)> は以下と等価である:"
12858
12859 #. type: Plain text
12860 #: build/C/man2/wait.2:114
12861 #, no-wrap
12862 msgid "    waitpid(-1, &status, 0);\n"
12863 msgstr "    waitpid(-1, &status, 0);\n"
12864
12865 #. type: Plain text
12866 #: build/C/man2/wait.2:128
12867 msgid ""
12868 "The B<waitpid>()  system call suspends execution of the calling process "
12869 "until a child specified by I<pid> argument has changed state.  By default, "
12870 "B<waitpid>()  waits only for terminated children, but this behavior is "
12871 "modifiable via the I<options> argument, as described below."
12872 msgstr ""
12873 "B<waitpid>()  システムコールは、 I<pid> 引き数で指定した子プロセスの状態変化"
12874 "が起こるまで、 呼び出し元のプロセスの実行を一時停止する。デフォルトでは、 "
12875 "B<waitpid>()  は子プロセスの終了だけを待つが、この動作は I<options> 引き数に"
12876 "より変更可能である。"
12877
12878 #. type: Plain text
12879 #: build/C/man2/wait.2:132
12880 msgid "The value of I<pid> can be:"
12881 msgstr "I<pid> に指定できる値は以下の通り:"
12882
12883 #. type: IP
12884 #: build/C/man2/wait.2:132
12885 #, no-wrap
12886 msgid "E<lt> -1"
12887 msgstr "E<lt> -1"
12888
12889 #. type: Plain text
12890 #: build/C/man2/wait.2:136
12891 msgid ""
12892 "meaning wait for any child process whose process group ID is equal to the "
12893 "absolute value of I<pid>."
12894 msgstr ""
12895 "プロセスグループID が I<pid> の絶対値に等しい子プロセスのいずれかが終了するま"
12896 "でを待つ。"
12897
12898 #. type: IP
12899 #: build/C/man2/wait.2:136
12900 #, no-wrap
12901 msgid "-1"
12902 msgstr "-1"
12903
12904 #. type: Plain text
12905 #: build/C/man2/wait.2:138
12906 msgid "meaning wait for any child process."
12907 msgstr "子プロセスのどれかが終了するまで待つ。"
12908
12909 #. type: IP
12910 #: build/C/man2/wait.2:138
12911 #, no-wrap
12912 msgid "0"
12913 msgstr "0"
12914
12915 #. type: Plain text
12916 #: build/C/man2/wait.2:141
12917 msgid ""
12918 "meaning wait for any child process whose process group ID is equal to that "
12919 "of the calling process."
12920 msgstr ""
12921 "プロセスグループID が呼び出したプロセスのものと等しい 子プロセスを待つ。"
12922
12923 #. type: IP
12924 #: build/C/man2/wait.2:141
12925 #, no-wrap
12926 msgid "E<gt> 0"
12927 msgstr "E<gt> 0"
12928
12929 #. type: Plain text
12930 #: build/C/man2/wait.2:145
12931 msgid ""
12932 "meaning wait for the child whose process ID is equal to the value of I<pid>."
12933 msgstr "プロセスID が I<pid> に等しい子プロセスを待つ。"
12934
12935 #. type: Plain text
12936 #: build/C/man2/wait.2:149
12937 msgid ""
12938 "The value of I<options> is an OR of zero or more of the following constants:"
12939 msgstr "I<options> の値は次の定数の 0 個以上の論理和である:"
12940
12941 #. type: TP
12942 #: build/C/man2/wait.2:149 build/C/man2/wait.2:278
12943 #, no-wrap
12944 msgid "B<WNOHANG>"
12945 msgstr "B<WNOHANG>"
12946
12947 #. type: Plain text
12948 #: build/C/man2/wait.2:152
12949 msgid "return immediately if no child has exited."
12950 msgstr "状態変化が起こった子プロセスがない場合にすぐに復帰する。"
12951
12952 #. type: TP
12953 #: build/C/man2/wait.2:152
12954 #, no-wrap
12955 msgid "B<WUNTRACED>"
12956 msgstr "B<WUNTRACED>"
12957
12958 #. type: Plain text
12959 #: build/C/man2/wait.2:161
12960 msgid ""
12961 "also return if a child has stopped (but not traced via B<ptrace>(2)).  "
12962 "Status for I<traced> children which have stopped is provided even if this "
12963 "option is not specified."
12964 msgstr ""
12965 "子プロセスが停止した場合にも復帰する (子プロセスが B<ptrace>(2)  でトレースさ"
12966 "れている場合は除く)。 このオプションが指定されていない場合でも、停止したプロ"
12967 "セスが 「トレース (traced)」されていれば、子プロセスの状態が報告される。"
12968
12969 #. type: TP
12970 #: build/C/man2/wait.2:161
12971 #, no-wrap
12972 msgid "B<WCONTINUED> (since Linux 2.6.10)"
12973 msgstr "B<WCONTINUED> (Linux 2.6.10 以降)"
12974
12975 #. type: Plain text
12976 #: build/C/man2/wait.2:165
12977 msgid ""
12978 "also return if a stopped child has been resumed by delivery of B<SIGCONT>."
12979 msgstr "停止した子プロセスが B<SIGCONT> の配送により再開した場合にも復帰する。"
12980
12981 #. type: Plain text
12982 #: build/C/man2/wait.2:167
12983 msgid "(For Linux-only options, see below.)"
12984 msgstr "(Linux 専用オプションについては後述する)"
12985
12986 #. type: Plain text
12987 #: build/C/man2/wait.2:181
12988 msgid ""
12989 "If I<status> is not NULL, B<wait>()  and B<waitpid>()  store status "
12990 "information in the I<int> to which it points.  This integer can be inspected "
12991 "with the following macros (which take the integer itself as an argument, not "
12992 "a pointer to it, as is done in B<wait>()  and B<waitpid>()!):"
12993 msgstr ""
12994 "I<status> が NULL でなければ、 B<wait>()  や B<waitpid>()  は I<status> で指"
12995 "す I<int> に状態情報を格納する。 この整数は以下のマクロを使って検査できる。 "
12996 "(これらのマクロの引き数には、 B<wait>()  や B<waitpid>()  が書き込んだ整数そ"
12997 "のものを指定する。ポインタではない!)"
12998
12999 #. type: TP
13000 #: build/C/man2/wait.2:181
13001 #, no-wrap
13002 msgid "B<WIFEXITED(>I<status>B<)>"
13003 msgstr "B<WIFEXITED(>I<status>B<)>"
13004
13005 #. type: Plain text
13006 #: build/C/man2/wait.2:189
13007 msgid ""
13008 "returns true if the child terminated normally, that is, by calling B<exit>"
13009 "(3)  or B<_exit>(2), or by returning from main()."
13010 msgstr ""
13011 "子プロセスが正常に終了した場合に真を返す。 「正常に」とは、 B<exit>(3)  か "
13012 "B<_exit>(2)  が呼び出された場合、もしくは main() から復帰した場合である。"
13013
13014 #. type: TP
13015 #: build/C/man2/wait.2:189
13016 #, no-wrap
13017 msgid "B<WEXITSTATUS(>I<status>B<)>"
13018 msgstr "B<WEXITSTATUS(>I<status>B<)>"
13019
13020 #. type: Plain text
13021 #: build/C/man2/wait.2:202
13022 msgid ""
13023 "returns the exit status of the child.  This consists of the least "
13024 "significant 8 bits of the I<status> argument that the child specified in a "
13025 "call to B<exit>(3)  or B<_exit>(2)  or as the argument for a return "
13026 "statement in main().  This macro should be employed only if B<WIFEXITED> "
13027 "returned true."
13028 msgstr ""
13029 "子プロセスの終了ステータスを返す。 終了ステータスは I<status> 引き数の下位 8"
13030 "ビットで構成されており、 B<exit>(3)  や B<_exit>(2)  の呼び出し時に渡された"
13031 "値、もしくは main() の return 文の 引き数として指定された値である。 このマク"
13032 "ロを使用するのは B<WIFEXITED> が真を返した場合だけにすべきである。"
13033
13034 #. type: TP
13035 #: build/C/man2/wait.2:202
13036 #, no-wrap
13037 msgid "B<WIFSIGNALED(>I<status>B<)>"
13038 msgstr "B<WIFSIGNALED(>I<status>B<)>"
13039
13040 #. type: Plain text
13041 #: build/C/man2/wait.2:205
13042 msgid "returns true if the child process was terminated by a signal."
13043 msgstr "子プロセスがシグナルにより終了した場合に真を返す。"
13044
13045 #. type: TP
13046 #: build/C/man2/wait.2:205
13047 #, no-wrap
13048 msgid "B<WTERMSIG(>I<status>B<)>"
13049 msgstr "B<WTERMSIG(>I<status>B<)>"
13050
13051 #. type: Plain text
13052 #: build/C/man2/wait.2:212
13053 msgid ""
13054 "returns the number of the signal that caused the child process to "
13055 "terminate.  This macro should be employed only if B<WIFSIGNALED> returned "
13056 "true."
13057 msgstr ""
13058 "子プロセス終了の原因となったシグナルの番号を返す。 このマクロを使用するのは "
13059 "B<WIFSIGNALED> が真を返した場合だけにすべきである。"
13060
13061 #. type: TP
13062 #: build/C/man2/wait.2:212
13063 #, no-wrap
13064 msgid "B<WCOREDUMP(>I<status>B<)>"
13065 msgstr "B<WCOREDUMP(>I<status>B<)>"
13066
13067 #. type: Plain text
13068 #: build/C/man2/wait.2:221
13069 msgid ""
13070 "returns true if the child produced a core dump.  This macro should be "
13071 "employed only if B<WIFSIGNALED> returned true.  This macro is not specified "
13072 "in POSIX.1-2001 and is not available on some UNIX implementations (e.g., "
13073 "AIX, SunOS).  Only use this enclosed in #ifdef WCOREDUMP ... #endif."
13074 msgstr ""
13075 "子プロセスがコアダンプを生成した場合に真を返す。 このマクロを使用するのは "
13076 "B<WIFSIGNALED> が真を返した場合だけにすべきである。 このマクロは "
13077 "POSIX.1-2001 では規定されておらず、 (AIX, SunOS などの) いくつかの UNIX の実"
13078 "装では利用できない。 必ず #ifdef WCOREDUMP ... #endif で括って使用すること。"
13079
13080 #. type: TP
13081 #: build/C/man2/wait.2:221
13082 #, no-wrap
13083 msgid "B<WIFSTOPPED(>I<status>B<)>"
13084 msgstr "B<WIFSTOPPED(>I<status>B<)>"
13085
13086 #. type: Plain text
13087 #: build/C/man2/wait.2:228
13088 msgid ""
13089 "returns true if the child process was stopped by delivery of a signal; this "
13090 "is possible only if the call was done using B<WUNTRACED> or when the child "
13091 "is being traced (see B<ptrace>(2))."
13092 msgstr ""
13093 "子プロセスがシグナルの配送により停止した場合に真を返す。 これが真になるのは、"
13094 "システムコールが B<WUNTRACED> を指定して呼び出された場合か、子プロセスがト"
13095 "レースされている場合 (B<ptrace>(2)  参照) だけである。"
13096
13097 #. type: TP
13098 #: build/C/man2/wait.2:228
13099 #, no-wrap
13100 msgid "B<WSTOPSIG(>I<status>B<)>"
13101 msgstr "B<WSTOPSIG(>I<status>B<)>"
13102
13103 #. type: Plain text
13104 #: build/C/man2/wait.2:234
13105 msgid ""
13106 "returns the number of the signal which caused the child to stop.  This macro "
13107 "should be employed only if B<WIFSTOPPED> returned true."
13108 msgstr ""
13109 "子プロセスを停止させたシグナルの番号を返す。 このマクロを使用するのは "
13110 "B<WIFSTOPPED> が 0 以外を返した場合だけにすべきである。"
13111
13112 #. type: TP
13113 #: build/C/man2/wait.2:234
13114 #, no-wrap
13115 msgid "B<WIFCONTINUED(>I<status>B<)>"
13116 msgstr "B<WIFCONTINUED(>I<status>B<)>"
13117
13118 #. type: Plain text
13119 #: build/C/man2/wait.2:239
13120 msgid ""
13121 "(since Linux 2.6.10)  returns true if the child process was resumed by "
13122 "delivery of B<SIGCONT>."
13123 msgstr ""
13124 "(Linux 2.6.10 以降)  子プロセスが B<SIGCONT> の配送により再開した場合に真を返"
13125 "す。"
13126
13127 #. type: SS
13128 #: build/C/man2/wait.2:239
13129 #, no-wrap
13130 msgid "waitid()"
13131 msgstr "waitid()"
13132
13133 #. type: Plain text
13134 #: build/C/man2/wait.2:244
13135 msgid ""
13136 "The B<waitid>()  system call (available since Linux 2.6.9) provides more "
13137 "precise control over which child state changes to wait for."
13138 msgstr ""
13139 "B<waitid>()  システムコール (Linux 2.6.9 以降で利用可能) を使うと、 子プロセ"
13140 "スのどの状態変化を待つかについてより細かな制御ができる。"
13141
13142 #. type: Plain text
13143 #: build/C/man2/wait.2:250
13144 msgid ""
13145 "The I<idtype> and I<id> arguments select the child(ren) to wait for, as "
13146 "follows:"
13147 msgstr "引き数 I<idtype> と I<id> でどの子プロセスを待つかを選択する:"
13148
13149 #. type: IP
13150 #: build/C/man2/wait.2:250
13151 #, no-wrap
13152 msgid "I<idtype> == B<P_PID>"
13153 msgstr "I<idtype> == B<P_PID>"
13154
13155 #. type: Plain text
13156 #: build/C/man2/wait.2:253
13157 msgid "Wait for the child whose process ID matches I<id>."
13158 msgstr "プロセスID が I<id> と一致する子プロセスを待つ。"
13159
13160 #. type: IP
13161 #: build/C/man2/wait.2:253
13162 #, no-wrap
13163 msgid "I<idtype> == B<P_PGID>"
13164 msgstr "I<idtype> == B<P_PGID>"
13165
13166 #. type: Plain text
13167 #: build/C/man2/wait.2:256
13168 msgid "Wait for any child whose process group ID matches I<id>."
13169 msgstr "プロセスグループID が I<id> と一致する子プロセスを待つ。"
13170
13171 #. type: IP
13172 #: build/C/man2/wait.2:256
13173 #, no-wrap
13174 msgid "I<idtype> == B<P_ALL>"
13175 msgstr "I<idtype> == B<P_ALL>"
13176
13177 #. type: Plain text
13178 #: build/C/man2/wait.2:260
13179 msgid "Wait for any child; I<id> is ignored."
13180 msgstr "子プロセス全部を対象に待つ。 I<id> は無視される。"
13181
13182 #. type: Plain text
13183 #: build/C/man2/wait.2:264
13184 msgid ""
13185 "The child state changes to wait for are specified by ORing one or more of "
13186 "the following flags in I<options>:"
13187 msgstr ""
13188 "子プロセスのどの状態変化を待つかは以下のフラグで指定する (I<options> には 1個"
13189 "以上のフラグの論理和をとって指定する):"
13190
13191 #. type: TP
13192 #: build/C/man2/wait.2:264
13193 #, no-wrap
13194 msgid "B<WEXITED>"
13195 msgstr "B<WEXITED>"
13196
13197 #. type: Plain text
13198 #: build/C/man2/wait.2:267
13199 msgid "Wait for children that have terminated."
13200 msgstr "子プロセスの終了を待つ。"
13201
13202 #. type: TP
13203 #: build/C/man2/wait.2:267
13204 #, no-wrap
13205 msgid "B<WSTOPPED>"
13206 msgstr "B<WSTOPPED>"
13207
13208 #. type: Plain text
13209 #: build/C/man2/wait.2:270
13210 msgid "Wait for children that have been stopped by delivery of a signal."
13211 msgstr "子プロセスがシグナルの配送により停止するのを待つ。"
13212
13213 #. type: TP
13214 #: build/C/man2/wait.2:270
13215 #, no-wrap
13216 msgid "B<WCONTINUED>"
13217 msgstr "B<WCONTINUED>"
13218
13219 #. type: Plain text
13220 #: build/C/man2/wait.2:275
13221 msgid ""
13222 "Wait for (previously stopped) children that have been resumed by delivery of "
13223 "B<SIGCONT>."
13224 msgstr "(停止していた) 子プロセスが B<SIGCONT> が配送されて再開するのを待つ。"
13225
13226 #. type: Plain text
13227 #: build/C/man2/wait.2:278
13228 msgid "The following flags may additionally be ORed in I<options>:"
13229 msgstr "さらに以下のフラグを論理和の形で I<options> に指定できる:"
13230
13231 #. type: Plain text
13232 #: build/C/man2/wait.2:282
13233 msgid "As for B<waitpid>()."
13234 msgstr "B<waitpid>()  と同様。"
13235
13236 #. type: TP
13237 #: build/C/man2/wait.2:282
13238 #, no-wrap
13239 msgid "B<WNOWAIT>"
13240 msgstr "B<WNOWAIT>"
13241
13242 #. type: Plain text
13243 #: build/C/man2/wait.2:286
13244 msgid ""
13245 "Leave the child in a waitable state; a later wait call can be used to again "
13246 "retrieve the child status information."
13247 msgstr ""
13248 "waitable 状態のプロセスをそのままにする。この後で wait コールを 使って、同じ"
13249 "子プロセスの状態情報をもう一度取得することができる。"
13250
13251 #. type: Plain text
13252 #: build/C/man2/wait.2:293
13253 msgid ""
13254 "Upon successful return, B<waitid>()  fills in the following fields of the "
13255 "I<siginfo_t> structure pointed to by I<infop>:"
13256 msgstr ""
13257 "成功した場合には、 B<waitid>()  は I<infop> が指す I<siginfo_t> 構造体の以下"
13258 "のフィールドを設定する:"
13259
13260 #. type: Plain text
13261 #: build/C/man2/wait.2:296
13262 msgid "The process ID of the child."
13263 msgstr "子プロセスのプロセスID。"
13264
13265 #. type: Plain text
13266 #: build/C/man2/wait.2:300
13267 msgid ""
13268 "The real user ID of the child.  (This field is not set on most other "
13269 "implementations.)"
13270 msgstr ""
13271 "子プロセスの実ユーザID (このフィールドは他のほとんどの実装では設定されない)。"
13272
13273 #. type: Plain text
13274 #: build/C/man2/wait.2:304
13275 msgid "Always set to B<SIGCHLD>."
13276 msgstr "常に B<SIGCHLD> が設定される。"
13277
13278 #. type: TP
13279 #: build/C/man2/wait.2:304
13280 #, no-wrap
13281 msgid "I<si_status>"
13282 msgstr "I<si_status>"
13283
13284 #. type: Plain text
13285 #: build/C/man2/wait.2:314
13286 msgid ""
13287 "Either the exit status of the child, as given to B<_exit>(2)  (or B<exit>"
13288 "(3)), or the signal that caused the child to terminate, stop, or continue.  "
13289 "The I<si_code> field can be used to determine how to interpret this field."
13290 msgstr ""
13291 "B<_exit>(2)  (か B<exit>(3))  に指定された子プロセスの終了ステータス、もしく"
13292 "は 子プロセスの終了、停止、再開の原因となったシグナルが設定される。 この"
13293 "フィールドをどう解釈するかは、 I<si_code> フィールドを参照して決めることがで"
13294 "きる。"
13295
13296 #. type: Plain text
13297 #: build/C/man2/wait.2:331
13298 msgid ""
13299 "Set to one of: B<CLD_EXITED> (child called B<_exit>(2)); B<CLD_KILLED> "
13300 "(child killed by signal); B<CLD_DUMPED> (child killed by signal, and dumped "
13301 "core); B<CLD_STOPPED> (child stopped by signal); B<CLD_TRAPPED> (traced "
13302 "child has trapped); or B<CLD_CONTINUED> (child continued by B<SIGCONT>)."
13303 msgstr ""
13304 "以下のいずれかが設定される: B<CLD_EXITED> (子プロセスが B<_exit>(2)  を呼び出"
13305 "した); B<CLD_KILLED> (シグナルにより子プロセスが kill された); B<CLD_DUMPED> "
13306 "(シグナルにより子プロセスが kill され、コア・ダンプが行われた); "
13307 "B<CLD_STOPPED> (シグナルにより子プロセスが停止した); B<CLD_TRAPPED> (トレース"
13308 "されていた子プロセスがトラップを受信した); B<CLD_CONTINUED> (B<SIGCONT> によ"
13309 "り子プロセスが再開された)。"
13310
13311 #.  POSIX.1-2001 leaves this possibility unspecified; most
13312 #.  implementations (including Linux) zero out the structure
13313 #.  in this case, but at least one implementation (AIX 5.1)
13314 #.  does not -- MTK Nov 04
13315 #. type: Plain text
13316 #: build/C/man2/wait.2:353
13317 msgid ""
13318 "If B<WNOHANG> was specified in I<options> and there were no children in a "
13319 "waitable state, then B<waitid>()  returns 0 immediately and the state of the "
13320 "I<siginfo_t> structure pointed to by I<infop> is unspecified.  To "
13321 "distinguish this case from that where a child was in a waitable state, zero "
13322 "out the I<si_pid> field before the call and check for a nonzero value in "
13323 "this field after the call returns."
13324 msgstr ""
13325 "B<WNOHANG> が I<options> に指定されていて、 waitable 状態の子プロセスがなかっ"
13326 "た場合には、 B<waitid>()  はすぐに 0 を返す。このとき、 I<infop> が指す "
13327 "I<siginfo_t> 構造体の内容は不定である。 この場合を waitable 状態の子プロセス"
13328 "があった場合と区別するには、 B<waitid>()  を呼び出す前に I<si_pid> を 0 にし"
13329 "ておき、コールが復帰した後でこのフィールドが 0 以外の値かどうか をチェックす"
13330 "ればよい。"
13331
13332 #. type: Plain text
13333 #: build/C/man2/wait.2:357
13334 msgid ""
13335 "B<wait>(): on success, returns the process ID of the terminated child; on "
13336 "error, -1 is returned."
13337 msgstr ""
13338 "B<wait>(): 成功すると、終了した子プロセスのプロセスID を返す。 エラーの場合 "
13339 "-1 を返す。"
13340
13341 #. type: Plain text
13342 #: build/C/man2/wait.2:366
13343 msgid ""
13344 "B<waitpid>(): on success, returns the process ID of the child whose state "
13345 "has changed; if B<WNOHANG> was specified and one or more child(ren) "
13346 "specified by I<pid> exist, but have not yet changed state, then 0 is "
13347 "returned.  On error, -1 is returned."
13348 msgstr ""
13349 "B<waitpid>(): 成功すると、状態が変化した子プロセスのプロセスID を返す。 "
13350 "B<WNOHANG> が指定されていて、 I<pid> で指示された子プロセスが一つ以上存在する"
13351 "が、どの子プロセスでも 状態変化が起こっていなかった場合は、 0 を返す。 エラー"
13352 "の場合 -1 を返す。"
13353
13354 #.  FIXME: As reported by Vegard Nossum, if infop is NULL, then waitid()
13355 #.  returns the PID of the child.  Either this is a bug, or it is intended
13356 #.  behavior that needs to be documented.  See my Jan 2009 LKML mail
13357 #.  "waitid() return value strangeness when infop is NULL".
13358 #. type: Plain text
13359 #: build/C/man2/wait.2:382
13360 msgid ""
13361 "B<waitid>(): returns 0 on success or if B<WNOHANG> was specified and no child"
13362 "(ren) specified by I<id> has yet changed state; on error, -1 is returned.  "
13363 "Each of these calls sets I<errno> to an appropriate value in the case of an "
13364 "error."
13365 msgstr ""
13366 "B<waitid>(): 成功すると 0 を返す。 B<WNOHANG> が指定されていて、 I<pid> で指"
13367 "示された子プロセスで状態変化が起こっていなかった場合にも 0 を返す。 エラーの"
13368 "場合 -1 を返す。 エラーの場合、これらのシステムコールはいずれも I<errno> に適"
13369 "切な値を設定する。"
13370
13371 #. type: TP
13372 #: build/C/man2/wait.2:383 build/C/man2/wait.2:388
13373 #, no-wrap
13374 msgid "B<ECHILD>"
13375 msgstr "B<ECHILD>"
13376
13377 #. type: Plain text
13378 #: build/C/man2/wait.2:388
13379 msgid ""
13380 "(for B<wait>())  The calling process does not have any unwaited-for children."
13381 msgstr ""
13382 "(B<wait>()  の場合)  呼び出し元プロセスには、wait を行っていない子プロセスは"
13383 "ない。"
13384
13385 #. type: Plain text
13386 #: build/C/man2/wait.2:408
13387 msgid ""
13388 "(for B<waitpid>()  or B<waitid>())  The process specified by I<pid> "
13389 "(B<waitpid>())  or I<idtype> and I<id> (B<waitid>())  does not exist or is "
13390 "not a child of the calling process.  (This can happen for one's own child if "
13391 "the action for B<SIGCHLD> is set to B<SIG_IGN>.  See also the I<Linux Notes> "
13392 "section about threads.)"
13393 msgstr ""
13394 "(B<waitpid>()  か B<waitid>()  の場合)  I<pid> (B<waitpid>())  か I<idtype> "
13395 "と I<id> (B<waitid>())  で指定したプロセスが存在しないか、呼び出し元プロセス"
13396 "の子プロセスでない (B<SIGCHLD> の動作に B<SIG_IGN> を設定した場合には、自分自"
13397 "身の子プロセスでも起こりうる。 スレッドに関しては「Linux での注意」の節も参照"
13398 "すること)。"
13399
13400 #. type: Plain text
13401 #: build/C/man2/wait.2:415
13402 msgid ""
13403 "B<WNOHANG> was not set and an unblocked signal or a B<SIGCHLD> was caught; "
13404 "see B<signal>(7)."
13405 msgstr ""
13406 "B<WNOHANG> が設定されておらず、禁止 (block) されていないシグナルや "
13407 "B<SIGCHLD> を受信した。 B<signal>(7)  参照。"
13408
13409 #. type: Plain text
13410 #: build/C/man2/wait.2:420
13411 msgid "The I<options> argument was invalid."
13412 msgstr "I<options> 引き数が不正である。"
13413
13414 #. type: Plain text
13415 #: build/C/man2/wait.2:435
13416 msgid ""
13417 "A child that terminates, but has not been waited for becomes a \"zombie\".  "
13418 "The kernel maintains a minimal set of information about the zombie process "
13419 "(PID, termination status, resource usage information)  in order to allow the "
13420 "parent to later perform a wait to obtain information about the child.  As "
13421 "long as a zombie is not removed from the system via a wait, it will consume "
13422 "a slot in the kernel process table, and if this table fills, it will not be "
13423 "possible to create further processes.  If a parent process terminates, then "
13424 "its \"zombie\" children (if any)  are adopted by B<init>(8), which "
13425 "automatically performs a wait to remove the zombies."
13426 msgstr ""
13427 "終了したが、wait されていない子プロセスは「ゾンビ」になる。 後で親プロセスが "
13428 "wait を実行して子プロセスについての情報を取得できるように、 カーネルはゾンビ"
13429 "プロセスについて最小限の情報 (PID、終了ステータス、 リソース使用状況) を保持"
13430 "する。 ゾンビプロセスは、 wait によってシステムから削除されない限り、 カーネ"
13431 "ルのプロセステーブルの 1 エントリを消費する。このプロセステーブルが 一杯にな"
13432 "ると、新たにプロセスを作ることができなくなる。 親プロセスが終了すると、その親"
13433 "プロセスの「ゾンビ」の 子プロセスは (もしあれば)  B<init>(8)  の養子となる。 "
13434 "B<init>(8)  は wait を自動的に実行し、ゾンビを削除する。"
13435
13436 #. type: Plain text
13437 #: build/C/man2/wait.2:476
13438 msgid ""
13439 "POSIX.1-2001 specifies that if the disposition of B<SIGCHLD> is set to "
13440 "B<SIG_IGN> or the B<SA_NOCLDWAIT> flag is set for B<SIGCHLD> (see "
13441 "B<sigaction>(2)), then children that terminate do not become zombies and a "
13442 "call to B<wait>()  or B<waitpid>()  will block until all children have "
13443 "terminated, and then fail with I<errno> set to B<ECHILD>.  (The original "
13444 "POSIX standard left the behavior of setting B<SIGCHLD> to B<SIG_IGN> "
13445 "unspecified.  Note that even though the default disposition of B<SIGCHLD> is "
13446 "\"ignore\", explicitly setting the disposition to B<SIG_IGN> results in "
13447 "different treatment of zombie process children.)  Linux 2.6 conforms to this "
13448 "specification.  However, Linux 2.4 (and earlier) does not: if a B<wait>()  "
13449 "or B<waitpid>()  call is made while B<SIGCHLD> is being ignored, the call "
13450 "behaves just as though B<SIGCHLD> were not being ignored, that is, the call "
13451 "blocks until the next child terminates and then returns the process ID and "
13452 "status of that child."
13453 msgstr ""
13454 "POSIX.1-2001 では以下のように規定されている。 B<SIGCHLD> の動作が B<SIG_IGN> "
13455 "に設定されたか、 B<SIGCHLD> に対して B<SA_NOCLDWAIT> フラグが設定された場合 "
13456 "(B<sigaction>(2)  参照)、終了した子プロセスはゾンビにはならず、 B<wait>()  "
13457 "や B<waitpid>()  の呼び出しは全ての子プロセスが終了するまで停止し、 子プロセ"
13458 "スが全部終了した後 I<errno> に B<ECHILD> を設定して失敗する。 (もともとの "
13459 "POSIX 標準は B<SIGCHLD> に B<SIG_IGN> を設定した場合の振る舞いを未規定のまま"
13460 "にしている。 B<SIGCHLD> のデフォルトの動作が「無視」であるにもかかわらず、 "
13461 "B<SIGCHLD> の動作として B<SIG_IGN> を明示的に設定した場合にはゾンビプロセスの"
13462 "子プロセスの扱いが 異なる点に注意すること。)  Linux 2.6 はこの仕様に準拠して"
13463 "いる。 しかし、Linux 2.4 (とそれ以前のバージョン) はそうではない: B<SIGCHLD> "
13464 "が無視される状態で B<wait>()  または B<waitpid>()  が呼び出された場合、 "
13465 "B<SIGCHLD> が無視されていないかのように振る舞う。 つまり、呼び出しによって次"
13466 "の子プロセスの終了までブロックされ、 終了した子プロセスの PID と状態が返され"
13467 "る。"
13468
13469 #. type: Plain text
13470 #: build/C/man2/wait.2:492
13471 msgid ""
13472 "In the Linux kernel, a kernel-scheduled thread is not a distinct construct "
13473 "from a process.  Instead, a thread is simply a process that is created using "
13474 "the Linux-unique B<clone>(2)  system call; other routines such as the "
13475 "portable B<pthread_create>(3)  call are implemented using B<clone>(2).  "
13476 "Before Linux 2.4, a thread was just a special case of a process, and as a "
13477 "consequence one thread could not wait on the children of another thread, "
13478 "even when the latter belongs to the same thread group.  However, POSIX "
13479 "prescribes such functionality, and since Linux 2.4 a thread can, and by "
13480 "default will, wait on children of other threads in the same thread group."
13481 msgstr ""
13482 "Linux カーネルでは、カーネルによってスケジュールされるスレッドは プロセスと明"
13483 "確に区別できる構成要素ではない。スレッドは Linux 固有の B<clone>(2)  システム"
13484 "コールを使用して生成されるプロセスに過ぎない。 移植性のある B<pthread_create>"
13485 "(3)  コールのような他のルーチンは B<clone>(2)  を使用して実装されている; これ"
13486 "らでは B<waitid>()  を使うことはできない。 Linux 2.4 より前では、スレッドは単"
13487 "に特殊なプロセスであったので、 例え同じスレッドグループであっても、 あるス"
13488 "レッドが別のスレッドの子プロセスが終了するのを待つことは出来なかった。 しか"
13489 "し、POSIX ではこのような機能を規定しており、 Linux 2.4 以降では、あるスレッド"
13490 "が同じスレッドグループの他のスレッドの 子プロセスが終了するのを待つことができ"
13491 "るようになった。 そして将来はこれがデフォルトの動作になるであろう。"
13492
13493 #. type: Plain text
13494 #: build/C/man2/wait.2:499
13495 msgid ""
13496 "The following Linux-specific I<options> are for use with children created "
13497 "using B<clone>(2); they cannot be used with B<waitid>():"
13498 msgstr ""
13499 "B<clone>(2)  を用いて作られた子プロセスには、以下の Linux 固有の I<options> "
13500 "が使用できる。"
13501
13502 #. type: TP
13503 #: build/C/man2/wait.2:499
13504 #, no-wrap
13505 msgid "B<__WCLONE>"
13506 msgstr "B<__WCLONE>"
13507
13508 #.  since 0.99pl10
13509 #. type: Plain text
13510 #: build/C/man2/wait.2:510
13511 msgid ""
13512 "Wait for \"clone\" children only.  If omitted then wait for \"non-clone\" "
13513 "children only.  (A \"clone\" child is one which delivers no signal, or a "
13514 "signal other than B<SIGCHLD> to its parent upon termination.)  This option "
13515 "is ignored if B<__WALL> is also specified."
13516 msgstr ""
13517 "\"clone\" な子プロセスだけを待つ。 指定されなかった場合は非 \"clone\" な子プ"
13518 "ロセスだけを待つ (\"clone\" な子プロセスは、終了時に親プロセスへ全くシグナル"
13519 "を送らないか、 B<SIGCHLD> 以外のシグナルを送る)。 このオプションは B<__WALL> "
13520 "も指定された場合は無視される。"
13521
13522 #. type: TP
13523 #: build/C/man2/wait.2:510
13524 #, no-wrap
13525 msgid "B<__WALL> (since Linux 2.4)"
13526 msgstr "B<__WALL> (Linux 2.4 以降)"
13527
13528 #.  since patch-2.3.48
13529 #. type: Plain text
13530 #: build/C/man2/wait.2:515
13531 msgid "Wait for all children, regardless of type (\"clone\" or \"non-clone\")."
13532 msgstr "\"clone\" であるかないかに関わらず、 全ての子プロセスを待つ。"
13533
13534 #. type: TP
13535 #: build/C/man2/wait.2:515
13536 #, no-wrap
13537 msgid "B<__WNOTHREAD> (since Linux 2.4)"
13538 msgstr "B<__WNOTHREAD> (Linux 2.4 以降)"
13539
13540 #.  since patch-2.4.0-test8
13541 #. type: Plain text
13542 #: build/C/man2/wait.2:521
13543 msgid ""
13544 "Do not wait for children of other threads in the same thread group.  This "
13545 "was the default before Linux 2.4."
13546 msgstr ""
13547 "同じスレッドグループの他のスレッドの子プロセスは待たない。 Linux 2.4 より前で"
13548 "はデフォルトであった。"
13549
13550 #. type: Plain text
13551 #: build/C/man2/wait.2:536
13552 msgid ""
13553 "According to POSIX.1-2008, an application calling B<waitid>()  must ensure "
13554 "that I<infop> points to a I<siginfo_t> structure (i.e., that it is a non-"
13555 "NULL pointer).  On Linux, if I<infop> is NULL, B<waitid>()  succeeds, and "
13556 "returns the process ID of the waited-for child.  Applications should avoid "
13557 "relying on this inconsistent, nonstandard, and unnecessary feature."
13558 msgstr ""
13559 "POSIX.1-2008 によると、 B<waitid>() を呼び出すアプリケーションは、 I<infop> "
13560 "が I<siginfo_t> 構造体を指していること (つまり I<infop> が NULL でないポイン"
13561 "タであること) を保証しなければならない。 Linux では、 I<infop> が NULL の場"
13562 "合、 B<waitid>() は成功し、wait している子プロセスのプロセス ID を返す。 アプ"
13563 "リケーションは、この食い違った、非標準で、不必要な機能に依存しないようにすべ"
13564 "きである。"
13565
13566 #.  fork.2 refers to this example program.
13567 #. type: Plain text
13568 #: build/C/man2/wait.2:553
13569 msgid ""
13570 "The following program demonstrates the use of B<fork>(2)  and B<waitpid>().  "
13571 "The program creates a child process.  If no command-line argument is "
13572 "supplied to the program, then the child suspends its execution using B<pause>"
13573 "(2), to allow the user to send signals to the child.  Otherwise, if a "
13574 "command-line argument is supplied, then the child exits immediately, using "
13575 "the integer supplied on the command line as the exit status.  The parent "
13576 "process executes a loop that monitors the child using B<waitpid>(), and uses "
13577 "the W*() macros described above to analyze the wait status value."
13578 msgstr ""
13579 "以下のプログラムは、 B<fork>(2)  と B<waitpid>()  の使用方法の例を示してい"
13580 "る。 このプログラムでは子プロセスを生成する。 コマンドライン引き数が指定され"
13581 "なかったときは、 子プロセスは B<pause>(2)  を使ってその実行を一時停止し、ユー"
13582 "ザがその子プロセスに シグナルを送信できるようにする。 コマンドライン引き数が"
13583 "指定された場合は、 子プロセスは直ちに終了し、 コマンドラインで指定された整数"
13584 "を終了ステータスとして使用する。 親プロセスは、 B<waitpid>()  を使って子プロ"
13585 "セスを監視し、 wait のステータス値を上記の W*() マクロを使って解析するという "
13586 "ループを実行する。"
13587
13588 #. type: Plain text
13589 #: build/C/man2/wait.2:569
13590 #, no-wrap
13591 msgid ""
13592 "$B< ./a.out &>\n"
13593 "Child PID is 32360\n"
13594 "[1] 32359\n"
13595 "$B< kill -STOP 32360>\n"
13596 "stopped by signal 19\n"
13597 "$B< kill -CONT 32360>\n"
13598 "continued\n"
13599 "$B< kill -TERM 32360>\n"
13600 "killed by signal 15\n"
13601 "[1]+  Done                    ./a.out\n"
13602 "$\n"
13603 msgstr ""
13604 "$B< ./a.out &>\n"
13605 "Child PID is 32360\n"
13606 "[1] 32359\n"
13607 "$B< kill -STOP 32360>\n"
13608 "stopped by signal 19\n"
13609 "$B< kill -CONT 32360>\n"
13610 "continued\n"
13611 "$B< kill -TERM 32360>\n"
13612 "killed by signal 15\n"
13613 "[1]+  Done                    ./a.out\n"
13614 "$\n"
13615
13616 #. type: Plain text
13617 #: build/C/man2/wait.2:578
13618 #, no-wrap
13619 msgid ""
13620 "#include E<lt>sys/wait.hE<gt>\n"
13621 "#include E<lt>stdlib.hE<gt>\n"
13622 "#include E<lt>unistd.hE<gt>\n"
13623 "#include E<lt>stdio.hE<gt>\n"
13624 msgstr ""
13625 "#include E<lt>sys/wait.hE<gt>\n"
13626 "#include E<lt>stdlib.hE<gt>\n"
13627 "#include E<lt>unistd.hE<gt>\n"
13628 "#include E<lt>stdio.hE<gt>\n"
13629
13630 #. type: Plain text
13631 #: build/C/man2/wait.2:584
13632 #, no-wrap
13633 msgid ""
13634 "int\n"
13635 "main(int argc, char *argv[])\n"
13636 "{\n"
13637 "    pid_t cpid, w;\n"
13638 "    int status;\n"
13639 msgstr ""
13640 "int\n"
13641 "main(int argc, char *argv[])\n"
13642 "{\n"
13643 "    pid_t cpid, w;\n"
13644 "    int status;\n"
13645
13646 #. type: Plain text
13647 #: build/C/man2/wait.2:590
13648 #, no-wrap
13649 msgid ""
13650 "    cpid = fork();\n"
13651 "    if (cpid == -1) {\n"
13652 "        perror(\"fork\");\n"
13653 "        exit(EXIT_FAILURE);\n"
13654 "    }\n"
13655 msgstr ""
13656 "    cpid = fork();\n"
13657 "    if (cpid == -1) {\n"
13658 "        perror(\"fork\");\n"
13659 "        exit(EXIT_FAILURE);\n"
13660 "    }\n"
13661
13662 #. type: Plain text
13663 #: build/C/man2/wait.2:596
13664 #, no-wrap
13665 msgid ""
13666 "    if (cpid == 0) {            /* Code executed by child */\n"
13667 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
13668 "        if (argc == 1)\n"
13669 "            pause();                    /* Wait for signals */\n"
13670 "        _exit(atoi(argv[1]));\n"
13671 msgstr ""
13672 "    if (cpid == 0) {            /* Code executed by child */\n"
13673 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
13674 "        if (argc == 1)\n"
13675 "            pause();                    /* Wait for signals */\n"
13676 "        _exit(atoi(argv[1]));\n"
13677
13678 #. type: Plain text
13679 #: build/C/man2/wait.2:604
13680 #, no-wrap
13681 msgid ""
13682 "    } else {                    /* Code executed by parent */\n"
13683 "        do {\n"
13684 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
13685 "            if (w == -1) {\n"
13686 "                perror(\"waitpid\");\n"
13687 "                exit(EXIT_FAILURE);\n"
13688 "            }\n"
13689 msgstr ""
13690 "    } else {                    /* Code executed by parent */\n"
13691 "        do {\n"
13692 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
13693 "            if (w == -1) {\n"
13694 "                perror(\"waitpid\");\n"
13695 "                exit(EXIT_FAILURE);\n"
13696 "            }\n"
13697
13698 #. type: Plain text
13699 #: build/C/man2/wait.2:618
13700 #, no-wrap
13701 msgid ""
13702 "            if (WIFEXITED(status)) {\n"
13703 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
13704 "            } else if (WIFSIGNALED(status)) {\n"
13705 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
13706 "            } else if (WIFSTOPPED(status)) {\n"
13707 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
13708 "            } else if (WIFCONTINUED(status)) {\n"
13709 "                printf(\"continued\\en\");\n"
13710 "            }\n"
13711 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
13712 "        exit(EXIT_SUCCESS);\n"
13713 "    }\n"
13714 "}\n"
13715 msgstr ""
13716 "            if (WIFEXITED(status)) {\n"
13717 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
13718 "            } else if (WIFSIGNALED(status)) {\n"
13719 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
13720 "            } else if (WIFSTOPPED(status)) {\n"
13721 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
13722 "            } else if (WIFCONTINUED(status)) {\n"
13723 "                printf(\"continued\\en\");\n"
13724 "            }\n"
13725 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
13726 "        exit(EXIT_SUCCESS);\n"
13727 "    }\n"
13728 "}\n"
13729
13730 #. type: Plain text
13731 #: build/C/man2/wait.2:631
13732 msgid ""
13733 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), B<sigaction>"
13734 "(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), B<credentials>(7), "
13735 "B<signal>(7)"
13736 msgstr ""
13737 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), B<sigaction>"
13738 "(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), B<credentials>(7), "
13739 "B<signal>(7)"
13740
13741 #. type: TH
13742 #: build/C/man2/wait4.2:33
13743 #, no-wrap
13744 msgid "WAIT4"
13745 msgstr "WAIT4"
13746
13747 #. type: TH
13748 #: build/C/man2/wait4.2:33
13749 #, no-wrap
13750 msgid "2012-09-23"
13751 msgstr "2012-09-23"
13752
13753 #. type: Plain text
13754 #: build/C/man2/wait4.2:36
13755 msgid "wait3, wait4 - wait for process to change state, BSD style"
13756 msgstr "wait3, wait4 - BSD スタイルでプロセスの状態変化を待つ"
13757
13758 #. type: Plain text
13759 #: build/C/man2/wait4.2:42
13760 #, no-wrap
13761 msgid ""
13762 "B<#include E<lt>sys/types.hE<gt>>\n"
13763 "B<#include E<lt>sys/time.hE<gt>>\n"
13764 "B<#include E<lt>sys/resource.hE<gt>>\n"
13765 "B<#include E<lt>sys/wait.hE<gt>>\n"
13766 msgstr ""
13767 "B<#include E<lt>sys/types.hE<gt>>\n"
13768 "B<#include E<lt>sys/time.hE<gt>>\n"
13769 "B<#include E<lt>sys/resource.hE<gt>>\n"
13770 "B<#include E<lt>sys/wait.hE<gt>>\n"
13771
13772 #. type: Plain text
13773 #: build/C/man2/wait4.2:45
13774 #, no-wrap
13775 msgid ""
13776 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
13777 "B<            struct rusage *>I<rusage>B<);>\n"
13778 msgstr ""
13779 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
13780 "B<            struct rusage *>I<rusage>B<);>\n"
13781
13782 #. type: Plain text
13783 #: build/C/man2/wait4.2:48
13784 #, no-wrap
13785 msgid ""
13786 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
13787 "B<            struct rusage *>I<rusage>B<);>\n"
13788 msgstr ""
13789 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
13790 "B<            struct rusage *>I<rusage>B<);>\n"
13791
13792 #. type: Plain text
13793 #: build/C/man2/wait4.2:57
13794 msgid "B<wait3>():"
13795 msgstr "B<wait3>():"
13796
13797 #. type: Plain text
13798 #: build/C/man2/wait4.2:63
13799 msgid "B<wait4>():"
13800 msgstr "B<wait4>():"
13801
13802 #. type: Plain text
13803 #: build/C/man2/wait4.2:65
13804 msgid "_BSD_SOURCE"
13805 msgstr "_BSD_SOURCE"
13806
13807 #. type: Plain text
13808 #: build/C/man2/wait4.2:73
13809 msgid ""
13810 "These functions are obsolete; use B<waitpid>(2)  or B<waitid>(2)  in new "
13811 "programs."
13812 msgstr ""
13813 "これらの関数は廃止予定である。 新しいプログラムでは B<waitpid>(2) や "
13814 "B<waitid>(2) を使用すること。"
13815
13816 #. type: Plain text
13817 #: build/C/man2/wait4.2:83
13818 msgid ""
13819 "The B<wait3>()  and B<wait4>()  system calls are similar to B<waitpid>(2), "
13820 "but additionally return resource usage information about the child in the "
13821 "structure pointed to by I<rusage>."
13822 msgstr ""
13823 "システムコール B<wait3>()  と B<wait4>()  は B<waitpid>(2)  と同様の動作をす"
13824 "る。それに加え、子プロセスのリソース使用状況の情報を I<rusage> が指す構造体に"
13825 "入れて返す。"
13826
13827 #. type: Plain text
13828 #: build/C/man2/wait4.2:89
13829 msgid ""
13830 "Other than the use of the I<rusage> argument, the following B<wait3>()  call:"
13831 msgstr "I<rusage> を使用する点を除けば、次の B<wait3>()  の呼び出し"
13832
13833 #. type: Plain text
13834 #: build/C/man2/wait4.2:92
13835 #, no-wrap
13836 msgid "    wait3(status, options, rusage);\n"
13837 msgstr "    wait3(status, options, rusage);\n"
13838
13839 #. type: Plain text
13840 #: build/C/man2/wait4.2:95 build/C/man2/wait4.2:109
13841 msgid "is equivalent to:"
13842 msgstr "は以下と等価である。"
13843
13844 #. type: Plain text
13845 #: build/C/man2/wait4.2:98
13846 #, no-wrap
13847 msgid "    waitpid(-1, status, options);\n"
13848 msgstr "    waitpid(-1, status, options);\n"
13849
13850 #. type: Plain text
13851 #: build/C/man2/wait4.2:103
13852 msgid "Similarly, the following B<wait4>()  call:"
13853 msgstr "同様に、次の B<wait4>()  の呼び出し"
13854
13855 #. type: Plain text
13856 #: build/C/man2/wait4.2:106
13857 #, no-wrap
13858 msgid "    wait4(pid, status, options, rusage);\n"
13859 msgstr "    wait4(pid, status, options, rusage);\n"
13860
13861 #. type: Plain text
13862 #: build/C/man2/wait4.2:112
13863 #, no-wrap
13864 msgid "    waitpid(pid, status, options);\n"
13865 msgstr "    waitpid(pid, status, options);\n"
13866
13867 #. type: Plain text
13868 #: build/C/man2/wait4.2:122
13869 msgid ""
13870 "In other words, B<wait3>()  waits of any child, while B<wait4>()  can be "
13871 "used to select a specific child, or children, on which to wait.  See B<wait>"
13872 "(2)  for further details."
13873 msgstr ""
13874 "言い換えると、 B<wait3>()  は全ての子プロセスを対象に待つが、 B<wait4>()  で"
13875 "は特定の子プロセス (複数可) を選んで待つことができる。"
13876
13877 #. type: Plain text
13878 #: build/C/man2/wait4.2:132
13879 msgid ""
13880 "If I<rusage> is not NULL, the I<struct rusage> to which it points will be "
13881 "filled with accounting information about the child.  See B<getrusage>(2)  "
13882 "for details."
13883 msgstr ""
13884 "I<rusage> が NULL でない場合、 I<rusage> が指す I<rusage 構造体> には子プロセ"
13885 "スのアカウント情報が格納される。 詳しくは B<getrusage>(2)  を参照のこと。"
13886
13887 #. type: Plain text
13888 #: build/C/man2/wait4.2:135 build/C/man2/wait4.2:138
13889 msgid "As for B<waitpid>(2)."
13890 msgstr "B<waitpid>(2)  と同様。"
13891
13892 #. type: Plain text
13893 #: build/C/man2/wait4.2:140
13894 msgid "4.3BSD."
13895 msgstr "4.3BSD."
13896
13897 #. type: Plain text
13898 #: build/C/man2/wait4.2:147
13899 msgid ""
13900 "SUSv1 included a specification of B<wait3>(); SUSv2 included B<wait3>(), but "
13901 "marked it LEGACY; SUSv3 removed it."
13902 msgstr ""
13903 "SUSv1 には B<wait3>() の規定があった。 SUSv2 には B<wait3>() が含まれていた"
13904 "が、「過去の名残 (LEGACY)」となっていた。 SUSv3 では B<wait3>() は削除され"
13905 "た。"
13906
13907 #. type: Plain text
13908 #: build/C/man2/wait4.2:159
13909 msgid ""
13910 "Including I<E<lt>sys/time.hE<gt>> is not required these days, but increases "
13911 "portability.  (Indeed, I<E<lt>sys/resource.hE<gt>> defines the I<rusage> "
13912 "structure with fields of type I<struct timeval> defined in I<E<lt>sys/time."
13913 "hE<gt>>.)"
13914 msgstr ""
13915 "現在では I<E<lt>sys/time.hE<gt>> をインクルードする必要はないが、インクルード"
13916 "しておくと 移植性を高めることができる (実際には I<E<lt>sys/resource.hE<gt>> "
13917 "で I<rusage> 構造体が定義されているが、そのフィールドで使用されている "
13918 "I<struct timeval> 型は I<E<lt>sys/time.hE<gt>> で定義されている)。"
13919
13920 #. type: Plain text
13921 #: build/C/man2/wait4.2:165
13922 msgid ""
13923 "On Linux, B<wait3>()  is a library function implemented on top of the "
13924 "B<wait4>()  system call."
13925 msgstr ""
13926 "Linux では、 B<wait3>()  はライブラリ関数であり、 B<wait4>()  システムコール"
13927 "を使って実装されている。"
13928
13929 #. type: Plain text
13930 #: build/C/man2/wait4.2:172
13931 msgid ""
13932 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
13933 "B<signal>(7)"
13934 msgstr ""
13935 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
13936 "B<signal>(7)"
13937
13938 #~ msgid "B<sigaction>()  returns 0 on success and -1 on error."
13939 #~ msgstr "B<sigaction>()  は成功すれば 0 を返し、エラーならば -1 を返す。"
13940
13941 #~ msgid "B<sigpending>()  returns 0 on success and -1 on error."
13942 #~ msgstr "B<sigpending>()  は成功すれば 0 を返し、エラーならば -1 を返す。"
13943
13944 #~ msgid "B<sigprocmask>()  returns 0 on success and -1 on error."
13945 #~ msgstr "B<sigprocmask>()  は成功すれば 0 を返し、エラーならば -1 を返す。"