OSDN Git Service

(split) LDP: Update ja.po (editorical only)
[linuxjm/LDP_man-pages.git] / po4a / signal / po / ja.po
1 # SOME DESCRIPTIVE TITLE
2 # Copyright (C) YEAR Free Software Foundation, Inc.
3 # This file is distributed under the same license as the PACKAGE package.
4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5 #
6 msgid ""
7 msgstr ""
8 "Project-Id-Version: PACKAGE VERSION\n"
9 "POT-Creation-Date: 2013-03-22 01:06+0900\n"
10 "PO-Revision-Date: 2013-03-26 17:56+0900\n"
11 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12 "Language-Team: LANGUAGE <LL@li.org>\n"
13 "Language: \n"
14 "MIME-Version: 1.0\n"
15 "Content-Type: text/plain; charset=UTF-8\n"
16 "Content-Transfer-Encoding: 8bit\n"
17
18 #. type: TH
19 #: build/C/man3/bsd_signal.3:25
20 #, no-wrap
21 msgid "BSD_SIGNAL"
22 msgstr "BSD_SIGNAL"
23
24 #. type: TH
25 #: build/C/man3/bsd_signal.3:25
26 #, no-wrap
27 msgid "2009-03-15"
28 msgstr "2009-03-15"
29
30 #. type: TH
31 #: build/C/man3/bsd_signal.3:25 build/C/man2/eventfd.2:22
32 #: build/C/man2/getitimer.2:12 build/C/man3/gsignal.3:27
33 #: build/C/man2/kill.2:44 build/C/man2/killpg.2:42 build/C/man2/pause.2:30
34 #: build/C/man2/prctl.2:52 build/C/man3/profil.3:28 build/C/man3/psignal.3:30
35 #: build/C/man3/raise.3:29 build/C/man2/rt_sigqueueinfo.2:25
36 #: build/C/man2/s390_runtime_instr.2:26 build/C/man2/sgetmask.2:26
37 #: build/C/man2/sigaction.2:47 build/C/man2/sigaltstack.2:27
38 #: build/C/man7/sigevent.7:26 build/C/man3/siginterrupt.3:31
39 #: build/C/man2/signal.2:36 build/C/man7/signal.7:46
40 #: build/C/man2/signalfd.2:20 build/C/man3/sigpause.3:25
41 #: build/C/man2/sigpending.2:29 build/C/man2/sigprocmask.2:29
42 #: build/C/man3/sigqueue.3:28 build/C/man2/sigreturn.2:29
43 #: build/C/man3/sigset.3:26 build/C/man3/sigsetops.3:31
44 #: build/C/man2/sigsuspend.2:29 build/C/man3/sigvec.3:26
45 #: build/C/man3/sigwait.3:26 build/C/man2/sigwaitinfo.2:25
46 #: build/C/man3/sysv_signal.3:25 build/C/man2/timer_create.2:31
47 #: build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26
48 #: build/C/man2/timer_settime.2:26 build/C/man2/timerfd_create.2:21
49 #: build/C/man2/tkill.2:29 build/C/man2/wait.2:49 build/C/man2/wait4.2:33
50 #, no-wrap
51 msgid "Linux Programmer's Manual"
52 msgstr "Linux Programmer's Manual"
53
54 #. type: SH
55 #: build/C/man3/bsd_signal.3:26 build/C/man2/eventfd.2:23
56 #: build/C/man2/getitimer.2:13 build/C/man3/gsignal.3:28
57 #: build/C/man2/kill.2:45 build/C/man2/killpg.2:43 build/C/man2/pause.2:31
58 #: build/C/man2/prctl.2:53 build/C/man3/profil.3:29 build/C/man3/psignal.3:31
59 #: build/C/man3/raise.3:30 build/C/man2/rt_sigqueueinfo.2:26
60 #: build/C/man2/s390_runtime_instr.2:27 build/C/man2/sgetmask.2:27
61 #: build/C/man2/sigaction.2:48 build/C/man2/sigaltstack.2:28
62 #: build/C/man7/sigevent.7:27 build/C/man3/siginterrupt.3:32
63 #: build/C/man2/signal.2:37 build/C/man7/signal.7:47
64 #: build/C/man2/signalfd.2:21 build/C/man3/sigpause.3:26
65 #: build/C/man2/sigpending.2:30 build/C/man2/sigprocmask.2:30
66 #: build/C/man3/sigqueue.3:29 build/C/man2/sigreturn.2:30
67 #: build/C/man3/sigset.3:27 build/C/man3/sigsetops.3:32
68 #: build/C/man2/sigsuspend.2:30 build/C/man3/sigvec.3:27
69 #: build/C/man3/sigwait.3:27 build/C/man2/sigwaitinfo.2:26
70 #: build/C/man3/sysv_signal.3:26 build/C/man2/timer_create.2:32
71 #: build/C/man2/timer_delete.2:27 build/C/man2/timer_getoverrun.2:27
72 #: build/C/man2/timer_settime.2:27 build/C/man2/timerfd_create.2:22
73 #: build/C/man2/tkill.2:30 build/C/man2/wait.2:50 build/C/man2/wait4.2:34
74 #, no-wrap
75 msgid "NAME"
76 msgstr "名前"
77
78 #. type: Plain text
79 #: build/C/man3/bsd_signal.3:28
80 msgid "bsd_signal - signal handling with BSD semantics"
81 msgstr "bsd_signal - BSD 方式のシグナル処理"
82
83 #. type: SH
84 #: build/C/man3/bsd_signal.3:28 build/C/man2/eventfd.2:25
85 #: build/C/man2/getitimer.2:15 build/C/man3/gsignal.3:30
86 #: build/C/man2/kill.2:47 build/C/man2/killpg.2:45 build/C/man2/pause.2:33
87 #: build/C/man2/prctl.2:55 build/C/man3/profil.3:31 build/C/man3/psignal.3:33
88 #: build/C/man3/raise.3:32 build/C/man2/rt_sigqueueinfo.2:28
89 #: build/C/man2/s390_runtime_instr.2:29 build/C/man2/sgetmask.2:29
90 #: build/C/man2/sigaction.2:50 build/C/man2/sigaltstack.2:30
91 #: build/C/man7/sigevent.7:29 build/C/man3/siginterrupt.3:34
92 #: build/C/man2/signal.2:39 build/C/man2/signalfd.2:23
93 #: build/C/man3/sigpause.3:28 build/C/man2/sigpending.2:32
94 #: build/C/man2/sigprocmask.2:32 build/C/man3/sigqueue.3:31
95 #: build/C/man2/sigreturn.2:32 build/C/man3/sigset.3:29
96 #: build/C/man3/sigsetops.3:35 build/C/man2/sigsuspend.2:32
97 #: build/C/man3/sigvec.3:29 build/C/man3/sigwait.3:29
98 #: build/C/man2/sigwaitinfo.2:28 build/C/man3/sysv_signal.3:28
99 #: build/C/man2/timer_create.2:34 build/C/man2/timer_delete.2:29
100 #: build/C/man2/timer_getoverrun.2:29 build/C/man2/timer_settime.2:30
101 #: build/C/man2/timerfd_create.2:25 build/C/man2/tkill.2:32
102 #: build/C/man2/wait.2:52 build/C/man2/wait4.2:36
103 #, no-wrap
104 msgid "SYNOPSIS"
105 msgstr "書式"
106
107 #. type: Plain text
108 #: build/C/man3/bsd_signal.3:30
109 msgid "B<#define _XOPEN_SOURCE> /* See feature_test_macros(7) */"
110 msgstr "B<#define _XOPEN_SOURCE> /* feature_test_macros(7) 参照 */"
111
112 #. type: Plain text
113 #: build/C/man3/bsd_signal.3:32 build/C/man2/killpg.2:47
114 #: build/C/man2/sigaltstack.2:32 build/C/man2/signal.2:41
115 #: build/C/man2/sigpending.2:34 build/C/man2/sigprocmask.2:34
116 #: build/C/man3/sigqueue.3:33 build/C/man3/sigset.3:31
117 #: build/C/man3/sigsetops.3:37 build/C/man2/sigsuspend.2:34
118 #: build/C/man3/sigvec.3:31 build/C/man3/sysv_signal.3:32
119 msgid "B<#include E<lt>signal.hE<gt>>"
120 msgstr "B<#include E<lt>signal.hE<gt>>"
121
122 #. type: Plain text
123 #: build/C/man3/bsd_signal.3:34 build/C/man2/signal.2:43
124 #: build/C/man3/sigset.3:33 build/C/man3/sysv_signal.3:34
125 msgid "B<typedef void (*sighandler_t)(int);>"
126 msgstr "B<typedef void (*sighandler_t)(int);>"
127
128 #. type: Plain text
129 #: build/C/man3/bsd_signal.3:36
130 msgid ""
131 "B<sighandler_t bsd_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
132 msgstr ""
133 "B<sighandler_t bsd_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
134
135 #. type: SH
136 #: build/C/man3/bsd_signal.3:36 build/C/man2/eventfd.2:29
137 #: build/C/man2/getitimer.2:24 build/C/man3/gsignal.3:49
138 #: build/C/man2/kill.2:65 build/C/man2/killpg.2:60 build/C/man2/pause.2:37
139 #: build/C/man2/prctl.2:62 build/C/man3/profil.3:44 build/C/man3/psignal.3:56
140 #: build/C/man3/raise.3:38 build/C/man2/rt_sigqueueinfo.2:38
141 #: build/C/man2/s390_runtime_instr.2:35 build/C/man2/sgetmask.2:36
142 #: build/C/man2/sigaction.2:70 build/C/man2/sigaltstack.2:51
143 #: build/C/man7/sigevent.7:52 build/C/man3/siginterrupt.3:55
144 #: build/C/man2/signal.2:45 build/C/man7/signal.7:49
145 #: build/C/man2/signalfd.2:27 build/C/man3/sigpause.3:36
146 #: build/C/man2/sigpending.2:46 build/C/man2/sigprocmask.2:47
147 #: build/C/man3/sigqueue.3:43 build/C/man2/sigreturn.2:34
148 #: build/C/man3/sigset.3:58 build/C/man3/sigsetops.3:63
149 #: build/C/man2/sigsuspend.2:46 build/C/man3/sigvec.3:49
150 #: build/C/man3/sigwait.3:45 build/C/man2/sigwaitinfo.2:46
151 #: build/C/man3/sysv_signal.3:36 build/C/man2/timer_create.2:52
152 #: build/C/man2/timer_delete.2:45 build/C/man2/timer_getoverrun.2:45
153 #: build/C/man2/timer_settime.2:50 build/C/man2/timerfd_create.2:37
154 #: build/C/man2/tkill.2:41 build/C/man2/wait.2:81 build/C/man2/wait4.2:67
155 #, no-wrap
156 msgid "DESCRIPTION"
157 msgstr "説明"
158
159 #. type: Plain text
160 #: build/C/man3/bsd_signal.3:41
161 msgid ""
162 "The B<bsd_signal>()  function takes the same arguments, and performs the "
163 "same task, as B<signal>(2)."
164 msgstr ""
165 "B<bsd_signal>()  関数は B<signal>(2)  と同じ引き数をとり、同じ処理を実行す"
166 "る。"
167
168 #. type: Plain text
169 #: build/C/man3/bsd_signal.3:54
170 msgid ""
171 "The difference between the two is that B<bsd_signal>()  is guaranteed to "
172 "provide reliable signal semantics, that is: a) the disposition of the signal "
173 "is not reset to the default when the handler is invoked; b) delivery of "
174 "further instances of the signal is blocked while the signal handler is "
175 "executing; and c) if the handler interrupts a blocking system call, then the "
176 "system call is automatically restarted.  A portable application cannot rely "
177 "on B<signal>(2)  to provide these guarantees."
178 msgstr ""
179 "両者の違いは、 B<bsd_signal>()  では信頼性のあるシグナル処理方式の提供が保証"
180 "されていることである。 信頼性のあるシグナル処理方式は以下の特徴を持つ。 a) ハ"
181 "ンドラが起動された場合に、シグナルの処理方法 (disposition) が デフォルトにリ"
182 "セットされない、 b) シグナルハンドラの実行中は、それ以降に発生した同じシグナ"
183 "ルの配送が ブロックされない、 c) ハンドラが停止中の (blocking している) シス"
184 "テムコールを 中断した場合、そのシステムコールが自動的に再開される。 移植性が"
185 "必要なアプリケーションでは、 B<signal>(2)  でこれらが保証されることを前提にす"
186 "べきではない。"
187
188 #. type: SH
189 #: build/C/man3/bsd_signal.3:54 build/C/man2/eventfd.2:222
190 #: build/C/man2/getitimer.2:122 build/C/man2/kill.2:99
191 #: build/C/man2/killpg.2:89 build/C/man2/pause.2:42 build/C/man2/prctl.2:766
192 #: build/C/man3/profil.3:66 build/C/man3/psignal.3:89 build/C/man3/raise.3:61
193 #: build/C/man2/rt_sigqueueinfo.2:129 build/C/man2/s390_runtime_instr.2:55
194 #: build/C/man2/sgetmask.2:59 build/C/man2/sigaction.2:660
195 #: build/C/man2/sigaltstack.2:133 build/C/man3/siginterrupt.3:73
196 #: build/C/man2/signal.2:97 build/C/man2/signalfd.2:251
197 #: build/C/man3/sigpause.3:48 build/C/man2/sigpending.2:53
198 #: build/C/man2/sigprocmask.2:93 build/C/man3/sigqueue.3:83
199 #: build/C/man2/sigreturn.2:53 build/C/man3/sigset.3:129
200 #: build/C/man3/sigsetops.3:107 build/C/man2/sigsuspend.2:70
201 #: build/C/man3/sigvec.3:199 build/C/man3/sigwait.3:69
202 #: build/C/man2/sigwaitinfo.2:105 build/C/man3/sysv_signal.3:51
203 #: build/C/man2/timer_create.2:167 build/C/man2/timer_delete.2:53
204 #: build/C/man2/timer_getoverrun.2:82 build/C/man2/timer_settime.2:173
205 #: build/C/man2/timerfd_create.2:287 build/C/man2/tkill.2:95
206 #: build/C/man2/wait.2:353 build/C/man2/wait4.2:132
207 #, no-wrap
208 msgid "RETURN VALUE"
209 msgstr "返り値"
210
211 #. type: Plain text
212 #: build/C/man3/bsd_signal.3:60
213 msgid ""
214 "The B<bsd_signal>()  function returns the previous value of the signal "
215 "handler, or B<SIG_ERR> on error."
216 msgstr ""
217 "B<bsd_signal>()  関数はシグナルハンドラの直前の値を返す。 エラーの場合、 "
218 "B<SIG_ERR> を返す。"
219
220 #. type: SH
221 #: build/C/man3/bsd_signal.3:60 build/C/man2/eventfd.2:229
222 #: build/C/man2/getitimer.2:127 build/C/man2/kill.2:104
223 #: build/C/man2/killpg.2:94 build/C/man2/pause.2:53 build/C/man2/prctl.2:784
224 #: build/C/man2/rt_sigqueueinfo.2:134 build/C/man2/s390_runtime_instr.2:66
225 #: build/C/man2/sgetmask.2:64 build/C/man2/sigaction.2:663
226 #: build/C/man2/sigaltstack.2:137 build/C/man3/siginterrupt.3:78
227 #: build/C/man2/signal.2:102 build/C/man2/signalfd.2:265
228 #: build/C/man2/sigpending.2:56 build/C/man2/sigprocmask.2:96
229 #: build/C/man3/sigqueue.3:91 build/C/man3/sigset.3:154
230 #: build/C/man3/sigsetops.3:123 build/C/man2/sigsuspend.2:74
231 #: build/C/man3/sigvec.3:216 build/C/man3/sigwait.3:74
232 #: build/C/man2/sigwaitinfo.2:114 build/C/man3/sysv_signal.3:57
233 #: build/C/man2/timer_create.2:175 build/C/man2/timer_delete.2:60
234 #: build/C/man2/timer_getoverrun.2:90 build/C/man2/timer_settime.2:182
235 #: build/C/man2/timerfd_create.2:302 build/C/man2/tkill.2:99
236 #: build/C/man2/wait.2:382 build/C/man2/wait4.2:135
237 #, no-wrap
238 msgid "ERRORS"
239 msgstr "エラー"
240
241 #. type: Plain text
242 #: build/C/man3/bsd_signal.3:63 build/C/man3/sysv_signal.3:60
243 msgid "As for B<signal>(2)."
244 msgstr "B<signal>(2)  と同じ。"
245
246 #. type: SH
247 #: build/C/man3/bsd_signal.3:63 build/C/man2/eventfd.2:266
248 #: build/C/man2/getitimer.2:148 build/C/man3/gsignal.3:95
249 #: build/C/man2/kill.2:120 build/C/man2/killpg.2:111 build/C/man2/pause.2:57
250 #: build/C/man2/prctl.2:956 build/C/man3/profil.3:68 build/C/man3/psignal.3:99
251 #: build/C/man3/raise.3:64 build/C/man2/rt_sigqueueinfo.2:176
252 #: build/C/man2/s390_runtime_instr.2:82 build/C/man2/sgetmask.2:66
253 #: build/C/man2/sigaction.2:675 build/C/man2/sigaltstack.2:156
254 #: build/C/man7/sigevent.7:130 build/C/man3/siginterrupt.3:82
255 #: build/C/man2/signal.2:107 build/C/man7/signal.7:838
256 #: build/C/man2/signalfd.2:307 build/C/man3/sigpause.3:56
257 #: build/C/man2/sigpending.2:61 build/C/man2/sigprocmask.2:109
258 #: build/C/man3/sigqueue.3:114 build/C/man2/sigreturn.2:60
259 #: build/C/man3/sigset.3:173 build/C/man3/sigsetops.3:128
260 #: build/C/man2/sigsuspend.2:82 build/C/man3/sigvec.3:221
261 #: build/C/man3/sigwait.3:80 build/C/man2/sigwaitinfo.2:133
262 #: build/C/man3/sysv_signal.3:60 build/C/man2/timer_create.2:193
263 #: build/C/man2/timer_delete.2:67 build/C/man2/timer_getoverrun.2:97
264 #: build/C/man2/timer_settime.2:207 build/C/man2/timerfd_create.2:371
265 #: build/C/man2/tkill.2:116 build/C/man2/wait.2:420 build/C/man2/wait4.2:138
266 #, no-wrap
267 msgid "CONFORMING TO"
268 msgstr "準拠"
269
270 #. type: Plain text
271 #: build/C/man3/bsd_signal.3:70
272 msgid ""
273 "4.2BSD, POSIX.1-2001.  POSIX.1-2008 removes the specification of "
274 "B<bsd_signal>(), recommending the use of B<sigaction>(2)  instead."
275 msgstr ""
276 "4.2BSD, POSIX.1-2001.  POSIX.1-2008 では B<bsd_signal>()  の仕様が削除されて"
277 "いる。 代わりに、 B<sigaction>(2)  の使用が推奨されている。"
278
279 #. type: SH
280 #: build/C/man3/bsd_signal.3:70 build/C/man2/eventfd.2:271
281 #: build/C/man2/getitimer.2:158 build/C/man2/kill.2:122
282 #: build/C/man2/killpg.2:115 build/C/man3/raise.3:66
283 #: build/C/man2/rt_sigqueueinfo.2:178 build/C/man2/s390_runtime_instr.2:85
284 #: build/C/man2/sgetmask.2:68 build/C/man2/sigaction.2:678
285 #: build/C/man2/sigaltstack.2:158 build/C/man2/signal.2:109
286 #: build/C/man2/signalfd.2:312 build/C/man3/sigpause.3:60
287 #: build/C/man2/sigpending.2:63 build/C/man2/sigprocmask.2:111
288 #: build/C/man3/sigqueue.3:116 build/C/man2/sigreturn.2:64
289 #: build/C/man3/sigset.3:190 build/C/man3/sigsetops.3:130
290 #: build/C/man2/sigsuspend.2:84 build/C/man3/sigvec.3:227
291 #: build/C/man3/sigwait.3:82 build/C/man2/sigwaitinfo.2:135
292 #: build/C/man3/sysv_signal.3:62 build/C/man2/timer_create.2:195
293 #: build/C/man2/timer_getoverrun.2:99 build/C/man2/tkill.2:122
294 #: build/C/man2/wait.2:422 build/C/man2/wait4.2:147
295 #, no-wrap
296 msgid "NOTES"
297 msgstr "注意"
298
299 #. type: Plain text
300 #: build/C/man3/bsd_signal.3:76
301 msgid ""
302 "Use of B<bsd_signal>()  should be avoided; use B<sigaction>(2)  instead."
303 msgstr ""
304 "B<bsd_signal>()  の使用は避けるべきである。代わりに B<sigaction>(2)  を使うこ"
305 "と。"
306
307 #. type: Plain text
308 #: build/C/man3/bsd_signal.3:87
309 msgid ""
310 "On modern Linux systems, B<bsd_signal>()  and B<signal>(2)  are equivalent.  "
311 "But on older systems, B<signal>(2)  provided unreliable signal semantics; "
312 "see B<signal>(2)  for details."
313 msgstr ""
314 "最近の Linux システムでは、 B<bsd_signal>()  と B<signal>(2)  は等価である。"
315 "しかし、以前のシステムでは、 B<signal>(2)  は信頼性に欠けるシグナル処理方式を"
316 "提供していた。 詳細は B<signal>(2)  を参照。"
317
318 #. type: Plain text
319 #: build/C/man3/bsd_signal.3:94 build/C/man3/sysv_signal.3:87
320 msgid ""
321 "The use of I<sighandler_t> is a GNU extension; this type is only defined if "
322 "the B<_GNU_SOURCE> feature test macro is defined."
323 msgstr ""
324 "I<sighandler_t> を使っているのは GNU による拡張である。 この型は機能検査マク"
325 "ロ B<_GNU_SOURCE> を定義した場合にのみ定義される。"
326
327 #. type: SH
328 #: build/C/man3/bsd_signal.3:94 build/C/man2/eventfd.2:417
329 #: build/C/man2/getitimer.2:239 build/C/man3/gsignal.3:103
330 #: build/C/man2/kill.2:170 build/C/man2/killpg.2:134 build/C/man2/pause.2:59
331 #: build/C/man2/prctl.2:970 build/C/man3/profil.3:79
332 #: build/C/man3/psignal.3:113 build/C/man3/raise.3:77
333 #: build/C/man2/rt_sigqueueinfo.2:188 build/C/man2/s390_runtime_instr.2:89
334 #: build/C/man2/sgetmask.2:80 build/C/man2/sigaction.2:791
335 #: build/C/man2/sigaltstack.2:232 build/C/man7/sigevent.7:132
336 #: build/C/man3/siginterrupt.3:91 build/C/man2/signal.2:275
337 #: build/C/man7/signal.7:850 build/C/man2/signalfd.2:433
338 #: build/C/man3/sigpause.3:98 build/C/man2/sigpending.2:84
339 #: build/C/man2/sigprocmask.2:141 build/C/man3/sigqueue.3:149
340 #: build/C/man2/sigreturn.2:74 build/C/man3/sigset.3:266
341 #: build/C/man3/sigsetops.3:168 build/C/man2/sigsuspend.2:106
342 #: build/C/man3/sigvec.3:252 build/C/man3/sigwait.3:89
343 #: build/C/man2/sigwaitinfo.2:187 build/C/man3/sysv_signal.3:87
344 #: build/C/man2/timer_create.2:399 build/C/man2/timer_delete.2:69
345 #: build/C/man2/timer_getoverrun.2:131 build/C/man2/timer_settime.2:212
346 #: build/C/man2/timerfd_create.2:541 build/C/man2/tkill.2:131
347 #: build/C/man2/wait.2:619 build/C/man2/wait4.2:165
348 #, no-wrap
349 msgid "SEE ALSO"
350 msgstr "関連項目"
351
352 #. type: Plain text
353 #: build/C/man3/bsd_signal.3:99
354 msgid "B<sigaction>(2), B<signal>(2), B<sysv_signal>(3), B<signal>(7)"
355 msgstr "B<sigaction>(2), B<signal>(2), B<sysv_signal>(3), B<signal>(7)"
356
357 #. type: SH
358 #: build/C/man3/bsd_signal.3:99 build/C/man2/eventfd.2:428
359 #: build/C/man2/getitimer.2:246 build/C/man3/gsignal.3:107
360 #: build/C/man2/kill.2:180 build/C/man2/killpg.2:140 build/C/man2/pause.2:64
361 #: build/C/man2/prctl.2:973 build/C/man3/profil.3:84
362 #: build/C/man3/psignal.3:118 build/C/man3/raise.3:84
363 #: build/C/man2/rt_sigqueueinfo.2:196 build/C/man2/s390_runtime_instr.2:92
364 #: build/C/man2/sgetmask.2:83 build/C/man2/sigaction.2:810
365 #: build/C/man2/sigaltstack.2:239 build/C/man7/sigevent.7:142
366 #: build/C/man3/siginterrupt.3:93 build/C/man2/signal.2:294
367 #: build/C/man7/signal.7:883 build/C/man2/signalfd.2:446
368 #: build/C/man3/sigpause.3:106 build/C/man2/sigpending.2:92
369 #: build/C/man2/sigprocmask.2:152 build/C/man3/sigqueue.3:157
370 #: build/C/man2/sigreturn.2:79 build/C/man3/sigset.3:276
371 #: build/C/man3/sigsetops.3:173 build/C/man2/sigsuspend.2:116
372 #: build/C/man3/sigvec.3:262 build/C/man3/sigwait.3:97
373 #: build/C/man2/sigwaitinfo.2:199 build/C/man3/sysv_signal.3:92
374 #: build/C/man2/timer_create.2:414 build/C/man2/timer_delete.2:75
375 #: build/C/man2/timer_getoverrun.2:141 build/C/man2/timer_settime.2:216
376 #: build/C/man2/timerfd_create.2:553 build/C/man2/tkill.2:136
377 #: build/C/man2/wait.2:631 build/C/man2/wait4.2:172
378 #, no-wrap
379 msgid "COLOPHON"
380 msgstr "この文書について"
381
382 #. type: Plain text
383 #: build/C/man3/bsd_signal.3:106 build/C/man2/eventfd.2:435
384 #: build/C/man2/getitimer.2:253 build/C/man3/gsignal.3:114
385 #: build/C/man2/kill.2:187 build/C/man2/killpg.2:147 build/C/man2/pause.2:71
386 #: build/C/man2/prctl.2:980 build/C/man3/profil.3:91
387 #: build/C/man3/psignal.3:125 build/C/man3/raise.3:91
388 #: build/C/man2/rt_sigqueueinfo.2:203 build/C/man2/s390_runtime_instr.2:99
389 #: build/C/man2/sgetmask.2:90 build/C/man2/sigaction.2:817
390 #: build/C/man2/sigaltstack.2:246 build/C/man7/sigevent.7:149
391 #: build/C/man3/siginterrupt.3:100 build/C/man2/signal.2:301
392 #: build/C/man7/signal.7:890 build/C/man2/signalfd.2:453
393 #: build/C/man3/sigpause.3:113 build/C/man2/sigpending.2:99
394 #: build/C/man2/sigprocmask.2:159 build/C/man3/sigqueue.3:164
395 #: build/C/man2/sigreturn.2:86 build/C/man3/sigset.3:283
396 #: build/C/man3/sigsetops.3:180 build/C/man2/sigsuspend.2:123
397 #: build/C/man3/sigvec.3:269 build/C/man3/sigwait.3:104
398 #: build/C/man2/sigwaitinfo.2:206 build/C/man3/sysv_signal.3:99
399 #: build/C/man2/timer_create.2:421 build/C/man2/timer_delete.2:82
400 #: build/C/man2/timer_getoverrun.2:148 build/C/man2/timer_settime.2:223
401 #: build/C/man2/timerfd_create.2:560 build/C/man2/tkill.2:143
402 #: build/C/man2/wait.2:638 build/C/man2/wait4.2:179
403 msgid ""
404 "This page is part of release 3.50 of the Linux I<man-pages> project.  A "
405 "description of the project, and information about reporting bugs, can be "
406 "found at http://www.kernel.org/doc/man-pages/."
407 msgstr ""
408 "この man ページは Linux I<man-pages> プロジェクトのリリース 3.50 の一部\n"
409 "である。プロジェクトの説明とバグ報告に関する情報は\n"
410 "http://www.kernel.org/doc/man-pages/ に書かれている。"
411
412 #. type: TH
413 #: build/C/man2/eventfd.2:22
414 #, no-wrap
415 msgid "EVENTFD"
416 msgstr "EVENTFD"
417
418 #. type: TH
419 #: build/C/man2/eventfd.2:22
420 #, no-wrap
421 msgid "2010-08-30"
422 msgstr "2010-08-30"
423
424 #. type: TH
425 #: build/C/man2/eventfd.2:22 build/C/man2/getitimer.2:12
426 #: build/C/man2/kill.2:44 build/C/man2/killpg.2:42 build/C/man2/pause.2:30
427 #: build/C/man2/prctl.2:52 build/C/man3/profil.3:28
428 #: build/C/man2/rt_sigqueueinfo.2:25 build/C/man2/sgetmask.2:26
429 #: build/C/man2/sigaction.2:47 build/C/man2/sigaltstack.2:27
430 #: build/C/man2/signal.2:36 build/C/man7/signal.7:46
431 #: build/C/man2/signalfd.2:20 build/C/man3/sigpause.3:25
432 #: build/C/man2/sigpending.2:29 build/C/man2/sigprocmask.2:29
433 #: build/C/man3/sigqueue.3:28 build/C/man2/sigreturn.2:29
434 #: build/C/man3/sigset.3:26 build/C/man3/sigsetops.3:31
435 #: build/C/man2/sigsuspend.2:29 build/C/man3/sigvec.3:26
436 #: build/C/man3/sigwait.3:26 build/C/man2/sigwaitinfo.2:25
437 #: build/C/man2/timer_create.2:31 build/C/man2/timer_delete.2:26
438 #: build/C/man2/timer_getoverrun.2:26 build/C/man2/timer_settime.2:26
439 #: build/C/man2/timerfd_create.2:21 build/C/man2/tkill.2:29
440 #: build/C/man2/wait.2:49 build/C/man2/wait4.2:33
441 #, no-wrap
442 msgid "Linux"
443 msgstr "Linux"
444
445 #. type: Plain text
446 #: build/C/man2/eventfd.2:25
447 msgid "eventfd - create a file descriptor for event notification"
448 msgstr "eventfd - イベント通知用のファイルディスクリプタを生成する"
449
450 #. type: Plain text
451 #: build/C/man2/eventfd.2:27
452 msgid "B<#include E<lt>sys/eventfd.hE<gt>>"
453 msgstr "B<#include E<lt>sys/eventfd.hE<gt>>"
454
455 #. type: Plain text
456 #: build/C/man2/eventfd.2:29
457 msgid "B<int eventfd(unsigned int >I<initval>B<, int >I<flags>B<);>"
458 msgstr "B<int eventfd(unsigned int >I<initval>B<, int >I<flags>B<);>"
459
460 #. type: Plain text
461 #: build/C/man2/eventfd.2:39
462 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:827 build/C/man2/prctl.2:832 build/C/man2/prctl.2:837
601 #: build/C/man2/prctl.2:847 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:221
607 #: build/C/man2/signal.2:225 build/C/man2/signal.2:264
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 "eventfd ファイルディスクリプタは、これ以外のファイルディスクリプタ 多重 API である B<pselect>(2) と B<ppoll>(2) もサポートしている。"
763
764 #. type: TP
765 #: build/C/man2/eventfd.2:205 build/C/man2/signalfd.2:160
766 #: build/C/man2/timerfd_create.2:262
767 #, no-wrap
768 msgid "B<close>(2)"
769 msgstr "B<close>(2)"
770
771 #. type: Plain text
772 #: build/C/man2/eventfd.2:210
773 msgid ""
774 "When the file descriptor is no longer required it should be closed.  When "
775 "all file descriptors associated with the same eventfd object have been "
776 "closed, the resources for object are freed by the kernel."
777 msgstr ""
778 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
779 "る。 同じ eventfd オブジェクトに関連付けられたファイルディスクリプタが全て ク"
780 "ローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
781
782 #. type: Plain text
783 #: build/C/man2/eventfd.2:222
784 msgid ""
785 "A copy of the file descriptor created by B<eventfd>()  is inherited by the "
786 "child produced by B<fork>(2).  The duplicate file descriptor is associated "
787 "with the same eventfd object.  File descriptors created by B<eventfd>()  are "
788 "preserved across B<execve>(2), unless the close-on-exec flag has been set."
789 msgstr ""
790 "B<fork>(2) で生成された子プロセスは、 B<eventfd>() で生成されたファイル\n"
791 "ディスクリプタのコピーを継承する。 複製されたファイルディスクリプタは同\n"
792 "じ eventfd オブジェクトに関連付けられる。\n"
793 "close-on-exec フラグが設定されていない場合、 B<execve>(2) の前後で\n"
794 "B<eventfd>() で生成されたファイルディスクリプタは保持される。"
795
796 #. type: Plain text
797 #: build/C/man2/eventfd.2:229
798 msgid ""
799 "On success, B<eventfd>()  returns a new eventfd file descriptor.  On error, "
800 "-1 is returned and I<errno> is set to indicate the error."
801 msgstr ""
802 "成功すると、 B<eventfd>()  は新規の eventfd ファイルディスクリプタを返す。 エ"
803 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
804
805 #. type: TP
806 #: build/C/man2/eventfd.2:230 build/C/man2/getitimer.2:135
807 #: build/C/man2/kill.2:105 build/C/man2/killpg.2:95 build/C/man2/prctl.2:789
808 #: build/C/man2/prctl.2:794 build/C/man2/prctl.2:806 build/C/man2/prctl.2:811
809 #: build/C/man2/prctl.2:820 build/C/man2/prctl.2:860
810 #: build/C/man2/rt_sigqueueinfo.2:141 build/C/man2/s390_runtime_instr.2:67
811 #: build/C/man2/sigaction.2:668 build/C/man2/sigaltstack.2:142
812 #: build/C/man3/siginterrupt.3:79 build/C/man2/signal.2:103
813 #: build/C/man2/signalfd.2:271 build/C/man2/signalfd.2:279
814 #: build/C/man2/sigprocmask.2:104 build/C/man3/sigqueue.3:98
815 #: build/C/man3/sigsetops.3:124 build/C/man3/sigwait.3:75
816 #: build/C/man2/sigwaitinfo.2:129 build/C/man2/timer_create.2:179
817 #: build/C/man2/timer_delete.2:61 build/C/man2/timer_getoverrun.2:91
818 #: build/C/man2/timer_settime.2:191 build/C/man2/timer_settime.2:199
819 #: build/C/man2/timerfd_create.2:305 build/C/man2/timerfd_create.2:313
820 #: build/C/man2/timerfd_create.2:349 build/C/man2/timerfd_create.2:356
821 #: build/C/man2/timerfd_create.2:362 build/C/man2/tkill.2:100
822 #: build/C/man2/wait.2:415
823 #, no-wrap
824 msgid "B<EINVAL>"
825 msgstr "B<EINVAL>"
826
827 #. type: Plain text
828 #: build/C/man2/eventfd.2:234
829 msgid "An unsupported value was specified in I<flags>."
830 msgstr "I<flags> にサポートされていない値が指定された。"
831
832 #. type: TP
833 #: build/C/man2/eventfd.2:234 build/C/man2/signalfd.2:286
834 #: build/C/man2/timerfd_create.2:320
835 #, no-wrap
836 msgid "B<EMFILE>"
837 msgstr "B<EMFILE>"
838
839 #. type: Plain text
840 #: build/C/man2/eventfd.2:237
841 msgid "The per-process limit on open file descriptors has been reached."
842 msgstr ""
843 "オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。"
844
845 #. type: TP
846 #: build/C/man2/eventfd.2:237 build/C/man2/signalfd.2:289
847 #: build/C/man2/timerfd_create.2:323
848 #, no-wrap
849 msgid "B<ENFILE>"
850 msgstr "B<ENFILE>"
851
852 #. type: Plain text
853 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
854 #: build/C/man2/timerfd_create.2:327
855 msgid ""
856 "The system-wide limit on the total number of open files has been reached."
857 msgstr "オープン済みのファイル総数がシステム全体の上限に達していた。"
858
859 #. type: TP
860 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
861 #: build/C/man2/timerfd_create.2:327
862 #, no-wrap
863 msgid "B<ENODEV>"
864 msgstr "B<ENODEV>"
865
866 #. type: Plain text
867 #: build/C/man2/eventfd.2:249 build/C/man2/signalfd.2:296
868 #: build/C/man2/timerfd_create.2:330
869 msgid "Could not mount (internal) anonymous inode device."
870 msgstr "(カーネル内の) 無名 inode デバイスをマウントできなかった。"
871
872 #. type: TP
873 #: build/C/man2/eventfd.2:249 build/C/man2/s390_runtime_instr.2:74
874 #: build/C/man2/sigaltstack.2:147 build/C/man2/signalfd.2:296
875 #: build/C/man2/timer_create.2:187 build/C/man2/timerfd_create.2:330
876 #, no-wrap
877 msgid "B<ENOMEM>"
878 msgstr "B<ENOMEM>"
879
880 #. type: Plain text
881 #: build/C/man2/eventfd.2:253
882 msgid "There was insufficient memory to create a new eventfd file descriptor."
883 msgstr ""
884 "新しい eventfd ファイルディスクリプタを生成するのに十分なメモリがなかった。"
885
886 #. type: SH
887 #: build/C/man2/eventfd.2:253 build/C/man2/prctl.2:951
888 #: build/C/man3/psignal.3:95 build/C/man2/rt_sigqueueinfo.2:169
889 #: build/C/man2/s390_runtime_instr.2:80 build/C/man2/signalfd.2:299
890 #: build/C/man3/sigqueue.3:112 build/C/man2/timer_create.2:191
891 #: build/C/man2/timer_delete.2:65 build/C/man2/timer_getoverrun.2:95
892 #: build/C/man2/timer_settime.2:205 build/C/man2/timerfd_create.2:368
893 #: build/C/man2/tkill.2:111
894 #, no-wrap
895 msgid "VERSIONS"
896 msgstr "バージョン"
897
898 #.  eventfd() is in glibc 2.7, but reportedly does not build
899 #. type: Plain text
900 #: build/C/man2/eventfd.2:266
901 msgid ""
902 "B<eventfd>()  is available on Linux since kernel 2.6.22.  Working support is "
903 "provided in glibc since version 2.8.  The B<eventfd2>()  system call (see "
904 "NOTES) is available on Linux since kernel 2.6.27.  Since version 2.9, the "
905 "glibc B<eventfd>()  wrapper will employ the B<eventfd2>()  system call, if "
906 "it is supported by the kernel."
907 msgstr ""
908 "B<eventfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
909 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<eventfd2>()  "
910 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
911 "る。 バージョン 2.9 以降では、glibc の B<eventfd>()  のラッパー関数は、カーネ"
912 "ルが対応していれば B<eventfd2>()  システムコールを利用する。"
913
914 #. type: Plain text
915 #: build/C/man2/eventfd.2:271
916 msgid "B<eventfd>()  and B<eventfd2>()  are Linux-specific."
917 msgstr "B<eventfd>()  と B<eventfd2>()  は Linux 固有である。"
918
919 #. type: Plain text
920 #: build/C/man2/eventfd.2:279
921 msgid ""
922 "Applications can use an eventfd file descriptor instead of a pipe (see "
923 "B<pipe>(2))  in all cases where a pipe is used simply to signal events.  The "
924 "kernel overhead of an eventfd file descriptor is much lower than that of a "
925 "pipe, and only one file descriptor is required (versus the two required for "
926 "a pipe)."
927 msgstr ""
928 "アプリケーションは、パイプをイベントを通知するためだけに使用している 全ての場"
929 "面において、パイプの代わりに eventfd ファイルディスクリプタを 使用することが"
930 "できる。 eventfd ファイルディスクリプタを使う方が、パイプを使う場合に比べて "
931 "カーネルでのオーバヘッドは比べるとずっと小さく、ファイルディスクリプタも 一つ"
932 "しか必要としない (パイプの場合は二つ必要である)。"
933
934 #.  or eventually syslets/threadlets
935 #. type: Plain text
936 #: build/C/man2/eventfd.2:285
937 msgid ""
938 "When used in the kernel, an eventfd file descriptor can provide a bridge "
939 "from kernel to user space, allowing, for example, functionalities like KAIO "
940 "(kernel AIO)  to signal to a file descriptor that some operation is complete."
941 msgstr "カーネル内で使用すると、eventfd ファイルディスクリプタはカーネル空間からユーザ空間へのブリッジ機能を提供することができ、 例えば KAIO (kernel AIO)  のような機能が、あるファイルディスクリプタに何らかの操作が完了したことを 通知することができる。"
942
943 #. type: Plain text
944 #: build/C/man2/eventfd.2:302
945 msgid ""
946 "A key point about an eventfd file descriptor is that it can be monitored "
947 "just like any other file descriptor using B<select>(2), B<poll>(2), or "
948 "B<epoll>(7).  This means that an application can simultaneously monitor the "
949 "readiness of \"traditional\" files and the readiness of other kernel "
950 "mechanisms that support the eventfd interface.  (Without the B<eventfd>()  "
951 "interface, these mechanisms could not be multiplexed via B<select>(2), "
952 "B<poll>(2), or B<epoll>(7).)"
953 msgstr ""
954 "eventfd ファイルディスクリプタの重要な点は、 eventfd ファイルディスクリプタ"
955 "が B<select>(2), B<poll>(2), B<epoll>(7)  を使って他のファイルディスクリプタ"
956 "と全く同様に監視できる点である。 このことは、アプリケーションは「従来の "
957 "(traditional)」 ファイルの状態変化と eventfd インタフェースをサポートする他の"
958 "カーネル機構の状態変化を同時に監視 できることを意味する (B<eventfd>()  インタ"
959 "フェースがない時には、これらのカーネル機構は B<select>(2), B<poll>(2), "
960 "B<epoll>(7)  経由で多重することはできなかった)。"
961
962 #. type: SS
963 #: build/C/man2/eventfd.2:302 build/C/man2/signalfd.2:336
964 #, no-wrap
965 msgid "Underlying Linux system calls"
966 msgstr "下層にある Linux のシステムコール"
967
968 #. type: Plain text
969 #: build/C/man2/eventfd.2:316
970 msgid ""
971 "There are two underlying Linux system calls: B<eventfd>()  and the more "
972 "recent B<eventfd2>().  The former system call does not implement a I<flags> "
973 "argument.  The latter system call implements the I<flags> values described "
974 "above.  The glibc wrapper function will use B<eventfd2>()  where it is "
975 "available."
976 msgstr ""
977 "下層にある Linux システムコールは二種類あり、 B<eventfd>()  と、もっと新しい "
978 "B<eventfd2>()  である。 B<eventfd>()  は I<flags> 引き数を実装していない。 "
979 "B<eventfd2>()  では上記の値の I<flags> が実装されている。 glibc のラッパー関"
980 "数は、 B<eventfd2>()  が利用可能であれば、これを使用する。"
981
982 #. type: SS
983 #: build/C/man2/eventfd.2:316
984 #, no-wrap
985 msgid "Additional glibc features"
986 msgstr "glibc の追加機能"
987
988 #. type: Plain text
989 #: build/C/man2/eventfd.2:320
990 msgid ""
991 "The GNU C library defines an additional type, and two functions that attempt "
992 "to abstract some of the details of reading and writing on an eventfd file "
993 "descriptor:"
994 msgstr ""
995 "GNU C ライブラリは、eventfd ファイルディスクリプタの読み出しと書き込みに を関"
996 "する詳細のいくつか抽象化するために、一つの型と、二つの関数を追加で 定義してい"
997 "る。"
998
999 #. type: Plain text
1000 #: build/C/man2/eventfd.2:324
1001 #, no-wrap
1002 msgid "typedef uint64_t eventfd_t;\n"
1003 msgstr "typedef uint64_t eventfd_t;\n"
1004
1005 #. type: Plain text
1006 #: build/C/man2/eventfd.2:327
1007 #, no-wrap
1008 msgid ""
1009 "int eventfd_read(int fd, eventfd_t *value);\n"
1010 "int eventfd_write(int fd, eventfd_t value);\n"
1011 msgstr ""
1012 "int eventfd_read(int fd, eventfd_t *value);\n"
1013 "int eventfd_write(int fd, eventfd_t value);\n"
1014
1015 #. type: Plain text
1016 #: build/C/man2/eventfd.2:334
1017 msgid ""
1018 "The functions perform the read and write operations on an eventfd file "
1019 "descriptor, returning 0 if the correct number of bytes was transferred, or "
1020 "-1 otherwise."
1021 msgstr ""
1022 "これらの関数は、eventfd ファイルディスクリプタに対する読み出しと 書き込みの操"
1023 "作を実行し、正しいバイト数が転送された場合には 0 を返し、そうでない場合は -1 "
1024 "を返す。"
1025
1026 #. type: SH
1027 #: build/C/man2/eventfd.2:334 build/C/man2/sigaction.2:788
1028 #: build/C/man2/sigaltstack.2:215 build/C/man2/signalfd.2:360
1029 #: build/C/man3/sigwait.3:86 build/C/man2/timer_create.2:253
1030 #: build/C/man2/timer_getoverrun.2:128 build/C/man2/timer_settime.2:209
1031 #: build/C/man2/timerfd_create.2:379 build/C/man2/wait.2:536
1032 #, no-wrap
1033 msgid "EXAMPLE"
1034 msgstr "例"
1035
1036 #. type: Plain text
1037 #: build/C/man2/eventfd.2:343
1038 msgid ""
1039 "The following program creates an eventfd file descriptor and then forks to "
1040 "create a child process.  While the parent briefly sleeps, the child writes "
1041 "each of the integers supplied in the program's command-line arguments to the "
1042 "eventfd file descriptor.  When the parent has finished sleeping, it reads "
1043 "from the eventfd file descriptor."
1044 msgstr ""
1045 "以下のプログラムは eventfd ファイルディスクリプタを生成し、 その後 fork を実"
1046 "行して子プロセスを生成する。 親プロセスが少しの間 sleep する間に、子プロセス"
1047 "は プログラムのコマンドライン引き数で指定された整数(列)をそれぞれ eventfd "
1048 "ファイルディスクリプタに書き込む。 親プロセスは sleep を完了すると eventfd "
1049 "ファイルディスクリプタから 読み出しを行う。"
1050
1051 #. type: Plain text
1052 #: build/C/man2/eventfd.2:345
1053 msgid "The following shell session shows a sample run of the program:"
1054 msgstr "以下に示すシェルセッションにこのプログラムの使い方を示す。"
1055
1056 #. type: Plain text
1057 #: build/C/man2/eventfd.2:357
1058 #, no-wrap
1059 msgid ""
1060 "$B< ./a.out 1 2 4 7 14>\n"
1061 "Child writing 1 to efd\n"
1062 "Child writing 2 to efd\n"
1063 "Child writing 4 to efd\n"
1064 "Child writing 7 to efd\n"
1065 "Child writing 14 to efd\n"
1066 "Child completed write loop\n"
1067 "Parent about to read\n"
1068 "Parent read 28 (0x1c) from efd\n"
1069 msgstr ""
1070 "$B< ./a.out 1 2 4 7 14>\n"
1071 "Child writing 1 to efd\n"
1072 "Child writing 2 to efd\n"
1073 "Child writing 4 to efd\n"
1074 "Child writing 7 to efd\n"
1075 "Child writing 14 to efd\n"
1076 "Child completed write loop\n"
1077 "Parent about to read\n"
1078 "Parent read 28 (0x1c) from efd\n"
1079
1080 #. type: SS
1081 #: build/C/man2/eventfd.2:359 build/C/man2/signalfd.2:383
1082 #: build/C/man2/timer_create.2:284 build/C/man2/timerfd_create.2:407
1083 #: build/C/man2/wait.2:571
1084 #, no-wrap
1085 msgid "Program source"
1086 msgstr "プログラムのソース"
1087
1088 #. type: Plain text
1089 #: build/C/man2/eventfd.2:367
1090 #, no-wrap
1091 msgid ""
1092 "#include E<lt>sys/eventfd.hE<gt>\n"
1093 "#include E<lt>unistd.hE<gt>\n"
1094 "#include E<lt>stdlib.hE<gt>\n"
1095 "#include E<lt>stdio.hE<gt>\n"
1096 "#include E<lt>stdint.hE<gt>             /* Definition of uint64_t */\n"
1097 msgstr ""
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
1104 #. type: Plain text
1105 #: build/C/man2/eventfd.2:370 build/C/man2/signalfd.2:394
1106 #, no-wrap
1107 msgid ""
1108 "#define handle_error(msg) \\e\n"
1109 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1110 msgstr ""
1111 "#define handle_error(msg) \\e\n"
1112 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1113
1114 #. type: Plain text
1115 #: build/C/man2/eventfd.2:377
1116 #, no-wrap
1117 msgid ""
1118 "int\n"
1119 "main(int argc, char *argv[])\n"
1120 "{\n"
1121 "    int efd, j;\n"
1122 "    uint64_t u;\n"
1123 "    ssize_t s;\n"
1124 msgstr ""
1125 "int\n"
1126 "main(int argc, char *argv[])\n"
1127 "{\n"
1128 "    int efd, j;\n"
1129 "    uint64_t u;\n"
1130 "    ssize_t s;\n"
1131
1132 #. type: Plain text
1133 #: build/C/man2/eventfd.2:382
1134 #, no-wrap
1135 msgid ""
1136 "    if (argc E<lt> 2) {\n"
1137 "        fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n"
1138 "        exit(EXIT_FAILURE);\n"
1139 "    }\n"
1140 msgstr ""
1141 "    if (argc E<lt> 2) {\n"
1142 "        fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n"
1143 "        exit(EXIT_FAILURE);\n"
1144 "    }\n"
1145
1146 #. type: Plain text
1147 #: build/C/man2/eventfd.2:386
1148 #, no-wrap
1149 msgid ""
1150 "    efd = eventfd(0, 0);\n"
1151 "    if (efd == -1)\n"
1152 "        handle_error(\"eventfd\");\n"
1153 msgstr ""
1154 "    efd = eventfd(0, 0);\n"
1155 "    if (efd == -1)\n"
1156 "        handle_error(\"eventfd\");\n"
1157
1158 #. type: Plain text
1159 #: build/C/man2/eventfd.2:398
1160 #, no-wrap
1161 msgid ""
1162 "    switch (fork()) {\n"
1163 "    case 0:\n"
1164 "        for (j = 1; j E<lt> argc; j++) {\n"
1165 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1166 "            u = strtoull(argv[j], NULL, 0);\n"
1167 "                    /* strtoull() allows various bases */\n"
1168 "            s = write(efd, &u, sizeof(uint64_t));\n"
1169 "            if (s != sizeof(uint64_t))\n"
1170 "                handle_error(\"write\");\n"
1171 "        }\n"
1172 "        printf(\"Child completed write loop\\en\");\n"
1173 msgstr ""
1174 "    switch (fork()) {\n"
1175 "    case 0:\n"
1176 "        for (j = 1; j E<lt> argc; j++) {\n"
1177 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1178 "            u = strtoull(argv[j], NULL, 0);\n"
1179 "                    /* strtoull() allows various bases */\n"
1180 "            s = write(efd, &u, sizeof(uint64_t));\n"
1181 "            if (s != sizeof(uint64_t))\n"
1182 "                handle_error(\"write\");\n"
1183 "        }\n"
1184 "        printf(\"Child completed write loop\\en\");\n"
1185
1186 #. type: Plain text
1187 #: build/C/man2/eventfd.2:400
1188 #, no-wrap
1189 msgid "        exit(EXIT_SUCCESS);\n"
1190 msgstr "        exit(EXIT_SUCCESS);\n"
1191
1192 #. type: Plain text
1193 #: build/C/man2/eventfd.2:403
1194 #, no-wrap
1195 msgid ""
1196 "    default:\n"
1197 "        sleep(2);\n"
1198 msgstr ""
1199 "    default:\n"
1200 "        sleep(2);\n"
1201
1202 #. type: Plain text
1203 #: build/C/man2/eventfd.2:411
1204 #, no-wrap
1205 msgid ""
1206 "        printf(\"Parent about to read\\en\");\n"
1207 "        s = read(efd, &u, sizeof(uint64_t));\n"
1208 "        if (s != sizeof(uint64_t))\n"
1209 "            handle_error(\"read\");\n"
1210 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1211 "                (unsigned long long) u, (unsigned long long) u);\n"
1212 "        exit(EXIT_SUCCESS);\n"
1213 msgstr ""
1214 "        printf(\"Parent about to read\\en\");\n"
1215 "        s = read(efd, &u, sizeof(uint64_t));\n"
1216 "        if (s != sizeof(uint64_t))\n"
1217 "            handle_error(\"read\");\n"
1218 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1219 "                (unsigned long long) u, (unsigned long long) u);\n"
1220 "        exit(EXIT_SUCCESS);\n"
1221
1222 #. type: Plain text
1223 #: build/C/man2/eventfd.2:416
1224 #, no-wrap
1225 msgid ""
1226 "    case -1:\n"
1227 "        handle_error(\"fork\");\n"
1228 "    }\n"
1229 "}\n"
1230 msgstr ""
1231 "    case -1:\n"
1232 "        handle_error(\"fork\");\n"
1233 "    }\n"
1234 "}\n"
1235
1236 #. type: Plain text
1237 #: build/C/man2/eventfd.2:428
1238 msgid ""
1239 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), B<signalfd>"
1240 "(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), B<sem_overview>(7)"
1241 msgstr ""
1242 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), B<signalfd>"
1243 "(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), B<sem_overview>(7)"
1244
1245 #. type: TH
1246 #: build/C/man2/getitimer.2:12
1247 #, no-wrap
1248 msgid "GETITIMER"
1249 msgstr "GETITIMER"
1250
1251 #. type: TH
1252 #: build/C/man2/getitimer.2:12
1253 #, no-wrap
1254 msgid "2012-10-01"
1255 msgstr "2012-10-01"
1256
1257 #. type: Plain text
1258 #: build/C/man2/getitimer.2:15
1259 msgid "getitimer, setitimer - get or set value of an interval timer"
1260 msgstr "getitimer, setitimer - インターバル・タイマーの値を取得または設定する"
1261
1262 #. type: Plain text
1263 #: build/C/man2/getitimer.2:18
1264 #, no-wrap
1265 msgid "B<#include E<lt>sys/time.hE<gt>>\n"
1266 msgstr "B<#include E<lt>sys/time.hE<gt>>\n"
1267
1268 #. type: Plain text
1269 #: build/C/man2/getitimer.2:20
1270 #, no-wrap
1271 msgid "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1272 msgstr "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1273
1274 #. type: Plain text
1275 #: build/C/man2/getitimer.2:23
1276 #, no-wrap
1277 msgid ""
1278 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1279 "B<              struct itimerval *>I<old_value>B<);>\n"
1280 msgstr ""
1281 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1282 "B<              struct itimerval *>I<old_value>B<);>\n"
1283
1284 #. type: Plain text
1285 #: build/C/man2/getitimer.2:29
1286 msgid ""
1287 "The system provides each process with three interval timers, each "
1288 "decrementing in a distinct time domain.  When any timer expires, a signal is "
1289 "sent to the process, and the timer (potentially) restarts."
1290 msgstr ""
1291 "システムは 1 個のプロセスにつき 3 個のインターバル・タイマーを提供する。 それ"
1292 "ぞれのタイマーは別々の時間領域で減少する。 どのタイマーも満了するとプロセスに"
1293 "シグナルが送られ、 タイマーは (設定によっては) 再び開始される。"
1294
1295 #. type: TP
1296 #: build/C/man2/getitimer.2:29
1297 #, no-wrap
1298 msgid "B<ITIMER_REAL>"
1299 msgstr "B<ITIMER_REAL>"
1300
1301 #. type: Plain text
1302 #: build/C/man2/getitimer.2:34
1303 msgid "decrements in real time, and delivers B<SIGALRM> upon expiration."
1304 msgstr "実時間 (real time) で減少し、満了すると B<SIGALRM> が送られる。"
1305
1306 #. type: TP
1307 #: build/C/man2/getitimer.2:34
1308 #, no-wrap
1309 msgid "B<ITIMER_VIRTUAL>"
1310 msgstr "B<ITIMER_VIRTUAL>"
1311
1312 #. type: Plain text
1313 #: build/C/man2/getitimer.2:39
1314 msgid ""
1315 "decrements only when the process is executing, and delivers B<SIGVTALRM> "
1316 "upon expiration."
1317 msgstr ""
1318 "プロセスが実行されている間のみ減少し、満了すると B<SIGVTALRM> が送られる。"
1319
1320 #. type: TP
1321 #: build/C/man2/getitimer.2:39
1322 #, no-wrap
1323 msgid "B<ITIMER_PROF>"
1324 msgstr "B<ITIMER_PROF>"
1325
1326 #. type: Plain text
1327 #: build/C/man2/getitimer.2:49
1328 msgid ""
1329 "decrements both when the process executes and when the system is executing "
1330 "on behalf of the process.  Coupled with B<ITIMER_VIRTUAL>, this timer is "
1331 "usually used to profile the time spent by the application in user and kernel "
1332 "space.  B<SIGPROF> is delivered upon expiration."
1333 msgstr ""
1334 "プロセスが実行されていて、 かつシステムがそのプロセスのために処理を行なってい"
1335 "る間に減少する。 多くの場合、このタイマーは B<ITIMER_VIRTUAL> と組み合わされ"
1336 "て、アプリケーションがカーネル空間とユーザー空間で どれだけの時間を過ごしたか"
1337 "をプロファイルするのに使用される。 満了すると B<SIGPROF> が送られる。"
1338
1339 #. type: Plain text
1340 #: build/C/man2/getitimer.2:51
1341 msgid "Timer values are defined by the following structures:"
1342 msgstr "タイマーの値は以下の構造体によって定義される:"
1343
1344 #. type: Plain text
1345 #: build/C/man2/getitimer.2:59
1346 #, no-wrap
1347 msgid ""
1348 "struct itimerval {\n"
1349 "    struct timeval it_interval; /* next value */\n"
1350 "    struct timeval it_value;    /* current value */\n"
1351 "};\n"
1352 msgstr ""
1353 "struct itimerval {\n"
1354 "    struct timeval it_interval; /* next value */\n"
1355 "    struct timeval it_value;    /* current value */\n"
1356 "};\n"
1357
1358 #. type: Plain text
1359 #: build/C/man2/getitimer.2:64
1360 #, no-wrap
1361 msgid ""
1362 "struct timeval {\n"
1363 "    time_t      tv_sec;         /* seconds */\n"
1364 "    suseconds_t tv_usec;        /* microseconds */\n"
1365 "};\n"
1366 msgstr ""
1367 "struct timeval {\n"
1368 "    time_t      tv_sec;         /* seconds */\n"
1369 "    suseconds_t tv_usec;        /* microseconds */\n"
1370 "};\n"
1371
1372 #. type: Plain text
1373 #: build/C/man2/getitimer.2:86
1374 msgid ""
1375 "The function B<getitimer>()  fills the structure pointed to by I<curr_value> "
1376 "with the current setting for the timer specified by I<which> (one of "
1377 "B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>).  The element "
1378 "I<it_value> is set to the amount of time remaining on the timer, or zero if "
1379 "the timer is disabled.  Similarly, I<it_interval> is set to the reset value."
1380 msgstr ""
1381 "B<getitimer>()  関数は、 I<which> で指定されたタイマー (B<ITIMER_REAL>, "
1382 "B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれか) の現在の設定を、 I<curr_value> で"
1383 "指定された構造体に格納する。 I<it_value> 要素にはタイマーの残り時間が設定され"
1384 "る。タイマーがオフの場合は ゼロが設定される。同様に I<it_interval> には初期値"
1385 "が設定される。"
1386
1387 #. type: Plain text
1388 #: build/C/man2/getitimer.2:94
1389 msgid ""
1390 "The function B<setitimer>()  sets the specified timer to the value in "
1391 "I<new_value>.  If I<old_value> is non-NULL, the old value of the timer is "
1392 "stored there."
1393 msgstr ""
1394 "B<setitimer>()  関数は指定されたタイマーに I<new_value> の値を設定する。 "
1395 "I<old_value> が NULL 以外の場合、タイマーの古い値が I<old_value> に格納され"
1396 "る。"
1397
1398 #. type: Plain text
1399 #: build/C/man2/getitimer.2:104
1400 msgid ""
1401 "Timers decrement from I<it_value> to zero, generate a signal, and reset to "
1402 "I<it_interval>.  A timer which is set to zero (I<it_value> is zero or the "
1403 "timer expires and I<it_interval> is zero) stops."
1404 msgstr ""
1405 "タイマーは I<it_value> からゼロへ向けて減っていき、シグナルを生成し、 "
1406 "I<it_interval> に初期化される。 タイマーがゼロに設定された場合 (I<it_value> "
1407 "がゼロか、タイマーが満了した時に I<it_interval> がゼロの場合) は停止する。"
1408
1409 #. type: Plain text
1410 #: build/C/man2/getitimer.2:110
1411 msgid ""
1412 "Both I<tv_sec> and I<tv_usec> are significant in determining the duration of "
1413 "a timer."
1414 msgstr "タイマーの期間は I<tv_sec> と I<tv_usec> の両方により決定される。"
1415
1416 #. type: Plain text
1417 #: build/C/man2/getitimer.2:122
1418 msgid ""
1419 "Timers will never expire before the requested time, but may expire some "
1420 "(short) time afterward, which depends on the system timer resolution and on "
1421 "the system load; see B<time>(7).  (But see BUGS below.)  Upon expiration, a "
1422 "signal will be generated and the timer reset.  If the timer expires while "
1423 "the process is active (always true for B<ITIMER_VIRTUAL>)  the signal will "
1424 "be delivered immediately when generated.  Otherwise the delivery will be "
1425 "offset by a small time dependent on the system loading."
1426 msgstr ""
1427 "要求した時間がくる前にタイマーが満了することはないが、 逆にある (短い) 時間だ"
1428 "け満了が遅れることはある。 どれだけ遅れるかはシステムの時間分解能とシステムの"
1429 "負荷に依存する (B<time>(7)  参照; 但し、バグの項も参照のこと)。 タイマーが満"
1430 "了するとシグナルが生成され、タイマーは初期化される。 プロセスがアクティブな"
1431 "時 (B<ITIMER_VIRTUAL> の場合には常にそうである) にタイマーが満了した場合、生"
1432 "成されたシグナルは すぐに配送される。それ以外の場合は、システムの負荷により少"
1433 "しの時間だけ 遅れて配送される。"
1434
1435 #. type: Plain text
1436 #: build/C/man2/getitimer.2:127 build/C/man2/killpg.2:94
1437 #: build/C/man2/tkill.2:99
1438 msgid ""
1439 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
1440 "appropriately."
1441 msgstr ""
1442 "成功した場合、0 が返される。エラーが発生した場合、-1 が返され、 I<errno> が適"
1443 "切に設定される。"
1444
1445 #. type: TP
1446 #: build/C/man2/getitimer.2:128 build/C/man2/prctl.2:785
1447 #: build/C/man2/sigaction.2:664 build/C/man2/sigaltstack.2:138
1448 #: build/C/man2/sigpending.2:57 build/C/man2/sigprocmask.2:97
1449 #: build/C/man2/sigsuspend.2:75 build/C/man2/timer_settime.2:184
1450 #: build/C/man2/timerfd_create.2:342
1451 #, no-wrap
1452 msgid "B<EFAULT>"
1453 msgstr "B<EFAULT>"
1454
1455 #. type: Plain text
1456 #: build/C/man2/getitimer.2:135 build/C/man2/timerfd_create.2:349
1457 msgid "I<new_value>, I<old_value>, or I<curr_value> is not valid a pointer."
1458 msgstr "I<new_value>, I<old_value>, I<curr_value> が有効なポインタではない。"
1459
1460 #. type: Plain text
1461 #: build/C/man2/getitimer.2:148
1462 msgid ""
1463 "I<which> is not one of B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>; "
1464 "or (since Linux 2.6.22) one of the I<tv_usec> fields in the structure "
1465 "pointed to by I<new_value> contains a value outside the range 0 to 999999."
1466 msgstr ""
1467 "I<which> が B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれでもな"
1468 "い。 または (Linux 2.6.22 以降で)  I<new_value> で指定された構造体の "
1469 "I<tv_usec> フィールドの一つが 0 以上 999999 以下の範囲に入らない値である。"
1470
1471 #. type: Plain text
1472 #: build/C/man2/getitimer.2:158
1473 msgid ""
1474 "POSIX.1-2001, SVr4, 4.4BSD (this call first appeared in 4.2BSD).  "
1475 "POSIX.1-2008 marks B<getitimer>()  and B<setitimer>()  obsolete, "
1476 "recommending the use of the POSIX timers API (B<timer_gettime>(2), "
1477 "B<timer_settime>(2), etc.) instead."
1478 msgstr ""
1479 "POSIX.1-2001, SVr4, 4.4BSD (このコールは 4.2BSD で始めて現われた).  "
1480 "POSIX.1-2008 では、 B<getitimer>()  と B<setitimer>()  は廃止予定とされてお"
1481 "り、 代わりに POSIX タイマー API (B<timer_gettime>(2), B<timer_settime>(2)  "
1482 "など) を使うことが推奨されている。"
1483
1484 #. type: Plain text
1485 #: build/C/man2/getitimer.2:164
1486 msgid ""
1487 "A child created via B<fork>(2)  does not inherit its parent's interval "
1488 "timers.  Interval timers are preserved across an B<execve>(2)."
1489 msgstr ""
1490 "B<fork>(2)  で作成された子プロセスは、 親プロセスのインターバル・タイマーを継"
1491 "承しない。 B<execve>(2)  の前後ではインターバル・タイマーは保存される。"
1492
1493 #. type: Plain text
1494 #: build/C/man2/getitimer.2:174
1495 msgid ""
1496 "POSIX.1 leaves the interaction between B<setitimer>()  and the three "
1497 "interfaces B<alarm>(2), B<sleep>(3), and B<usleep>(3)  unspecified."
1498 msgstr ""
1499 "POSIX.1 では、 B<setitimer>()  と、 B<alarm>(2), B<sleep>(3), B<usleep>(3)  "
1500 "という 3 つのインタフェースとの相互の影響については規定していない。"
1501
1502 #. type: Plain text
1503 #: build/C/man2/getitimer.2:176
1504 msgid "The standards are silent on the meaning of the call:"
1505 msgstr ""
1506
1507 #. type: Plain text
1508 #: build/C/man2/getitimer.2:178
1509 #, no-wrap
1510 msgid "    setitimer(which, NULL, &old_value);\n"
1511 msgstr ""
1512
1513 #. type: Plain text
1514 #: build/C/man2/getitimer.2:181
1515 msgid ""
1516 "Many systems (Solaris, the BSDs, and perhaps others)  treat this as "
1517 "equivalent to:"
1518 msgstr ""
1519
1520 #. type: Plain text
1521 #: build/C/man2/getitimer.2:183
1522 #, no-wrap
1523 msgid "    getitimer(which, &old_value);\n"
1524 msgstr ""
1525
1526 #. type: Plain text
1527 #: build/C/man2/getitimer.2:189
1528 msgid ""
1529 "In Linux, this is treated as being equivalent to a call in which the "
1530 "I<new_value> fields are zero; that is, the timer is disabled.  I<Don't use "
1531 "this Linux misfeature>: it is nonportable and unnecessary."
1532 msgstr ""
1533
1534 #. type: SH
1535 #: build/C/man2/getitimer.2:189 build/C/man2/kill.2:160
1536 #: build/C/man3/profil.3:70 build/C/man3/psignal.3:101
1537 #: build/C/man2/sigaction.2:779 build/C/man2/signalfd.2:352
1538 #: build/C/man2/sigpending.2:78 build/C/man3/sigset.3:232
1539 #: build/C/man2/timer_getoverrun.2:115 build/C/man2/timerfd_create.2:373
1540 #: build/C/man2/wait.2:521
1541 #, no-wrap
1542 msgid "BUGS"
1543 msgstr "バグ"
1544
1545 #. type: Plain text
1546 #: build/C/man2/getitimer.2:198
1547 msgid ""
1548 "The generation and delivery of a signal are distinct, and only one instance "
1549 "of each of the signals listed above may be pending for a process.  Under "
1550 "very heavy loading, an B<ITIMER_REAL> timer may expire before the signal "
1551 "from a previous expiration has been delivered.  The second signal in such an "
1552 "event will be lost."
1553 msgstr ""
1554 "シグナルの生成と配送は別個のものであり、 前述のシグナルのそれぞれについて一つ"
1555 "だけがプロセスのために 待機する。 非常に重い負荷の下では、 B<ITIMER_REAL> タ"
1556 "イマーでは、時間切れにより生成された一つ前のシグナルが配送される前に、 次の時"
1557 "間切れが起こる場合がある。 そのような場合、 2 個めのイベントに対するシグナル"
1558 "は失われてしまう。"
1559
1560 #. type: Plain text
1561 #: build/C/man2/getitimer.2:213
1562 msgid ""
1563 "On Linux kernels before 2.6.16, timer values are represented in jiffies.  If "
1564 "a request is made set a timer with a value whose jiffies representation "
1565 "exceeds B<MAX_SEC_IN_JIFFIES> (defined in I<include/linux/jiffies.h>), then "
1566 "the timer is silently truncated to this ceiling value.  On Linux/i386 "
1567 "(where, since Linux 2.6.13, the default jiffy is 0.004 seconds), this means "
1568 "that the ceiling value for a timer is approximately 99.42 days.  Since Linux "
1569 "2.6.16, the kernel uses a different internal representation for times, and "
1570 "this ceiling is removed."
1571 msgstr ""
1572 "バージョン 2.6.16 より前の Linux カーネルでは、 タイマーの値は jiffy で表現さ"
1573 "れる。 要求が jiffy 表現で (I<include/linux/jiffies.h> で定義されている)  "
1574 "B<MAX_SEC_IN_JIFFIES> を越える値をタイマーに設定しようとするものの場合、 タイ"
1575 "マーは暗黙にこの上限値に切り詰められる。 Linux/i386 の場合 (Linux 2.6.13 以降"
1576 "では jiffy は 0.004 秒) の場合、 これはタイマーの上限値がおよそ 99.42 日にな"
1577 "ることを意味する。 Linux 2.6.16 以降では、カーネルは時間に関する内部表現とし"
1578 "て 異なる表現を使うようになっており、この上限はなくなった。"
1579
1580 #.  4 Jul 2005: It looks like this bug may remain in 2.4.x.
1581 #.      http://lkml.org/lkml/2005/7/1/165
1582 #. type: Plain text
1583 #: build/C/man2/getitimer.2:220
1584 msgid ""
1585 "On certain systems (including i386), Linux kernels before version 2.6.12 "
1586 "have a bug which will produce premature timer expirations of up to one jiffy "
1587 "under some circumstances.  This bug is fixed in kernel 2.6.12."
1588 msgstr ""
1589 "(i386 を含む) いくつかのシステムでは、 バージョン 2.6.12 以前の Linux カーネ"
1590 "ルは ある種の状況では 1 jiffy 早くタイマーが終了してしまうというバグがあっ"
1591 "た。 このバグはカーネル 2.6.12 で修正された。"
1592
1593 #.  Bugzilla report 25 Apr 2006:
1594 #.  http://bugzilla.kernel.org/show_bug.cgi?id=6443
1595 #.  "setitimer() should reject noncanonical arguments"
1596 #. type: Plain text
1597 #: build/C/man2/getitimer.2:239
1598 msgid ""
1599 "POSIX.1-2001 says that B<setitimer>()  should fail if a I<tv_usec> value is "
1600 "specified that is outside of the range 0 to 999999.  However, in kernels up "
1601 "to and including 2.6.21, Linux does not give an error, but instead silently "
1602 "adjusts the corresponding seconds value for the timer.  From kernel 2.6.22 "
1603 "onward, this nonconformance has been repaired: an improper I<tv_usec> value "
1604 "results in an B<EINVAL> error."
1605 msgstr ""
1606 "POSIX.1-2001 では B<setitimer>()  は I<tv_usec> の値が 0 から 999999 の範囲外"
1607 "である場合には失敗するべきだとしている。 しかし、2.6.21 以前のカーネルの "
1608 "Linux ではエラーにならず、 対応する秒数の分だけそのタイマーの秒の値が暗黙に調"
1609 "整される。 カーネル 2.6.22 以降では、この標準非準拠の動作は修正され、 "
1610 "I<tv_usec> の値が不適切な場合には B<EINVAL> エラーとなる。"
1611
1612 #. type: Plain text
1613 #: build/C/man2/getitimer.2:246
1614 msgid ""
1615 "B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
1616 "B<timerfd_create>(2), B<time>(7)"
1617 msgstr ""
1618 "B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
1619 "B<timerfd_create>(2), B<time>(7)"
1620
1621 #. type: TH
1622 #: build/C/man3/gsignal.3:27
1623 #, no-wrap
1624 msgid "GSIGNAL"
1625 msgstr "GSIGNAL"
1626
1627 #. type: TH
1628 #: build/C/man3/gsignal.3:27 build/C/man3/profil.3:28
1629 #, no-wrap
1630 msgid "2007-07-26"
1631 msgstr "2007-07-26"
1632
1633 #. type: Plain text
1634 #: build/C/man3/gsignal.3:30
1635 msgid "gsignal, ssignal - software signal facility"
1636 msgstr "gsignal, ssignal - ソフトウェア・シグナル機能"
1637
1638 #. type: Plain text
1639 #: build/C/man3/gsignal.3:33 build/C/man2/kill.2:52 build/C/man3/psignal.3:36
1640 #: build/C/man3/raise.3:35 build/C/man2/sigaction.2:53
1641 #: build/C/man3/siginterrupt.3:37 build/C/man3/sigpause.3:31
1642 #: build/C/man3/sigwait.3:32 build/C/man2/sigwaitinfo.2:31
1643 #, no-wrap
1644 msgid "B<#include E<lt>signal.hE<gt>>\n"
1645 msgstr "B<#include E<lt>signal.hE<gt>>\n"
1646
1647 #. type: Plain text
1648 #: build/C/man3/gsignal.3:35
1649 #, no-wrap
1650 msgid "B<typedef void (*sighandler_t)(int);>\n"
1651 msgstr "B<typedef void (*sighandler_t)(int);>\n"
1652
1653 #. type: Plain text
1654 #: build/C/man3/gsignal.3:37
1655 #, no-wrap
1656 msgid "B<int gsignal(int >I<signum>B<);>\n"
1657 msgstr "B<int gsignal(int >I<signum>B<);>\n"
1658
1659 #. type: Plain text
1660 #: build/C/man3/gsignal.3:39
1661 #, no-wrap
1662 msgid "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
1663 msgstr "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
1664
1665 #. type: Plain text
1666 #: build/C/man3/gsignal.3:44 build/C/man2/kill.2:59 build/C/man2/killpg.2:53
1667 #: build/C/man3/profil.3:40 build/C/man3/psignal.3:46
1668 #: build/C/man2/sigaction.2:61 build/C/man2/sigaltstack.2:38
1669 #: build/C/man3/siginterrupt.3:44 build/C/man2/sigpending.2:40
1670 #: build/C/man2/sigprocmask.2:41 build/C/man3/sigqueue.3:39
1671 #: build/C/man3/sigset.3:45 build/C/man3/sigsetops.3:51
1672 #: build/C/man2/sigsuspend.2:40 build/C/man3/sigvec.3:45
1673 #: build/C/man3/sigwait.3:39 build/C/man2/sigwaitinfo.2:41
1674 #: build/C/man2/timer_create.2:48 build/C/man2/timer_delete.2:41
1675 #: build/C/man2/timer_getoverrun.2:41 build/C/man2/timer_settime.2:45
1676 #: build/C/man2/wait.2:67 build/C/man2/wait4.2:53
1677 msgid ""
1678 "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
1679 msgstr "glibc 向けの機能検査マクロの要件 (B<feature_test_macros>(7)  参照):"
1680
1681 #. type: Plain text
1682 #: build/C/man3/gsignal.3:49
1683 msgid "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
1684 msgstr "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
1685
1686 #. type: Plain text
1687 #: build/C/man3/gsignal.3:57
1688 msgid ""
1689 "Don't use these functions under Linux.  Due to a historical mistake, under "
1690 "Linux these functions are aliases for B<raise>(3)  and B<signal>(2), "
1691 "respectively."
1692 msgstr ""
1693 "Linux ではこれらの関数を使用しないこと。 過去に間違いがあり、Linux では "
1694 "B<gsignal>()  と B<ssignal>()  はそれぞれ B<raise>(3)  と B<signal>(2)  の別"
1695 "名になっている。"
1696
1697 #. type: Plain text
1698 #: build/C/man3/gsignal.3:95
1699 msgid ""
1700 "Elsewhere, on System V-like systems, these functions implement software "
1701 "signaling, entirely independent of the classical B<signal>(2)  and B<kill>"
1702 "(2)  functions.  The function B<ssignal>()  defines the action to take when "
1703 "the software signal with number I<signum> is raised using the function "
1704 "B<gsignal>(), and returns the previous such action or B<SIG_DFL>.  The "
1705 "function B<gsignal>()  does the following: if no action (or the action "
1706 "B<SIG_DFL>)  was specified for I<signum>, then it does nothing and returns "
1707 "0.  If the action B<SIG_IGN> was specified for I<signum>, then it does "
1708 "nothing and returns 1.  Otherwise, it resets the action to B<SIG_DFL> and "
1709 "calls the action function with argument I<signum>, and returns the value "
1710 "returned by that function.  The range of possible values I<signum> varies "
1711 "(often 1-15 or 1-17)."
1712 msgstr ""
1713 "一方、System V 風のシステムでは、これらの関数で、 従来の B<signal>(2)  や "
1714 "B<kill>(2)  の関数群とは完全に独立な、 ソフトウェア・シグナリングを実現してい"
1715 "る。 B<ssignal>()  関数は、番号 I<signum> のソフトウェア・シグナルが "
1716 "B<gsignal>()  関数を使って発生された時にとるべきアクションを定義する。 "
1717 "B<gsignal>()  の返り値は、一つ前に指定されていたアクション、もしくは "
1718 "B<SIG_DFL> である。 B<gsignal>()  は以下のような動作を行う: I<signum> に対し"
1719 "てアクションが指定されていないか、アクション B<SIG_DFL> が指定されていた場"
1720 "合、何もせずに 0 を返す。 I<signum> に対して アクション B<SIG_IGN> が指定され"
1721 "ていた場合、何もせずに 1 を返す。 それ以外の場合、アクションを B<SIG_DFL> に"
1722 "リセットし、引き数に I<signum> を指定してアクション関数を呼び出して、アクショ"
1723 "ン関数の返り値を返す。 I<signum> がとり得る値の範囲は実装により異なる (多くの"
1724 "場合 1〜15 か 1〜17 である)。"
1725
1726 #. type: Plain text
1727 #: build/C/man3/gsignal.3:103
1728 msgid ""
1729 "These functions are available under AIX, DG/UX, HP-UX, SCO, Solaris, Tru64.  "
1730 "They are called obsolete under most of these systems, and are broken under "
1731 "Linux libc and glibc.  Some systems also have B<gsignal_r>()  and "
1732 "B<ssignal_r>()."
1733 msgstr ""
1734 "これらの関数は、AIX, DG/UX, HP-UX, SCO, Solaris, Tru64 で使用可能である。 こ"
1735 "れらのシステムのほとんどで廃止されたことになっており、 Linux の libc および "
1736 "glibc では正しく実装されていない。 B<gsignal_r>()  と B<ssignal_r>()  が実装"
1737 "されているシステムもある。"
1738
1739 #. type: Plain text
1740 #: build/C/man3/gsignal.3:107
1741 msgid "B<kill>(2), B<signal>(2), B<raise>(3)"
1742 msgstr "B<kill>(2), B<signal>(2), B<raise>(3)"
1743
1744 #. type: TH
1745 #: build/C/man2/kill.2:44
1746 #, no-wrap
1747 msgid "KILL"
1748 msgstr "KILL"
1749
1750 #. type: TH
1751 #: build/C/man2/kill.2:44
1752 #, no-wrap
1753 msgid "2013-02-05"
1754 msgstr "2013-02-05"
1755
1756 #. type: Plain text
1757 #: build/C/man2/kill.2:47
1758 msgid "kill - send signal to a process"
1759 msgstr "kill - プロセスにシグナルを送る"
1760
1761 #. type: Plain text
1762 #: build/C/man2/kill.2:50
1763 #, no-wrap
1764 msgid "B<#include E<lt>sys/types.hE<gt>>\n"
1765 msgstr "B<#include E<lt>sys/types.hE<gt>>\n"
1766
1767 #. type: Plain text
1768 #: build/C/man2/kill.2:54
1769 #, no-wrap
1770 msgid "B<int kill(pid_t >I<pid>B<, int >I<sig>B<);>\n"
1771 msgstr "B<int kill(pid_t >I<pid>B<, int >I<sig>B<);>\n"
1772
1773 #. type: Plain text
1774 #: build/C/man2/kill.2:64
1775 msgid ""
1776 "B<kill>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1777 msgstr ""
1778 "B<kill>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1779
1780 #. type: Plain text
1781 #: build/C/man2/kill.2:70
1782 msgid ""
1783 "The B<kill>()  system call can be used to send any signal to any process "
1784 "group or process."
1785 msgstr ""
1786 "システムコールの B<kill>()  は、任意のプロセス・グループもしくはプロセスにシ"
1787 "グナルを 送るのに使われる。"
1788
1789 #. type: Plain text
1790 #: build/C/man2/kill.2:73
1791 msgid ""
1792 "If I<pid> is positive, then signal I<sig> is sent to the process with the ID "
1793 "specified by I<pid>."
1794 msgstr ""
1795 "I<pid> に正の値を指定した場合、シグナル I<sig> が I<pid> で指定された ID を持"
1796 "つプロセスに送られる。"
1797
1798 #. type: Plain text
1799 #: build/C/man2/kill.2:76
1800 msgid ""
1801 "If I<pid> equals 0, then I<sig> is sent to every process in the process "
1802 "group of the calling process."
1803 msgstr ""
1804 "I<pid> に 0 を指定した場合、 呼び出し元のプロセスのプロセス・グループに属する"
1805 "すべてのプロセスに I<sig> で指定したシグナルが送られる。"
1806
1807 #. type: Plain text
1808 #: build/C/man2/kill.2:80
1809 msgid ""
1810 "If I<pid> equals -1, then I<sig> is sent to every process for which the "
1811 "calling process has permission to send signals, except for process 1 "
1812 "(I<init>), but see below."
1813 msgstr ""
1814 "I<pid> に -1 を指定した場合、 I<sig> で指定したシグナルが、 呼び出し元のプロ"
1815 "セスがシグナルを送る許可を持つ全てのプロセスに 送られる。但し、プロセス番号 "
1816 "1 (I<init>) へはシグナルは送られない。 以下の関連部分も参照のこと。"
1817
1818 #. type: Plain text
1819 #: build/C/man2/kill.2:83
1820 msgid ""
1821 "If I<pid> is less than -1, then I<sig> is sent to every process in the "
1822 "process group whose ID is I<-pid>."
1823 msgstr ""
1824 "I<pid> に -1 より小さな値を指定した場合、 ID が I<-pid> のプロセス・グループ"
1825 "に属するすべてのプロセスに I<sig> で指定したシグナルが送られる。"
1826
1827 #. type: Plain text
1828 #: build/C/man2/kill.2:88
1829 msgid ""
1830 "If I<sig> is 0, then no signal is sent, but error checking is still "
1831 "performed; this can be used to check for the existence of a process ID or "
1832 "process group ID."
1833 msgstr ""
1834 "I<sig> に 0 を指定した場合、シグナルは送られないが、 エラーのチェックは行われ"
1835 "る。これを使って、プロセス ID や プロセスグループ ID の存在確認を行うことがで"
1836 "きる。"
1837
1838 #. type: Plain text
1839 #: build/C/man2/kill.2:99 build/C/man2/killpg.2:89
1840 msgid ""
1841 "For a process to have permission to send a signal it must either be "
1842 "privileged (under Linux: have the B<CAP_KILL> capability), or the real or "
1843 "effective user ID of the sending process must equal the real or saved set-"
1844 "user-ID of the target process.  In the case of B<SIGCONT> it suffices when "
1845 "the sending and receiving processes belong to the same session."
1846 msgstr ""
1847 "プロセスがシグナルを送信する許可を持つためには、 プロセスが特権 (Linux では "
1848 "B<CAP_KILL> ケーパビリティ (capability)) を持つか、 送信元プロセスの実ユー"
1849 "ザー ID または実効ユーザー ID が 送信先プロセスの実 set-user-ID または保存 "
1850 "set-user-ID と 等しくなければならない。 B<SIGCONT> の場合、送信プロセスと受信"
1851 "プロセスが 同じセッションに属していれば十分である。"
1852
1853 #. type: Plain text
1854 #: build/C/man2/kill.2:104
1855 msgid ""
1856 "On success (at least one signal was sent), zero is returned.  On error, -1 "
1857 "is returned, and I<errno> is set appropriately."
1858 msgstr ""
1859 "成功した場合 (少なくとも一つのシグナルが送信された場合)、 0 が返される。エ"
1860 "ラーの場合 -1 が返され、 I<errno> が適切に設定される。"
1861
1862 #. type: Plain text
1863 #: build/C/man2/kill.2:108
1864 msgid "An invalid signal was specified."
1865 msgstr "無効なシグナルを指定した。"
1866
1867 #. type: TP
1868 #: build/C/man2/kill.2:108 build/C/man2/killpg.2:99 build/C/man2/prctl.2:870
1869 #: build/C/man2/prctl.2:882 build/C/man2/prctl.2:892 build/C/man2/prctl.2:900
1870 #: build/C/man2/rt_sigqueueinfo.2:148 build/C/man2/sigaltstack.2:151
1871 #: build/C/man3/sigqueue.3:102 build/C/man2/tkill.2:103
1872 #, no-wrap
1873 msgid "B<EPERM>"
1874 msgstr "B<EPERM>"
1875
1876 #. type: Plain text
1877 #: build/C/man2/kill.2:112 build/C/man2/killpg.2:103
1878 msgid ""
1879 "The process does not have permission to send the signal to any of the target "
1880 "processes."
1881 msgstr ""
1882 "プロセスが、受信するプロセスのいずれに対しても シグナルを送る許可を持っていな"
1883 "い。"
1884
1885 #. type: TP
1886 #: build/C/man2/kill.2:112 build/C/man2/killpg.2:103 build/C/man2/killpg.2:107
1887 #: build/C/man2/rt_sigqueueinfo.2:156 build/C/man3/sigqueue.3:108
1888 #: build/C/man2/tkill.2:108
1889 #, no-wrap
1890 msgid "B<ESRCH>"
1891 msgstr "B<ESRCH>"
1892
1893 #. type: Plain text
1894 #: build/C/man2/kill.2:120
1895 msgid ""
1896 "The pid or process group does not exist.  Note that an existing process "
1897 "might be a zombie, a process which already committed termination, but has "
1898 "not yet been B<wait>(2)ed for."
1899 msgstr ""
1900 "指定したプロセスまたはプロセス・グループが存在しなかった。 ゾンビプロセスは存"
1901 "在するプロセスとしてみなされる。 ゾンビプロセスとはすでに処理は終了している"
1902 "が、親プロセスによる B<wait>()  処理が行われていないプロセスのことである。"
1903
1904 #. type: Plain text
1905 #: build/C/man2/kill.2:122 build/C/man2/pause.2:59 build/C/man2/wait.2:422
1906 msgid "SVr4, 4.3BSD, POSIX.1-2001."
1907 msgstr "SVr4, 4.3BSD, POSIX.1-2001."
1908
1909 #. type: Plain text
1910 #: build/C/man2/kill.2:130
1911 msgid ""
1912 "The only signals that can be sent to process ID 1, the I<init> process, are "
1913 "those for which I<init> has explicitly installed signal handlers.  This is "
1914 "done to assure the system is not brought down accidentally."
1915 msgstr ""
1916 "プロセス番号 1 の I<init> プロセスに送ることができるシグナルは、 I<init> が明"
1917 "示的にシグナルハンドラを設定したシグナルだけである。 こうなっているのは、誤っ"
1918 "てシステムをダウンさせないようにするためである。"
1919
1920 #. type: Plain text
1921 #: build/C/man2/kill.2:136
1922 msgid ""
1923 "POSIX.1-2001 requires that I<kill(-1,sig)> send I<sig> to all processes that "
1924 "the calling process may send signals to, except possibly for some "
1925 "implementation-defined system processes.  Linux allows a process to signal "
1926 "itself, but on Linux the call I<kill(-1,sig)> does not signal the calling "
1927 "process."
1928 msgstr ""
1929 "POSIX.1-2001 では、 I<kill(-1,sig)> が 呼び出し元のプロセスがシグナルを送るこ"
1930 "とが出来るプロセス全てに I<sig> を送ることを要求している。 但し、システム実装"
1931 "時に定められたシステムプロセスは シグナルの送信対象から除外される。 Linux で"
1932 "は、プロセスが自分自身にシグナルを送れるようになっているが、 Linux の I<kill"
1933 "(-1,sig)> は呼び出し元のプロセスにはシグナルを送らない。"
1934
1935 #. type: Plain text
1936 #: build/C/man2/kill.2:146
1937 msgid ""
1938 "POSIX.1-2001 requires that if a process sends a signal to itself, and the "
1939 "sending thread does not have the signal blocked, and no other thread has it "
1940 "unblocked or is waiting for it in B<sigwait>(3), at least one unblocked "
1941 "signal must be delivered to the sending thread before the B<kill>()  returns."
1942 msgstr ""
1943 "POSIX.1-2001 では以下の動作になることを要求している。 自分自身にシグナルを送"
1944 "ると、シグナルを送ったスレッドがそのシグナルをブロック しておらず、他のどのス"
1945 "レッドもそのシグナルを受ける状態にもなく B<sigwait>(3)  でそのシグナルを待っ"
1946 "てもいない場合、 B<kill>()  が返る前に少なくとも一つのブロックされていない シ"
1947 "グナルがシグナルを送ったスレッドに配送されなければならない。"
1948
1949 #. type: SS
1950 #: build/C/man2/kill.2:146 build/C/man3/sigpause.3:77 build/C/man2/wait.2:476
1951 #, no-wrap
1952 msgid "Linux notes"
1953 msgstr "Linux での注意"
1954
1955 #.  In the 0.* kernels things chopped and changed quite
1956 #.  a bit - MTK, 24 Jul 02
1957 #. type: Plain text
1958 #: build/C/man2/kill.2:160
1959 msgid ""
1960 "Across different kernel versions, Linux has enforced different rules for the "
1961 "permissions required for an unprivileged process to send a signal to another "
1962 "process.  In kernels 1.0 to 1.2.2, a signal could be sent if the effective "
1963 "user ID of the sender matched that of the receiver, or the real user ID of "
1964 "the sender matched that of the receiver.  From kernel 1.2.3 until 1.3.77, a "
1965 "signal could be sent if the effective user ID of the sender matched either "
1966 "the real or effective user ID of the receiver.  The current rules, which "
1967 "conform to POSIX.1-2001, were adopted in kernel 1.3.78."
1968 msgstr ""
1969 "Linux では、特権のないプロセスが他のプロセスにシグナルを送信するために 必要な"
1970 "権限についてのルールが、カーネルバージョンにより違っている。 カーネル 1.0 か"
1971 "ら 1.2.2 では、送信側の実効ユーザーID が受信側の 実効ユーザー IDと一致すれば"
1972 "シグナルを送信できた。 カーネル 1.2.3 から 1.3.77では、送信側の実効ユーザー"
1973 "ID が受信側の 実ユーザーID か実効ユーザーID のいずれかと一致すればシグナルを"
1974 "送信できた。 現在のルールは、POSIX.1-2001 に準拠しており、カーネル 1.3.78 以"
1975 "降で 適用されている。"
1976
1977 #. type: Plain text
1978 #: build/C/man2/kill.2:170
1979 msgid ""
1980 "In 2.6 kernels up to and including 2.6.7, there was a bug that meant that "
1981 "when sending signals to a process group, B<kill>()  failed with the error "
1982 "B<EPERM> if the caller did not have permission to send the signal to I<any> "
1983 "(rather than I<all>) of the members of the process group.  Notwithstanding "
1984 "this error return, the signal was still delivered to all of the processes "
1985 "for which the caller had permission to signal."
1986 msgstr "バージョン 2.6.7 以前の 2.6 系のカーネルには、 プロセスグループにシグナルを送ったときに、 呼び出し元のプロセスがプロセスグループの (全メンバーではなく) 一部のメンバーに対してのみシグナルを送る許可を持っていない場合に、 B<kill>()  がエラー B<EPERM> で失敗するというバグがある。 このエラーが返るにもかかわらず、そのシグナルは呼び出し元が シグナルを送る許可を持つ全てのプロセスへ送られる。"
1987
1988 #. type: Plain text
1989 #: build/C/man2/kill.2:180
1990 msgid ""
1991 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), B<sigqueue>"
1992 "(3), B<capabilities>(7), B<credentials>(7), B<signal>(7)"
1993 msgstr ""
1994 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), B<sigqueue>"
1995 "(3), B<credentials>(7), B<capabilities>(7), B<signal>(7)"
1996
1997 #. type: TH
1998 #: build/C/man2/killpg.2:42
1999 #, no-wrap
2000 msgid "KILLPG"
2001 msgstr "KILLPG"
2002
2003 #. type: TH
2004 #: build/C/man2/killpg.2:42 build/C/man3/sigset.3:26
2005 #, no-wrap
2006 msgid "2010-09-20"
2007 msgstr "2010-09-20"
2008
2009 #. type: Plain text
2010 #: build/C/man2/killpg.2:45
2011 msgid "killpg - send signal to a process group"
2012 msgstr "killpg - シグナルをプロセス・グループに送る"
2013
2014 #. type: Plain text
2015 #: build/C/man2/killpg.2:49
2016 msgid "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2017 msgstr "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2018
2019 #. type: TP
2020 #: build/C/man2/killpg.2:55
2021 #, no-wrap
2022 msgid "B<killpg>():"
2023 msgstr "B<killpg>():"
2024
2025 #. type: Plain text
2026 #: build/C/man2/killpg.2:59 build/C/man2/sigaltstack.2:46
2027 #: build/C/man3/siginterrupt.3:51 build/C/man2/wait4.2:60
2028 msgid ""
2029 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2030 "_XOPEN_SOURCE_EXTENDED"
2031 msgstr ""
2032 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2033 "_XOPEN_SOURCE_EXTENDED"
2034
2035 #. type: Plain text
2036 #: build/C/man2/killpg.2:69
2037 msgid ""
2038 "B<killpg>()  sends the signal I<sig> to the process group I<pgrp>.  See "
2039 "B<signal>(7)  for a list of signals."
2040 msgstr ""
2041 "B<killpg>()  は I<sig> で指定したシグナルを I<pgrp> で指定したプロセス・グ"
2042 "ループに送る。 シグナルの定義の一覧は B<signal>(7)  を参照のこと。"
2043
2044 #. type: Plain text
2045 #: build/C/man2/killpg.2:78
2046 msgid ""
2047 "If I<pgrp> is 0, B<killpg>()  sends the signal to the calling process's "
2048 "process group.  (POSIX says: If I<pgrp> is less than or equal to 1, the "
2049 "behavior is undefined.)"
2050 msgstr ""
2051 "引き数 I<pgrp> に 0 を指定した場合には B<killpg>()  は呼び出し元のプロセスが"
2052 "属しているプロセス・グループに対してシグナルを送る。 (POSIX では以下のように"
2053 "記述されている: I<pgrp> が 1 以下である場合、動作は未定義である。)"
2054
2055 #. type: Plain text
2056 #: build/C/man2/killpg.2:99
2057 msgid "I<Sig> is not a valid signal number."
2058 msgstr "I<sig> で指定された値は無効なシグナル番号である。"
2059
2060 #. type: Plain text
2061 #: build/C/man2/killpg.2:107
2062 msgid "No process can be found in the process group specified by I<pgrp>."
2063 msgstr ""
2064 "I<pgrp> で指定されたプロセス・グループに属するプロセスが存在しなかった。"
2065
2066 #. type: Plain text
2067 #: build/C/man2/killpg.2:111
2068 msgid ""
2069 "The process group was given as 0 but the sending process does not have a "
2070 "process group."
2071 msgstr ""
2072 "プロセス・グループとして 0 が指定されたが、送信プロセスは プロセス・グループ"
2073 "を持っていない。"
2074
2075 #. type: Plain text
2076 #: build/C/man2/killpg.2:115
2077 msgid ""
2078 "SVr4, 4.4BSD (the B<killpg>()  function call first appeared in 4BSD), "
2079 "POSIX.1-2001."
2080 msgstr "SVr4, 4.4BSD (B<killpg>()  は 4BSD で初めて追加された), POSIX.1-2001。"
2081
2082 #. type: Plain text
2083 #: build/C/man2/killpg.2:129
2084 msgid ""
2085 "There are various differences between the permission checking in BSD-type "
2086 "systems and System V-type systems.  See the POSIX rationale for B<kill>().  "
2087 "A difference not mentioned by POSIX concerns the return value B<EPERM>: BSD "
2088 "documents that no signal is sent and B<EPERM> returned when the permission "
2089 "check failed for at least one target process, while POSIX documents B<EPERM> "
2090 "only when the permission check failed for all target processes."
2091 msgstr ""
2092 "BSD 系システムと System V 系システムでは、 許可のチェックに様々な違いがあ"
2093 "る。 B<kill>(2)  についての POSIX の原理 (rationale) を参照すること。 POSIX "
2094 "で記述されていない違いとしては、返り値 B<EPERM> がある。 BSD では「送信先プロ"
2095 "セスの許可のチェックが 1 つでも失敗した場合は、 シグナルが送信されず、 "
2096 "B<EPERM> が返される」と記述されている。 POSIX では「送信先プロセスの許可の"
2097 "チェックが全て失敗した場合にのみ、 B<EPERM> が返される」と記述されている。"
2098
2099 #. type: Plain text
2100 #: build/C/man2/killpg.2:134
2101 msgid ""
2102 "On Linux, B<killpg>()  is implemented as a library function that makes the "
2103 "call I<kill(-pgrp,\\ sig)>."
2104 msgstr ""
2105 "Linux では、 B<killpg>()  はライブラリ関数として実装されており、 I<kill(-"
2106 "pgrp,\\ sig)> の呼び出しが行われる。"
2107
2108 #. type: Plain text
2109 #: build/C/man2/killpg.2:140
2110 msgid ""
2111 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<capabilities>(7), B<credentials>"
2112 "(7)"
2113 msgstr ""
2114 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<credentials>(7), B<capabilities>"
2115 "(7)"
2116
2117 #. type: TH
2118 #: build/C/man2/pause.2:30
2119 #, no-wrap
2120 msgid "PAUSE"
2121 msgstr "PAUSE"
2122
2123 #. type: TH
2124 #: build/C/man2/pause.2:30
2125 #, no-wrap
2126 msgid "2008-10-06"
2127 msgstr "2008-10-06"
2128
2129 #. type: Plain text
2130 #: build/C/man2/pause.2:33
2131 msgid "pause - wait for signal"
2132 msgstr "pause - シグナルを待つ"
2133
2134 #. type: Plain text
2135 #: build/C/man2/pause.2:35 build/C/man3/profil.3:33
2136 msgid "B<#include E<lt>unistd.hE<gt>>"
2137 msgstr "B<#include E<lt>unistd.hE<gt>>"
2138
2139 #. type: Plain text
2140 #: build/C/man2/pause.2:37
2141 msgid "B<int pause(void);>"
2142 msgstr "B<int pause(void);>"
2143
2144 #. type: Plain text
2145 #: build/C/man2/pause.2:42
2146 msgid ""
2147 "B<pause>()  causes the calling process (or thread) to sleep until a signal "
2148 "is delivered that either terminates the process or causes the invocation of "
2149 "a signal-catching function."
2150 msgstr ""
2151 "B<pause>()  は、呼び出したプロセス (またはスレッド) を、 そのプロセスを終了さ"
2152 "せたり、シグナル捕捉関数が起動されるような シグナルが配送されるまで、スリープ"
2153 "させる。"
2154
2155 #.  .BR ERESTARTNOHAND .
2156 #. type: Plain text
2157 #: build/C/man2/pause.2:53
2158 msgid ""
2159 "B<pause>()  only returns when a signal was caught and the signal-catching "
2160 "function returned.  In this case B<pause>()  returns -1, and I<errno> is set "
2161 "to B<EINTR>."
2162 msgstr ""
2163 "B<pause>()  が返るのは、シグナルを受け取りシグナル捕獲関数から返った場合だけ"
2164 "である。 この場合は B<pause>()  は -1 を返し、 I<errno> に B<EINTR> が設定さ"
2165 "れる。"
2166
2167 #. type: TP
2168 #: build/C/man2/pause.2:54 build/C/man2/sigsuspend.2:79
2169 #: build/C/man2/sigwaitinfo.2:123 build/C/man2/wait.2:408
2170 #, no-wrap
2171 msgid "B<EINTR>"
2172 msgstr "B<EINTR>"
2173
2174 #. type: Plain text
2175 #: build/C/man2/pause.2:57
2176 msgid "a signal was caught and the signal-catching function returned."
2177 msgstr "シグナルを受け取り、シグナル捕獲関数から帰ってきた。"
2178
2179 #. type: Plain text
2180 #: build/C/man2/pause.2:64
2181 msgid "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2182 msgstr "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2183
2184 #. type: TH
2185 #: build/C/man2/prctl.2:52
2186 #, no-wrap
2187 msgid "PRCTL"
2188 msgstr "PRCTL"
2189
2190 #. type: TH
2191 #: build/C/man2/prctl.2:52
2192 #, no-wrap
2193 msgid "2013-02-25"
2194 msgstr "2013-02-25"
2195
2196 #. type: Plain text
2197 #: build/C/man2/prctl.2:55
2198 msgid "prctl - operations on a process"
2199 msgstr "prctl - プロセスの操作を行なう"
2200
2201 #. type: Plain text
2202 #: build/C/man2/prctl.2:58
2203 #, no-wrap
2204 msgid "B<#include E<lt>sys/prctl.hE<gt>>\n"
2205 msgstr "B<#include E<lt>sys/prctl.hE<gt>>\n"
2206
2207 #. type: Plain text
2208 #: build/C/man2/prctl.2:61
2209 #, no-wrap
2210 msgid ""
2211 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2212 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2213 msgstr ""
2214 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2215 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2216
2217 #. type: Plain text
2218 #: build/C/man2/prctl.2:68
2219 msgid ""
2220 "B<prctl>()  is called with a first argument describing what to do (with "
2221 "values defined in I<E<lt>linux/prctl.hE<gt>>), and further arguments with a "
2222 "significance depending on the first one.  The first argument can be:"
2223 msgstr ""
2224 "B<prctl>()  の動作は最初の引き数によって決定される (この値は I<E<lt>linux/"
2225 "prctl.hE<gt>> に定義されている)。 残りの引き数は最初の引き数によって変化す"
2226 "る。 一番目の引き数として以下のものを指定できる:"
2227
2228 #. type: TP
2229 #: build/C/man2/prctl.2:68
2230 #, no-wrap
2231 msgid "B<PR_CAPBSET_READ> (since Linux 2.6.25)"
2232 msgstr "B<PR_CAPBSET_READ> (Linux 2.6.25 以降)"
2233
2234 #. type: Plain text
2235 #: build/C/man2/prctl.2:80
2236 msgid ""
2237 "Return (as the function result) 1 if the capability specified in I<arg2> is "
2238 "in the calling thread's capability bounding set, or 0 if it is not.  (The "
2239 "capability constants are defined in I<E<lt>linux/capability.hE<gt>>.)  The "
2240 "capability bounding set dictates whether the process can receive the "
2241 "capability through a file's permitted capability set on a subsequent call to "
2242 "B<execve>(2)."
2243 msgstr ""
2244 "で指定されたケーパビリティが呼び出したスレッドのケーパビリティ バインディング"
2245 "セット (capability bounding set) に含まれている場合、 (関数の返り値として) 1 "
2246 "を返し、そうでない場合 0 を返す (ケーパビリティ定数は I<E<lt>linux/"
2247 "capability.hE<gt>> で定義されている)。 ケーパビリティバウンディングセット"
2248 "は、 B<execve>(2)  を呼び出した際に、ファイルの許可 (permitted) ケーパビリ"
2249 "ティの中で そのプロセスが獲得できるケーパビリティを指示するものである。"
2250
2251 #. type: Plain text
2252 #: build/C/man2/prctl.2:85
2253 msgid ""
2254 "If the capability specified in I<arg2> is not valid, then the call fails "
2255 "with the error B<EINVAL>."
2256 msgstr ""
2257 "I<arg2> に指定されたケーパビリティが有効でない場合、 呼び出しはエラー "
2258 "B<EINVAL> で失敗する。"
2259
2260 #. type: TP
2261 #: build/C/man2/prctl.2:85
2262 #, no-wrap
2263 msgid "B<PR_CAPBSET_DROP> (since Linux 2.6.25)"
2264 msgstr "B<PR_CAPBSET_DROP> (Linux 2.6.25 以降)"
2265
2266 #. type: Plain text
2267 #: build/C/man2/prctl.2:94
2268 msgid ""
2269 "If the calling thread has the B<CAP_SETPCAP> capability, then drop the "
2270 "capability specified by I<arg2> from the calling thread's capability "
2271 "bounding set.  Any children of the calling thread will inherit the newly "
2272 "reduced bounding set."
2273 msgstr ""
2274 "呼び出したスレッドがケーパビリティ B<CAP_SETPCAP> を持っている場合、 呼び出し"
2275 "たスレッドのケーパビリティバウンディングセットから I<arg2> で指定されたケーパ"
2276 "ビリティを外す。 呼び出したスレッドの子プロセスは変更後のバウンディングセット"
2277 "を 継承する。"
2278
2279 #. type: Plain text
2280 #: build/C/man2/prctl.2:106
2281 msgid ""
2282 "The call fails with the error: B<EPERM> if the calling thread does not have "
2283 "the B<CAP_SETPCAP>; B<EINVAL> if I<arg2> does not represent a valid "
2284 "capability; or B<EINVAL> if file capabilities are not enabled in the kernel, "
2285 "in which case bounding sets are not supported."
2286 msgstr ""
2287 "呼び出したスレッドが B<CAP_SETPCAP> を持っていない場合、呼び出しはエラー "
2288 "B<EPERM> で失敗する。 I<arg2> に指定されたケーパビリティが有効でない場合、 "
2289 "B<EINVAL> で失敗する。 ファイルケーパビリティがカーネルで有効になっていない場"
2290 "合 (この場合にはバウンディングセットがサポートされない)、 B<EINVAL> で失敗す"
2291 "る。"
2292
2293 #. type: TP
2294 #: build/C/man2/prctl.2:106
2295 #, no-wrap
2296 msgid "B<PR_SET_CHILD_SUBREAPER> (since Linux 3.4)"
2297 msgstr "B<PR_SET_CHILD_SUBREAPER> (Linux 3.4 以降)"
2298
2299 #.  commit ebec18a6d3aa1e7d84aab16225e87fd25170ec2b
2300 #. type: Plain text
2301 #: build/C/man2/prctl.2:131
2302 msgid ""
2303 "If I<arg2> is nonzero, set the \"child subreaper\" attribute of the calling "
2304 "process; if I<arg2> is zero, unset the attribute.  When a process is marked "
2305 "as a child subreaper, all of the children that it creates, and their "
2306 "descendants, will be marked as having a subreaper.  In effect, a subreaper "
2307 "fulfills the role of B<init>(1)  for its descendant processes.  Upon "
2308 "termination of a process that is orphaned (i.e., its immediate parent has "
2309 "already terminated)  and marked as having a subreaper, the nearest still "
2310 "living ancestor subreaper will receive a B<SIGCHLD> signal and be able to "
2311 "B<wait>(2)  on the process to discover its termination status."
2312 msgstr ""
2313
2314 #. type: TP
2315 #: build/C/man2/prctl.2:131
2316 #, no-wrap
2317 msgid "B<PR_GET_CHILD_SUBREAPER> (since Linux 3.4)"
2318 msgstr "B<PR_GET_CHILD_SUBREAPER> (Linux 3.4 以降)"
2319
2320 #. type: Plain text
2321 #: build/C/man2/prctl.2:136
2322 #, fuzzy
2323 #| msgid ""
2324 #| "Return the endian-ness of the calling process, in the location pointed to "
2325 #| "by I<(int\\ *) arg2>."
2326 msgid ""
2327 "Return the \"child subreaper\" setting of the caller, in the location "
2328 "pointed to by I<(int\\ *) arg2>."
2329 msgstr ""
2330 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<(int\\ *) arg2> が指"
2331 "す場所に格納して返す。"
2332
2333 #. type: TP
2334 #: build/C/man2/prctl.2:136
2335 #, no-wrap
2336 msgid "B<PR_SET_DUMPABLE> (since Linux 2.3.20)"
2337 msgstr "B<PR_SET_DUMPABLE> (Linux 2.3.20 以降)"
2338
2339 #.  See http://marc.theaimsgroup.com/?l=linux-kernel&m=115270289030630&w=2
2340 #.  Subject:    Fix prctl privilege escalation (CVE-2006-2451)
2341 #.  From:       Marcel Holtmann <marcel () holtmann ! org>
2342 #.  Date:       2006-07-12 11:12:00
2343 #. type: Plain text
2344 #: build/C/man2/prctl.2:162
2345 msgid ""
2346 "Set the state of the flag determining whether core dumps are produced for "
2347 "the calling process upon delivery of a signal whose default behavior is to "
2348 "produce a core dump.  (Normally, this flag is set for a process by default, "
2349 "but it is cleared when a set-user-ID or set-group-ID program is executed and "
2350 "also by various system calls that manipulate process UIDs and GIDs).  In "
2351 "kernels up to and including 2.6.12, I<arg2> must be either 0 (process is not "
2352 "dumpable) or 1 (process is dumpable).  Between kernels 2.6.13 and 2.6.17, "
2353 "the value 2 was also permitted, which caused any binary which normally would "
2354 "not be dumped to be dumped readable by root only; for security reasons, this "
2355 "feature has been removed.  (See also the description of I</proc/sys/fs/"
2356 "suid_dumpable> in B<proc>(5).)  Processes that are not dumpable can not be "
2357 "attached via B<ptrace>(2)  B<PTRACE_ATTACH>."
2358 msgstr ""
2359 "(Linux 2.3.20 以降) デフォルトの振る舞いではコアダンプを引き起こすよう\n"
2360 "なシグナルを受信したときに、呼び出し元のプロセスでコアダンプを\n"
2361 "生成するかどうかを決定するフラグを\n"
2362 "設定する (通常このフラグは、デフォルトではセットされているが、\n"
2363 "set-user-ID あるいは set-group-ID プログラムが実行されたり、 さまざまな\n"
2364 "システムコールによってプロセスの UID や GID が操作されたときに クリアさ\n"
2365 "れる)。 2.6.12 以前のカーネルでは、 I<arg2> は 0 (プロセスはダンプ不可)\n"
2366 "あるいは 1 (プロセスはダンプ可能) の どちらかでなければならない。\n"
2367 "2.6.13 から 2.6.17 までのカーネルでは、値 2 も認められていた。 この値を\n"
2368 "指定すると、通常はダンプされないバイナリが root だけが 読み込み可能な形\n"
2369 "でダンプされた。 セキュリティ上の理由から、この機能は削除された\n"
2370 "(B<proc>(5) の I</proc/sys/fs/suid_dumpable> の説明も参照)。\n"
2371 "ダンプ不可のプロセスを B<ptrace>(2) B<PTRACE_ATTACH> 経由で接続すること\n"
2372 "はできない。"
2373
2374 #. type: TP
2375 #: build/C/man2/prctl.2:162
2376 #, no-wrap
2377 msgid "B<PR_GET_DUMPABLE> (since Linux 2.3.20)"
2378 msgstr "B<PR_GET_DUMPABLE> (Linux 2.3.20 以降)"
2379
2380 #.  Since Linux 2.6.13, the dumpable flag can have the value 2,
2381 #.  but in 2.6.13 PR_GET_DUMPABLE simply returns 1 if the dumpable
2382 #.  flags has a nonzero value.  This was fixed in 2.6.14.
2383 #. type: Plain text
2384 #: build/C/man2/prctl.2:169
2385 msgid ""
2386 "Return (as the function result) the current state of the calling process's "
2387 "dumpable flag."
2388 msgstr ""
2389 "(Linux 2.3.20 以降)  呼び出し元プロセスにおけるダンプ可能フラグの 現在の状態"
2390 "を (関数の返り値として) 返す。"
2391
2392 #. type: TP
2393 #: build/C/man2/prctl.2:169
2394 #, no-wrap
2395 msgid "B<PR_SET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2396 msgstr "B<PR_SET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2397
2398 #.  Respectively 0, 1, 2
2399 #. type: Plain text
2400 #: build/C/man2/prctl.2:179
2401 msgid ""
2402 "Set the endian-ness of the calling process to the value given in I<arg2>, "
2403 "which should be one of the following: B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2404 "or B<PR_ENDIAN_PPC_LITTLE> (PowerPC pseudo little endian)."
2405 msgstr ""
2406 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<arg2> で指定された値"
2407 "に設定する。 指定できる値は B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2408 "B<PR_ENDIAN_PPC_LITTLE> (PowerPC 擬似リトルエンディアン)  のいずれか一つであ"
2409 "る。"
2410
2411 #. type: TP
2412 #: build/C/man2/prctl.2:179
2413 #, no-wrap
2414 msgid "B<PR_GET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2415 msgstr "B<PR_GET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2416
2417 #. type: Plain text
2418 #: build/C/man2/prctl.2:184
2419 msgid ""
2420 "Return the endian-ness of the calling process, in the location pointed to by "
2421 "I<(int\\ *) arg2>."
2422 msgstr ""
2423 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<(int\\ *) arg2> が指"
2424 "す場所に格納して返す。"
2425
2426 #. type: TP
2427 #: build/C/man2/prctl.2:184
2428 #, no-wrap
2429 msgid "B<PR_SET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2430 msgstr "B<PR_SET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2431
2432 #. type: Plain text
2433 #: build/C/man2/prctl.2:191
2434 msgid ""
2435 "Set floating-point emulation control bits to I<arg2>.  Pass "
2436 "B<PR_FPEMU_NOPRINT> to silently emulate fp operations accesses, or "
2437 "B<PR_FPEMU_SIGFPE> to not emulate fp operations and send B<SIGFPE> instead."
2438 msgstr ""
2439 "浮動小数点エミュレーション (floating-point emulation) 制御ビットを I<arg2> で"
2440 "指定された値に設定する。 指定できる値は B<PR_FPEMU_NOPRINT> (浮動小数点命令ア"
2441 "クセスを黙って エミュレートする) か B<PR_FPEMU_SIGFPE> (浮動小数点命令をエ"
2442 "ミュレートせず、 代わりに B<SIGFPE> を送る) である。"
2443
2444 #. type: TP
2445 #: build/C/man2/prctl.2:191
2446 #, no-wrap
2447 msgid "B<PR_GET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2448 msgstr "B<PR_GET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2449
2450 #. type: Plain text
2451 #: build/C/man2/prctl.2:196
2452 msgid ""
2453 "Return floating-point emulation control bits, in the location pointed to by "
2454 "I<(int\\ *) arg2>."
2455 msgstr ""
2456 "浮動小数点エミュレーション制御ビットの値を I<(int\\ *) arg2> が指す場所に格納"
2457 "して返す。"
2458
2459 #. type: TP
2460 #: build/C/man2/prctl.2:196
2461 #, no-wrap
2462 msgid "B<PR_SET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2463 msgstr "B<PR_SET_FPEXC> (Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2464
2465 #. type: Plain text
2466 #: build/C/man2/prctl.2:209
2467 msgid ""
2468 "Set floating-point exception mode to I<arg2>.  Pass B<PR_FP_EXC_SW_ENABLE> "
2469 "to use FPEXC for FP exception enables, B<PR_FP_EXC_DIV> for floating-point "
2470 "divide by zero, B<PR_FP_EXC_OVF> for floating-point overflow, "
2471 "B<PR_FP_EXC_UND> for floating-point underflow, B<PR_FP_EXC_RES> for floating-"
2472 "point inexact result, B<PR_FP_EXC_INV> for floating-point invalid operation, "
2473 "B<PR_FP_EXC_DISABLED> for FP exceptions disabled, B<PR_FP_EXC_NONRECOV> for "
2474 "async nonrecoverable exception mode, B<PR_FP_EXC_ASYNC> for async "
2475 "recoverable exception mode, B<PR_FP_EXC_PRECISE> for precise exception mode."
2476 msgstr ""
2477 "浮動小数点例外モード (floating-point exception mode) を I<arg2> で指定された"
2478 "値に設定する。 指定できるのは以下の値である: B<PR_FP_EXC_SW_ENABLE> (FPEXC で"
2479 "浮動小数点例外を有効にする)、 B<PR_FP_EXC_DIV> (0 除算)、 B<PR_FP_EXC_OVF> "
2480 "(オーバーフロー)、 B<PR_FP_EXC_UND> (アンダーフロー)、 B<PR_FP_EXC_RES> (不正"
2481 "確な結果 (inexact result))、 B<PR_FP_EXC_INV> (不正な命令 (invalid "
2482 "operation))、 B<PR_FP_EXC_DISABLED> (浮動小数点例外を無効にする)、 "
2483 "B<PR_FP_EXC_NONRECOV> (async nonrecoverable exception mode)、 "
2484 "B<PR_FP_EXC_ASYNC> (async recoverable exception mode)、 B<PR_FP_EXC_PRECISE> "
2485 "(precise exception mode)。"
2486
2487 #. type: TP
2488 #: build/C/man2/prctl.2:209
2489 #, no-wrap
2490 msgid "B<PR_GET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2491 msgstr "B<PR_GET_FPEXC>(Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2492
2493 #. type: Plain text
2494 #: build/C/man2/prctl.2:214
2495 msgid ""
2496 "Return floating-point exception mode, in the location pointed to by I<(int\\ "
2497 "*) arg2>."
2498 msgstr ""
2499 "浮動小数点例外モードの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
2500
2501 #. type: TP
2502 #: build/C/man2/prctl.2:214
2503 #, no-wrap
2504 msgid "B<PR_SET_KEEPCAPS> (since Linux 2.2.18)"
2505 msgstr "B<PR_SET_KEEPCAPS> (Linux 2.2.18 以降)"
2506
2507 #. type: Plain text
2508 #: build/C/man2/prctl.2:232
2509 msgid ""
2510 "Set the state of the thread's \"keep capabilities\" flag, which determines "
2511 "whether the threads's permitted capability set is cleared when a change is "
2512 "made to the threads's user IDs such that the threads's real UID, effective "
2513 "UID, and saved set-user-ID all become nonzero when at least one of them "
2514 "previously had the value 0.  By default, the permitted capability set is "
2515 "cleared when such a change is made; setting the \"keep capabilities\" flag "
2516 "prevents it from being cleared.  I<arg2> must be either 0 (permitted "
2517 "capabilities are cleared)  or 1 (permitted capabilities are kept).  (A "
2518 "thread's I<effective> capability set is always cleared when such a "
2519 "credential change is made, regardless of the setting of the \"keep "
2520 "capabilities\" flag.)  The \"keep capabilities\" value will be reset to 0 on "
2521 "subsequent calls to B<execve>(2)."
2522 msgstr ""
2523 "スレッドの「ケーパビリティ保持」フラグを設定する。\n"
2524 "このフラグは、スレッドの実 UID、実効 UID、保存 set-user-ID のうち少なく\n"
2525 "とも一つが 0 であった状態から、これら全てが 0 以外に変更されたとき、\n"
2526 "スレッドの許可ケーパビリティ集合がクリアされるかどうかを決定する。\n"
2527 "デフォルトでは、このような変更が行われた場合、許可ケーパビリティセット\n"
2528 "はクリアされる。「ケーパビリティ保持」フラグを設定すると、\n"
2529 "許可ケーパビリティセットはクリアされなくなる。\n"
2530 "I<arg2> は 0 (許可ケーパビリティをクリアする) か 1 (許可ケーパビリティ\n"
2531 "を保持する) の どちらかでなければならない。\n"
2532 "(このような ID の変更が行われた場合、「ケーパビリティ保持」フラグの設定\n"
2533 "に関わらず、スレッドのI<実効>ケーパビリティセットは常にクリアされる。)\n"
2534 "B<execve>(2) が呼び出されると、「ケーパビリティ保持」フラグは 0\n"
2535 "にリセットされる。"
2536
2537 #. type: TP
2538 #: build/C/man2/prctl.2:232
2539 #, no-wrap
2540 msgid "B<PR_GET_KEEPCAPS> (since Linux 2.2.18)"
2541 msgstr "B<PR_GET_KEEPCAPS> (Linux 2.2.18 以降)"
2542
2543 #. type: Plain text
2544 #: build/C/man2/prctl.2:236
2545 msgid ""
2546 "Return (as the function result) the current state of the calling threads's "
2547 "\"keep capabilities\" flag."
2548 msgstr ""
2549 "呼び出し元スレッドにおける「ケーパビリティ保持」フラグの 現在の状態を (関数の"
2550 "返り値として) 返す。"
2551
2552 #. type: TP
2553 #: build/C/man2/prctl.2:236
2554 #, no-wrap
2555 msgid "B<PR_SET_NAME> (since Linux 2.6.9)"
2556 msgstr "B<PR_SET_NAME> (Linux 2.6.9 以降)"
2557
2558 #.  TASK_COMM_LEN in include/linux/sched.h
2559 #. type: Plain text
2560 #: build/C/man2/prctl.2:244
2561 msgid ""
2562 "Set the process name for the calling thread, using the value in the location "
2563 "pointed to by I<(char\\ *) arg2>.  The name can be up to 16 bytes long, and "
2564 "should be null-terminated if it contains fewer bytes."
2565 msgstr "呼び出し元スレッドのプロセス名を I<(char\\ *) arg2> が指す場所に格納された値を使って設定する。 名前は最大で 16 バイトであり、 それより少ないバイト数の場合は NULL で終端すべきである。"
2566
2567 #. type: TP
2568 #: build/C/man2/prctl.2:244
2569 #, no-wrap
2570 msgid "B<PR_GET_NAME> (since Linux 2.6.11)"
2571 msgstr "B<PR_GET_NAME> (Linux 2.6.11 以降)"
2572
2573 #. type: Plain text
2574 #: build/C/man2/prctl.2:251
2575 msgid ""
2576 "Return the name for the calling thread, in the buffer pointed to by I<(char"
2577 "\\ *) arg2>.  The buffer should allow space for up to 16 bytes; the returned "
2578 "string will be null-terminated if it is shorter than that."
2579 msgstr "呼び出し元スレッドの名前を I<(char\\ *) arg2> が指す場所に格納して返す。 バッファは最大で 16 バイトを格納できるようにすべきである。 返される文字列は、長さが 16 バイトより短い場合は NULL 終端される。"
2580
2581 #. type: TP
2582 #: build/C/man2/prctl.2:251
2583 #, no-wrap
2584 msgid "B<PR_SET_NO_NEW_PRIVS> (since Linux 3.5)"
2585 msgstr "B<PR_SET_NO_NEW_PRIVS> (Linux 3.5 以降)"
2586
2587 #. type: Plain text
2588 #: build/C/man2/prctl.2:274
2589 msgid ""
2590 "Set the calling process's I<no_new_privs> bit to the value in I<arg2>.  With "
2591 "I<no_new_privs> set to 1, B<execve>(2)  promises not to grant privileges to "
2592 "do anything that could not have been done without the B<execve>(2)  call "
2593 "(for example, rendering the set-user-ID and set-group-ID permission bits, "
2594 "and file capabilities non-functional).  Once set, this bit cannot be unset.  "
2595 "The setting of this bit is inherited by children created by B<fork>(2)  and "
2596 "B<clone>(2), and preserved across B<execve>(2)."
2597 msgstr ""
2598
2599 #. type: Plain text
2600 #: build/C/man2/prctl.2:277
2601 msgid ""
2602 "For more information, see the kernel source file I<Documentation/prctl/"
2603 "no_new_privs.txt>."
2604 msgstr ""
2605
2606 #. type: TP
2607 #: build/C/man2/prctl.2:277
2608 #, no-wrap
2609 msgid "B<PR_GET_NO_NEW_PRIVS> (since Linux 3.5)"
2610 msgstr "B<PR_GET_NO_NEW_PRIVS> (Linux 3.5 以降)"
2611
2612 #. type: Plain text
2613 #: build/C/man2/prctl.2:288
2614 msgid ""
2615 "Return the value of the I<no_new_privs> bit for the current process.  A "
2616 "value of 0 indicates the regular B<execve>(2)  behavior.  A value of 1 "
2617 "indicates B<execve>(2)  will operate in the privilege-restricting mode "
2618 "described above."
2619 msgstr ""
2620
2621 #. type: TP
2622 #: build/C/man2/prctl.2:288
2623 #, no-wrap
2624 msgid "B<PR_SET_PDEATHSIG> (since Linux 2.1.57)"
2625 msgstr "B<PR_SET_PDEATHSIG> (Linux 2.1.57 以降)"
2626
2627 #. type: Plain text
2628 #: build/C/man2/prctl.2:299
2629 msgid ""
2630 "Set the parent process death signal of the calling process to I<arg2> "
2631 "(either a signal value in the range 1..maxsig, or 0 to clear).  This is the "
2632 "signal that the calling process will get when its parent dies.  This value "
2633 "is cleared for the child of a B<fork>(2)  and (since Linux 2.4.36 / 2.6.23)  "
2634 "when executing a set-user-ID or set-group-ID binary."
2635 msgstr ""
2636 "親プロセス死亡シグナル (parent process death signal) を I<arg2> に設定\n"
2637 "する (設定できるシグナル値の範囲は 1..maxsig であり、0 は通知の解除であ\n"
2638 "る)。 呼び出し元プロセスの親プロセスが死んだ際に、ここで設定した値が シ\n"
2639 "グナルとして通知される。この値は B<fork>(2) の子プロセスでは解除される。\n"
2640 "(Linux 2.4.36 以降および 2.6.23 以降では) set-user-ID もしくは\n"
2641 "set-group-ID されたバイナリを実行した場合にも、このフラグは解除される。"
2642
2643 #. type: TP
2644 #: build/C/man2/prctl.2:299
2645 #, no-wrap
2646 msgid "B<PR_GET_PDEATHSIG> (since Linux 2.3.15)"
2647 msgstr "B<PR_GET_PDEATHSIG> (Linux 2.3.15 以降)"
2648
2649 #. type: Plain text
2650 #: build/C/man2/prctl.2:304
2651 msgid ""
2652 "Return the current value of the parent process death signal, in the location "
2653 "pointed to by I<(int\\ *) arg2>."
2654 msgstr ""
2655 "親プロセス死亡シグナルの現在の値を I<(int\\ *) arg2> が指す場所に格納して返"
2656 "す。"
2657
2658 #. type: TP
2659 #: build/C/man2/prctl.2:304
2660 #, no-wrap
2661 msgid "B<PR_SET_PTRACER> (since Linux 3.4)"
2662 msgstr "B<PR_SET_PTRACER> (Linux 3.4 以降)"
2663
2664 #.  commit 2d514487faf188938a4ee4fb3464eeecfbdcf8eb
2665 #.  commit bf06189e4d14641c0148bea16e9dd24943862215
2666 #. type: Plain text
2667 #: build/C/man2/prctl.2:329
2668 msgid ""
2669 "This is only meaningful when the Yama LSM is enabled and in mode 1 "
2670 "(\"restricted ptrace\", visible via I</proc/sys/kernel/yama/ptrace_scope>).  "
2671 "When a \"ptracer process ID\" is passed in I<arg2>, the caller is declaring "
2672 "that the ptracer process can B<ptrace>(2)  the calling process as if it were "
2673 "a direct process ancestor.  Each B<PR_SET_PTRACER> operation replaces the "
2674 "previous \"ptracer process ID\".  Employing B<PR_SET_PTRACER> with I<arg2> "
2675 "set to 0 clears the caller's \"ptracer process ID\".  If I<arg2> is "
2676 "B<PR_SET_PTRACER_ANY,> the ptrace restrictions introduced by Yama are "
2677 "effectively disabled for the calling process."
2678 msgstr ""
2679
2680 #. type: Plain text
2681 #: build/C/man2/prctl.2:332
2682 msgid ""
2683 "For further information, see the kernel source file I<Documentation/security/"
2684 "Yama.txt>."
2685 msgstr ""
2686
2687 #. type: TP
2688 #: build/C/man2/prctl.2:332
2689 #, no-wrap
2690 msgid "B<PR_SET_SECCOMP> (since Linux 2.6.23)"
2691 msgstr "B<PR_SET_SECCOMP> (Linux 2.6.23 以降)"
2692
2693 #.  See http://thread.gmane.org/gmane.linux.kernel/542632
2694 #.  [PATCH 0 of 2] seccomp updates
2695 #.  andrea@cpushare.com
2696 #. type: Plain text
2697 #: build/C/man2/prctl.2:343
2698 msgid ""
2699 "Set the secure computing (seccomp) mode for the calling thread, to limit the "
2700 "available system calls.  The seccomp mode is selected via I<arg2>.  (The "
2701 "seccomp constants are defined in I<E<lt>linux/seccomp.hE<gt>>.)"
2702 msgstr ""
2703
2704 #. type: Plain text
2705 #: build/C/man2/prctl.2:364
2706 #, fuzzy
2707 #| msgid ""
2708 #| "Set the secure computing mode for the calling thread.  In the current "
2709 #| "implementation, I<arg2> must be 1.  After the secure computing mode has "
2710 #| "been set to 1, the only system calls that the thread is permitted to make "
2711 #| "are B<read>(2), B<write>(2), B<_exit>(2), and B<sigreturn>(2).  Other "
2712 #| "system calls result in the delivery of a B<SIGKILL> signal.  Secure "
2713 #| "computing mode is useful for number-crunching applications that may need "
2714 #| "to execute untrusted byte code, perhaps obtained by reading from a pipe "
2715 #| "or socket.  This operation is only available if the kernel is configured "
2716 #| "with CONFIG_SECCOMP enabled."
2717 msgid ""
2718 "With I<arg2> set to B<SECCOMP_MODE_STRICT> the only system calls that the "
2719 "thread is permitted to make are B<read>(2), B<write>(2), B<_exit>(2), and "
2720 "B<sigreturn>(2).  Other system calls result in the delivery of a B<SIGKILL> "
2721 "signal.  Strict secure computing mode is useful for number-crunching "
2722 "applications that may need to execute untrusted byte code, perhaps obtained "
2723 "by reading from a pipe or socket.  This operation is only available if the "
2724 "kernel is configured with B<CONFIG_SECCOMP> enabled."
2725 msgstr ""
2726 "呼び出したスレッドの secure computing モードを設定する。 現在の実装では、 "
2727 "I<arg2> は 1 にしなければならない。 secure computing モードを 1 に設定する"
2728 "と、 そのスレッドが呼び出しを許可されるシステムコールは B<read>(2), B<write>"
2729 "(2), B<_exit>(2), B<sigreturn>(2)  だけになる。 それ以外のシステムコールを呼"
2730 "び出すと、シグナル B<SIGKILL> が配送される。 パイプやソケットから読み込んだ、"
2731 "信頼できないバイトコードを実行する 必要がある大量の演算を行うアプリケーション"
2732 "において、 secure computing モードは役立つ。 この操作は利用できるのは、カーネ"
2733 "ルが CONFIG_SECCOMP を有効にして 作成されている場合だけである。"
2734
2735 #. type: Plain text
2736 #: build/C/man2/prctl.2:379
2737 msgid ""
2738 "With I<arg2> set to B<SECCOMP_MODE_FILTER> (since Linux 3.5)  the system "
2739 "calls allowed are defined by a pointer to a Berkeley Packet Filter passed in "
2740 "I<arg3>.  This argument is a pointer to I<struct sock_fprog>; it can be "
2741 "designed to filter arbitrary system calls and system call arguments.  This "
2742 "mode is only available if the kernel is configured with "
2743 "B<CONFIG_SECCOMP_FILTER> enabled."
2744 msgstr ""
2745
2746 #. type: Plain text
2747 #: build/C/man2/prctl.2:394
2748 msgid ""
2749 "If B<SECCOMP_MODE_FILTER> filters permit B<fork>(2), then the seccomp mode "
2750 "is inherited by children created by B<fork>(2); if B<execve>(2)  is "
2751 "permitted, then the seccomp mode is preserved across B<execve>(2).  If the "
2752 "filters permit B<prctl>()  calls, then additional filters can be added; they "
2753 "are run in order until the first non-allow result is seen."
2754 msgstr ""
2755
2756 #. type: Plain text
2757 #: build/C/man2/prctl.2:397
2758 msgid ""
2759 "For further information, see the kernel source file I<Documentation/prctl/"
2760 "seccomp_filter.txt>."
2761 msgstr ""
2762
2763 #. type: TP
2764 #: build/C/man2/prctl.2:397
2765 #, no-wrap
2766 msgid "B<PR_GET_SECCOMP> (since Linux 2.6.23)"
2767 msgstr "B<PR_GET_SECCOMP> (Linux 2.6.23 以降)"
2768
2769 #. type: Plain text
2770 #: build/C/man2/prctl.2:412
2771 #, fuzzy
2772 #| msgid ""
2773 #| "Return the secure computing mode of the calling thread.  Not very useful "
2774 #| "for the current implementation (mode equals 1), but may be useful for "
2775 #| "other possible future modes: if the caller is not in secure computing "
2776 #| "mode, this operation returns 0; if the caller is in secure computing "
2777 #| "mode, then the B<prctl>()  call will cause a B<SIGKILL> signal to be sent "
2778 #| "to the process.  This operation is only available if the kernel is "
2779 #| "configured with CONFIG_SECCOMP enabled."
2780 msgid ""
2781 "Return the secure computing mode of the calling thread.  If the caller is "
2782 "not in secure computing mode, this operation returns 0; if the caller is in "
2783 "strict secure computing mode, then the B<prctl>()  call will cause a "
2784 "B<SIGKILL> signal to be sent to the process.  If the caller is in filter "
2785 "mode, and this system call is allowed by the seccomp filters, it returns 2.  "
2786 "This operation is only available if the kernel is configured with "
2787 "B<CONFIG_SECCOMP> enabled."
2788 msgstr ""
2789 "呼び出したスレッドの secure computing モードを返す。 現在の実装 (モードは 1 "
2790 "固定) はあまり役に立たないが、 将来他のモードが実装されると役立つようになるか"
2791 "もしれない。 呼び出したスレッドが secure computing モードでなかった場合、 こ"
2792 "の操作は 0 を返す。 呼び出したスレッドが secure computing モードの場合、 "
2793 "B<prctl>()  を呼び出すとシグナル B<SIGKILL> がそのプロセスに送信される。 この"
2794 "操作が利用できるのは、カーネルが CONFIG_SECCOMP を有効にして 作成されている場"
2795 "合だけである。"
2796
2797 #. type: TP
2798 #: build/C/man2/prctl.2:412
2799 #, no-wrap
2800 msgid "B<PR_SET_SECUREBITS> (since Linux 2.6.26)"
2801 msgstr "B<PR_SET_SECUREBITS> (Linux 2.6.26 以降)"
2802
2803 #. type: Plain text
2804 #: build/C/man2/prctl.2:418
2805 msgid ""
2806 "Set the \"securebits\" flags of the calling thread to the value supplied in "
2807 "I<arg2>.  See B<capabilities>(7)."
2808 msgstr ""
2809 "呼び出したスレッドの \"securebits\" フラグを I<arg2> で渡された値に設定す"
2810 "る。 B<capabilities>(7)  参照。"
2811
2812 #. type: TP
2813 #: build/C/man2/prctl.2:418
2814 #, no-wrap
2815 msgid "B<PR_GET_SECUREBITS> (since Linux 2.6.26)"
2816 msgstr "B<PR_GET_SECUREBITS> (Linux 2.6.26 以降)"
2817
2818 #. type: Plain text
2819 #: build/C/man2/prctl.2:424
2820 msgid ""
2821 "Return (as the function result)  the \"securebits\" flags of the calling "
2822 "thread.  See B<capabilities>(7)."
2823 msgstr ""
2824 "呼び出したスレッドの \"securebits\" フラグを (関数の返り値として) 返す。 "
2825 "B<capabilities>(7)  参照。"
2826
2827 #. type: TP
2828 #: build/C/man2/prctl.2:424
2829 #, no-wrap
2830 msgid "B<PR_GET_TID_ADDRESS> (since Linux 3.5)"
2831 msgstr "B<PR_GET_TID_ADDRESS> (Linux 3.5 以降)"
2832
2833 #.  commit 300f786b2683f8bb1ec0afb6e1851183a479c86d
2834 #. type: Plain text
2835 #: build/C/man2/prctl.2:439
2836 msgid ""
2837 "Retrieve the I<clear_child_tid> address set by B<set_tid_address>(2)  and "
2838 "the B<clone>(2)  B<CLONE_CHILD_CLEARTID> flag, in the location pointed to by "
2839 "I<(int\\ **)\\ arg2>.  This feature is available only if the kernel is built "
2840 "with the B<CONFIG_CHECKPOINT_RESTORE> option enabled."
2841 msgstr ""
2842
2843 #. type: TP
2844 #: build/C/man2/prctl.2:439
2845 #, no-wrap
2846 msgid "B<PR_SET_TIMERSLACK> (since Linux 2.6.28)"
2847 msgstr "B<PR_SET_TIMERSLACK> (Linux 2.6.28 以降)"
2848
2849 #.  See https://lwn.net/Articles/369549/
2850 #.  commit 6976675d94042fbd446231d1bd8b7de71a980ada
2851 #.  It seems that it's not possible to set the timer slack to zero;
2852 #.  The minimum value is 1? Seems a little strange.
2853 #. type: Plain text
2854 #: build/C/man2/prctl.2:458
2855 msgid ""
2856 "Set the current timer slack for the calling thread to the nanosecond value "
2857 "supplied in I<arg2>.  If I<arg2> is less than or equal to zero, reset the "
2858 "current timer slack to the thread's default timer slack value.  The timer "
2859 "slack is used by the kernel to group timer expirations for the calling "
2860 "thread that are close to one another; as a consequence, timer expirations "
2861 "for the thread may be up to the specified number of nanoseconds late (but "
2862 "will never expire early).  Grouping timer expirations can help reduce system "
2863 "power consumption by minimizing CPU wake-ups."
2864 msgstr ""
2865
2866 #.  List obtained by grepping for futex usage in glibc source
2867 #. type: Plain text
2868 #: build/C/man2/prctl.2:478
2869 msgid ""
2870 "The timer expirations affected by timer slack are those set by B<select>(2), "
2871 "B<pselect>(2), B<poll>(2), B<ppoll>(2), B<epoll_wait>(2), B<epoll_pwait>(2), "
2872 "B<clock_nanosleep>(2), B<nanosleep>(2), and B<futex>(2)  (and thus the "
2873 "library functions implemented via futexes, including "
2874 "B<pthread_cond_timedwait>(3), B<pthread_mutex_timedlock>(3), "
2875 "B<pthread_rwlock_timedrdlock>(3), B<pthread_rwlock_timedwrlock>(3), and "
2876 "B<sem_timedwait>(3))."
2877 msgstr ""
2878
2879 #. type: Plain text
2880 #: build/C/man2/prctl.2:482
2881 msgid ""
2882 "Timer slack is not applied to threads that are scheduled under a realtime "
2883 "scheduling policy (see B<sched_setscheduler>(2))."
2884 msgstr ""
2885
2886 #. type: Plain text
2887 #: build/C/man2/prctl.2:499
2888 msgid ""
2889 "Each thread has two associated timer slack values: a \"default\" value, and "
2890 "a \"current\" value.  The current value is the one that governs grouping of "
2891 "timer expirations.  When a new thread is created, the two timer slack values "
2892 "are made the same as the current value of the creating thread.  Thereafter, "
2893 "a thread can adjust its current timer slack value via B<PR_SET_TIMERSLACK> "
2894 "(the default value can't be changed).  The timer slack values of I<init> "
2895 "(PID 1), the ancestor of all processes, are 50,000 nanoseconds (50 "
2896 "microseconds).  The timer slack values are preserved across B<execve>(2)."
2897 msgstr ""
2898
2899 #. type: TP
2900 #: build/C/man2/prctl.2:499
2901 #, no-wrap
2902 msgid "B<PR_GET_TIMERSLACK> (since Linux 2.6.28)"
2903 msgstr "B<PR_GET_TIMERSLACK> (Linux 2.6.28 以降)"
2904
2905 #. type: Plain text
2906 #: build/C/man2/prctl.2:502
2907 msgid "Return the current timer slack value of the calling thread."
2908 msgstr ""
2909
2910 #. type: TP
2911 #: build/C/man2/prctl.2:502
2912 #, no-wrap
2913 msgid "B<PR_SET_TIMING> (since Linux 2.6.0-test4)"
2914 msgstr "B<PR_SET_TIMING> (Linux 2.6.0-test4 以降)"
2915
2916 #.  0
2917 #.  1
2918 #.  PR_TIMING_TIMESTAMP doesn't do anything in 2.6.26-rc8,
2919 #.  and looking at the patch history, it appears
2920 #.  that it never did anything.
2921 #. type: Plain text
2922 #: build/C/man2/prctl.2:519
2923 msgid ""
2924 "Set whether to use (normal, traditional) statistical process timing or "
2925 "accurate timestamp-based process timing, by passing B<PR_TIMING_STATISTICAL> "
2926 "or B<PR_TIMING_TIMESTAMP> to I<arg2>.  B<PR_TIMING_TIMESTAMP> is not "
2927 "currently implemented (attempting to set this mode will yield the error "
2928 "B<EINVAL>)."
2929 msgstr ""
2930 "(通常の、伝統的に使われてきた) 統計的なプロセスタイミングを使用するか、\n"
2931 "正確なタイムスタンプに基づくプロセスタイミングを使用するかを設定する。\n"
2932 "I<arg2> に指定できる値は B<PR_TIMING_STATISTICAL> か\n"
2933 "B<PR_TIMING_TIMESTAMP> である。 B<PR_TIMING_TIMESTAMP> は現在のところ実\n"
2934 "装されていない (このモードに設定しようとするとエラー B<EINVAL> が起こる\n"
2935 "ことだろう)。"
2936
2937 #. type: TP
2938 #: build/C/man2/prctl.2:519
2939 #, no-wrap
2940 msgid "B<PR_GET_TIMING> (since Linux 2.6.0-test4)"
2941 msgstr "B<PR_GET_TIMING> (Linux 2.6.0-test4 以降)"
2942
2943 #. type: Plain text
2944 #: build/C/man2/prctl.2:523
2945 msgid ""
2946 "Return (as the function result) which process timing method is currently in "
2947 "use."
2948 msgstr "現在使用中のプロセスタイミングを決める方法を返す。"
2949
2950 #. type: TP
2951 #: build/C/man2/prctl.2:523
2952 #, no-wrap
2953 msgid "B<PR_TASK_PERF_EVENTS_DISABLE> (since Linux 2.6.31)"
2954 msgstr "B<PR_TASK_PERF_EVENTS_DISABLE> (Linux 2.6.31 以降)"
2955
2956 #. type: Plain text
2957 #: build/C/man2/prctl.2:532
2958 msgid ""
2959 "Disable all performance counters attached to the calling process, regardless "
2960 "of whether the counters were created by this process or another process.  "
2961 "Performance counters created by the calling process for other processes are "
2962 "unaffected.  For more information on performance counters, see the Linux "
2963 "kernel source file I<tools/perf/design.txt>."
2964 msgstr ""
2965
2966 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
2967 #. type: Plain text
2968 #: build/C/man2/prctl.2:538
2969 msgid ""
2970 "Originally called B<PR_TASK_PERF_COUNTERS_DISABLE>; renamed (with same "
2971 "numerical value)  in Linux 2.6.32."
2972 msgstr ""
2973 "以前は B<PR_TASK_PERF_COUNTERS_DISABLE> と呼ばれていた。\n"
2974 "Linux 2.6.32 で名前が変更された (数値は同じままである)。"
2975
2976 #. type: TP
2977 #: build/C/man2/prctl.2:538
2978 #, no-wrap
2979 msgid "B<PR_TASK_PERF_EVENTS_ENABLE> (since Linux 2.6.31)"
2980 msgstr "B<PR_TASK_PERF_EVENTS_ENABLE> (Linux 2.6.31 以降)"
2981
2982 #. type: Plain text
2983 #: build/C/man2/prctl.2:543
2984 msgid ""
2985 "The converse of B<PR_TASK_PERF_EVENTS_DISABLE>; enable performance counters "
2986 "attached to the calling process."
2987 msgstr ""
2988
2989 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
2990 #.  commit cdd6c482c9ff9c55475ee7392ec8f672eddb7be6
2991 #. type: Plain text
2992 #: build/C/man2/prctl.2:550
2993 msgid ""
2994 "Originally called B<PR_TASK_PERF_COUNTERS_ENABLE>; renamed in Linux 2.6.32."
2995 msgstr ""
2996 "以前は B<PR_TASK_PERF_COUNTERS_ENABLE> と呼ばれていた。\n"
2997 "Linux 2.6.32 で名前が変更された。"
2998
2999 #. type: TP
3000 #: build/C/man2/prctl.2:550
3001 #, no-wrap
3002 msgid "B<PR_SET_TSC> (since Linux 2.6.26, x86 only)"
3003 msgstr "B<PR_SET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3004
3005 #. type: Plain text
3006 #: build/C/man2/prctl.2:563
3007 msgid ""
3008 "Set the state of the flag determining whether the timestamp counter can be "
3009 "read by the process.  Pass B<PR_TSC_ENABLE> to I<arg2> to allow it to be "
3010 "read, or B<PR_TSC_SIGSEGV> to generate a B<SIGSEGV> when the process tries "
3011 "to read the timestamp counter."
3012 msgstr ""
3013 "そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する フラグの状態を"
3014 "設定する。 読み出しを許可する場合は I<arg2> に B<PR_TSC_ENABLE> を、そのプロ"
3015 "セスがタイムスタンプ・カウンタを読み出そうとした際に B<SIGSEGV> を発生させる"
3016 "場合には B<PR_TSC_SIGSEGV> を渡す。"
3017
3018 #. type: TP
3019 #: build/C/man2/prctl.2:563
3020 #, no-wrap
3021 msgid "B<PR_GET_TSC> (since Linux 2.6.26, x86 only)"
3022 msgstr "B<PR_GET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3023
3024 #. type: Plain text
3025 #: build/C/man2/prctl.2:569
3026 msgid ""
3027 "Return the state of the flag determining whether the timestamp counter can "
3028 "be read, in the location pointed to by I<(int\\ *) arg2>."
3029 msgstr ""
3030 "そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する フラグの状態"
3031 "を I<(int\\ *) arg2> が指す場所に格納して返す。"
3032
3033 #. type: TP
3034 #: build/C/man2/prctl.2:569
3035 #, no-wrap
3036 msgid "B<PR_SET_UNALIGN>"
3037 msgstr "B<PR_SET_UNALIGN>"
3038
3039 #. type: Plain text
3040 #: build/C/man2/prctl.2:579
3041 msgid ""
3042 "(Only on: ia64, since Linux 2.3.48; parisc, since Linux 2.6.15; PowerPC, "
3043 "since Linux 2.6.18; Alpha, since Linux 2.6.22)  Set unaligned access control "
3044 "bits to I<arg2>.  Pass B<PR_UNALIGN_NOPRINT> to silently fix up unaligned "
3045 "user accesses, or B<PR_UNALIGN_SIGBUS> to generate B<SIGBUS> on unaligned "
3046 "user access."
3047 msgstr ""
3048 "(ia64 では Linux 2.3.48 以降; parisc では Linux 2.6.15 以降; PowerPC では "
3049 "Linux 2.6.18 以降; Alpha では Linux 2.6.22 以降; これらのアーキテクチャの"
3050 "み)  unaligned アクセス制御ビットを I<arg2> で指定された値に設定する。 指定で"
3051 "きる値は B<PR_UNALIGN_NOPRINT> (unaligned なユーザアクセスを黙って 修正する) "
3052 "か B<PR_UNALIGN_SIGBUS> (unaligned なユーザアクセスがあった場合 B<SIGBUS> を"
3053 "生成する) である。"
3054
3055 #. type: TP
3056 #: build/C/man2/prctl.2:579
3057 #, no-wrap
3058 msgid "B<PR_GET_UNALIGN>"
3059 msgstr "B<PR_GET_UNALIGN>"
3060
3061 #. type: Plain text
3062 #: build/C/man2/prctl.2:586
3063 msgid ""
3064 "(see B<PR_SET_UNALIGN> for information on versions and architectures)  "
3065 "Return unaligned access control bits, in the location pointed to by I<(int\\ "
3066 "*) arg2>."
3067 msgstr ""
3068 "(バージョンとアーキテクチャの情報は B<PR_SET_UNALIGN> 参照)  unaligned アクセ"
3069 "ス制御ビットの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
3070
3071 #. type: TP
3072 #: build/C/man2/prctl.2:586
3073 #, no-wrap
3074 msgid "B<PR_MCE_KILL> (since Linux 2.6.32)"
3075 msgstr "B<PR_MCE_KILL> (Linux 2.6.32 以降)"
3076
3077 #. type: Plain text
3078 #: build/C/man2/prctl.2:626
3079 msgid ""
3080 "Set the machine check memory corruption kill policy for the current thread.  "
3081 "If I<arg2> is B<PR_MCE_KILL_CLEAR>, clear the thread memory corruption kill "
3082 "policy and use the system-wide default.  (The system-wide default is defined "
3083 "by I</proc/sys/vm/memory_failure_early_kill>; see B<proc>(5).)  If I<arg2> "
3084 "is B<PR_MCE_KILL_SET>, use a thread-specific memory corruption kill policy.  "
3085 "In this case, I<arg3> defines whether the policy is I<early kill> "
3086 "(B<PR_MCE_KILL_EARLY>), I<late kill> (B<PR_MCE_KILL_LATE>), or the system-"
3087 "wide default (B<PR_MCE_KILL_DEFAULT>).  Early kill means that the thread "
3088 "receives a B<SIGBUS> signal as soon as hardware memory corruption is "
3089 "detected inside its address space.  In late kill mode, the process is only "
3090 "killed when it accesses a corrupted page.  See B<sigaction>(2)  for more "
3091 "information on the B<SIGBUS> signal.  The policy is inherited by children.  "
3092 "The remaining unused B<prctl>()  arguments must be zero for future "
3093 "compatibility."
3094 msgstr ""
3095
3096 #. type: TP
3097 #: build/C/man2/prctl.2:626
3098 #, no-wrap
3099 msgid "B<PR_MCE_KILL_GET> (since Linux 2.6.32)"
3100 msgstr "B<PR_MCE_KILL_GET> (Linux 2.6.32 以降)"
3101
3102 #. type: Plain text
3103 #: build/C/man2/prctl.2:632
3104 msgid ""
3105 "Return the current per-process machine check kill policy.  All unused "
3106 "B<prctl>()  arguments must be zero."
3107 msgstr ""
3108
3109 #. type: TP
3110 #: build/C/man2/prctl.2:632
3111 #, no-wrap
3112 msgid "B<PR_SET_MM> (since Linux 3.3)"
3113 msgstr "B<PR_SET_MM> (Linux 3.3 以降)"
3114
3115 #. type: Plain text
3116 #: build/C/man2/prctl.2:652
3117 msgid ""
3118 "Modify certain kernel memory map descriptor fields of the calling process.  "
3119 "Usually these fields are set by the kernel and dynamic loader (see B<ld.so>"
3120 "(8)  for more information) and a regular application should not use this "
3121 "feature.  However, there are cases, such as self-modifying programs, where a "
3122 "program might find it useful to change its own memory map.  This feature is "
3123 "available only if the kernel is built with the B<CONFIG_CHECKPOINT_RESTORE> "
3124 "option enabled.  The calling process must have the B<CAP_SYS_RESOURCE> "
3125 "capability.  The value in I<arg2> is one of the options below, while I<arg3> "
3126 "provides a new value for the option."
3127 msgstr ""
3128
3129 #. type: TP
3130 #: build/C/man2/prctl.2:653
3131 #, no-wrap
3132 msgid "B<PR_SET_MM_START_CODE>"
3133 msgstr "B<PR_SET_MM_START_CODE>"
3134
3135 #. type: Plain text
3136 #: build/C/man2/prctl.2:662
3137 msgid ""
3138 "Set the address above which the program text can run.  The corresponding "
3139 "memory area must be readable and executable, but not writable or sharable "
3140 "(see B<mprotect>(2)  and B<mmap>(2)  for more information)."
3141 msgstr ""
3142
3143 #. type: TP
3144 #: build/C/man2/prctl.2:662
3145 #, no-wrap
3146 msgid "B<PR_SET_MM_END_CODE>"
3147 msgstr "B<PR_SET_MM_END_CODE>"
3148
3149 #. type: Plain text
3150 #: build/C/man2/prctl.2:667
3151 msgid ""
3152 "Set the address below which the program text can run.  The corresponding "
3153 "memory area must be readable and executable, but not writable or sharable."
3154 msgstr ""
3155
3156 #. type: TP
3157 #: build/C/man2/prctl.2:667
3158 #, no-wrap
3159 msgid "B<PR_SET_MM_START_DATA>"
3160 msgstr "B<PR_SET_MM_START_DATA>"
3161
3162 #. type: Plain text
3163 #: build/C/man2/prctl.2:673
3164 msgid ""
3165 "Set the address above which initialized and uninitialized (bss) data are "
3166 "placed.  The corresponding memory area must be readable and writable, but "
3167 "not executable or sharable."
3168 msgstr ""
3169
3170 #. type: TP
3171 #: build/C/man2/prctl.2:673
3172 #, no-wrap
3173 msgid "B<PR_SET_MM_END_DATA>"
3174 msgstr "B<PR_SET_MM_END_DATA>"
3175
3176 #. type: Plain text
3177 #: build/C/man2/prctl.2:679
3178 msgid ""
3179 "Set the address below which initialized and uninitialized (bss) data are "
3180 "placed.  The corresponding memory area must be readable and writable, but "
3181 "not executable or sharable."
3182 msgstr ""
3183
3184 #. type: TP
3185 #: build/C/man2/prctl.2:679
3186 #, no-wrap
3187 msgid "B<PR_SET_MM_START_STACK>"
3188 msgstr "B<PR_SET_MM_START_STACK>"
3189
3190 #. type: Plain text
3191 #: build/C/man2/prctl.2:683
3192 msgid ""
3193 "Set the start address of the stack.  The corresponding memory area must be "
3194 "readable and writable."
3195 msgstr ""
3196
3197 #. type: TP
3198 #: build/C/man2/prctl.2:683
3199 #, no-wrap
3200 msgid "B<PR_SET_MM_START_BRK>"
3201 msgstr "B<PR_SET_MM_START_BRK>"
3202
3203 #. type: Plain text
3204 #: build/C/man2/prctl.2:695
3205 msgid ""
3206 "Set the address above which the program heap can be expanded with B<brk>(2)  "
3207 "call.  The address must be greater than the ending address of the current "
3208 "program data segment.  In addition, the combined size of the resulting heap "
3209 "and the size of the data segment can't exceed the B<RLIMIT_DATA> resource "
3210 "limit (see B<setrlimit>(2))."
3211 msgstr ""
3212
3213 #. type: TP
3214 #: build/C/man2/prctl.2:695
3215 #, no-wrap
3216 msgid "B<PR_SET_MM_BRK>"
3217 msgstr "B<PR_SET_MM_BRK>"
3218
3219 #.  FIXME The following (until ========) is not yet in mainline kernel,
3220 #.  so commented out for the moment.
3221 #.  .TP
3222 #.  .BR PR_SET_MM_ARG_START
3223 #.  Set the address above which the program command line is placed.
3224 #.  .TP
3225 #.  .BR PR_SET_MM_ARG_END
3226 #.  Set the address below which the program command line is placed.
3227 #.  .TP
3228 #.  .BR PR_SET_MM_ENV_START
3229 #.  Set the address above which the program environment is placed.
3230 #.  .TP
3231 #.  .BR PR_SET_MM_ENV_END
3232 #.  Set the address below which the program environment is placed.
3233 #.  .IP
3234 #.  The address passed with
3235 #.  .BR PR_SET_MM_ARG_START ,
3236 #.  .BR PR_SET_MM_ARG_END ,
3237 #.  .BR PR_SET_MM_ENV_START ,
3238 #.  and
3239 #.  .BR PR_SET_MM_ENV_END
3240 #.  should belong to a process stack area.
3241 #.  Thus, the corresponding memory area must be readable, writable, and
3242 #.  (depending on the kernel configuration) have the
3243 #.  .BR MAP_GROWSDOWN
3244 #.  attribute set (see
3245 #.  .BR mmap (2)).
3246 #.  .TP
3247 #.  .BR PR_SET_MM_AUXV
3248 #.  Set a new auxiliary vector.
3249 #.  The
3250 #.  .I arg3
3251 #.  argument should provide the address of the vector.
3252 #.  The
3253 #.  .I arg4
3254 #.  is the size of the vector.
3255 #.  .TP
3256 #.  .BR PR_SET_MM_EXE_FILE
3257 #.  Supersede the
3258 #.  .IR /proc/pid/exe
3259 #.  symbolic link with a new one pointing to a new executable file
3260 #.  identified by the file descriptor provided in
3261 #.  .I arg3
3262 #.  argument.
3263 #.  The file descriptor should be obtained with a regular
3264 #.  .BR open (2)
3265 #.  call.
3266 #.  .IP
3267 #.  To change the symbolic link, one needs to unmap all existing
3268 #.  executable memory areas, including those created by the kernel itself
3269 #.  (for example the kernel usually creates at least one executable
3270 #.  memory area for the ELF
3271 #.  .IR .text
3272 #.  section).
3273 #.  .IP
3274 #.  The second limitation is that such transitions can be done only once
3275 #.  in a process life time.
3276 #.  Any further attempts will be rejected.
3277 #.  This should help system administrators to monitor unusual
3278 #.  symbolic-link transitions over all process running in a system.
3279 #.  ========== END FIXME
3280 #. type: Plain text
3281 #: build/C/man2/prctl.2:764
3282 msgid ""
3283 "Set the current B<brk>(2)  value.  The requirements for the address are the "
3284 "same as for the B<PR_SET_MM_START_BRK> option."
3285 msgstr ""
3286
3287 #. type: Plain text
3288 #: build/C/man2/prctl.2:784
3289 msgid ""
3290 "On success, B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, B<PR_GET_NO_NEW_PRIVS>, "
3291 "B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, B<PR_GET_SECUREBITS>, "
3292 "B<PR_MCE_KILL_GET>, and (if it returns)  B<PR_GET_SECCOMP> return the "
3293 "nonnegative values described above.  All other I<option> values return 0 on "
3294 "success.  On error, -1 is returned, and I<errno> is set appropriately."
3295 msgstr ""
3296 "成功すると、 B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, B<PR_GET_NO_NEW_PRIVS>,\n"
3297 "B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, B<PR_GET_SECUREBITS>,\n"
3298 "B<PR_MCE_KILL_GET>, B<PR_GET_SECCOMP> は上述の負でない値を返す (なお、\n"
3299 "B<PR_GET_SECCOMP> は返らない場合もある)。 I<option> が他の値の場合は\n"
3300 "成功時に 0 を返す。\n"
3301 "エラーの場合、-1 を返し、 I<errno> に適切な値を設定する。"
3302
3303 #. type: Plain text
3304 #: build/C/man2/prctl.2:789
3305 msgid "I<arg2> is an invalid address."
3306 msgstr "I<arg2> が不正なアドレスである。"
3307
3308 #. type: Plain text
3309 #: build/C/man2/prctl.2:794
3310 msgid "The value of I<option> is not recognized."
3311 msgstr "I<option> の値が理解できない。"
3312
3313 #. type: Plain text
3314 #: build/C/man2/prctl.2:806
3315 msgid ""
3316 "I<option> is B<PR_MCE_KILL> or B<PR_MCE_KILL_GET> or B<PR_SET_MM>, and "
3317 "unused B<prctl>()  arguments were not specified as zero."
3318 msgstr ""
3319
3320 #. type: Plain text
3321 #: build/C/man2/prctl.2:811
3322 msgid "I<arg2> is not valid value for this I<option>."
3323 msgstr "I<arg2> が指定された I<option> で有効な値ではない。"
3324
3325 #. type: Plain text
3326 #: build/C/man2/prctl.2:820
3327 msgid ""
3328 "I<option> is B<PR_SET_SECCOMP> or B<PR_GET_SECCOMP>, and the kernel was not "
3329 "configured with B<CONFIG_SECCOMP>."
3330 msgstr ""
3331 "I<option> が B<PR_SET_SECCOMP> か B<PR_GET_SECCOMP> だが、カーネルが "
3332 "B<CONFIG_SECCOMP> を有効にして作成されていなかった。"
3333
3334 #. type: Plain text
3335 #: build/C/man2/prctl.2:826
3336 msgid "I<option> is B<PR_SET_MM>, and one of the following is true"
3337 msgstr ""
3338
3339 #. type: Plain text
3340 #: build/C/man2/prctl.2:832
3341 msgid "I<arg4> or I<arg5> is nonzero;"
3342 msgstr ""
3343
3344 #. type: Plain text
3345 #: build/C/man2/prctl.2:837
3346 msgid ""
3347 "I<arg3> is greater than B<TASK_SIZE> (the limit on the size of the user "
3348 "address space for this architecture);"
3349 msgstr ""
3350
3351 #. type: Plain text
3352 #: build/C/man2/prctl.2:847
3353 msgid ""
3354 "I<arg2> is B<PR_SET_MM_START_CODE>, B<PR_SET_MM_END_CODE>, "
3355 "B<PR_SET_MM_START_DATA>, B<PR_SET_MM_END_DATA>, or B<PR_SET_MM_START_STACK,> "
3356 "and the permissions of the corresponding memory area are not as required;"
3357 msgstr ""
3358
3359 #. type: Plain text
3360 #: build/C/man2/prctl.2:859
3361 msgid ""
3362 "I<arg2> is B<PR_SET_MM_START_BRK> or B<PR_SET_MM_BRK>, and I<arg3> is less "
3363 "than or equal to the end of the data segment or specifies a value that would "
3364 "cause the B<RLIMIT_DATA> resource limit to be exceeded."
3365 msgstr ""
3366
3367 #. type: Plain text
3368 #: build/C/man2/prctl.2:870
3369 msgid ""
3370 "I<option> is B<PR_SET_PTRACER> and I<arg2> is not 0, B<PR_SET_PTRACER_ANY>, "
3371 "or the PID of an existing process."
3372 msgstr ""
3373
3374 #. type: Plain text
3375 #: build/C/man2/prctl.2:882
3376 msgid ""
3377 "I<option> is B<PR_SET_SECUREBITS>, and the caller does not have the "
3378 "B<CAP_SETPCAP> capability, or tried to unset a \"locked\" flag, or tried to "
3379 "set a flag whose corresponding locked flag was set (see B<capabilities>(7))."
3380 msgstr ""
3381 "I<option> が B<PR_SET_SECUREBITS> で、呼び出し元がケーパビリティ "
3382 "B<CAP_SETPCAP> を持っていない。 または、\"locked\" フラグを解除しようとし"
3383 "た。 または、locked フラグがセットされているフラグをセットしようとした "
3384 "(B<capabilities>(7)  参照)。"
3385
3386 #. type: Plain text
3387 #: build/C/man2/prctl.2:892
3388 msgid ""
3389 "I<option> is B<PR_SET_KEEPCAPS>, and the callers's "
3390 "B<SECURE_KEEP_CAPS_LOCKED> flag is set (see B<capabilities>(7))."
3391 msgstr ""
3392 "I<option> が B<PR_SET_KEEPCAPS> で、呼び出し元のフラグ "
3393 "B<SECURE_KEEP_CAPS_LOCKED> がセットされている (B<capabilities>(7)  参照)。"
3394
3395 #. type: Plain text
3396 #: build/C/man2/prctl.2:900
3397 msgid ""
3398 "I<option> is B<PR_CAPBSET_DROP>, and the caller does not have the "
3399 "B<CAP_SETPCAP> capability."
3400 msgstr ""
3401 "I<option> が B<PR_CAPBSET_DROP> で、呼び出し元がケーパビリティ "
3402 "B<CAP_SETPCAP> を持っていない。"
3403
3404 #.  FIXME The following (until ========) is not yet in mainline kernel,
3405 #.  so commented out for the moment.
3406 #.  .TP
3407 #.  .B EACCES
3408 #.  .I option
3409 #.  is
3410 #.  .BR PR_SET_MM ,
3411 #.  and
3412 #.  .I arg3
3413 #.  is
3414 #.  .BR PR_SET_MM_EXE_FILE ,
3415 #.  the file is not executable.
3416 #.  .TP
3417 #.  .B EBUSY
3418 #.  .I option
3419 #.  is
3420 #.  .BR PR_SET_MM ,
3421 #.  .I arg3
3422 #.  is
3423 #.  .BR PR_SET_MM_EXE_FILE ,
3424 #.  and this the second attempt to change the
3425 #.  .I /proc/pid/exe
3426 #.  symbolic link, which is prohibited.
3427 #.  .TP
3428 #.  .B EBADF
3429 #.  .I option
3430 #.  is
3431 #.  .BR PR_SET_MM ,
3432 #.  .I arg3
3433 #.  is
3434 #.  .BR PR_SET_MM_EXE_FILE ,
3435 #.  and the file descriptor passed in
3436 #.  .I arg4
3437 #.  is not valid.
3438 #.  ========== END FIXME
3439 #.  The following can't actually happen, because prctl() in
3440 #.  seccomp mode will cause SIGKILL.
3441 #.  .TP
3442 #.  .B EPERM
3443 #.  .I option
3444 #.  is
3445 #.  .BR PR_SET_SECCOMP ,
3446 #.  and secure computing mode is already 1.
3447 #. type: Plain text
3448 #: build/C/man2/prctl.2:951
3449 msgid ""
3450 "I<option> is B<PR_SET_MM>, and the caller does not have the "
3451 "B<CAP_SYS_RESOURCE> capability."
3452 msgstr ""
3453 "I<option> が B<PR_SET_MM> で、呼び出し元がケーパビリティ\n"
3454 "B<CAP_SYS_RESOURCE> を持っていない。"
3455
3456 #.  The library interface was added in glibc 2.0.6
3457 #. type: Plain text
3458 #: build/C/man2/prctl.2:956
3459 msgid "The B<prctl>()  system call was introduced in Linux 2.1.57."
3460 msgstr "B<prctl>()  システムコールは Linux 2.1.57 で導入された。"
3461
3462 #. type: Plain text
3463 #: build/C/man2/prctl.2:963
3464 msgid ""
3465 "This call is Linux-specific.  IRIX has a B<prctl>()  system call (also "
3466 "introduced in Linux 2.1.44 as irix_prctl on the MIPS architecture), with "
3467 "prototype"
3468 msgstr ""
3469 "このコールは Linux 特有である。 IRIX には B<prctl>()  システム・コールがある"
3470 "が (MIPS アーキテクチャにおいて irix_prctl として Linux 2.1.44 で同様に導入さ"
3471 "れた)、 そのプロトタイプは"
3472
3473 #. type: Plain text
3474 #: build/C/man2/prctl.2:965
3475 msgid "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
3476 msgstr "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
3477
3478 #. type: Plain text
3479 #: build/C/man2/prctl.2:970
3480 msgid ""
3481 "and options to get the maximum number of processes per user, get the maximum "
3482 "number of processors the calling process can use, find out whether a "
3483 "specified process is currently blocked, get or set the maximum stack size, "
3484 "and so on."
3485 msgstr ""
3486 "である。ユーザー当りのプロセス最大数を取得するオプション、 プロセスの使用でき"
3487 "る最大プロッサー数を取得するオプション、 現在特定のプロセスが停止(block)させ"
3488 "られているかどうか調べるオプション、 スタックサイズの最大値の取得や設定を行な"
3489 "うオプションなどがある。"
3490
3491 #. type: Plain text
3492 #: build/C/man2/prctl.2:973
3493 msgid "B<signal>(2), B<core>(5)"
3494 msgstr "B<signal>(2), B<core>(5)"
3495
3496 #. type: TH
3497 #: build/C/man3/profil.3:28
3498 #, no-wrap
3499 msgid "PROFIL"
3500 msgstr "PROFIL"
3501
3502 #. type: Plain text
3503 #: build/C/man3/profil.3:31
3504 msgid "profil - execution time profile"
3505 msgstr "profil - 実行時間プロファイル (profile)"
3506
3507 #. type: Plain text
3508 #: build/C/man3/profil.3:36
3509 msgid ""
3510 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<, size_t "
3511 ">I<offset>B<, unsigned int >I<scale>B<);>"
3512 msgstr ""
3513 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<, size_t "
3514 ">I<offset>B<, unsigned int >I<scale>B<);>"
3515
3516 #. type: Plain text
3517 #: build/C/man3/profil.3:44
3518 msgid ""
3519 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
3520 msgstr ""
3521 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
3522
3523 #. type: Plain text
3524 #: build/C/man3/profil.3:66
3525 msgid ""
3526 "This routine provides a means to find out in what areas your program spends "
3527 "most of its time.  The argument I<buf> points to I<bufsiz> bytes of core.  "
3528 "Every virtual 10 milliseconds, the user's program counter (PC)  is examined: "
3529 "I<offset> is subtracted and the result is multiplied by I<scale> and divided "
3530 "by 65536.  If the resulting value is less than I<bufsiz>, then the "
3531 "corresponding entry in I<buf> is incremented.  If I<buf> is NULL, profiling "
3532 "is disabled."
3533 msgstr ""
3534 "このルーティンはプログラムのどこの部分で時間を費やしているかを調べる 手段を提"
3535 "供する。引き数 I<buf> は I<bufsiz> バイトのメモリを指している。仮想の 10 ミリ"
3536 "秒ごとに、ユーザーの プログラム・カウンター (PC) が検査される: I<offset> が引"
3537 "かれ、その結果が I<scale> 倍され 65536 で割られる。 結果が I<bufsiz> より小さ"
3538 "い場合は I<buf> の対応するエントリがインクリメントされる。 I<buf> が NULL な"
3539 "らば、プロファイル (profile) は無効にされる。"
3540
3541 #. type: Plain text
3542 #: build/C/man3/profil.3:68
3543 msgid "Zero is always returned."
3544 msgstr "常に 0 が返される。"
3545
3546 #. type: Plain text
3547 #: build/C/man3/profil.3:70
3548 msgid "Similar to a call in SVr4 (but not POSIX.1-2001)."
3549 msgstr "SVr4 のコールに似ている (しかし POSIX.1-2001 ではない)。"
3550
3551 #. type: Plain text
3552 #: build/C/man3/profil.3:76
3553 msgid ""
3554 "B<profil>()  cannot be used on a program that also uses B<ITIMER_PROF> "
3555 "interval timers (see B<setitimer>(2))."
3556 msgstr ""
3557 "B<profil>()  は B<ITIMER_PROF> インターバル・タイマーも使用しているプログラム"
3558 "では使用できない (B<setitimer>(2)  参照)。"
3559
3560 #. type: Plain text
3561 #: build/C/man3/profil.3:79
3562 msgid ""
3563 "True kernel profiling provides more accurate results.  Libc 4.4 contained a "
3564 "kernel patch providing a system call profil."
3565 msgstr ""
3566 "本当のカーネル・プロファイルはより正確な結果を与える。 libc 4.4 にはシステム"
3567 "コール profil を提供するための カーネルパッチが含まれていた。"
3568
3569 #. type: Plain text
3570 #: build/C/man3/profil.3:84
3571 msgid "B<gprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
3572 msgstr "B<gprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
3573
3574 #. type: TH
3575 #: build/C/man3/psignal.3:30
3576 #, no-wrap
3577 msgid "PSIGNAL"
3578 msgstr "PSIGNAL"
3579
3580 #. type: TH
3581 #: build/C/man3/psignal.3:30
3582 #, no-wrap
3583 msgid "2010-10-06"
3584 msgstr "2010-10-06"
3585
3586 #. type: TH
3587 #: build/C/man3/psignal.3:30 build/C/man3/raise.3:29
3588 #: build/C/man7/sigevent.7:26
3589 #, no-wrap
3590 msgid "GNU"
3591 msgstr "GNU"
3592
3593 #. type: Plain text
3594 #: build/C/man3/psignal.3:33
3595 msgid "psignal, psiginfo - print signal message"
3596 msgstr "psignal, psiginfo - シグナルメッセージを表示"
3597
3598 #. type: Plain text
3599 #: build/C/man3/psignal.3:39
3600 #, no-wrap
3601 msgid ""
3602 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
3603 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
3604 msgstr ""
3605 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
3606 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
3607
3608 #. type: Plain text
3609 #: build/C/man3/psignal.3:41
3610 #, no-wrap
3611 msgid "B<extern const char *const >I<sys_siglist>B<[];>\n"
3612 msgstr "B<extern const char *const >I<sys_siglist>B<[];>\n"
3613
3614 #. type: Plain text
3615 #: build/C/man3/psignal.3:50
3616 msgid "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
3617 msgstr "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
3618
3619 #. type: Plain text
3620 #: build/C/man3/psignal.3:53
3621 msgid ""
3622 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
3623 "200809L"
3624 msgstr ""
3625 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
3626 "200809L"
3627
3628 #. type: Plain text
3629 #: build/C/man3/psignal.3:56
3630 msgid "I<sys_siglist>: _BSD_SOURCE"
3631 msgstr "I<sys_siglist>: _BSD_SOURCE"
3632
3633 #. type: Plain text
3634 #: build/C/man3/psignal.3:65
3635 msgid ""
3636 "The B<psignal>()  function displays a message on I<stderr> consisting of the "
3637 "string I<s>, a colon, a space, a string describing the signal number I<sig>, "
3638 "and a trailing newline.  If the string I<s> is NULL or empty, the colon and "
3639 "space are omitted.  If I<sig> is invalid, the message displayed will "
3640 "indicate an unknown signal."
3641 msgstr ""
3642 "B<psignal>() 関数は、文字列 I<s>、コロン、スペース、\n"
3643 "シグナル番号 I<sig> を説明する文字列、終端の改行から\n"
3644 "構成されるメッセージを I<stderr> に表示する。\n"
3645 "文字列 I<s> が NULL か空の場合、コロンとスペースは省略される。\n"
3646 "I<sig> が不正ならば、表示される メッセージは未知のシグナルを示す。"
3647
3648 #. type: Plain text
3649 #: build/C/man3/psignal.3:86
3650 msgid ""
3651 "The B<psiginfo>()  function is like B<psignal>(), except that it displays "
3652 "information about the signal described by I<pinfo>, which should point to a "
3653 "valid I<siginfo_t> structure.  As well as the signal description, B<psiginfo>"
3654 "()  displays information about the origin of the signal, and other "
3655 "information relevant to the signal (e.g., the relevant memory address for "
3656 "hardware-generated signals, the child process ID for B<SIGCHLD>, and the "
3657 "user ID and process ID of the sender, for signals set using B<kill>(2)  or "
3658 "B<sigqueue>(3))."
3659 msgstr ""
3660
3661 #. type: Plain text
3662 #: build/C/man3/psignal.3:89
3663 msgid ""
3664 "The array I<sys_siglist> holds the signal description strings indexed by "
3665 "signal number."
3666 msgstr ""
3667 "配列 I<sys_siglist> はシグナルを説明する文字列を保持しており、 配列へのアクセ"
3668 "スにはシグナル番号を添え字として用いる事ができる。"
3669
3670 #. type: Plain text
3671 #: build/C/man3/psignal.3:95
3672 msgid "The B<psignal>()  and B<psiginfo>()  functions return no value."
3673 msgstr "関数 B<psignal>() と B<psiginfo>() は、値を返さない。"
3674
3675 #. type: Plain text
3676 #: build/C/man3/psignal.3:99
3677 msgid "The B<psiginfo>()  function was added to glibc in version 2.10."
3678 msgstr "B<psiginfo>() 関数は glibc バージョン 2.10 で追加された。"
3679
3680 #. type: Plain text
3681 #: build/C/man3/psignal.3:101
3682 msgid "POSIX.1-2008, 4.3BSD."
3683 msgstr "POSIX.1-2008, 4.3BSD."
3684
3685 #. type: Plain text
3686 #: build/C/man3/psignal.3:105
3687 msgid "In glibc versions up to 2.12, B<psiginfo>()  had the following bugs:"
3688 msgstr ""
3689 "バージョン 2.12 までの glibc では B<psiginfo>() には以下のバグがあった。"
3690
3691 #.  FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=12107
3692 #.  Reportedly now fixed; check glibc 2.13
3693 #. type: Plain text
3694 #: build/C/man3/psignal.3:109
3695 msgid "In some circumstances, a trailing newline is not printed."
3696 msgstr ""
3697
3698 #.  FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=12108
3699 #.  Reportedly now fixed; check glibc 2.13
3700 #. type: Plain text
3701 #: build/C/man3/psignal.3:113
3702 msgid "Additional details are not displayed for real-time signals."
3703 msgstr ""
3704
3705 #. type: Plain text
3706 #: build/C/man3/psignal.3:118
3707 msgid "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
3708 msgstr "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
3709
3710 #. type: TH
3711 #: build/C/man3/raise.3:29
3712 #, no-wrap
3713 msgid "RAISE"
3714 msgstr "RAISE"
3715
3716 #. type: TH
3717 #: build/C/man3/raise.3:29
3718 #, no-wrap
3719 msgid "2012-04-20"
3720 msgstr "2012-04-20"
3721
3722 #. type: Plain text
3723 #: build/C/man3/raise.3:32
3724 msgid "raise - send a signal to the caller"
3725 msgstr "raise - 呼び出し元にシグナルを送る"
3726
3727 #. type: Plain text
3728 #: build/C/man3/raise.3:37
3729 #, no-wrap
3730 msgid "B<int raise(int >I<sig>B<);>\n"
3731 msgstr "B<int raise(int >I<sig>B<);>\n"
3732
3733 #. type: Plain text
3734 #: build/C/man3/raise.3:43
3735 msgid ""
3736 "The B<raise>()  function sends a signal to the calling process or thread.  "
3737 "In a single-threaded program it is equivalent to"
3738 msgstr ""
3739 "B<raise>()  関数は、呼び出し元のプロセスもしくはスレッドにシグナルを送る。 シ"
3740 "ングルスレッドのプログラムでは、以下と等価である。"
3741
3742 #. type: Plain text
3743 #: build/C/man3/raise.3:47
3744 #, no-wrap
3745 msgid "kill(getpid(), sig);\n"
3746 msgstr "kill(getpid(), sig);\n"
3747
3748 #. type: Plain text
3749 #: build/C/man3/raise.3:51
3750 msgid "In a multithreaded program it is equivalent to"
3751 msgstr "マルチスレッドのプログラムでは、以下と等価である。"
3752
3753 #. type: Plain text
3754 #: build/C/man3/raise.3:55
3755 #, no-wrap
3756 msgid "pthread_kill(pthread_self(), sig);\n"
3757 msgstr "pthread_kill(pthread_self(), sig);\n"
3758
3759 #. type: Plain text
3760 #: build/C/man3/raise.3:61
3761 msgid ""
3762 "If the signal causes a handler to be called, B<raise>()  will only return "
3763 "after the signal handler has returned."
3764 msgstr ""
3765 "シグナルに起因してシグナル・ハンドラが呼び出される場合には、 B<raise>()  が返"
3766 "るのは必ずシグナル・ハンドラが返った後になる。"
3767
3768 #. type: Plain text
3769 #: build/C/man3/raise.3:64
3770 msgid "B<raise>()  returns 0 on success, and nonzero for failure."
3771 msgstr "成功した場合は 0 を、失敗した場合は 0 以外の値を返す。"
3772
3773 #. type: Plain text
3774 #: build/C/man3/raise.3:66 build/C/man2/signal.2:109
3775 msgid "C89, C99, POSIX.1-2001."
3776 msgstr "C89, C99, POSIX.1-2001."
3777
3778 #.  2.3.2 used the obsolete tkill(), if available.
3779 #. type: Plain text
3780 #: build/C/man3/raise.3:77
3781 msgid ""
3782 "Since version 2.3.3, glibc implements B<raise>()  by calling B<tgkill>(2), "
3783 "if the kernel supports that system call.  Older glibc versions implemented "
3784 "B<raise>()  using B<kill>(2)."
3785 msgstr ""
3786 "glibc バージョン 2.3.3 以降では、カーネルが B<tgkill>(2) システムコール\n"
3787 "をサポートしている場合はB<raise>() は B<tgkill>(2) を使って実装されて\n"
3788 "いる。古いバージョンの glibc では、B<raise>() は B<kill>(2) を使って\n"
3789 "実装されている。"
3790
3791 #. type: Plain text
3792 #: build/C/man3/raise.3:84
3793 msgid ""
3794 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
3795 "B<signal>(7)"
3796 msgstr ""
3797 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
3798 "B<signal>(7)"
3799
3800 #. type: TH
3801 #: build/C/man2/rt_sigqueueinfo.2:25
3802 #, no-wrap
3803 msgid "RT_SIGQUEUEINFO"
3804 msgstr "RT_SIGQUEUEINFO"
3805
3806 #. type: TH
3807 #: build/C/man2/rt_sigqueueinfo.2:25 build/C/man2/sgetmask.2:26
3808 #: build/C/man2/tkill.2:29
3809 #, no-wrap
3810 msgid "2012-07-13"
3811 msgstr "2012-07-13"
3812
3813 #. type: Plain text
3814 #: build/C/man2/rt_sigqueueinfo.2:28
3815 msgid "rt_sigqueueinfo, rt_tgsigqueueinfo - queue a signal and data"
3816 msgstr ""
3817
3818 #. type: Plain text
3819 #: build/C/man2/rt_sigqueueinfo.2:31
3820 #, no-wrap
3821 msgid "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
3822 msgstr "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
3823
3824 #. type: Plain text
3825 #: build/C/man2/rt_sigqueueinfo.2:34
3826 #, no-wrap
3827 msgid ""
3828 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
3829 "B<                      siginfo_t *>I<uinfo>B<);>\n"
3830 msgstr ""
3831 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
3832 "B<                      siginfo_t *>I<uinfo>B<);>\n"
3833
3834 #. type: Plain text
3835 #: build/C/man2/rt_sigqueueinfo.2:38 build/C/man2/sgetmask.2:36
3836 #: build/C/man2/tkill.2:41
3837 msgid "I<Note>: There are no glibc wrappers for these system calls; see NOTES."
3838 msgstr "I<注>: これらのシステムコールには、glibc のラッパー関数はない。「注意」の節を参照。"
3839
3840 #. type: Plain text
3841 #: build/C/man2/rt_sigqueueinfo.2:50
3842 msgid ""
3843 "The B<rt_sigqueueinfo>()  and B<rt_tgsigqueueinfo>()  system calls are the "
3844 "low-level interfaces used to send a signal plus data to a process or "
3845 "thread.  The receiver of the signal can obtain the accompanying data by "
3846 "establishing a signal handler with the B<sigaction>(2)  B<SA_SIGINFO> flag."
3847 msgstr ""
3848
3849 #. type: Plain text
3850 #: build/C/man2/rt_sigqueueinfo.2:56
3851 msgid ""
3852 "These system calls are not intended for direct application use; they are "
3853 "provided to allow the implementation of B<sigqueue>(3)  and "
3854 "B<pthread_sigqueue>(3)."
3855 msgstr ""
3856
3857 #. type: Plain text
3858 #: build/C/man2/rt_sigqueueinfo.2:68
3859 msgid ""
3860 "The B<rt_sigqueueinfo>()  system call sends the signal I<sig> to the thread "
3861 "group with the ID I<tgid>.  (The term \"thread group\" is synonymous with "
3862 "\"process\", and I<tid> corresponds to the traditional UNIX process ID.)  "
3863 "The signal will be delivered to an arbitrary member of the thread group (i."
3864 "e., one of the threads that is not currently blocking the signal)."
3865 msgstr ""
3866
3867 #. type: Plain text
3868 #: build/C/man2/rt_sigqueueinfo.2:79
3869 msgid ""
3870 "The I<uinfo> argument specifies the data to accompany the signal.  This "
3871 "argument is a pointer to a structure of type I<siginfo_t>, described in "
3872 "B<sigaction>(2)  (and defined by including I<E<lt>sigaction.hE<gt>>).  The "
3873 "caller should set the following fields in this structure:"
3874 msgstr ""
3875
3876 #. type: TP
3877 #: build/C/man2/rt_sigqueueinfo.2:79 build/C/man7/sigevent.7:88
3878 #: build/C/man2/wait.2:314
3879 #, no-wrap
3880 msgid "I<si_code>"
3881 msgstr "I<si_code>"
3882
3883 #.  tkill(2) or
3884 #. type: Plain text
3885 #: build/C/man2/rt_sigqueueinfo.2:95
3886 msgid ""
3887 "This must be one of the B<SI_*> codes in the Linux kernel source file "
3888 "I<include/asm-generic/siginfo.h>, with the restriction that the code must be "
3889 "negative (i.e., cannot be B<SI_USER>, which is used by the kernel to "
3890 "indicate a signal sent by B<kill>(2))  and cannot (since Linux 2.6.39) be "
3891 "B<SI_TKILL> (which is used by the kernel to indicate a signal sent using "
3892 "B<tgkill>(2))."
3893 msgstr ""
3894
3895 #. type: TP
3896 #: build/C/man2/rt_sigqueueinfo.2:95 build/C/man2/wait.2:293
3897 #, no-wrap
3898 msgid "I<si_pid>"
3899 msgstr "I<si_pid>"
3900
3901 #. type: Plain text
3902 #: build/C/man2/rt_sigqueueinfo.2:99
3903 msgid ""
3904 "This should be set to a process ID, typically the process ID of the sender."
3905 msgstr ""
3906
3907 #. type: TP
3908 #: build/C/man2/rt_sigqueueinfo.2:99 build/C/man2/wait.2:296
3909 #, no-wrap
3910 msgid "I<si_uid>"
3911 msgstr "I<si_uid>"
3912
3913 #. type: Plain text
3914 #: build/C/man2/rt_sigqueueinfo.2:103
3915 msgid ""
3916 "This should be set to a user ID, typically the real user ID of the sender."
3917 msgstr ""
3918
3919 #. type: TP
3920 #: build/C/man2/rt_sigqueueinfo.2:103 build/C/man7/sigevent.7:96
3921 #, no-wrap
3922 msgid "I<si_value>"
3923 msgstr "I<si_value>"
3924
3925 #. type: Plain text
3926 #: build/C/man2/rt_sigqueueinfo.2:110
3927 msgid ""
3928 "This field contains the user data to accompany the signal.  For more "
3929 "information, see the description of the last (I<union sigval>)  argument of "
3930 "B<sigqueue>(3)."
3931 msgstr ""
3932
3933 #. type: Plain text
3934 #: build/C/man2/rt_sigqueueinfo.2:117
3935 msgid ""
3936 "Internally, the kernel sets the I<si_signo> field to the value specified in "
3937 "I<sig>, so that the receiver of the signal can also obtain the signal number "
3938 "via that field."
3939 msgstr ""
3940
3941 #. type: Plain text
3942 #: build/C/man2/rt_sigqueueinfo.2:129
3943 msgid ""
3944 "The B<rt_tgsigqueueinfo>()  system call is like B<rt_sigqueueinfo>(), but "
3945 "sends the signal and data to the single thread specified by the combination "
3946 "of I<tgid>, a thread group ID, and I<tid>, a thread in that thread group."
3947 msgstr ""
3948
3949 #. type: Plain text
3950 #: build/C/man2/rt_sigqueueinfo.2:134
3951 msgid ""
3952 "On success, these system calls return 0.  On error, they return -1 and "
3953 "I<errno> is set to indicate the error."
3954 msgstr ""
3955
3956 #. type: TP
3957 #: build/C/man2/rt_sigqueueinfo.2:135 build/C/man3/sigqueue.3:92
3958 #: build/C/man2/sigwaitinfo.2:115 build/C/man2/timer_create.2:176
3959 #, no-wrap
3960 msgid "B<EAGAIN>"
3961 msgstr "B<EAGAIN>"
3962
3963 #. type: Plain text
3964 #: build/C/man2/rt_sigqueueinfo.2:141 build/C/man3/sigqueue.3:98
3965 msgid ""
3966 "The limit of signals which may be queued has been reached.  (See B<signal>"
3967 "(7)  for further information.)"
3968 msgstr ""
3969 "待ち行列に入れられるシグナルの最大数に達した (より詳しい情報は B<signal>(7)  "
3970 "を参照すること)。"
3971
3972 #. type: Plain text
3973 #: build/C/man2/rt_sigqueueinfo.2:148
3974 msgid "I<sig>, I<tgid>, or I<tid> was invalid."
3975 msgstr ""
3976
3977 #. type: Plain text
3978 #: build/C/man2/rt_sigqueueinfo.2:156
3979 msgid ""
3980 "The caller does not have permission to send the signal to the target.  For "
3981 "the required permissions, see B<kill>(2).  Or: I<uinfo-E<gt>si_code> is "
3982 "invalid."
3983 msgstr ""
3984
3985 #. type: Plain text
3986 #: build/C/man2/rt_sigqueueinfo.2:162
3987 msgid "B<rt_sigqueueinfo>(): No thread group matching I<tgid> was found."
3988 msgstr ""
3989
3990 #. type: Plain text
3991 #: build/C/man2/rt_sigqueueinfo.2:169
3992 msgid "B<rt_tgsigqueinfo>(): No thread matching I<tgid> and I<tid> was found."
3993 msgstr ""
3994
3995 #. type: Plain text
3996 #: build/C/man2/rt_sigqueueinfo.2:176
3997 msgid ""
3998 "The B<rt_sigqueueinfo>()  system call was added to Linux in version 2.2.  "
3999 "The B<rt_tgsigqueueinfo>()  system call was added to Linux in version 2.6.31."
4000 msgstr ""
4001
4002 #. type: Plain text
4003 #: build/C/man2/rt_sigqueueinfo.2:178 build/C/man2/sgetmask.2:68
4004 #: build/C/man2/timerfd_create.2:373
4005 msgid "These system calls are Linux-specific."
4006 msgstr "これらのシステムコールは Linux 固有である。"
4007
4008 #. type: Plain text
4009 #: build/C/man2/rt_sigqueueinfo.2:183
4010 msgid ""
4011 "Since these system calls are not intended for application use, there are no "
4012 "glibc wrapper functions; use B<syscall>(2)  in the unlikely case that you "
4013 "want to call them directly."
4014 msgstr ""
4015
4016 #. type: Plain text
4017 #: build/C/man2/rt_sigqueueinfo.2:188
4018 msgid ""
4019 "As with B<kill>(2), the null signal (0) can be used to check if the "
4020 "specified process or thread exists."
4021 msgstr ""
4022
4023 #. type: Plain text
4024 #: build/C/man2/rt_sigqueueinfo.2:196
4025 msgid ""
4026 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4027 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4028 msgstr ""
4029 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4030 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4031
4032 #. type: TH
4033 #: build/C/man2/s390_runtime_instr.2:26
4034 #, no-wrap
4035 msgid "S390_RUNTIME_INSTR"
4036 msgstr ""
4037
4038 #. type: TH
4039 #: build/C/man2/s390_runtime_instr.2:26
4040 #, no-wrap
4041 msgid "2012-12-17"
4042 msgstr "2012-12-17"
4043
4044 #. type: Plain text
4045 #: build/C/man2/s390_runtime_instr.2:29
4046 msgid "s390_runtime_instr - enable/disable s390 CPU run-time instrumentation"
4047 msgstr ""
4048
4049 #. type: Plain text
4050 #: build/C/man2/s390_runtime_instr.2:32
4051 #, no-wrap
4052 msgid "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4053 msgstr "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4054
4055 #. type: Plain text
4056 #: build/C/man2/s390_runtime_instr.2:34
4057 #, no-wrap
4058 msgid "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4059 msgstr "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4060
4061 #. type: Plain text
4062 #: build/C/man2/s390_runtime_instr.2:40
4063 msgid ""
4064 "The B<s390_runtime_instr>()  system call starts or stops CPU run-time "
4065 "instrumentation for the calling thread."
4066 msgstr ""
4067
4068 #. type: Plain text
4069 #: build/C/man2/s390_runtime_instr.2:48
4070 msgid ""
4071 "The I<command> argument controls whether run-time instrumentation is started "
4072 "(B<S390_RUNTIME_INSTR_START>, 1) or stopped (B<S390_RUNTIME_INSTR_STOP>, 2) "
4073 "for the calling thread."
4074 msgstr ""
4075
4076 #. type: Plain text
4077 #: build/C/man2/s390_runtime_instr.2:55
4078 msgid ""
4079 "The I<signum> argument specifies the number of a real-time signal.  The real-"
4080 "time signal is sent to the thread if the run-time instrumentation buffer is "
4081 "full or if the run-time-instrumentation-halted interrupt occurred."
4082 msgstr ""
4083
4084 #. type: Plain text
4085 #: build/C/man2/s390_runtime_instr.2:66
4086 msgid ""
4087 "On success, B<s390_runtime_instr>()  returns 0 and enables the thread for "
4088 "run-time instrumentation by assigning the thread a default run-time "
4089 "instrumentation control block.  The caller can then read and modify the "
4090 "control block and start the run-time instrumentation.  On error, -1 is "
4091 "returned and I<errno> is set to one of the error codes listed below."
4092 msgstr ""
4093
4094 #. type: Plain text
4095 #: build/C/man2/s390_runtime_instr.2:74
4096 msgid ""
4097 "The value specified in I<command> is not a valid command or the value "
4098 "specified in I<signum> is not a real-time signal number."
4099 msgstr ""
4100
4101 #. type: Plain text
4102 #: build/C/man2/s390_runtime_instr.2:77
4103 msgid ""
4104 "Allocating memory for the run-time instrumentation control block failed."
4105 msgstr ""
4106
4107 #. type: TP
4108 #: build/C/man2/s390_runtime_instr.2:77
4109 #, no-wrap
4110 msgid "B<EOPNOTSUPP>"
4111 msgstr ""
4112
4113 #. type: Plain text
4114 #: build/C/man2/s390_runtime_instr.2:80
4115 msgid "The run-time instrumentation facility is not available."
4116 msgstr ""
4117
4118 #. type: Plain text
4119 #: build/C/man2/s390_runtime_instr.2:82
4120 msgid "This system call is available since Linux 3.7."
4121 msgstr "このシステムコールは Linux 3.7 で初めて登場した。"
4122
4123 #. type: Plain text
4124 #: build/C/man2/s390_runtime_instr.2:85
4125 msgid ""
4126 "This Linux-specific system call is only available on the s390 architecture.  "
4127 "The run-time instrumentation facility is available beginning with System z "
4128 "EC12."
4129 msgstr ""
4130
4131 #. type: Plain text
4132 #: build/C/man2/s390_runtime_instr.2:89
4133 msgid ""
4134 "Glibc does not provide a wrapper for this system call, use B<syscall>(2)  to "
4135 "call it."
4136 msgstr "glibc はこのシステムコールに対するラッパー関数を提供していない。 B<syscall>(2) を使用すること。"
4137
4138 #. type: Plain text
4139 #: build/C/man2/s390_runtime_instr.2:92
4140 msgid "B<syscall>(2), B<signal>(7)"
4141 msgstr "B<syscall>(2), B<signal>(7)"
4142
4143 #. type: TH
4144 #: build/C/man2/sgetmask.2:26
4145 #, no-wrap
4146 msgid "SGETMASK"
4147 msgstr "SGETMASK"
4148
4149 #. type: Plain text
4150 #: build/C/man2/sgetmask.2:29
4151 msgid "sgetmask, ssetmask - manipulation of signal mask (obsolete)"
4152 msgstr "sgetmask, ssetmask - シグナルマスクの操作 (廃止予定)"
4153
4154 #. type: Plain text
4155 #: build/C/man2/sgetmask.2:31
4156 msgid "B<long sgetmask(void);>"
4157 msgstr "B<long sgetmask(void);>"
4158
4159 #. type: Plain text
4160 #: build/C/man2/sgetmask.2:33
4161 msgid "B<long ssetmask(long >I<newmask>B<);>"
4162 msgstr "B<long ssetmask(long >I<newmask>B<);>"
4163
4164 #. type: Plain text
4165 #: build/C/man2/sgetmask.2:42
4166 msgid ""
4167 "These system calls are obsolete.  I<Do not use them>; use B<sigprocmask>(2)  "
4168 "instead."
4169 msgstr ""
4170 "これらのシステムコールは廃止予定であり、 「使用しないこと」。 代わりに "
4171 "B<sigprocmask>(2)  を使用すること。"
4172
4173 #. type: Plain text
4174 #: build/C/man2/sgetmask.2:45
4175 msgid "B<sgetmask>()  returns the signal mask of the calling process."
4176 msgstr "B<sgetmask>()  は、呼び出し元プロセスのシグナルマスクを返す。"
4177
4178 #. type: Plain text
4179 #: build/C/man2/sgetmask.2:50
4180 msgid ""
4181 "B<ssetmask>()  sets the signal mask of the calling process to the value "
4182 "given in I<newmask>.  The previous signal mask is returned."
4183 msgstr ""
4184 "B<ssetmask>()  は、呼び出し元プロセスのシグナルマスクを I<newmask> で指定され"
4185 "た値に設定し、変更前のシグナルマスクを返す。"
4186
4187 #. type: Plain text
4188 #: build/C/man2/sgetmask.2:59
4189 msgid ""
4190 "The signal masks dealt with by these two system calls are plain bit masks "
4191 "(unlike the I<sigset_t> used by B<sigprocmask>(2)); use B<sigmask>(3)  to "
4192 "create and inspect these masks."
4193 msgstr ""
4194 "これら二つのシステムコールが扱うシグナルマスクは、 単純なビットマスクである "
4195 "(この点が B<sigprocmask>(2)  で使用される I<sigset_t> と異なる)。 これらのマ"
4196 "スクを作成したり検査するには B<sigmask>(3)  を使用すること。"
4197
4198 #. type: Plain text
4199 #: build/C/man2/sgetmask.2:64
4200 msgid ""
4201 "B<sgetmask>()  always successfully returns the signal mask.  B<ssetmask>()  "
4202 "always succeeds, and returns the previous signal mask."
4203 msgstr ""
4204 "B<sgetmask>()  は常に成功し、シグナルマスクを返す。 B<ssetmask>()  は常に成功"
4205 "し、直前のシグナルマスクを返す。"
4206
4207 #. type: Plain text
4208 #: build/C/man2/sgetmask.2:66
4209 msgid "These system calls always succeed."
4210 msgstr "これらのシステムコールは常に成功する。"
4211
4212 #. type: Plain text
4213 #: build/C/man2/sgetmask.2:72
4214 msgid ""
4215 "Glibc does not provide wrappers for these obsolete system calls; in the "
4216 "unlikely event that you want to call them, use B<syscall>(2)."
4217 msgstr ""
4218 "glibc はこれらの古いシステムコールに対するラッパー関数を提供していない。\n"
4219 "あまりないと思うが、これらを呼び出したい場合には B<syscall>(2) を使うこと。"
4220
4221 #. type: Plain text
4222 #: build/C/man2/sgetmask.2:75
4223 msgid ""
4224 "These system calls are unaware of signal numbers greater than 31 (i.e., real-"
4225 "time signals)."
4226 msgstr ""
4227 "これらのシステムコールは、 31 より大きいシグナル番号 (つまり、リアルタイムシ"
4228 "グナル) を扱えない。"
4229
4230 #. type: Plain text
4231 #: build/C/man2/sgetmask.2:80
4232 msgid "It is not possible to block B<SIGSTOP> or B<SIGKILL>."
4233 msgstr "B<SIGSTOP> や B<SIGKILL> をブロックすることはできない。"
4234
4235 #. type: Plain text
4236 #: build/C/man2/sgetmask.2:83
4237 msgid "B<sigprocmask>(2), B<signal>(7)"
4238 msgstr "B<sigprocmask>(2), B<signal>(7)"
4239
4240 #. type: TH
4241 #: build/C/man2/sigaction.2:47
4242 #, no-wrap
4243 msgid "SIGACTION"
4244 msgstr "SIGACTION"
4245
4246 #. type: TH
4247 #: build/C/man2/sigaction.2:47
4248 #, no-wrap
4249 msgid "2013-02-12"
4250 msgstr "2013-02-12"
4251
4252 #. type: Plain text
4253 #: build/C/man2/sigaction.2:50
4254 msgid "sigaction - examine and change a signal action"
4255 msgstr "sigaction - シグナルの動作の確認と変更"
4256
4257 #. type: Plain text
4258 #: build/C/man2/sigaction.2:56
4259 #, no-wrap
4260 msgid ""
4261 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
4262 "B<              struct sigaction *>I<oldact>B<);>\n"
4263 msgstr ""
4264 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
4265 "B<              struct sigaction *>I<oldact>B<);>\n"
4266
4267 #. type: Plain text
4268 #: build/C/man2/sigaction.2:66
4269 msgid ""
4270 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4271 "_POSIX_SOURCE"
4272 msgstr ""
4273 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4274 "_POSIX_SOURCE"
4275
4276 #. type: Plain text
4277 #: build/C/man2/sigaction.2:69
4278 msgid "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
4279 msgstr "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
4280
4281 #. type: Plain text
4282 #: build/C/man2/sigaction.2:78
4283 msgid ""
4284 "The B<sigaction>()  system call is used to change the action taken by a "
4285 "process on receipt of a specific signal.  (See B<signal>(7)  for an overview "
4286 "of signals.)"
4287 msgstr ""
4288 "B<sigaction>()  システムコールは、特定のシグナルを受信した際の プロセスの動作"
4289 "を変更するのに使用される (シグナルの概要については B<signal>(7)  を参照)。"
4290
4291 #. type: Plain text
4292 #: build/C/man2/sigaction.2:84
4293 msgid ""
4294 "I<signum> specifies the signal and can be any valid signal except B<SIGKILL> "
4295 "and B<SIGSTOP>."
4296 msgstr ""
4297 "I<signum> には、 B<SIGKILL> と B<SIGSTOP> 以外の有効なシグナルをどれでも指定"
4298 "できる。"
4299
4300 #. type: Plain text
4301 #: build/C/man2/sigaction.2:95
4302 msgid ""
4303 "If I<act> is non-NULL, the new action for signal I<signum> is installed from "
4304 "I<act>.  If I<oldact> is non-NULL, the previous action is saved in I<oldact>."
4305 msgstr ""
4306 "I<act> が NULL 以外であれば、シグナル I<signum> の新しい動作 (action) として "
4307 "I<act> が設定される。 I<oldact> が NULL でなければ、今までの動作が I<oldact> "
4308 "に格納される。"
4309
4310 #. type: Plain text
4311 #: build/C/man2/sigaction.2:99
4312 msgid "The I<sigaction> structure is defined as something like:"
4313 msgstr "I<sigaction> 構造体は以下のような感じに定義される。"
4314
4315 #. type: Plain text
4316 #: build/C/man2/sigaction.2:109
4317 #, no-wrap
4318 msgid ""
4319 "struct sigaction {\n"
4320 "    void     (*sa_handler)(int);\n"
4321 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
4322 "    sigset_t   sa_mask;\n"
4323 "    int        sa_flags;\n"
4324 "    void     (*sa_restorer)(void);\n"
4325 "};\n"
4326 msgstr ""
4327 "struct sigaction {\n"
4328 "    void     (*sa_handler)(int);\n"
4329 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
4330 "    sigset_t   sa_mask;\n"
4331 "    int        sa_flags;\n"
4332 "    void     (*sa_restorer)(void);\n"
4333 "};\n"
4334
4335 #. type: Plain text
4336 #: build/C/man2/sigaction.2:116
4337 msgid ""
4338 "On some architectures a union is involved: do not assign to both "
4339 "I<sa_handler> and I<sa_sigaction>."
4340 msgstr ""
4341 "アーキテクチャによっては共用体 (union) が用いられており、その場合には "
4342 "I<sa_handler> と I<sa_sigaction> の両方を同時に割り当てることはできない。"
4343
4344 #. type: Plain text
4345 #: build/C/man2/sigaction.2:123
4346 msgid ""
4347 "The I<sa_restorer> element is obsolete and should not be used.  POSIX does "
4348 "not specify a I<sa_restorer> element."
4349 msgstr ""
4350 "I<sa_restorer> 要素は廃止予定であり使用すべきではない。 POSIX には "
4351 "I<sa_restorer> 要素に関する規定はない。"
4352
4353 #. type: Plain text
4354 #: build/C/man2/sigaction.2:133
4355 msgid ""
4356 "I<sa_handler> specifies the action to be associated with I<signum> and may "
4357 "be B<SIG_DFL> for the default action, B<SIG_IGN> to ignore this signal, or a "
4358 "pointer to a signal handling function.  This function receives the signal "
4359 "number as its only argument."
4360 msgstr ""
4361 "I<sa_handler> は I<signum> に対応する動作を指定するもので、 デフォルトの動作"
4362 "を行う B<SIG_DFL>、 そのシグナルを無視する B<SIG_IGN>、 シグナルハンドラ関数"
4363 "へのポインタが設定できる。 シグナルハンドラ関数の引き数は一つであり、シグナル"
4364 "番号が引き数として 渡される。"
4365
4366 #. type: Plain text
4367 #: build/C/man2/sigaction.2:155
4368 msgid ""
4369 "If B<SA_SIGINFO> is specified in I<sa_flags>, then I<sa_sigaction> (instead "
4370 "of I<sa_handler>)  specifies the signal-handling function for I<signum>.  "
4371 "This function receives the signal number as its first argument, a pointer to "
4372 "a I<siginfo_t> as its second argument and a pointer to a I<ucontext_t> (cast "
4373 "to I<void\\ *>) as its third argument.  (Commonly, the handler function "
4374 "doesn't make any use of the third argument.  See B<getcontext>(3)  for "
4375 "further information about I<ucontext_t>.)"
4376 msgstr ""
4377 "I<sa_flags> に B<SA_SIGINFO> が指定された場合、 (I<sa_handler> ではなく)\n"
4378 "I<sa_sigaction> により I<signum> に対応するシグナルハンドラ関数が指定さ\n"
4379 "れる。指定される関数は、最初の引き数としてシグナル番号を、二番目の引き\n"
4380 "数として I<siginfo_t> へのポインタを、三番目の引き数として (I<void\\ *>\n"
4381 "にキャストした) I<ucontext_t> へのポインタを受けとる。 (一般的には、\n"
4382 "ハンドラ関数の三番目の引き数が使用されない。I<ucontext_t> についての\n"
4383 "詳しい情報は B<getcontext>(3) を参照。)"
4384
4385 #. type: Plain text
4386 #: build/C/man2/sigaction.2:165
4387 msgid ""
4388 "I<sa_mask> specifies a mask of signals which should be blocked (i.e., added "
4389 "to the signal mask of the thread in which the signal handler is invoked)  "
4390 "during execution of the signal handler.  In addition, the signal which "
4391 "triggered the handler will be blocked, unless the B<SA_NODEFER> flag is used."
4392 msgstr ""
4393 "I<sa_mask> は、シグナル・ハンドラ実行中に禁止 (block) すべきシグナルのマスク"
4394 "を指定する (ハンドラ実行中のシグナルの禁止は、シグナル・ハンドラが起動された"
4395 "スレッド のシグナルのマスクに追加することで行われる)。 さらに、 "
4396 "B<SA_NODEFER> フラグが指定されていない場合は、ハンドラを起動するきっかけとな"
4397 "る シグナルにも I<sa_mask> が適用される。"
4398
4399 #. type: Plain text
4400 #: build/C/man2/sigaction.2:169
4401 msgid ""
4402 "I<sa_flags> specifies a set of flags which modify the behavior of the "
4403 "signal.  It is formed by the bitwise OR of zero or more of the following:"
4404 msgstr ""
4405 "I<sa_flags> はシグナル・ハンドラの動作を変更するためのフラグの集合を指定す"
4406 "る。 I<sa_flags> には、以下に示すフラグの (0 個以上の) 論理和をとったものを指"
4407 "定する。"
4408
4409 #. type: TP
4410 #: build/C/man2/sigaction.2:170
4411 #, no-wrap
4412 msgid "B<SA_NOCLDSTOP>"
4413 msgstr "B<SA_NOCLDSTOP>"
4414
4415 #. type: Plain text
4416 #: build/C/man2/sigaction.2:187
4417 msgid ""
4418 "If I<signum> is B<SIGCHLD>, do not receive notification when child processes "
4419 "stop (i.e., when they receive one of B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN> or "
4420 "B<SIGTTOU>)  or resume (i.e., they receive B<SIGCONT>)  (see B<wait>(2)).  "
4421 "This flag is only meaningful when establishing a handler for B<SIGCHLD>."
4422 msgstr ""
4423 "I<signum> が B<SIGCHLD> の場合、 子プロセスが停止したり (子プロセスが "
4424 "B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN>, B<SIGTTOU> を受けたとき) 再開したり (子プ"
4425 "ロセスが B<SIGCONT> を受けたとき) したときに B<SIGCHLD> の通知を受けない。 こ"
4426 "のフラグは、 B<SIGCHLD> に対してハンドラを設定する際にのみ意味を持つ。"
4427
4428 #. type: TP
4429 #: build/C/man2/sigaction.2:187
4430 #, no-wrap
4431 msgid "B<SA_NOCLDWAIT> (since Linux 2.6)"
4432 msgstr "B<SA_NOCLDWAIT> (Linux 2.6 以降)"
4433
4434 #.  To be precise: Linux 2.5.60 -- MTK
4435 #. type: Plain text
4436 #: build/C/man2/sigaction.2:201
4437 msgid ""
4438 "If I<signum> is B<SIGCHLD>, do not transform children into zombies when they "
4439 "terminate.  See also B<waitpid>(2).  This flag is only meaningful when "
4440 "establishing a handler for B<SIGCHLD>, or when setting that signal's "
4441 "disposition to B<SIG_DFL>."
4442 msgstr ""
4443 "(Linux 2.6 以降)  I<signum> が B<SIGCHLD> の場合、子プロセスが終了したときに "
4444 "子プロセスをゾンビプロセスに変化させない (B<waitpid>(2)  も参照)。 このフラグ"
4445 "は、 B<SIGCHLD> に対してハンドラを設定する際、もしくはそのシグナルの処理方法"
4446 "を B<SIG_DFL> に設定する際にのみ意味を持つ。"
4447
4448 #. type: Plain text
4449 #: build/C/man2/sigaction.2:213
4450 msgid ""
4451 "If the B<SA_NOCLDWAIT> flag is set when establishing a handler for "
4452 "B<SIGCHLD>, POSIX.1 leaves it unspecified whether a B<SIGCHLD> signal is "
4453 "generated when a child process terminates.  On Linux, a B<SIGCHLD> signal is "
4454 "generated in this case; on some other implementations, it is not."
4455 msgstr ""
4456 "B<SIGCHLD> に対してハンドラを設定する際に B<SA_NOCLDWAIT> フラグをセットした"
4457 "場合、 子プロセスが終了した際に B<SIGCHLD> シグナルが生成されるかどうかは、 "
4458 "POSIX.1 では規定されていない。 Linux では、この状況で B<SIGCHLD> シグナルは生"
4459 "成される。 いくつかの他の実装では生成されない。"
4460
4461 #. type: TP
4462 #: build/C/man2/sigaction.2:213
4463 #, no-wrap
4464 msgid "B<SA_NODEFER>"
4465 msgstr "B<SA_NODEFER>"
4466
4467 #. type: Plain text
4468 #: build/C/man2/sigaction.2:220
4469 msgid ""
4470 "Do not prevent the signal from being received from within its own signal "
4471 "handler.  This flag is only meaningful when establishing a signal handler.  "
4472 "B<SA_NOMASK> is an obsolete, nonstandard synonym for this flag."
4473 msgstr ""
4474 "それ自身のシグナル・ハンドラーの内部にいる時でも そのシグナルをマスクしないよ"
4475 "うにする。 このフラグはシグナルハンドラを設定する際にのみ意味を持つ。 "
4476 "B<SA_NOMASK> はこのフラグと同じ意味だが、廃止されており、非標準である。"
4477
4478 #. type: TP
4479 #: build/C/man2/sigaction.2:220
4480 #, no-wrap
4481 msgid "B<SA_ONSTACK>"
4482 msgstr "B<SA_ONSTACK>"
4483
4484 #. type: Plain text
4485 #: build/C/man2/sigaction.2:226
4486 msgid ""
4487 "Call the signal handler on an alternate signal stack provided by "
4488 "B<sigaltstack>(2).  If an alternate stack is not available, the default "
4489 "stack will be used.  This flag is only meaningful when establishing a signal "
4490 "handler."
4491 msgstr ""
4492 "B<sigaltstack>(2)  で提供される別のシグナル・スタックでシグナルハンドラを呼び"
4493 "出す。 別のシグナル・スタックが利用可能でなければ、デフォルトのスタックが 使"
4494 "用される。 このフラグはシグナルハンドラを設定する際にのみ意味を持つ。"
4495
4496 #. type: TP
4497 #: build/C/man2/sigaction.2:226
4498 #, no-wrap
4499 msgid "B<SA_RESETHAND>"
4500 msgstr "B<SA_RESETHAND>"
4501
4502 #. type: Plain text
4503 #: build/C/man2/sigaction.2:232
4504 msgid ""
4505 "Restore the signal action to the default upon entry to the signal handler.  "
4506 "This flag is only meaningful when establishing a signal handler.  "
4507 "B<SA_ONESHOT> is an obsolete, nonstandard synonym for this flag."
4508 msgstr "シグナルハンドラを設定する際に、シグナルの動作をデフォルトに戻す。 このフラグはシグナルハンドラを設定する際にのみ意味を持つ。 B<SA_ONESHOT> はこのフラグと同じ意味だが、廃止されており、非標準である。"
4509
4510 #. type: TP
4511 #: build/C/man2/sigaction.2:232
4512 #, no-wrap
4513 msgid "B<SA_RESTART>"
4514 msgstr "B<SA_RESTART>"
4515
4516 #. type: Plain text
4517 #: build/C/man2/sigaction.2:240
4518 msgid ""
4519 "Provide behavior compatible with BSD signal semantics by making certain "
4520 "system calls restartable across signals.  This flag is only meaningful when "
4521 "establishing a signal handler.  See B<signal>(7)  for a discussion of system "
4522 "call restarting."
4523 msgstr ""
4524 "いくつかのシステムコールをシグナルの通知の前後で再開できるようにして、 BSD シ"
4525 "グナル方式 (semantics) と互換性のある動作を提供する。 このフラグはシグナルハ"
4526 "ンドラを設定する際にのみ意味を持つ。 B<signal>(7)  に書かれているシステムコー"
4527 "ルの再開に関する議論を参照のこと。"
4528
4529 #. type: TP
4530 #: build/C/man2/sigaction.2:240
4531 #, no-wrap
4532 msgid "B<SA_SIGINFO> (since Linux 2.2)"
4533 msgstr "B<SA_SIGINFO> (Linux 2.2 以降)"
4534
4535 #.  (The
4536 #.  .I sa_sigaction
4537 #.  field was added in Linux 2.1.86.)
4538 #. type: Plain text
4539 #: build/C/man2/sigaction.2:251
4540 msgid ""
4541 "The signal handler takes three arguments, not one.  In this case, "
4542 "I<sa_sigaction> should be set instead of I<sa_handler>.  This flag is only "
4543 "meaningful when establishing a signal handler."
4544 msgstr ""
4545 "シグナルハンドラは一つではなく、三つの引き数を持つ。この場合は I<sa_handler> "
4546 "のかわりに I<sa_sigaction> を設定しなければならない このフラグはシグナルハン"
4547 "ドラを設定する際にのみ意味を持つ。"
4548
4549 #. type: Plain text
4550 #: build/C/man2/sigaction.2:258
4551 msgid ""
4552 "The I<siginfo_t> argument to I<sa_sigaction> is a struct with the following "
4553 "elements:"
4554 msgstr ""
4555 "I<sa_sigaction> のパラメータ I<siginfo_t> は以下の要素を持つ構造体である:"
4556
4557 #.  FIXME
4558 #.  si_trapno seems to be only used on SPARC and Alpha;
4559 #.  this page could use a little more detail on its purpose there.
4560 #.  In the kernel: si_tid
4561 #. type: Plain text
4562 #: build/C/man2/sigaction.2:289
4563 #, no-wrap
4564 msgid ""
4565 "siginfo_t {\n"
4566 "    int      si_signo;    /* Signal number */\n"
4567 "    int      si_errno;    /* An errno value */\n"
4568 "    int      si_code;     /* Signal code */\n"
4569 "    int      si_trapno;   /* Trap number that caused\n"
4570 "                             hardware-generated signal\n"
4571 "                             (unused on most architectures) */\n"
4572 "    pid_t    si_pid;      /* Sending process ID */\n"
4573 "    uid_t    si_uid;      /* Real user ID of sending process */\n"
4574 "    int      si_status;   /* Exit value or signal */\n"
4575 "    clock_t  si_utime;    /* User time consumed */\n"
4576 "    clock_t  si_stime;    /* System time consumed */\n"
4577 "    sigval_t si_value;    /* Signal value */\n"
4578 "    int      si_int;      /* POSIX.1b signal */\n"
4579 "    void    *si_ptr;      /* POSIX.1b signal */\n"
4580 "    int      si_overrun;  /* Timer overrun count; POSIX.1b timers */\n"
4581 "    int      si_timerid;  /* Timer ID; POSIX.1b timers */\n"
4582 "    void    *si_addr;     /* Memory location which caused fault */\n"
4583 "    long     si_band;     /* Band event (was I<int> in\n"
4584 "                             glibc 2.3.2 and earlier) */\n"
4585 "    int      si_fd;       /* File descriptor */\n"
4586 "    short    si_addr_lsb; /* Least significant bit of address\n"
4587 "                             (since kernel 2.6.32) */\n"
4588 "}\n"
4589 msgstr ""
4590 "siginfo_t {\n"
4591 "    int      si_signo;    /* Signal number */\n"
4592 "    int      si_errno;    /* An errno value */\n"
4593 "    int      si_code;     /* Signal code */\n"
4594 "    int      si_trapno;   /* Trap number that caused\n"
4595 "                             hardware-generated signal\n"
4596 "                             (unused on most architectures) */\n"
4597 "    pid_t    si_pid;      /* Sending process ID */\n"
4598 "    uid_t    si_uid;      /* Real user ID of sending process */\n"
4599 "    int      si_status;   /* Exit value or signal */\n"
4600 "    clock_t  si_utime;    /* User time consumed */\n"
4601 "    clock_t  si_stime;    /* System time consumed */\n"
4602 "    sigval_t si_value;    /* Signal value */\n"
4603 "    int      si_int;      /* POSIX.1b signal */\n"
4604 "    void    *si_ptr;      /* POSIX.1b signal */\n"
4605 "    int      si_overrun;  /* Timer overrun count; POSIX.1b timers */\n"
4606 "    int      si_timerid;  /* Timer ID; POSIX.1b timers */\n"
4607 "    void    *si_addr;     /* Memory location which caused fault */\n"
4608 "    long     si_band;     /* Band event (was I<int> in\n"
4609 "                             glibc 2.3.2 and earlier) */\n"
4610 "    int      si_fd;       /* File descriptor */\n"
4611 "    short    si_addr_lsb; /* Least significant bit of address\n"
4612 "                             (since kernel 2.6.32) */\n"
4613 "}\n"
4614
4615 #. type: Plain text
4616 #: build/C/man2/sigaction.2:298
4617 msgid ""
4618 "I<si_signo>, I<si_errno> and I<si_code> are defined for all signals.  "
4619 "(I<si_errno> is generally unused on Linux.)  The rest of the struct may be a "
4620 "union, so that one should only read the fields that are meaningful for the "
4621 "given signal:"
4622 msgstr ""
4623 "I<si_signo>, I<si_errno>, I<si_code> は全てのシグナルに対して定義されている "
4624 "(I<si_errno> は Linux では一般的には使用されない)。 構造体の残りの部分は、共"
4625 "用体 (union) になっているかもしれない。 その場合は該当するシグナルにおいて意"
4626 "味のあるフィールドのみを読み込む ことができる。"
4627
4628 #. type: Plain text
4629 #: build/C/man2/sigaction.2:313
4630 msgid ""
4631 "Signals sent with B<kill>(2)  and B<sigqueue>(3)  fill in I<si_pid> and "
4632 "I<si_uid>.  In addition, signals sent with B<sigqueue>(3)  fill in I<si_int> "
4633 "and I<si_ptr> with the values specified by the sender of the signal; see "
4634 "B<sigqueue>(3)  for more details."
4635 msgstr ""
4636
4637 #. type: Plain text
4638 #: build/C/man2/sigaction.2:329
4639 msgid ""
4640 "Signals sent by POSIX.1b timers (since Linux 2.6) fill in I<si_overrun> and "
4641 "I<si_timerid>.  The I<si_timerid> field is an internal ID used by the kernel "
4642 "to identify the timer; it is not the same as the timer ID returned by "
4643 "B<timer_create>(2).  The I<si_overrun> field is the timer overrun count; "
4644 "this is the same information as is obtained by a call to B<timer_getoverrun>"
4645 "(2).  These fields are nonstandard Linux extensions."
4646 msgstr ""
4647 "POSIX.1b タイマ (Linux 2.6 以降) は I<si_overrun> と I<si_timerid> を\n"
4648 "設定する。 I<si_timerid> フィールドはカーネルがタイマを特定するのに\n"
4649 "使用する内部 ID であり、 B<timer_create>(2) が返すタイマ ID と同じではな"
4650 "い。\n"
4651 "I<si_overrun> フィールドはタイマが回り切った回数である。\n"
4652 "これは B<timer_getoverrun>(2) の呼び出しで取得できる情報と同じである。\n"
4653 "これらのフィールドは非標準で Linux による拡張である。"
4654
4655 #. type: Plain text
4656 #: build/C/man2/sigaction.2:344
4657 msgid ""
4658 "Signals sent for message queue notification (see the description of "
4659 "B<SIGEV_SIGNAL> in B<mq_notify>(3))  fill in I<si_int>/I<si_ptr>, with the "
4660 "I<sigev_value> supplied to B<mq_notify>(3); I<si_pid>, with the process ID "
4661 "of the message sender; and I<si_uid>, with the real user ID of the message "
4662 "sender."
4663 msgstr ""
4664
4665 #.  FIXME .
4666 #.  When si_utime and si_stime where originally implemented, the
4667 #.  measurement unit was HZ, which was the same as clock ticks
4668 #.  (sysconf(_SC_CLK_TCK)).  In 2.6, HZ became configurable, and
4669 #.  was *still* used as the unit to return the info these fields,
4670 #.  with the result that the field values depended on the the
4671 #.  configured HZ.  Of course, the should have been measured in
4672 #.  USER_HZ instead, so that sysconf(_SC_CLK_TCK) could be used to
4673 #.  convert to seconds.  I have a queued patch to fix this:
4674 #.  http://thread.gmane.org/gmane.linux.kernel/698061/ .
4675 #.  This patch made it into 2.6.27.
4676 #.  But note that these fields still don't return the times of
4677 #.  waited-for children (as is done by getrusage() and times()
4678 #.  and wait4()).  Solaris 8 does include child times.
4679 #. type: Plain text
4680 #: build/C/man2/sigaction.2:391
4681 msgid ""
4682 "B<SIGCHLD> fills in I<si_pid>, I<si_uid>, I<si_status>, I<si_utime> and "
4683 "I<si_stime>, providing information about the child.  The I<si_pid> field is "
4684 "the process ID of the child; I<si_uid> is the child's real user ID.  The "
4685 "I<si_status> field contains the exit status of the child (if I<si_code> is "
4686 "B<CLD_EXITED>), or the signal number that caused the process to change "
4687 "state.  The I<si_utime> and I<si_stime> contain the user and system CPU time "
4688 "used by the child process; these fields do not include the times used by "
4689 "waited-for children (unlike B<getrusage>(2)  and B<time>(2)).  In kernels up "
4690 "to 2.6, and since 2.6.27, these fields report CPU time in units of I<sysconf"
4691 "(_SC_CLK_TCK)>.  In 2.6 kernels before 2.6.27, a bug meant that these fields "
4692 "reported time in units of the (configurable) system jiffy (see B<time>(7))."
4693 msgstr ""
4694 "B<SIGCHLD> は I<si_pid>, I<si_uid>, I<si_status>, I<si_utime>,\n"
4695 "I<si_stime> を設定し、子プロセスに関する情報を提供する。\n"
4696 "I<si_pid> フィールドは子プロセスのプロセス ID で、\n"
4697 "I<si_uid> フィールドは子プロセスの実ユーザ ID である。\n"
4698 "I<si_stime> フィールドには、 (I<si_code> が B<CLD_EXITED> の場合は) \n"
4699 "子プロセスの終了ステータスが、それ以外の場合は状態が変化する原因と\n"
4700 "なったシグナル番号が格納される。\n"
4701 "I<si_utime> と I<si_stime> には子プロセスが使用したユーザ CPU 時間とシ\n"
4702 "ステム CPU 時間がそれぞれ格納される。(B<getrusage>(2) や B<time>(2) と\n"
4703 "異なり) これらのフィールドには wait 待ちの子プロセスにより使用された時\n"
4704 "間は含まれない。 2.6 より前と 2.6.27 以降のカーネルでは、 これらのフィー\n"
4705 "ルドに格納される CPU 時間の単位は I<sysconf(_SC_CLK_TCK)> である。\n"
4706 "2.6.27 より前の 2.6 系のカーネルでは、バグがあり、 これらのフィールドの\n"
4707 "CPU 時間の単位が (カーネルのコンフィグで指定される) システムの jiffy で\n"
4708 "あった (B<time>(7) 参照)。"
4709
4710 #.  FIXME SIGTRAP also sets the following for ptrace_notify() ?
4711 #.      info.si_code = exit_code;
4712 #.      info.si_pid = task_pid_vnr(current);
4713 #.      info.si_uid = current_uid();  /* Real UID */
4714 #. type: Plain text
4715 #: build/C/man2/sigaction.2:427
4716 msgid ""
4717 "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, and B<SIGTRAP> fill in "
4718 "I<si_addr> with the address of the fault.  On some architectures, these "
4719 "signals also fill in the I<si_trapno> filed.  Some suberrors of B<SIGBUS>, "
4720 "in particular B<BUS_MCEERR_AO> and B<BUS_MCEERR_AR>, also fill in "
4721 "I<si_addr_lsb>.  This field indicates the least significant bit of the "
4722 "reported address and therefore the extent of the corruption.  For example, "
4723 "if a full page was corrupted, I<si_addr_lsb> contains I<log2(sysconf"
4724 "(_SC_PAGESIZE))>.  B<BUS_MCERR_*> and I<si_addr_lsb> are Linux-specific "
4725 "extensions."
4726 msgstr ""
4727
4728 #. type: Plain text
4729 #: build/C/man2/sigaction.2:441
4730 msgid ""
4731 "B<SIGIO>/B<SIGPOLL> (the two names are synonyms on Linux)  fills in "
4732 "I<si_band> and I<si_fd>.  The I<si_band> event is a bit mask containing the "
4733 "same values as are filled in the I<revents> field by B<poll>(2).  The "
4734 "I<si_fd> field indicates the file descriptor for which the I/O event "
4735 "occurred."
4736 msgstr ""
4737
4738 #. type: Plain text
4739 #: build/C/man2/sigaction.2:448
4740 msgid ""
4741 "I<si_code> is a value (not a bit mask)  indicating why this signal was "
4742 "sent.  The following list shows the values which can be placed in I<si_code> "
4743 "for any signal, along with reason that the signal was generated."
4744 msgstr ""
4745 "I<si_code> は、そのシグナルが送信された理由を示す値である (ビットマスクではな"
4746 "い)。 以下のリストに、どのシグナルの場合でも I<si_code> に入りうる値を、シグ"
4747 "ナルが生成された理由とともに記載する。"
4748
4749 #. type: TP
4750 #: build/C/man2/sigaction.2:449
4751 #, no-wrap
4752 msgid "B<SI_USER>"
4753 msgstr "B<SI_USER>"
4754
4755 #. type: TP
4756 #: build/C/man2/sigaction.2:452 build/C/man7/signal.7:111
4757 #, no-wrap
4758 msgid "B<kill>(2)"
4759 msgstr "B<kill>(2)"
4760
4761 #. type: TP
4762 #: build/C/man2/sigaction.2:452
4763 #, no-wrap
4764 msgid "B<SI_KERNEL>"
4765 msgstr "B<SI_KERNEL>"
4766
4767 #. type: Plain text
4768 #: build/C/man2/sigaction.2:455
4769 msgid "Sent by the kernel."
4770 msgstr "カーネルにより送信された"
4771
4772 #. type: TP
4773 #: build/C/man2/sigaction.2:455
4774 #, no-wrap
4775 msgid "B<SI_QUEUE>"
4776 msgstr "B<SI_QUEUE>"
4777
4778 #. type: TP
4779 #: build/C/man2/sigaction.2:458 build/C/man7/signal.7:128
4780 #, no-wrap
4781 msgid "B<sigqueue>(3)"
4782 msgstr "B<sigqueue>(3)"
4783
4784 #. type: TP
4785 #: build/C/man2/sigaction.2:458
4786 #, no-wrap
4787 msgid "B<SI_TIMER>"
4788 msgstr "B<SI_TIMER>"
4789
4790 #. type: Plain text
4791 #: build/C/man2/sigaction.2:461
4792 msgid "POSIX timer expired"
4793 msgstr "POSIX タイマが満了した"
4794
4795 #. type: TP
4796 #: build/C/man2/sigaction.2:461
4797 #, no-wrap
4798 msgid "B<SI_MESGQ>"
4799 msgstr "B<SI_MESGQ>"
4800
4801 #. type: Plain text
4802 #: build/C/man2/sigaction.2:465
4803 msgid ""
4804 "POSIX message queue state changed (since Linux 2.6.6); see B<mq_notify>(3)"
4805 msgstr ""
4806 "POSIX メッセージキューの状態が変化した (Linux 2.6.6 以降)。 B<mq_notify>(3)B<"
4807 "参照。>"
4808
4809 #. type: TP
4810 #: build/C/man2/sigaction.2:465
4811 #, no-wrap
4812 msgid "B<SI_ASYNCIO>"
4813 msgstr "B<SI_ASYNCIO>"
4814
4815 #. type: Plain text
4816 #: build/C/man2/sigaction.2:468
4817 msgid "AIO completed"
4818 msgstr "非同期 IO (AIO) が完了した"
4819
4820 #. type: TP
4821 #: build/C/man2/sigaction.2:468
4822 #, no-wrap
4823 msgid "B<SI_SIGIO>"
4824 msgstr "B<SI_SIGIO>"
4825
4826 #. type: Plain text
4827 #: build/C/man2/sigaction.2:477
4828 msgid ""
4829 "Queued B<SIGIO> (only in kernels up to Linux 2.2; from Linux 2.4 onward "
4830 "B<SIGIO>/B<SIGPOLL> fills in I<si_code> as described below)."
4831 msgstr ""
4832
4833 #. type: TP
4834 #: build/C/man2/sigaction.2:477
4835 #, no-wrap
4836 msgid "B<SI_TKILL>"
4837 msgstr "B<SI_TKILL>"
4838
4839 #.  SI_DETHREAD is defined in 2.6.9 sources, but isn't implemented
4840 #.  It appears to have been an idea that was tried during 2.5.6
4841 #.  through to 2.5.24 and then was backed out.
4842 #. type: Plain text
4843 #: build/C/man2/sigaction.2:486
4844 msgid "B<tkill>(2)  or B<tgkill>(2)  (since Linux 2.4.19)"
4845 msgstr "B<tkill>(2)  または B<tgkill>(2)  (Linux 2.4.19 以降)"
4846
4847 #. type: Plain text
4848 #: build/C/man2/sigaction.2:493
4849 msgid ""
4850 "The following values can be placed in I<si_code> for a B<SIGILL> signal:"
4851 msgstr "B<SIGILL> シグナルの場合、 I<si_code> には以下の値を指定できる:"
4852
4853 #. type: TP
4854 #: build/C/man2/sigaction.2:494
4855 #, no-wrap
4856 msgid "B<ILL_ILLOPC>"
4857 msgstr "B<ILL_ILLOPC>"
4858
4859 #. type: Plain text
4860 #: build/C/man2/sigaction.2:497
4861 msgid "illegal opcode"
4862 msgstr "不正な命令コード (opcode)"
4863
4864 #. type: TP
4865 #: build/C/man2/sigaction.2:497
4866 #, no-wrap
4867 msgid "B<ILL_ILLOPN>"
4868 msgstr "B<ILL_ILLOPN>"
4869
4870 #. type: Plain text
4871 #: build/C/man2/sigaction.2:500
4872 msgid "illegal operand"
4873 msgstr "不正なオペランド"
4874
4875 #. type: TP
4876 #: build/C/man2/sigaction.2:500
4877 #, no-wrap
4878 msgid "B<ILL_ILLADR>"
4879 msgstr "B<ILL_ILLADR>"
4880
4881 #. type: Plain text
4882 #: build/C/man2/sigaction.2:503
4883 msgid "illegal addressing mode"
4884 msgstr "不正なアドレッシングモード"
4885
4886 #. type: TP
4887 #: build/C/man2/sigaction.2:503
4888 #, no-wrap
4889 msgid "B<ILL_ILLTRP>"
4890 msgstr "B<ILL_ILLTRP>"
4891
4892 #. type: Plain text
4893 #: build/C/man2/sigaction.2:506
4894 msgid "illegal trap"
4895 msgstr "不正なトラップ"
4896
4897 #. type: TP
4898 #: build/C/man2/sigaction.2:506
4899 #, no-wrap
4900 msgid "B<ILL_PRVOPC>"
4901 msgstr "B<ILL_PRVOPC>"
4902
4903 #. type: Plain text
4904 #: build/C/man2/sigaction.2:509
4905 msgid "privileged opcode"
4906 msgstr "特権が必要な命令コード (opcode)"
4907
4908 #. type: TP
4909 #: build/C/man2/sigaction.2:509
4910 #, no-wrap
4911 msgid "B<ILL_PRVREG>"
4912 msgstr "B<ILL_PRVREG>"
4913
4914 #. type: Plain text
4915 #: build/C/man2/sigaction.2:512
4916 msgid "privileged register"
4917 msgstr "特権が必要なレジスタ"
4918
4919 #. type: TP
4920 #: build/C/man2/sigaction.2:512
4921 #, no-wrap
4922 msgid "B<ILL_COPROC>"
4923 msgstr "B<ILL_COPROC>"
4924
4925 #. type: Plain text
4926 #: build/C/man2/sigaction.2:515
4927 msgid "coprocessor error"
4928 msgstr "コプロセッサのエラー"
4929
4930 #. type: TP
4931 #: build/C/man2/sigaction.2:515
4932 #, no-wrap
4933 msgid "B<ILL_BADSTK>"
4934 msgstr "B<ILL_BADSTK>"
4935
4936 #. type: Plain text
4937 #: build/C/man2/sigaction.2:518
4938 msgid "internal stack error"
4939 msgstr "内部スタックエラー"
4940
4941 #. type: Plain text
4942 #: build/C/man2/sigaction.2:525
4943 msgid ""
4944 "The following values can be placed in I<si_code> for a B<SIGFPE> signal:"
4945 msgstr "B<SIGFPE> シグナルの場合、 I<si_code> には以下の値を指定できる:"
4946
4947 #. type: TP
4948 #: build/C/man2/sigaction.2:526
4949 #, no-wrap
4950 msgid "B<FPE_INTDIV>"
4951 msgstr "B<FPE_INTDIV>"
4952
4953 #. type: Plain text
4954 #: build/C/man2/sigaction.2:529
4955 msgid "integer divide by zero"
4956 msgstr "整数の 0 による除算"
4957
4958 #. type: TP
4959 #: build/C/man2/sigaction.2:529
4960 #, no-wrap
4961 msgid "B<FPE_INTOVF>"
4962 msgstr "B<FPE_INTOVF>"
4963
4964 #. type: Plain text
4965 #: build/C/man2/sigaction.2:532
4966 msgid "integer overflow"
4967 msgstr "整数のオーバーフロー"
4968
4969 #. type: TP
4970 #: build/C/man2/sigaction.2:532
4971 #, no-wrap
4972 msgid "B<FPE_FLTDIV>"
4973 msgstr "B<FPE_FLTDIV>"
4974
4975 #. type: Plain text
4976 #: build/C/man2/sigaction.2:535
4977 msgid "floating-point divide by zero"
4978 msgstr "浮動小数点の 0 による除算"
4979
4980 #. type: TP
4981 #: build/C/man2/sigaction.2:535
4982 #, no-wrap
4983 msgid "B<FPE_FLTOVF>"
4984 msgstr "B<FPE_FLTOVF>"
4985
4986 #. type: Plain text
4987 #: build/C/man2/sigaction.2:538
4988 msgid "floating-point overflow"
4989 msgstr "浮動小数点のオーバーフロー"
4990
4991 #. type: TP
4992 #: build/C/man2/sigaction.2:538
4993 #, no-wrap
4994 msgid "B<FPE_FLTUND>"
4995 msgstr "B<FPE_FLTUND>"
4996
4997 #. type: Plain text
4998 #: build/C/man2/sigaction.2:541
4999 msgid "floating-point underflow"
5000 msgstr "浮動小数点のアンダーフロー"
5001
5002 #. type: TP
5003 #: build/C/man2/sigaction.2:541
5004 #, no-wrap
5005 msgid "B<FPE_FLTRES>"
5006 msgstr "B<FPE_FLTRES>"
5007
5008 #. type: Plain text
5009 #: build/C/man2/sigaction.2:544
5010 msgid "floating-point inexact result"
5011 msgstr "浮動小数点の不正確な演算結果 (inexact result)"
5012
5013 #. type: TP
5014 #: build/C/man2/sigaction.2:544
5015 #, no-wrap
5016 msgid "B<FPE_FLTINV>"
5017 msgstr "B<FPE_FLTINV>"
5018
5019 #. type: Plain text
5020 #: build/C/man2/sigaction.2:547
5021 msgid "floating-point invalid operation"
5022 msgstr "浮動小数点の不正な操作"
5023
5024 #. type: TP
5025 #: build/C/man2/sigaction.2:547
5026 #, no-wrap
5027 msgid "B<FPE_FLTSUB>"
5028 msgstr "B<FPE_FLTSUB>"
5029
5030 #. type: Plain text
5031 #: build/C/man2/sigaction.2:550
5032 msgid "subscript out of range"
5033 msgstr "範囲外の添字 (subscript)"
5034
5035 #. type: Plain text
5036 #: build/C/man2/sigaction.2:557
5037 msgid ""
5038 "The following values can be placed in I<si_code> for a B<SIGSEGV> signal:"
5039 msgstr "B<SIGSEGV> シグナルの場合、 I<si_code> には以下の値を指定できる:"
5040
5041 #. type: TP
5042 #: build/C/man2/sigaction.2:558
5043 #, no-wrap
5044 msgid "B<SEGV_MAPERR>"
5045 msgstr "B<SEGV_MAPERR>"
5046
5047 #. type: Plain text
5048 #: build/C/man2/sigaction.2:561
5049 msgid "address not mapped to object"
5050 msgstr "オブジェクトにマッピングされていないアドレス"
5051
5052 #. type: TP
5053 #: build/C/man2/sigaction.2:561
5054 #, no-wrap
5055 msgid "B<SEGV_ACCERR>"
5056 msgstr "B<SEGV_ACCERR>"
5057
5058 #. type: Plain text
5059 #: build/C/man2/sigaction.2:564
5060 msgid "invalid permissions for mapped object"
5061 msgstr "マッピングされたオブジェクトに対するアクセス許可がない"
5062
5063 #. type: Plain text
5064 #: build/C/man2/sigaction.2:571
5065 msgid ""
5066 "The following values can be placed in I<si_code> for a B<SIGBUS> signal:"
5067 msgstr "B<SIGBUS> シグナルの場合、 I<si_code> には以下の値を指定できる:"
5068
5069 #. type: TP
5070 #: build/C/man2/sigaction.2:572
5071 #, no-wrap
5072 msgid "B<BUS_ADRALN>"
5073 msgstr "B<BUS_ADRALN>"
5074
5075 #. type: Plain text
5076 #: build/C/man2/sigaction.2:575
5077 msgid "invalid address alignment"
5078 msgstr "不正なアドレス・アライメント (alignment)"
5079
5080 #. type: TP
5081 #: build/C/man2/sigaction.2:575
5082 #, no-wrap
5083 msgid "B<BUS_ADRERR>"
5084 msgstr "B<BUS_ADRERR>"
5085
5086 #. type: Plain text
5087 #: build/C/man2/sigaction.2:578
5088 msgid "nonexistent physical address"
5089 msgstr "存在しない物理アドレス"
5090
5091 #. type: TP
5092 #: build/C/man2/sigaction.2:578
5093 #, no-wrap
5094 msgid "B<BUS_OBJERR>"
5095 msgstr "B<BUS_OBJERR>"
5096
5097 #. type: Plain text
5098 #: build/C/man2/sigaction.2:581
5099 msgid "object-specific hardware error"
5100 msgstr "オブジェクト固有のハードウェアエラー"
5101
5102 #. type: TP
5103 #: build/C/man2/sigaction.2:581
5104 #, no-wrap
5105 msgid "B<BUS_MCEERR_AR> (since Linux 2.6.32)"
5106 msgstr "B<BUS_MCEERR_AR> (Linux 2.6.32 以降)"
5107
5108 #. type: Plain text
5109 #: build/C/man2/sigaction.2:584
5110 msgid "Hardware memory error consumed on a machine check; action required."
5111 msgstr ""
5112
5113 #. type: TP
5114 #: build/C/man2/sigaction.2:584
5115 #, no-wrap
5116 msgid "B<BUS_MCEERR_AO> (since Linux 2.6.32)"
5117 msgstr "B<BUS_MCEERR_AO> (Linux 2.6.32  以降)"
5118
5119 #. type: Plain text
5120 #: build/C/man2/sigaction.2:587
5121 msgid ""
5122 "Hardware memory error detected in process but not consumed; action optional."
5123 msgstr ""
5124
5125 #. type: Plain text
5126 #: build/C/man2/sigaction.2:594
5127 msgid ""
5128 "The following values can be placed in I<si_code> for a B<SIGTRAP> signal:"
5129 msgstr "B<SIGTRAP> シグナルの場合、 I<si_code> には以下の値を指定できる:"
5130
5131 #. type: TP
5132 #: build/C/man2/sigaction.2:595
5133 #, no-wrap
5134 msgid "B<TRAP_BRKPT>"
5135 msgstr "B<TRAP_BRKPT>"
5136
5137 #. type: Plain text
5138 #: build/C/man2/sigaction.2:598
5139 msgid "process breakpoint"
5140 msgstr "プロセスのブレークポイント"
5141
5142 #. type: TP
5143 #: build/C/man2/sigaction.2:598
5144 #, no-wrap
5145 msgid "B<TRAP_TRACE>"
5146 msgstr "B<TRAP_TRACE>"
5147
5148 #. type: Plain text
5149 #: build/C/man2/sigaction.2:601
5150 msgid "process trace trap"
5151 msgstr "プロセスのトレース・トラップ"
5152
5153 #. type: TP
5154 #: build/C/man2/sigaction.2:601
5155 #, no-wrap
5156 msgid "B<TRAP_BRANCH> (since Linux 2.4)"
5157 msgstr "B<TRAP_BRANCH> (Linux 2.4 以降)"
5158
5159 #. type: Plain text
5160 #: build/C/man2/sigaction.2:604
5161 msgid "process taken branch trap"
5162 msgstr ""
5163
5164 #. type: TP
5165 #: build/C/man2/sigaction.2:604
5166 #, no-wrap
5167 msgid "B<TRAP_HWBKPT> (since Linux 2.4)"
5168 msgstr "B<TRAP_HWBKPT> (Linux 2.4 以降)"
5169
5170 #. type: Plain text
5171 #: build/C/man2/sigaction.2:607
5172 msgid "hardware breakpoint/watchpoint"
5173 msgstr ""
5174
5175 #. type: Plain text
5176 #: build/C/man2/sigaction.2:614
5177 msgid ""
5178 "The following values can be placed in I<si_code> for a B<SIGCHLD> signal:"
5179 msgstr "B<SIGCHLD> シグナルの場合、 I<si_code> には以下の値を指定できる:"
5180
5181 #. type: TP
5182 #: build/C/man2/sigaction.2:615
5183 #, no-wrap
5184 msgid "B<CLD_EXITED>"
5185 msgstr "B<CLD_EXITED>"
5186
5187 #. type: Plain text
5188 #: build/C/man2/sigaction.2:618
5189 msgid "child has exited"
5190 msgstr "子プロセスが終了した (exited)"
5191
5192 #. type: TP
5193 #: build/C/man2/sigaction.2:618
5194 #, no-wrap
5195 msgid "B<CLD_KILLED>"
5196 msgstr "B<CLD_KILLED>"
5197
5198 #. type: Plain text
5199 #: build/C/man2/sigaction.2:621
5200 msgid "child was killed"
5201 msgstr "子プロセスが kill された"
5202
5203 #. type: TP
5204 #: build/C/man2/sigaction.2:621
5205 #, no-wrap
5206 msgid "B<CLD_DUMPED>"
5207 msgstr "B<CLD_DUMPED>"
5208
5209 #. type: Plain text
5210 #: build/C/man2/sigaction.2:624
5211 msgid "child terminated abnormally"
5212 msgstr "子プロセスが異常終了した"
5213
5214 #. type: TP
5215 #: build/C/man2/sigaction.2:624
5216 #, no-wrap
5217 msgid "B<CLD_TRAPPED>"
5218 msgstr "B<CLD_TRAPPED>"
5219
5220 #. type: Plain text
5221 #: build/C/man2/sigaction.2:627
5222 msgid "traced child has trapped"
5223 msgstr "トレース対象の子プロセスがトラップを上げた"
5224
5225 #. type: TP
5226 #: build/C/man2/sigaction.2:627
5227 #, no-wrap
5228 msgid "B<CLD_STOPPED>"
5229 msgstr "B<CLD_STOPPED>"
5230
5231 #. type: Plain text
5232 #: build/C/man2/sigaction.2:630
5233 msgid "child has stopped"
5234 msgstr "子プロセスが停止 (stop) した"
5235
5236 #. type: TP
5237 #: build/C/man2/sigaction.2:630
5238 #, no-wrap
5239 msgid "B<CLD_CONTINUED>"
5240 msgstr "B<CLD_CONTINUED>"
5241
5242 #. type: Plain text
5243 #: build/C/man2/sigaction.2:633
5244 msgid "stopped child has continued (since Linux 2.6.9)"
5245 msgstr "停止していた子プロセスが再開した (Linux 2.6.9 以降)"
5246
5247 #. type: Plain text
5248 #: build/C/man2/sigaction.2:640
5249 msgid ""
5250 "The following values can be placed in I<si_code> for a B<SIGIO>/B<SIGPOLL> "
5251 "signal:"
5252 msgstr ""
5253 "B<SIGIO>/B<SIGPOLL> シグナルの場合、 I<si_code> には以下の値を\n"
5254 "指定できる:"
5255
5256 #. type: TP
5257 #: build/C/man2/sigaction.2:641
5258 #, no-wrap
5259 msgid "B<POLL_IN>"
5260 msgstr "B<POLL_IN>"
5261
5262 #. type: Plain text
5263 #: build/C/man2/sigaction.2:644
5264 msgid "data input available"
5265 msgstr "入力データが利用可能"
5266
5267 #. type: TP
5268 #: build/C/man2/sigaction.2:644
5269 #, no-wrap
5270 msgid "B<POLL_OUT>"
5271 msgstr "B<POLL_OUT>"
5272
5273 #. type: Plain text
5274 #: build/C/man2/sigaction.2:647
5275 msgid "output buffers available"
5276 msgstr "出力バッファが利用可能"
5277
5278 #. type: TP
5279 #: build/C/man2/sigaction.2:647
5280 #, no-wrap
5281 msgid "B<POLL_MSG>"
5282 msgstr "B<POLL_MSG>"
5283
5284 #. type: Plain text
5285 #: build/C/man2/sigaction.2:650
5286 msgid "input message available"
5287 msgstr "入力メッセージが利用可能"
5288
5289 #. type: TP
5290 #: build/C/man2/sigaction.2:650
5291 #, no-wrap
5292 msgid "B<POLL_ERR>"
5293 msgstr "B<POLL_ERR>"
5294
5295 #. type: Plain text
5296 #: build/C/man2/sigaction.2:653
5297 msgid "I/O error"
5298 msgstr "I/O エラー"
5299
5300 #. type: TP
5301 #: build/C/man2/sigaction.2:653
5302 #, no-wrap
5303 msgid "B<POLL_PRI>"
5304 msgstr "B<POLL_PRI>"
5305
5306 #. type: Plain text
5307 #: build/C/man2/sigaction.2:656
5308 msgid "high priority input available"
5309 msgstr "高優先の入力が利用可能"
5310
5311 #. type: TP
5312 #: build/C/man2/sigaction.2:656
5313 #, no-wrap
5314 msgid "B<POLL_HUP>"
5315 msgstr "B<POLL_HUP>"
5316
5317 #. type: Plain text
5318 #: build/C/man2/sigaction.2:659
5319 msgid "device disconnected"
5320 msgstr "デバイスが接続されていない"
5321
5322 #. type: Plain text
5323 #: build/C/man2/sigaction.2:663
5324 msgid "B<sigaction>()  returns 0 on success and -1 on error."
5325 msgstr "B<sigaction>()  は成功すれば 0 を返し、エラーならば -1 を返す。"
5326
5327 #. type: Plain text
5328 #: build/C/man2/sigaction.2:668
5329 msgid ""
5330 "I<act> or I<oldact> points to memory which is not a valid part of the "
5331 "process address space."
5332 msgstr ""
5333 "I<act> か I<oldact> が指しているメモリが正しいプロセスのアドレス空間にない。"
5334
5335 #. type: Plain text
5336 #: build/C/man2/sigaction.2:675
5337 msgid ""
5338 "An invalid signal was specified.  This will also be generated if an attempt "
5339 "is made to change the action for B<SIGKILL> or B<SIGSTOP>, which cannot be "
5340 "caught or ignored."
5341 msgstr ""
5342 "無効なシグナルが指定された。補足 (catch) したり無視したりできない シグナルで"
5343 "ある B<SIGKILL> や B<SIGSTOP> に対する動作を変更しようとした場合にも発生す"
5344 "る。"
5345
5346 #.  SVr4 does not document the EINTR condition.
5347 #. type: Plain text
5348 #: build/C/man2/sigaction.2:678
5349 msgid "POSIX.1-2001, SVr4."
5350 msgstr "POSIX.1-2001, SVr4."
5351
5352 #. type: Plain text
5353 #: build/C/man2/sigaction.2:686 build/C/man7/signal.7:105
5354 msgid ""
5355 "A child created via B<fork>(2)  inherits a copy of its parent's signal "
5356 "dispositions.  During an B<execve>(2), the dispositions of handled signals "
5357 "are reset to the default; the dispositions of ignored signals are left "
5358 "unchanged."
5359 msgstr ""
5360 "B<fork>(2) 経由で作成された子プロセスは、親プロセスのシグナルの処理方法の コ"
5361 "ピーを継承する。\n"
5362 "B<execve>(2) の前後で、ハンドラが設定されているシグナルの処理方法はデフォルト"
5363 "にリセットされ、\n"
5364 "無視が設定されているシグナルの処理方法は変更されずそのままとなる。"
5365
5366 #. type: Plain text
5367 #: build/C/man2/sigaction.2:704 build/C/man2/signal.2:131
5368 msgid ""
5369 "According to POSIX, the behavior of a process is undefined after it ignores "
5370 "a B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> signal that was not generated by "
5371 "B<kill>(2)  or B<raise>(3).  Integer division by zero has undefined result.  "
5372 "On some architectures it will generate a B<SIGFPE> signal.  (Also dividing "
5373 "the most negative integer by -1 may generate B<SIGFPE>.)  Ignoring this "
5374 "signal might lead to an endless loop."
5375 msgstr ""
5376 "POSIX では、 B<kill>(2)  や B<raise>(3)  で生成できないシグナル B<SIGFPE>, "
5377 "B<SIGILL>, B<SIGSEGV> を無視 (ignore) した場合、その後の動作は未定義である。 "
5378 "ゼロによる整数割り算の結果は未定義となる。 アーキテクチャーによっては、このと"
5379 "き B<SIGFPE> シグナルが生成される。 (同様に負の最大整数を -1 で割ると "
5380 "B<SIGFPE> が生成されるかもしれない)  このシグナルを無視すると無限ループに陥る"
5381 "かもしれない。"
5382
5383 #. type: Plain text
5384 #: build/C/man2/sigaction.2:721
5385 msgid ""
5386 "POSIX.1-1990 disallowed setting the action for B<SIGCHLD> to B<SIG_IGN>.  "
5387 "POSIX.1-2001 allows this possibility, so that ignoring B<SIGCHLD> can be "
5388 "used to prevent the creation of zombies (see B<wait>(2)).  Nevertheless, the "
5389 "historical BSD and System V behaviors for ignoring B<SIGCHLD> differ, so "
5390 "that the only completely portable method of ensuring that terminated "
5391 "children do not become zombies is to catch the B<SIGCHLD> signal and perform "
5392 "a B<wait>(2)  or similar."
5393 msgstr ""
5394 "POSIX.1-1990 では B<SIGCHLD> に B<SIG_IGN> を設定することを認めていない。 "
5395 "POSIX.1-2001 では認められており、 B<SIGCHLD> を無視することでゾンビプロセスの"
5396 "生成を防止することができる (B<wait>(2)  を参照)。 さらに、BSD と SystemV で"
5397 "は B<SIGCHLD> を無視した際の動作が異なっている。 そのため、完全に移植性がある"
5398 "方法で、終了した子プロセスがゾンビにならないこと を保証するには、 B<SIGCHLD> "
5399 "シグナルを補足し、 B<wait>(2)  などを実行するしかない。"
5400
5401 #. type: Plain text
5402 #: build/C/man2/sigaction.2:734
5403 msgid ""
5404 "POSIX.1-1990 only specified B<SA_NOCLDSTOP>.  POSIX.1-2001 added "
5405 "B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>, and B<SA_SIGINFO>.  Use of "
5406 "these latter values in I<sa_flags> may be less portable in applications "
5407 "intended for older UNIX implementations."
5408 msgstr ""
5409 "POSIX.1-1990 の仕様では B<SA_NOCLDSTOP> のみが定義されている。\n"
5410 "POSIX.1-2001 では B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>,\n"
5411 "B<SA_SIGINFO> が追加された。 UNIX の古い実装で動かすアプリケーションで、\n"
5412 "他の I<sa_flags> フラグを使用すると移植性が下がる。"
5413
5414 #. type: Plain text
5415 #: build/C/man2/sigaction.2:738
5416 msgid ""
5417 "The B<SA_RESETHAND> flag is compatible with the SVr4 flag of the same name."
5418 msgstr "B<SA_RESETHAND> フラグは SVr4 の同じ名前のフラグと互換性がある。"
5419
5420 #. type: Plain text
5421 #: build/C/man2/sigaction.2:748
5422 msgid ""
5423 "The B<SA_NODEFER> flag is compatible with the SVr4 flag of the same name "
5424 "under kernels 1.3.9 and newer.  On older kernels the Linux implementation "
5425 "allowed the receipt of any signal, not just the one we are installing "
5426 "(effectively overriding any I<sa_mask> settings)."
5427 msgstr ""
5428 "B<SA_NODEFER> フラグは 1.3.9 以降のカーネルでは同じ名前の SVr4 のフラグと互換"
5429 "性がある。 ぞれ以前の Linux カーネルの実装では、このフラグを設定しているシグ"
5430 "ナル だけでなく、どのシグナルでも受けることを許していた (実際には I<sa_mask> "
5431 "の設定により無効にできる)。"
5432
5433 #. type: Plain text
5434 #: build/C/man2/sigaction.2:754
5435 msgid ""
5436 "B<sigaction>()  can be called with a NULL second argument to query the "
5437 "current signal handler.  It can also be used to check whether a given signal "
5438 "is valid for the current machine by calling it with NULL second and third "
5439 "arguments."
5440 msgstr ""
5441 "B<sigaction>()  の二番目の引き数に NULL を指定して呼び出すと、現在のシグナル"
5442 "ハンドラを確認する ことができる。また、二番目と三番目の引き数を NULL にて呼び"
5443 "出すことで、 指定されたシグナルが現在のマシンで使えるかどうかチェックできる。"
5444
5445 #. type: Plain text
5446 #: build/C/man2/sigaction.2:760
5447 msgid ""
5448 "It is not possible to block B<SIGKILL> or B<SIGSTOP> (by specifying them in "
5449 "I<sa_mask>).  Attempts to do so are silently ignored."
5450 msgstr ""
5451 "B<SIGKILL> や B<SIGSTOP> を (I<sa_mask> に指定して) 禁止することはできない。 "
5452 "禁止しようとしても黙って無視される。"
5453
5454 #. type: Plain text
5455 #: build/C/man2/sigaction.2:764 build/C/man2/sigpending.2:67
5456 #: build/C/man2/sigprocmask.2:141 build/C/man2/sigsuspend.2:106
5457 msgid "See B<sigsetops>(3)  for details on manipulating signal sets."
5458 msgstr "シグナル集合の操作に関する詳細は B<sigsetops>(3)  を参照のこと。"
5459
5460 #. type: Plain text
5461 #: build/C/man2/sigaction.2:769
5462 msgid ""
5463 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
5464 "safely called inside from inside a signal handler."
5465 msgstr ""
5466 "シグナルハンドラ内から安全に呼び出すことができる、 async-signal-safe "
5467 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
5468 "照。"
5469
5470 #. type: SS
5471 #: build/C/man2/sigaction.2:769
5472 #, no-wrap
5473 msgid "Undocumented"
5474 msgstr "非公式"
5475
5476 #. type: Plain text
5477 #: build/C/man2/sigaction.2:779
5478 msgid ""
5479 "Before the introduction of B<SA_SIGINFO> it was also possible to get some "
5480 "additional information, namely by using a I<sa_handler> with second argument "
5481 "of type I<struct sigcontext>.  See the relevant Linux kernel sources for "
5482 "details.  This use is obsolete now."
5483 msgstr "B<SA_SIGINFO> が導入される前は、 I<struct sigcontext> 型の二番目の引き数と一緒に I<sa_handler> を使用することで、 いくつかの追加の情報を入手することができた。 詳細については Linux カーネルソースの関連部分を見てほしい。 現在はこの使用法は廃止されている。"
5484
5485 #. type: Plain text
5486 #: build/C/man2/sigaction.2:788
5487 msgid ""
5488 "In kernels up to and including 2.6.13, specifying B<SA_NODEFER> in "
5489 "I<sa_flags> prevents not only the delivered signal from being masked during "
5490 "execution of the handler, but also the signals specified in I<sa_mask>.  "
5491 "This bug was fixed in kernel 2.6.14."
5492 msgstr ""
5493 "2.6.13 以前のカーネルでは、 I<sa_flags> に B<SA_NODEFER> を指定した場合、 ハ"
5494 "ンドラが実行中に配送されたシグナル自身がマスクされなくなるだけでなく、 "
5495 "I<sa_mask> に指定されたシグナルもマスクされなくなる。 このバグは、カーネル "
5496 "2.6.14 で修正された。"
5497
5498 #. type: Plain text
5499 #: build/C/man2/sigaction.2:791
5500 msgid "See B<mprotect>(2)."
5501 msgstr "B<mprotect>(2)  参照。"
5502
5503 #. type: Plain text
5504 #: build/C/man2/sigaction.2:810
5505 msgid ""
5506 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaltstack>(2), "
5507 "B<signal>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
5508 "B<sigsuspend>(2), B<wait>(2), B<raise>(3), B<siginterrupt>(3), B<sigqueue>"
5509 "(3), B<sigsetops>(3), B<sigvec>(3), B<core>(5), B<signal>(7)"
5510 msgstr ""
5511 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaltstack>(2),\n"
5512 "B<signal>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2),\n"
5513 "B<sigsuspend>(2), B<wait>(2), B<raise>(3), B<siginterrupt>(3),\n"
5514 "B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), B<core>(5),\n"
5515 "B<signal>(7)"
5516
5517 #. type: TH
5518 #: build/C/man2/sigaltstack.2:27
5519 #, no-wrap
5520 msgid "SIGALTSTACK"
5521 msgstr "SIGALTSTACK"
5522
5523 #. type: TH
5524 #: build/C/man2/sigaltstack.2:27
5525 #, no-wrap
5526 msgid "2010-09-26"
5527 msgstr "2010-09-26"
5528
5529 #. type: Plain text
5530 #: build/C/man2/sigaltstack.2:30
5531 msgid "sigaltstack - set and/or get signal stack context"
5532 msgstr "sigaltstack - シグナルスタックのコンテキストを設定・取得する"
5533
5534 #. type: Plain text
5535 #: build/C/man2/sigaltstack.2:34
5536 msgid "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
5537 msgstr "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
5538
5539 #. type: Plain text
5540 #: build/C/man2/sigaltstack.2:41
5541 msgid "B<sigaltstack>():"
5542 msgstr "B<sigaltstack>():"
5543
5544 #. type: Plain text
5545 #: build/C/man2/sigaltstack.2:48 build/C/man3/siginterrupt.3:53
5546 #: build/C/man2/wait.2:78
5547 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
5548 msgstr "|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
5549
5550 #. type: Plain text
5551 #: build/C/man2/sigaltstack.2:60
5552 msgid ""
5553 "B<sigaltstack>()  allows a process to define a new alternate signal stack "
5554 "and/or retrieve the state of an existing alternate signal stack.  An "
5555 "alternate signal stack is used during the execution of a signal handler if "
5556 "the establishment of that handler (see B<sigaction>(2))  requested it."
5557 msgstr ""
5558 "B<sigaltstack>()  を使うと、 プロセスは新しい代替シグナルスタックを定義した"
5559 "り、 既存の代替シグナルスタックの状態を取得できる。 シグナルハンドラが代替シ"
5560 "グナルスタックを要求するように設定されていると (B<sigaction>(2)  参照)、ハン"
5561 "ドラの実行中はそのシグナルスタックが使われる。"
5562
5563 #. type: Plain text
5564 #: build/C/man2/sigaltstack.2:63
5565 msgid ""
5566 "The normal sequence of events for using an alternate signal stack is the "
5567 "following:"
5568 msgstr "代替シグナルスタックを使う際の一般的な手順は、以下の通りである:"
5569
5570 #. type: IP
5571 #: build/C/man2/sigaltstack.2:63 build/C/man7/signal.7:387
5572 #, no-wrap
5573 msgid "1."
5574 msgstr "1."
5575
5576 #. type: Plain text
5577 #: build/C/man2/sigaltstack.2:67
5578 msgid "Allocate an area of memory to be used for the alternate signal stack."
5579 msgstr "代替シグナルスタックで使うメモリ領域を確保する。"
5580
5581 #. type: IP
5582 #: build/C/man2/sigaltstack.2:67 build/C/man7/signal.7:391
5583 #, no-wrap
5584 msgid "2."
5585 msgstr "2."
5586
5587 #. type: Plain text
5588 #: build/C/man2/sigaltstack.2:73
5589 msgid ""
5590 "Use B<sigaltstack>()  to inform the system of the existence and location of "
5591 "the alternate signal stack."
5592 msgstr ""
5593 "B<sigaltstack>()  を使って、 代替シグナルスタックの存在と場所をシステムに知ら"
5594 "せる。"
5595
5596 #. type: IP
5597 #: build/C/man2/sigaltstack.2:73 build/C/man7/signal.7:411
5598 #, no-wrap
5599 msgid "3."
5600 msgstr "3."
5601
5602 #. type: Plain text
5603 #: build/C/man2/sigaltstack.2:80
5604 msgid ""
5605 "When establishing a signal handler using B<sigaction>(2), inform the system "
5606 "that the signal handler should be executed on the alternate signal stack by "
5607 "specifying the B<SA_ONSTACK> flag."
5608 msgstr ""
5609 "B<sigaction>(2)  を使ってシグナルハンドラを確立する際、 B<SA_ONSTACK> フラグ"
5610 "を指定することにより、 そのシグナルハンドラを代替シグナルスタック上で実行する"
5611 "ことを システムに知らせる。"
5612
5613 #. type: Plain text
5614 #: build/C/man2/sigaltstack.2:88
5615 msgid ""
5616 "The I<ss> argument is used to specify a new alternate signal stack, while "
5617 "the I<oss> argument is used to retrieve information about the currently "
5618 "established signal stack.  If we are interested in performing just one of "
5619 "these tasks then the other argument can be specified as NULL.  Each of these "
5620 "arguments is a structure of the following type:"
5621 msgstr ""
5622 "I<ss> 引き数は、新しいシグナルスタックを指定するために使う。 また I<oss> 引き"
5623 "数は、現在確立されている シグナルスタックの情報を取得するために使う。 この操"
5624 "作のうち 1 つだけを実行させるには、 使用しない引き数を NULL に指定すればよ"
5625 "い。 引き数となる構造体は、以下のような型である:"
5626
5627 #. type: Plain text
5628 #: build/C/man2/sigaltstack.2:96
5629 #, no-wrap
5630 msgid ""
5631 "typedef struct {\n"
5632 "    void  *ss_sp;     /* Base address of stack */\n"
5633 "    int    ss_flags;  /* Flags */\n"
5634 "    size_t ss_size;   /* Number of bytes in stack */\n"
5635 "} stack_t;\n"
5636 msgstr ""
5637 "typedef struct {\n"
5638 "    void  *ss_sp;     /* スタックのベースアドレス */\n"
5639 "    int    ss_flags;  /* フラグ */\n"
5640 "    size_t ss_size;   /* スタックのバイト数 */\n"
5641 "} stack_t;\n"
5642
5643 #. type: Plain text
5644 #: build/C/man2/sigaltstack.2:107
5645 msgid ""
5646 "To establish a new alternate signal stack, I<ss.ss_flags> is set to zero, "
5647 "and I<ss.ss_sp> and I<ss.ss_size> specify the starting address and size of "
5648 "the stack.  The constant B<SIGSTKSZ> is defined to be large enough to cover "
5649 "the usual size requirements for an alternate signal stack, and the constant "
5650 "B<MINSIGSTKSZ> defines the minimum size required to execute a signal handler."
5651 msgstr ""
5652 "新規の代替シグナルスタックを確立するには、 I<ss.ss_flags> を 0 に設定し、 "
5653 "I<ss.ss_sp> と I<ss.ss_size> に スタックの開始アドレスとスタックサイズを指定"
5654 "する。 定数 B<SIGSTKSZ> は、代替シグナルスタックが通常必要する サイズよりも充"
5655 "分大きく定義されている。 また定数 B<MINSIGSTKSZ> は、 シグナルハンドラの実行"
5656 "に必要な最小サイズに定義されている。"
5657
5658 #. type: Plain text
5659 #: build/C/man2/sigaltstack.2:111
5660 msgid ""
5661 "When a signal handler is invoked on the alternate stack, the kernel "
5662 "automatically aligns the address given in I<ss.ss_sp> to a suitable address "
5663 "boundary for the underlying hardware architecture."
5664 msgstr ""
5665 "代替スタックでシグナルハンドラが起動された場合には、 カーネルにより自動的に、"
5666 "I<ss.ss_sp> で指定されたアドレスは 動作しているハードウェアアーキテクチャに適"
5667 "したアドレス境界に 調整される。"
5668
5669 #. type: Plain text
5670 #: build/C/man2/sigaltstack.2:116
5671 msgid ""
5672 "To disable an existing stack, specify I<ss.ss_flags> as B<SS_DISABLE>.  In "
5673 "this case, the remaining fields in I<ss> are ignored."
5674 msgstr ""
5675 "既存のスタックを無効にするには、 I<ss.ss_flags> を B<SS_DISABLE> に指定す"
5676 "る。 この場合、I<ss> の他のフィールドは無視される。"
5677
5678 #. type: Plain text
5679 #: build/C/man2/sigaltstack.2:124
5680 msgid ""
5681 "If I<oss> is not NULL, then it is used to return information about the "
5682 "alternate signal stack which was in effect prior to the call to "
5683 "B<sigaltstack>().  The I<oss.ss_sp> and I<oss.ss_size> fields return the "
5684 "starting address and size of that stack.  The I<oss.ss_flags> may return "
5685 "either of the following values:"
5686 msgstr ""
5687 "I<oss> が NULL 以外の場合、 I<oss> に代替シグナルスタックの情報が返される。 "
5688 "これは (実質的に)  B<sigaltstack>()  の呼び出しより先に行われる。 I<oss."
5689 "ss_sp> と I<oss.ss_size> フィールドに スタックの開始アドレスとスタックサイズ"
5690 "が返される。 I<oss.ss_flags> には以下のどちらかの値が返される:"
5691
5692 #. type: TP
5693 #: build/C/man2/sigaltstack.2:124
5694 #, no-wrap
5695 msgid "B<SS_ONSTACK>"
5696 msgstr "B<SS_ONSTACK>"
5697
5698 #. type: Plain text
5699 #: build/C/man2/sigaltstack.2:130
5700 msgid ""
5701 "The process is currently executing on the alternate signal stack.  (Note "
5702 "that it is not possible to change the alternate signal stack if the process "
5703 "is currently executing on it.)"
5704 msgstr ""
5705 "プロセスが代替シグナルスタック上で実行されている (プロセスが既にそのシグナル"
5706 "スタック上で実行されている場合は、 それと同じシグナルスタックには変更できない"
5707 "点に注意すること)。"
5708
5709 #. type: TP
5710 #: build/C/man2/sigaltstack.2:130
5711 #, no-wrap
5712 msgid "B<SS_DISABLE>"
5713 msgstr "B<SS_DISABLE>"
5714
5715 #. type: Plain text
5716 #: build/C/man2/sigaltstack.2:133
5717 msgid "The alternate signal stack is currently disabled."
5718 msgstr "代替シグナルスタックが現在無効になっている。"
5719
5720 #. type: Plain text
5721 #: build/C/man2/sigaltstack.2:137
5722 msgid ""
5723 "B<sigaltstack>()  returns 0 on success, or -1 on failure with I<errno> set "
5724 "to indicate the error."
5725 msgstr ""
5726 "B<sigaltstack>()  は成功した場合 0 を返す。 失敗した場合は -1 を返して、 エ"
5727 "ラーを示す値に I<errno> を設定する。"
5728
5729 #. type: Plain text
5730 #: build/C/man2/sigaltstack.2:142
5731 msgid ""
5732 "Either I<ss> or I<oss> is not NULL and points to an area outside of the "
5733 "process's address space."
5734 msgstr ""
5735 "I<ss> または I<oss> のどちらが、NULL 以外で、 かつプロセスのアドレス空間の外"
5736 "を指している。"
5737
5738 #. type: Plain text
5739 #: build/C/man2/sigaltstack.2:147
5740 msgid ""
5741 "I<ss> is not NULL and the I<ss_flags> field contains a nonzero value other "
5742 "than B<SS_DISABLE>."
5743 msgstr ""
5744 "I<ss> が NULL 以外で、I<ss_flags> フィールドが B<SS_DISABLE> 以外の 0 でない"
5745 "値になっている。"
5746
5747 #. type: Plain text
5748 #: build/C/man2/sigaltstack.2:151
5749 msgid ""
5750 "The specified size of the new alternate signal stack (I<ss.ss_size>) was "
5751 "less than B<MINSTKSZ>."
5752 msgstr ""
5753 "新しい代替シグナルスタック (I<ss.ss_size>) に指定したサイズが B<MINSTKSZ> よ"
5754 "り小さい。"
5755
5756 #. type: Plain text
5757 #: build/C/man2/sigaltstack.2:156
5758 msgid ""
5759 "An attempt was made to change the alternate signal stack while it was active "
5760 "(i.e., the process was already executing on the current alternate signal "
5761 "stack)."
5762 msgstr ""
5763 "代替シグナルスタックが有効であるときに変更を行おうとした (つまり、プロセスが"
5764 "既に現在の代替シグナルスタック上で実行されていた)。"
5765
5766 #. type: Plain text
5767 #: build/C/man2/sigaltstack.2:158
5768 msgid "SUSv2, SVr4, POSIX.1-2001."
5769 msgstr "SUSv2, SVr4, POSIX.1-2001."
5770
5771 #. type: Plain text
5772 #: build/C/man2/sigaltstack.2:166
5773 msgid ""
5774 "The most common usage of an alternate signal stack is to handle the "
5775 "B<SIGSEGV> signal that is generated if the space available for the normal "
5776 "process stack is exhausted: in this case, a signal handler for B<SIGSEGV> "
5777 "cannot be invoked on the process stack; if we wish to handle it, we must use "
5778 "an alternate signal stack."
5779 msgstr ""
5780 "代替シグナルスタックを使用する最もよくある場面は、 B<SIGSEGV> シグナルを扱う"
5781 "ときである。 B<SIGSEGV> はプロセスの通常のスタックが利用できる空間が使い果た"
5782 "された際に 生成されるシグナルである。この場合には、 B<SIGSEGV> 用のシグナルハ"
5783 "ンドラをプロセスのスタック上では起動することができない。 そのため、このシグナ"
5784 "ルを扱おうとする場合には、 代替シグナルスタックを使用しなければならない。"
5785
5786 #. type: Plain text
5787 #: build/C/man2/sigaltstack.2:176
5788 msgid ""
5789 "Establishing an alternate signal stack is useful if a process expects that "
5790 "it may exhaust its standard stack.  This may occur, for example, because the "
5791 "stack grows so large that it encounters the upwardly growing heap, or it "
5792 "reaches a limit established by a call to B<setrlimit(RLIMIT_STACK, &rlim)>.  "
5793 "If the standard stack is exhausted, the kernel sends the process a "
5794 "B<SIGSEGV> signal.  In these circumstances the only way to catch this signal "
5795 "is on an alternate signal stack."
5796 msgstr ""
5797 "プロセスが標準のシグナルスタックを使い果たすことが予想される場合は、 代替シグ"
5798 "ナルスタックを確立すると便利である。 例えば、スタックが最上位アドレスから 下"
5799 "位アドレス方向に非常にたくさん積まれてしまうことで、 最下位アドレスから上位ア"
5800 "ドレス方向に積まれるヒープとぶつかってしまう場合や、 B<setrlimit"
5801 "(RLIMIT_STACK, &rlim)> の呼び出しで確立された 制限に達してしまった場合に、こ"
5802 "の様な事が起こる。 標準のスタックを使い果たしてしまうと、 カーネルはプロセス"
5803 "に B<SIGSEGV> シグナルを送る。 このような状況では、代替シグナルスタック上でし"
5804 "かシグナルをキャッチできない。"
5805
5806 #. type: Plain text
5807 #: build/C/man2/sigaltstack.2:182
5808 msgid ""
5809 "On most hardware architectures supported by Linux, stacks grow downward.  "
5810 "B<sigaltstack>()  automatically takes account of the direction of stack "
5811 "growth."
5812 msgstr ""
5813 "Linux がサポートする多くのハードウェアアーキテクチャでは、 スタックは下位アド"
5814 "レス方向に積まれる。 B<sigaltstack>()  はスタックが積まれる方向を自動的に決定"
5815 "する。"
5816
5817 #. type: Plain text
5818 #: build/C/man2/sigaltstack.2:191
5819 msgid ""
5820 "Functions called from a signal handler executing on an alternate signal "
5821 "stack will also use the alternate signal stack.  (This also applies to any "
5822 "handlers invoked for other signals while the process is executing on the "
5823 "alternate signal stack.)  Unlike the standard stack, the system does not "
5824 "automatically extend the alternate signal stack.  Exceeding the allocated "
5825 "size of the alternate signal stack will lead to unpredictable results."
5826 msgstr ""
5827 "代替シグナルスタック上で実行されている シグナルハンドラから呼ばれる関数も、代"
5828 "替シグナルハンドラを使う (プロセスが代替シグナルスタック上で実行されている場"
5829 "合、 他のシグナルで呼び出されるハンドラもこの代替シグナルハンドラを使う)。 標"
5830 "準のスタックとは異なり、 システムは代替シグナルスタックを自動的に拡張しな"
5831 "い。 代替シグナルスタック用に確保したサイズを越えた場合、 結果は予想できな"
5832 "い。"
5833
5834 #. type: Plain text
5835 #: build/C/man2/sigaltstack.2:199
5836 msgid ""
5837 "A successful call to B<execve>(2)  removes any existing alternate signal "
5838 "stack.  A child process created via B<fork>(2)  inherits a copy of its "
5839 "parent's alternate signal stack settings."
5840 msgstr ""
5841 "B<execve>(2)  の呼び出しが成功すると、 既存の全ての代替シグナルスタックが削除"
5842 "される。 B<fork>(2)  経由で作成された子プロセスは、親プロセスの代替シグナルス"
5843 "タックの 設定のコピーを継承する。"
5844
5845 #. type: Plain text
5846 #: build/C/man2/sigaltstack.2:208
5847 msgid ""
5848 "B<sigaltstack>()  supersedes the older B<sigstack>()  call.  For backward "
5849 "compatibility, glibc also provides B<sigstack>().  All new applications "
5850 "should be written using B<sigaltstack>()."
5851 msgstr ""
5852 "B<sigaltstack>()  は以前の B<sigstack>()  を置き換えるものである。 過去プログ"
5853 "ラムとの互換性のため、glibc では B<sigstack>()  も提供している。 新しいのアプ"
5854 "リケーションは全て B<sigaltstack>()  を使って書くべきである。"
5855
5856 #. type: SS
5857 #: build/C/man2/sigaltstack.2:208 build/C/man3/sigpause.3:61
5858 #, no-wrap
5859 msgid "History"
5860 msgstr "歴史"
5861
5862 #. type: Plain text
5863 #: build/C/man2/sigaltstack.2:215
5864 msgid ""
5865 "4.2BSD had a B<sigstack>()  system call.  It used a slightly different "
5866 "struct, and had the major disadvantage that the caller had to know the "
5867 "direction of stack growth."
5868 msgstr ""
5869 "4.2BSD には B<sigstack>()  システムコールがあった。 この関数は少し異なった構"
5870 "造体を使っており、 呼び出した側がスタックの積まれる方向を知っていなければなら"
5871 "ないという 大きな欠点があった。"
5872
5873 #. type: Plain text
5874 #: build/C/man2/sigaltstack.2:218
5875 msgid "The following code segment demonstrates the use of B<sigaltstack>():"
5876 msgstr "以下のコードで B<sigaltstack>()  の使用法の一部を示す:"
5877
5878 #. type: Plain text
5879 #: build/C/man2/sigaltstack.2:222
5880 #, no-wrap
5881 msgid "stack_t ss;\n"
5882 msgstr "stack_t ss;\n"
5883
5884 #. type: Plain text
5885 #: build/C/man2/sigaltstack.2:230
5886 #, no-wrap
5887 msgid ""
5888 "ss.ss_sp = malloc(SIGSTKSZ);\n"
5889 "if (ss.ss_sp == NULL)\n"
5890 "    /* Handle error */;\n"
5891 "ss.ss_size = SIGSTKSZ;\n"
5892 "ss.ss_flags = 0;\n"
5893 "if (sigaltstack(&ss, NULL) == -1)\n"
5894 "    /* Handle error */;\n"
5895 msgstr ""
5896 "ss.ss_sp = malloc(SIGSTKSZ);\n"
5897 "if (ss.ss_sp == NULL)\n"
5898 "    /* ハンドルエラー */;\n"
5899 "ss.ss_size = SIGSTKSZ;\n"
5900 "ss.ss_flags = 0;\n"
5901 "if (sigaltstack(&ss, NULL) == -1)\n"
5902 "    /* ハンドルエラー */;\n"
5903
5904 #. type: Plain text
5905 #: build/C/man2/sigaltstack.2:239
5906 msgid ""
5907 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
5908 "B<sigsetjmp>(3), B<signal>(7)"
5909 msgstr ""
5910 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
5911 "B<sigsetjmp>(3), B<signal>(7)"
5912
5913 #. type: TH
5914 #: build/C/man7/sigevent.7:26
5915 #, no-wrap
5916 msgid "SIGEVENT"
5917 msgstr "SIGEVENT"
5918
5919 #. type: TH
5920 #: build/C/man7/sigevent.7:26 build/C/man3/siginterrupt.3:31
5921 #, no-wrap
5922 msgid "2011-09-09"
5923 msgstr "2011-09-09"
5924
5925 #. type: Plain text
5926 #: build/C/man7/sigevent.7:29
5927 msgid "sigevent - structure for notification from asynchronous routines"
5928 msgstr ""
5929
5930 #. type: Plain text
5931 #: build/C/man7/sigevent.7:36
5932 #, no-wrap
5933 msgid ""
5934 "union sigval {          /* Data passed with notification */\n"
5935 "    int     sival_int;         /* Integer value */\n"
5936 "    void   *sival_ptr;         /* Pointer value */\n"
5937 "};\n"
5938 msgstr ""
5939 "union sigval {          /* Data passed with notification */\n"
5940 "    int     sival_int;         /* Integer value */\n"
5941 "    void   *sival_ptr;         /* Pointer value */\n"
5942 "};\n"
5943
5944 #. type: Plain text
5945 #: build/C/man7/sigevent.7:51
5946 #, no-wrap
5947 msgid ""
5948 "struct sigevent {\n"
5949 "    int          sigev_notify; /* Notification method */\n"
5950 "    int          sigev_signo;  /* Notification signal */\n"
5951 "    union sigval sigev_value;  /* Data passed with\n"
5952 "                                  notification */\n"
5953 "    void       (*sigev_notify_function) (union sigval);\n"
5954 "                     /* Function used for thread\n"
5955 "                        notification (SIGEV_THREAD) */\n"
5956 "    void        *sigev_notify_attributes;\n"
5957 "                     /* Attributes for notification thread\n"
5958 "                        (SIGEV_THREAD) */\n"
5959 "    pid_t        sigev_notify_thread_id;\n"
5960 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
5961 "};\n"
5962 msgstr ""
5963 "struct sigevent {\n"
5964 "    int          sigev_notify; /* Notification method */\n"
5965 "    int          sigev_signo;  /* Notification signal */\n"
5966 "    union sigval sigev_value;  /* Data passed with\n"
5967 "                                  notification */\n"
5968 "    void       (*sigev_notify_function) (union sigval);\n"
5969 "                     /* Function used for thread\n"
5970 "                        notification (SIGEV_THREAD) */\n"
5971 "    void        *sigev_notify_attributes;\n"
5972 "                     /* Attributes for notification thread\n"
5973 "                        (SIGEV_THREAD) */\n"
5974 "    pid_t        sigev_notify_thread_id;\n"
5975 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
5976 "};\n"
5977
5978 #. type: Plain text
5979 #: build/C/man7/sigevent.7:60
5980 msgid ""
5981 "The I<sigevent> structure is used by various APIs to describe the way a "
5982 "process is to be notified about an event (e.g., completion of an "
5983 "asynchronous request, expiration of a timer, or the arrival of a message)."
5984 msgstr ""
5985
5986 #. type: Plain text
5987 #: build/C/man7/sigevent.7:68
5988 msgid ""
5989 "The definition shown in the SYNOPSIS is approximate: some of the fields in "
5990 "the I<sigevent> structure may be defined as part of a union.  Programs "
5991 "should only employ those fields relevant to the value specified in "
5992 "I<sigev_notify>."
5993 msgstr ""
5994
5995 #. type: Plain text
5996 #: build/C/man7/sigevent.7:73
5997 msgid ""
5998 "The I<sigev_notify> field specifies how notification is to be performed.  "
5999 "This field can have one of the following values:"
6000 msgstr ""
6001
6002 #. type: TP
6003 #: build/C/man7/sigevent.7:73 build/C/man2/timer_create.2:107
6004 #, no-wrap
6005 msgid "B<SIGEV_NONE>"
6006 msgstr "B<SIGEV_NONE>"
6007
6008 #. type: Plain text
6009 #: build/C/man7/sigevent.7:76
6010 msgid "A \"null\" notification: don't do anything when the event occurs."
6011 msgstr ""
6012
6013 #. type: TP
6014 #: build/C/man7/sigevent.7:76 build/C/man2/timer_create.2:112
6015 #, no-wrap
6016 msgid "B<SIGEV_SIGNAL>"
6017 msgstr "B<SIGEV_SIGNAL>"
6018
6019 #. type: Plain text
6020 #: build/C/man7/sigevent.7:80
6021 msgid "Notify the process by sending the signal specified in I<sigev_signo>."
6022 msgstr ""
6023
6024 #. type: Plain text
6025 #: build/C/man7/sigevent.7:87
6026 msgid ""
6027 "If the signal is caught with a signal handler that was registered using the "
6028 "B<sigaction>(2)  B<SA_SIGINFO> flag, then the following fields are set in "
6029 "the I<siginfo_t> structure that is passed as the second argument of the "
6030 "handler:"
6031 msgstr ""
6032
6033 #. type: Plain text
6034 #: build/C/man7/sigevent.7:92
6035 msgid ""
6036 "This field is set to a value that depends on the API delivering the "
6037 "notification."
6038 msgstr ""
6039
6040 #. type: TP
6041 #: build/C/man7/sigevent.7:92 build/C/man2/wait.2:300
6042 #, no-wrap
6043 msgid "I<si_signo>"
6044 msgstr "I<si_signo>"
6045
6046 #. type: Plain text
6047 #: build/C/man7/sigevent.7:96
6048 msgid ""
6049 "This field is set to the signal number (i.e., the same value as in "
6050 "I<sigev_signo>)."
6051 msgstr ""
6052
6053 #. type: Plain text
6054 #: build/C/man7/sigevent.7:100
6055 msgid "This field is set to the value specified in I<sigev_value>."
6056 msgstr ""
6057
6058 #. type: Plain text
6059 #: build/C/man7/sigevent.7:105
6060 msgid ""
6061 "Depending on the API, other fields may also be set in the I<siginfo_t> "
6062 "structure."
6063 msgstr ""
6064
6065 #. type: Plain text
6066 #: build/C/man7/sigevent.7:108
6067 msgid ""
6068 "The same information is also available if the signal is accepted using "
6069 "B<sigwaitinfo>(2)."
6070 msgstr ""
6071
6072 #. type: TP
6073 #: build/C/man7/sigevent.7:108 build/C/man2/timer_create.2:130
6074 #, no-wrap
6075 msgid "B<SIGEV_THREAD>"
6076 msgstr "B<SIGEV_THREAD>"
6077
6078 #. type: Plain text
6079 #: build/C/man7/sigevent.7:125
6080 msgid ""
6081 "Notify the process by invoking I<sigev_notify_function> \"as if\" it were "
6082 "the start function of a new thread.  (Among the implementation possibilities "
6083 "here are that each timer notification could result in the creation of a new "
6084 "thread, or that a single thread is created to receive all notifications.)  "
6085 "The function is invoked with I<sigev_value> as its sole argument.  If "
6086 "I<sigev_notify_attributes> is not NULL, it should point to a "
6087 "I<pthread_attr_t> structure that defines attributes for the new thread (see "
6088 "B<pthread_attr_init>(3))."
6089 msgstr ""
6090
6091 #. type: TP
6092 #: build/C/man7/sigevent.7:125 build/C/man2/timer_create.2:138
6093 #, no-wrap
6094 msgid "B<SIGEV_THREAD_ID> (Linux-specific)"
6095 msgstr ""
6096
6097 #.  | SIGEV_SIGNAL vs not?
6098 #. type: Plain text
6099 #: build/C/man7/sigevent.7:130
6100 msgid "Currently used only by POSIX timers; see B<timer_create>(2)."
6101 msgstr ""
6102
6103 #. type: Plain text
6104 #: build/C/man7/sigevent.7:132 build/C/man2/sigpending.2:63
6105 #: build/C/man2/sigprocmask.2:111 build/C/man3/sigqueue.3:116
6106 #: build/C/man3/sigsetops.3:130 build/C/man2/sigsuspend.2:84
6107 #: build/C/man3/sigwait.3:82 build/C/man2/sigwaitinfo.2:135
6108 #: build/C/man2/timer_create.2:195 build/C/man2/timer_delete.2:69
6109 #: build/C/man2/timer_getoverrun.2:99 build/C/man2/timer_settime.2:209
6110 msgid "POSIX.1-2001."
6111 msgstr "POSIX.1-2001."
6112
6113 #. type: Plain text
6114 #: build/C/man7/sigevent.7:142
6115 msgid ""
6116 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
6117 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
6118 "B<pthreads>(7)"
6119 msgstr ""
6120 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
6121 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
6122 "B<pthreads>(7)"
6123
6124 #. type: TH
6125 #: build/C/man3/siginterrupt.3:31
6126 #, no-wrap
6127 msgid "SIGINTERRUPT"
6128 msgstr "SIGINTERRUPT"
6129
6130 #. type: Plain text
6131 #: build/C/man3/siginterrupt.3:34
6132 msgid "siginterrupt - allow signals to interrupt system calls"
6133 msgstr "siginterrupt - シグナルでシステム・コールに割り込むことを許す"
6134
6135 #. type: Plain text
6136 #: build/C/man3/siginterrupt.3:39
6137 #, no-wrap
6138 msgid "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
6139 msgstr "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
6140
6141 #. type: Plain text
6142 #: build/C/man3/siginterrupt.3:47
6143 msgid "B<siginterrupt>():"
6144 msgstr "B<siginterrupt>():"
6145
6146 #. type: Plain text
6147 #: build/C/man3/siginterrupt.3:64
6148 msgid ""
6149 "The B<siginterrupt>()  function changes the restart behavior when a system "
6150 "call is interrupted by the signal I<sig>.  If the I<flag> argument is false "
6151 "(0), then system calls will be restarted if interrupted by the specified "
6152 "signal I<sig>.  This is the default behavior in Linux."
6153 msgstr ""
6154 "B<siginterrupt>()  関数は、システム・コールがシグナル I<sig> によって割り込ま"
6155 "れた後、再実行の際の振る舞いを変更する。 I<flag> 引き数が偽 (0) ならば、シス"
6156 "テム・コールが指定した シグナル I<sig> によって割り込まれた後に、そのシステ"
6157 "ム・コールは 再実行される。これは Linux においてデフォルトの動作である。"
6158
6159 #. type: Plain text
6160 #: build/C/man3/siginterrupt.3:69
6161 msgid ""
6162 "If the I<flag> argument is true (1) and no data has been transferred, then a "
6163 "system call interrupted by the signal I<sig> will return -1 and I<errno> "
6164 "will be set to B<EINTR>."
6165 msgstr ""
6166 "I<flag> 引き数が真 (1) でデータの転送が全く行なわれていないならば、 シグナル "
6167 "I<sig> でシステム・コールは中断されて、-1 が返され、 I<errno> に B<EINTR> が"
6168 "設定される。"
6169
6170 #. type: Plain text
6171 #: build/C/man3/siginterrupt.3:73
6172 msgid ""
6173 "If the I<flag> argument is true (1) and data transfer has started, then the "
6174 "system call will be interrupted and will return the actual amount of data "
6175 "transferred."
6176 msgstr ""
6177 "I<flag> 引き数が真 (1) でデータの転送が開始されていれば、 システム・コールは"
6178 "中断され、それまでに実際に転送されたデータ の量が返される。"
6179
6180 #. type: Plain text
6181 #: build/C/man3/siginterrupt.3:78
6182 msgid ""
6183 "The B<siginterrupt>()  function returns 0 on success, or -1 if the signal "
6184 "number I<sig> is invalid."
6185 msgstr ""
6186 "B<siginterrupt>()  関数は成功した場合 0 を返す。 シグナル番号 I<sig> が不正な"
6187 "場合は -1 を返す。"
6188
6189 #. type: Plain text
6190 #: build/C/man3/siginterrupt.3:82
6191 msgid "The specified signal number is invalid."
6192 msgstr "指定したシグナル番号が不正である。"
6193
6194 #. type: Plain text
6195 #: build/C/man3/siginterrupt.3:91
6196 msgid ""
6197 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 marks B<siginterrupt>()  as obsolete, "
6198 "recommending the use of B<sigaction>(2)  with the B<SA_RESTART> flag instead."
6199 msgstr ""
6200 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 は、 B<siginterrupt>()  を廃止予定として"
6201 "いる。 代わりに、 B<sigaction>(2)  に B<SA_RESTART> フラグを指定して使うこと"
6202 "を推奨している。"
6203
6204 #. type: Plain text
6205 #: build/C/man3/siginterrupt.3:93
6206 msgid "B<signal>(2)"
6207 msgstr "B<signal>(2)"
6208
6209 #. type: TH
6210 #: build/C/man2/signal.2:36 build/C/man7/signal.7:46
6211 #, no-wrap
6212 msgid "SIGNAL"
6213 msgstr "SIGNAL"
6214
6215 #. type: TH
6216 #: build/C/man2/signal.2:36
6217 #, no-wrap
6218 msgid "2013-02-09"
6219 msgstr "2013-02-09"
6220
6221 #. type: Plain text
6222 #: build/C/man2/signal.2:39
6223 msgid "signal - ANSI C signal handling"
6224 msgstr "signal - ANSI C シグナル操作"
6225
6226 #. type: Plain text
6227 #: build/C/man2/signal.2:45
6228 msgid "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
6229 msgstr ""
6230 "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<sighandler>B<);>"
6231
6232 #. type: Plain text
6233 #: build/C/man2/signal.2:54
6234 msgid ""
6235 "The behavior of B<signal>()  varies across UNIX versions, and has also "
6236 "varied historically across different versions of Linux.  B<Avoid its use>: "
6237 "use B<sigaction>(2)  instead.  See I<Portability> below."
6238 msgstr ""
6239 "B<signal>()  の動作は UNIX のバージョンにより異なる。 また、歴史的に見て "
6240 "Linux のバージョンによっても異なっている。 B<このシステムコールの使用は避け、"
6241 "> 代わりに B<sigaction>(2)  を使用すること。 下記の「移植性」を参照。"
6242
6243 #. type: Plain text
6244 #: build/C/man2/signal.2:64
6245 msgid ""
6246 "B<signal>()  sets the disposition of the signal I<signum> to I<handler>, "
6247 "which is either B<SIG_IGN>, B<SIG_DFL>, or the address of a programmer-"
6248 "defined function (a \"signal handler\")."
6249 msgstr ""
6250 "B<signal>()  はシグナル I<signum> の処理方法を I<handler> に設定する。 "
6251 "I<handler> には、 B<SIG_IGN>、 B<SIG_DFL>、 プログラマが定義した関数 (「シグ"
6252 "ナル・ハンドラ」) のアドレスの いずれかを指定する。"
6253
6254 #. type: Plain text
6255 #: build/C/man2/signal.2:68
6256 msgid ""
6257 "If the signal I<signum> is delivered to the process, then one of the "
6258 "following happens:"
6259 msgstr ""
6260 "シグナル I<signum> がプロセスに配送されると、以下のいずれかが発生する。"
6261
6262 #. type: Plain text
6263 #: build/C/man2/signal.2:73
6264 msgid "If the disposition is set to B<SIG_IGN>, then the signal is ignored."
6265 msgstr "処理方法が B<SIG_IGN> に設定されている場合、そのシグナルは無視される。"
6266
6267 #. type: Plain text
6268 #: build/C/man2/signal.2:80
6269 msgid ""
6270 "If the disposition is set to B<SIG_DFL>, then the default action associated "
6271 "with the signal (see B<signal>(7))  occurs."
6272 msgstr ""
6273 "処理方法が B<SIG_DFL> に設定されている場合、シグナルに関連づけられた デフォル"
6274 "トの動作が行われる (B<signal>(7)  参照)。"
6275
6276 #. type: Plain text
6277 #: build/C/man2/signal.2:91
6278 msgid ""
6279 "If the disposition is set to a function, then first either the disposition "
6280 "is reset to B<SIG_DFL>, or the signal is blocked (see I<Portability> below), "
6281 "and then I<handler> is called with argument I<signum>.  If invocation of the "
6282 "handler caused the signal to be blocked, then the signal is unblocked upon "
6283 "return from the handler."
6284 msgstr ""
6285 "処理方法として関数が設定されている場合、 まず最初に処理方法が B<SIG_DFL> にリ"
6286 "セットされるかそのシグナルのブロックが実行された後、 I<signum> を引き数とし"
6287 "て I<handler> が呼び出される。 ハンドラが起動される際にシグナルがブロックされ"
6288 "た場合、 ハンドラが返る際にそのシグナルのブロックが解除される。"
6289
6290 #. type: Plain text
6291 #: build/C/man2/signal.2:97
6292 msgid "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught or ignored."
6293 msgstr ""
6294 "シグナル B<SIGKILL> と B<SIGSTOP> は捕捉できず、無視することもできない。"
6295
6296 #. type: Plain text
6297 #: build/C/man2/signal.2:102
6298 msgid ""
6299 "B<signal>()  returns the previous value of the signal handler, or B<SIG_ERR> "
6300 "on error."
6301 msgstr ""
6302 "B<signal>()  は、今までのシグナル・ハンドラの値を返す。エラーの場合は "
6303 "B<SIG_ERR> を返す。"
6304
6305 #. type: Plain text
6306 #: build/C/man2/signal.2:107
6307 msgid "I<signum> is invalid."
6308 msgstr "I<signum> が不正である。"
6309
6310 #. type: Plain text
6311 #: build/C/man2/signal.2:113
6312 msgid "The effects of B<signal>()  in a multithreaded process are unspecified."
6313 msgstr ""
6314 "マルチスレッドプロセスにおける B<signal>()  の結果は、指定されていない。"
6315
6316 #. type: Plain text
6317 #: build/C/man2/signal.2:138
6318 msgid ""
6319 "See B<sigaction>(2)  for details on what happens when B<SIGCHLD> is set to "
6320 "B<SIG_IGN>."
6321 msgstr ""
6322 "B<SIGCHLD> の動作として B<SIG_IGN> を設定した場合の詳細な動作については、 "
6323 "B<sigaction>(2)  を参照すること。"
6324
6325 #. type: Plain text
6326 #: build/C/man2/signal.2:143
6327 msgid ""
6328 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
6329 "safely called from inside a signal handler."
6330 msgstr ""
6331 "シグナル・ハンドラ内から安全に呼び出すことができる、 async-signal-safe "
6332 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
6333 "照。"
6334
6335 #.  libc4 and libc5 define
6336 #.  .IR SignalHandler ;
6337 #. type: Plain text
6338 #: build/C/man2/signal.2:159
6339 msgid ""
6340 "The use of I<sighandler_t> is a GNU extension, exposed if B<_GNU_SOURCE> is "
6341 "defined; glibc also defines (the BSD-derived)  I<sig_t> if B<_BSD_SOURCE> is "
6342 "defined.  Without use of such a type, the declaration of B<signal>()  is the "
6343 "somewhat harder to read:"
6344 msgstr ""
6345 "I<sighandler_t> の使用は GNU 拡張であり、 B<_GNU_SOURCE> が定義された\n"
6346 "場合に公開される。glibc では B<_BSD_SOURCE> が定義された場合には (BSD\n"
6347 "由来の) I<sig_t> も定義される。このような型を使用しないと、\n"
6348 "B<signal>() の宣言は読みにくいものとなる。"
6349
6350 #. type: Plain text
6351 #: build/C/man2/signal.2:163
6352 #, no-wrap
6353 msgid "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
6354 msgstr "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
6355
6356 #. type: SS
6357 #: build/C/man2/signal.2:165
6358 #, no-wrap
6359 msgid "Portability"
6360 msgstr "移植性"
6361
6362 #. type: Plain text
6363 #: build/C/man2/signal.2:177
6364 msgid ""
6365 "The only portable use of B<signal>()  is to set a signal's disposition to "
6366 "B<SIG_DFL> or B<SIG_IGN>.  The semantics when using B<signal>()  to "
6367 "establish a signal handler vary across systems (and POSIX.1 explicitly "
6368 "permits this variation); B<do not use it for this purpose.>"
6369 msgstr ""
6370 "移植性のある B<signal>()  の使い方は、シグナルの処理方法を B<SIG_DFL> か "
6371 "B<SIG_IGN> に設定する方法だけである。 シグナル・ハンドラを設定するのに "
6372 "B<signal>()  を使ったときの動作はシステムにより異なる (POSIX.1 は明示的にこの"
6373 "違いを認めている)。 B<移植性が必要なときはこのシステムコールを使用しないこ"
6374 "と。>"
6375
6376 #. type: Plain text
6377 #: build/C/man2/signal.2:183
6378 msgid ""
6379 "POSIX.1 solved the portability mess by specifying B<sigaction>(2), which "
6380 "provides explicit control of the semantics when a signal handler is invoked; "
6381 "use that interface instead of B<signal>()."
6382 msgstr ""
6383 "POSIX.1 は、 B<sigaction>(2)  を規定することで移植性に関する混乱を解決した。 "
6384 "B<sigaction>(2)  はシグナル・ハンドラが起動される際の挙動を明示的に制御でき"
6385 "る。 B<signal>()  の代わりにこのインターフェイスを使うこと。"
6386
6387 #. type: Plain text
6388 #: build/C/man2/signal.2:193
6389 msgid ""
6390 "In the original UNIX systems, when a handler that was established using "
6391 "B<signal>()  was invoked by the delivery of a signal, the disposition of the "
6392 "signal would be reset to B<SIG_DFL>, and the system did not block delivery "
6393 "of further instances of the signal.  This is equivalent to calling "
6394 "B<sigaction>(2)  with the following flags:"
6395 msgstr "オリジナルの UNIX システムでは、 B<signal>()  を使って設定されたハンドラがシグナルの配送により起動されると、 そのシグナルの処理方法は B<SIG_DFL> にリセットされ、システムは同じシグナルがさらに生成されても シグナルの配送をブロックしなかった。これは、以下のフラグで B<sigaction>(2) を呼び出すのと等価である。"
6396
6397 #. type: Plain text
6398 #: build/C/man2/signal.2:195
6399 #, no-wrap
6400 msgid "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
6401 msgstr "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
6402
6403 #. type: Plain text
6404 #: build/C/man2/signal.2:202
6405 msgid ""
6406 "System V also provides these semantics for B<signal>().  This was bad "
6407 "because the signal might be delivered again before the handler had a chance "
6408 "to reestablish itself.  Furthermore, rapid deliveries of the same signal "
6409 "could result in recursive invocations of the handler."
6410 msgstr "System V でも、 B<signal>()  に対してこれらの挙動を規定している。 こうした挙動はまずく、ハンドラがハンドラ自身を再設定する機会が 来るより前に、同じシグナルがまた配送される可能性がある。 さらに、同じシグナルが立て続けに配送されると、同じシグナルが ハンドラを繰り返し起動されることになる。"
6411
6412 #. type: Plain text
6413 #: build/C/man2/signal.2:217
6414 #, fuzzy
6415 #| msgid ""
6416 #| "BSD improved on this situation by changing the semantics of signal "
6417 #| "handling (but, unfortunately, silently changed the semantics when "
6418 #| "establishing a handler with B<signal>()).  On BSD, when a signal handler "
6419 #| "is invoked, the signal disposition is not reset, and further instances of "
6420 #| "the signal are blocked from being delivered while the handler is "
6421 #| "executing."
6422 msgid ""
6423 "BSD improved on this situation, but unfortunately also changed the semantics "
6424 "of the existing B<signal>()  interface while doing so.  On BSD, when a "
6425 "signal handler is invoked, the signal disposition is not reset, and further "
6426 "instances of the signal are blocked from being delivered while the handler "
6427 "is executing.  Furthermore, certain blocking system calls are automatically "
6428 "restarted if interrupted by a signal handler (see B<signal>(7)).  The BSD "
6429 "semantics are equivalent to calling B<sigaction>(2)  with the following "
6430 "flags:"
6431 msgstr ""
6432 "BSD では、シグナル処理の挙動を変更することで、この状況を改善した (しかし、残"
6433 "念なことに、 B<signal>()  を使ってハンドラを設定する際に挙動が黙って変更され"
6434 "る)。 BSD では、シグナルハンドラが起動された際、 シグナルの処理方法はリセット"
6435 "されず、 ハンドラの実行中は、同じシグナルのさらなる生成は配送がブロックされ"
6436 "る。"
6437
6438 #. type: Plain text
6439 #: build/C/man2/signal.2:219
6440 #, no-wrap
6441 msgid "    sa.sa_flags = SA_RESTART;\n"
6442 msgstr "    sa.sa_flags = SA_RESTART;\n"
6443
6444 #. type: Plain text
6445 #: build/C/man2/signal.2:221
6446 msgid "The situation on Linux is as follows:"
6447 msgstr "Linux での状況は以下の通りである。"
6448
6449 #. type: Plain text
6450 #: build/C/man2/signal.2:225
6451 msgid "The kernel's B<signal>()  system call provides System V semantics."
6452 msgstr "カーネルの B<signal>()  システムコールは System V 方式を提供している。"
6453
6454 #. type: Plain text
6455 #: build/C/man2/signal.2:241
6456 msgid ""
6457 "By default, in glibc 2 and later, the B<signal>()  wrapper function does not "
6458 "invoke the kernel system call.  Instead, it calls B<sigaction>(2)  using "
6459 "flags that supply BSD semantics.  This default behavior is provided as long "
6460 "as the B<_BSD_SOURCE> feature test macro is defined.  By default, "
6461 "B<_BSD_SOURCE> is defined; it is also implicitly defined if one defines "
6462 "B<_GNU_SOURCE>, and can of course be explicitly defined."
6463 msgstr ""
6464 "デフォルトでは、glibc 2 以降では、 B<signal>()  ラッパー関数はカーネルのシス"
6465 "テムコールを起動しない。 代わりに、ラッパー関数は BSD 方式を示すフラグを使っ"
6466 "て B<sigaction>(2)  を呼び出す。 機能検査マクロ B<_BSD_SOURCE> を定義していれ"
6467 "ば、このデフォルトの動作となる。 デフォルトでは、 B<_BSD_SOURCE> が定義され"
6468 "る。 B<_BSD_SOURCE> は B<_GNU_SOURCE> が定義された場合には暗黙のうちに定義さ"
6469 "れ、 もちろん明示的に定義することもできる。"
6470
6471 #.  System V semantics are also provided if one uses the separate
6472 #.  .BR sysv_signal (3)
6473 #.  function.
6474 #. type: Plain text
6475 #: build/C/man2/signal.2:264
6476 msgid ""
6477 "On glibc 2 and later, if the B<_BSD_SOURCE> feature test macro is not "
6478 "defined, then B<signal>()  provides System V semantics.  (The default "
6479 "implicit definition of B<_BSD_SOURCE> is not provided if one invokes B<gcc>"
6480 "(1)  in one of its standard modes (I<-std=xxx> or I<-ansi>)  or defines "
6481 "various other feature test macros such as B<_POSIX_SOURCE>, "
6482 "B<_XOPEN_SOURCE>, or B<_SVID_SOURCE>; see B<feature_test_macros>(7).)"
6483 msgstr ""
6484 "glibc 2 以降では、機能検査マクロ B<_BSD_SOURCE> が定義されていなければ、 "
6485 "B<signal>()  は System V 方式となる。 (B<gcc>(1)  が標準指定モード (I<-"
6486 "std=xxx> or I<-ansi>)  で起動された場合、もしくは B<_POSIX_SOURCE>, "
6487 "B<_XOPEN_SOURCE>, B<_SVID_SOURCE> といった他の様々な機能検査マクロが定義され"
6488 "た場合、 デフォルトの B<_BSD_SOURCE> の暗黙の定義は行われない。 "
6489 "B<feature_test_macros>(7)  を参照のこと。)"
6490
6491 #. type: Plain text
6492 #: build/C/man2/signal.2:275
6493 msgid ""
6494 "The B<signal>()  function in Linux libc4 and libc5 provide System V "
6495 "semantics.  If one on a libc5 system includes I<E<lt>bsd/signal.hE<gt>> "
6496 "instead of I<E<lt>signal.hE<gt>>, then B<signal>()  provides BSD semantics."
6497 msgstr ""
6498 "Linux の libc4 と libc5 の B<signal>()  関数は System V 方式である。 libc5 シ"
6499 "ステムにおいて I<E<lt>signal.hE<gt>> のかわりに I<E<lt>bsd/signal.hE<gt>> を"
6500 "インクルードすると、 B<signal>()  は B<__bsd_signal>()  に再定義され、 "
6501 "B<signal>()  は BSD 方式となる。"
6502
6503 #. type: Plain text
6504 #: build/C/man2/signal.2:294
6505 msgid ""
6506 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaction>"
6507 "(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
6508 "B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), B<sigqueue>(3), "
6509 "B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), B<signal>(7)"
6510 msgstr ""
6511 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaction>"
6512 "(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
6513 "B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), B<sigqueue>(3), "
6514 "B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), B<signal>(7)"
6515
6516 #. type: TH
6517 #: build/C/man7/signal.7:46
6518 #, no-wrap
6519 msgid "2012-05-01"
6520 msgstr "2012-05-01"
6521
6522 #. type: Plain text
6523 #: build/C/man7/signal.7:49
6524 msgid "signal - overview of signals"
6525 msgstr "signal - シグナルの概要"
6526
6527 #. type: Plain text
6528 #: build/C/man7/signal.7:52
6529 msgid ""
6530 "Linux supports both POSIX reliable signals (hereinafter \"standard signals"
6531 "\") and POSIX real-time signals."
6532 msgstr ""
6533 "Linux は POSIX 信頼シグナル (reliable signal; 以後 \"標準シグナル\"と表記)  "
6534 "と POSIX リアルタイムシグナルの両方に対応している。"
6535
6536 #. type: SS
6537 #: build/C/man7/signal.7:52
6538 #, no-wrap
6539 msgid "Signal dispositions"
6540 msgstr "シグナル処理方法"
6541
6542 #. type: Plain text
6543 #: build/C/man7/signal.7:57
6544 msgid ""
6545 "Each signal has a current I<disposition>, which determines how the process "
6546 "behaves when it is delivered the signal."
6547 msgstr ""
6548 "シグナルはそれぞれ現在の「処理方法 (disposition)」を保持しており、 この処理方"
6549 "法によりシグナルが配送された際にプロセスが どのような振舞いをするかが決まる。"
6550
6551 #. type: Plain text
6552 #: build/C/man7/signal.7:60
6553 msgid ""
6554 "The entries in the \"Action\" column of the tables below specify the default "
6555 "disposition for each signal, as follows:"
6556 msgstr ""
6557 "後述の表の \"動作\" の欄のエントリは各シグナルのデフォルトの 処理方法を示して"
6558 "おり、以下のような意味を持つ。"
6559
6560 #. type: IP
6561 #: build/C/man7/signal.7:60
6562 #, no-wrap
6563 msgid "Term"
6564 msgstr "Term"
6565
6566 #. type: Plain text
6567 #: build/C/man7/signal.7:62
6568 msgid "Default action is to terminate the process."
6569 msgstr "デフォルトの動作はプロセス終了。"
6570
6571 #. type: IP
6572 #: build/C/man7/signal.7:62
6573 #, no-wrap
6574 msgid "Ign"
6575 msgstr "Ign"
6576
6577 #. type: Plain text
6578 #: build/C/man7/signal.7:64
6579 msgid "Default action is to ignore the signal."
6580 msgstr "デフォルトの動作はこのシグナルの無視。"
6581
6582 #. type: IP
6583 #: build/C/man7/signal.7:64
6584 #, no-wrap
6585 msgid "Core"
6586 msgstr "Core"
6587
6588 #. type: Plain text
6589 #: build/C/man7/signal.7:67
6590 msgid ""
6591 "Default action is to terminate the process and dump core (see B<core>(5))."
6592 msgstr "デフォルトの動作はプロセス終了とコアダンプ出力 (B<core>(5)  参照)。"
6593
6594 #. type: IP
6595 #: build/C/man7/signal.7:67
6596 #, no-wrap
6597 msgid "Stop"
6598 msgstr "Stop"
6599
6600 #. type: Plain text
6601 #: build/C/man7/signal.7:69
6602 msgid "Default action is to stop the process."
6603 msgstr "デフォルトの動作はプロセスの一時停止。"
6604
6605 #. type: IP
6606 #: build/C/man7/signal.7:69
6607 #, no-wrap
6608 msgid "Cont"
6609 msgstr "Cont"
6610
6611 #. type: Plain text
6612 #: build/C/man7/signal.7:71
6613 msgid "Default action is to continue the process if it is currently stopped."
6614 msgstr "デフォルトの動作は、プロセスが停止中の場合にその実行の再開。"
6615
6616 #. type: Plain text
6617 #: build/C/man7/signal.7:93
6618 msgid ""
6619 "A process can change the disposition of a signal using B<sigaction>(2)  or "
6620 "B<signal>(2).  (The latter is less portable when establishing a signal "
6621 "handler; see B<signal>(2)  for details.)  Using these system calls, a "
6622 "process can elect one of the following behaviors to occur on delivery of the "
6623 "signal: perform the default action; ignore the signal; or catch the signal "
6624 "with a I<signal handler>, a programmer-defined function that is "
6625 "automatically invoked when the signal is delivered.  (By default, the signal "
6626 "handler is invoked on the normal process stack.  It is possible to arrange "
6627 "that the signal handler uses an alternate stack; see B<sigaltstack>(2)  for "
6628 "a discussion of how to do this and when it might be useful.)"
6629 msgstr ""
6630 "プロセスは、 B<sigaction>(2)  や B<signal>(2)  を使って、シグナルの処理方法を"
6631 "変更することができる (B<signal>(2)  の方がシグナルハンドラを設定する際の移植"
6632 "性が低い; 詳細は B<signal>(2)  を参照)。 シグナルの配送時に起こる動作として "
6633 "プロセスが選択できるのは、次のいずれか一つである。 デフォルトの動作を実行す"
6634 "る、シグナルを無視する、 I<シグナルハンドラ (signal handler)> でシグナルを捕"
6635 "捉する。シグナルハンドラとは、シグナル配送時に 自動的に起動されるプログラマ定"
6636 "義の関数である。 (デフォルトでは、シグナルハンドラは通常のプロセスのスタック"
6637 "上で起動される。 シグナルハンドラが代替スタック (alternate stack) を使用する"
6638 "ように設定する こともできる。代替スタックを使用するように設定する方法と、どの"
6639 "ような際に 代替スタックが役に立つかについての議論については B<sigaltstack>"
6640 "(2)  を参照のこと。"
6641
6642 #. type: Plain text
6643 #: build/C/man7/signal.7:97
6644 msgid ""
6645 "The signal disposition is a per-process attribute: in a multithreaded "
6646 "application, the disposition of a particular signal is the same for all "
6647 "threads."
6648 msgstr ""
6649 "シグナルの処理方法はプロセス単位の属性である。 マルチスレッドのアプリケーショ"
6650 "ンでは、あるシグナルの処理方法は 全てのスレッドで同じである。"
6651
6652 #. type: SS
6653 #: build/C/man7/signal.7:105
6654 #, no-wrap
6655 msgid "Sending a signal"
6656 msgstr "シグナルの送信"
6657
6658 #. type: Plain text
6659 #: build/C/man7/signal.7:108
6660 msgid ""
6661 "The following system calls and library functions allow the caller to send a "
6662 "signal:"
6663 msgstr ""
6664 "以下のシステムコールとライブラリ関数を使って、 呼び出し者はシグナルを送信する"
6665 "ことができる。"
6666
6667 #. type: TP
6668 #: build/C/man7/signal.7:108
6669 #, no-wrap
6670 msgid "B<raise>(3)"
6671 msgstr "B<raise>(3)"
6672
6673 #. type: Plain text
6674 #: build/C/man7/signal.7:111
6675 msgid "Sends a signal to the calling thread."
6676 msgstr "呼び出したスレッドにシグナルを送る。"
6677
6678 #. type: Plain text
6679 #: build/C/man7/signal.7:116
6680 msgid ""
6681 "Sends a signal to a specified process, to all members of a specified process "
6682 "group, or to all processes on the system."
6683 msgstr ""
6684 "指定されたプロセスや、指定されたプロセスグループの全メンバー、 システムの全プ"
6685 "ロセスにシグナルを送る。"
6686
6687 #. type: TP
6688 #: build/C/man7/signal.7:116
6689 #, no-wrap
6690 msgid "B<killpg>(2)"
6691 msgstr "B<killpg>(2)"
6692
6693 #. type: Plain text
6694 #: build/C/man7/signal.7:119
6695 msgid "Sends a signal to all of the members of a specified process group."
6696 msgstr "指定されたプロセスグループの全メンバーにシグナルを送る。"
6697
6698 #. type: TP
6699 #: build/C/man7/signal.7:119
6700 #, no-wrap
6701 msgid "B<pthread_kill>(3)"
6702 msgstr "B<pthread_kill>(3)"
6703
6704 #. type: Plain text
6705 #: build/C/man7/signal.7:123
6706 msgid ""
6707 "Sends a signal to a specified POSIX thread in the same process as the caller."
6708 msgstr ""
6709 "呼び出し者と同じプロセス内の指定された POSIX スレッドにシグナルを送る。"
6710
6711 #. type: TP
6712 #: build/C/man7/signal.7:123
6713 #, no-wrap
6714 msgid "B<tgkill>(2)"
6715 msgstr "B<tgkill>(2)"
6716
6717 #. type: Plain text
6718 #: build/C/man7/signal.7:128
6719 msgid ""
6720 "Sends a signal to a specified thread within a specific process.  (This is "
6721 "the system call used to implement B<pthread_kill>(3).)"
6722 msgstr ""
6723 "指定されたプロセス内の指定されたスレッドにシグナルを送る (このシステムコール"
6724 "を使って B<pthread_kill>(3)  は実装されている)。"
6725
6726 #. type: Plain text
6727 #: build/C/man7/signal.7:131
6728 msgid "Sends a real-time signal with accompanying data to a specified process."
6729 msgstr "指定されたプロセスに付属データとともにリアルタイムシグナルを送る。"
6730
6731 #. type: SS
6732 #: build/C/man7/signal.7:131
6733 #, no-wrap
6734 msgid "Waiting for a signal to be caught"
6735 msgstr "シグナルが捕捉されるのを待つ"
6736
6737 #. type: Plain text
6738 #: build/C/man7/signal.7:135
6739 msgid ""
6740 "The following system calls suspend execution of the calling process or "
6741 "thread until a signal is caught (or an unhandled signal terminates the "
6742 "process):"
6743 msgstr ""
6744 "以下のシステムコールを使って、シグナルが捕捉されるまで 呼び出したプロセスやス"
6745 "レッドの実行を中断 (suspend) することができる (ハンドラが設定されていないシグ"
6746 "ナルによりそのプロセスが終了した 場合にも実行の停止は終了する)。"
6747
6748 #. type: TP
6749 #: build/C/man7/signal.7:135
6750 #, no-wrap
6751 msgid "B<pause>(2)"
6752 msgstr "B<pause>(2)"
6753
6754 #. type: Plain text
6755 #: build/C/man7/signal.7:138
6756 msgid "Suspends execution until any signal is caught."
6757 msgstr "何かシグナルが捕捉されるまで実行を停止する。"
6758
6759 #. type: TP
6760 #: build/C/man7/signal.7:138
6761 #, no-wrap
6762 msgid "B<sigsuspend>(2)"
6763 msgstr "B<sigsuspend>(2)"
6764
6765 #. type: Plain text
6766 #: build/C/man7/signal.7:142
6767 msgid ""
6768 "Temporarily changes the signal mask (see below) and suspends execution until "
6769 "one of the unmasked signals is caught."
6770 msgstr ""
6771 "一時的にシグナルマスク (下記参照) を変更し、 マスクされていないシグナルのいず"
6772 "れかが捕捉されるまで 実行を中断する。"
6773
6774 #. type: SS
6775 #: build/C/man7/signal.7:142
6776 #, no-wrap
6777 msgid "Synchronously accepting a signal"
6778 msgstr "シグナルの同期受信"
6779
6780 #. type: Plain text
6781 #: build/C/man7/signal.7:149
6782 msgid ""
6783 "Rather than asynchronously catching a signal via a signal handler, it is "
6784 "possible to synchronously accept the signal, that is, to block execution "
6785 "until the signal is delivered, at which point the kernel returns information "
6786 "about the signal to the caller.  There are two general ways to do this:"
6787 msgstr ""
6788 "シグナルハンドラ経由でシグナルを非同期 (asynchronously) で捕捉する以外にも、 "
6789 "シグナルを同期 (synchronously) して受け付けることもできる。 同期して受け付け"
6790 "るとは、シグナルが配送されるまで実行を停止 (block)  するということである。シ"
6791 "グナルを受け付けた際に、カーネルは そのシグナルに関する情報を呼び出し者に返"
6792 "す。 これを行う一般的な方法が二つある。"
6793
6794 #. type: Plain text
6795 #: build/C/man7/signal.7:157
6796 msgid ""
6797 "B<sigwaitinfo>(2), B<sigtimedwait>(2), and B<sigwait>(3)  suspend execution "
6798 "until one of the signals in a specified set is delivered.  Each of these "
6799 "calls returns information about the delivered signal."
6800 msgstr ""
6801 "B<sigwaitinfo>(2), B<sigtimedwait>(2), B<sigwait>(3)  は、指定されたシグナル"
6802 "集合のシグナルの一つが配送されるまで実行を中断する。 どのシステムコールや関数"
6803 "でも、配送されたシグナルに関する情報が返される。"
6804
6805 #. type: Plain text
6806 #: build/C/man7/signal.7:170
6807 msgid ""
6808 "B<signalfd>(2)  returns a file descriptor that can be used to read "
6809 "information about signals that are delivered to the caller.  Each B<read>"
6810 "(2)  from this file descriptor blocks until one of the signals in the set "
6811 "specified in the B<signalfd>(2)  call is delivered to the caller.  The "
6812 "buffer returned by B<read>(2)  contains a structure describing the signal."
6813 msgstr ""
6814 "B<signalfd>(2)  が返すファイルディスクリプタを使うと、呼び出し元に配送された "
6815 "シグナルに関する情報を読み出すことができる。 このファイルディスクリプタから"
6816 "の B<read>(2)  は、 B<signalfd>(2)  の呼び出し時に指定されたシグナル集合のシ"
6817 "グナルの一つが呼び出し元に 配送されるまで停止 (block) する。 B<read>(2)  が返"
6818 "すバッファにはシグナルに関する情報を格納した構造体が入っている。"
6819
6820 #. type: SS
6821 #: build/C/man7/signal.7:170
6822 #, no-wrap
6823 msgid "Signal mask and pending signals"
6824 msgstr "シグナルマスクと処理待ちシグナル"
6825
6826 #. type: Plain text
6827 #: build/C/man7/signal.7:177
6828 msgid ""
6829 "A signal may be I<blocked>, which means that it will not be delivered until "
6830 "it is later unblocked.  Between the time when it is generated and when it is "
6831 "delivered a signal is said to be I<pending>."
6832 msgstr ""
6833 "シグナルは I<ブロック (block)> されることがある。ブロックされると、そのシグナ"
6834 "ルは その後ブロックを解除されるまで配送されなくなる。 シグナルが生成されてか"
6835 "ら配送されるまでの間、そのシグナルは I<処理待ち (pending)> であると呼ばれる。"
6836
6837 #. type: Plain text
6838 #: build/C/man7/signal.7:186
6839 msgid ""
6840 "Each thread in a process has an independent I<signal mask>, which indicates "
6841 "the set of signals that the thread is currently blocking.  A thread can "
6842 "manipulate its signal mask using B<pthread_sigmask>(3).  In a traditional "
6843 "single-threaded application, B<sigprocmask>(2)  can be used to manipulate "
6844 "the signal mask."
6845 msgstr ""
6846 "プロセス内の各スレッドは、それぞれ独立な I<シグナルマスク (signal mask)> を持"
6847 "つ。シグナルマスクはそのスレッドが現在ブロックしている シグナル集合を示すもの"
6848 "である。 スレッドは、 B<pthread_sigmask>(3)  を使って自分のシグナルマスクを操"
6849 "作できる。 伝統的なシングルスレッドのアプリケーションでは、 B<sigprocmask>"
6850 "(2)  を使って、シグナルマスクを操作できる。"
6851
6852 #. type: Plain text
6853 #: build/C/man7/signal.7:192 build/C/man2/sigprocmask.2:123
6854 msgid ""
6855 "A child created via B<fork>(2)  inherits a copy of its parent's signal mask; "
6856 "the signal mask is preserved across B<execve>(2)."
6857 msgstr ""
6858 "B<fork>(2)  経由で作成された子プロセスは親プロセスのシグナルマスクのコピーを"
6859 "継承する。 B<execve>(2)  の前後でシグナルマスクは保持される。"
6860
6861 #. type: Plain text
6862 #: build/C/man7/signal.7:209
6863 msgid ""
6864 "A signal may be generated (and thus pending)  for a process as a whole (e."
6865 "g., when sent using B<kill>(2))  or for a specific thread (e.g., certain "
6866 "signals, such as B<SIGSEGV> and B<SIGFPE>, generated as a consequence of "
6867 "executing a specific machine-language instruction are thread directed, as "
6868 "are signals targeted at a specific thread using B<pthread_kill>(3)).  A "
6869 "process-directed signal may be delivered to any one of the threads that does "
6870 "not currently have the signal blocked.  If more than one of the threads has "
6871 "the signal unblocked, then the kernel chooses an arbitrary thread to which "
6872 "to deliver the signal."
6873 msgstr ""
6874 "生成されるシグナル (したがって処理待ちとなるシグナル) には、 プロセス全体宛て"
6875 "と特定のスレッド宛てがある。 例えば、プロセス全体宛てのシグナルは B<kill>"
6876 "(2)  を使って送信される。 特定のマシン語の命令の実行の結果として生成される、 "
6877 "B<SIGSEGV> や B<SIGFPE> などのシグナルは、スレッド宛てとなる。 また、 "
6878 "B<pthread_kill>(3)  を使って特定のスレッド宛てに生成されたシグナルも スレッド"
6879 "宛てとなる。 プロセス宛てのシグナルは、そのシグナルをブロックしていないスレッ"
6880 "ドのうち いずれかの一つに配送することができる。そのシグナルをブロックしていな"
6881 "い スレッドが複数ある場合、シグナルを配送するスレッドはカーネルが 無作為に選"
6882 "択する。"
6883
6884 #. type: Plain text
6885 #: build/C/man7/signal.7:216
6886 msgid ""
6887 "A thread can obtain the set of signals that it currently has pending using "
6888 "B<sigpending>(2).  This set will consist of the union of the set of pending "
6889 "process-directed signals and the set of signals pending for the calling "
6890 "thread."
6891 msgstr ""
6892 "スレッドは、 B<sigpending>(2)  を使って、現在処理待ちのシグナル集合を取得する"
6893 "ことができる。 この集合は、プロセス宛ての処理待ちシグナルと 呼び出したスレッ"
6894 "ド宛てのシグナルの両方から構成される。"
6895
6896 #. type: Plain text
6897 #: build/C/man7/signal.7:222 build/C/man2/sigpending.2:78
6898 msgid ""
6899 "A child created via B<fork>(2)  initially has an empty pending signal set; "
6900 "the pending signal set is preserved across an B<execve>(2)."
6901 msgstr ""
6902 "B<fork>(2)  経由で作成された子プロセスでは、処理待ちのシグナル集合は空の集合"
6903 "で初期化される。 B<execve>(2)  の前後で、処理待ちのシグナル集合は保持される。"
6904
6905 #. type: SS
6906 #: build/C/man7/signal.7:222
6907 #, no-wrap
6908 msgid "Standard signals"
6909 msgstr "標準シグナル"
6910
6911 #. type: Plain text
6912 #: build/C/man7/signal.7:234
6913 msgid ""
6914 "Linux supports the standard signals listed below.  Several signal numbers "
6915 "are architecture-dependent, as indicated in the \"Value\" column.  (Where "
6916 "three values are given, the first one is usually valid for alpha and sparc, "
6917 "the middle one for x86, arm, and most other architectures, and the last one "
6918 "for mips.  (Values for parisc are I<not> shown; see the Linux kernel source "
6919 "for signal numbering on that architecture.)  A - denotes that a signal is "
6920 "absent on the corresponding architecture.)"
6921 msgstr ""
6922 "Linux は以下に示す標準シグナルに対応している。シグナル番号の一部はアー\n"
6923 "キテクチャ依存であり、\"値\" 欄に示す通りである。 (3つの値が書かれている\n"
6924 "ものは、 1つ目が alpha と sparc で通常有効な値、 真ん中が x86, arm や\n"
6925 "他のほとんどのアーキテクチャでの有効な値、最後が mips での値である。\n"
6926 "(parisc での値は記載されてI<いない>。 parisc でのシグナル番号は\n"
6927 "Linux カーネルソースを参照してほしい)。 - はそのアーキテ\n"
6928 "クチャにおいて対応するシグナルがないことを示す。)"
6929
6930 #. type: Plain text
6931 #: build/C/man7/signal.7:236
6932 msgid "First the signals described in the original POSIX.1-1990 standard."
6933 msgstr "最初に、POSIX.1-1990 に定義されているシグナルを示す。"
6934
6935 #. type: tbl table
6936 #: build/C/man7/signal.7:240 build/C/man7/signal.7:276
6937 #: build/C/man7/signal.7:305
6938 #, no-wrap
6939 msgid "Signal\tValue\tAction\tComment\n"
6940 msgstr "シグナル\t値\t動作\tコメント\n"
6941
6942 #. type: tbl table
6943 #: build/C/man7/signal.7:241
6944 #, no-wrap
6945 msgid "SIGHUP\t\\01\tTerm\tHangup detected on controlling terminal\n"
6946 msgstr "SIGHUP\t\\01\tTerm\t制御端末(controlling terminal)のハングアップ検出、\n"
6947
6948 #. type: tbl table
6949 #: build/C/man7/signal.7:242
6950 #, no-wrap
6951 msgid "\t\t\tor death of controlling process\n"
6952 msgstr "\t\t\tまたは制御しているプロセスの死\n"
6953
6954 #. type: tbl table
6955 #: build/C/man7/signal.7:243
6956 #, no-wrap
6957 msgid "SIGINT\t\\02\tTerm\tInterrupt from keyboard\n"
6958 msgstr "SIGINT\t\\02\tTerm\tキーボードからの割り込み (Interrupt)\n"
6959
6960 #. type: tbl table
6961 #: build/C/man7/signal.7:244
6962 #, no-wrap
6963 msgid "SIGQUIT\t\\03\tCore\tQuit from keyboard\n"
6964 msgstr "SIGQUIT\t\\03\tCore\tキーボードによる中止 (Quit)\n"
6965
6966 #. type: tbl table
6967 #: build/C/man7/signal.7:245
6968 #, no-wrap
6969 msgid "SIGILL\t\\04\tCore\tIllegal Instruction\n"
6970 msgstr "SIGILL\t\\04\tCore\t不正な命令\n"
6971
6972 #. type: tbl table
6973 #: build/C/man7/signal.7:246
6974 #, no-wrap
6975 msgid "SIGABRT\t\\06\tCore\tAbort signal from B<abort>(3)\n"
6976 msgstr "SIGABRT\t\\06\tCore\tB<abort>(3) からの中断 (Abort) シグナル\n"
6977
6978 #. type: tbl table
6979 #: build/C/man7/signal.7:247
6980 #, no-wrap
6981 msgid "SIGFPE\t\\08\tCore\tFloating point exception\n"
6982 msgstr "SIGFPE\t\\08\tCore\t浮動小数点例外\n"
6983
6984 #. type: tbl table
6985 #: build/C/man7/signal.7:248
6986 #, no-wrap
6987 msgid "SIGKILL\t\\09\tTerm\tKill signal\n"
6988 msgstr "SIGKILL\t\\09\tTerm\tKill シグナル\n"
6989
6990 #. type: tbl table
6991 #: build/C/man7/signal.7:249
6992 #, no-wrap
6993 msgid "SIGSEGV\t11\tCore\tInvalid memory reference\n"
6994 msgstr "SIGSEGV\t11\tCore\t不正なメモリ参照\n"
6995
6996 #. type: tbl table
6997 #: build/C/man7/signal.7:250
6998 #, no-wrap
6999 msgid "SIGPIPE\t13\tTerm\tBroken pipe: write to pipe with no\n"
7000 msgstr "SIGPIPE\t13\tTerm\tパイプ破壊:\n"
7001
7002 #. type: tbl table
7003 #: build/C/man7/signal.7:251
7004 #, no-wrap
7005 msgid "\t\t\treaders\n"
7006 msgstr "\t\t\t読み手の無いパイプへの書き出し\n"
7007
7008 #. type: tbl table
7009 #: build/C/man7/signal.7:252
7010 #, no-wrap
7011 msgid "SIGALRM\t14\tTerm\tTimer signal from B<alarm>(2)\n"
7012 msgstr "SIGALRM\t14\tTerm\tB<alarm>(2) からのタイマーシグナル\n"
7013
7014 #. type: tbl table
7015 #: build/C/man7/signal.7:253
7016 #, no-wrap
7017 msgid "SIGTERM\t15\tTerm\tTermination signal\n"
7018 msgstr "SIGTERM\t15\tTerm\t終了 (termination) シグナル\n"
7019
7020 #. type: tbl table
7021 #: build/C/man7/signal.7:254
7022 #, no-wrap
7023 msgid "SIGUSR1\t30,10,16\tTerm\tUser-defined signal 1\n"
7024 msgstr "SIGUSR1\t30,10,16\tTerm\tユーザ定義シグナル 1\n"
7025
7026 #. type: tbl table
7027 #: build/C/man7/signal.7:255
7028 #, no-wrap
7029 msgid "SIGUSR2\t31,12,17\tTerm\tUser-defined signal 2\n"
7030 msgstr "SIGUSR2\t31,12,17\tTerm\tユーザ定義シグナル 2\n"
7031
7032 #. type: tbl table
7033 #: build/C/man7/signal.7:256
7034 #, no-wrap
7035 msgid "SIGCHLD\t20,17,18\tIgn\tChild stopped or terminated\n"
7036 msgstr "SIGCHLD\t20,17,18\tIgn\t子プロセスの一時停止 (stop) または終了\n"
7037
7038 #. type: tbl table
7039 #: build/C/man7/signal.7:257
7040 #, no-wrap
7041 msgid "SIGCONT\t19,18,25\tCont\tContinue if stopped\n"
7042 msgstr "SIGCONT\t19,18,25\tCont\t一時停止 (stop) からの再開\n"
7043
7044 #. type: tbl table
7045 #: build/C/man7/signal.7:258
7046 #, no-wrap
7047 msgid "SIGSTOP\t17,19,23\tStop\tStop process\n"
7048 msgstr "SIGSTOP\t17,19,23\tStop\tプロセスの一時停止 (stop)\n"
7049
7050 #. type: tbl table
7051 #: build/C/man7/signal.7:259
7052 #, no-wrap
7053 msgid "SIGTSTP\t18,20,24\tStop\tStop typed at terminal\n"
7054 msgstr "SIGTSTP\t18,20,24\tStop\t端末より入力された一時停止 (stop)\n"
7055
7056 #. type: tbl table
7057 #: build/C/man7/signal.7:260
7058 #, no-wrap
7059 msgid "SIGTTIN\t21,21,26\tStop\tTerminal input for background process\n"
7060 msgstr "SIGTTIN\t21,21,26\tStop\tバックグランドプロセスの端末入力\n"
7061
7062 #. type: tbl table
7063 #: build/C/man7/signal.7:261
7064 #, no-wrap
7065 msgid "SIGTTOU\t22,22,27\tStop\tTerminal output for background process\n"
7066 msgstr "SIGTTOU\t22,22,27\tStop\tバックグランドプロセスの端末出力\n"
7067
7068 #. type: Plain text
7069 #: build/C/man7/signal.7:269
7070 msgid ""
7071 "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught, blocked, or ignored."
7072 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> はキャッチ、ブロック、無視できない。"
7073
7074 #. type: Plain text
7075 #: build/C/man7/signal.7:272
7076 msgid ""
7077 "Next the signals not in the POSIX.1-1990 standard but described in SUSv2 and "
7078 "POSIX.1-2001."
7079 msgstr ""
7080 "次に、 POSIX.1-1990 標準にはないが、 SUSv2 と POSIX.1-2001 に記述されているシ"
7081 "グナルを示す。"
7082
7083 #. type: tbl table
7084 #: build/C/man7/signal.7:277
7085 #, no-wrap
7086 msgid "SIGBUS\t10,7,10\tCore\tBus error (bad memory access)\n"
7087 msgstr "SIGBUS\t10,7,10\tCore\tバスエラー (不正なメモリアクセス)\n"
7088
7089 #. type: tbl table
7090 #: build/C/man7/signal.7:278
7091 #, no-wrap
7092 msgid "SIGPOLL\t\tTerm\tPollable event (Sys V).\n"
7093 msgstr "SIGPOLL\t\tTerm\tポーリング可能なイベント (Sys V)。\n"
7094
7095 #. type: tbl table
7096 #: build/C/man7/signal.7:279
7097 #, no-wrap
7098 msgid "\t\t\tSynonym for B<SIGIO>\n"
7099 msgstr "\t\t\tB<SIGIO> と同義\n"
7100
7101 #. type: tbl table
7102 #: build/C/man7/signal.7:280
7103 #, no-wrap
7104 msgid "SIGPROF\t27,27,29\tTerm\tProfiling timer expired\n"
7105 msgstr "SIGPROF\t27,27,29\tTerm\tprofiling タイマの時間切れ\n"
7106
7107 #. type: tbl table
7108 #: build/C/man7/signal.7:281
7109 #, no-wrap
7110 msgid "SIGSYS\t12,31,12\tCore\tBad argument to routine (SVr4)\n"
7111 msgstr "SIGSYS\t12,31,12\tCore\tルーチンへの引き数が不正 (SVr4)\n"
7112
7113 #. type: tbl table
7114 #: build/C/man7/signal.7:282
7115 #, no-wrap
7116 msgid "SIGTRAP\t5\tCore\tTrace/breakpoint trap\n"
7117 msgstr "SIGTRAP\t5\tCore\tトレース/ブレークポイント トラップ\n"
7118
7119 #. type: tbl table
7120 #: build/C/man7/signal.7:283
7121 #, no-wrap
7122 msgid "SIGURG\t16,23,21\tIgn\tUrgent condition on socket (4.2BSD)\n"
7123 msgstr "SIGURG\t16,23,21\tIgn\tソケットの緊急事態 (urgent condition) (4.2BSD)\n"
7124
7125 #. type: tbl table
7126 #: build/C/man7/signal.7:284
7127 #, no-wrap
7128 msgid "SIGVTALRM\t26,26,28\tTerm\tVirtual alarm clock (4.2BSD)\n"
7129 msgstr "SIGVTALRM\t26,26,28\tTerm\t仮想アラームクロック (4.2BSD)\n"
7130
7131 #. type: tbl table
7132 #: build/C/man7/signal.7:285
7133 #, no-wrap
7134 msgid "SIGXCPU\t24,24,30\tCore\tCPU time limit exceeded (4.2BSD)\n"
7135 msgstr "SIGXCPU\t24,24,30\tCore\tCPU時間制限超過 (4.2BSD)\n"
7136
7137 #. type: tbl table
7138 #: build/C/man7/signal.7:286
7139 #, no-wrap
7140 msgid "SIGXFSZ\t25,25,31\tCore\tFile size limit exceeded (4.2BSD)\n"
7141 msgstr "SIGXFSZ\t25,25,31\tCore\tファイルサイズ制限の超過 (4.2BSD)\n"
7142
7143 #. type: Plain text
7144 #: build/C/man7/signal.7:299
7145 msgid ""
7146 "Up to and including Linux 2.2, the default behavior for B<SIGSYS>, "
7147 "B<SIGXCPU>, B<SIGXFSZ>, and (on architectures other than SPARC and MIPS)  "
7148 "B<SIGBUS> was to terminate the process (without a core dump).  (On some "
7149 "other UNIX systems the default action for B<SIGXCPU> and B<SIGXFSZ> is to "
7150 "terminate the process without a core dump.)  Linux 2.4 conforms to the "
7151 "POSIX.1-2001 requirements for these signals, terminating the process with a "
7152 "core dump."
7153 msgstr ""
7154 "Linux 2.2 以前では、 B<SIGSYS>, B<SIGXCPU>, B<SIGXFSZ> および SPARC と MIPS "
7155 "以外のアーキテクチャでの B<SIGBUS> のデフォルトの振る舞いは (コアダンプ出力な"
7156 "しの) プロセス終了であった。 (他の UNIX システムにも B<SIGXCPU> と "
7157 "B<SIGXFSZ> のデフォルトの動作がコアダンプなしのプロセス終了のものがある。)  "
7158 "Linux 2.4 では、POSIX.1-2001 での要求仕様に準拠して、 これらのシグナルで、プ"
7159 "ロセスを終了させ、コアダンプを出力する ようになっている。"
7160
7161 #. type: Plain text
7162 #: build/C/man7/signal.7:301
7163 msgid "Next various other signals."
7164 msgstr "次にその他の各種シグナルを示す。"
7165
7166 #. type: tbl table
7167 #: build/C/man7/signal.7:306
7168 #, no-wrap
7169 msgid "SIGIOT\t6\tCore\tIOT trap. A synonym for B<SIGABRT>\n"
7170 msgstr "SIGIOT\t6\tCore\tIOT トラップ。B<SIGABRT> と同義\n"
7171
7172 #. type: tbl table
7173 #: build/C/man7/signal.7:307
7174 #, no-wrap
7175 msgid "SIGEMT\t7,-,7\tTerm\n"
7176 msgstr "SIGEMT\t7,-,7\tTerm\n"
7177
7178 #. type: tbl table
7179 #: build/C/man7/signal.7:308
7180 #, no-wrap
7181 msgid "SIGSTKFLT\t-,16,-\tTerm\tStack fault on coprocessor (unused)\n"
7182 msgstr "SIGSTKFLT\t-,16,-\tA\t数値演算プロセッサにおけるスタックフォルト (未使用)\n"
7183
7184 #. type: tbl table
7185 #: build/C/man7/signal.7:309
7186 #, no-wrap
7187 msgid "SIGIO\t23,29,22\tTerm\tI/O now possible (4.2BSD)\n"
7188 msgstr "SIGIO\t23,29,22\tTerm\t入出力が可能になった (4.2BSD)\n"
7189
7190 #. type: tbl table
7191 #: build/C/man7/signal.7:310
7192 #, no-wrap
7193 msgid "SIGCLD\t-,-,18\tIgn\tA synonym for B<SIGCHLD>\n"
7194 msgstr "SIGCLD\t-,-,18\tIgn\tB<SIGCHLD> と同義\n"
7195
7196 #. type: tbl table
7197 #: build/C/man7/signal.7:311
7198 #, no-wrap
7199 msgid "SIGPWR\t29,30,19\tTerm\tPower failure (System V)\n"
7200 msgstr "SIGPWR\t29,30,19\tTerm\t電源喪失 (Power failure) (System V)\n"
7201
7202 #. type: tbl table
7203 #: build/C/man7/signal.7:312
7204 #, no-wrap
7205 msgid "SIGINFO\t29,-,-\t\tA synonym for B<SIGPWR>\n"
7206 msgstr "SIGINFO\t29,-,-\t \tB<SIGPWR> と同義\n"
7207
7208 #. type: tbl table
7209 #: build/C/man7/signal.7:313
7210 #, no-wrap
7211 msgid "SIGLOST\t-,-,-\tTerm\tFile lock lost (unused)\n"
7212 msgstr "SIGLOST\t-,-,-\tTerm\tファイルロックが失われた (未使用)\n"
7213
7214 #. type: tbl table
7215 #: build/C/man7/signal.7:314
7216 #, no-wrap
7217 msgid "SIGWINCH\t28,28,20\tIgn\tWindow resize signal (4.3BSD, Sun)\n"
7218 msgstr "SIGWINCH\t28,28,20\tIgn\tウィンドウ リサイズ シグナル (4.3BSD, Sun)\n"
7219
7220 #. type: tbl table
7221 #: build/C/man7/signal.7:315
7222 #, no-wrap
7223 msgid "SIGUNUSED\t-,31,-\tCore\tSynonymous with B<SIGSYS>\n"
7224 msgstr "SIGUNUSED\t-,31,-\tCore\tB<SIGSYS> と同義\n"
7225
7226 #. type: Plain text
7227 #: build/C/man7/signal.7:325
7228 msgid ""
7229 "(Signal 29 is B<SIGINFO> / B<SIGPWR> on an alpha but B<SIGLOST> on a sparc.)"
7230 msgstr ""
7231 "(シグナル 29 は alpha では B<SIGINFO> / B<SIGPWR> だが、sparc では "
7232 "B<SIGLOST> である。)"
7233
7234 #. type: Plain text
7235 #: build/C/man7/signal.7:331
7236 msgid ""
7237 "B<SIGEMT> is not specified in POSIX.1-2001, but nevertheless appears on most "
7238 "other UNIX systems, where its default action is typically to terminate the "
7239 "process with a core dump."
7240 msgstr ""
7241 "B<SIGEMT> は POSIX.1-2001 に規定されていないが、 その他の多くの UNIX システム"
7242 "に存在する。 デフォルトの動作は多くの場合、コアダンプ出力を伴うプロセスの終了"
7243 "である。"
7244
7245 #. type: Plain text
7246 #: build/C/man7/signal.7:335
7247 msgid ""
7248 "B<SIGPWR> (which is not specified in POSIX.1-2001) is typically ignored by "
7249 "default on those other UNIX systems where it appears."
7250 msgstr ""
7251 "B<SIGPWR> は (POSIX.1-2001 に規定されていないが) このシグナルが存在する 他の "
7252 "UNIX システムでは多くの場合、デフォルト動作は無視である。"
7253
7254 #. type: Plain text
7255 #: build/C/man7/signal.7:339
7256 msgid ""
7257 "B<SIGIO> (which is not specified in POSIX.1-2001) is ignored by default on "
7258 "several other UNIX systems."
7259 msgstr ""
7260 "B<SIGIO> は (POSIX.1-2001 に規定されていないが) いくつかの他の UNIX システム"
7261 "では デフォルト動作は無視である。"
7262
7263 #.  parisc is the only exception: SIGSYS is 12, SIGUNUSED is 31
7264 #. type: Plain text
7265 #: build/C/man7/signal.7:346
7266 msgid ""
7267 "Where defined, B<SIGUNUSED> is synonymous with B<SIGSYS> on most "
7268 "architectures."
7269 msgstr ""
7270 "B<SIGUNUSED> が定義されている場合には、ほとんどのアーキテクチャで B<SIGSYS> "
7271 "の同義語となっている。"
7272
7273 #. type: SS
7274 #: build/C/man7/signal.7:346
7275 #, no-wrap
7276 msgid "Real-time signals"
7277 msgstr "リアルタイムシグナル"
7278
7279 #. type: Plain text
7280 #: build/C/man7/signal.7:356
7281 msgid ""
7282 "Linux supports real-time signals as originally defined in the POSIX.1b real-"
7283 "time extensions (and now included in POSIX.1-2001).  The range of supported "
7284 "real-time signals is defined by the macros B<SIGRTMIN> and B<SIGRTMAX>.  "
7285 "POSIX.1-2001 requires that an implementation support at least "
7286 "B<_POSIX_RTSIG_MAX> (8) real-time signals."
7287 msgstr ""
7288 "Linux はリアルタイムシグナルをサポートしている。 リアルタイムシグナルは元々 "
7289 "POSIX.1b のリアルタイム拡張で定義されて いるものであり、現在では "
7290 "POSIX.1-2001 に含まれている。 対応しているリアルタイムシグナルの範囲は、マク"
7291 "ロ B<SIGRTMIN> と B<SIGRTMAX> で定義される。 POSIX.1-2001 では、少なくとも "
7292 "B<_POSIX_RTSIG_MAX> (8) 個のリアルタイムシグナルに対応した実装が要求されてい"
7293 "る。"
7294
7295 #. type: Plain text
7296 #: build/C/man7/signal.7:378
7297 msgid ""
7298 "The Linux kernel supports a range of 32 different real-time signals, "
7299 "numbered 33 to 64.  However, the glibc POSIX threads implementation "
7300 "internally uses two (for NPTL) or three (for LinuxThreads) real-time signals "
7301 "(see B<pthreads>(7)), and adjusts the value of B<SIGRTMIN> suitably (to 34 "
7302 "or 35).  Because the range of available real-time signals varies according "
7303 "to the glibc threading implementation (and this variation can occur at run "
7304 "time according to the available kernel and glibc), and indeed the range of "
7305 "real-time signals varies across UNIX systems, programs should I<never refer "
7306 "to real-time signals using hard-coded numbers>, but instead should always "
7307 "refer to real-time signals using the notation B<SIGRTMIN>+n, and include "
7308 "suitable (run-time) checks that B<SIGRTMIN>+n does not exceed B<SIGRTMAX>."
7309 msgstr ""
7310 "Linux は、32 個の異なるリアルタイムシグナルに対応しており、 その番号は 33 か"
7311 "ら 64 である。 しかしながら、glibc の POSIX スレッド実装は、 内部で 2個 "
7312 "(NPTL の場合) か 3個 (LinuxThreads の場合) の リアルタイムシグナルを使用して"
7313 "おり (B<pthreads>(7)  参照)、 B<SIGRTMIN> の値を適切に (34 か 35 に) 調整す"
7314 "る。 利用可能なリアルタイムシグナルの範囲は glibc のスレッド実装により 異なる"
7315 "し (使用するカーネルと glibc により実行時にも変化する)、 UNIX システムの種類"
7316 "によっても異なる。したがって、 プログラムでは「ハードコーディングした数字を"
7317 "使ってのリアルタイムシグナルの 参照は決してすべきではなく」、代わりに "
7318 "B<SIGRTMIN>+n の形で参照すべきである。また、 B<SIGRTMIN>+n が B<SIGRTMAX> を"
7319 "超えていないかのチェックを (実行時に) 適切に行うべきである。"
7320
7321 #. type: Plain text
7322 #: build/C/man7/signal.7:382
7323 msgid ""
7324 "Unlike standard signals, real-time signals have no predefined meanings: the "
7325 "entire set of real-time signals can be used for application-defined purposes."
7326 msgstr ""
7327 "標準シグナルと異なり、リアルタイムシグナルには 事前に定義された意味はない。 "
7328 "リアルタイムシグナルの全部をアプリケーションで定義した用途に使える。"
7329
7330 #. type: Plain text
7331 #: build/C/man7/signal.7:385
7332 msgid ""
7333 "The default action for an unhandled real-time signal is to terminate the "
7334 "receiving process."
7335 msgstr ""
7336 "ハンドリングしないリアルタイムシグナルのデフォルトの動作は 受信したプロセスの"
7337 "終了である。"
7338
7339 #. type: Plain text
7340 #: build/C/man7/signal.7:387
7341 msgid "Real-time signals are distinguished by the following:"
7342 msgstr "リアルタイムシグナルは以下の特徴がある:"
7343
7344 #. type: Plain text
7345 #: build/C/man7/signal.7:391
7346 msgid ""
7347 "Multiple instances of real-time signals can be queued.  By contrast, if "
7348 "multiple instances of a standard signal are delivered while that signal is "
7349 "currently blocked, then only one instance is queued."
7350 msgstr ""
7351 "リアルタイムシグナルは複数の実体をキューに入れることができる。 一方、標準シグ"
7352 "ナルの場合、そのシグナルがブロックされている間に 同じシグナルの複数のインスタ"
7353 "ンスが配送されても、 1 つだけがキューに入れられる。"
7354
7355 #. type: Plain text
7356 #: build/C/man7/signal.7:411
7357 msgid ""
7358 "If the signal is sent using B<sigqueue>(3), an accompanying value (either an "
7359 "integer or a pointer) can be sent with the signal.  If the receiving process "
7360 "establishes a handler for this signal using the B<SA_SIGINFO> flag to "
7361 "B<sigaction>(2)  then it can obtain this data via the I<si_value> field of "
7362 "the I<siginfo_t> structure passed as the second argument to the handler.  "
7363 "Furthermore, the I<si_pid> and I<si_uid> fields of this structure can be "
7364 "used to obtain the PID and real user ID of the process sending the signal."
7365 msgstr ""
7366 "シグナルが B<sigqueue>(3)  を用いて送信された場合、 付属データ (整数かポイン"
7367 "タ) をシグナルと共に送信できる。 受信側プロセスが B<sigaction>(2)  に "
7368 "B<SA_SIGINFO> フラグを指定してシグナルハンドラを設定した場合、 このデータは "
7369 "I<siginfo_t> 構造体の I<si_value> フィールド経由でハンドラの第 2 引き数として"
7370 "渡され、 利用することができる。 さらに、この構造体の I<si_pid> と I<si_uid> "
7371 "フィールドでシグナルを送信したプロセスの PID と実ユーザ ID を 得ることができ"
7372 "る。"
7373
7374 #. type: Plain text
7375 #: build/C/man7/signal.7:420
7376 msgid ""
7377 "Real-time signals are delivered in a guaranteed order.  Multiple real-time "
7378 "signals of the same type are delivered in the order they were sent.  If "
7379 "different real-time signals are sent to a process, they are delivered "
7380 "starting with the lowest-numbered signal.  (I.e., low-numbered signals have "
7381 "highest priority.)  By contrast, if multiple standard signals are pending "
7382 "for a process, the order in which they are delivered is unspecified."
7383 msgstr ""
7384 "リアルタイムシグナルでは配送される順序が保証される。 同じタイプのリアルタイム"
7385 "シグナルは送信された順番に到着する。 異なるリアルタイムシグナルが一つのプロセ"
7386 "スに送信された場合、 番号の小さいシグナルから先に到着する。 (つまり小さい番号"
7387 "のシグナルが高い優先順位を持つ。)  対照的に、一つのプロセスに対して複数の標準"
7388 "シグナルが処理待ちとなった場合、 これらのシグナルが配送される順序は不定であ"
7389 "る。"
7390
7391 #. type: Plain text
7392 #: build/C/man7/signal.7:425
7393 msgid ""
7394 "If both standard and real-time signals are pending for a process, POSIX "
7395 "leaves it unspecified which is delivered first.  Linux, like many other "
7396 "implementations, gives priority to standard signals in this case."
7397 msgstr ""
7398 "一つのプロセスに対して標準シグナルとリアルタイムシグナルの両方が 処理待ちの場"
7399 "合、POSIX はどちらが先に配送されるかを規定していない。 Linux では、他の多くの"
7400 "実装と同様、このような場合には 標準シグナルが優先される。"
7401
7402 #. type: Plain text
7403 #: build/C/man7/signal.7:448
7404 msgid ""
7405 "According to POSIX, an implementation should permit at least "
7406 "B<_POSIX_SIGQUEUE_MAX> (32) real-time signals to be queued to a process.  "
7407 "However, Linux does things differently.  In kernels up to and including "
7408 "2.6.7, Linux imposes a system-wide limit on the number of queued real-time "
7409 "signals for all processes.  This limit can be viewed and (with privilege) "
7410 "changed via the I</proc/sys/kernel/rtsig-max> file.  A related file, I</proc/"
7411 "sys/kernel/rtsig-nr>, can be used to find out how many real-time signals are "
7412 "currently queued.  In Linux 2.6.8, these I</proc> interfaces were replaced "
7413 "by the B<RLIMIT_SIGPENDING> resource limit, which specifies a per-user limit "
7414 "for queued signals; see B<setrlimit>(2)  for further details."
7415 msgstr ""
7416 "POSIX によれば、1 プロセス毎に最低 B<_POSIX_SIGQUEUE_MAX> (32) 個のリアルタイ"
7417 "ムシグナルをキューに入れられるべきとしている。 しかし、 Linux では違った実装"
7418 "になっている。カーネル 2.6.7 までは (2.6.7 を含む)、全プロセスでキューに入っ"
7419 "ているリアルタイムシグナル の数の合計についてシステム全体での制限がある。 こ"
7420 "の制限は I</proc/sys/kernel/rtsig-max> ファイルで見ることができ、 (権限があれ"
7421 "ば) 変更もできる。 関係するファイルとして、 I</proc/sys/kernel/rtsig-nr> を見"
7422 "ることで、いくつのリアルタイムシグナルが現在キューに入っているかを 知ることが"
7423 "できる。 Linux 2.6.8 で、これらの I</proc> 経由のインターフェースは、 "
7424 "B<RLIMIT_SIGPENDING> リソース制限に置き換えられた。 これは、キューに入るシグ"
7425 "ナル数に関してユーザ単位に 上限を指定するものである。 詳しくは B<setrlimit>"
7426 "(2)  を参照。"
7427
7428 #. type: SS
7429 #: build/C/man7/signal.7:448
7430 #, no-wrap
7431 msgid "Async-signal-safe functions"
7432 msgstr "非同期シグナルで安全な関数 (async-signal-safe functions)"
7433
7434 #. type: Plain text
7435 #: build/C/man7/signal.7:457
7436 msgid ""
7437 "A signal handler function must be very careful, since processing elsewhere "
7438 "may be interrupted at some arbitrary point in the execution of the program.  "
7439 "POSIX has the concept of \"safe function\".  If a signal interrupts the "
7440 "execution of an unsafe function, and I<handler> calls an unsafe function, "
7441 "then the behavior of the program is undefined."
7442 msgstr ""
7443 "シグナルハンドラ関数には非常に注意しなければならない。 他の場所の処理はプログ"
7444 "ラム実行の任意の箇所で中断される可能性があるためである。 POSIX には「安全な関"
7445 "数 (safe function)」という概念がある。 シグナルが安全でない関数の実行を中断"
7446 "し、かつ I<handler> が安全でない関数を呼び出した場合、プログラムの挙動は未定"
7447 "義である。"
7448
7449 #. type: Plain text
7450 #: build/C/man7/signal.7:461
7451 msgid ""
7452 "POSIX.1-2004 (also known as POSIX.1-2001 Technical Corrigendum 2)  requires "
7453 "an implementation to guarantee that the following functions can be safely "
7454 "called inside a signal handler:"
7455 msgstr ""
7456 "POSIX.1-2004 (POSIX.1-2001 Technical Corrigendum (正誤表) 2 とも言う) では、 "
7457 "シグナルハンドラ内での安全な呼び出しを保証することが必須の関数として 以下が規"
7458 "定されている。"
7459
7460 #. type: Plain text
7461 #: build/C/man7/signal.7:582
7462 #, no-wrap
7463 msgid ""
7464 "_Exit()\n"
7465 "_exit()\n"
7466 "abort()\n"
7467 "accept()\n"
7468 "access()\n"
7469 "aio_error()\n"
7470 "aio_return()\n"
7471 "aio_suspend()\n"
7472 "alarm()\n"
7473 "bind()\n"
7474 "cfgetispeed()\n"
7475 "cfgetospeed()\n"
7476 "cfsetispeed()\n"
7477 "cfsetospeed()\n"
7478 "chdir()\n"
7479 "chmod()\n"
7480 "chown()\n"
7481 "clock_gettime()\n"
7482 "close()\n"
7483 "connect()\n"
7484 "creat()\n"
7485 "dup()\n"
7486 "dup2()\n"
7487 "execle()\n"
7488 "execve()\n"
7489 "fchmod()\n"
7490 "fchown()\n"
7491 "fcntl()\n"
7492 "fdatasync()\n"
7493 "fork()\n"
7494 "fpathconf()\n"
7495 "fstat()\n"
7496 "fsync()\n"
7497 "ftruncate()\n"
7498 "getegid()\n"
7499 "geteuid()\n"
7500 "getgid()\n"
7501 "getgroups()\n"
7502 "getpeername()\n"
7503 "getpgrp()\n"
7504 "getpid()\n"
7505 "getppid()\n"
7506 "getsockname()\n"
7507 "getsockopt()\n"
7508 "getuid()\n"
7509 "kill()\n"
7510 "link()\n"
7511 "listen()\n"
7512 "lseek()\n"
7513 "lstat()\n"
7514 "mkdir()\n"
7515 "mkfifo()\n"
7516 "open()\n"
7517 "pathconf()\n"
7518 "pause()\n"
7519 "pipe()\n"
7520 "poll()\n"
7521 "posix_trace_event()\n"
7522 "pselect()\n"
7523 "raise()\n"
7524 "read()\n"
7525 "readlink()\n"
7526 "recv()\n"
7527 "recvfrom()\n"
7528 "recvmsg()\n"
7529 "rename()\n"
7530 "rmdir()\n"
7531 "select()\n"
7532 "sem_post()\n"
7533 "send()\n"
7534 "sendmsg()\n"
7535 "sendto()\n"
7536 "setgid()\n"
7537 "setpgid()\n"
7538 "setsid()\n"
7539 "setsockopt()\n"
7540 "setuid()\n"
7541 "shutdown()\n"
7542 "sigaction()\n"
7543 "sigaddset()\n"
7544 "sigdelset()\n"
7545 "sigemptyset()\n"
7546 "sigfillset()\n"
7547 "sigismember()\n"
7548 "signal()\n"
7549 "sigpause()\n"
7550 "sigpending()\n"
7551 "sigprocmask()\n"
7552 "sigqueue()\n"
7553 "sigset()\n"
7554 "sigsuspend()\n"
7555 "sleep()\n"
7556 "sockatmark()\n"
7557 "socket()\n"
7558 "socketpair()\n"
7559 "stat()\n"
7560 "symlink()\n"
7561 "sysconf()\n"
7562 "tcdrain()\n"
7563 "tcflow()\n"
7564 "tcflush()\n"
7565 "tcgetattr()\n"
7566 "tcgetpgrp()\n"
7567 "tcsendbreak()\n"
7568 "tcsetattr()\n"
7569 "tcsetpgrp()\n"
7570 "time()\n"
7571 "timer_getoverrun()\n"
7572 "timer_gettime()\n"
7573 "timer_settime()\n"
7574 "times()\n"
7575 "umask()\n"
7576 "uname()\n"
7577 "unlink()\n"
7578 "utime()\n"
7579 "wait()\n"
7580 "waitpid()\n"
7581 "write()\n"
7582 msgstr ""
7583 "_Exit()\n"
7584 "_exit()\n"
7585 "abort()\n"
7586 "accept()\n"
7587 "access()\n"
7588 "aio_error()\n"
7589 "aio_return()\n"
7590 "aio_suspend()\n"
7591 "alarm()\n"
7592 "bind()\n"
7593 "cfgetispeed()\n"
7594 "cfgetospeed()\n"
7595 "cfsetispeed()\n"
7596 "cfsetospeed()\n"
7597 "chdir()\n"
7598 "chmod()\n"
7599 "chown()\n"
7600 "clock_gettime()\n"
7601 "close()\n"
7602 "connect()\n"
7603 "creat()\n"
7604 "dup()\n"
7605 "dup2()\n"
7606 "execle()\n"
7607 "execve()\n"
7608 "fchmod()\n"
7609 "fchown()\n"
7610 "fcntl()\n"
7611 "fdatasync()\n"
7612 "fork()\n"
7613 "fpathconf()\n"
7614 "fstat()\n"
7615 "fsync()\n"
7616 "ftruncate()\n"
7617 "getegid()\n"
7618 "geteuid()\n"
7619 "getgid()\n"
7620 "getgroups()\n"
7621 "getpeername()\n"
7622 "getpgrp()\n"
7623 "getpid()\n"
7624 "getppid()\n"
7625 "getsockname()\n"
7626 "getsockopt()\n"
7627 "getuid()\n"
7628 "kill()\n"
7629 "link()\n"
7630 "listen()\n"
7631 "lseek()\n"
7632 "lstat()\n"
7633 "mkdir()\n"
7634 "mkfifo()\n"
7635 "open()\n"
7636 "pathconf()\n"
7637 "pause()\n"
7638 "pipe()\n"
7639 "poll()\n"
7640 "posix_trace_event()\n"
7641 "pselect()\n"
7642 "raise()\n"
7643 "read()\n"
7644 "readlink()\n"
7645 "recv()\n"
7646 "recvfrom()\n"
7647 "recvmsg()\n"
7648 "rename()\n"
7649 "rmdir()\n"
7650 "select()\n"
7651 "sem_post()\n"
7652 "send()\n"
7653 "sendmsg()\n"
7654 "sendto()\n"
7655 "setgid()\n"
7656 "setpgid()\n"
7657 "setsid()\n"
7658 "setsockopt()\n"
7659 "setuid()\n"
7660 "shutdown()\n"
7661 "sigaction()\n"
7662 "sigaddset()\n"
7663 "sigdelset()\n"
7664 "sigemptyset()\n"
7665 "sigfillset()\n"
7666 "sigismember()\n"
7667 "signal()\n"
7668 "sigpause()\n"
7669 "sigpending()\n"
7670 "sigprocmask()\n"
7671 "sigqueue()\n"
7672 "sigset()\n"
7673 "sigsuspend()\n"
7674 "sleep()\n"
7675 "sockatmark()\n"
7676 "socket()\n"
7677 "socketpair()\n"
7678 "stat()\n"
7679 "symlink()\n"
7680 "sysconf()\n"
7681 "tcdrain()\n"
7682 "tcflow()\n"
7683 "tcflush()\n"
7684 "tcgetattr()\n"
7685 "tcgetpgrp()\n"
7686 "tcsendbreak()\n"
7687 "tcsetattr()\n"
7688 "tcsetpgrp()\n"
7689 "time()\n"
7690 "timer_getoverrun()\n"
7691 "timer_gettime()\n"
7692 "timer_settime()\n"
7693 "times()\n"
7694 "umask()\n"
7695 "uname()\n"
7696 "unlink()\n"
7697 "utime()\n"
7698 "wait()\n"
7699 "waitpid()\n"
7700 "write()\n"
7701
7702 #. type: Plain text
7703 #: build/C/man7/signal.7:587
7704 msgid ""
7705 "POSIX.1-2008 removes fpathconf(), pathconf(), and sysconf()  from the above "
7706 "list, and adds the following functions:"
7707 msgstr ""
7708 "POSIX.1-2008 では、上記のリストのうち fpathconf(), pathconf(), sysconf()  が"
7709 "削除され、以下の関数が追加された。"
7710
7711 #. type: Plain text
7712 #: build/C/man7/signal.7:610
7713 #, no-wrap
7714 msgid ""
7715 "execl()\n"
7716 "execv()\n"
7717 "faccessat()\n"
7718 "fchmodat()\n"
7719 "fchownat()\n"
7720 "fexecve()\n"
7721 "fstatat()\n"
7722 "futimens()\n"
7723 "linkat()\n"
7724 "mkdirat()\n"
7725 "mkfifoat()\n"
7726 "mknod()\n"
7727 "mknodat()\n"
7728 "openat()\n"
7729 "readlinkat()\n"
7730 "renameat()\n"
7731 "symlinkat()\n"
7732 "unlinkat()\n"
7733 "utimensat()\n"
7734 "utimes()\n"
7735 msgstr ""
7736 "execl()\n"
7737 "execv()\n"
7738 "faccessat()\n"
7739 "fchmodat()\n"
7740 "fchownat()\n"
7741 "fexecve()\n"
7742 "fstatat()\n"
7743 "futimens()\n"
7744 "linkat()\n"
7745 "mkdirat()\n"
7746 "mkfifoat()\n"
7747 "mknod()\n"
7748 "mknodat()\n"
7749 "openat()\n"
7750 "readlinkat()\n"
7751 "renameat()\n"
7752 "symlinkat()\n"
7753 "unlinkat()\n"
7754 "utimensat()\n"
7755 "utimes()\n"
7756
7757 #. type: SS
7758 #: build/C/man7/signal.7:612
7759 #, no-wrap
7760 msgid "Interruption of system calls and library functions by signal handlers"
7761 msgstr "シグナルハンドラによるシステムコールやライブラリ関数への割り込み"
7762
7763 #. type: Plain text
7764 #: build/C/man7/signal.7:615
7765 msgid ""
7766 "If a signal handler is invoked while a system call or library function call "
7767 "is blocked, then either:"
7768 msgstr ""
7769 "システムコールやライブラリが停止 (block) している間にシグナルハンドラが 起動"
7770 "されると、以下のどちらかとなる。"
7771
7772 #. type: Plain text
7773 #: build/C/man7/signal.7:617
7774 msgid ""
7775 "the call is automatically restarted after the signal handler returns; or"
7776 msgstr "シグナルが返った後、呼び出しは自動的に再スタートされる。"
7777
7778 #. type: Plain text
7779 #: build/C/man7/signal.7:620
7780 msgid "the call fails with the error B<EINTR>."
7781 msgstr "呼び出しはエラー B<EINTR> で失敗する。"
7782
7783 #. type: Plain text
7784 #: build/C/man7/signal.7:628
7785 msgid ""
7786 "Which of these two behaviors occurs depends on the interface and whether or "
7787 "not the signal handler was established using the B<SA_RESTART> flag (see "
7788 "B<sigaction>(2)).  The details vary across UNIX systems; below, the details "
7789 "for Linux."
7790 msgstr ""
7791 "これらの二つの挙動のうちどちらが起こるかは、インターフェイスにより依存し、 シ"
7792 "グナルハンドラが B<SA_RESTART> フラグ (B<sigaction>(2)  参照) を使って設定さ"
7793 "れていたかにも依存する。 詳細は UNIX システムによって異なる。 Linux における"
7794 "詳細を以下で説明する。"
7795
7796 #.  The following system calls use ERESTARTSYS,
7797 #.  so that they are restartable
7798 #. type: Plain text
7799 #: build/C/man7/signal.7:637
7800 msgid ""
7801 "If a blocked call to one of the following interfaces is interrupted by a "
7802 "signal handler, then the call will be automatically restarted after the "
7803 "signal handler returns if the B<SA_RESTART> flag was used; otherwise the "
7804 "call will fail with the error B<EINTR>:"
7805 msgstr ""
7806 "以下のインターフェイスのいずれかの呼び出しが停止している間に シグナルハンドラ"
7807 "により割り込まれた場合、 B<SA_RESTART> フラグが使用されていれば、シグナルハン"
7808 "ドラが返った後に その呼び出しは自動的に再スタートされることになる。 それ以外"
7809 "の場合は、その呼び出しはエラー B<EINTR> で失敗することになる。"
7810
7811 #. type: Plain text
7812 #: build/C/man7/signal.7:653
7813 msgid ""
7814 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), and B<ioctl>(2)  calls "
7815 "on \"slow\" devices.  A \"slow\" device is one where the I/O call may block "
7816 "for an indefinite time, for example, a terminal, pipe, or socket.  (A disk "
7817 "is not a slow device according to this definition.)  If an I/O call on a "
7818 "slow device has already transferred some data by the time it is interrupted "
7819 "by a signal handler, then the call will return a success status (normally, "
7820 "the number of bytes transferred)."
7821 msgstr ""
7822 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), B<ioctl>(2)  の「遅い "
7823 "(slow)」デバイスに対する呼び出し。 ここでいう「遅い」デバイスとは、I/O 呼び出"
7824 "しが無期限に停止 (block) する 可能性のあるデバイスのことで、例としては端末、"
7825 "パイプ、ソケットがある (この定義では、ディスクは遅いデバイスではない)。 遅い"
7826 "デバイスに対する I/O 呼び出しが、 シグナルハンドラにより割り込まれた時点まで"
7827 "に何らかのデータを すでに転送していれば、呼び出しは成功ステータス (通常は、転"
7828 "送されたバイト数) を返すことだろう。"
7829
7830 #. type: Plain text
7831 #: build/C/man7/signal.7:657
7832 msgid ""
7833 "B<open>(2), if it can block (e.g., when opening a FIFO; see B<fifo>(7))."
7834 msgstr ""
7835 "停止 (block) する可能性のある B<open>(2)  (例えば、FIFO のオープン時; B<fifo>"
7836 "(7)  参照)。"
7837
7838 #. type: Plain text
7839 #: build/C/man7/signal.7:664
7840 msgid "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), and B<waitpid>(2)."
7841 msgstr "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), B<waitpid>(2)."
7842
7843 #.  If a timeout (setsockopt()) is in effect on the socket, then these
7844 #.  system calls switch to using EINTR.  Consequently, they and are not
7845 #.  automatically restarted, and they show the stop/cont behavior
7846 #.  described below.  (Verified from 2.6.26 source, and by experiment; mtk)
7847 #. type: Plain text
7848 #: build/C/man7/signal.7:680
7849 msgid ""
7850 "Socket interfaces: B<accept>(2), B<connect>(2), B<recv>(2), B<recvfrom>(2), "
7851 "B<recvmsg>(2), B<send>(2), B<sendto>(2), and B<sendmsg>(2), unless a timeout "
7852 "has been set on the socket (see below)."
7853 msgstr ""
7854 "ソケットインターフェイス: B<accept>(2), B<connect>(2), B<recv>(2), "
7855 "B<recvfrom>(2), B<recvmsg>(2), B<send>(2), B<sendto>(2), B<sendmsg>(2).  但"
7856 "し、ソケットにタイムアウトが設定されていない場合 (下記参照)。"
7857
7858 #. type: Plain text
7859 #: build/C/man7/signal.7:686
7860 msgid "File locking interfaces: B<flock>(2)  and B<fcntl>(2)  B<F_SETLKW>."
7861 msgstr ""
7862 "ファイルロック用インターフェイス: B<flock>(2), B<fcntl>(2)  B<F_SETLKW>."
7863
7864 #. type: Plain text
7865 #: build/C/man7/signal.7:693
7866 msgid ""
7867 "POSIX message queue interfaces: B<mq_receive>(3), B<mq_timedreceive>(3), "
7868 "B<mq_send>(3), and B<mq_timedsend>(3)."
7869 msgstr ""
7870 "POSIX メッセージキューインターフェイス: B<mq_receive>(3), B<mq_timedreceive>"
7871 "(3), B<mq_send>(3), B<mq_timedsend>(3)."
7872
7873 #. type: Plain text
7874 #: build/C/man7/signal.7:698
7875 msgid ""
7876 "B<futex>(2)  B<FUTEX_WAIT> (since Linux 2.6.22; beforehand, always failed "
7877 "with B<EINTR>)."
7878 msgstr ""
7879 "B<futex>(2)  B<FUTEX_WAIT> (Linux 2.6.22 以降; それ以前は常に B<EINTR> で失敗"
7880 "していた)。"
7881
7882 #. type: Plain text
7883 #: build/C/man7/signal.7:705
7884 msgid ""
7885 "POSIX semaphore interfaces: B<sem_wait>(3)  and B<sem_timedwait>(3)  (since "
7886 "Linux 2.6.22; beforehand, always failed with B<EINTR>)."
7887 msgstr ""
7888 "POSIX セマフォインターフェイス: B<sem_wait>(3), B<sem_timedwait>(3)  (Linux "
7889 "2.6.22 以降; それ以前は常に B<EINTR> で失敗していた)。"
7890
7891 #.  These are the system calls that give EINTR or ERESTARTNOHAND
7892 #.  on interruption by a signal handler.
7893 #. type: Plain text
7894 #: build/C/man7/signal.7:716
7895 msgid ""
7896 "The following interfaces are never restarted after being interrupted by a "
7897 "signal handler, regardless of the use of B<SA_RESTART>; they always fail "
7898 "with the error B<EINTR> when interrupted by a signal handler:"
7899 msgstr ""
7900 "以下のインターフェイスは、 B<SA_RESTART> を使っているどうかに関わらず、シグナ"
7901 "ルハンドラにより割り込まれた後、 再スタートすることは決してない。 これらは、"
7902 "シグナルハンドラにより割り込まれると、常にエラー B<EINTR> で失敗する。"
7903
7904 #. type: Plain text
7905 #: build/C/man7/signal.7:736 build/C/man7/signal.7:810
7906 msgid ""
7907 "Socket interfaces, when a timeout has been set on the socket using "
7908 "B<setsockopt>(2): B<accept>(2), B<recv>(2), B<recvfrom>(2), and B<recvmsg>"
7909 "(2), if a receive timeout (B<SO_RCVTIMEO>)  has been set; B<connect>(2), "
7910 "B<send>(2), B<sendto>(2), and B<sendmsg>(2), if a send timeout "
7911 "(B<SO_SNDTIMEO>)  has been set."
7912 msgstr ""
7913 "B<setsockopt>(2)  を使ってタイムアウトが設定されているソケットインターフェー"
7914 "ス: B<accept>(2), B<recv>(2), B<recvfrom>(2), B<recvmsg>(2)  で受信タイムアウ"
7915 "ト (B<SO_RCVTIMEO>)  が設定されている場合と、 B<connect>(2), B<send>(2), "
7916 "B<sendto>(2), B<sendmsg>(2)  で送信タイムアウト (B<SO_SNDTIMEO>)  が設定され"
7917 "ている場合。"
7918
7919 #. type: Plain text
7920 #: build/C/man7/signal.7:743
7921 msgid ""
7922 "Interfaces used to wait for signals: B<pause>(2), B<sigsuspend>(2), "
7923 "B<sigtimedwait>(2), and B<sigwaitinfo>(2)."
7924 msgstr ""
7925 "シグナル待ちに使われるインターフェイス: B<pause>(2), B<sigsuspend>(2), "
7926 "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
7927
7928 #. type: Plain text
7929 #: build/C/man7/signal.7:752
7930 msgid ""
7931 "File descriptor multiplexing interfaces: B<epoll_wait>(2), B<epoll_pwait>"
7932 "(2), B<poll>(2), B<ppoll>(2), B<select>(2), and B<pselect>(2)."
7933 msgstr ""
7934 "ファイルディスクリプタ多重インターフェイス: B<epoll_wait>(2), B<epoll_pwait>"
7935 "(2), B<poll>(2), B<ppoll>(2), B<select>(2), B<pselect>(2)."
7936
7937 #.  On some other systems, SA_RESTART does restart these system calls
7938 #. type: Plain text
7939 #: build/C/man7/signal.7:760
7940 msgid ""
7941 "System V IPC interfaces: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), and "
7942 "B<semtimedop>(2)."
7943 msgstr ""
7944 "System V IPC インターフェイス: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), "
7945 "B<semtimedop>(2)."
7946
7947 #. type: Plain text
7948 #: build/C/man7/signal.7:766
7949 msgid ""
7950 "Sleep interfaces: B<clock_nanosleep>(2), B<nanosleep>(2), and B<usleep>(3)."
7951 msgstr ""
7952 "スリープ用のインターフェイス: B<clock_nanosleep>(2), B<nanosleep>(2), "
7953 "B<usleep>(3)."
7954
7955 #. type: Plain text
7956 #: build/C/man7/signal.7:771 build/C/man7/signal.7:824
7957 msgid "B<read>(2)  from an B<inotify>(7)  file descriptor."
7958 msgstr "B<inotify>(7)  ファイルディスクリプタからの B<read>(2)."
7959
7960 #. type: Plain text
7961 #: build/C/man7/signal.7:773
7962 msgid "B<io_getevents>(2)."
7963 msgstr "B<io_getevents>(2)."
7964
7965 #. type: Plain text
7966 #: build/C/man7/signal.7:779
7967 msgid ""
7968 "The B<sleep>(3)  function is also never restarted if interrupted by a "
7969 "handler, but gives a success return: the number of seconds remaining to "
7970 "sleep."
7971 msgstr ""
7972 "B<sleep>(3)  関数も、ハンドラにより割り込まれた場合、決して再スタートされるこ"
7973 "とはない。 しかし、成功となり、残っている停止時間を返す。"
7974
7975 #. type: SS
7976 #: build/C/man7/signal.7:779
7977 #, no-wrap
7978 msgid "Interruption of system calls and library functions by stop signals"
7979 msgstr "一時停止シグナルによるシステムコールやライブラリ関数への割り込み"
7980
7981 #. type: Plain text
7982 #: build/C/man7/signal.7:788
7983 msgid ""
7984 "On Linux, even in the absence of signal handlers, certain blocking "
7985 "interfaces can fail with the error B<EINTR> after the process is stopped by "
7986 "one of the stop signals and then resumed via B<SIGCONT>.  This behavior is "
7987 "not sanctioned by POSIX.1, and doesn't occur on other systems."
7988 msgstr ""
7989 "Linux では、シグナルハンドラが設定されていない場合でも、 いくつかのブロッキン"
7990 "グ型のインターフェイスは、 プロセスが一時停止 (stop) シグナルの一つにより停止"
7991 "され、 B<SIGCONT> により再開された後に、エラー B<EINTR> で失敗する可能性があ"
7992 "る。 この挙動は POSIX.1 で認められておらず、他のシステムでは起こらない。"
7993
7994 #. type: Plain text
7995 #: build/C/man7/signal.7:790
7996 msgid "The Linux interfaces that display this behavior are:"
7997 msgstr "この挙動を示す Linux のインターフェイスは以下の通りである。"
7998
7999 #. type: Plain text
8000 #: build/C/man7/signal.7:813
8001 msgid "B<epoll_wait>(2), B<epoll_pwait>(2)."
8002 msgstr "B<epoll_wait>(2), B<epoll_pwait>(2)."
8003
8004 #. type: Plain text
8005 #: build/C/man7/signal.7:816
8006 msgid "B<semop>(2), B<semtimedop>(2)."
8007 msgstr "B<semop>(2), B<semtimedop>(2)."
8008
8009 #. type: Plain text
8010 #: build/C/man7/signal.7:819
8011 msgid "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8012 msgstr "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8013
8014 #. type: Plain text
8015 #: build/C/man7/signal.7:830
8016 msgid ""
8017 "Linux 2.6.21 and earlier: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
8018 "B<sem_wait>(3)."
8019 msgstr ""
8020 "Linux 2.6.21 以前: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
8021 "B<sem_wait>(3)."
8022
8023 #. type: Plain text
8024 #: build/C/man7/signal.7:834
8025 msgid "Linux 2.6.8 and earlier: B<msgrcv>(2), B<msgsnd>(2)."
8026 msgstr "Linux 2.6.8 以前: B<msgrcv>(2), B<msgsnd>(2)."
8027
8028 #. type: Plain text
8029 #: build/C/man7/signal.7:837
8030 msgid "Linux 2.4 and earlier: B<nanosleep>(2)."
8031 msgstr "Linux 2.4 以前: B<nanosleep>(2)."
8032
8033 #.  It must be a *very* long time since this was true:
8034 #.  .SH BUGS
8035 #.  .B SIGIO
8036 #.  and
8037 #.  .B SIGLOST
8038 #.  have the same value.
8039 #.  The latter is commented out in the kernel source, but
8040 #.  the build process of some software still thinks that
8041 #.  signal 29 is
8042 #.  .BR SIGLOST .
8043 #. type: Plain text
8044 #: build/C/man7/signal.7:850
8045 msgid "POSIX.1, except as noted."
8046 msgstr "POSIX.1 (注記した内容以外)。"
8047
8048 #. type: Plain text
8049 #: build/C/man7/signal.7:883
8050 msgid ""
8051 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), B<rt_sigqueueinfo>"
8052 "(2), B<setitimer>(2), B<setrlimit>(2), B<sgetmask>(2), B<sigaction>(2), "
8053 "B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
8054 "B<sigprocmask>(2), B<sigsuspend>(2), B<sigwaitinfo>(2), B<abort>(3), "
8055 "B<bsd_signal>(3), B<longjmp>(3), B<raise>(3), B<pthread_sigqueue>(3), "
8056 "B<sigqueue>(3), B<sigset>(3), B<sigsetops>(3), B<sigvec>(3), B<sigwait>(3), "
8057 "B<strsignal>(3), B<sysv_signal>(3), B<core>(5), B<proc>(5), B<pthreads>(7), "
8058 "B<sigevent>(7)"
8059 msgstr ""
8060 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), B<rt_sigqueueinfo>"
8061 "(2), B<setitimer>(2), B<setrlimit>(2), B<sgetmask>(2), B<sigaction>(2), "
8062 "B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
8063 "B<sigprocmask>(2), B<sigsuspend>(2), B<sigwaitinfo>(2), B<abort>(3), "
8064 "B<bsd_signal>(3), B<longjmp>(3), B<raise>(3), B<pthread_sigqueue>(3), "
8065 "B<sigqueue>(3), B<sigset>(3), B<sigsetops>(3), B<sigvec>(3), B<sigwait>(3), "
8066 "B<strsignal>(3), B<sysv_signal>(3), B<core>(5), B<proc>(5), B<pthreads>(7), "
8067 "B<sigevent>(7)"
8068
8069 #. type: TH
8070 #: build/C/man2/signalfd.2:20
8071 #, no-wrap
8072 msgid "SIGNALFD"
8073 msgstr "SIGNALFD"
8074
8075 #. type: TH
8076 #: build/C/man2/signalfd.2:20
8077 #, no-wrap
8078 msgid "2009-01-13"
8079 msgstr "2009-01-13"
8080
8081 #. type: Plain text
8082 #: build/C/man2/signalfd.2:23
8083 msgid "signalfd - create a file descriptor for accepting signals"
8084 msgstr "signalfd - シグナル受け付け用のファイルディスクリプタを生成する"
8085
8086 #. type: Plain text
8087 #: build/C/man2/signalfd.2:25
8088 msgid "B<#include E<lt>sys/signalfd.hE<gt>>"
8089 msgstr "B<#include E<lt>sys/signalfd.hE<gt>>"
8090
8091 #. type: Plain text
8092 #: build/C/man2/signalfd.2:27
8093 msgid ""
8094 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
8095 msgstr ""
8096 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
8097
8098 #. type: Plain text
8099 #: build/C/man2/signalfd.2:38
8100 msgid ""
8101 "B<signalfd>()  creates a file descriptor that can be used to accept signals "
8102 "targeted at the caller.  This provides an alternative to the use of a signal "
8103 "handler or B<sigwaitinfo>(2), and has the advantage that the file descriptor "
8104 "may be monitored by B<select>(2), B<poll>(2), and B<epoll>(7)."
8105 msgstr ""
8106 "B<signalfd>()  は、呼び出し元宛てのシグナルを受け付けるために使用されるファイ"
8107 "ル ディスクリプタを生成する。 この方法はシグナルハンドラや B<sigwaitinfo>"
8108 "(2)  を用いる方法の代わりとなるものであり、このファイルディスクリプタを "
8109 "B<select>(2), B<poll>(2), B<epoll>(7)  で監視できるという利点がある。"
8110
8111 #. type: Plain text
8112 #: build/C/man2/signalfd.2:58
8113 msgid ""
8114 "The I<mask> argument specifies the set of signals that the caller wishes to "
8115 "accept via the file descriptor.  This argument is a signal set whose "
8116 "contents can be initialized using the macros described in B<sigsetops>(3).  "
8117 "Normally, the set of signals to be received via the file descriptor should "
8118 "be blocked using B<sigprocmask>(2), to prevent the signals being handled "
8119 "according to their default dispositions.  It is not possible to receive "
8120 "B<SIGKILL> or B<SIGSTOP> signals via a signalfd file descriptor; these "
8121 "signals are silently ignored if specified in I<mask>."
8122 msgstr ""
8123 "I<mask> 引き数には、呼び出し元がこのファイルディスクリプタ経由で受け付けたい "
8124 "シグナル集合を指定する。この引き数で指定するシグナル集合の内容は、 "
8125 "B<sigsetops>(3)  で説明されているマクロを使って初期化することができる。 通"
8126 "常、ファイルディスクリプタ経由で受信するシグナル集合は、 そのシグナルがデフォ"
8127 "ルトの配送方法に基いて処理されるのを防ぐために、 B<sigprocmask>(2)  を使って"
8128 "ブロックしておくべきである。 シグナル B<SIGKILL> と B<SIGSTOP> を signalfd "
8129 "ファイルディスクリプタ経由で受信することはできない。 これらのシグナルが "
8130 "I<mask> で指定された場合には黙って無視される。"
8131
8132 #. type: Plain text
8133 #: build/C/man2/signalfd.2:72
8134 msgid ""
8135 "If the I<fd> argument is -1, then the call creates a new file descriptor and "
8136 "associates the signal set specified in I<mask> with that descriptor.  If "
8137 "I<fd> is not -1, then it must specify a valid existing signalfd file "
8138 "descriptor, and I<mask> is used to replace the signal set associated with "
8139 "that descriptor."
8140 msgstr ""
8141 "I<fd> 引き数が -1 の場合、 B<signalfd>()  は新しいファイルディスクリプタを生"
8142 "成し、 I<mask> で指定されたシグナル集合をそのファイルディスクリプタに関連付け"
8143 "る。 I<fd> 引き数が -1 以外の場合、 I<fd> には有効な既存の signalfd ファイル"
8144 "ディスクリプタを指定しなければならず、 そのディスクリプタに関連付けられている"
8145 "シグナル集合は I<mask> を使って置き換えられる。"
8146
8147 #. type: Plain text
8148 #: build/C/man2/signalfd.2:77
8149 msgid ""
8150 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
8151 "I<flags> to change the behaviour of B<signalfd>():"
8152 msgstr ""
8153 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
8154 "ることで、 B<signalfd>()  の振舞いを変更することができる。"
8155
8156 #. type: TP
8157 #: build/C/man2/signalfd.2:77
8158 #, no-wrap
8159 msgid "B<SFD_NONBLOCK>"
8160 msgstr "B<SFD_NONBLOCK>"
8161
8162 #. type: TP
8163 #: build/C/man2/signalfd.2:85
8164 #, no-wrap
8165 msgid "B<SFD_CLOEXEC>"
8166 msgstr "B<SFD_CLOEXEC>"
8167
8168 #. type: Plain text
8169 #: build/C/man2/signalfd.2:102
8170 msgid ""
8171 "B<signalfd>()  returns a file descriptor that supports the following "
8172 "operations:"
8173 msgstr ""
8174 "B<signalfd>()  が返すファイルディスクリプタは以下の操作をサポートしている。"
8175
8176 #. type: Plain text
8177 #: build/C/man2/signalfd.2:121
8178 msgid ""
8179 "If one or more of the signals specified in I<mask> is pending for the "
8180 "process, then the buffer supplied to B<read>(2)  is used to return one or "
8181 "more I<signalfd_siginfo> structures (see below) that describe the signals.  "
8182 "The B<read>(2)  returns information for as many signals as are pending and "
8183 "will fit in the supplied buffer.  The buffer must be at least I<sizeof"
8184 "(struct signalfd_siginfo)> bytes.  The return value of the B<read>(2)  is "
8185 "the total number of bytes read."
8186 msgstr ""
8187 "I<mask> に指定されているシグナルのうち一つ以上がそのプロセスに対して 処理待"
8188 "ち (pending) であれば、それらのシグナルの情報が B<read>(2)  に渡されたバッ"
8189 "ファを使って、 I<signalfd_siginfo> 構造体に格納されて返される。 B<read>(2)  "
8190 "は、バッファに格納可能な範囲でできるだけ多くの処理待ちのシグナルに ついての情"
8191 "報を返す。 バッファは最低でも I<sizeof(struct signalfd_siginfo)> バイトの大き"
8192 "さがなければならない。 B<read>(2)  の返り値は読み出されたトータルのバイト数で"
8193 "ある。"
8194
8195 #. type: Plain text
8196 #: build/C/man2/signalfd.2:129
8197 msgid ""
8198 "As a consequence of the B<read>(2), the signals are consumed, so that they "
8199 "are no longer pending for the process (i.e., will not be caught by signal "
8200 "handlers, and cannot be accepted using B<sigwaitinfo>(2))."
8201 msgstr ""
8202 "B<read>(2)  が行われた結果、シグナルは消費され、 これらのシグナルはそのプロセ"
8203 "スに対しては処理待ちではなくなる (つまり、シグナルハンドラで捕捉されることも"
8204 "なく、 B<sigwaitinfo>(2)  を使って受け取ることもできなくなる)。"
8205
8206 #. type: Plain text
8207 #: build/C/man2/signalfd.2:140
8208 msgid ""
8209 "If none of the signals in I<mask> is pending for the process, then the "
8210 "B<read>(2)  either blocks until one of the signals in I<mask> is generated "
8211 "for the process, or fails with the error B<EAGAIN> if the file descriptor "
8212 "has been made nonblocking."
8213 msgstr ""
8214 "I<mask> に指定されているシグナルがそのプロセスに対して一つも処理待ちでなけれ"
8215 "ば、 B<read>(2)  は、 I<mask> で指定されたシグナルのうちいずれか一つがそのプ"
8216 "ロセスに対して発生するまで 停止 (block) する、もしくはファイルディスクリプタ"
8217 "が非停止 (nonblocking)  に設定されている場合はエラー B<EAGAIN> で失敗する。"
8218
8219 #. type: Plain text
8220 #: build/C/man2/signalfd.2:153
8221 msgid ""
8222 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
8223 "B<poll>(2)  B<POLLIN> flag)  if one or more of the signals in I<mask> is "
8224 "pending for the process."
8225 msgstr ""
8226 "I<mask> に指定されたシグナルのうち一つ以上がそのプロセスに対して処理待ちであ"
8227 "れば、 ファイルディスクリプタは読み出し可能となる (B<select>(2)  の "
8228 "I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
8229
8230 #. type: Plain text
8231 #: build/C/man2/signalfd.2:160
8232 msgid ""
8233 "The signalfd file descriptor also supports the other file-descriptor "
8234 "multiplexing APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
8235 msgstr ""
8236 "signalfd ファイルディスクリプタは、これ以外のファイルディスクリプタ 多重 API "
8237 "である B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
8238
8239 #. type: Plain text
8240 #: build/C/man2/signalfd.2:165
8241 msgid ""
8242 "When the file descriptor is no longer required it should be closed.  When "
8243 "all file descriptors associated with the same signalfd object have been "
8244 "closed, the resources for object are freed by the kernel."
8245 msgstr ""
8246 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
8247 "る。 同じ signalfd オブジェクトに関連付けられたファイルディスクリプタが全て "
8248 "クローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
8249
8250 #. type: SS
8251 #: build/C/man2/signalfd.2:165
8252 #, no-wrap
8253 msgid "The signalfd_siginfo structure"
8254 msgstr "signalfd_siginfo 構造体"
8255
8256 #. type: Plain text
8257 #: build/C/man2/signalfd.2:171
8258 msgid ""
8259 "The format of the I<signalfd_siginfo> structure(s) returned by B<read>(2)s "
8260 "from a signalfd file descriptor is as follows:"
8261 msgstr ""
8262 "signalfd ファイルディスクリプタからの B<read>(2)  で返される "
8263 "I<signalfd_siginfo> 構造体のフォーマットは以下の通りである。"
8264
8265 #.  ssi_trapno is unused on most arches
8266 #.  FIXME Since Linux 2.6.37 there is 'uint16_t ssi_addr_lsb'
8267 #.  which is not yet documented
8268 #. type: Plain text
8269 #: build/C/man2/signalfd.2:198
8270 #, no-wrap
8271 msgid ""
8272 "struct signalfd_siginfo {\n"
8273 "    uint32_t ssi_signo;   /* Signal number */\n"
8274 "    int32_t  ssi_errno;   /* Error number (unused) */\n"
8275 "    int32_t  ssi_code;    /* Signal code */\n"
8276 "    uint32_t ssi_pid;     /* PID of sender */\n"
8277 "    uint32_t ssi_uid;     /* Real UID of sender */\n"
8278 "    int32_t  ssi_fd;      /* File descriptor (SIGIO) */\n"
8279 "    uint32_t ssi_tid;     /* Kernel timer ID (POSIX timers)\n"
8280 "    uint32_t ssi_band;    /* Band event (SIGIO) */\n"
8281 "    uint32_t ssi_overrun; /* POSIX timer overrun count */\n"
8282 "    uint32_t ssi_trapno;  /* Trap number that caused signal */\n"
8283 "    int32_t  ssi_status;  /* Exit status or signal (SIGCHLD) */\n"
8284 "    int32_t  ssi_int;     /* Integer sent by sigqueue(3) */\n"
8285 "    uint64_t ssi_ptr;     /* Pointer sent by sigqueue(3) */\n"
8286 "    uint64_t ssi_utime;   /* User CPU time consumed (SIGCHLD) */\n"
8287 "    uint64_t ssi_stime;   /* System CPU time consumed (SIGCHLD) */\n"
8288 "    uint64_t ssi_addr;    /* Address that generated signal\n"
8289 "                             (for hardware-generated signals) */\n"
8290 "    uint8_t  pad[I<X>];      /* Pad size to 128 bytes (allow for\n"
8291 "                              additional fields in the future) */\n"
8292 "};\n"
8293 msgstr ""
8294 "struct signalfd_siginfo {\n"
8295 "struct signalfd_siginfo {\n"
8296 "    uint32_t ssi_signo;   /* シグナル番号 */\n"
8297 "    int32_t  ssi_errno;   /* エラー番号 (未使用) */\n"
8298 "    int32_t  ssi_code;    /* シグナルコード */\n"
8299 "    uint32_t ssi_pid;     /* 送信元の PID */\n"
8300 "    uint32_t ssi_uid;     /* 送信元の実 UID */\n"
8301 "    int32_t  ssi_fd;      /* ファイルディスクリプタ (SIGIO) */\n"
8302 "    uint32_t ssi_tid;     /* カーネルタイマ ID (POSIX タイマ)\n"
8303 "    uint32_t ssi_band;    /* Band イベント (SIGIO) */\n"
8304 "    uint32_t ssi_overrun; /* POSIX タイマのオーバーラン回数 */\n"
8305 "    uint32_t ssi_trapno;  /* シグナルの原因となったトラップ番号 */\n"
8306 "    int32_t  ssi_status;  /* 終了ステータスかシグナル (SIGCHLD) */\n"
8307 "    int32_t  ssi_int;     /* sigqueue(3) から送られた整数 */\n"
8308 "    uint64_t ssi_ptr;     /* sigqueue(3) から送られたポインタ */\n"
8309 "    uint64_t ssi_utime;   /* 消費したユーザ CPU 時間 (SIGCHLD) */\n"
8310 "    uint64_t ssi_stime;   /* 消費したシステム CPU 時間 (SIGCHLD) */\n"
8311 "    uint64_t ssi_addr;    /* シグナルを生成したアドレス\n"
8312 "                             (ハードウェアが生成したシグナルの場合) */\n"
8313 "    uint8_t  pad[I<X>];      /* pad の大きさは 128 バイト\n"
8314 "                             (将来のフィールド追加用の場所の確保) */\n"
8315 "};\n"
8316
8317 #. type: Plain text
8318 #: build/C/man2/signalfd.2:221
8319 msgid ""
8320 "Each of the fields in this structure is analogous to the similarly named "
8321 "field in the I<siginfo_t> structure.  The I<siginfo_t> structure is "
8322 "described in B<sigaction>(2).  Not all fields in the returned "
8323 "I<signalfd_siginfo> structure will be valid for a specific signal; the set "
8324 "of valid fields can be determined from the value returned in the I<ssi_code> "
8325 "field.  This field is the analog of the I<siginfo_t> I<si_code> field; see "
8326 "B<sigaction>(2)  for details."
8327 msgstr ""
8328 "I<signalfd_siginfo> 構造体の各フィールドは、 I<siginfo_t> 構造体の同じような"
8329 "名前のフィールドと同様である。 I<siginfo_t> 構造体については B<sigaction>"
8330 "(2)  に説明がある。 返された I<signalfd_siginfo> 構造体の全てのフィールドがあ"
8331 "るシグナルに対して有効なわけではない。 どのフィールドが有効かは、 "
8332 "I<ssi_code> フィールドで返される値から判定することができる。 このフィールド"
8333 "は I<siginfo_t> の I<si_code> フィールドと同様である。詳細は B<sigaction>"
8334 "(2)  を参照。"
8335
8336 #. type: SS
8337 #: build/C/man2/signalfd.2:221 build/C/man2/timerfd_create.2:269
8338 #, no-wrap
8339 msgid "fork(2) semantics"
8340 msgstr "fork(2) での扱い"
8341
8342 #. type: Plain text
8343 #: build/C/man2/signalfd.2:229
8344 msgid ""
8345 "After a B<fork>(2), the child inherits a copy of the signalfd file "
8346 "descriptor.  A B<read>(2)  from the file descriptor in the child will return "
8347 "information about signals queued to the child."
8348 msgstr ""
8349 "B<fork>(2)  が行われると、子プロセスは signalfd ファイルディスクリプタのコ"
8350 "ピーを 継承する。 子プロセスでこのファイルディスクリプタから B<read>(2)  を行"
8351 "うと、子プロセスに対するキューに入っているシグナルに関する 情報が返される。"
8352
8353 #. type: SS
8354 #: build/C/man2/signalfd.2:229 build/C/man2/timerfd_create.2:281
8355 #, no-wrap
8356 msgid "execve(2) semantics"
8357 msgstr "execve(2) での扱い"
8358
8359 #. type: Plain text
8360 #: build/C/man2/signalfd.2:241
8361 msgid ""
8362 "Just like any other file descriptor, a signalfd file descriptor remains open "
8363 "across an B<execve>(2), unless it has been marked for close-on-exec (see "
8364 "B<fcntl>(2)).  Any signals that were available for reading before the "
8365 "B<execve>(2)  remain available to the newly loaded program.  (This is "
8366 "analogous to traditional signal semantics, where a blocked signal that is "
8367 "pending remains pending across an B<execve>(2).)"
8368 msgstr ""
8369 "他のファイルディスクリプタと全く同様に、 signalfd ファイルディスクリプタも "
8370 "B<execve>(2)  の前後でオープンされたままとなる。但し、そのファイルディスクリ"
8371 "プタに close-on-exec のマーク (B<fcntl>(2)  参照) が付いている場合はクローズ"
8372 "される。 B<execve>(2)  の前に読み出し可能となっていた全てのシグナルは新しく起"
8373 "動されたプログラム でも引き続き読み出し可能である (これは伝統的なシグナルの扱"
8374 "いと同じであり、 処理待ちのブロックされたシグナルは B<execve>(2)  の前後で処"
8375 "理待ちのままとなる)。"
8376
8377 #. type: SS
8378 #: build/C/man2/signalfd.2:241
8379 #, no-wrap
8380 msgid "Thread semantics"
8381 msgstr "スレッドでの扱い"
8382
8383 #. type: Plain text
8384 #: build/C/man2/signalfd.2:251
8385 msgid ""
8386 "The semantics of signalfd file descriptors in a multithreaded program mirror "
8387 "the standard semantics for signals.  In other words, when a thread reads "
8388 "from a signalfd file descriptor, it will read the signals that are directed "
8389 "to the thread itself and the signals that are directed to the process (i.e., "
8390 "the entire thread group).  (A thread will not be able to read signals that "
8391 "are directed to other threads in the process.)"
8392 msgstr ""
8393 "マルチスレッドプログラムにおける signalfd ファイルディスクリプタの扱いは シグ"
8394 "ナルの標準的な扱いと全く同じである。 言い換えると、あるスレッドが signalfd "
8395 "ファイルディスクリプタから 読み出しを行うと、そのスレッド自身宛てのシグナルと"
8396 "プロセス (すなわち スレッドグループ全体) 宛てのシグナルが読み出される。 (ス"
8397 "レッドは同じプロセスの他のスレッド宛てのシグナルを読み出すことはできない。)"
8398
8399 #. type: Plain text
8400 #: build/C/man2/signalfd.2:265
8401 msgid ""
8402 "On success, B<signalfd>()  returns a signalfd file descriptor; this is "
8403 "either a new file descriptor (if I<fd> was -1), or I<fd> if I<fd> was a "
8404 "valid signalfd file descriptor.  On error, -1 is returned and I<errno> is "
8405 "set to indicate the error."
8406 msgstr ""
8407 "成功すると、 B<signalfd>()  は signalfd ファイルディスクリプタを返す。 返され"
8408 "るファイルディスクリプタは、 I<fd> が -1 の場合は新規のファイルディスクリプタ"
8409 "であり、 I<fd> が有効な signalfd ファイルディスクリプタだった場合は I<fd> 自"
8410 "身である。 エラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
8411
8412 #. type: TP
8413 #: build/C/man2/signalfd.2:266 build/C/man2/timerfd_create.2:338
8414 #, no-wrap
8415 msgid "B<EBADF>"
8416 msgstr "B<EBADF>"
8417
8418 #. type: Plain text
8419 #: build/C/man2/signalfd.2:271
8420 msgid "The I<fd> file descriptor is not a valid file descriptor."
8421 msgstr "ファイルディスクリプタ I<fd> が有効なファイルディスクリプタでない。"
8422
8423 #.  or, the
8424 #.  .I sizemask
8425 #.  argument is not equal to
8426 #.  .IR sizeof(sigset_t) ;
8427 #. type: Plain text
8428 #: build/C/man2/signalfd.2:279
8429 msgid "I<fd> is not a valid signalfd file descriptor."
8430 msgstr "I<fd> が有効な signalfd ファイルディスクリプタではない。"
8431
8432 #. type: Plain text
8433 #: build/C/man2/signalfd.2:286 build/C/man2/timerfd_create.2:320
8434 msgid ""
8435 "I<flags> is invalid; or, in Linux 2.6.26 or earlier, I<flags> is nonzero."
8436 msgstr ""
8437 "I<flags> が無効である。もしくは、Linux 2.6.26 以前の場合には I<flags> が 0 以"
8438 "外である。"
8439
8440 #. type: Plain text
8441 #: build/C/man2/signalfd.2:289 build/C/man2/timerfd_create.2:323
8442 msgid "The per-process limit of open file descriptors has been reached."
8443 msgstr ""
8444 "オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。"
8445
8446 #. type: Plain text
8447 #: build/C/man2/signalfd.2:299
8448 msgid "There was insufficient memory to create a new signalfd file descriptor."
8449 msgstr ""
8450 "新しい signalfd ファイルディスクリプタを生成するのに十分なメモリがなかった。"
8451
8452 #.  signalfd() is in glibc 2.7, but reportedly does not build
8453 #. type: Plain text
8454 #: build/C/man2/signalfd.2:307
8455 msgid ""
8456 "B<signalfd>()  is available on Linux since kernel 2.6.22.  Working support "
8457 "is provided in glibc since version 2.8.  The B<signalfd4>()  system call "
8458 "(see NOTES) is available on Linux since kernel 2.6.27."
8459 msgstr ""
8460 "B<signalfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
8461 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<signalfd4>()  "
8462 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
8463 "る。"
8464
8465 #. type: Plain text
8466 #: build/C/man2/signalfd.2:312
8467 msgid "B<signalfd>()  and B<signalfd4>()  are Linux-specific."
8468 msgstr "B<signalfd>()  と B<signalfd4>()  は Linux 固有である。"
8469
8470 #. type: Plain text
8471 #: build/C/man2/signalfd.2:322
8472 msgid ""
8473 "The underlying Linux system call requires an additional argument, I<size_t "
8474 "sizemask>, which specifies the size of the I<mask> argument.  The glibc "
8475 "B<signalfd>()  wrapper function does not include this argument, since it "
8476 "provides the required value for the underlying system call."
8477 msgstr ""
8478 "実際の Linux のシステムコールでは I<size_t sizemask> という引き数が追加で必要"
8479 "である。この引き数で I<mask> のサイズを指定する。 glibc の B<signalfd>()  "
8480 "ラッパー関数にはこの引き数は含まれず、 ラッパー関数が必要な値を計算して内部で"
8481 "呼び出すシステムコールに提供する。"
8482
8483 #. type: Plain text
8484 #: build/C/man2/signalfd.2:336
8485 msgid ""
8486 "A process can create multiple signalfd file descriptors.  This makes it "
8487 "possible to accept different signals on different file descriptors.  (This "
8488 "may be useful if monitoring the file descriptors using B<select>(2), B<poll>"
8489 "(2), or B<epoll>(7): the arrival of different signals will make different "
8490 "descriptors ready.)  If a signal appears in the I<mask> of more than one of "
8491 "the file descriptors, then occurrences of that signal can be read (once) "
8492 "from any one of the descriptors."
8493 msgstr ""
8494 "一つのプロセスは複数の signalfd ファイルディスクリプタを生成することができ"
8495 "る。 これにより、異なるファイルディスクリプタで異なるシグナルを受け取ること"
8496 "が できる (この機能は B<select>(2), B<poll>(2), B<epoll>(7)  を使ってファイル"
8497 "ディスクリプタを監視する場合に有用かもしれない。 異なるシグナルが到着すると、"
8498 "異なるファイルディスクリプタが利用可能に なるからだ)。 一つのシグナルが二つ以"
8499 "上のファイルディスクリプタの I<mask> に含まれている場合、そのシグナルの発生は"
8500 "そのシグナルを I<mask> に含むファイルディスクリプタのうちいずれか一つから読み"
8501 "出すことができる。"
8502
8503 #. type: Plain text
8504 #: build/C/man2/signalfd.2:352
8505 msgid ""
8506 "There are two underlying Linux system calls: B<signalfd>()  and the more "
8507 "recent B<signalfd4>().  The former system call does not implement a I<flags> "
8508 "argument.  The latter system call implements the I<flags> values described "
8509 "above.  Starting with glibc 2.9, the B<signalfd>()  wrapper function will "
8510 "use B<signalfd4>()  where it is available."
8511 msgstr ""
8512 "下層にある Linux システムコールは二種類あり、 B<signalfd>()  と、もっと新し"
8513 "い B<signalfd4>()  である。 B<signalfd>()  は I<flags> 引き数を実装していな"
8514 "い。 B<signalfd4>()  では上記の値の I<flags> が実装されている。 glibc 2.9 以"
8515 "降では、 B<signalfd>()  のラッパー関数は、 B<signalfd4>()  が利用可能であれ"
8516 "ば、これを使用する。"
8517
8518 #.  The fix also was put into 2.6.24.5
8519 #. type: Plain text
8520 #: build/C/man2/signalfd.2:360
8521 msgid ""
8522 "In kernels before 2.6.25, the I<ssi_ptr> and I<ssi_int> fields are not "
8523 "filled in with the data accompanying a signal sent by B<sigqueue>(3)."
8524 msgstr ""
8525 "カーネル 2.6.25 より前では、 B<sigqueue>(3)  により送信されたシグナルと一緒に"
8526 "渡されるデータでは、フィールド I<ssi_ptr> と I<ssi_int> は設定されない。"
8527
8528 #. type: Plain text
8529 #: build/C/man2/signalfd.2:370
8530 msgid ""
8531 "The program below accepts the signals B<SIGINT> and B<SIGQUIT> via a "
8532 "signalfd file descriptor.  The program terminates after accepting a "
8533 "B<SIGQUIT> signal.  The following shell session demonstrates the use of the "
8534 "program:"
8535 msgstr ""
8536 "下記のプログラムは、シグナル B<SIGINT> と B<SIGQUIT> を signalfd ファイルディ"
8537 "スクリプタ経由で受信する。 シグナル B<SIGQUIT> 受信後にプログラムは終了す"
8538 "る。 以下に示すシェルセッションにこのプログラムの使い方を示す。"
8539
8540 #. type: Plain text
8541 #: build/C/man2/signalfd.2:381
8542 #, no-wrap
8543 msgid ""
8544 "$B< ./signalfd_demo>\n"
8545 "B<^C>                   # Control-C generates SIGINT\n"
8546 "Got SIGINT\n"
8547 "B<^C>\n"
8548 "Got SIGINT\n"
8549 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
8550 "Got SIGQUIT\n"
8551 "$\n"
8552 msgstr ""
8553 "$B< ./signalfd_demo>\n"
8554 "B<^C>                   # Control-C generates SIGINT\n"
8555 "Got SIGINT\n"
8556 "B<^C>\n"
8557 "Got SIGINT\n"
8558 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
8559 "Got SIGQUIT\n"
8560 "$\n"
8561
8562 #. type: Plain text
8563 #: build/C/man2/signalfd.2:391
8564 #, no-wrap
8565 msgid ""
8566 "#include E<lt>sys/signalfd.hE<gt>\n"
8567 "#include E<lt>signal.hE<gt>\n"
8568 "#include E<lt>unistd.hE<gt>\n"
8569 "#include E<lt>stdlib.hE<gt>\n"
8570 "#include E<lt>stdio.hE<gt>\n"
8571 msgstr ""
8572 "#include E<lt>sys/signalfd.hE<gt>\n"
8573 "#include E<lt>signal.hE<gt>\n"
8574 "#include E<lt>unistd.hE<gt>\n"
8575 "#include E<lt>stdlib.hE<gt>\n"
8576 "#include E<lt>stdio.hE<gt>\n"
8577
8578 #. type: Plain text
8579 #: build/C/man2/signalfd.2:402
8580 #, no-wrap
8581 msgid ""
8582 "int\n"
8583 "main(int argc, char *argv[])\n"
8584 "{\n"
8585 "    sigset_t mask;\n"
8586 "    int sfd;\n"
8587 "    struct signalfd_siginfo fdsi;\n"
8588 "    ssize_t s;\n"
8589 msgstr ""
8590 "int\n"
8591 "main(int argc, char *argv[])\n"
8592 "{\n"
8593 "    sigset_t mask;\n"
8594 "    int sfd;\n"
8595 "    struct signalfd_siginfo fdsi;\n"
8596 "    ssize_t s;\n"
8597
8598 #. type: Plain text
8599 #: build/C/man2/signalfd.2:406
8600 #, no-wrap
8601 msgid ""
8602 "    sigemptyset(&mask);\n"
8603 "    sigaddset(&mask, SIGINT);\n"
8604 "    sigaddset(&mask, SIGQUIT);\n"
8605 msgstr ""
8606 "    sigemptyset(&mask);\n"
8607 "    sigaddset(&mask, SIGINT);\n"
8608 "    sigaddset(&mask, SIGQUIT);\n"
8609
8610 #. type: Plain text
8611 #: build/C/man2/signalfd.2:409
8612 #, no-wrap
8613 msgid ""
8614 "    /* Block signals so that they aren\\(aqt handled\n"
8615 "       according to their default dispositions */\n"
8616 msgstr ""
8617 "    /* Block signals so that they aren\\(aqt handled\n"
8618 "       according to their default dispositions */\n"
8619
8620 #. type: Plain text
8621 #: build/C/man2/signalfd.2:412
8622 #, no-wrap
8623 msgid ""
8624 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
8625 "        handle_error(\"sigprocmask\");\n"
8626 msgstr ""
8627 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
8628 "        handle_error(\"sigprocmask\");\n"
8629
8630 #. type: Plain text
8631 #: build/C/man2/signalfd.2:416
8632 #, no-wrap
8633 msgid ""
8634 "    sfd = signalfd(-1, &mask, 0);\n"
8635 "    if (sfd == -1)\n"
8636 "        handle_error(\"signalfd\");\n"
8637 msgstr ""
8638 "    sfd = signalfd(-1, &mask, 0);\n"
8639 "    if (sfd == -1)\n"
8640 "        handle_error(\"signalfd\");\n"
8641
8642 #. type: Plain text
8643 #: build/C/man2/signalfd.2:421
8644 #, no-wrap
8645 msgid ""
8646 "    for (;;) {\n"
8647 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
8648 "        if (s != sizeof(struct signalfd_siginfo))\n"
8649 "            handle_error(\"read\");\n"
8650 msgstr ""
8651 "    for (;;) {\n"
8652 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
8653 "        if (s != sizeof(struct signalfd_siginfo))\n"
8654 "            handle_error(\"read\");\n"
8655
8656 #. type: Plain text
8657 #: build/C/man2/signalfd.2:432
8658 #, no-wrap
8659 msgid ""
8660 "        if (fdsi.ssi_signo == SIGINT) {\n"
8661 "            printf(\"Got SIGINT\\en\");\n"
8662 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
8663 "            printf(\"Got SIGQUIT\\en\");\n"
8664 "            exit(EXIT_SUCCESS);\n"
8665 "        } else {\n"
8666 "            printf(\"Read unexpected signal\\en\");\n"
8667 "        }\n"
8668 "    }\n"
8669 "}\n"
8670 msgstr ""
8671 "        if (fdsi.ssi_signo == SIGINT) {\n"
8672 "            printf(\"Got SIGINT\\en\");\n"
8673 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
8674 "            printf(\"Got SIGQUIT\\en\");\n"
8675 "            exit(EXIT_SUCCESS);\n"
8676 "        } else {\n"
8677 "            printf(\"Read unexpected signal\\en\");\n"
8678 "        }\n"
8679 "    }\n"
8680 "}\n"
8681
8682 #. type: Plain text
8683 #: build/C/man2/signalfd.2:446
8684 msgid ""
8685 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
8686 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
8687 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
8688 msgstr ""
8689 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
8690 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
8691 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
8692
8693 #. type: TH
8694 #: build/C/man3/sigpause.3:25
8695 #, no-wrap
8696 msgid "SIGPAUSE"
8697 msgstr "SIGPAUSE"
8698
8699 #. type: TH
8700 #: build/C/man3/sigpause.3:25
8701 #, no-wrap
8702 msgid "2010-09-12"
8703 msgstr "2010-09-12"
8704
8705 #. type: Plain text
8706 #: build/C/man3/sigpause.3:28
8707 msgid "sigpause - atomically release blocked signals and wait for interrupt"
8708 msgstr "sigpause - ブロックされたシグナルをアトミックに解放して割り込みを待つ"
8709
8710 #. type: Plain text
8711 #: build/C/man3/sigpause.3:33
8712 #, no-wrap
8713 msgid "B<int sigpause(int >I<sigmask>B<);  /* BSD */>\n"
8714 msgstr "B<int sigpause(int >I<sigmask>B<);  /* BSD */>\n"
8715
8716 #. type: Plain text
8717 #: build/C/man3/sigpause.3:35
8718 #, no-wrap
8719 msgid "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
8720 msgstr "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
8721
8722 #. type: Plain text
8723 #: build/C/man3/sigpause.3:41
8724 msgid "Don't use this function.  Use B<sigsuspend>(2)  instead."
8725 msgstr "この関数を使わないこと。 代わりに B<sigsuspend>(2)  を使うこと。"
8726
8727 #. type: Plain text
8728 #: build/C/man3/sigpause.3:48
8729 msgid ""
8730 "The function B<sigpause>()  is designed to wait for some signal.  It changes "
8731 "the process's signal mask (set of blocked signals), and then waits for a "
8732 "signal to arrive.  Upon arrival of a signal, the original signal mask is "
8733 "restored."
8734 msgstr ""
8735 "関数 B<sigpause>()  はシグナルを待つように設計されている。 この関数はプロセス"
8736 "のシグナルマスク (ブロックされたシグナルのセット) を変更し、 シグナルが到着す"
8737 "るのを待つ。 シグナルが到着すると、シグナルマスクは元に戻される。"
8738
8739 #. type: Plain text
8740 #: build/C/man3/sigpause.3:56
8741 msgid ""
8742 "If B<sigpause>()  returns, it was interrupted by a signal and the return "
8743 "value is -1 with I<errno> set to B<EINTR>."
8744 msgstr ""
8745 "B<sigpause>()  が返った場合、この関数はシグナルによって割り込まれている。 返"
8746 "り値は -1 で、 I<errno> は B<EINTR> に設定される。"
8747
8748 #. type: Plain text
8749 #: build/C/man3/sigpause.3:60
8750 msgid "The System V version of B<sigpause>()  is standardized in POSIX.1-2001."
8751 msgstr "System V 版の B<sigpause>()  は POSIX.1-2001 で標準化されている。"
8752
8753 #.  __xpg_sigpause: UNIX 95, spec 1170, SVID, SVr4, XPG
8754 #. type: Plain text
8755 #: build/C/man3/sigpause.3:77
8756 msgid ""
8757 "The classical BSD version of this function appeared in 4.2BSD.  It sets the "
8758 "process's signal mask to I<sigmask>.  UNIX 95 standardized the incompatible "
8759 "System V version of this function, which removes only the specified signal "
8760 "I<sig> from the process's signal mask.  The unfortunate situation with two "
8761 "incompatible functions with the same name was solved by the B<\\%sigsuspend>"
8762 "(2)  function, that takes a I<sigset_t *> argument (instead of an I<int>)."
8763 msgstr ""
8764 "この関数の古典的な BSD 版は 4.2BSD で登場した。 この関数はプロセスのシグナル"
8765 "マスクを I<sigmask> に設定する。 UNIX 95 では BSD 版と互換性のない System V "
8766 "版のこの関数が標準化された。 UNIX 95 版は、指定されたシグナル I<sig> をプロセ"
8767 "スのシグナルマスクから削除するだけである。 同じ名前で互換性のない 2 つの関数"
8768 "があるという不幸な事態は、 B<\\%sigsuspend>(2)  関数によって解消された。 この"
8769 "関数は (I<int> の代わりに)  B<sigset_t *> 引き数をとる。"
8770
8771 #. type: Plain text
8772 #: build/C/man3/sigpause.3:80
8773 msgid ""
8774 "On Linux, this routine is a system call only on the Sparc (sparc64)  "
8775 "architecture."
8776 msgstr ""
8777 "Linux では、このルーチンは Sparc (sparc64) アーキテクチャでのみ システムコー"
8778 "ルとなっている。"
8779
8780 #. type: Plain text
8781 #: build/C/man3/sigpause.3:82
8782 msgid "Libc4 and libc5 only know about the BSD version."
8783 msgstr "libc4 と libc5 には BSD 版しかない。"
8784
8785 #.  For the BSD version, one usually uses a zero
8786 #.  .I sigmask
8787 #.  to indicate that no signals are to be blocked.
8788 #. type: Plain text
8789 #: build/C/man3/sigpause.3:98
8790 msgid ""
8791 "Glibc uses the BSD version if the B<_BSD_SOURCE> feature test macro is "
8792 "defined and none of B<_POSIX_SOURCE>, B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, "
8793 "B<_GNU_SOURCE>, or B<_SVID_SOURCE> is defined.  Otherwise, the System V "
8794 "version is used."
8795 msgstr ""
8796 "機能検査マクロ B<_BSD_SOURCE> が定義され、 B<_POSIX_SOURCE>, "
8797 "B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, B<_GNU_SOURCE>, B<_SVID_SOURCE> のいず"
8798 "れも定義されていない場合、 glibc は BSD 版を使う。 それ以外の場合には、"
8799 "System V 版を使用する。"
8800
8801 #. type: Plain text
8802 #: build/C/man3/sigpause.3:106
8803 msgid ""
8804 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<sigblock>"
8805 "(3), B<sigvec>(3), B<feature_test_macros>(7)"
8806 msgstr ""
8807 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<sigblock>"
8808 "(3), B<sigvec>(3), B<feature_test_macros>(7)"
8809
8810 #. type: TH
8811 #: build/C/man2/sigpending.2:29
8812 #, no-wrap
8813 msgid "SIGPENDING"
8814 msgstr "SIGPENDING"
8815
8816 #. type: TH
8817 #: build/C/man2/sigpending.2:29
8818 #, no-wrap
8819 msgid "2008-10-04"
8820 msgstr "2008-10-04"
8821
8822 #. type: Plain text
8823 #: build/C/man2/sigpending.2:32
8824 msgid "sigpending - examine pending signals"
8825 msgstr "sigpending - 処理待ちのシグナルの検査"
8826
8827 #. type: Plain text
8828 #: build/C/man2/sigpending.2:36
8829 msgid "B<int sigpending(sigset_t *>I<set>B<);>"
8830 msgstr "B<int sigpending(sigset_t *>I<set>B<);>"
8831
8832 #. type: Plain text
8833 #: build/C/man2/sigpending.2:45
8834 msgid ""
8835 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
8836 "_POSIX_SOURCE"
8837 msgstr ""
8838 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
8839 "_POSIX_SOURCE"
8840
8841 #. type: Plain text
8842 #: build/C/man2/sigpending.2:53
8843 msgid ""
8844 "B<sigpending>()  returns the set of signals that are pending for delivery to "
8845 "the calling thread (i.e., the signals which have been raised while "
8846 "blocked).  The mask of pending signals is returned in I<set>."
8847 msgstr ""
8848 "B<sigpending>()  は、呼び出し元のスレッドへの配送を待っている (pending) シグ"
8849 "ナル集合 (すなわち、禁止中に発生したシグナル) を返す。 処理待ちのシグナルのマ"
8850 "スクが I<set> に格納される。"
8851
8852 #. type: Plain text
8853 #: build/C/man2/sigpending.2:56
8854 msgid "B<sigpending>()  returns 0 on success and -1 on error."
8855 msgstr "B<sigpending>()  は成功すれば 0 を返し、エラーならば -1 を返す。"
8856
8857 #. type: Plain text
8858 #: build/C/man2/sigpending.2:61
8859 msgid ""
8860 "I<set> points to memory which is not a valid part of the process address "
8861 "space."
8862 msgstr ""
8863 "I<set> が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。"
8864
8865 #. type: Plain text
8866 #: build/C/man2/sigpending.2:72
8867 msgid ""
8868 "The set of signals that is pending for a thread is the union of the set of "
8869 "signals that is pending for that thread and the set of signals that is "
8870 "pending for the process as a whole; see B<signal>(7)."
8871 msgstr ""
8872 "あるスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体への処理待ち"
8873 "のシグナル集合と、プロセス全体への処理待ちの シグナル集合をあわせたものであ"
8874 "る。 B<signal>(7)  参照。"
8875
8876 #. type: Plain text
8877 #: build/C/man2/sigpending.2:84
8878 msgid ""
8879 "In versions of glibc up to and including 2.2.1, there is a bug in the "
8880 "wrapper function for B<sigpending>()  which means that information about "
8881 "pending real-time signals is not correctly returned."
8882 msgstr ""
8883 "バージョン 2.2.1 以前の glibc では、 B<sigpending>()  のラッパー関数に、処理"
8884 "待ちのリアルタイムシグナルに関する情報が 正しく返されないというバグがある。"
8885
8886 #. type: Plain text
8887 #: build/C/man2/sigpending.2:92
8888 msgid ""
8889 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), B<sigsuspend>"
8890 "(2), B<sigsetops>(3), B<signal>(7)"
8891 msgstr ""
8892 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), B<sigsuspend>"
8893 "(2), B<sigsetops>(3), B<signal>(7)"
8894
8895 #. type: TH
8896 #: build/C/man2/sigprocmask.2:29
8897 #, no-wrap
8898 msgid "SIGPROCMASK"
8899 msgstr "SIGPROCMASK"
8900
8901 #. type: TH
8902 #: build/C/man2/sigprocmask.2:29
8903 #, no-wrap
8904 msgid "2012-04-15"
8905 msgstr "2012-04-15"
8906
8907 #. type: Plain text
8908 #: build/C/man2/sigprocmask.2:32
8909 msgid "sigprocmask - examine and change blocked signals"
8910 msgstr "sigprocmask - 禁止するシグナルの確認と変更"
8911
8912 #. type: Plain text
8913 #: build/C/man2/sigprocmask.2:37
8914 msgid ""
8915 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
8916 "*>I<oldset>B<);>"
8917 msgstr ""
8918 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
8919 "*>I<oldset>B<);>"
8920
8921 #. type: Plain text
8922 #: build/C/man2/sigprocmask.2:46
8923 msgid ""
8924 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
8925 "_POSIX_SOURCE"
8926 msgstr ""
8927 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
8928 "_POSIX_SOURCE"
8929
8930 #. type: Plain text
8931 #: build/C/man2/sigprocmask.2:55
8932 msgid ""
8933 "B<sigprocmask>()  is used to fetch and/or change the signal mask of the "
8934 "calling thread.  The signal mask is the set of signals whose delivery is "
8935 "currently blocked for the caller (see also B<signal>(7)  for more details)."
8936 msgstr ""
8937 "B<sigprocmask>()  を使うと、呼び出したスレッドのシグナルマスクの取得/変更がで"
8938 "きる。 シグナルマスクは、呼び出し元に対して現在配送が禁止されているシグナル"
8939 "の 集合のことである (詳細については B<signal>(7)  も参照のこと)。"
8940
8941 #. type: Plain text
8942 #: build/C/man2/sigprocmask.2:59
8943 msgid ""
8944 "The behavior of the call is dependent on the value of I<how>, as follows."
8945 msgstr "このコールの動作は I<how> の値によって決まる:"
8946
8947 #. type: TP
8948 #: build/C/man2/sigprocmask.2:59
8949 #, no-wrap
8950 msgid "B<SIG_BLOCK>"
8951 msgstr "B<SIG_BLOCK>"
8952
8953 #. type: Plain text
8954 #: build/C/man2/sigprocmask.2:64
8955 msgid ""
8956 "The set of blocked signals is the union of the current set and the I<set> "
8957 "argument."
8958 msgstr ""
8959 "禁止されたシグナルの集合は現在の値と I<set> 引き数を結合したものとなる。"
8960
8961 #. type: TP
8962 #: build/C/man2/sigprocmask.2:64
8963 #, no-wrap
8964 msgid "B<SIG_UNBLOCK>"
8965 msgstr "B<SIG_UNBLOCK>"
8966
8967 #. type: Plain text
8968 #: build/C/man2/sigprocmask.2:70
8969 msgid ""
8970 "The signals in I<set> are removed from the current set of blocked signals.  "
8971 "It is permissible to attempt to unblock a signal which is not blocked."
8972 msgstr ""
8973 "現在禁止されているシグナルの集合から I<set> にあるシグナルを取り除く。禁止さ"
8974 "れていないシグナルを取り除こうと することも認められている。"
8975
8976 #. type: TP
8977 #: build/C/man2/sigprocmask.2:70
8978 #, no-wrap
8979 msgid "B<SIG_SETMASK>"
8980 msgstr "B<SIG_SETMASK>"
8981
8982 #. type: Plain text
8983 #: build/C/man2/sigprocmask.2:74
8984 msgid "The set of blocked signals is set to the argument I<set>."
8985 msgstr "禁止されているシグナルの集合に I<set> 引き数を設定する。"
8986
8987 #. type: Plain text
8988 #: build/C/man2/sigprocmask.2:79
8989 msgid ""
8990 "If I<oldset> is non-NULL, the previous value of the signal mask is stored in "
8991 "I<oldset>."
8992 msgstr ""
8993 "I<oldset> が NULL でなければ、シグナルマスクの今までの値を I<oldset> に格納す"
8994 "る。"
8995
8996 #. type: Plain text
8997 #: build/C/man2/sigprocmask.2:88
8998 msgid ""
8999 "If I<set> is NULL, then the signal mask is unchanged (i.e., I<how> is "
9000 "ignored), but the current value of the signal mask is nevertheless returned "
9001 "in I<oldset> (if it is not NULL)."
9002 msgstr ""
9003 "I<set> が NULL であれば、シグナルマスクは変更されない (すなわち、 I<how> は無"
9004 "視される)。 I<set> の値にかかわらず、現在のシグナルマスクの値は I<oldset> に"
9005 "入れて返される (但し、 I<oldset> が NULL でない場合)。"
9006
9007 #. type: Plain text
9008 #: build/C/man2/sigprocmask.2:93
9009 msgid ""
9010 "The use of B<sigprocmask>()  is unspecified in a multithreaded process; see "
9011 "B<pthread_sigmask>(3)."
9012 msgstr ""
9013 "マルチスレッドのプロセスで B<sigprocmask>()  を使用した場合の動作は規定されて"
9014 "いない。 B<pthread_sigmask>(3)  を参照のこと。"
9015
9016 #. type: Plain text
9017 #: build/C/man2/sigprocmask.2:96
9018 msgid "B<sigprocmask>()  returns 0 on success and -1 on error."
9019 msgstr "B<sigprocmask>()  は成功すれば 0 を返し、エラーならば -1 を返す。"
9020
9021 #. type: Plain text
9022 #: build/C/man2/sigprocmask.2:104
9023 msgid ""
9024 "the I<set> or I<oldset> argument points outside the process's allocated "
9025 "address space."
9026 msgstr ""
9027 "引き数 I<set> か I<oldset> がプロセスに割り当てられた\n"
9028 "アドレス空間の外を指している。"
9029
9030 #. type: Plain text
9031 #: build/C/man2/sigprocmask.2:109
9032 msgid "The value specified in I<how> was invalid."
9033 msgstr "I<how> に指定された値が有効ではない。"
9034
9035 #. type: Plain text
9036 #: build/C/man2/sigprocmask.2:115
9037 msgid ""
9038 "It is not possible to block B<SIGKILL> or B<SIGSTOP>.  Attempts to do so are "
9039 "silently ignored."
9040 msgstr ""
9041 "B<SIGKILL> や B<SIGSTOP> を禁止することはできない。 禁止しようとしても黙って"
9042 "無視される。"
9043
9044 #. type: Plain text
9045 #: build/C/man2/sigprocmask.2:117
9046 msgid "Each of the threads in a process has its own signal mask."
9047 msgstr "プロセス内の各スレッドはそれぞれ専用のシグナルマスクを持つ。"
9048
9049 #. type: Plain text
9050 #: build/C/man2/sigprocmask.2:137
9051 msgid ""
9052 "If B<SIGBUS>, B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> are generated while they "
9053 "are blocked, the result is undefined, unless the signal was generated by "
9054 "B<kill>(2), B<sigqueue>(3), or B<raise>(3)."
9055 msgstr ""
9056 "シグナル B<SIGBUS>, B<SIGFPE>, B<SIGILL>, B<SIGSEGV> が禁止されている間に生成"
9057 "された場合で、 そのシグナルが B<kill>(2), B<sigqueue>(3), B<raise>(3)  によっ"
9058 "て生成されたものでないときには、 その後の動作は未定義である。"
9059
9060 #. type: Plain text
9061 #: build/C/man2/sigprocmask.2:152
9062 msgid ""
9063 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
9064 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
9065 "B<signal>(7)"
9066 msgstr ""
9067 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
9068 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
9069 "B<signal>(7)"
9070
9071 #. type: TH
9072 #: build/C/man3/sigqueue.3:28
9073 #, no-wrap
9074 msgid "SIGQUEUE"
9075 msgstr "SIGQUEUE"
9076
9077 #. type: TH
9078 #: build/C/man3/sigqueue.3:28
9079 #, no-wrap
9080 msgid "2012-03-25"
9081 msgstr "2012-03-25"
9082
9083 #. type: Plain text
9084 #: build/C/man3/sigqueue.3:31
9085 msgid "sigqueue - queue a signal and data to a process"
9086 msgstr "sigqueue - シグナルとデータをプロセスに送る"
9087
9088 #. type: Plain text
9089 #: build/C/man3/sigqueue.3:35
9090 msgid ""
9091 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
9092 ">I<value>B<);>"
9093 msgstr ""
9094 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
9095 ">I<value>B<);>"
9096
9097 #. type: Plain text
9098 #: build/C/man3/sigqueue.3:43
9099 msgid "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
9100 msgstr "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
9101
9102 #. type: Plain text
9103 #: build/C/man3/sigqueue.3:55
9104 msgid ""
9105 "B<sigqueue>()  sends the signal specified in I<sig> to the process whose PID "
9106 "is given in I<pid>.  The permissions required to send a signal are the same "
9107 "as for B<kill>(2).  As with B<kill>(2), the null signal (0) can be used to "
9108 "check if a process with a given PID exists."
9109 msgstr ""
9110 "B<sigqueue>()  は I<sig> で指定されたシグナルを、PID が I<pid> であるプロセス"
9111 "に送る。 シグナルを送るのに必要な権限は B<kill>(2)  と同じである。 B<kill>"
9112 "(2)  と同様に、ヌル・シグナル (0) を使って 指定した PID のプロセスが存在する"
9113 "かをチェックすることができる。"
9114
9115 #. type: Plain text
9116 #: build/C/man3/sigqueue.3:60
9117 msgid ""
9118 "The I<value> argument is used to specify an accompanying item of data "
9119 "(either an integer or a pointer value) to be sent with the signal, and has "
9120 "the following type:"
9121 msgstr ""
9122 "I<value> 引き数はシグナルと一緒に送るデータの付属アイテムを指定する。 "
9123 "I<value> は (整数またはポインタの値であり) 以下のような型である。"
9124
9125 #. type: Plain text
9126 #: build/C/man3/sigqueue.3:67
9127 #, no-wrap
9128 msgid ""
9129 "union sigval {\n"
9130 "    int   sival_int;\n"
9131 "    void *sival_ptr;\n"
9132 "};\n"
9133 msgstr ""
9134 "union sigval {\n"
9135 "    int   sival_int;\n"
9136 "    void *sival_ptr;\n"
9137 "};\n"
9138
9139 #. type: Plain text
9140 #: build/C/man3/sigqueue.3:83
9141 msgid ""
9142 "If the receiving process has installed a handler for this signal using the "
9143 "B<SA_SIGINFO> flag to B<sigaction>(2), then it can obtain this data via the "
9144 "I<si_value> field of the I<siginfo_t> structure passed as the second "
9145 "argument to the handler.  Furthermore, the I<si_code> field of that "
9146 "structure will be set to B<SI_QUEUE>."
9147 msgstr ""
9148 "受取先のプロセスに、このシグナルに対するハンドラを (B<sigaction>(2)  に "
9149 "B<SA_SIGINFO> を指定して) インストールしておくと、 そのハンドラの第 2 引き数"
9150 "に渡される I<siginfo_t> 構造体の I<si_value> フィールドによって、このデータを"
9151 "取得できる。 さらに、この構造体の I<si_code> フィールドは B<SI_QUEUE> に設定"
9152 "される。"
9153
9154 #. type: Plain text
9155 #: build/C/man3/sigqueue.3:91
9156 msgid ""
9157 "On success, B<sigqueue>()  returns 0, indicating that the signal was "
9158 "successfully queued to the receiving process.  Otherwise -1 is returned and "
9159 "I<errno> is set to indicate the error."
9160 msgstr ""
9161 "成功した場合、 B<sigqueue>()  は 0 を返す。 これは受け取り側プロセスの待ち行"
9162 "列に シグナルが正しく入れられたことを示す。 失敗した場合は -1 が返され、 "
9163 "I<errno> がエラーを表す値に設定される。"
9164
9165 #. type: Plain text
9166 #: build/C/man3/sigqueue.3:102
9167 msgid "I<sig> was invalid."
9168 msgstr "I<sig> が不正である。"
9169
9170 #. type: Plain text
9171 #: build/C/man3/sigqueue.3:108
9172 msgid ""
9173 "The process does not have permission to send the signal to the receiving "
9174 "process.  For the required permissions, see B<kill>(2)."
9175 msgstr ""
9176 "このプロセスには、受け取り側プロセスにシグナルを送る権限がない。 必要な権限に"
9177 "ついては、 B<kill>(2)  を参照すること。"
9178
9179 #. type: Plain text
9180 #: build/C/man3/sigqueue.3:112
9181 msgid "No process has a PID matching I<pid>."
9182 msgstr "I<pid> にマッチする PID のプロセスがない。"
9183
9184 #. type: Plain text
9185 #: build/C/man3/sigqueue.3:114
9186 msgid "This system call first appeared in Linux 2.2."
9187 msgstr "このシステムコールは Linux 2.2 で初めて登場した。"
9188
9189 #. type: Plain text
9190 #: build/C/man3/sigqueue.3:124
9191 msgid ""
9192 "If this function results in the sending of a signal to the process that "
9193 "invoked it, and that signal was not blocked by the calling thread, and no "
9194 "other threads were willing to handle this signal (either by having it "
9195 "unblocked, or by waiting for it using B<sigwait>(3)), then at least some "
9196 "signal must be delivered to this thread before this function returns."
9197 msgstr ""
9198 "この関数を呼び出したプロセスにこの関数がシグナルを送ったときに、 シグナルが呼"
9199 "び出し側スレッドにブロックされず、 かつ (シグナルがブロックされなかった、また"
9200 "は B<sigwait>(3)  を使用するのを待っていることにより)  このシグナルを扱うス"
9201 "レッドが何もない場合は、 この関数がリターンする前に、少なくとも そのスレッド"
9202 "に対してシグナルが配送されていなければならない。"
9203
9204 #. type: Plain text
9205 #: build/C/man3/sigqueue.3:139
9206 msgid ""
9207 "On Linux, this function is implemented using the B<rt_sigqueueinfo>(2)  "
9208 "system call.  The system call differs in its third argument, which is the "
9209 "I<siginfo_t> structure that will be supplied to the receiving process's "
9210 "signal handler or returned by the receiving process's B<sigtimedwait>(2)  "
9211 "call.  Inside the glibc B<sigqueue>()  wrapper, this argument, I<uinfo>, is "
9212 "initialized as follows:"
9213 msgstr ""
9214 "Linux では、この関数は B<rt_sigqueueinfo>(2)  システムコールを使って実装され"
9215 "ている。 両者には 3 番目の引き数に違いがあり、 B<rt_sigqueueinfo>(2)  では 3 "
9216 "番目の引き数は I<siginfo_t> 構造体である。 I<siginfo_t> 構造体は、シグナルを"
9217 "受信するプロセスのシグナルハンドラに渡されたり、 シグナル受信プロセスの "
9218 "B<sigtimedwait>(2)  システムコールから返されたりする。 glibc の B<sigqueue>"
9219 "()  ラッパー関数内部では、 この引き数 I<uinfo> は以下のように初期化される。"
9220
9221 #. type: Plain text
9222 #: build/C/man3/sigqueue.3:147
9223 #, no-wrap
9224 msgid ""
9225 "uinfo.si_signo = sig;      /* argument supplied to sigqueue() */\n"
9226 "uinfo.si_code = SI_QUEUE;\n"
9227 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
9228 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
9229 "uinfo.si_value = val;      /* argument supplied to sigqueue() */\n"
9230 msgstr ""
9231 "uinfo.si_signo = sig;      /* argument supplied to sigqueue() */\n"
9232 "uinfo.si_code = SI_QUEUE;\n"
9233 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
9234 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
9235 "uinfo.si_value = val;      /* argument supplied to sigqueue() */\n"
9236
9237 #. type: Plain text
9238 #: build/C/man3/sigqueue.3:157
9239 msgid ""
9240 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
9241 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
9242 msgstr ""
9243 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
9244 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
9245
9246 #. type: TH
9247 #: build/C/man2/sigreturn.2:29
9248 #, no-wrap
9249 msgid "SIGRETURN"
9250 msgstr "SIGRETURN"
9251
9252 #. type: TH
9253 #: build/C/man2/sigreturn.2:29
9254 #, no-wrap
9255 msgid "2008-06-26"
9256 msgstr "2008-06-26"
9257
9258 #. type: Plain text
9259 #: build/C/man2/sigreturn.2:32
9260 msgid "sigreturn - return from signal handler and cleanup stack frame"
9261 msgstr "sigreturn - シグナル・ハンドラから返り、スタックを掃除する"
9262
9263 #. type: Plain text
9264 #: build/C/man2/sigreturn.2:34
9265 msgid "B<int sigreturn(unsigned long >I<__unused>B<);>"
9266 msgstr "B<int sigreturn(unsigned long >I<__unused>B<);>"
9267
9268 #. type: Plain text
9269 #: build/C/man2/sigreturn.2:42
9270 msgid ""
9271 "When the Linux kernel creates the stack frame for a signal handler, a call "
9272 "to B<sigreturn>()  is inserted into the stack frame so that upon return from "
9273 "the signal handler, B<sigreturn>()  will be called."
9274 msgstr ""
9275 "Linux カーネルは、 シグナル・ハンドラ用にスタック・フレームを作成する際、 "
9276 "B<sigreturn>()  をスタック・フレームに挿入し、シグナル・ハンドラが返るときに "
9277 "B<sigreturn>()  が呼ばれるようにする。"
9278
9279 #. type: Plain text
9280 #: build/C/man2/sigreturn.2:53
9281 msgid ""
9282 "This B<sigreturn>()  call undoes everything that was done\\(emchanging the "
9283 "process's signal mask, switching stacks (see B<sigaltstack>(2))\\(emin order "
9284 "to invoke the signal handler: it restores the process's signal mask, "
9285 "switches stacks, and restores the process's context (registers, processor "
9286 "flags), so that the process directly resumes execution at the point where it "
9287 "was interrupted by the signal."
9288 msgstr ""
9289 "B<sigreturn>()  は、シグナル・ハンドラを起動するために行ったことの全て \\(em "
9290 "プロセスのシグナルマスクの変更、スタックの切り替え (B<sigaltstack>(2)  参照) "
9291 "\\(em の取り消しを行う。 プロセスのシグナルマスクの復元、スタックの切り替"
9292 "え、 プロセスのコンテキスト (レジスタ、プロセッサ・フラグ) の復元を行い、 プ"
9293 "ロセスがシグナルにより割り込まれた場所からそのまま実行を 再開できるようにす"
9294 "る。"
9295
9296 #. type: Plain text
9297 #: build/C/man2/sigreturn.2:56
9298 msgid "B<sigreturn>()  never returns."
9299 msgstr "B<sigreturn>()  が返ることはない。"
9300
9301 #. type: SH
9302 #: build/C/man2/sigreturn.2:56
9303 #, no-wrap
9304 msgid "FILES"
9305 msgstr "ファイル"
9306
9307 #. type: Plain text
9308 #: build/C/man2/sigreturn.2:58
9309 msgid "/usr/src/linux/arch/i386/kernel/signal.c"
9310 msgstr "/usr/src/linux/arch/i386/kernel/signal.c"
9311
9312 #. type: Plain text
9313 #: build/C/man2/sigreturn.2:60
9314 msgid "/usr/src/linux/arch/alpha/kernel/entry.S"
9315 msgstr "/usr/src/linux/arch/alpha/kernel/entry.S"
9316
9317 #. type: Plain text
9318 #: build/C/man2/sigreturn.2:64
9319 msgid ""
9320 "B<sigreturn>()  is specific to Linux and should not be used in programs "
9321 "intended to be portable."
9322 msgstr ""
9323 "B<sigreturn>()  は Linux 特有であり、移植を意図したプログラムでは使用してはい"
9324 "けない。"
9325
9326 #. type: Plain text
9327 #: build/C/man2/sigreturn.2:74
9328 msgid ""
9329 "The B<sigreturn>()  call is used by the kernel to implement signal "
9330 "handlers.  It should B<never> be called directly.  Better yet, the specific "
9331 "use of the I<__unused> argument varies depending on the architecture."
9332 msgstr ""
9333 "B<sigreturn>()  コールは、シグナル・ハンドラを実装するためにカーネルにより使"
9334 "用される。 これを直接呼び出しては B<決して> いけない。さらに I<__unused> 引き"
9335 "数がどのように使われるかはそのアーキテクチャに依存して変化する。"
9336
9337 #. type: Plain text
9338 #: build/C/man2/sigreturn.2:79
9339 msgid "B<kill>(2), B<sigaltstack>(2), B<signal>(2), B<signal>(7)"
9340 msgstr "B<kill>(2), B<sigaltstack>(2), B<signal>(2), B<signal>(7)"
9341
9342 #. type: TH
9343 #: build/C/man3/sigset.3:26
9344 #, no-wrap
9345 msgid "SIGSET"
9346 msgstr "SIGSET"
9347
9348 #. type: Plain text
9349 #: build/C/man3/sigset.3:29
9350 msgid "sigset, sighold, sigrelse, sigignore - System V signal API"
9351 msgstr "sigset, sighold, sigrelse, sigignore - System V 版シグナル API"
9352
9353 #. type: Plain text
9354 #: build/C/man3/sigset.3:35
9355 msgid "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
9356 msgstr "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
9357
9358 #. type: Plain text
9359 #: build/C/man3/sigset.3:37
9360 msgid "B<int sighold(int >I<sig>B<);>"
9361 msgstr "B<int sighold(int >I<sig>B<);>"
9362
9363 #. type: Plain text
9364 #: build/C/man3/sigset.3:39
9365 msgid "B<int sigrelse(int >I<sig>B<);>"
9366 msgstr "B<int sigrelse(int >I<sig>B<);>"
9367
9368 #. type: Plain text
9369 #: build/C/man3/sigset.3:41
9370 msgid "B<int sigignore(int >I<sig>B<);>"
9371 msgstr "B<int sigignore(int >I<sig>B<);>"
9372
9373 #. type: Plain text
9374 #: build/C/man3/sigset.3:52
9375 msgid "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
9376 msgstr "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
9377
9378 #. type: Plain text
9379 #: build/C/man3/sigset.3:56
9380 msgid ""
9381 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
9382 msgstr ""
9383 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
9384
9385 #. type: Plain text
9386 #: build/C/man3/sigset.3:65
9387 msgid ""
9388 "These functions are provided in glibc as a compatibility interface for "
9389 "programs that make use of the historical System V signal API.  This API is "
9390 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
9391 "B<sigprocmask>(2), etc.)"
9392 msgstr ""
9393 "これらの関数は、昔ながらの System V 版シグナル API を使用しているプログラム "
9394 "に対して互換性のあるインタフェースを glibc で提供するものである。 この API は"
9395 "過去のものであり、新しいアプリケーションでは POSIX シグナル API (B<sigaction>"
9396 "(2), B<sigprocmask>(2)  など) を使用すべきである。"
9397
9398 #. type: Plain text
9399 #: build/C/man3/sigset.3:74
9400 msgid ""
9401 "The B<sigset>()  function modifies the disposition of the signal I<sig>.  "
9402 "The I<disp> argument can be the address of a signal handler function, or one "
9403 "of the following constants:"
9404 msgstr ""
9405 "関数 B<sigset>()  はシグナル I<sig> のシグナルハンドラの動作を変更する。 "
9406 "I<disp> 引き数には、シグナルハンドラ関数のアドレスか、 以下の定数のいずれか一"
9407 "つを指定できる。"
9408
9409 #. type: TP
9410 #: build/C/man3/sigset.3:74
9411 #, no-wrap
9412 msgid "B<SIG_DFL>"
9413 msgstr "B<SIG_DFL>"
9414
9415 #. type: Plain text
9416 #: build/C/man3/sigset.3:79
9417 msgid "Reset the disposition of I<sig> to the default."
9418 msgstr "I<sig> の動作をデフォルトにリセットする。"
9419
9420 #. type: TP
9421 #: build/C/man3/sigset.3:79
9422 #, no-wrap
9423 msgid "B<SIG_IGN>"
9424 msgstr "B<SIG_IGN>"
9425
9426 #. type: Plain text
9427 #: build/C/man3/sigset.3:83
9428 msgid "Ignore I<sig>."
9429 msgstr "I<sig> を無視する。"
9430
9431 #. type: TP
9432 #: build/C/man3/sigset.3:83
9433 #, no-wrap
9434 msgid "B<SIG_HOLD>"
9435 msgstr "B<SIG_HOLD>"
9436
9437 #. type: Plain text
9438 #: build/C/man3/sigset.3:90
9439 msgid ""
9440 "Add I<sig> to the process's signal mask, but leave the disposition of I<sig> "
9441 "unchanged."
9442 msgstr ""
9443 "そのプロセスのシグナルマスクに I<sig> を追加するが、 I<sig> の動作は変更しな"
9444 "い。"
9445
9446 #. type: Plain text
9447 #: build/C/man3/sigset.3:96
9448 msgid ""
9449 "If I<disp> specifies the address of a signal handler, then I<sig> is added "
9450 "to the process's signal mask during execution of the handler."
9451 msgstr ""
9452 "I<disp> にシグナルハンドラのアドレスが指定された場合、 シグナルハンドラの実行"
9453 "中は、そのプロセスのシグナルマスクに I<sig> が追加される。"
9454
9455 #. type: Plain text
9456 #: build/C/man3/sigset.3:104
9457 msgid ""
9458 "If I<disp> was specified as a value other than B<SIG_HOLD>, then I<sig> is "
9459 "removed from the process's signal mask."
9460 msgstr ""
9461 "I<disp> に B<SIG_HOLD> 以外の値が指定された場合、 そのプロセスのシグナルマス"
9462 "クから I<sig> が削除される。"
9463
9464 #. type: Plain text
9465 #: build/C/man3/sigset.3:110 build/C/man3/sigvec.3:87
9466 msgid "The dispositions for B<SIGKILL> and B<SIGSTOP> cannot be changed."
9467 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> に対する動作は変更できない。"
9468
9469 #. type: Plain text
9470 #: build/C/man3/sigset.3:116
9471 msgid ""
9472 "The B<sighold>()  function adds I<sig> to the calling process's signal mask."
9473 msgstr ""
9474 "関数 B<sighold>()  は、呼び出し元プロセスのシグナルマスクに I<sig> を追加す"
9475 "る。"
9476
9477 #. type: Plain text
9478 #: build/C/man3/sigset.3:122
9479 msgid ""
9480 "The B<sigrelse>()  function removes I<sig> from the calling process's signal "
9481 "mask."
9482 msgstr ""
9483 "関数 B<sigrelse>()  は、呼び出し元プロセスのシグナルマスクから I<sig> を削除"
9484 "する。"
9485
9486 #. type: Plain text
9487 #: build/C/man3/sigset.3:129
9488 msgid ""
9489 "The B<sigignore>()  function sets the disposition of I<sig> to B<SIG_IGN>."
9490 msgstr "関数 B<sigignore>()  は、 I<sig> の動作を B<SIG_IGN> に設定する。"
9491
9492 #. type: Plain text
9493 #: build/C/man3/sigset.3:145
9494 msgid ""
9495 "On success, B<sigset>()  returns B<SIG_HOLD> if I<sig> was blocked before "
9496 "the call, or the signal's previous disposition if it was not blocked before "
9497 "the call.  On error, B<sigset>()  returns -1, with I<errno> set to indicate "
9498 "the error.  (But see BUGS below.)"
9499 msgstr ""
9500 "B<sigset>()  は成功すると、 呼び出し前に I<sig> がブロックされていた場合には "
9501 "B<SIG_HOLD> を返し、 ブロックされていなかった場合には 変更前のそのシグナルの"
9502 "動作を返す。 エラーの場合、 B<sigset>()  は -1 を返し、 I<errno> にエラーを示"
9503 "す値をセットする。 但し、以下の「バグ」の節も参照のこと。"
9504
9505 #. type: Plain text
9506 #: build/C/man3/sigset.3:154
9507 msgid ""
9508 "The B<sighold>(), B<sigrelse>(), and B<sigignore>()  functions return 0 on "
9509 "success; on error, these functions return -1 and set I<errno> to indicate "
9510 "the error."
9511 msgstr ""
9512 "関数 B<sighold>(), B<sigrelse>(), B<sigignore>()  は成功すると 0 を返す。エ"
9513 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値をセットする。"
9514
9515 #. type: Plain text
9516 #: build/C/man3/sigset.3:161
9517 msgid ""
9518 "For B<sigset>()  see the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
9519 msgstr ""
9520 "B<sigset>()  に関しては、 B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」"
9521 "の節を参照。"
9522
9523 #. type: Plain text
9524 #: build/C/man3/sigset.3:168
9525 msgid ""
9526 "For B<sighold>()  and B<sigrelse>()  see the ERRORS under B<sigprocmask>(2)."
9527 msgstr ""
9528 "B<sighold>()  と B<sigrelse>()  に関しては、 B<sigprocmask>(2)  の「エラー」"
9529 "の節を参照。"
9530
9531 #. type: Plain text
9532 #: build/C/man3/sigset.3:173
9533 msgid "For B<sigignore>(), see the errors under B<sigaction>(2)."
9534 msgstr "B<sigignore>()  に関しては、 B<sigaction>(2)  の「エラー」の節を参照。"
9535
9536 #. type: Plain text
9537 #: build/C/man3/sigset.3:190
9538 msgid ""
9539 "SVr4, POSIX.1-2001.  These functions are obsolete: do not use them in new "
9540 "programs.  POSIX.1-2008 marks B<sighold>(), B<sigignore>(), B<sigpause>(), "
9541 "B<sigrelse>(), and B<sigset>()  as obsolete, recommending the use of "
9542 "B<sigaction>(2), B<sigprocmask>(2), B<pthread_sigmask>(3), and B<sigsuspend>"
9543 "(2)  instead."
9544 msgstr ""
9545 "SVr4, POSIX.1-2001.  これらの関数は廃止予定である。新しいプログラムでは使用し"
9546 "ないこと。 POSIX.1-2008 は、 B<sighold>(), B<sigignore>(), B<sigpause>(), "
9547 "B<sigrelse>(), B<sigset>()  を廃止予定としている。 代わりに、 B<sigaction>"
9548 "(2), B<sigprocmask>(2), B<pthread_sigmask>(3), B<sigsuspend>(2)  の使用が推奨"
9549 "されている。"
9550
9551 #. type: Plain text
9552 #: build/C/man3/sigset.3:192
9553 msgid "These functions appeared in glibc version 2.1."
9554 msgstr "これらの関数は glibc 2.1 で登場した。"
9555
9556 #. type: Plain text
9557 #: build/C/man3/sigset.3:198
9558 msgid ""
9559 "The I<sighandler_t> type is a GNU extension; it is only used on this page to "
9560 "make the B<sigset>()  prototype more easily readable."
9561 msgstr ""
9562 "I<sighandler_t> 型は GNU による拡張であり、この man page で B<sigset>()  のプ"
9563 "ロトタイプをより読みやすくするために使われているだけである。"
9564
9565 #. type: Plain text
9566 #: build/C/man3/sigset.3:206
9567 msgid ""
9568 "The B<sigset>()  function provides reliable signal handling semantics (as "
9569 "when calling B<sigaction>(2)  with I<sa_mask> equal to 0)."
9570 msgstr ""
9571 "関数 B<sigset>()  は信頼性のあるシグナル処理機構を提供する (I<sa_mask> を 0 "
9572 "で B<sigaction>(2)  を呼び出したときと同様)。"
9573
9574 #. type: Plain text
9575 #: build/C/man3/sigset.3:224
9576 msgid ""
9577 "On System V, the B<signal>()  function provides unreliable semantics (as "
9578 "when calling B<sigaction>(2)  with I<sa_mask> equal to I<SA_RESETHAND | "
9579 "SA_NODEFER>).  On BSD, B<signal>()  provides reliable semantics.  "
9580 "POSIX.1-2001 leaves these aspects of B<signal>()  unspecified.  See B<signal>"
9581 "(2)  for further details."
9582 msgstr ""
9583 "System V では、関数 B<signal>()  が提供する処理機構は信頼性のないものである "
9584 "(I<sa_mask> を I<SA_RESETHAND | SA_NODEFER> として B<sigaction>(2)  を呼び出"
9585 "したときと同様)。 BSD では、 B<signal>()  は信頼性のある処理機構を提供する。 "
9586 "POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままとなっている。 さら"
9587 "なる詳細については B<signal>(2)  を参照。"
9588
9589 #. type: Plain text
9590 #: build/C/man3/sigset.3:232 build/C/man3/sigvec.3:252
9591 msgid ""
9592 "In order to wait for a signal, BSD and System V both provided a function "
9593 "named B<sigpause>(3), but this function has a different argument on the two "
9594 "systems.  See B<sigpause>(3)  for details."
9595 msgstr ""
9596 "BSD と System V のどちらのシステムでも シグナルを待つために、 B<sigpause>"
9597 "(3)  という名前の関数が提供されているが、 この関数の引き数は両方のシステムで"
9598 "異なる。 詳細は B<sigpause>(3)  を参照。"
9599
9600 #. type: Plain text
9601 #: build/C/man3/sigset.3:241
9602 msgid ""
9603 "In versions of glibc before 2.2, B<sigset>()  did not unblock I<sig> if "
9604 "I<disp> was specified as a value other than B<SIG_HOLD>."
9605 msgstr ""
9606 "2.2 より前のバージョンの glibc では、 I<disp> に B<SIG_HOLD> 以外の値が指定さ"
9607 "れた場合、 I<sig> のブロック解除を行っていなかった。"
9608
9609 #.  See http://sourceware.org/bugzilla/show_bug.cgi?id=1951
9610 #. type: Plain text
9611 #: build/C/man3/sigset.3:266
9612 msgid ""
9613 "In versions of glibc before 2.5, B<sigset>()  does not correctly return the "
9614 "previous disposition of the signal in two cases.  First, if I<disp> is "
9615 "specified as B<SIG_HOLD>, then a successful B<sigset>()  always returns "
9616 "B<SIG_HOLD>.  Instead, it should return the previous disposition of the "
9617 "signal (unless the signal was blocked, in which case B<SIG_HOLD> should be "
9618 "returned).  Second, if the signal is currently blocked, then the return "
9619 "value of a successful B<sigset>()  should be B<SIG_HOLD>.  Instead, the "
9620 "previous disposition of the signal is returned.  These problems have been "
9621 "fixed since glibc 2.5."
9622 msgstr ""
9623 "2.3.5 以前の全てのバージョンの glibc では、 B<sigset>()  が変更前のシグナルの"
9624 "動作を正しく返さない場合が 2つある。 一つめは、 I<disp> に B<SIG_HOLD> が指定"
9625 "されると、成功した場合 B<sigset>()  は常に B<SIG_HOLD> を返すことである。 正"
9626 "しくは、(シグナルがブロックされていなかった場合には)  変更前のシグナルの動作"
9627 "を返すべきである (シグナルがブロックされていた場合には、 B<SIG_HOLD> が返され"
9628 "る)。 もう一つは、シグナルが現在ブロックされている場合には、 成功した場合の "
9629 "B<sigset>()  の返り値は B<SIG_HOLD> になるべきであるが、実際には 変更前のシグ"
9630 "ナルの動作が返されることである。 これらの問題は glibc 2.5 以降で修正されてい"
9631 "る。"
9632
9633 #. type: Plain text
9634 #: build/C/man3/sigset.3:276
9635 msgid ""
9636 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9637 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
9638 msgstr ""
9639 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9640 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
9641
9642 #. type: TH
9643 #: build/C/man3/sigsetops.3:31
9644 #, no-wrap
9645 msgid "SIGSETOPS"
9646 msgstr "SIGSETOPS"
9647
9648 #. type: TH
9649 #: build/C/man3/sigsetops.3:31
9650 #, no-wrap
9651 msgid "2008-09-01"
9652 msgstr "2008-09-01"
9653
9654 #. type: Plain text
9655 #: build/C/man3/sigsetops.3:35
9656 msgid ""
9657 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX signal "
9658 "set operations."
9659 msgstr ""
9660 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX シグナル集"
9661 "合の操作"
9662
9663 #. type: Plain text
9664 #: build/C/man3/sigsetops.3:39
9665 msgid "B<int sigemptyset(sigset_t *>I<set>B<);>"
9666 msgstr "B<int sigemptyset(sigset_t *>I<set>B<);>"
9667
9668 #. type: Plain text
9669 #: build/C/man3/sigsetops.3:41
9670 msgid "B<int sigfillset(sigset_t *>I<set>B<);>"
9671 msgstr "B<int sigfillset(sigset_t *>I<set>B<);>"
9672
9673 #. type: Plain text
9674 #: build/C/man3/sigsetops.3:43
9675 msgid "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9676 msgstr "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9677
9678 #. type: Plain text
9679 #: build/C/man3/sigsetops.3:45
9680 msgid "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9681 msgstr "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9682
9683 #. type: Plain text
9684 #: build/C/man3/sigsetops.3:47
9685 msgid "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
9686 msgstr "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
9687
9688 #. type: Plain text
9689 #: build/C/man3/sigsetops.3:59
9690 msgid ""
9691 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
9692 "B<sigismember>():"
9693 msgstr ""
9694 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
9695 "B<sigismember>():"
9696
9697 #. type: Plain text
9698 #: build/C/man3/sigsetops.3:61
9699 msgid "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
9700 msgstr "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
9701
9702 #. type: Plain text
9703 #: build/C/man3/sigsetops.3:65
9704 msgid "These functions allow the manipulation of POSIX signal sets."
9705 msgstr "これらの関数は POSIX シグナル集合(signal set)を操作するため使用する。"
9706
9707 #. type: Plain text
9708 #: build/C/man3/sigsetops.3:70
9709 msgid ""
9710 "B<sigemptyset>()  initializes the signal set given by I<set> to empty, with "
9711 "all signals excluded from the set."
9712 msgstr ""
9713 "B<sigemptyset>()  は I<set> で与えられたシグナル集合を空に初期化し、シグナル"
9714 "が一つも 含まれていない状態にする。"
9715
9716 #. type: Plain text
9717 #: build/C/man3/sigsetops.3:75
9718 msgid "B<sigfillset>()  initializes I<set> to full, including all signals."
9719 msgstr ""
9720 "B<sigfillset>()  は I<set> で与えられたシグナル集合が全てのシグナルを含むよう"
9721 "にする。"
9722
9723 #. type: Plain text
9724 #: build/C/man3/sigsetops.3:83
9725 msgid ""
9726 "B<sigaddset>()  and B<sigdelset>()  add and delete respectively signal "
9727 "I<signum> from I<set>."
9728 msgstr ""
9729 "B<sigaddset>()  と B<sigdelset>()  は I<set> に I<signum> シグナルをそれぞれ"
9730 "加えたり、削除したりする。"
9731
9732 #. type: Plain text
9733 #: build/C/man3/sigsetops.3:89
9734 msgid "B<sigismember>()  tests whether I<signum> is a member of I<set>."
9735 msgstr ""
9736 "B<sigismember>()  は I<signum> が I<set> に含まれているかどうかをテストする。"
9737
9738 #. type: Plain text
9739 #: build/C/man3/sigsetops.3:107
9740 msgid ""
9741 "Objects of type I<sigset_t> must be initialized by a call to either "
9742 "B<sigemptyset>()  or B<sigfillset>()  before being passed to the functions "
9743 "B<sigaddset>(), B<sigdelset>()  and B<sigismember>()  or the additional "
9744 "glibc functions described below (B<sigisemptyset>(), B<sigandset>(), and "
9745 "B<sigorset>()).  The results are undefined if this is not done."
9746 msgstr ""
9747 "I<sigset_t> 型のオブジェクトは、関数 B<sigaddset>(), B<sigdelset>(), "
9748 "B<sigismember>()  や後述の glibc の追加関数 (B<sigisemptyset>(), B<sigandset>"
9749 "(), B<sigorset>())  に渡す前に、 B<sigemptyset>()  か B<sigfillset>()  を呼び"
9750 "出して初期化しなければならない。 初期化しなかった場合の結果は未定義である。"
9751
9752 #. type: Plain text
9753 #: build/C/man3/sigsetops.3:114
9754 msgid ""
9755 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), and B<sigdelset>()  "
9756 "return 0 on success and -1 on error."
9757 msgstr ""
9758 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>()  は成功すれ"
9759 "ば 0 を、エラーの場合は -1 を返す。"
9760
9761 #. type: Plain text
9762 #: build/C/man3/sigsetops.3:123
9763 msgid ""
9764 "B<sigismember>()  returns 1 if I<signum> is a member of I<set>, 0 if "
9765 "I<signum> is not a member, and -1 on error."
9766 msgstr ""
9767 "B<sigismember>()  は I<signum> が I<set> に含まれていれば 1 を返し、含まれて"
9768 "いなければ 0 を返す。 エラーの場合は -1 を返す。"
9769
9770 #. type: Plain text
9771 #: build/C/man3/sigsetops.3:128
9772 msgid "I<sig> is not a valid signal."
9773 msgstr "I<sig> が有効なシグナルではない。"
9774
9775 #. type: SS
9776 #: build/C/man3/sigsetops.3:131
9777 #, no-wrap
9778 msgid "Glibc notes"
9779 msgstr "glibc での注意"
9780
9781 #. type: Plain text
9782 #: build/C/man3/sigsetops.3:137
9783 msgid ""
9784 "If the B<_GNU_SOURCE> feature test macro is defined, then I<E<lt>signal."
9785 "hE<gt>> exposes three other functions for manipulating signal sets."
9786 msgstr ""
9787 "B<_GNU_SOURCE> 機能検査マクロが定義されていると、 I<E<lt>signal.hE<gt>> でシ"
9788 "グナル集合を操作する 3つの関数が追加で公開される。"
9789
9790 #. type: TP
9791 #: build/C/man3/sigsetops.3:137
9792 #, no-wrap
9793 msgid "B<int sigisemptyset(sigset_t *>I<set>B<);>"
9794 msgstr "B<int sigisemptyset(sigset_t *>I<set>B<);>"
9795
9796 #. type: Plain text
9797 #: build/C/man3/sigsetops.3:142
9798 msgid "returns 1 if I<set> contains no signals, and 0 otherwise."
9799 msgstr ""
9800 "I<set> にシグナルが一つも含まれていなければ 1 を返し、 それ以外は 0 を返す。"
9801
9802 #. type: TP
9803 #: build/C/man3/sigsetops.3:142
9804 #, no-wrap
9805 msgid "B<int sigorset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
9806 msgstr "B<int sigorset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
9807
9808 #. type: Plain text
9809 #: build/C/man3/sigsetops.3:151
9810 msgid "places the union of the sets I<left> and I<right> in I<dest>."
9811 msgstr "シグナル集合 I<left> と I<left> の和集合を I<dest> に書き込む。"
9812
9813 #. type: TP
9814 #: build/C/man3/sigsetops.3:151
9815 #, no-wrap
9816 msgid "B<int sigandset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
9817 msgstr "B<int sigandset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
9818
9819 #. type: Plain text
9820 #: build/C/man3/sigsetops.3:160
9821 msgid "places the intersection of the sets I<left> and I<right> in I<dest>."
9822 msgstr "シグナル集合 I<left> と I<left> の積集合を I<dest> に書き込む。"
9823
9824 #. type: Plain text
9825 #: build/C/man3/sigsetops.3:165
9826 msgid ""
9827 "B<sigorset>()  and B<sigandset>()  return 0 on success, and -1 on failure."
9828 msgstr ""
9829 "B<sigorset>()  と B<sigandset>()  は成功すると 0 を、失敗すると -1 を返す。"
9830
9831 #. type: Plain text
9832 #: build/C/man3/sigsetops.3:168
9833 msgid ""
9834 "These functions are nonstandard (a few other systems provide similar "
9835 "functions) and their use should be avoided in portable applications."
9836 msgstr ""
9837 "これらの関数は非標準であり、(他にも同様の関数を提供しているシステムも いくつ"
9838 "かはあるが) 移植性を考慮したアプリケーションでは使用を避けるべき である。"
9839
9840 #. type: Plain text
9841 #: build/C/man3/sigsetops.3:173
9842 msgid "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
9843 msgstr "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
9844
9845 #. type: TH
9846 #: build/C/man2/sigsuspend.2:29
9847 #, no-wrap
9848 msgid "SIGSUSPEND"
9849 msgstr "SIGSUSPEND"
9850
9851 #. type: TH
9852 #: build/C/man2/sigsuspend.2:29
9853 #, no-wrap
9854 msgid "2008-08-29"
9855 msgstr "2008-08-29"
9856
9857 #. type: Plain text
9858 #: build/C/man2/sigsuspend.2:32
9859 msgid "sigsuspend - wait for a signal"
9860 msgstr "sigsuspend - シグナルを待つ"
9861
9862 #. type: Plain text
9863 #: build/C/man2/sigsuspend.2:36
9864 msgid "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
9865 msgstr "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
9866
9867 #. type: Plain text
9868 #: build/C/man2/sigsuspend.2:45
9869 msgid ""
9870 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9871 "_POSIX_SOURCE"
9872 msgstr ""
9873 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9874 "_POSIX_SOURCE"
9875
9876 #. type: Plain text
9877 #: build/C/man2/sigsuspend.2:53
9878 msgid ""
9879 "B<sigsuspend>()  temporarily replaces the signal mask of the calling process "
9880 "with the mask given by I<mask> and then suspends the process until delivery "
9881 "of a signal whose action is to invoke a signal handler or to terminate a "
9882 "process."
9883 msgstr ""
9884 "B<sigsuspend>()  は、呼び出し元プロセスのシグナルマスクを I<mask> で指定され"
9885 "たマスクに一時的に置き換え、 シグナルハンドラの起動もしくはプロセスの終了がア"
9886 "クションとして 設定されたシグナルが配送されるまで、そのプロセスを停止する。"
9887
9888 #. type: Plain text
9889 #: build/C/man2/sigsuspend.2:62
9890 msgid ""
9891 "If the signal terminates the process, then B<sigsuspend>()  does not "
9892 "return.  If the signal is caught, then B<sigsuspend>()  returns after the "
9893 "signal handler returns, and the signal mask is restored to the state before "
9894 "the call to B<sigsuspend>()."
9895 msgstr ""
9896 "シグナルがプロセスを終了させるものの場合、 B<sigsuspend>()  は返らない。シグ"
9897 "ナルが捕捉された場合、 シグナルハンドラの処理が終わった後に B<sigsuspend>()  "
9898 "は返り、シグナルマスクは B<sigsuspend>()  が呼び出される前の状態に復元され"
9899 "る。"
9900
9901 #. type: Plain text
9902 #: build/C/man2/sigsuspend.2:70
9903 msgid ""
9904 "It is not possible to block B<SIGKILL> or B<SIGSTOP>; specifying these "
9905 "signals in I<mask>, has no effect on the process's signal mask."
9906 msgstr ""
9907 "B<SIGKILL> と B<SIGSTOP> を禁止 (block) することはできない; これらのシグナル"
9908 "を I<mask> に指定しても、プロセスのシグナルマスクは影響を受けない。"
9909
9910 #. type: Plain text
9911 #: build/C/man2/sigsuspend.2:74
9912 msgid "B<sigsuspend>()  always returns -1, normally with the error B<EINTR>."
9913 msgstr "B<sigsuspend>()  は常に -1 を返し、通常は B<EINTR> エラーが発生する。"
9914
9915 #. type: Plain text
9916 #: build/C/man2/sigsuspend.2:79
9917 msgid ""
9918 "I<mask> points to memory which is not a valid part of the process address "
9919 "space."
9920 msgstr ""
9921 "I<mask> が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。"
9922
9923 #. type: Plain text
9924 #: build/C/man2/sigsuspend.2:82
9925 msgid "The call was interrupted by a signal."
9926 msgstr "システムコールはシグナルにより割り込まれた。"
9927
9928 #. type: Plain text
9929 #: build/C/man2/sigsuspend.2:102
9930 msgid ""
9931 "Normally, B<sigsuspend>()  is used in conjunction with B<sigprocmask>(2)  in "
9932 "order to prevent delivery of a signal during the execution of a critical "
9933 "code section.  The caller first blocks the signals with B<sigprocmask>(2).  "
9934 "When the critical code has completed, the caller then waits for the signals "
9935 "by calling B<sigsuspend>()  with the signal mask that was returned by "
9936 "B<sigprocmask>(2)  (in the I<oldset> argument)."
9937 msgstr ""
9938 "B<sigsuspend>()  は、通常、クリティカル・コード・セクション (critical code "
9939 "section) の 実行中にシグナルが配送されるのを防止するために、 B<sigprocmask>"
9940 "(2)  と組み合わせて使用される。 まず最初に、呼び出し元は B<sigprocmask>(2)  "
9941 "を使ってシグナルを禁止する。 クリティカル・コードが完了すると、呼び出し元は "
9942 "B<sigprocmask>(2)  が (I<oldset> 引き数で) 返すシグナルマスクを指定して "
9943 "B<sigsuspend>()  を呼び出すことで、クリティカル・コード実行中に発生した シグ"
9944 "ナルを待つことができる。"
9945
9946 #. type: Plain text
9947 #: build/C/man2/sigsuspend.2:116
9948 msgid ""
9949 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9950 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
9951 msgstr ""
9952 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9953 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
9954
9955 #. type: TH
9956 #: build/C/man3/sigvec.3:26
9957 #, no-wrap
9958 msgid "SIGVEC"
9959 msgstr "SIGVEC"
9960
9961 #. type: TH
9962 #: build/C/man3/sigvec.3:26
9963 #, no-wrap
9964 msgid "2012-09-06"
9965 msgstr "2012-09-06"
9966
9967 #. type: Plain text
9968 #: build/C/man3/sigvec.3:29
9969 msgid "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD signal API"
9970 msgstr "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD 版シグナル API"
9971
9972 #. type: Plain text
9973 #: build/C/man3/sigvec.3:33
9974 msgid ""
9975 "B<int sigvec(int >I<sig>B<, struct sigvec *>I<vec>B<, struct sigvec "
9976 "*>I<ovec>B<);>"
9977 msgstr ""
9978 "B<int sigvec(int >I<sig>B<, struct sigvec *>I<vec>B<, struct sigvec "
9979 "*>I<ovec>B<);>"
9980
9981 #. type: Plain text
9982 #: build/C/man3/sigvec.3:35
9983 msgid "B<int sigmask(int >I<signum>B<);>"
9984 msgstr "B<int sigmask(int >I<signum>B<);>"
9985
9986 #. type: Plain text
9987 #: build/C/man3/sigvec.3:37
9988 msgid "B<int sigblock(int >I<mask>B<);>"
9989 msgstr "B<int sigblock(int >I<mask>B<);>"
9990
9991 #. type: Plain text
9992 #: build/C/man3/sigvec.3:39
9993 msgid "B<int sigsetmask(int >I<mask>B<);>"
9994 msgstr "B<int sigsetmask(int >I<mask>B<);>"
9995
9996 #. type: Plain text
9997 #: build/C/man3/sigvec.3:41
9998 msgid "B<int siggetmask(void);>"
9999 msgstr "B<int siggetmask(void);>"
10000
10001 #. type: Plain text
10002 #: build/C/man3/sigvec.3:49
10003 msgid "All functions shown above: _BSD_SOURCE"
10004 msgstr "上記の全ての関数: _BSD_SOURCE"
10005
10006 #. type: Plain text
10007 #: build/C/man3/sigvec.3:56
10008 msgid ""
10009 "These functions are provided in glibc as a compatibility interface for "
10010 "programs that make use of the historical BSD signal API.  This API is "
10011 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
10012 "B<sigprocmask>(2), etc.)."
10013 msgstr ""
10014 "これらの関数は、昔ながらの BSD 版シグナル API を使用しているプログラム に対し"
10015 "て互換性のあるインタフェースを glibc で提供するものである。 この API は過去の"
10016 "ものであり、新しいアプリケーションでは POSIX シグナル API (B<sigaction>(2), "
10017 "B<sigprocmask>(2)  など) を使用すべきである。"
10018
10019 #. type: Plain text
10020 #: build/C/man3/sigvec.3:81
10021 msgid ""
10022 "The B<sigvec>()  function sets and/or gets the disposition of the signal "
10023 "I<sig> (like the POSIX B<sigaction>(2)).  If I<vec> is not NULL, it points "
10024 "to a I<sigvec> structure that defines the new disposition for I<sig>.  If "
10025 "I<ovec> is not NULL, it points to a I<sigvec> structure that is used to "
10026 "return the previous disposition of I<sig>.  To obtain the current "
10027 "disposition of I<sig> without changing it, specify NULL for I<vec>, and a "
10028 "non-NULL pointer for I<ovec>."
10029 msgstr ""
10030 "関数 B<sigvec>()  は、(POSIX の B<sigaction>(2)  と同様に) シグナル I<sig> の"
10031 "動作の設定・取得を行う。 I<vec> は、NULL 以外の場合、 I<sig> の新しい動作を定"
10032 "義した I<sigvec> 構造体へのポインタである。 I<ovec> は、NULL 以外の場合、 "
10033 "I<sig> の変更前の動作を返すために使用される I<sigvec> 構造体へのポインタであ"
10034 "る。 I<sig> の動作を変更せずに現在の動作を取得するためには、 I<vec> に NULL "
10035 "を指定し、 I<ovec> に NULL でないポインタを指定すればよい。"
10036
10037 #. type: Plain text
10038 #: build/C/man3/sigvec.3:91
10039 msgid "The I<sigvec> structure has the following form:"
10040 msgstr "I<sigvec> 構造体は以下の通りである:"
10041
10042 #. type: Plain text
10043 #: build/C/man3/sigvec.3:99
10044 #, no-wrap
10045 msgid ""
10046 "struct sigvec {\n"
10047 "    void (*sv_handler)(int); /* Signal disposition */\n"
10048 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
10049 "    int    sv_flags;         /* Flags */\n"
10050 "};\n"
10051 msgstr ""
10052 "struct sigvec {\n"
10053 "    void (*sv_handler)(int); /* Signal disposition */\n"
10054 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
10055 "    int    sv_flags;         /* Flags */\n"
10056 "};\n"
10057
10058 #. type: Plain text
10059 #: build/C/man3/sigvec.3:110
10060 msgid ""
10061 "The I<sv_handler> field specifies the disposition of the signal, and is "
10062 "either: the address of a signal handler function; B<SIG_DFL>, meaning the "
10063 "default disposition applies for the signal; or B<SIG_IGN>, meaning that the "
10064 "signal is ignored."
10065 msgstr ""
10066 "I<sv_handler> フィールドはシグナルの動作を指定するもので、 シグナルハンドラ関"
10067 "数のアドレスか、 B<SIG_DFL> と B<SIG_IGN> のいずれかを指定できる。 "
10068 "B<SIG_DFL> はシグナルに適用されるデフォルトの動作を意味し、 B<SIG_IGN> はシグ"
10069 "ナルを無視することを意味する。"
10070
10071 #. type: Plain text
10072 #: build/C/man3/sigvec.3:124
10073 msgid ""
10074 "If I<sv_handler> specifies the address of a signal handler, then I<sv_mask> "
10075 "specifies a mask of signals that are to be blocked while the handler is "
10076 "executing.  In addition, the signal for which the handler is invoked is also "
10077 "blocked.  Attempts to block B<SIGKILL> or B<SIGSTOP> are silently ignored."
10078 msgstr "I<sv_handler> にシグナルハンドラのアドレスを指定した場合、 I<sv_mask> はハンドラが実行中にブロックされるべきシグナルのマスクを指定する。 また、ハンドラを起動したシグナル自身はブロックされる。 B<SIGKILL> か B<SIGSTOP> をブロックしようとした場合には、黙って無視される。"
10079
10080 #. type: Plain text
10081 #: build/C/man3/sigvec.3:131
10082 msgid ""
10083 "If I<sv_handler> specifies the address of a signal handler, then the "
10084 "I<sv_flags> field specifies flags controlling what happens when the handler "
10085 "is called.  This field may contain zero or more of the following flags:"
10086 msgstr ""
10087 "I<sv_handler> にシグナルハンドラのアドレスを指定した場合、 I<sv_flags> フィー"
10088 "ルドはハンドラが呼ばれた際の挙動を制御するフラグを指定する。 このフィールドに"
10089 "は、0 か、以下のフラグを 1個以上指定できる:"
10090
10091 #. type: TP
10092 #: build/C/man3/sigvec.3:131
10093 #, no-wrap
10094 msgid "B<SV_INTERRUPT>"
10095 msgstr "B<SV_INTERRUPT>"
10096
10097 #. type: Plain text
10098 #: build/C/man3/sigvec.3:139
10099 msgid ""
10100 "If the signal handler interrupts a blocking system call, then upon return "
10101 "from the handler the system call will not be restarted: instead it will fail "
10102 "with the error B<EINTR>.  If this flag is not specified, then system calls "
10103 "are restarted by default."
10104 msgstr ""
10105 "シグナルハンドラが停止中のシステムコールを中断した場合、 ハンドラから復帰して"
10106 "も、システムコールは再開されず、 エラー B<EINTR> で失敗する。 このフラグを指"
10107 "定しなかった場合、システムコールは デフォルトで再開される。"
10108
10109 #. type: TP
10110 #: build/C/man3/sigvec.3:139
10111 #, no-wrap
10112 msgid "B<SV_RESETHAND>"
10113 msgstr "B<SV_RESETHAND>"
10114
10115 #. type: Plain text
10116 #: build/C/man3/sigvec.3:148
10117 msgid ""
10118 "Reset the disposition of the signal to the default before calling the signal "
10119 "handler.  If this flag is not specified, then the handler remains "
10120 "established until explicitly removed by a later call to B<sigvec>()  or "
10121 "until the process performs an B<execve>(2)."
10122 msgstr ""
10123 "シグナルハンドラを呼び出す前にシグナルの動作を デフォルトにリセットする。 こ"
10124 "のフラグを指定しなかった場合、もう一度 B<sigvec>()  を呼び出して明示的に削除"
10125 "されるか、プロセスが B<execve>(2)  を実行するまで、ハンドラは設定されたままと"
10126 "なる。"
10127
10128 #. type: TP
10129 #: build/C/man3/sigvec.3:148
10130 #, no-wrap
10131 msgid "B<SV_ONSTACK>"
10132 msgstr "B<SV_ONSTACK>"
10133
10134 #. type: Plain text
10135 #: build/C/man3/sigvec.3:155
10136 msgid ""
10137 "Handle the signal on the alternate signal stack (historically established "
10138 "under BSD using the obsolete B<sigstack>()  function; the POSIX replacement "
10139 "is B<sigaltstack>(2))."
10140 msgstr ""
10141 "代替シグナルスタック上でシグナルハンドラを実行する (歴史的に、BSD では代替シ"
10142 "グナルスタックは廃止された関数 B<sigstack>()  を使って設定する。POSIX では、"
10143 "代わりに B<sigaltstack>(2)  を使用する)。"
10144
10145 #. type: Plain text
10146 #: build/C/man3/sigvec.3:165
10147 msgid ""
10148 "The B<sigmask>()  function constructs and returns a \"signal mask\" for "
10149 "I<signum>.  For example, we can initialize the I<vec.sv_mask> field given to "
10150 "B<sigvec>()  using code such as the following:"
10151 msgstr ""
10152 "関数 B<sigmask>()  は I<signum> に対する「シグナルマスク」を構成して返す。 例"
10153 "えば、以下のようなコードを使うと、 B<sigvec>()  に渡す I<vec.sv_mask> を初期"
10154 "化できる。"
10155
10156 #. type: Plain text
10157 #: build/C/man3/sigvec.3:170
10158 #, no-wrap
10159 msgid ""
10160 "    vec.sv_mask = sigmask(SIGQUIT) | sigpause(SIGABRT);\n"
10161 "                /* Block SIGQUIT and SIGABRT during\n"
10162 "                   handler execution */\n"
10163 msgstr ""
10164 "    vec.sv_mask = sigmask(SIGQUIT) | sigpause(SIGABRT);\n"
10165 "                /* Block SIGQUIT and SIGABRT during\n"
10166 "                   handler execution */\n"
10167
10168 #. type: Plain text
10169 #: build/C/man3/sigvec.3:185
10170 msgid ""
10171 "The B<sigblock>()  function adds the signals in I<mask> to the process's "
10172 "signal mask (like POSIX I<sigprocmask(SIG_BLOCK)>), and returns the "
10173 "process's previous signal mask.  Attempts to block B<SIGKILL> or B<SIGSTOP> "
10174 "are silently ignored."
10175 msgstr ""
10176 "B<sigblock>()  関数は、 I<mask> にあるシグナルをプロセスのシグナルマスクに追"
10177 "加し (POSIX の I<sigprocmask(SIG_BLOCK)> と同様)、変更前のプロセスのシグナル"
10178 "マスクを返す。 B<SIGKILL> や B<SIGSTOP> をブロックしようとした場合には、黙っ"
10179 "て無視される。"
10180
10181 #. type: Plain text
10182 #: build/C/man3/sigvec.3:193
10183 msgid ""
10184 "The B<sigsetmask>()  function sets the process's signal mask to the value "
10185 "given in I<mask> (like POSIX I<sigprocmask(SIG_SETMASK)>), and returns the "
10186 "process's previous signal mask."
10187 msgstr ""
10188 "B<sigsetmask>()  関数はプロセスのシグナルマスクを I<mask> で指定された値に設"
10189 "定し (POSIX の I<sigprocmask(SIG_SETMASK)> と同様)、変更前のプロセスのシグナ"
10190 "ルマスクを返す。"
10191
10192 #. type: Plain text
10193 #: build/C/man3/sigvec.3:199
10194 msgid ""
10195 "The B<siggetmask>()  function returns the process's current signal mask.  "
10196 "This call is equivalent to I<sigblock(0)>."
10197 msgstr ""
10198 "B<siggetmask>()  関数はプロセスの現在のシグナルマスクを返す。この関数は "
10199 "I<sigblock(0)> と等価である。"
10200
10201 #. type: Plain text
10202 #: build/C/man3/sigvec.3:205
10203 msgid ""
10204 "The B<sigvec>()  function returns 0 on success; on error, it returns -1 and "
10205 "sets I<errno> to indicate the error."
10206 msgstr ""
10207 "B<sigvec>()  関数は成功すると 0 を返す。エラーの場合、-1 を返し、 I<errno> に"
10208 "エラーを示す値をセットする。"
10209
10210 #. type: Plain text
10211 #: build/C/man3/sigvec.3:211
10212 msgid ""
10213 "The B<sigblock>()  and B<sigsetmask>()  functions return the previous signal "
10214 "mask."
10215 msgstr "B<sigblock>()  と B<sigsetmask>()  は変更前のシグナルマスクを返す。"
10216
10217 #. type: Plain text
10218 #: build/C/man3/sigvec.3:216
10219 msgid "The B<sigmask>()  function returns the signal mask for I<signum>."
10220 msgstr "B<sigmask>()  関数は I<signum> のシグナルマスクを返す。"
10221
10222 #. type: Plain text
10223 #: build/C/man3/sigvec.3:221
10224 msgid "See the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
10225 msgstr "B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」の節を参照。"
10226
10227 #. type: Plain text
10228 #: build/C/man3/sigvec.3:227
10229 msgid ""
10230 "All of these functions were in 4.3BSD, except B<siggetmask>(), whose origin "
10231 "is unclear.  These functions are obsolete: do not use them in new programs."
10232 msgstr ""
10233 "これらの関数のうち B<siggetmask>()  以外の全ては 4.3BSD にあった。 "
10234 "B<siggetmask>()  の出自ははっきりしない。 これらの関数は廃止予定であり、新し"
10235 "いプログラムでは使用しないこと。"
10236
10237 #. type: Plain text
10238 #: build/C/man3/sigvec.3:244
10239 msgid ""
10240 "On 4.3BSD, the B<signal>()  function provided reliable semantics (as when "
10241 "calling B<sigvec>()  with I<vec.sv_mask> equal to 0).  On System V, B<signal>"
10242 "()  provides unreliable semantics.  POSIX.1-2001 leaves these aspects of "
10243 "B<signal>()  unspecified.  See B<signal>(2)  for further details."
10244 msgstr ""
10245 "4.3BSD では、信頼性のあるシグナル処理機構を提供する (I<vec.sv_mask> を 0 で "
10246 "B<sigvec>()  を呼び出したときと同様)。 System V が提供する処理機構は信頼性の"
10247 "ないものである。 POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままと"
10248 "なっている。 さらなる詳細については B<signal>(2)  を参照。"
10249
10250 #. type: Plain text
10251 #: build/C/man3/sigvec.3:262
10252 msgid ""
10253 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10254 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
10255 msgstr ""
10256 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10257 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
10258
10259 #. type: TH
10260 #: build/C/man3/sigwait.3:26
10261 #, no-wrap
10262 msgid "SIGWAIT"
10263 msgstr "SIGWAIT"
10264
10265 #. type: TH
10266 #: build/C/man3/sigwait.3:26 build/C/man2/sigwaitinfo.2:25
10267 #, no-wrap
10268 msgid "2012-07-21"
10269 msgstr "2012-07-21"
10270
10271 #. type: Plain text
10272 #: build/C/man3/sigwait.3:29
10273 msgid "sigwait - wait for a signal"
10274 msgstr "sigwait - シグナルを待つ"
10275
10276 #. type: Plain text
10277 #: build/C/man3/sigwait.3:34
10278 #, no-wrap
10279 msgid "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
10280 msgstr "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
10281
10282 #. type: Plain text
10283 #: build/C/man3/sigwait.3:44
10284 msgid ""
10285 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10286 msgstr ""
10287 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10288
10289 #. type: Plain text
10290 #: build/C/man3/sigwait.3:56
10291 msgid ""
10292 "The B<sigwait>()  function suspends execution of the calling thread until "
10293 "one of the signals specified in the signal set I<set> becomes pending.  The "
10294 "function accepts the signal (removes it from the pending list of signals), "
10295 "and returns the signal number in I<sig>."
10296 msgstr "B<sigwait>()  関数は、シグナル集合 I<set> で指定されたシグナルの一つが処理待ち (pending) になるまで、 呼び出したスレッドの実行を中断する。 この関数はそのシグナルを受け取り (つまり、処理待ちのシグナルのリスト からそのシグナルを削除し)、そのシグナル番号を I<sig> に格納して返す。"
10297
10298 #. type: Plain text
10299 #: build/C/man3/sigwait.3:62
10300 msgid ""
10301 "The operation of B<sigwait>()  is the same as B<sigwaitinfo>(2), except that:"
10302 msgstr ""
10303 "B<sigwait>()  の動作は B<sigwaitinfo>(2)  と同じだが、以下の点が異なる。"
10304
10305 #. type: Plain text
10306 #: build/C/man3/sigwait.3:67
10307 msgid ""
10308 "B<sigwait>()  only returns the signal number, rather than a I<siginfo_t> "
10309 "structure describing the signal."
10310 msgstr ""
10311 "B<sigwait>()  は、シグナルの内容を表す I<siginfo_t> 構造体を返すのではなく、"
10312 "単にシグナル番号を返す。"
10313
10314 #. type: Plain text
10315 #: build/C/man3/sigwait.3:69
10316 msgid "The return values of the two functions are different."
10317 msgstr "返り値が B<sigwaitinfo>(2)  とは異なる。"
10318
10319 #. type: Plain text
10320 #: build/C/man3/sigwait.3:74
10321 msgid ""
10322 "On success, B<sigwait>()  returns 0.  On error, it returns a positive error "
10323 "number (listed in ERRORS)."
10324 msgstr ""
10325 "成功すると、 B<sigwait>()  は 0 を返す。 エラーの場合、(「エラー」の節のリス"
10326 "トにある) 正のエラー番号を返す。"
10327
10328 #.  Does not occur for glibc.
10329 #. type: Plain text
10330 #: build/C/man3/sigwait.3:80
10331 msgid "I<set> contains an invalid signal number."
10332 msgstr "I<set> に無効なシグナル番号が入っている。"
10333
10334 #. type: Plain text
10335 #: build/C/man3/sigwait.3:86
10336 msgid "B<sigwait>()  is implemented using B<sigtimedwait>(2)."
10337 msgstr "B<sigwait>()  は B<sigtimedwait>(2)  を使って実装されている。"
10338
10339 #. type: Plain text
10340 #: build/C/man3/sigwait.3:89
10341 msgid "See B<pthread_sigmask>(3)."
10342 msgstr "B<pthread_sigmask>(3)  を参照。"
10343
10344 #. type: Plain text
10345 #: build/C/man3/sigwait.3:97
10346 msgid ""
10347 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
10348 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
10349 msgstr ""
10350 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
10351 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
10352
10353 #. type: TH
10354 #: build/C/man2/sigwaitinfo.2:25
10355 #, no-wrap
10356 msgid "SIGWAITINFO"
10357 msgstr "SIGWAITINFO"
10358
10359 #. type: Plain text
10360 #: build/C/man2/sigwaitinfo.2:28
10361 msgid "sigwaitinfo, sigtimedwait - synchronously wait for queued signals"
10362 msgstr "sigwaitinfo, sigtimedwait - キューに入れられたシグナルを同期して待つ"
10363
10364 #. type: Plain text
10365 #: build/C/man2/sigwaitinfo.2:33
10366 #, no-wrap
10367 msgid "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
10368 msgstr "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
10369
10370 #. type: Plain text
10371 #: build/C/man2/sigwaitinfo.2:36
10372 #, no-wrap
10373 msgid ""
10374 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
10375 "B<                 const struct timespec *>I<timeout>B<);>\n"
10376 msgstr ""
10377 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
10378 "B<                 const struct timespec *>I<timeout>B<);>\n"
10379
10380 #. type: Plain text
10381 #: build/C/man2/sigwaitinfo.2:46
10382 msgid "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10383 msgstr ""
10384 "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10385
10386 #. type: Plain text
10387 #: build/C/man2/sigwaitinfo.2:56
10388 msgid ""
10389 "B<sigwaitinfo>()  suspends execution of the calling thread until one of the "
10390 "signals in I<set> is pending (If one of the signals in I<set> is already "
10391 "pending for the calling thread, B<sigwaitinfo>()  will return immediately.)"
10392 msgstr "B<sigwaitinfo>()  は I<set> のうちのどれかのシグナルが処理待ちになるまで、 呼び出しスレッドの実行を一時停止する (呼び出しスレッドに対して I<set> のうちのどれかのシグナルが既に待機中 (pending) である場合、 B<sigwaitinfo>()  はすぐに戻る)。"
10393
10394 #. type: Plain text
10395 #: build/C/man2/sigwaitinfo.2:68
10396 msgid ""
10397 "B<sigwaitinfo>()  removes the signal from the set of pending signals and "
10398 "returns the signal number as its function result.  If the I<info> argument "
10399 "is not NULL, then the buffer that it points to is used to return a structure "
10400 "of type I<siginfo_t> (see B<sigaction>(2))  containing information about the "
10401 "signal."
10402 msgstr "B<sigwaitinfo>()  はそのシグナルを待機中のシグナルの集合から削除し、関数の結果としてシグナル番号を返す。 I<info> 引き数が NULL でない場合、配送されたシグナルの情報が入った I<siginfo_t> 型 (B<sigaction>(2)  を参照) の構造体を I<info> が指すバッファに入れて返す。"
10403
10404 #. type: Plain text
10405 #: build/C/man2/sigwaitinfo.2:76
10406 #, fuzzy
10407 #| msgid ""
10408 #| "Signals returned via B<sigwaitinfo>()  are delivered in the usual order; "
10409 #| "see B<signal>(7)  for further details."
10410 msgid ""
10411 "If multiple signals in I<set> are pending for the caller, the signal that is "
10412 "retrieved by B<sigwaitinfo>()  is determined according to the usual ordering "
10413 "rules; see B<signal>(7)  for further details."
10414 msgstr ""
10415 "B<sigwaitinfo>()  で返されるシグナルは、通常の順番で配送される。 詳細は "
10416 "B<signal>(7)  を参照すること。"
10417
10418 #. type: Plain text
10419 #: build/C/man2/sigwaitinfo.2:88
10420 msgid ""
10421 "B<sigtimedwait>()  operates in exactly the same way as B<sigwaitinfo>()  "
10422 "except that it has an additional argument, I<timeout>, which specifies a "
10423 "minimum interval for which the thread is suspended waiting for a signal.  "
10424 "(This interval will be rounded up to the system clock granularity, and "
10425 "kernel scheduling delays mean that the interval may overrun by a small "
10426 "amount.)  This argument is of the following type:"
10427 msgstr ""
10428 "B<sigtimedwait>() は、 B<sigwaitinfo>() と次の点を除いて全く同じように\n"
10429 "動作する。この関数にはもう 1 つの引き数 I<timeout> があり、シグナル待ち\n"
10430 "でスレッドが一時停止する最小時間を指定することができる(この時間はシステ\n"
10431 "ムクロックの粒度に切り上げられ、カーネルのスケジューリング遅延により\n"
10432 "少しだけ長くなる可能性がある)。この引き数の型は以下のとおりである:"
10433
10434 #. type: Plain text
10435 #: build/C/man2/sigwaitinfo.2:95
10436 #, no-wrap
10437 msgid ""
10438 "struct timespec {\n"
10439 "    long    tv_sec;         /* seconds */\n"
10440 "    long    tv_nsec;        /* nanoseconds */\n"
10441 "}\n"
10442 msgstr ""
10443 "struct timespec {\n"
10444 "    long    tv_sec;         /* 秒 */\n"
10445 "    long    tv_nsec;        /* ナノ秒 */\n"
10446 "}\n"
10447
10448 #. type: Plain text
10449 #: build/C/man2/sigwaitinfo.2:105
10450 msgid ""
10451 "If both fields of this structure are specified as 0, a poll is performed: "
10452 "B<sigtimedwait>()  returns immediately, either with information about a "
10453 "signal that was pending for the caller, or with an error if none of the "
10454 "signals in I<set> was pending."
10455 msgstr ""
10456 "この構造体の 2 つのフィールドがともに 0 の場合、ポーリングが行われる: "
10457 "B<sigtimedwait>()  は、呼び出し側プロセスに対して 待機しているシグナルの情報"
10458 "を返して戻るか、 I<set> のうちのどのシグナルも待機していない場合はエラーを返"
10459 "して戻る。"
10460
10461 #. type: Plain text
10462 #: build/C/man2/sigwaitinfo.2:114
10463 msgid ""
10464 "On success, both B<sigwaitinfo>()  and B<sigtimedwait>()  return a signal "
10465 "number (i.e., a value greater than zero).  On failure both calls return -1, "
10466 "with I<errno> set to indicate the error."
10467 msgstr ""
10468 "成功した場合、 B<sigwaitinfo>()  と B<sigtimedwait>()  はシグナル番号 (すなわ"
10469 "ち 0 より大きい数) を返す。 失敗した場合、2 つの関数は -1 を返し、 I<errno> "
10470 "はエラーを表す値に設定される。"
10471
10472 #. type: Plain text
10473 #: build/C/man2/sigwaitinfo.2:123
10474 msgid ""
10475 "No signal in I<set> was became pending within the I<timeout> period "
10476 "specified to B<sigtimedwait>()."
10477 msgstr "I<set> のうちのどのシグナルも B<sigtimedwait>()  に指定された I<timeout> の期間内に処理待ちにならなかった。"
10478
10479 #. type: Plain text
10480 #: build/C/man2/sigwaitinfo.2:129
10481 msgid ""
10482 "The wait was interrupted by a signal handler; see B<signal>(7).  (This "
10483 "handler was for a signal other than one of those in I<set>.)"
10484 msgstr ""
10485 "シグナル待ちがシグナルハンドラによって中断 (interrupt) された (このハンドラ"
10486 "は I<set> にあるシグナル以外のものである)。 B<signal>(7)  参照。"
10487
10488 #. type: Plain text
10489 #: build/C/man2/sigwaitinfo.2:133
10490 msgid "I<timeout> was invalid."
10491 msgstr "I<timeout> が不正である。"
10492
10493 #. type: Plain text
10494 #: build/C/man2/sigwaitinfo.2:153
10495 msgid ""
10496 "In normal usage, the calling program blocks the signals in I<set> via a "
10497 "prior call to B<sigprocmask>(2)  (so that the default disposition for these "
10498 "signals does not occur if they become pending between successive calls to "
10499 "B<sigwaitinfo>()  or B<sigtimedwait>())  and does not establish handlers for "
10500 "these signals.  In a multithreaded program, the signal should be blocked in "
10501 "all threads, in order to prevent the signal being treated according to its "
10502 "default disposition in a thread other than the one calling B<sigwaitinfo>()  "
10503 "or B<sigtimedwait>())."
10504 msgstr "通常の使用法では、呼び出し側プロセスはこれらの関数より先に B<sigprocmask>(2)  の呼び出すことにより I<set> に含まれるシグナルをブロックし (そのためにこれらのシグナルがこの後に続く B<sigwaitinfo>()  や B<sigtimedwait>()  の呼び出しの間に処理待ちになった場合には、デフォルトの動作は行われず)、 これらのシグナルに対するハンドラは設定しない。 マルチスレッドプログラムでは、 B<sigwaitinfo>()  や B<sigtimedwait>() を呼び出したスレッド以外のスレッドで、そのシグナルがデフォルトの動作に基いて処理されないように、全てのスレッドで該当シグナルをブロックすべきである。"
10505
10506 #. type: Plain text
10507 #: build/C/man2/sigwaitinfo.2:158
10508 msgid ""
10509 "The set of signals that is pending for a given thread is the union of the "
10510 "set of signals that is pending specifically for that thread and the set of "
10511 "signals that is pending for the process as a whole (see B<signal>(7))."
10512 msgstr ""
10513 "指定されたスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体宛ての"
10514 "処理待ちのシグナル集合と、プロセス全体宛ての 処理待ちのシグナル集合をあわせた"
10515 "ものである (B<signal>(7)  参照)。"
10516
10517 #. type: Plain text
10518 #: build/C/man2/sigwaitinfo.2:164
10519 msgid "Attempts to wait for B<SIGKILL> and B<SIGSTOP> are silently ignored."
10520 msgstr "B<SIGKILL> と B<SIGSTOP> を待とうとした場合、黙って無視される。"
10521
10522 #. type: Plain text
10523 #: build/C/man2/sigwaitinfo.2:173
10524 msgid ""
10525 "If multiple threads of a process are blocked waiting for the same signal(s) "
10526 "in B<sigwaitinfo>()  or B<sigtimedwait>(), then exactly one of the threads "
10527 "will actually receive the signal if it becomes pending for the process as a "
10528 "whole; which of the threads receives the signal is indeterminate."
10529 msgstr "一つのプロセス内の複数のスレッドが B<sigwaitinfo>()  や B<sigtimedwait>()  で同じシグナルを待って停止した場合、 プロセス全体宛てのシグナルが処理待ちになると、複数のスレッドのうち一つだけが 実際にそのシグナルを受信することになる。 どのスレッドがシグナルを受信するかは決まっていない。"
10530
10531 #. type: Plain text
10532 #: build/C/man2/sigwaitinfo.2:182
10533 msgid ""
10534 "POSIX leaves the meaning of a NULL value for the I<timeout> argument of "
10535 "B<sigtimedwait>()  unspecified, permitting the possibility that this has the "
10536 "same meaning as a call to B<sigwaitinfo>(), and indeed this is what is done "
10537 "on Linux."
10538 msgstr ""
10539 "POSIX では B<sigtimedwait>()  の引き数 I<timeout> の値を NULL にした場合の意"
10540 "味を未定義としている。 B<sigwaitinfo>()  を呼び出したのと同じ意味としてもよい"
10541 "ことになっており、 実際 Linux ではこのように動作する。"
10542
10543 #. type: Plain text
10544 #: build/C/man2/sigwaitinfo.2:187
10545 msgid ""
10546 "On Linux, B<sigwaitinfo>()  is a library function implemented on top of "
10547 "B<sigtimedwait>()."
10548 msgstr ""
10549 "Linux では、 B<sigwaitinfo>()  は B<sigtimedwait>()  を用いて実装されたライブ"
10550 "ラリ関数である。"
10551
10552 #. type: Plain text
10553 #: build/C/man2/sigwaitinfo.2:199
10554 msgid ""
10555 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
10556 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), B<signal>"
10557 "(7), B<time>(7)"
10558 msgstr ""
10559 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
10560 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), B<signal>"
10561 "(7), B<time>(7)"
10562
10563 #. type: TH
10564 #: build/C/man3/sysv_signal.3:25
10565 #, no-wrap
10566 msgid "SYSV_SIGNAL"
10567 msgstr "SYSV_SIGNAL"
10568
10569 #. type: TH
10570 #: build/C/man3/sysv_signal.3:25
10571 #, no-wrap
10572 msgid "2007-05-04"
10573 msgstr "2007-05-04"
10574
10575 #. type: Plain text
10576 #: build/C/man3/sysv_signal.3:28
10577 msgid "sysv_signal - signal handling with System V semantics"
10578 msgstr "sysv_signal - System V 方式のシグナル処理"
10579
10580 #. type: Plain text
10581 #: build/C/man3/sysv_signal.3:30
10582 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
10583 msgstr "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */"
10584
10585 #. type: Plain text
10586 #: build/C/man3/sysv_signal.3:36
10587 msgid ""
10588 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
10589 msgstr ""
10590 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
10591
10592 #. type: Plain text
10593 #: build/C/man3/sysv_signal.3:41
10594 msgid ""
10595 "The B<sysv_signal>()  function takes the same arguments, and performs the "
10596 "same task, as B<signal>(2)."
10597 msgstr ""
10598 "B<sysv_signal>()  関数は B<signal>(2)  と同じ引き数をとり、同じ処理を実行す"
10599 "る。"
10600
10601 #. type: Plain text
10602 #: build/C/man3/sysv_signal.3:51
10603 msgid ""
10604 "However B<sysv_signal>()  provides the System V unreliable signal semantics, "
10605 "that is: a) the disposition of the signal is reset to the default when the "
10606 "handler is invoked; b) delivery of further instances of the signal is not "
10607 "blocked while the signal handler is executing; and c) if the handler "
10608 "interrupts (certain) blocking system calls, then the system call is not "
10609 "automatically restarted."
10610 msgstr ""
10611 "しかしながら、 B<sysv_signal>()  は System V の信頼性に欠けるシグナル処理方式"
10612 "を提供している。 信頼性に欠けるシグナル処理方式は以下の特徴を持つ。 a) ハンド"
10613 "ラが起動されると、シグナルの処理方法 (disposition) が デフォルトにリセットさ"
10614 "れる、 b) シグナルハンドラの実行中は、それ以降に発生した同じシグナルの配送が "
10615 "ブロックされない、 c) ハンドラが停止中の (blocking している) システムコールを"
10616 "中断した場合、 自動的に再開されないシステムコールがある。"
10617
10618 #. type: Plain text
10619 #: build/C/man3/sysv_signal.3:57
10620 msgid ""
10621 "The B<sysv_signal>()  function returns the previous value of the signal "
10622 "handler, or B<SIG_ERR> on error."
10623 msgstr ""
10624 "B<sysv_signal>()  関数はシグナルハンドラの直前の値を返す。 エラーの場合、 "
10625 "B<SIG_ERR> を返す。"
10626
10627 #. type: Plain text
10628 #: build/C/man3/sysv_signal.3:62
10629 msgid "This function is nonstandard."
10630 msgstr "この関数は非標準である。"
10631
10632 #. type: Plain text
10633 #: build/C/man3/sysv_signal.3:68
10634 msgid ""
10635 "Use of B<sysv_signal>()  should be avoided; use B<sigaction>(2)  instead."
10636 msgstr ""
10637 "B<sysv_signal>()  の使用は避けるべきである。代わりに B<sigaction>(2)  を使う"
10638 "こと。"
10639
10640 #. type: Plain text
10641 #: build/C/man3/sysv_signal.3:79
10642 msgid ""
10643 "On older Linux systems, B<sysv_signal>()  and B<signal>(2)  were "
10644 "equivalent.  But on newer systems, B<signal>(2)  provides reliable signal "
10645 "semantics; see B<signal>(2)  for details."
10646 msgstr ""
10647 "以前の Linux システムでは、 B<sysv_signal>()  と B<signal>(2)  は等価であっ"
10648 "た。しかし、新しめのシステムでは、 B<signal>(2)  は信頼性のあるシグナル処理方"
10649 "式を提供している。 詳細は B<signal>(2)  を参照。"
10650
10651 #. type: Plain text
10652 #: build/C/man3/sysv_signal.3:92
10653 msgid "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
10654 msgstr "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
10655
10656 #. type: TH
10657 #: build/C/man2/timer_create.2:31
10658 #, no-wrap
10659 msgid "TIMER_CREATE"
10660 msgstr "TIMER_CREATE"
10661
10662 #. type: TH
10663 #: build/C/man2/timer_create.2:31
10664 #, no-wrap
10665 msgid "2010-09-27"
10666 msgstr "2010-09-27"
10667
10668 #. type: Plain text
10669 #: build/C/man2/timer_create.2:34
10670 msgid "timer_create - create a POSIX per-process timer"
10671 msgstr ""
10672
10673 #. type: Plain text
10674 #: build/C/man2/timer_create.2:38
10675 #, no-wrap
10676 msgid ""
10677 "B<#include E<lt>signal.hE<gt>>\n"
10678 "B<#include E<lt>time.hE<gt>>\n"
10679 msgstr ""
10680 "B<#include E<lt>signal.hE<gt>>\n"
10681 "B<#include E<lt>time.hE<gt>>\n"
10682
10683 #. type: Plain text
10684 #: build/C/man2/timer_create.2:41
10685 #, no-wrap
10686 msgid ""
10687 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
10688 "B<                 timer_t *>I<timerid>B<);>\n"
10689 msgstr ""
10690 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
10691 "B<                 timer_t *>I<timerid>B<);>\n"
10692
10693 #. type: Plain text
10694 #: build/C/man2/timer_create.2:44 build/C/man2/timer_delete.2:37
10695 #: build/C/man2/timer_getoverrun.2:37 build/C/man2/timer_settime.2:41
10696 msgid "Link with I<-lrt>."
10697 msgstr ""
10698
10699 #. type: Plain text
10700 #: build/C/man2/timer_create.2:52
10701 msgid "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10702 msgstr "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10703
10704 #. type: Plain text
10705 #: build/C/man2/timer_create.2:60
10706 msgid ""
10707 "B<timer_create>()  creates a new per-process interval timer.  The ID of the "
10708 "new timer is returned in the buffer pointed to by I<timerid>, which must be "
10709 "a non-NULL pointer.  This ID is unique within the process, until the timer "
10710 "is deleted.  The new timer is initially disarmed."
10711 msgstr ""
10712
10713 #. type: Plain text
10714 #: build/C/man2/timer_create.2:65
10715 msgid ""
10716 "The I<clockid> argument specifies the clock that the new timer uses to "
10717 "measure time.  It can be specified as one of the following values:"
10718 msgstr ""
10719
10720 #. type: TP
10721 #: build/C/man2/timer_create.2:65
10722 #, no-wrap
10723 msgid "B<CLOCK_REALTIME>"
10724 msgstr "B<CLOCK_REALTIME>"
10725
10726 #. type: Plain text
10727 #: build/C/man2/timer_create.2:68
10728 msgid "A settable system-wide real-time clock."
10729 msgstr ""
10730
10731 #. type: TP
10732 #: build/C/man2/timer_create.2:68
10733 #, no-wrap
10734 msgid "B<CLOCK_MONOTONIC>"
10735 msgstr "B<CLOCK_MONOTONIC>"
10736
10737 #.  Note: the CLOCK_MONOTONIC_RAW clock added for clock_gettime()
10738 #.  in 2.6.28 is not supported for POSIX timers -- mtk, Feb 2009
10739 #. type: Plain text
10740 #: build/C/man2/timer_create.2:75
10741 msgid ""
10742 "A nonsettable monotonically increasing clock that measures time from some "
10743 "unspecified point in the past that does not change after system startup."
10744 msgstr ""
10745
10746 #. type: TP
10747 #: build/C/man2/timer_create.2:75
10748 #, no-wrap
10749 msgid "B<CLOCK_PROCESS_CPUTIME_ID> (since Linux 2.6.12)"
10750 msgstr ""
10751
10752 #. type: Plain text
10753 #: build/C/man2/timer_create.2:79
10754 msgid ""
10755 "A clock that measures (user and system) CPU time consumed by (all of the "
10756 "threads in) the calling process."
10757 msgstr ""
10758
10759 #. type: TP
10760 #: build/C/man2/timer_create.2:79
10761 #, no-wrap
10762 msgid "B<CLOCK_THREAD_CPUTIME_ID> (since Linux 2.6.12)"
10763 msgstr ""
10764
10765 #.  The CLOCK_MONOTONIC_RAW that was added in 2.6.28 can't be used
10766 #.  to create a timer -- mtk, Feb 2009
10767 #. type: Plain text
10768 #: build/C/man2/timer_create.2:85
10769 msgid ""
10770 "A clock that measures (user and system) CPU time consumed by the calling "
10771 "thread."
10772 msgstr ""
10773
10774 #. type: Plain text
10775 #: build/C/man2/timer_create.2:94
10776 msgid ""
10777 "As well as the above values, I<clockid> can be specified as the I<clockid> "
10778 "returned by a call to B<clock_getcpuclockid>(3)  or B<pthread_getcpuclockid>"
10779 "(3)."
10780 msgstr ""
10781
10782 #. type: Plain text
10783 #: build/C/man2/timer_create.2:103
10784 msgid ""
10785 "The I<sevp> argument points to a I<sigevent> structure that specifies how "
10786 "the caller should be notified when the timer expires.  For the definition "
10787 "and general details of this structure, see B<sigevent>(7)."
10788 msgstr ""
10789
10790 #. type: Plain text
10791 #: build/C/man2/timer_create.2:107
10792 msgid "The I<sevp.sigev_notify> field can have the following values:"
10793 msgstr ""
10794
10795 #. type: Plain text
10796 #: build/C/man2/timer_create.2:112
10797 msgid ""
10798 "Don't asynchronously notify when the timer expires.  Progress of the timer "
10799 "can be monitored using B<timer_gettime>(2)."
10800 msgstr ""
10801
10802 #. type: Plain text
10803 #: build/C/man2/timer_create.2:130
10804 msgid ""
10805 "Upon timer expiration, generate the signal I<sigev_signo> for the process.  "
10806 "See B<sigevent>(7)  for general details.  The I<si_code> field of the "
10807 "I<siginfo_t> structure will be set to B<SI_TIMER>.  At any point in time, at "
10808 "most one signal is queued to the process for a given timer; see "
10809 "B<timer_getoverrun>(2)  for more details."
10810 msgstr ""
10811
10812 #. type: Plain text
10813 #: build/C/man2/timer_create.2:138
10814 msgid ""
10815 "Upon timer expiration, invoke I<sigev_notify_function> as if it were the "
10816 "start function of a new thread.  See B<sigevent>(7)  for details."
10817 msgstr ""
10818
10819 #. type: Plain text
10820 #: build/C/man2/timer_create.2:152
10821 msgid ""
10822 "As for B<SIGEV_SIGNAL>, but the signal is targeted at the thread whose ID is "
10823 "given in I<sigev_notify_thread_id>, which must be a thread in the same "
10824 "process as the caller.  The I<sigev_notify_thread_id> field specifies a "
10825 "kernel thread ID, that is, the value returned by B<clone>(2)  or B<gettid>"
10826 "(2).  This flag is only intended for use by threading libraries."
10827 msgstr ""
10828
10829 #. type: Plain text
10830 #: build/C/man2/timer_create.2:167
10831 msgid ""
10832 "Specifying I<sevp> as NULL is equivalent to specifying a pointer to a "
10833 "I<sigevent> structure in which I<sigev_notify> is B<SIGEV_SIGNAL>, "
10834 "I<sigev_signo> is B<SIGALRM>, and I<sigev_value.sival_int> is the timer ID."
10835 msgstr ""
10836
10837 #. type: Plain text
10838 #: build/C/man2/timer_create.2:175
10839 msgid ""
10840 "On success, B<timer_create>()  returns 0, and the ID of the new timer is "
10841 "placed in I<*timerid>.  On failure, -1 is returned, and I<errno> is set to "
10842 "indicate the error."
10843 msgstr ""
10844
10845 #. type: Plain text
10846 #: build/C/man2/timer_create.2:179
10847 msgid "Temporary error during kernel allocation of timer structures."
10848 msgstr ""
10849
10850 #. type: Plain text
10851 #: build/C/man2/timer_create.2:187
10852 msgid ""
10853 "Clock ID, I<sigev_notify>, I<sigev_signo>, or I<sigev_notify_thread_id> is "
10854 "invalid."
10855 msgstr ""
10856
10857 #.  glibc layer: malloc()
10858 #. type: Plain text
10859 #: build/C/man2/timer_create.2:191
10860 msgid "Could not allocate memory."
10861 msgstr ""
10862
10863 #. type: Plain text
10864 #: build/C/man2/timer_create.2:193 build/C/man2/timer_delete.2:67
10865 #: build/C/man2/timer_getoverrun.2:97
10866 msgid "This system call is available since Linux 2.6."
10867 msgstr ""
10868
10869 #. type: Plain text
10870 #: build/C/man2/timer_create.2:198
10871 msgid "A program may create multiple interval timers using B<timer_create>()."
10872 msgstr ""
10873
10874 #. type: Plain text
10875 #: build/C/man2/timer_create.2:203
10876 msgid ""
10877 "Timers are not inherited by the child of a B<fork>(2), and are disarmed and "
10878 "deleted during an B<execve>(2)."
10879 msgstr ""
10880
10881 #. type: Plain text
10882 #: build/C/man2/timer_create.2:211
10883 msgid ""
10884 "The kernel preallocates a \"queued real-time signal\" for each timer created "
10885 "using B<timer_create>().  Consequently, the number of timers is limited by "
10886 "the B<RLIMIT_SIGPENDING> resource limit (see B<setrlimit>(2))."
10887 msgstr ""
10888
10889 #. type: Plain text
10890 #: build/C/man2/timer_create.2:216
10891 msgid ""
10892 "The timers created by B<timer_create>()  are commonly known as \"POSIX "
10893 "(interval) timers\".  The POSIX timers API consists of the following "
10894 "interfaces:"
10895 msgstr ""
10896
10897 #. type: Plain text
10898 #: build/C/man2/timer_create.2:219
10899 msgid "B<timer_create>(): Create a timer."
10900 msgstr ""
10901
10902 #. type: Plain text
10903 #: build/C/man2/timer_create.2:222
10904 msgid "B<timer_settime>(2): Arm (start) or disarm (stop) a timer."
10905 msgstr ""
10906
10907 #. type: Plain text
10908 #: build/C/man2/timer_create.2:226
10909 msgid ""
10910 "B<timer_gettime>(2): Fetch the time remaining until the next expiration of a "
10911 "timer, along with the interval setting of the timer."
10912 msgstr ""
10913
10914 #. type: Plain text
10915 #: build/C/man2/timer_create.2:229
10916 msgid ""
10917 "B<timer_getoverrun>(2): Return the overrun count for the last timer "
10918 "expiration."
10919 msgstr ""
10920
10921 #. type: Plain text
10922 #: build/C/man2/timer_create.2:232
10923 msgid "B<timer_delete>(2): Disarm and delete a timer."
10924 msgstr ""
10925
10926 #. type: Plain text
10927 #: build/C/man2/timer_create.2:235
10928 msgid ""
10929 "Part of the implementation of the POSIX timers API is provided by glibc.  In "
10930 "particular:"
10931 msgstr ""
10932
10933 #. type: Plain text
10934 #: build/C/man2/timer_create.2:239
10935 msgid ""
10936 "The functionality for B<SIGEV_THREAD> is implemented within glibc, rather "
10937 "than the kernel."
10938 msgstr ""
10939
10940 #.  See the glibc source file kernel-posix-timers.h for the structure
10941 #.  that glibc uses to map user-space timer IDs to kernel timer IDs
10942 #.  The kernel-level timer ID is exposed via siginfo.si_tid.
10943 #. type: Plain text
10944 #: build/C/man2/timer_create.2:245
10945 msgid ""
10946 "The timer IDs presented at user level are maintained by glibc, which maps "
10947 "these IDs to the timer IDs employed by the kernel."
10948 msgstr ""
10949
10950 #. type: Plain text
10951 #: build/C/man2/timer_create.2:253
10952 msgid ""
10953 "The POSIX timers system calls first appeared in Linux 2.6.  Prior to this, "
10954 "glibc provided an incomplete user-space implementation (B<CLOCK_REALTIME> "
10955 "timers only) using POSIX threads, and current glibc falls back to this "
10956 "implementation on systems running pre-2.6 Linux kernels."
10957 msgstr ""
10958
10959 #. type: Plain text
10960 #: build/C/man2/timer_create.2:265
10961 msgid ""
10962 "The program below takes two arguments: a sleep period in seconds, and a "
10963 "timer frequency in nanoseconds.  The program establishes a handler for the "
10964 "signal it uses for the timer, blocks that signal, creates and arms a timer "
10965 "that expires with the given frequency, sleeps for the specified number of "
10966 "seconds, and then unblocks the timer signal.  Assuming that the timer "
10967 "expired at least once while the program slept, the signal handler will be "
10968 "invoked, and the handler displays some information about the timer "
10969 "notification.  The program terminates after one invocation of the signal "
10970 "handler."
10971 msgstr ""
10972
10973 #. type: Plain text
10974 #: build/C/man2/timer_create.2:270
10975 msgid ""
10976 "In the following example run, the program sleeps for 1 second, after "
10977 "creating a timer that has a frequency of 100 nanoseconds.  By the time the "
10978 "signal is unblocked and delivered, there have been around ten million "
10979 "overruns."
10980 msgstr ""
10981
10982 #. type: Plain text
10983 #: build/C/man2/timer_create.2:282
10984 #, no-wrap
10985 msgid ""
10986 "$ B<./a.out 1 100>\n"
10987 "Establishing handler for signal 34\n"
10988 "Blocking signal 34\n"
10989 "timer ID is 0x804c008\n"
10990 "Sleeping for 1 seconds\n"
10991 "Unblocking signal 34\n"
10992 "Caught signal 34\n"
10993 "    sival_ptr = 0xbfb174f4;     *sival_ptr = 0x804c008\n"
10994 "    overrun count = 10004886\n"
10995 msgstr ""
10996
10997 #. type: Plain text
10998 #: build/C/man2/timer_create.2:292
10999 #, no-wrap
11000 msgid ""
11001 "#include E<lt>stdlib.hE<gt>\n"
11002 "#include E<lt>unistd.hE<gt>\n"
11003 "#include E<lt>stdio.hE<gt>\n"
11004 "#include E<lt>signal.hE<gt>\n"
11005 "#include E<lt>time.hE<gt>\n"
11006 msgstr ""
11007 "#include E<lt>stdlib.hE<gt>\n"
11008 "#include E<lt>unistd.hE<gt>\n"
11009 "#include E<lt>stdio.hE<gt>\n"
11010 "#include E<lt>signal.hE<gt>\n"
11011 "#include E<lt>time.hE<gt>\n"
11012
11013 #. type: Plain text
11014 #: build/C/man2/timer_create.2:295
11015 #, no-wrap
11016 msgid ""
11017 "#define CLOCKID CLOCK_REALTIME\n"
11018 "#define SIG SIGRTMIN\n"
11019 msgstr ""
11020 "#define CLOCKID CLOCK_REALTIME\n"
11021 "#define SIG SIGRTMIN\n"
11022
11023 #. type: Plain text
11024 #: build/C/man2/timer_create.2:298
11025 #, no-wrap
11026 msgid ""
11027 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
11028 "                        } while (0)\n"
11029 msgstr ""
11030 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
11031 "                        } while (0)\n"
11032
11033 #. type: Plain text
11034 #: build/C/man2/timer_create.2:304
11035 #, no-wrap
11036 msgid ""
11037 "static void\n"
11038 "print_siginfo(siginfo_t *si)\n"
11039 "{\n"
11040 "    timer_t *tidp;\n"
11041 "    int or;\n"
11042 msgstr ""
11043 "static void\n"
11044 "print_siginfo(siginfo_t *si)\n"
11045 "{\n"
11046 "    timer_t *tidp;\n"
11047 "    int or;\n"
11048
11049 #. type: Plain text
11050 #: build/C/man2/timer_create.2:306
11051 #, no-wrap
11052 msgid "    tidp = si-E<gt>si_value.sival_ptr;\n"
11053 msgstr "    tidp = si-E<gt>si_value.sival_ptr;\n"
11054
11055 #. type: Plain text
11056 #: build/C/man2/timer_create.2:309
11057 #, no-wrap
11058 msgid ""
11059 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
11060 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
11061 msgstr ""
11062 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
11063 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
11064
11065 #. type: Plain text
11066 #: build/C/man2/timer_create.2:316
11067 #, no-wrap
11068 msgid ""
11069 "    or = timer_getoverrun(*tidp);\n"
11070 "    if (or == -1)\n"
11071 "        errExit(\"timer_getoverrun\");\n"
11072 "    else\n"
11073 "        printf(\"    overrun count = %d\\en\", or);\n"
11074 "}\n"
11075 msgstr ""
11076 "    or = timer_getoverrun(*tidp);\n"
11077 "    if (or == -1)\n"
11078 "        errExit(\"timer_getoverrun\");\n"
11079 "    else\n"
11080 "        printf(\"    overrun count = %d\\en\", or);\n"
11081 "}\n"
11082
11083 #. type: Plain text
11084 #: build/C/man2/timer_create.2:323
11085 #, no-wrap
11086 msgid ""
11087 "static void\n"
11088 "handler(int sig, siginfo_t *si, void *uc)\n"
11089 "{\n"
11090 "    /* Note: calling printf() from a signal handler is not\n"
11091 "       strictly correct, since printf() is not async-signal-safe;\n"
11092 "       see signal(7) */\n"
11093 msgstr ""
11094 "static void\n"
11095 "handler(int sig, siginfo_t *si, void *uc)\n"
11096 "{\n"
11097 "    /* Note: calling printf() from a signal handler is not\n"
11098 "       strictly correct, since printf() is not async-signal-safe;\n"
11099 "       see signal(7) */\n"
11100
11101 #. type: Plain text
11102 #: build/C/man2/timer_create.2:328
11103 #, no-wrap
11104 msgid ""
11105 "    printf(\"Caught signal %d\\en\", sig);\n"
11106 "    print_siginfo(si);\n"
11107 "    signal(sig, SIG_IGN);\n"
11108 "}\n"
11109 msgstr ""
11110 "    printf(\"Caught signal %d\\en\", sig);\n"
11111 "    print_siginfo(si);\n"
11112 "    signal(sig, SIG_IGN);\n"
11113 "}\n"
11114
11115 #. type: Plain text
11116 #: build/C/man2/timer_create.2:338
11117 #, no-wrap
11118 msgid ""
11119 "int\n"
11120 "main(int argc, char *argv[])\n"
11121 "{\n"
11122 "    timer_t timerid;\n"
11123 "    struct sigevent sev;\n"
11124 "    struct itimerspec its;\n"
11125 "    long long freq_nanosecs;\n"
11126 "    sigset_t mask;\n"
11127 "    struct sigaction sa;\n"
11128 msgstr ""
11129 "int\n"
11130 "main(int argc, char *argv[])\n"
11131 "{\n"
11132 "    timer_t timerid;\n"
11133 "    struct sigevent sev;\n"
11134 "    struct itimerspec its;\n"
11135 "    long long freq_nanosecs;\n"
11136 "    sigset_t mask;\n"
11137 "    struct sigaction sa;\n"
11138
11139 #. type: Plain text
11140 #: build/C/man2/timer_create.2:344
11141 #, no-wrap
11142 msgid ""
11143 "    if (argc != 3) {\n"
11144 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
11145 "                argv[0]);\n"
11146 "        exit(EXIT_FAILURE);\n"
11147 "    }\n"
11148 msgstr ""
11149 "    if (argc != 3) {\n"
11150 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
11151 "                argv[0]);\n"
11152 "        exit(EXIT_FAILURE);\n"
11153 "    }\n"
11154
11155 #. type: Plain text
11156 #: build/C/man2/timer_create.2:346
11157 #, no-wrap
11158 msgid "    /* Establish handler for timer signal */\n"
11159 msgstr "    /* Establish handler for timer signal */\n"
11160
11161 #. type: Plain text
11162 #: build/C/man2/timer_create.2:353
11163 #, no-wrap
11164 msgid ""
11165 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
11166 "    sa.sa_flags = SA_SIGINFO;\n"
11167 "    sa.sa_sigaction = handler;\n"
11168 "    sigemptyset(&sa.sa_mask);\n"
11169 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
11170 "        errExit(\"sigaction\");\n"
11171 msgstr ""
11172 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
11173 "    sa.sa_flags = SA_SIGINFO;\n"
11174 "    sa.sa_sigaction = handler;\n"
11175 "    sigemptyset(&sa.sa_mask);\n"
11176 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
11177 "        errExit(\"sigaction\");\n"
11178
11179 #. type: Plain text
11180 #: build/C/man2/timer_create.2:355
11181 #, no-wrap
11182 msgid "    /* Block timer signal temporarily */\n"
11183 msgstr "    /* Block timer signal temporarily */\n"
11184
11185 #. type: Plain text
11186 #: build/C/man2/timer_create.2:361
11187 #, no-wrap
11188 msgid ""
11189 "    printf(\"Blocking signal %d\\en\", SIG);\n"
11190 "    sigemptyset(&mask);\n"
11191 "    sigaddset(&mask, SIG);\n"
11192 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
11193 "        errExit(\"sigprocmask\");\n"
11194 msgstr ""
11195 "    printf(\"Blocking signal %d\\en\", SIG);\n"
11196 "    sigemptyset(&mask);\n"
11197 "    sigaddset(&mask, SIG);\n"
11198 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
11199 "        errExit(\"sigprocmask\");\n"
11200
11201 #. type: Plain text
11202 #: build/C/man2/timer_create.2:363
11203 #, no-wrap
11204 msgid "    /* Create the timer */\n"
11205 msgstr "    /* Create the timer */\n"
11206
11207 #. type: Plain text
11208 #: build/C/man2/timer_create.2:369
11209 #, no-wrap
11210 msgid ""
11211 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
11212 "    sev.sigev_signo = SIG;\n"
11213 "    sev.sigev_value.sival_ptr = &timerid;\n"
11214 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
11215 "        errExit(\"timer_create\");\n"
11216 msgstr ""
11217 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
11218 "    sev.sigev_signo = SIG;\n"
11219 "    sev.sigev_value.sival_ptr = &timerid;\n"
11220 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
11221 "        errExit(\"timer_create\");\n"
11222
11223 #. type: Plain text
11224 #: build/C/man2/timer_create.2:371
11225 #, no-wrap
11226 msgid "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
11227 msgstr "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
11228
11229 #. type: Plain text
11230 #: build/C/man2/timer_create.2:373
11231 #, no-wrap
11232 msgid "    /* Start the timer */\n"
11233 msgstr "    /* Start the timer */\n"
11234
11235 #. type: Plain text
11236 #: build/C/man2/timer_create.2:379
11237 #, no-wrap
11238 msgid ""
11239 "    freq_nanosecs = atoll(argv[2]);\n"
11240 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
11241 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
11242 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
11243 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
11244 msgstr ""
11245 "    freq_nanosecs = atoll(argv[2]);\n"
11246 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
11247 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
11248 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
11249 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
11250
11251 #. type: Plain text
11252 #: build/C/man2/timer_create.2:382
11253 #, no-wrap
11254 msgid ""
11255 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
11256 "         errExit(\"timer_settime\");\n"
11257 msgstr ""
11258 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
11259 "         errExit(\"timer_settime\");\n"
11260
11261 #. type: Plain text
11262 #: build/C/man2/timer_create.2:385
11263 #, no-wrap
11264 msgid ""
11265 "    /* Sleep for a while; meanwhile, the timer may expire\n"
11266 "       multiple times */\n"
11267 msgstr ""
11268 "    /* Sleep for a while; meanwhile, the timer may expire\n"
11269 "       multiple times */\n"
11270
11271 #. type: Plain text
11272 #: build/C/man2/timer_create.2:388
11273 #, no-wrap
11274 msgid ""
11275 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
11276 "    sleep(atoi(argv[1]));\n"
11277 msgstr ""
11278 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
11279 "    sleep(atoi(argv[1]));\n"
11280
11281 #. type: Plain text
11282 #: build/C/man2/timer_create.2:391
11283 #, no-wrap
11284 msgid ""
11285 "    /* Unlock the timer signal, so that timer notification\n"
11286 "       can be delivered */\n"
11287 msgstr ""
11288 "    /* Unlock the timer signal, so that timer notification\n"
11289 "       can be delivered */\n"
11290
11291 #. type: Plain text
11292 #: build/C/man2/timer_create.2:395
11293 #, no-wrap
11294 msgid ""
11295 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
11296 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
11297 "        errExit(\"sigprocmask\");\n"
11298 msgstr ""
11299 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
11300 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
11301 "        errExit(\"sigprocmask\");\n"
11302
11303 #. type: Plain text
11304 #: build/C/man2/timer_create.2:398 build/C/man2/timerfd_create.2:540
11305 #, no-wrap
11306 msgid ""
11307 "    exit(EXIT_SUCCESS);\n"
11308 "}\n"
11309 msgstr ""
11310 "    exit(EXIT_SUCCESS);\n"
11311 "}\n"
11312
11313 #. type: Plain text
11314 #: build/C/man2/timer_create.2:414
11315 msgid ""
11316 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), B<timer_getoverrun>"
11317 "(2), B<timer_settime>(2), B<timerfd_create>(2), B<clock_getcpuclockid>(3), "
11318 "B<pthread_getcpuclockid>(3), B<pthreads>(7), B<sigevent>(7), B<signal>(7), "
11319 "B<time>(7)"
11320 msgstr ""
11321 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), B<timer_getoverrun>"
11322 "(2), B<timer_settime>(2), B<timerfd_create>(2), B<clock_getcpuclockid>(3), "
11323 "B<pthread_getcpuclockid>(3), B<pthreads>(7), B<sigevent>(7), B<signal>(7), "
11324 "B<time>(7)"
11325
11326 #. type: TH
11327 #: build/C/man2/timer_delete.2:26
11328 #, no-wrap
11329 msgid "TIMER_DELETE"
11330 msgstr "TIMER_DELETE"
11331
11332 #. type: TH
11333 #: build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26
11334 #, no-wrap
11335 msgid "2009-02-20"
11336 msgstr "2009-02-20"
11337
11338 #. type: Plain text
11339 #: build/C/man2/timer_delete.2:29
11340 msgid "timer_delete - delete a POSIX per-process timer"
11341 msgstr ""
11342
11343 #. type: Plain text
11344 #: build/C/man2/timer_delete.2:32 build/C/man2/timer_getoverrun.2:32
11345 #: build/C/man2/timer_settime.2:33
11346 #, no-wrap
11347 msgid "B<#include E<lt>time.hE<gt>>\n"
11348 msgstr "B<#include E<lt>time.hE<gt>>\n"
11349
11350 #. type: Plain text
11351 #: build/C/man2/timer_delete.2:34
11352 #, no-wrap
11353 msgid "B<int timer_delete(timer_t >I<timerid>B<);>\n"
11354 msgstr "B<int timer_delete(timer_t >I<timerid>B<);>\n"
11355
11356 #. type: Plain text
11357 #: build/C/man2/timer_delete.2:45
11358 msgid "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11359 msgstr "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11360
11361 #. type: Plain text
11362 #: build/C/man2/timer_delete.2:53
11363 msgid ""
11364 "B<timer_delete>()  deletes the timer whose ID is given in I<timerid>.  If "
11365 "the timer was armed at the time of this call, it is disarmed before being "
11366 "deleted.  The treatment of any pending signal generated by the deleted timer "
11367 "is unspecified."
11368 msgstr ""
11369
11370 #. type: Plain text
11371 #: build/C/man2/timer_delete.2:60
11372 msgid ""
11373 "On success, B<timer_delete>()  returns 0.  On failure, -1 is returned, and "
11374 "I<errno> is set to indicate the error."
11375 msgstr ""
11376
11377 #. type: Plain text
11378 #: build/C/man2/timer_delete.2:65 build/C/man2/timer_getoverrun.2:95
11379 msgid "I<timerid> is not a valid timer ID."
11380 msgstr ""
11381
11382 #. type: Plain text
11383 #: build/C/man2/timer_delete.2:75
11384 msgid ""
11385 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
11386 "B<timer_settime>(2), B<time>(7)"
11387 msgstr ""
11388 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
11389 "B<timer_settime>(2), B<time>(7)"
11390
11391 #. type: TH
11392 #: build/C/man2/timer_getoverrun.2:26
11393 #, no-wrap
11394 msgid "TIMER_GETOVERRUN"
11395 msgstr "TIMER_GETOVERRUN"
11396
11397 #. type: Plain text
11398 #: build/C/man2/timer_getoverrun.2:29
11399 msgid "timer_getoverrun - get overrun count for a POSIX per-process timer"
11400 msgstr ""
11401
11402 #. type: Plain text
11403 #: build/C/man2/timer_getoverrun.2:34
11404 #, no-wrap
11405 msgid "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
11406 msgstr "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
11407
11408 #. type: Plain text
11409 #: build/C/man2/timer_getoverrun.2:45
11410 msgid "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11411 msgstr "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11412
11413 #. type: Plain text
11414 #: build/C/man2/timer_getoverrun.2:56
11415 msgid ""
11416 "B<timer_getoverrun>()  returns the \"overrun count\" for the timer referred "
11417 "to by I<timerid>.  An application can use the overrun count to accurately "
11418 "calculate the number of timer expirations that would have occurred over a "
11419 "given time interval.  Timer overruns can occur both when receiving "
11420 "expiration notifications via signals (B<SIGEV_SIGNAL>), and via threads "
11421 "(B<SIGEV_THREAD>)."
11422 msgstr ""
11423
11424 #. type: Plain text
11425 #: build/C/man2/timer_getoverrun.2:76
11426 msgid ""
11427 "When expiration notifications are delivered via a signal, overruns can occur "
11428 "as follows.  Regardless of whether or not a real-time signal is used for "
11429 "timer notifications, the system queues at most one signal per timer.  (This "
11430 "is the behavior specified by POSIX.1-2001.  The alternative, queuing one "
11431 "signal for each timer expiration, could easily result in overflowing the "
11432 "allowed limits for queued signals on the system.)  Because of system "
11433 "scheduling delays, or because the signal may be temporarily blocked, there "
11434 "can be a delay between the time when the notification signal is generated "
11435 "and the time when it is delivered (e.g., caught by a signal handler) or "
11436 "accepted (e.g., using B<sigwaitinfo>(2)).  In this interval, further timer "
11437 "expirations may occur.  The timer overrun count is the number of additional "
11438 "timer expirations that occurred between the time when the signal was "
11439 "generated and when it was delivered or accepted."
11440 msgstr ""
11441
11442 #. type: Plain text
11443 #: build/C/man2/timer_getoverrun.2:82
11444 msgid ""
11445 "Timer overruns can also occur when expiration notifications are delivered "
11446 "via invocation of a thread, since there may be an arbitrary delay between an "
11447 "expiration of the timer and the invocation of the notification thread, and "
11448 "in that delay interval, additional timer expirations may occur"
11449 msgstr ""
11450
11451 #. type: Plain text
11452 #: build/C/man2/timer_getoverrun.2:90
11453 msgid ""
11454 "On success, B<timer_getoverrun>()  returns the overrun count of the "
11455 "specified timer; this count may be 0 if no overruns have occurred.  On "
11456 "failure, -1 is returned, and I<errno> is set to indicate the error."
11457 msgstr ""
11458
11459 #. type: Plain text
11460 #: build/C/man2/timer_getoverrun.2:111
11461 msgid ""
11462 "When timer notifications are delivered via signals (B<SIGEV_SIGNAL>), on "
11463 "Linux it is also possible to obtain the overrun count via the I<si_overrun> "
11464 "field of the I<siginfo_t> structure (see B<sigaction>(2)).  This allows an "
11465 "application to avoid the overhead of making a system call to obtain the "
11466 "overrun count, but is a nonportable extension to POSIX.1-2001."
11467 msgstr ""
11468
11469 #.  FIXME . Austin bug filed, 11 Feb 09
11470 #. type: Plain text
11471 #: build/C/man2/timer_getoverrun.2:115
11472 msgid ""
11473 "POSIX.1-2001 only discusses timer overruns in the context of timer "
11474 "notifications using signals."
11475 msgstr ""
11476
11477 #.  Bug filed: http://bugzilla.kernel.org/show_bug.cgi?id=12665
11478 #.  http://thread.gmane.org/gmane.linux.kernel/113276/
11479 #. type: Plain text
11480 #: build/C/man2/timer_getoverrun.2:128
11481 msgid ""
11482 "POSIX.1-2001 specifies that if the timer overrun count is equal to or "
11483 "greater than an implementation-defined maximum, B<DELAYTIMER_MAX>, then "
11484 "B<timer_getoverrun>()  should return B<DELAYTIMER_MAX>.  However, Linux does "
11485 "not implement this feature: instead, if the timer overrun value exceeds the "
11486 "maximum representable integer, the counter cycles, starting once more from "
11487 "low values."
11488 msgstr ""
11489
11490 #. type: Plain text
11491 #: build/C/man2/timer_getoverrun.2:131 build/C/man2/timer_settime.2:212
11492 msgid "See B<timer_create>(2)."
11493 msgstr ""
11494
11495 #. type: Plain text
11496 #: build/C/man2/timer_getoverrun.2:141
11497 msgid ""
11498 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
11499 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
11500 "B<time>(7)"
11501 msgstr ""
11502 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
11503 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
11504 "B<time>(7)"
11505
11506 #. type: TH
11507 #: build/C/man2/timer_settime.2:26
11508 #, no-wrap
11509 msgid "TIMER_SETTIME"
11510 msgstr "TIMER_SETTIME"
11511
11512 #. type: TH
11513 #: build/C/man2/timer_settime.2:26
11514 #, no-wrap
11515 msgid "2012-10-15"
11516 msgstr "2012-10-15"
11517
11518 #. type: Plain text
11519 #: build/C/man2/timer_settime.2:30
11520 msgid ""
11521 "timer_settime, timer_gettime - arm/disarm and fetch state of POSIX per-"
11522 "process timer"
11523 msgstr ""
11524
11525 #. type: Plain text
11526 #: build/C/man2/timer_settime.2:38
11527 #, no-wrap
11528 msgid ""
11529 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
11530 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
11531 "B<                  struct itimerspec * >I<old_value>B<);>\n"
11532 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
11533 msgstr ""
11534 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
11535 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
11536 "B<                  struct itimerspec * >I<old_value>B<);>\n"
11537 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
11538
11539 #. type: Plain text
11540 #: build/C/man2/timer_settime.2:50
11541 msgid ""
11542 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11543 msgstr ""
11544 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11545
11546 #. type: Plain text
11547 #: build/C/man2/timer_settime.2:63
11548 msgid ""
11549 "B<timer_settime>()  arms or disarms the timer identified by I<timerid>.  The "
11550 "I<new_value> argument is pointer to an I<itimerspec> structure that "
11551 "specifies the new initial value and the new interval for the timer.  The "
11552 "I<itimerspec> structure is defined as follows:"
11553 msgstr ""
11554
11555 #. type: Plain text
11556 #: build/C/man2/timer_settime.2:70 build/C/man2/timerfd_create.2:128
11557 #, no-wrap
11558 msgid ""
11559 "struct timespec {\n"
11560 "    time_t tv_sec;                /* Seconds */\n"
11561 "    long   tv_nsec;               /* Nanoseconds */\n"
11562 "};\n"
11563 msgstr ""
11564 "struct timespec {\n"
11565 "    time_t tv_sec;                /* Seconds */\n"
11566 "    long   tv_nsec;               /* Nanoseconds */\n"
11567 "};\n"
11568
11569 #. type: Plain text
11570 #: build/C/man2/timer_settime.2:75
11571 #, no-wrap
11572 msgid ""
11573 "struct itimerspec {\n"
11574 "    struct timespec it_interval;  /* Timer interval */\n"
11575 "    struct timespec it_value;     /* Initial expiration */\n"
11576 "};\n"
11577 msgstr ""
11578 "struct itimerspec {\n"
11579 "    struct timespec it_interval;  /* Timer interval */\n"
11580 "    struct timespec it_value;     /* Initial expiration */\n"
11581 "};\n"
11582
11583 #. type: Plain text
11584 #: build/C/man2/timer_settime.2:87
11585 msgid ""
11586 "Each of the substructures of the I<itimerspec> structure is a I<timespec> "
11587 "structure that allows a time value to be specified in seconds and "
11588 "nanoseconds.  These time values are measured according to the clock that was "
11589 "specified when the timer was created by B<timer_create>(2)"
11590 msgstr ""
11591
11592 #. type: Plain text
11593 #: build/C/man2/timer_settime.2:101
11594 msgid ""
11595 "If I<new_value-E<gt>it_value> specifies a nonzero value (i.e., either "
11596 "subfield is nonzero), then B<timer_settime>()  arms (starts) the timer, "
11597 "setting it to initially expire at the given time.  (If the timer was already "
11598 "armed, then the previous settings are overwritten.)  If I<new_value-"
11599 "E<gt>it_value> specifies a zero value (i.e., both subfields are zero), then "
11600 "the timer is disarmed."
11601 msgstr ""
11602
11603 #. type: Plain text
11604 #: build/C/man2/timer_settime.2:113
11605 msgid ""
11606 "The I<new_value-E<gt>it_interval> field specifies the period of the timer, "
11607 "in seconds and nanoseconds.  If this field is nonzero, then each time that "
11608 "an armed timer expires, the timer is reloaded from the value specified in "
11609 "I<new_value-E<gt>it_interval>.  If I<new_value-E<gt>it_interval> specifies a "
11610 "zero value then the timer expires just once, at the time specified by "
11611 "I<it_value>."
11612 msgstr ""
11613
11614 #.  By experiment: the overrun count is set correctly, for CLOCK_REALTIME.
11615 #. type: Plain text
11616 #: build/C/man2/timer_settime.2:134
11617 msgid ""
11618 "By default, the initial expiration time specified in I<new_value-"
11619 "E<gt>it_value> is interpreted relative to the current time on the timer's "
11620 "clock at the time of the call.  This can be modified by specifying "
11621 "B<TIMER_ABSTIME> in I<flags>, in which case I<new_value-E<gt>it_value> is "
11622 "interpreted as an absolute value as measured on the timer's clock; that is, "
11623 "the timer will expire when the clock value reaches the value specified by "
11624 "I<new_value-E<gt>it_value>.  If the specified absolute time has already "
11625 "passed, then the timer expires immediately, and the overrun count (see "
11626 "B<timer_getoverrun>(2))  will be set correctly."
11627 msgstr ""
11628
11629 #.  Similar remarks might apply with respect to process and thread CPU time
11630 #.  clocks, but these clocks are not currently (2.6.28) settable on Linux.
11631 #. type: Plain text
11632 #: build/C/man2/timer_settime.2:144
11633 msgid ""
11634 "If the value of the B<CLOCK_REALTIME> clock is adjusted while an absolute "
11635 "timer based on that clock is armed, then the expiration of the timer will be "
11636 "appropriately adjusted.  Adjustments to the B<CLOCK_REALTIME> clock have no "
11637 "effect on relative timers based on that clock."
11638 msgstr ""
11639
11640 #. type: Plain text
11641 #: build/C/man2/timer_settime.2:153
11642 msgid ""
11643 "If I<old_value> is not NULL, then it points to a buffer that is used to "
11644 "return the previous interval of the timer (in I<old_value-"
11645 "E<gt>it_interval>)  and the amount of time until the timer would previously "
11646 "have next expired (in I<old_value-E<gt>it_value>)."
11647 msgstr ""
11648
11649 #. type: Plain text
11650 #: build/C/man2/timer_settime.2:173
11651 msgid ""
11652 "B<timer_gettime>()  returns the time until next expiration, and the "
11653 "interval, for the timer specified by I<timerid>, in the buffer pointed to by "
11654 "I<curr_value>.  The time remaining until the next timer expiration is "
11655 "returned in I<curr_value-E<gt>it_value>; this is always a relative value, "
11656 "regardless of whether the B<TIMER_ABSTIME> flag was used when arming the "
11657 "timer.  If the value returned in I<curr_value-E<gt>it_value> is zero, then "
11658 "the timer is currently disarmed.  The timer interval is returned in "
11659 "I<curr_value-E<gt>it_interval>.  If the value returned in I<curr_value-"
11660 "E<gt>it_interval> is zero, then this is a \"one-shot\" timer."
11661 msgstr ""
11662
11663 #. type: Plain text
11664 #: build/C/man2/timer_settime.2:182
11665 msgid ""
11666 "On success, B<timer_settime>()  and B<timer_gettime>()  return 0.  On error, "
11667 "-1 is returned, and I<errno> is set to indicate the error."
11668 msgstr ""
11669
11670 #. type: Plain text
11671 #: build/C/man2/timer_settime.2:184
11672 msgid "These functions may fail with the following errors:"
11673 msgstr ""
11674
11675 #. type: Plain text
11676 #: build/C/man2/timer_settime.2:191
11677 msgid "I<new_value>, I<old_value>, or I<curr_value> is not a valid pointer."
11678 msgstr ""
11679
11680 #.  FIXME . eventually: invalid value in flags
11681 #. type: Plain text
11682 #: build/C/man2/timer_settime.2:196
11683 msgid "I<timerid> is invalid."
11684 msgstr ""
11685
11686 #. type: Plain text
11687 #: build/C/man2/timer_settime.2:199
11688 msgid "B<timer_settime>()  may fail with the following errors:"
11689 msgstr ""
11690
11691 #. type: Plain text
11692 #: build/C/man2/timer_settime.2:205
11693 msgid ""
11694 "I<new_value.it_value> is negative; or I<new_value.it_value.tv_nsec> is "
11695 "negative or greater than 999,999,999."
11696 msgstr ""
11697
11698 #. type: Plain text
11699 #: build/C/man2/timer_settime.2:207
11700 msgid "These system calls are available since Linux 2.6."
11701 msgstr ""
11702
11703 #. type: Plain text
11704 #: build/C/man2/timer_settime.2:216
11705 msgid "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
11706 msgstr "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
11707
11708 #. type: TH
11709 #: build/C/man2/timerfd_create.2:21
11710 #, no-wrap
11711 msgid "TIMERFD_CREATE"
11712 msgstr "TIMERFD_CREATE"
11713
11714 #. type: TH
11715 #: build/C/man2/timerfd_create.2:21
11716 #, no-wrap
11717 msgid "2011-09-14"
11718 msgstr "2011-09-14"
11719
11720 #. type: Plain text
11721 #: build/C/man2/timerfd_create.2:25
11722 msgid ""
11723 "timerfd_create, timerfd_settime, timerfd_gettime - timers that notify via "
11724 "file descriptors"
11725 msgstr ""
11726 "timerfd_create, timerfd_settime, timerfd_gettime - ファイルディスクリプタ経由"
11727 "で通知するタイマー"
11728
11729 #. type: Plain text
11730 #: build/C/man2/timerfd_create.2:28
11731 #, no-wrap
11732 msgid "B<#include E<lt>sys/timerfd.hE<gt>>\n"
11733 msgstr "B<#include E<lt>sys/timerfd.hE<gt>>\n"
11734
11735 #. type: Plain text
11736 #: build/C/man2/timerfd_create.2:30
11737 #, no-wrap
11738 msgid "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
11739 msgstr "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
11740
11741 #. type: Plain text
11742 #: build/C/man2/timerfd_create.2:34
11743 #, no-wrap
11744 msgid ""
11745 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
11746 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
11747 "B<                    struct itimerspec *>I<old_value>B<);>\n"
11748 msgstr ""
11749 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
11750 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
11751 "B<                    struct itimerspec *>I<old_value>B<);>\n"
11752
11753 #. type: Plain text
11754 #: build/C/man2/timerfd_create.2:36
11755 #, no-wrap
11756 msgid "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
11757 msgstr "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
11758
11759 #. type: Plain text
11760 #: build/C/man2/timerfd_create.2:49
11761 msgid ""
11762 "These system calls create and operate on a timer that delivers timer "
11763 "expiration notifications via a file descriptor.  They provide an alternative "
11764 "to the use of B<setitimer>(2)  or B<timer_create>(2), with the advantage "
11765 "that the file descriptor may be monitored by B<select>(2), B<poll>(2), and "
11766 "B<epoll>(7)."
11767 msgstr ""
11768 "これらのシステムコールは、満了通知をファイルディスクリプタ経由で配送する タイ"
11769 "マーの生成と操作を行う。 これらは、 B<setitimer>(2)  や B<timer_create>(2)  "
11770 "を用いる方法の代わりとなるものであり、このファイルディスクリプタを B<select>"
11771 "(2), B<poll>(2), B<epoll>(7)  で監視できるという利点がある。"
11772
11773 #. type: Plain text
11774 #: build/C/man2/timerfd_create.2:61
11775 msgid ""
11776 "The use of these three system calls is analogous to the use of "
11777 "B<timer_create>(2), B<timer_settime>(2), and B<timer_gettime>(2).  (There is "
11778 "no analog of B<timer_getoverrun>(2), since that functionality is provided by "
11779 "B<read>(2), as described below.)"
11780 msgstr ""
11781 "これらのシステムコールを使うのは、それぞれ B<timer_create>(2), "
11782 "B<timer_settime>(2), B<timer_gettime>(2)  を使うのと同様である "
11783 "(B<timer_getoverrun>(2)  に対応するものはなく、以下で説明するように この機能"
11784 "は B<read>(2)  により提供される)。"
11785
11786 #. type: SS
11787 #: build/C/man2/timerfd_create.2:61
11788 #, no-wrap
11789 msgid "timerfd_create()"
11790 msgstr "timerfd_create()"
11791
11792 #. type: Plain text
11793 #: build/C/man2/timerfd_create.2:80
11794 msgid ""
11795 "B<timerfd_create>()  creates a new timer object, and returns a file "
11796 "descriptor that refers to that timer.  The I<clockid> argument specifies the "
11797 "clock that is used to mark the progress of the timer, and must be either "
11798 "B<CLOCK_REALTIME> or B<CLOCK_MONOTONIC>.  B<CLOCK_REALTIME> is a settable "
11799 "system-wide clock.  B<CLOCK_MONOTONIC> is a nonsettable clock that is not "
11800 "affected by discontinuous changes in the system clock (e.g., manual changes "
11801 "to system time).  The current value of each of these clocks can be retrieved "
11802 "using B<clock_gettime>(2)."
11803 msgstr ""
11804 "B<timerfd_create>()  は新規のタイマーオブジェクトを生成し、そのタイマーを参照"
11805 "するファイル ディスクリプタを返す。 I<clockid> 引き数は、タイマーの進捗を管理"
11806 "するためのクロックを指定するもので、 B<CLOCK_REALTIME> か B<CLOCK_MONOTONIC> "
11807 "のいずれかでなければならない。 B<CLOCK_REALTIME> はシステム全体で使用されるク"
11808 "ロックで、このクロックは変更可能である。 B<CLOCK_MONOTONIC> は変更されること"
11809 "のないクロックで、(システム時刻の手動での変更などの)  システムクロックの不連"
11810 "続な変化の影響を受けない。 これらのクロックの現在の値は B<clock_gettime>(2)  "
11811 "を使って取得できる。"
11812
11813 #. type: Plain text
11814 #: build/C/man2/timerfd_create.2:85
11815 msgid ""
11816 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
11817 "I<flags> to change the behavior of B<timerfd_create>():"
11818 msgstr ""
11819 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
11820 "ることで、 B<timerfd_create>()  の振舞いを変更することができる。"
11821
11822 #. type: TP
11823 #: build/C/man2/timerfd_create.2:85
11824 #, no-wrap
11825 msgid "B<TFD_NONBLOCK>"
11826 msgstr "B<TFD_NONBLOCK>"
11827
11828 #. type: TP
11829 #: build/C/man2/timerfd_create.2:93
11830 #, no-wrap
11831 msgid "B<TFD_CLOEXEC>"
11832 msgstr "B<TFD_CLOEXEC>"
11833
11834 #. type: Plain text
11835 #: build/C/man2/timerfd_create.2:107
11836 msgid ""
11837 "In Linux versions up to and including 2.6.26, I<flags> must be specified as "
11838 "zero."
11839 msgstr ""
11840 "バージョン 2.6.26 以前の Linux では、 I<flags> 引き数は未使用であり、0 を指定"
11841 "しなければならない。"
11842
11843 #. type: SS
11844 #: build/C/man2/timerfd_create.2:107
11845 #, no-wrap
11846 msgid "timerfd_settime()"
11847 msgstr "timerfd_settime()"
11848
11849 #. type: Plain text
11850 #: build/C/man2/timerfd_create.2:112
11851 msgid ""
11852 "B<timerfd_settime>()  arms (starts) or disarms (stops)  the timer referred "
11853 "to by the file descriptor I<fd>."
11854 msgstr ""
11855 "B<timerfd_settime>()  は、ファイルディスクリプタ I<fd> により参照されるタイ"
11856 "マーを開始したり停止したりする。"
11857
11858 #. type: Plain text
11859 #: build/C/man2/timerfd_create.2:121
11860 msgid ""
11861 "The I<new_value> argument specifies the initial expiration and interval for "
11862 "the timer.  The I<itimer> structure used for this argument contains two "
11863 "fields, each of which is in turn a structure of type I<timespec>:"
11864 msgstr ""
11865 "I<new_value> 引き数は、タイマーの満了時間 (expiration) の初期値と間隔 "
11866 "(interval) を 指定する。この引き数で使用されている I<itimerspec> 構造体には "
11867 "2 つのフィールドがあり、各フィールドは I<timespec> 型の構造体である。"
11868
11869 #. type: Plain text
11870 #: build/C/man2/timerfd_create.2:133
11871 #, no-wrap
11872 msgid ""
11873 "struct itimerspec {\n"
11874 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
11875 "    struct timespec it_value;     /* Initial expiration */\n"
11876 "};\n"
11877 msgstr ""
11878 "struct itimerspec {\n"
11879 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
11880 "    struct timespec it_value;     /* Initial expiration */\n"
11881 "};\n"
11882
11883 #. type: Plain text
11884 #: build/C/man2/timerfd_create.2:145
11885 msgid ""
11886 "I<new_value.it_value> specifies the initial expiration of the timer, in "
11887 "seconds and nanoseconds.  Setting either field of I<new_value.it_value> to a "
11888 "nonzero value arms the timer.  Setting both fields of I<new_value.it_value> "
11889 "to zero disarms the timer."
11890 msgstr ""
11891 "I<new_value.it_value> はタイマーの満了時間の初期値を、秒とナノ秒で指定する。 "
11892 "I<new_value.it_value> のフィールドのうち少なくとも一方に 0 以外の値を設定する"
11893 "と、 タイマーが開始される。 両方のフィールドに 0 を設定すると、タイマーが停止"
11894 "する。"
11895
11896 #. type: Plain text
11897 #: build/C/man2/timerfd_create.2:154
11898 msgid ""
11899 "Setting one or both fields of I<new_value.it_interval> to nonzero values "
11900 "specifies the period, in seconds and nanoseconds, for repeated timer "
11901 "expirations after the initial expiration.  If both fields of I<new_value."
11902 "it_interval> are zero, the timer expires just once, at the time specified by "
11903 "I<new_value.it_value>."
11904 msgstr ""
11905 "I<new_value.it_interval> はタイマーの一回目の満了後に繰り返しタイマーの満了間"
11906 "隔を、秒とナノ秒で指定する。 I<new_value.it_interval> のフィールドのうち少な"
11907 "くとも一方に 0 以外の値を設定すると、 繰り返しタイマーが有効になる。 両方の"
11908 "フィールドに 0 を設定した場合、タイマーは I<new_value.it_value> で指定された"
11909 "時間後に、一回だけ満了して停止する。"
11910
11911 #. type: Plain text
11912 #: build/C/man2/timerfd_create.2:170
11913 msgid ""
11914 "The I<flags> argument is either 0, to start a relative timer (I<new_value."
11915 "it_value> specifies a time relative to the current value of the clock "
11916 "specified by I<clockid>), or B<TFD_TIMER_ABSTIME>, to start an absolute "
11917 "timer (I<new_value.it_value> specifies an absolute time for the clock "
11918 "specified by I<clockid>; that is, the timer will expire when the value of "
11919 "that clock reaches the value specified in I<new_value.it_value>)."
11920 msgstr ""
11921 "I<flags> 引き数には 0 か B<TFD_TIMER_ABSTIME> を指定する。 0 は相対時刻\n"
11922 "タイマーを意味し、 I<new_value.it_value> では I<clockid> で指定された\n"
11923 "クロックの現在の値からの相対的な時刻を指定する。 B<TFD_TIMER_ABSTIME>\n"
11924 "は絶対時刻タイマーを意味し、 I<new_value.it_interval> では I<clockid>\n"
11925 "で指定されたクロックの絶対時刻を指定する。\n"
11926 "つまり、クロックの値が I<new_value.it_interval> で指定された時刻に\n"
11927 "達したら、タイマーが満了する。"
11928
11929 #. type: Plain text
11930 #: build/C/man2/timerfd_create.2:181
11931 msgid ""
11932 "If the I<old_value> argument is not NULL, then the I<itimerspec> structure "
11933 "that it points to is used to return the setting of the timer that was "
11934 "current at the time of the call; see the description of B<timerfd_gettime>"
11935 "()  following."
11936 msgstr ""
11937 "I<old_value> 引き数が NULL でない場合、 I<old_value> 引き数が指す\n"
11938 "I<itimerspec> 構造体は、 B<timerfd_settime>() を呼び出した時点での\n"
11939 "タイマーの設定を返すのに使用される。\n"
11940 "下記の B<timerfd_gettime>() の説明を参照。"
11941
11942 #. type: SS
11943 #: build/C/man2/timerfd_create.2:181
11944 #, no-wrap
11945 msgid "timerfd_gettime()"
11946 msgstr "timerfd_gettime()"
11947
11948 #. type: Plain text
11949 #: build/C/man2/timerfd_create.2:190
11950 msgid ""
11951 "B<timerfd_gettime>()  returns, in I<curr_value>, an I<itimerspec> structure "
11952 "that contains the current setting of the timer referred to by the file "
11953 "descriptor I<fd>."
11954 msgstr ""
11955 "B<timerfd_gettime>()  は、ファイルディスクリプタ I<fd> で参照されるタイマーの"
11956 "現在の設定が入った I<itimerspec> 構造体を、 I<curr_value> に格納して返す。"
11957
11958 #. type: Plain text
11959 #: build/C/man2/timerfd_create.2:200
11960 msgid ""
11961 "The I<it_value> field returns the amount of time until the timer will next "
11962 "expire.  If both fields of this structure are zero, then the timer is "
11963 "currently disarmed.  This field always contains a relative value, regardless "
11964 "of whether the B<TFD_TIMER_ABSTIME> flag was specified when setting the "
11965 "timer."
11966 msgstr ""
11967 "I<it_value> フィールドは、タイマーが次に満了するまでの残り時間を返す。 この構"
11968 "造体の両方のフィールドが 0 であれば、タイマーは現在停止している。 タイマー設"
11969 "定時に B<TFD_TIMER_ABSTIME> フラグが指定されたかに関わらず、このフィールドは"
11970 "常に相対値が格納される。"
11971
11972 #. type: Plain text
11973 #: build/C/man2/timerfd_create.2:207
11974 msgid ""
11975 "The I<it_interval> field returns the interval of the timer.  If both fields "
11976 "of this structure are zero, then the timer is set to expire just once, at "
11977 "the time specified by I<curr_value.it_value>."
11978 msgstr ""
11979 "I<it_interval> フィールドは、タイマーの間隔を返す。 この構造体の両方のフィー"
11980 "ルドが 0 であれば、タイマーは I<new_value.it_value> で指定された時間後に一回"
11981 "だけ満了して停止するように設定されている。"
11982
11983 #. type: SS
11984 #: build/C/man2/timerfd_create.2:207
11985 #, no-wrap
11986 msgid "Operating on a timer file descriptor"
11987 msgstr "タイマー・ファイルディスクリプタに対する操作"
11988
11989 #. type: Plain text
11990 #: build/C/man2/timerfd_create.2:211
11991 msgid ""
11992 "The file descriptor returned by B<timerfd_create>()  supports the following "
11993 "operations:"
11994 msgstr ""
11995 "B<timerfd_create>()  が返すファイルディスクリプタは以下の操作をサポートしてい"
11996 "る。"
11997
11998 #. type: Plain text
11999 #: build/C/man2/timerfd_create.2:225
12000 msgid ""
12001 "If the timer has already expired one or more times since its settings were "
12002 "last modified using B<timerfd_settime>(), or since the last successful "
12003 "B<read>(2), then the buffer given to B<read>(2)  returns an unsigned 8-byte "
12004 "integer (I<uint64_t>)  containing the number of expirations that have "
12005 "occurred.  (The returned value is in host byte order, i.e., the native byte "
12006 "order for integers on the host machine.)"
12007 msgstr ""
12008 "B<timerfd_settime>()  を使ってタイマーの設定が最後変更されて以降、または "
12009 "B<read>(2)  の呼び出しに最後に成功して以降に、タイマーの満了が一回以上発生し"
12010 "ていれば、 B<read>(2)  に渡されたバッファに、タイマー満了回数を示す 8 バイト"
12011 "の unsigned 型の整数 (I<uint64_t>)  が返される (返される値はホストバイトオー"
12012 "ダ、つまりそのホストマシンにおける 整数の通常のバイトオーダである)。"
12013
12014 #. type: Plain text
12015 #: build/C/man2/timerfd_create.2:238
12016 msgid ""
12017 "If no timer expirations have occurred at the time of the B<read>(2), then "
12018 "the call either blocks until the next timer expiration, or fails with the "
12019 "error B<EAGAIN> if the file descriptor has been made nonblocking (via the "
12020 "use of the B<fcntl>(2)  B<F_SETFL> operation to set the B<O_NONBLOCK> flag)."
12021 msgstr ""
12022 "B<read>(2)  を行った時点でタイマーの満了が発生していなければ、 B<read>(2)  は"
12023 "停止 (block) する、もしくはファイルディスクリプタが 非停止 (nonblocking) に設"
12024 "定されている場合はエラー B<EAGAIN> で失敗する (非停止モードにするには、 "
12025 "B<fcntl>(2)  の B<F_SETFL> 命令で B<O_NONBLOCK> フラグをセットする)。"
12026
12027 #. type: Plain text
12028 #: build/C/man2/timerfd_create.2:244
12029 msgid ""
12030 "A B<read>(2)  will fail with the error B<EINVAL> if the size of the supplied "
12031 "buffer is less than 8 bytes."
12032 msgstr ""
12033 "渡されたバッファの大きさが 8 バイト未満の場合、 B<read>(2)  はエラー "
12034 "B<EINVAL> で失敗する。"
12035
12036 #. type: Plain text
12037 #: build/C/man2/timerfd_create.2:255
12038 msgid ""
12039 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
12040 "B<poll>(2)  B<POLLIN> flag)  if one or more timer expirations have occurred."
12041 msgstr ""
12042 "一つ以上のタイマー満了が発生していれば、 ファイルディスクリプタは読み出し可能"
12043 "となる (B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラ"
12044 "グ)。"
12045
12046 #. type: Plain text
12047 #: build/C/man2/timerfd_create.2:262
12048 msgid ""
12049 "The file descriptor also supports the other file-descriptor multiplexing "
12050 "APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
12051 msgstr ""
12052 "このファイルディスクリプタは、他のファイルディスクリプタ多重 API である "
12053 "B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
12054
12055 #. type: Plain text
12056 #: build/C/man2/timerfd_create.2:269
12057 msgid ""
12058 "When the file descriptor is no longer required it should be closed.  When "
12059 "all file descriptors associated with the same timer object have been closed, "
12060 "the timer is disarmed and its resources are freed by the kernel."
12061 msgstr ""
12062 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
12063 "る。 同じ timer オブジェクトに関連付けられたファイルディスクリプタが全て ク"
12064 "ローズされると、そのタイマーは解除され、 そのオブジェクト用の資源がカーネルに"
12065 "より解放される。"
12066
12067 #. type: Plain text
12068 #: build/C/man2/timerfd_create.2:281
12069 msgid ""
12070 "After a B<fork>(2), the child inherits a copy of the file descriptor created "
12071 "by B<timerfd_create>().  The file descriptor refers to the same underlying "
12072 "timer object as the corresponding file descriptor in the parent, and B<read>"
12073 "(2)s in the child will return information about expirations of the timer."
12074 msgstr ""
12075 "B<fork>(2)  が行われると、子プロセスは B<timerfd_create>()  により生成された"
12076 "ファイルディスクリプタのコピーを 継承する。そのファイルディスクリプタは、親プ"
12077 "ロセスの対応する ファイルディスクリプタと同じタイマーオブジェクトを参照してお"
12078 "り、 子プロセスの B<read>(2)  でも同じタイマーの満了に関する情報が返される。"
12079
12080 #. type: Plain text
12081 #: build/C/man2/timerfd_create.2:287
12082 msgid ""
12083 "A file descriptor created by B<timerfd_create>()  is preserved across "
12084 "B<execve>(2), and continues to generate timer expirations if the timer was "
12085 "armed."
12086 msgstr ""
12087 "B<execve>(2)  の前後で B<timerfd_create>()  により生成されたファイルディスク"
12088 "リプタは保持され、 タイマーが開始されていた場合にはタイマーの満了が発生し続け"
12089 "る。"
12090
12091 #. type: Plain text
12092 #: build/C/man2/timerfd_create.2:294
12093 msgid ""
12094 "On success, B<timerfd_create>()  returns a new file descriptor.  On error, "
12095 "-1 is returned and I<errno> is set to indicate the error."
12096 msgstr ""
12097 "成功すると、 B<timerfd_create>()  は新しいファイルディスクリプタを返す。 エ"
12098 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
12099
12100 #. type: Plain text
12101 #: build/C/man2/timerfd_create.2:302
12102 msgid ""
12103 "B<timerfd_settime>()  and B<timerfd_gettime>()  return 0 on success; on "
12104 "error they return -1, and set I<errno> to indicate the error."
12105 msgstr ""
12106 "B<timerfd_settime>()  と B<timerfd_gettime>()  は成功すると 0 を返す。 エラー"
12107 "の場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
12108
12109 #. type: Plain text
12110 #: build/C/man2/timerfd_create.2:305
12111 msgid "B<timerfd_create>()  can fail with the following errors:"
12112 msgstr "B<timerfd_create>()  は以下のエラーで失敗する可能性がある。"
12113
12114 #. type: Plain text
12115 #: build/C/man2/timerfd_create.2:313
12116 msgid ""
12117 "The I<clockid> argument is neither B<CLOCK_MONOTONIC> nor B<CLOCK_REALTIME>;"
12118 msgstr ""
12119 "I<clockid> 引き数が B<CLOCK_MONOTONIC> でも B<CLOCK_REALTIME> でもない。"
12120
12121 #. type: Plain text
12122 #: build/C/man2/timerfd_create.2:333
12123 msgid "There was insufficient kernel memory to create the timer."
12124 msgstr "タイマーを作成するのに十分なカーネルメモリがなかった。"
12125
12126 #. type: Plain text
12127 #: build/C/man2/timerfd_create.2:338
12128 msgid ""
12129 "B<timerfd_settime>()  and B<timerfd_gettime>()  can fail with the following "
12130 "errors:"
12131 msgstr ""
12132 "B<timerfd_settime>()  と B<timerfd_gettime>()  は以下のエラーで失敗する可能性"
12133 "がある。"
12134
12135 #. type: Plain text
12136 #: build/C/man2/timerfd_create.2:342
12137 msgid "I<fd> is not a valid file descriptor."
12138 msgstr "I<fd> が有効なファイルディスクリプタでない。"
12139
12140 #. type: Plain text
12141 #: build/C/man2/timerfd_create.2:353
12142 msgid "I<fd> is not a valid timerfd file descriptor."
12143 msgstr "I<fd> が有効な timerfd ファイルディスクリプタでない。"
12144
12145 #. type: Plain text
12146 #: build/C/man2/timerfd_create.2:356
12147 msgid "B<timerfd_settime>()  can also fail with the following errors:"
12148 msgstr "B<timerfd_settime>()  は以下のエラーで失敗することもある。"
12149
12150 #. type: Plain text
12151 #: build/C/man2/timerfd_create.2:362
12152 msgid ""
12153 "I<new_value> is not properly initialized (one of the I<tv_nsec> falls "
12154 "outside the range zero to 999,999,999)."
12155 msgstr ""
12156 "I<new_value> が適切に初期化されていない (I<tv_nsec> の一つが 0 から "
12157 "999,999,999 までの範囲に入っていない)。"
12158
12159 #.  This case only checked since 2.6.29, and 2.2.2[78].some-stable-version.
12160 #.  In older kernel versions, no check was made for invalid flags.
12161 #. type: Plain text
12162 #: build/C/man2/timerfd_create.2:368
12163 msgid "I<flags> is invalid."
12164 msgstr "I<flags> が無効である。"
12165
12166 #. type: Plain text
12167 #: build/C/man2/timerfd_create.2:371
12168 msgid ""
12169 "These system calls are available on Linux since kernel 2.6.25.  Library "
12170 "support is provided by glibc since version 2.8."
12171 msgstr ""
12172 "これらのシステムコールはカーネル 2.6.25 以降の Linux で利用可能である。 ライ"
12173 "ブラリ側のサポートはバージョン 2.8 以降の glibc で提供されている。"
12174
12175 #.  2.6.29
12176 #. type: Plain text
12177 #: build/C/man2/timerfd_create.2:379
12178 msgid ""
12179 "Currently, B<timerfd_create>()  supports fewer types of clock IDs than "
12180 "B<timer_create>(2)."
12181 msgstr ""
12182 "現在のところ、 B<timerfd_create>()  が対応している clockid の種類は "
12183 "B<timer_create>(2)  よりも少ない。"
12184
12185 #. type: Plain text
12186 #: build/C/man2/timerfd_create.2:388
12187 msgid ""
12188 "The following program creates a timer and then monitors its progress.  The "
12189 "program accepts up to three command-line arguments.  The first argument "
12190 "specifies the number of seconds for the initial expiration of the timer.  "
12191 "The second argument specifies the interval for the timer, in seconds.  The "
12192 "third argument specifies the number of times the program should allow the "
12193 "timer to expire before terminating.  The second and third command-line "
12194 "arguments are optional."
12195 msgstr ""
12196 "以下のプログラムは、タイマーを作成し、その進捗をモニターするものである。 この"
12197 "プログラムは最大で 3 個のコマンドライン引き数を取り、 第一引き数ではタイマー"
12198 "の満了時間の初期値 (秒数単位) を、 第二引き数ではタイマーの間隔 (秒数単位) "
12199 "を、 第三引き数ではタイマーが何回満了したらプログラムが終了するかを指定す"
12200 "る。 第二引き数と第三引き数は省略可能である。"
12201
12202 #. type: Plain text
12203 #: build/C/man2/timerfd_create.2:390 build/C/man2/wait.2:555
12204 msgid "The following shell session demonstrates the use of the program:"
12205 msgstr "以下のシェルのセッションはこのプログラムの使用例を示したものである。"
12206
12207 #. type: Plain text
12208 #: build/C/man2/timerfd_create.2:405
12209 #, no-wrap
12210 msgid ""
12211 "$B< a.out 3 1 100>\n"
12212 "0.000: timer started\n"
12213 "3.000: read: 1; total=1\n"
12214 "4.000: read: 1; total=2\n"
12215 "B<^Z >                 # type control-Z to suspend the program\n"
12216 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
12217 "$ B<fg>                # Resume execution after a few seconds\n"
12218 "a.out 3 1 100\n"
12219 "9.660: read: 5; total=7\n"
12220 "10.000: read: 1; total=8\n"
12221 "11.000: read: 1; total=9\n"
12222 "B<^C >                 # type control-C to suspend the program\n"
12223 msgstr ""
12224 "$B< a.out 3 1 100>\n"
12225 "0.000: timer started\n"
12226 "3.000: read: 1; total=1\n"
12227 "4.000: read: 1; total=2\n"
12228 "B<^Z >                 # type control-Z to suspend the program\n"
12229 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
12230 "$ B<fg>                # Resume execution after a few seconds\n"
12231 "a.out 3 1 100\n"
12232 "9.660: read: 5; total=7\n"
12233 "10.000: read: 1; total=8\n"
12234 "11.000: read: 1; total=9\n"
12235 "B<^C >                 # type control-C to suspend the program\n"
12236
12237 #.  The commented out code here is what we currently need until
12238 #.  the required stuff is in glibc
12239 #. /* Link with -lrt */
12240 #. #define _GNU_SOURCE
12241 #. #include <sys/syscall.h>
12242 #. #include <unistd.h>
12243 #. #include <time.h>
12244 #. #if defined(__i386__)
12245 #. #define __NR_timerfd_create 322
12246 #. #define __NR_timerfd_settime 325
12247 #. #define __NR_timerfd_gettime 326
12248 #. #endif
12249 #. static int
12250 #. timerfd_create(int clockid, int flags)
12251 #. {
12252 #.     return syscall(__NR_timerfd_create, clockid, flags);
12253 #. }
12254 #. static int
12255 #. timerfd_settime(int fd, int flags, struct itimerspec *new_value,
12256 #.         struct itimerspec *curr_value)
12257 #. {
12258 #.     return syscall(__NR_timerfd_settime, fd, flags, new_value,
12259 #.                    curr_value);
12260 #. }
12261 #. static int
12262 #. timerfd_gettime(int fd, struct itimerspec *curr_value)
12263 #. {
12264 #.     return syscall(__NR_timerfd_gettime, fd, curr_value);
12265 #. }
12266 #. #define TFD_TIMER_ABSTIME (1 << 0)
12267 #. ////////////////////////////////////////////////////////////
12268 #. type: Plain text
12269 #: build/C/man2/timerfd_create.2:454
12270 #, no-wrap
12271 msgid ""
12272 "#include E<lt>sys/timerfd.hE<gt>\n"
12273 "#include E<lt>time.hE<gt>\n"
12274 "#include E<lt>unistd.hE<gt>\n"
12275 "#include E<lt>stdlib.hE<gt>\n"
12276 "#include E<lt>stdio.hE<gt>\n"
12277 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
12278 msgstr ""
12279 "#include E<lt>sys/timerfd.hE<gt>\n"
12280 "#include E<lt>time.hE<gt>\n"
12281 "#include E<lt>unistd.hE<gt>\n"
12282 "#include E<lt>stdlib.hE<gt>\n"
12283 "#include E<lt>stdio.hE<gt>\n"
12284 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
12285
12286 #. type: Plain text
12287 #: build/C/man2/timerfd_create.2:457
12288 #, no-wrap
12289 msgid ""
12290 "#define handle_error(msg) \\e\n"
12291 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
12292 msgstr ""
12293 "#define handle_error(msg) \\e\n"
12294 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
12295
12296 #. type: Plain text
12297 #: build/C/man2/timerfd_create.2:465
12298 #, no-wrap
12299 msgid ""
12300 "static void\n"
12301 "print_elapsed_time(void)\n"
12302 "{\n"
12303 "    static struct timespec start;\n"
12304 "    struct timespec curr;\n"
12305 "    static int first_call = 1;\n"
12306 "    int secs, nsecs;\n"
12307 msgstr ""
12308 "static void\n"
12309 "print_elapsed_time(void)\n"
12310 "{\n"
12311 "    static struct timespec start;\n"
12312 "    struct timespec curr;\n"
12313 "    static int first_call = 1;\n"
12314 "    int secs, nsecs;\n"
12315
12316 #. type: Plain text
12317 #: build/C/man2/timerfd_create.2:471
12318 #, no-wrap
12319 msgid ""
12320 "    if (first_call) {\n"
12321 "        first_call = 0;\n"
12322 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
12323 "            handle_error(\"clock_gettime\");\n"
12324 "    }\n"
12325 msgstr ""
12326 "    if (first_call) {\n"
12327 "        first_call = 0;\n"
12328 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
12329 "            handle_error(\"clock_gettime\");\n"
12330 "    }\n"
12331
12332 #. type: Plain text
12333 #: build/C/man2/timerfd_create.2:474
12334 #, no-wrap
12335 msgid ""
12336 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
12337 "        handle_error(\"clock_gettime\");\n"
12338 msgstr ""
12339 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
12340 "        handle_error(\"clock_gettime\");\n"
12341
12342 #. type: Plain text
12343 #: build/C/man2/timerfd_create.2:483
12344 #, no-wrap
12345 msgid ""
12346 "    secs = curr.tv_sec - start.tv_sec;\n"
12347 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
12348 "    if (nsecs E<lt> 0) {\n"
12349 "        secs--;\n"
12350 "        nsecs += 1000000000;\n"
12351 "    }\n"
12352 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
12353 "}\n"
12354 msgstr ""
12355 "    secs = curr.tv_sec - start.tv_sec;\n"
12356 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
12357 "    if (nsecs E<lt> 0) {\n"
12358 "        secs--;\n"
12359 "        nsecs += 1000000000;\n"
12360 "    }\n"
12361 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
12362 "}\n"
12363
12364 #. type: Plain text
12365 #: build/C/man2/timerfd_create.2:492
12366 #, no-wrap
12367 msgid ""
12368 "int\n"
12369 "main(int argc, char *argv[])\n"
12370 "{\n"
12371 "    struct itimerspec new_value;\n"
12372 "    int max_exp, fd;\n"
12373 "    struct timespec now;\n"
12374 "    uint64_t exp, tot_exp;\n"
12375 "    ssize_t s;\n"
12376 msgstr ""
12377 "int\n"
12378 "main(int argc, char *argv[])\n"
12379 "{\n"
12380 "    struct itimerspec new_value;\n"
12381 "    int max_exp, fd;\n"
12382 "    struct timespec now;\n"
12383 "    uint64_t exp, tot_exp;\n"
12384 "    ssize_t s;\n"
12385
12386 #. type: Plain text
12387 #: build/C/man2/timerfd_create.2:498
12388 #, no-wrap
12389 msgid ""
12390 "    if ((argc != 2) && (argc != 4)) {\n"
12391 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
12392 "                argv[0]);\n"
12393 "        exit(EXIT_FAILURE);\n"
12394 "    }\n"
12395 msgstr ""
12396 "    if ((argc != 2) && (argc != 4)) {\n"
12397 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
12398 "                argv[0]);\n"
12399 "        exit(EXIT_FAILURE);\n"
12400 "    }\n"
12401
12402 #. type: Plain text
12403 #: build/C/man2/timerfd_create.2:501
12404 #, no-wrap
12405 msgid ""
12406 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
12407 "        handle_error(\"clock_gettime\");\n"
12408 msgstr ""
12409 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
12410 "        handle_error(\"clock_gettime\");\n"
12411
12412 #. type: Plain text
12413 #: build/C/man2/timerfd_create.2:504
12414 #, no-wrap
12415 msgid ""
12416 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
12417 "       expiration and interval as specified in command line */\n"
12418 msgstr ""
12419 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
12420 "       expiration and interval as specified in command line */\n"
12421
12422 #. type: Plain text
12423 #: build/C/man2/timerfd_create.2:515
12424 #, no-wrap
12425 msgid ""
12426 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
12427 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
12428 "    if (argc == 2) {\n"
12429 "        new_value.it_interval.tv_sec = 0;\n"
12430 "        max_exp = 1;\n"
12431 "    } else {\n"
12432 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
12433 "        max_exp = atoi(argv[3]);\n"
12434 "    }\n"
12435 "    new_value.it_interval.tv_nsec = 0;\n"
12436 msgstr ""
12437 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
12438 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
12439 "    if (argc == 2) {\n"
12440 "        new_value.it_interval.tv_sec = 0;\n"
12441 "        max_exp = 1;\n"
12442 "    } else {\n"
12443 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
12444 "        max_exp = atoi(argv[3]);\n"
12445 "    }\n"
12446 "    new_value.it_interval.tv_nsec = 0;\n"
12447
12448 #. type: Plain text
12449 #: build/C/man2/timerfd_create.2:519
12450 #, no-wrap
12451 msgid ""
12452 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
12453 "    if (fd == -1)\n"
12454 "        handle_error(\"timerfd_create\");\n"
12455 msgstr ""
12456 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
12457 "    if (fd == -1)\n"
12458 "        handle_error(\"timerfd_create\");\n"
12459
12460 #. type: Plain text
12461 #: build/C/man2/timerfd_create.2:522
12462 #, no-wrap
12463 msgid ""
12464 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
12465 "        handle_error(\"timerfd_settime\");\n"
12466 msgstr ""
12467 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
12468 "        handle_error(\"timerfd_settime\");\n"
12469
12470 #. type: Plain text
12471 #: build/C/man2/timerfd_create.2:525
12472 #, no-wrap
12473 msgid ""
12474 "    print_elapsed_time();\n"
12475 "    printf(\"timer started\\en\");\n"
12476 msgstr ""
12477 "    print_elapsed_time();\n"
12478 "    printf(\"timer started\\en\");\n"
12479
12480 #. type: Plain text
12481 #: build/C/man2/timerfd_create.2:530
12482 #, no-wrap
12483 msgid ""
12484 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
12485 "        s = read(fd, &exp, sizeof(uint64_t));\n"
12486 "        if (s != sizeof(uint64_t))\n"
12487 "            handle_error(\"read\");\n"
12488 msgstr ""
12489 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
12490 "        s = read(fd, &exp, sizeof(uint64_t));\n"
12491 "        if (s != sizeof(uint64_t))\n"
12492 "            handle_error(\"read\");\n"
12493
12494 #. type: Plain text
12495 #: build/C/man2/timerfd_create.2:537
12496 #, no-wrap
12497 msgid ""
12498 "        tot_exp += exp;\n"
12499 "        print_elapsed_time();\n"
12500 "        printf(\"read: %llu; total=%llu\\en\",\n"
12501 "                (unsigned long long) exp,\n"
12502 "                (unsigned long long) tot_exp);\n"
12503 "    }\n"
12504 msgstr ""
12505 "        tot_exp += exp;\n"
12506 "        print_elapsed_time();\n"
12507 "        printf(\"read: %llu; total=%llu\\en\",\n"
12508 "                (unsigned long long) exp,\n"
12509 "                (unsigned long long) tot_exp);\n"
12510 "    }\n"
12511
12512 #. type: Plain text
12513 #: build/C/man2/timerfd_create.2:553
12514 msgid ""
12515 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
12516 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), B<timer_settime>"
12517 "(2), B<epoll>(7), B<time>(7)"
12518 msgstr ""
12519 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
12520 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), B<timer_settime>"
12521 "(2), B<epoll>(7), B<time>(7)"
12522
12523 #. type: TH
12524 #: build/C/man2/tkill.2:29
12525 #, no-wrap
12526 msgid "TKILL"
12527 msgstr "TKILL"
12528
12529 #. type: Plain text
12530 #: build/C/man2/tkill.2:32
12531 msgid "tkill, tgkill - send a signal to a thread"
12532 msgstr "tkill, tgkill - スレッドにシグナルを送る"
12533
12534 #. type: Plain text
12535 #: build/C/man2/tkill.2:35
12536 #, no-wrap
12537 msgid "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
12538 msgstr "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
12539
12540 #. type: Plain text
12541 #: build/C/man2/tkill.2:37
12542 #, no-wrap
12543 msgid "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
12544 msgstr "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
12545
12546 #. type: Plain text
12547 #: build/C/man2/tkill.2:54
12548 msgid ""
12549 "B<tgkill>()  sends the signal I<sig> to the thread with the thread ID I<tid> "
12550 "in the thread group I<tgid>.  (By contrast, B<kill>(2)  can only be used to "
12551 "send a signal to a process (i.e., thread group)  as a whole, and the signal "
12552 "will be delivered to an arbitrary thread within that process.)"
12553 msgstr ""
12554 "B<tgkill>()  はスレッド・グループ I<tgid> に属するスレッド ID が I<tid> のス"
12555 "レッドにシグナル I<sig> を送る。 (これに対し、 B<kill>(2)  は一つのプロセス "
12556 "(すなわち、スレッド・グループ) にまとめてシグナルを 送るのにだけ利用できる。 "
12557 "B<kill>(2)  で送信されたシグナルはプロセス内の任意のスレッドに配送される。)"
12558
12559 #.  FIXME: Maybe say something about the following:
12560 #.  http://sourceware.org/bugzilla/show_bug.cgi?id=12889
12561 #.      Rich Felker <bugdal@aerifal.cx>
12562 #.      There is a race condition in pthread_kill: it is possible that,
12563 #.      between the time pthread_kill reads the pid/tid from the target
12564 #.      thread descriptor and the time it makes the tgkill syscall,
12565 #.      the target thread terminates and the same tid gets assigned
12566 #.      to a new thread in the same process.
12567 #.      (The tgkill syscall was designed to eliminate a similar race
12568 #.      condition in tkill, but it only succeeded in eliminating races
12569 #.      where the tid gets reused in a different process, and does not
12570 #.      help if the same tid gets assigned to a new thread in the
12571 #.      same process.)
12572 #.      The only solution I can see is to introduce a mutex that ensures
12573 #.      that a thread cannot exit while pthread_kill is being called on it.
12574 #.      Note that in most real-world situations, like almost all race
12575 #.      conditions, this one will be extremely rare. To make it
12576 #.      measurable, one could exhaust all but 1-2 available pid values,
12577 #.      possibly by lowering the max pid parameter in /proc, forcing
12578 #.      the same tid to be reused rapidly.
12579 #. type: Plain text
12580 #: build/C/man2/tkill.2:85
12581 msgid ""
12582 "B<tkill>()  is an obsolete predecessor to B<tgkill>().  It only allows the "
12583 "target thread ID to be specified, which may result in the wrong thread being "
12584 "signaled if a thread terminates and its thread ID is recycled.  Avoid using "
12585 "this system call."
12586 msgstr ""
12587 "B<tkill>()  はもう使われなくなった B<tgkill>()  の先祖である。 B<tkill>()  で"
12588 "はシグナルの送り先のスレッド ID しか指定できない。 そのため、スレッドが終了し"
12589 "て、そのスレッド ID が再利用される場合に、 意図しないスレッドにシグナルが送ら"
12590 "れる可能性がある。 このシステムコールの使用は避けること。"
12591
12592 #. type: Plain text
12593 #: build/C/man2/tkill.2:92
12594 msgid ""
12595 "If I<tgid> is specified as -1, B<tgkill>()  is equivalent to B<tkill>()."
12596 msgstr ""
12597 "I<tgid> に -1 が指定された場合、 B<tgkill>()  は B<tkill>()  と等価である。"
12598
12599 #. type: Plain text
12600 #: build/C/man2/tkill.2:95
12601 msgid ""
12602 "These are the raw system call interfaces, meant for internal thread library "
12603 "use."
12604 msgstr ""
12605 "これらはシステムコールへの直接のインターフェースであり、 スレッド・ライブラリ"
12606 "内部での使用を意図したものである。"
12607
12608 #. type: Plain text
12609 #: build/C/man2/tkill.2:103
12610 msgid "An invalid thread ID, thread group ID, or signal was specified."
12611 msgstr "指定されたスレッド ID、スレッドグループ ID、シグナルが不正であった。"
12612
12613 #. type: Plain text
12614 #: build/C/man2/tkill.2:108
12615 msgid "Permission denied.  For the required permissions, see B<kill>(2)."
12616 msgstr ""
12617 "許可がなかった。どのような許可が必要かについては、 B<kill>(2)  を参照のこと。"
12618
12619 #. type: Plain text
12620 #: build/C/man2/tkill.2:111
12621 msgid "No process with the specified thread ID (and thread group ID) exists."
12622 msgstr ""
12623 "指定されたスレッドID (とスレッド・グループID) を持つプロセスが存在しない。"
12624
12625 #. type: Plain text
12626 #: build/C/man2/tkill.2:116
12627 msgid ""
12628 "B<tkill>()  is supported since Linux 2.4.19 / 2.5.4.  B<tgkill>()  was added "
12629 "in Linux 2.5.75."
12630 msgstr ""
12631 "B<tkill>()  は Linux 2.4.19 / 2.5.4 以降でサポートされ、 B<tgkill>()  は "
12632 "Linux 2.5.75 で追加された。"
12633
12634 #. type: Plain text
12635 #: build/C/man2/tkill.2:122
12636 msgid ""
12637 "B<tkill>()  and B<tgkill>()  are Linux-specific and should not be used in "
12638 "programs that are intended to be portable."
12639 msgstr ""
12640 "B<tkill>()  と B<tgkill>()  は Linux 固有であり、 移植を想定したプログラムで"
12641 "は使用すべきではない。"
12642
12643 #. type: Plain text
12644 #: build/C/man2/tkill.2:128
12645 msgid ""
12646 "See the description of B<CLONE_THREAD> in B<clone>(2)  for an explanation of "
12647 "thread groups."
12648 msgstr ""
12649 "スレッド・グループの説明については B<clone>(2)  の B<CLONE_THREAD> の説明を参"
12650 "照のこと。"
12651
12652 #. type: Plain text
12653 #: build/C/man2/tkill.2:131
12654 msgid ""
12655 "Glibc does not provide wrappers for these system calls; call them using "
12656 "B<syscall>(2)."
12657 msgstr ""
12658 "glibc はこれらのシステムコールに対するラッパー関数を提供していない。 "
12659 "B<syscall>(2)  を使って呼び出すこと。"
12660
12661 #. type: Plain text
12662 #: build/C/man2/tkill.2:136
12663 msgid "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
12664 msgstr "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
12665
12666 #. type: TH
12667 #: build/C/man2/wait.2:49
12668 #, no-wrap
12669 msgid "WAIT"
12670 msgstr "WAIT"
12671
12672 #. type: TH
12673 #: build/C/man2/wait.2:49
12674 #, no-wrap
12675 msgid "2012-12-21"
12676 msgstr "2012-12-21"
12677
12678 #. type: Plain text
12679 #: build/C/man2/wait.2:52
12680 msgid "wait, waitpid, waitid - wait for process to change state"
12681 msgstr "wait, waitpid, waitid - プロセスの状態変化を待つ"
12682
12683 #. type: Plain text
12684 #: build/C/man2/wait.2:54
12685 msgid "B<#include E<lt>sys/types.hE<gt>>"
12686 msgstr "B<#include E<lt>sys/types.hE<gt>>"
12687
12688 #. type: Plain text
12689 #: build/C/man2/wait.2:56
12690 msgid "B<#include E<lt>sys/wait.hE<gt>>"
12691 msgstr "B<#include E<lt>sys/wait.hE<gt>>"
12692
12693 #. type: Plain text
12694 #: build/C/man2/wait.2:58
12695 msgid "B<pid_t wait(int *>I<status>B<);>"
12696 msgstr "B<pid_t wait(int *>I<status>B<);>"
12697
12698 #. type: Plain text
12699 #: build/C/man2/wait.2:60
12700 msgid ""
12701 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
12702 msgstr ""
12703 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
12704
12705 #. type: Plain text
12706 #: build/C/man2/wait.2:63
12707 msgid ""
12708 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, "
12709 "int >I<options>B<);>"
12710 msgstr ""
12711 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, "
12712 "int >I<options>B<);>"
12713
12714 #. type: Plain text
12715 #: build/C/man2/wait.2:72
12716 msgid "B<waitid>():"
12717 msgstr "B<waitid>():"
12718
12719 #. type: Plain text
12720 #: build/C/man2/wait.2:76
12721 msgid ""
12722 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
12723 "_XOPEN_SOURCE_EXTENDED"
12724 msgstr ""
12725 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
12726 "_XOPEN_SOURCE_EXTENDED"
12727
12728 #. type: Plain text
12729 #: build/C/man2/wait.2:91
12730 msgid ""
12731 "All of these system calls are used to wait for state changes in a child of "
12732 "the calling process, and obtain information about the child whose state has "
12733 "changed.  A state change is considered to be: the child terminated; the "
12734 "child was stopped by a signal; or the child was resumed by a signal.  In the "
12735 "case of a terminated child, performing a wait allows the system to release "
12736 "the resources associated with the child; if a wait is not performed, then "
12737 "the terminated child remains in a \"zombie\" state (see NOTES below)."
12738 msgstr ""
12739 "これらのシステムコールはいずれも、呼び出し元プロセスの子プロセスの 状態変化を"
12740 "待ち、状態が変化したその子プロセスの情報を取得するのに 使用される。 状態変化"
12741 "とは以下のいずれかである: 子プロセスの終了、シグナルによる子プロセスの停止、 "
12742 "シグナルによる子プロセスの再開。 子プロセスが終了した場合は、wait を実行する"
12743 "ことで、 システムがその子プロセスに関連するリソースを解放できるようになる。 "
12744 "wait が実行されなかった場合には、終了した子プロセスは 「ゾンビ」状態で残り続"
12745 "ける (下記の注意の章を参照のこと)。"
12746
12747 #. type: Plain text
12748 #: build/C/man2/wait.2:103
12749 msgid ""
12750 "If a child has already changed state, then these calls return immediately.  "
12751 "Otherwise they block until either a child changes state or a signal handler "
12752 "interrupts the call (assuming that system calls are not automatically "
12753 "restarted using the B<SA_RESTART> flag of B<sigaction>(2)).  In the "
12754 "remainder of this page, a child whose state has changed and which has not "
12755 "yet been waited upon by one of these system calls is termed I<waitable>."
12756 msgstr ""
12757 "子プロセスの状態変化がすでに発生していた場合、これらのコールは すぐに復帰す"
12758 "る。それ以外の場合は、子プロセスの状態変化が起こるか、 シグナルハンドラにより"
12759 "システムコールが中断されるまで、 停止 (block) する (後者は、 B<sigaction>"
12760 "(2)  の B<SA_RESTART> フラグによりシステムコールが自動的に再スタートするよう"
12761 "になっていない 場合の動作である)。 以下の説明では、状態変化が起こったがこれら"
12762 "のシステムコールのいずれかに よって待たれていない子プロセスを I<waitable> (待"
12763 "ち可能) と呼ぶ。"
12764
12765 #. type: SS
12766 #: build/C/man2/wait.2:103
12767 #, no-wrap
12768 msgid "wait() and waitpid()"
12769 msgstr "wait() と waitpid()"
12770
12771 #. type: Plain text
12772 #: build/C/man2/wait.2:111
12773 msgid ""
12774 "The B<wait>()  system call suspends execution of the calling process until "
12775 "one of its children terminates.  The call I<wait(&status)> is equivalent to:"
12776 msgstr ""
12777 "B<wait>()  システムコールは、子プロセスのいずれかが終了するまで 呼び出し元の"
12778 "プロセスの実行を一時停止する。 呼び出し I<wait(&status)> は以下と等価である:"
12779
12780 #. type: Plain text
12781 #: build/C/man2/wait.2:114
12782 #, no-wrap
12783 msgid "    waitpid(-1, &status, 0);\n"
12784 msgstr "    waitpid(-1, &status, 0);\n"
12785
12786 #. type: Plain text
12787 #: build/C/man2/wait.2:128
12788 msgid ""
12789 "The B<waitpid>()  system call suspends execution of the calling process "
12790 "until a child specified by I<pid> argument has changed state.  By default, "
12791 "B<waitpid>()  waits only for terminated children, but this behavior is "
12792 "modifiable via the I<options> argument, as described below."
12793 msgstr ""
12794 "B<waitpid>()  システムコールは、 I<pid> 引き数で指定した子プロセスの状態変化"
12795 "が起こるまで、 呼び出し元のプロセスの実行を一時停止する。デフォルトでは、 "
12796 "B<waitpid>()  は子プロセスの終了だけを待つが、この動作は I<options> 引き数に"
12797 "より変更可能である。"
12798
12799 #. type: Plain text
12800 #: build/C/man2/wait.2:132
12801 msgid "The value of I<pid> can be:"
12802 msgstr "I<pid> に指定できる値は以下の通り:"
12803
12804 #. type: IP
12805 #: build/C/man2/wait.2:132
12806 #, no-wrap
12807 msgid "E<lt> -1"
12808 msgstr "E<lt> -1"
12809
12810 #. type: Plain text
12811 #: build/C/man2/wait.2:136
12812 msgid ""
12813 "meaning wait for any child process whose process group ID is equal to the "
12814 "absolute value of I<pid>."
12815 msgstr ""
12816 "プロセスグループID が I<pid> の絶対値に等しい子プロセスのいずれかが終了するま"
12817 "でを待つ。"
12818
12819 #. type: IP
12820 #: build/C/man2/wait.2:136
12821 #, no-wrap
12822 msgid "-1"
12823 msgstr "-1"
12824
12825 #. type: Plain text
12826 #: build/C/man2/wait.2:138
12827 msgid "meaning wait for any child process."
12828 msgstr "子プロセスのどれかが終了するまで待つ。"
12829
12830 #. type: IP
12831 #: build/C/man2/wait.2:138
12832 #, no-wrap
12833 msgid "0"
12834 msgstr "0"
12835
12836 #. type: Plain text
12837 #: build/C/man2/wait.2:141
12838 msgid ""
12839 "meaning wait for any child process whose process group ID is equal to that "
12840 "of the calling process."
12841 msgstr ""
12842 "プロセスグループID が呼び出したプロセスのものと等しい 子プロセスを待つ。"
12843
12844 #. type: IP
12845 #: build/C/man2/wait.2:141
12846 #, no-wrap
12847 msgid "E<gt> 0"
12848 msgstr "E<gt> 0"
12849
12850 #. type: Plain text
12851 #: build/C/man2/wait.2:145
12852 msgid ""
12853 "meaning wait for the child whose process ID is equal to the value of I<pid>."
12854 msgstr "プロセスID が I<pid> に等しい子プロセスを待つ。"
12855
12856 #. type: Plain text
12857 #: build/C/man2/wait.2:149
12858 msgid ""
12859 "The value of I<options> is an OR of zero or more of the following constants:"
12860 msgstr "I<options> の値は次の定数の 0 個以上の論理和である:"
12861
12862 #. type: TP
12863 #: build/C/man2/wait.2:149 build/C/man2/wait.2:278
12864 #, no-wrap
12865 msgid "B<WNOHANG>"
12866 msgstr "B<WNOHANG>"
12867
12868 #. type: Plain text
12869 #: build/C/man2/wait.2:152
12870 msgid "return immediately if no child has exited."
12871 msgstr "状態変化が起こった子プロセスがない場合にすぐに復帰する。"
12872
12873 #. type: TP
12874 #: build/C/man2/wait.2:152
12875 #, no-wrap
12876 msgid "B<WUNTRACED>"
12877 msgstr "B<WUNTRACED>"
12878
12879 #. type: Plain text
12880 #: build/C/man2/wait.2:161
12881 msgid ""
12882 "also return if a child has stopped (but not traced via B<ptrace>(2)).  "
12883 "Status for I<traced> children which have stopped is provided even if this "
12884 "option is not specified."
12885 msgstr ""
12886 "子プロセスが停止した場合にも復帰する (子プロセスが B<ptrace>(2)  でトレースさ"
12887 "れている場合は除く)。 このオプションが指定されていない場合でも、停止したプロ"
12888 "セスが 「トレース (traced)」されていれば、子プロセスの状態が報告される。"
12889
12890 #. type: TP
12891 #: build/C/man2/wait.2:161
12892 #, no-wrap
12893 msgid "B<WCONTINUED> (since Linux 2.6.10)"
12894 msgstr "B<WCONTINUED> (Linux 2.6.10 以降)"
12895
12896 #. type: Plain text
12897 #: build/C/man2/wait.2:165
12898 msgid ""
12899 "also return if a stopped child has been resumed by delivery of B<SIGCONT>."
12900 msgstr "停止した子プロセスが B<SIGCONT> の配送により再開した場合にも復帰する。"
12901
12902 #. type: Plain text
12903 #: build/C/man2/wait.2:167
12904 msgid "(For Linux-only options, see below.)"
12905 msgstr "(Linux 専用オプションについては後述する)"
12906
12907 #. type: Plain text
12908 #: build/C/man2/wait.2:181
12909 msgid ""
12910 "If I<status> is not NULL, B<wait>()  and B<waitpid>()  store status "
12911 "information in the I<int> to which it points.  This integer can be inspected "
12912 "with the following macros (which take the integer itself as an argument, not "
12913 "a pointer to it, as is done in B<wait>()  and B<waitpid>()!):"
12914 msgstr ""
12915 "I<status> が NULL でなければ、 B<wait>()  や B<waitpid>()  は I<status> で指"
12916 "す I<int> に状態情報を格納する。 この整数は以下のマクロを使って検査できる。 "
12917 "(これらのマクロの引き数には、 B<wait>()  や B<waitpid>()  が書き込んだ整数そ"
12918 "のものを指定する。ポインタではない!)"
12919
12920 #. type: TP
12921 #: build/C/man2/wait.2:181
12922 #, no-wrap
12923 msgid "B<WIFEXITED(>I<status>B<)>"
12924 msgstr "B<WIFEXITED(>I<status>B<)>"
12925
12926 #. type: Plain text
12927 #: build/C/man2/wait.2:189
12928 msgid ""
12929 "returns true if the child terminated normally, that is, by calling B<exit>"
12930 "(3)  or B<_exit>(2), or by returning from main()."
12931 msgstr ""
12932 "子プロセスが正常に終了した場合に真を返す。 「正常に」とは、 B<exit>(3)  か "
12933 "B<_exit>(2)  が呼び出された場合、もしくは main() から復帰した場合である。"
12934
12935 #. type: TP
12936 #: build/C/man2/wait.2:189
12937 #, no-wrap
12938 msgid "B<WEXITSTATUS(>I<status>B<)>"
12939 msgstr "B<WEXITSTATUS(>I<status>B<)>"
12940
12941 #. type: Plain text
12942 #: build/C/man2/wait.2:202
12943 msgid ""
12944 "returns the exit status of the child.  This consists of the least "
12945 "significant 8 bits of the I<status> argument that the child specified in a "
12946 "call to B<exit>(3)  or B<_exit>(2)  or as the argument for a return "
12947 "statement in main().  This macro should only be employed if B<WIFEXITED> "
12948 "returned true."
12949 msgstr ""
12950 "子プロセスの終了ステータスを返す。 終了ステータスは I<status> 引き数の下位 8"
12951 "ビットで構成されており、 B<exit>(3)  や B<_exit>(2)  の呼び出し時に渡された"
12952 "値、もしくは main() の return 文の 引き数として指定された値である。 このマク"
12953 "ロを使用するのは B<WIFEXITED> が真を返した場合だけにすべきである。"
12954
12955 #. type: TP
12956 #: build/C/man2/wait.2:202
12957 #, no-wrap
12958 msgid "B<WIFSIGNALED(>I<status>B<)>"
12959 msgstr "B<WIFSIGNALED(>I<status>B<)>"
12960
12961 #. type: Plain text
12962 #: build/C/man2/wait.2:205
12963 msgid "returns true if the child process was terminated by a signal."
12964 msgstr "子プロセスがシグナルにより終了した場合に真を返す。"
12965
12966 #. type: TP
12967 #: build/C/man2/wait.2:205
12968 #, no-wrap
12969 msgid "B<WTERMSIG(>I<status>B<)>"
12970 msgstr "B<WTERMSIG(>I<status>B<)>"
12971
12972 #. type: Plain text
12973 #: build/C/man2/wait.2:212
12974 msgid ""
12975 "returns the number of the signal that caused the child process to "
12976 "terminate.  This macro should only be employed if B<WIFSIGNALED> returned "
12977 "true."
12978 msgstr ""
12979 "子プロセス終了の原因となったシグナルの番号を返す。 このマクロを使用するのは "
12980 "B<WIFSIGNALED> が真を返した場合だけにすべきである。"
12981
12982 #. type: TP
12983 #: build/C/man2/wait.2:212
12984 #, no-wrap
12985 msgid "B<WCOREDUMP(>I<status>B<)>"
12986 msgstr "B<WCOREDUMP(>I<status>B<)>"
12987
12988 #. type: Plain text
12989 #: build/C/man2/wait.2:221
12990 msgid ""
12991 "returns true if the child produced a core dump.  This macro should only be "
12992 "employed if B<WIFSIGNALED> returned true.  This macro is not specified in "
12993 "POSIX.1-2001 and is not available on some UNIX implementations (e.g., AIX, "
12994 "SunOS).  Only use this enclosed in #ifdef WCOREDUMP ... #endif."
12995 msgstr ""
12996 "子プロセスがコアダンプを生成した場合に真を返す。 このマクロを使用するのは "
12997 "B<WIFSIGNALED> が真を返した場合だけにすべきである。 このマクロは "
12998 "POSIX.1-2001 では規定されておらず、 (AIX, SunOS などの) いくつかの UNIX の実"
12999 "装では利用できない。 必ず #ifdef WCOREDUMP ... #endif で括って使用すること。"
13000
13001 #. type: TP
13002 #: build/C/man2/wait.2:221
13003 #, no-wrap
13004 msgid "B<WIFSTOPPED(>I<status>B<)>"
13005 msgstr "B<WIFSTOPPED(>I<status>B<)>"
13006
13007 #. type: Plain text
13008 #: build/C/man2/wait.2:228
13009 msgid ""
13010 "returns true if the child process was stopped by delivery of a signal; this "
13011 "is only possible if the call was done using B<WUNTRACED> or when the child "
13012 "is being traced (see B<ptrace>(2))."
13013 msgstr ""
13014 "子プロセスがシグナルの配送により停止した場合に真を返す。 これが真になるのは、"
13015 "システムコールが B<WUNTRACED> を指定して呼び出された場合か、子プロセスがト"
13016 "レースされている場合 (B<ptrace>(2)  参照) だけである。"
13017
13018 #. type: TP
13019 #: build/C/man2/wait.2:228
13020 #, no-wrap
13021 msgid "B<WSTOPSIG(>I<status>B<)>"
13022 msgstr "B<WSTOPSIG(>I<status>B<)>"
13023
13024 #. type: Plain text
13025 #: build/C/man2/wait.2:234
13026 msgid ""
13027 "returns the number of the signal which caused the child to stop.  This macro "
13028 "should only be employed if B<WIFSTOPPED> returned true."
13029 msgstr ""
13030 "子プロセスを停止させたシグナルの番号を返す。 このマクロを使用するのは "
13031 "B<WIFSTOPPED> が 0 以外を返した場合だけにすべきである。"
13032
13033 #. type: TP
13034 #: build/C/man2/wait.2:234
13035 #, no-wrap
13036 msgid "B<WIFCONTINUED(>I<status>B<)>"
13037 msgstr "B<WIFCONTINUED(>I<status>B<)>"
13038
13039 #. type: Plain text
13040 #: build/C/man2/wait.2:239
13041 msgid ""
13042 "(since Linux 2.6.10)  returns true if the child process was resumed by "
13043 "delivery of B<SIGCONT>."
13044 msgstr ""
13045 "(Linux 2.6.10 以降)  子プロセスが B<SIGCONT> の配送により再開した場合に真を返"
13046 "す。"
13047
13048 #. type: SS
13049 #: build/C/man2/wait.2:239
13050 #, no-wrap
13051 msgid "waitid()"
13052 msgstr "waitid()"
13053
13054 #. type: Plain text
13055 #: build/C/man2/wait.2:244
13056 msgid ""
13057 "The B<waitid>()  system call (available since Linux 2.6.9) provides more "
13058 "precise control over which child state changes to wait for."
13059 msgstr ""
13060 "B<waitid>()  システムコール (Linux 2.6.9 以降で利用可能) を使うと、 子プロセ"
13061 "スのどの状態変化を待つかについてより細かな制御ができる。"
13062
13063 #. type: Plain text
13064 #: build/C/man2/wait.2:250
13065 msgid ""
13066 "The I<idtype> and I<id> arguments select the child(ren) to wait for, as "
13067 "follows:"
13068 msgstr "引き数 I<idtype> と I<id> でどの子プロセスを待つかを選択する:"
13069
13070 #. type: IP
13071 #: build/C/man2/wait.2:250
13072 #, no-wrap
13073 msgid "I<idtype> == B<P_PID>"
13074 msgstr "I<idtype> == B<P_PID>"
13075
13076 #. type: Plain text
13077 #: build/C/man2/wait.2:253
13078 msgid "Wait for the child whose process ID matches I<id>."
13079 msgstr "プロセスID が I<id> と一致する子プロセスを待つ。"
13080
13081 #. type: IP
13082 #: build/C/man2/wait.2:253
13083 #, no-wrap
13084 msgid "I<idtype> == B<P_PGID>"
13085 msgstr "I<idtype> == B<P_PGID>"
13086
13087 #. type: Plain text
13088 #: build/C/man2/wait.2:256
13089 msgid "Wait for any child whose process group ID matches I<id>."
13090 msgstr "プロセスグループID が I<id> と一致する子プロセスを待つ。"
13091
13092 #. type: IP
13093 #: build/C/man2/wait.2:256
13094 #, no-wrap
13095 msgid "I<idtype> == B<P_ALL>"
13096 msgstr "I<idtype> == B<P_ALL>"
13097
13098 #. type: Plain text
13099 #: build/C/man2/wait.2:260
13100 msgid "Wait for any child; I<id> is ignored."
13101 msgstr "子プロセス全部を対象に待つ。 I<id> は無視される。"
13102
13103 #. type: Plain text
13104 #: build/C/man2/wait.2:264
13105 msgid ""
13106 "The child state changes to wait for are specified by ORing one or more of "
13107 "the following flags in I<options>:"
13108 msgstr ""
13109 "子プロセスのどの状態変化を待つかは以下のフラグで指定する (I<options> には 1個"
13110 "以上のフラグの論理和をとって指定する):"
13111
13112 #. type: TP
13113 #: build/C/man2/wait.2:264
13114 #, no-wrap
13115 msgid "B<WEXITED>"
13116 msgstr "B<WEXITED>"
13117
13118 #. type: Plain text
13119 #: build/C/man2/wait.2:267
13120 msgid "Wait for children that have terminated."
13121 msgstr "子プロセスの終了を待つ。"
13122
13123 #. type: TP
13124 #: build/C/man2/wait.2:267
13125 #, no-wrap
13126 msgid "B<WSTOPPED>"
13127 msgstr "B<WSTOPPED>"
13128
13129 #. type: Plain text
13130 #: build/C/man2/wait.2:270
13131 msgid "Wait for children that have been stopped by delivery of a signal."
13132 msgstr "子プロセスがシグナルの配送により停止するのを待つ。"
13133
13134 #. type: TP
13135 #: build/C/man2/wait.2:270
13136 #, no-wrap
13137 msgid "B<WCONTINUED>"
13138 msgstr "B<WCONTINUED>"
13139
13140 #. type: Plain text
13141 #: build/C/man2/wait.2:275
13142 msgid ""
13143 "Wait for (previously stopped) children that have been resumed by delivery of "
13144 "B<SIGCONT>."
13145 msgstr "(停止していた) 子プロセスが B<SIGCONT> が配送されて再開するのを待つ。"
13146
13147 #. type: Plain text
13148 #: build/C/man2/wait.2:278
13149 msgid "The following flags may additionally be ORed in I<options>:"
13150 msgstr "さらに以下のフラグを論理和の形で I<options> に指定できる:"
13151
13152 #. type: Plain text
13153 #: build/C/man2/wait.2:282
13154 msgid "As for B<waitpid>()."
13155 msgstr "B<waitpid>()  と同様。"
13156
13157 #. type: TP
13158 #: build/C/man2/wait.2:282
13159 #, no-wrap
13160 msgid "B<WNOWAIT>"
13161 msgstr "B<WNOWAIT>"
13162
13163 #. type: Plain text
13164 #: build/C/man2/wait.2:286
13165 msgid ""
13166 "Leave the child in a waitable state; a later wait call can be used to again "
13167 "retrieve the child status information."
13168 msgstr ""
13169 "waitable 状態のプロセスをそのままにする。この後で wait コールを 使って、同じ"
13170 "子プロセスの状態情報をもう一度取得することができる。"
13171
13172 #. type: Plain text
13173 #: build/C/man2/wait.2:293
13174 msgid ""
13175 "Upon successful return, B<waitid>()  fills in the following fields of the "
13176 "I<siginfo_t> structure pointed to by I<infop>:"
13177 msgstr ""
13178 "成功した場合には、 B<waitid>()  は I<infop> が指す I<siginfo_t> 構造体の以下"
13179 "のフィールドを設定する:"
13180
13181 #. type: Plain text
13182 #: build/C/man2/wait.2:296
13183 msgid "The process ID of the child."
13184 msgstr "子プロセスのプロセスID。"
13185
13186 #. type: Plain text
13187 #: build/C/man2/wait.2:300
13188 msgid ""
13189 "The real user ID of the child.  (This field is not set on most other "
13190 "implementations.)"
13191 msgstr ""
13192 "子プロセスの実ユーザID (このフィールドは他のほとんどの実装では設定されない)。"
13193
13194 #. type: Plain text
13195 #: build/C/man2/wait.2:304
13196 msgid "Always set to B<SIGCHLD>."
13197 msgstr "常に B<SIGCHLD> が設定される。"
13198
13199 #. type: TP
13200 #: build/C/man2/wait.2:304
13201 #, no-wrap
13202 msgid "I<si_status>"
13203 msgstr "I<si_status>"
13204
13205 #. type: Plain text
13206 #: build/C/man2/wait.2:314
13207 msgid ""
13208 "Either the exit status of the child, as given to B<_exit>(2)  (or B<exit>"
13209 "(3)), or the signal that caused the child to terminate, stop, or continue.  "
13210 "The I<si_code> field can be used to determine how to interpret this field."
13211 msgstr ""
13212 "B<_exit>(2)  (か B<exit>(3))  に指定された子プロセスの終了ステータス、もしく"
13213 "は 子プロセスの終了、停止、再開の原因となったシグナルが設定される。 この"
13214 "フィールドをどう解釈するかは、 I<si_code> フィールドを参照して決めることがで"
13215 "きる。"
13216
13217 #. type: Plain text
13218 #: build/C/man2/wait.2:331
13219 msgid ""
13220 "Set to one of: B<CLD_EXITED> (child called B<_exit>(2)); B<CLD_KILLED> "
13221 "(child killed by signal); B<CLD_DUMPED> (child killed by signal, and dumped "
13222 "core); B<CLD_STOPPED> (child stopped by signal); B<CLD_TRAPPED> (traced "
13223 "child has trapped); or B<CLD_CONTINUED> (child continued by B<SIGCONT>)."
13224 msgstr ""
13225 "以下のいずれかが設定される: B<CLD_EXITED> (子プロセスが B<_exit>(2)  を呼び出"
13226 "した); B<CLD_KILLED> (シグナルにより子プロセスが kill された); B<CLD_DUMPED> "
13227 "(シグナルにより子プロセスが kill され、コア・ダンプが行われた); "
13228 "B<CLD_STOPPED> (シグナルにより子プロセスが停止した); B<CLD_TRAPPED> (トレース"
13229 "されていた子プロセスがトラップを受信した); B<CLD_CONTINUED> (B<SIGCONT> によ"
13230 "り子プロセスが再開された)。"
13231
13232 #.  POSIX.1-2001 leaves this possibility unspecified; most
13233 #.  implementations (including Linux) zero out the structure
13234 #.  in this case, but at least one implementation (AIX 5.1)
13235 #.  does not -- MTK Nov 04
13236 #. type: Plain text
13237 #: build/C/man2/wait.2:353
13238 msgid ""
13239 "If B<WNOHANG> was specified in I<options> and there were no children in a "
13240 "waitable state, then B<waitid>()  returns 0 immediately and the state of the "
13241 "I<siginfo_t> structure pointed to by I<infop> is unspecified.  To "
13242 "distinguish this case from that where a child was in a waitable state, zero "
13243 "out the I<si_pid> field before the call and check for a nonzero value in "
13244 "this field after the call returns."
13245 msgstr ""
13246 "B<WNOHANG> が I<options> に指定されていて、 waitable 状態の子プロセスがなかっ"
13247 "た場合には、 B<waitid>()  はすぐに 0 を返す。このとき、 I<infop> が指す "
13248 "I<siginfo_t> 構造体の内容は不定である。 この場合を waitable 状態の子プロセス"
13249 "があった場合と区別するには、 B<waitid>()  を呼び出す前に I<si_pid> を 0 にし"
13250 "ておき、コールが復帰した後でこのフィールドが 0 以外の値かどうか をチェックす"
13251 "ればよい。"
13252
13253 #. type: Plain text
13254 #: build/C/man2/wait.2:357
13255 msgid ""
13256 "B<wait>(): on success, returns the process ID of the terminated child; on "
13257 "error, -1 is returned."
13258 msgstr ""
13259 "B<wait>(): 成功すると、終了した子プロセスのプロセスID を返す。 エラーの場合 "
13260 "-1 を返す。"
13261
13262 #. type: Plain text
13263 #: build/C/man2/wait.2:366
13264 msgid ""
13265 "B<waitpid>(): on success, returns the process ID of the child whose state "
13266 "has changed; if B<WNOHANG> was specified and one or more child(ren) "
13267 "specified by I<pid> exist, but have not yet changed state, then 0 is "
13268 "returned.  On error, -1 is returned."
13269 msgstr ""
13270 "B<waitpid>(): 成功すると、状態が変化した子プロセスのプロセスID を返す。 "
13271 "B<WNOHANG> が指定されていて、 I<pid> で指示された子プロセスが一つ以上存在する"
13272 "が、どの子プロセスでも 状態変化が起こっていなかった場合は、 0 を返す。 エラー"
13273 "の場合 -1 を返す。"
13274
13275 #.  FIXME: As reported by Vegard Nossum, if infop is NULL, then waitid()
13276 #.  returns the PID of the child.  Either this is a bug, or it is intended
13277 #.  behavior that needs to be documented.  See my Jan 2009 LKML mail
13278 #.  "waitid() return value strangeness when infop is NULL".
13279 #. type: Plain text
13280 #: build/C/man2/wait.2:382
13281 msgid ""
13282 "B<waitid>(): returns 0 on success or if B<WNOHANG> was specified and no child"
13283 "(ren) specified by I<id> has yet changed state; on error, -1 is returned.  "
13284 "Each of these calls sets I<errno> to an appropriate value in the case of an "
13285 "error."
13286 msgstr ""
13287 "B<waitid>(): 成功すると 0 を返す。 B<WNOHANG> が指定されていて、 I<pid> で指"
13288 "示された子プロセスで状態変化が起こっていなかった場合にも 0 を返す。 エラーの"
13289 "場合 -1 を返す。 エラーの場合、これらのシステムコールはいずれも I<errno> に適"
13290 "切な値を設定する。"
13291
13292 #. type: TP
13293 #: build/C/man2/wait.2:383 build/C/man2/wait.2:388
13294 #, no-wrap
13295 msgid "B<ECHILD>"
13296 msgstr "B<ECHILD>"
13297
13298 #. type: Plain text
13299 #: build/C/man2/wait.2:388
13300 msgid ""
13301 "(for B<wait>())  The calling process does not have any unwaited-for children."
13302 msgstr ""
13303 "(B<wait>()  の場合)  呼び出し元プロセスには、wait を行っていない子プロセスは"
13304 "ない。"
13305
13306 #. type: Plain text
13307 #: build/C/man2/wait.2:408
13308 msgid ""
13309 "(for B<waitpid>()  or B<waitid>())  The process specified by I<pid> "
13310 "(B<waitpid>())  or I<idtype> and I<id> (B<waitid>())  does not exist or is "
13311 "not a child of the calling process.  (This can happen for one's own child if "
13312 "the action for B<SIGCHLD> is set to B<SIG_IGN>.  See also the I<Linux Notes> "
13313 "section about threads.)"
13314 msgstr ""
13315 "(B<waitpid>()  か B<waitid>()  の場合)  I<pid> (B<waitpid>())  か I<idtype> "
13316 "と I<id> (B<waitid>())  で指定したプロセスが存在しないか、呼び出し元プロセス"
13317 "の子プロセスでない (B<SIGCHLD> の動作に B<SIG_IGN> を設定した場合には、自分自"
13318 "身の子プロセスでも起こりうる。 スレッドに関しては「Linux での注意」の節も参照"
13319 "すること)。"
13320
13321 #. type: Plain text
13322 #: build/C/man2/wait.2:415
13323 msgid ""
13324 "B<WNOHANG> was not set and an unblocked signal or a B<SIGCHLD> was caught; "
13325 "see B<signal>(7)."
13326 msgstr ""
13327 "B<WNOHANG> が設定されておらず、禁止 (block) されていないシグナルや "
13328 "B<SIGCHLD> を受信した。 B<signal>(7)  参照。"
13329
13330 #. type: Plain text
13331 #: build/C/man2/wait.2:420
13332 msgid "The I<options> argument was invalid."
13333 msgstr "I<options> 引き数が不正である。"
13334
13335 #. type: Plain text
13336 #: build/C/man2/wait.2:435
13337 msgid ""
13338 "A child that terminates, but has not been waited for becomes a \"zombie\".  "
13339 "The kernel maintains a minimal set of information about the zombie process "
13340 "(PID, termination status, resource usage information)  in order to allow the "
13341 "parent to later perform a wait to obtain information about the child.  As "
13342 "long as a zombie is not removed from the system via a wait, it will consume "
13343 "a slot in the kernel process table, and if this table fills, it will not be "
13344 "possible to create further processes.  If a parent process terminates, then "
13345 "its \"zombie\" children (if any)  are adopted by B<init>(8), which "
13346 "automatically performs a wait to remove the zombies."
13347 msgstr ""
13348 "終了したが、wait されていない子プロセスは「ゾンビ」になる。 後で親プロセスが "
13349 "wait を実行して子プロセスについての情報を取得できるように、 カーネルはゾンビ"
13350 "プロセスについて最小限の情報 (PID、終了ステータス、 リソース使用状況) を保持"
13351 "する。 ゾンビプロセスは、 wait によってシステムから削除されない限り、 カーネ"
13352 "ルのプロセステーブルの 1 エントリを消費する。このプロセステーブルが 一杯にな"
13353 "ると、新たにプロセスを作ることができなくなる。 親プロセスが終了すると、その親"
13354 "プロセスの「ゾンビ」の 子プロセスは (もしあれば)  B<init>(8)  の養子となる。 "
13355 "B<init>(8)  は wait を自動的に実行し、ゾンビを削除する。"
13356
13357 #. type: Plain text
13358 #: build/C/man2/wait.2:476
13359 msgid ""
13360 "POSIX.1-2001 specifies that if the disposition of B<SIGCHLD> is set to "
13361 "B<SIG_IGN> or the B<SA_NOCLDWAIT> flag is set for B<SIGCHLD> (see "
13362 "B<sigaction>(2)), then children that terminate do not become zombies and a "
13363 "call to B<wait>()  or B<waitpid>()  will block until all children have "
13364 "terminated, and then fail with I<errno> set to B<ECHILD>.  (The original "
13365 "POSIX standard left the behavior of setting B<SIGCHLD> to B<SIG_IGN> "
13366 "unspecified.  Note that even though the default disposition of B<SIGCHLD> is "
13367 "\"ignore\", explicitly setting the disposition to B<SIG_IGN> results in "
13368 "different treatment of zombie process children.)  Linux 2.6 conforms to this "
13369 "specification.  However, Linux 2.4 (and earlier) does not: if a B<wait>()  "
13370 "or B<waitpid>()  call is made while B<SIGCHLD> is being ignored, the call "
13371 "behaves just as though B<SIGCHLD> were not being ignored, that is, the call "
13372 "blocks until the next child terminates and then returns the process ID and "
13373 "status of that child."
13374 msgstr ""
13375 "POSIX.1-2001 では以下のように規定されている。 B<SIGCHLD> の動作が B<SIG_IGN> "
13376 "に設定されたか、 B<SIGCHLD> に対して B<SA_NOCLDWAIT> フラグが設定された場合 "
13377 "(B<sigaction>(2)  参照)、終了した子プロセスはゾンビにはならず、 B<wait>()  "
13378 "や B<waitpid>()  の呼び出しは全ての子プロセスが終了するまで停止し、 子プロセ"
13379 "スが全部終了した後 I<errno> に B<ECHILD> を設定して失敗する。 (もともとの "
13380 "POSIX 標準は B<SIGCHLD> に B<SIG_IGN> を設定した場合の振る舞いを未規定のまま"
13381 "にしている。 B<SIGCHLD> のデフォルトの動作が「無視」であるにもかかわらず、 "
13382 "B<SIGCHLD> の動作として B<SIG_IGN> を明示的に設定した場合にはゾンビプロセスの"
13383 "子プロセスの扱いが 異なる点に注意すること。)  Linux 2.6 はこの仕様に準拠して"
13384 "いる。 しかし、Linux 2.4 (とそれ以前のバージョン) はそうではない: B<SIGCHLD> "
13385 "が無視される状態で B<wait>()  または B<waitpid>()  が呼び出された場合、 "
13386 "B<SIGCHLD> が無視されていないかのように振る舞う。 つまり、呼び出しによって次"
13387 "の子プロセスの終了までブロックされ、 終了した子プロセスの PID と状態が返され"
13388 "る。"
13389
13390 #. type: Plain text
13391 #: build/C/man2/wait.2:492
13392 msgid ""
13393 "In the Linux kernel, a kernel-scheduled thread is not a distinct construct "
13394 "from a process.  Instead, a thread is simply a process that is created using "
13395 "the Linux-unique B<clone>(2)  system call; other routines such as the "
13396 "portable B<pthread_create>(3)  call are implemented using B<clone>(2).  "
13397 "Before Linux 2.4, a thread was just a special case of a process, and as a "
13398 "consequence one thread could not wait on the children of another thread, "
13399 "even when the latter belongs to the same thread group.  However, POSIX "
13400 "prescribes such functionality, and since Linux 2.4 a thread can, and by "
13401 "default will, wait on children of other threads in the same thread group."
13402 msgstr ""
13403 "Linux カーネルでは、カーネルによってスケジュールされるスレッドは プロセスと明"
13404 "確に区別できる構成要素ではない。スレッドは Linux 固有の B<clone>(2)  システム"
13405 "コールを使用して生成されるプロセスに過ぎない。 移植性のある B<pthread_create>"
13406 "(3)  コールのような他のルーチンは B<clone>(2)  を使用して実装されている; これ"
13407 "らでは B<waitid>()  を使うことはできない。 Linux 2.4 より前では、スレッドは単"
13408 "に特殊なプロセスであったので、 例え同じスレッドグループであっても、 あるス"
13409 "レッドが別のスレッドの子プロセスが終了するのを待つことは出来なかった。 しか"
13410 "し、POSIX ではこのような機能を規定しており、 Linux 2.4 以降では、あるスレッド"
13411 "が同じスレッドグループの他のスレッドの 子プロセスが終了するのを待つことができ"
13412 "るようになった。 そして将来はこれがデフォルトの動作になるであろう。"
13413
13414 #. type: Plain text
13415 #: build/C/man2/wait.2:499
13416 msgid ""
13417 "The following Linux-specific I<options> are for use with children created "
13418 "using B<clone>(2); they cannot be used with B<waitid>():"
13419 msgstr ""
13420 "B<clone>(2)  を用いて作られた子プロセスには、以下の Linux 固有の I<options> "
13421 "が使用できる。"
13422
13423 #. type: TP
13424 #: build/C/man2/wait.2:499
13425 #, no-wrap
13426 msgid "B<__WCLONE>"
13427 msgstr "B<__WCLONE>"
13428
13429 #.  since 0.99pl10
13430 #. type: Plain text
13431 #: build/C/man2/wait.2:510
13432 msgid ""
13433 "Wait for \"clone\" children only.  If omitted then wait for \"non-clone\" "
13434 "children only.  (A \"clone\" child is one which delivers no signal, or a "
13435 "signal other than B<SIGCHLD> to its parent upon termination.)  This option "
13436 "is ignored if B<__WALL> is also specified."
13437 msgstr ""
13438 "\"clone\" な子プロセスだけを待つ。 指定されなかった場合は非 \"clone\" な子プ"
13439 "ロセスだけを待つ (\"clone\" な子プロセスは、終了時に親プロセスへ全くシグナル"
13440 "を送らないか、 B<SIGCHLD> 以外のシグナルを送る)。 このオプションは B<__WALL> "
13441 "も指定された場合は無視される。"
13442
13443 #. type: TP
13444 #: build/C/man2/wait.2:510
13445 #, no-wrap
13446 msgid "B<__WALL> (since Linux 2.4)"
13447 msgstr "B<__WALL> (Linux 2.4 以降)"
13448
13449 #.  since patch-2.3.48
13450 #. type: Plain text
13451 #: build/C/man2/wait.2:515
13452 msgid "Wait for all children, regardless of type (\"clone\" or \"non-clone\")."
13453 msgstr "\"clone\" であるかないかに関わらず、 全ての子プロセスを待つ。"
13454
13455 #. type: TP
13456 #: build/C/man2/wait.2:515
13457 #, no-wrap
13458 msgid "B<__WNOTHREAD> (since Linux 2.4)"
13459 msgstr "B<__WNOTHREAD> (Linux 2.4 以降)"
13460
13461 #.  since patch-2.4.0-test8
13462 #. type: Plain text
13463 #: build/C/man2/wait.2:521
13464 msgid ""
13465 "Do not wait for children of other threads in the same thread group.  This "
13466 "was the default before Linux 2.4."
13467 msgstr ""
13468 "同じスレッドグループの他のスレッドの子プロセスは待たない。 Linux 2.4 より前で"
13469 "はデフォルトであった。"
13470
13471 #. type: Plain text
13472 #: build/C/man2/wait.2:536
13473 msgid ""
13474 "According to POSIX.1-2008, an application calling B<waitid>()  must ensure "
13475 "that I<infop> points to a I<siginfo_t> structure (i.e., that it is a non-"
13476 "NULL pointer).  On Linux, if I<infop> is NULL, B<waitid>()  succeeds, and "
13477 "returns the process ID of the waited-for child.  Applications should avoid "
13478 "relying on this inconsistent, nonstandard, and unnecessary feature."
13479 msgstr ""
13480
13481 #.  fork.2 refers to this example program.
13482 #. type: Plain text
13483 #: build/C/man2/wait.2:553
13484 msgid ""
13485 "The following program demonstrates the use of B<fork>(2)  and B<waitpid>().  "
13486 "The program creates a child process.  If no command-line argument is "
13487 "supplied to the program, then the child suspends its execution using B<pause>"
13488 "(2), to allow the user to send signals to the child.  Otherwise, if a "
13489 "command-line argument is supplied, then the child exits immediately, using "
13490 "the integer supplied on the command line as the exit status.  The parent "
13491 "process executes a loop that monitors the child using B<waitpid>(), and uses "
13492 "the W*() macros described above to analyze the wait status value."
13493 msgstr ""
13494 "以下のプログラムは、 B<fork>(2)  と B<waitpid>()  の使用方法の例を示してい"
13495 "る。 このプログラムでは子プロセスを生成する。 コマンドライン引き数が指定され"
13496 "なかったときは、 子プロセスは B<pause>(2)  を使ってその実行を一時停止し、ユー"
13497 "ザがその子プロセスに シグナルを送信できるようにする。 コマンドライン引き数が"
13498 "指定された場合は、 子プロセスは直ちに終了し、 コマンドラインで指定された整数"
13499 "を終了ステータスとして使用する。 親プロセスは、 B<waitpid>()  を使って子プロ"
13500 "セスを監視し、 wait のステータス値を上記の W*() マクロを使って解析するという "
13501 "ループを実行する。"
13502
13503 #. type: Plain text
13504 #: build/C/man2/wait.2:569
13505 #, no-wrap
13506 msgid ""
13507 "$B< ./a.out &>\n"
13508 "Child PID is 32360\n"
13509 "[1] 32359\n"
13510 "$B< kill -STOP 32360>\n"
13511 "stopped by signal 19\n"
13512 "$B< kill -CONT 32360>\n"
13513 "continued\n"
13514 "$B< kill -TERM 32360>\n"
13515 "killed by signal 15\n"
13516 "[1]+  Done                    ./a.out\n"
13517 "$\n"
13518 msgstr ""
13519 "$B< ./a.out &>\n"
13520 "Child PID is 32360\n"
13521 "[1] 32359\n"
13522 "$B< kill -STOP 32360>\n"
13523 "stopped by signal 19\n"
13524 "$B< kill -CONT 32360>\n"
13525 "continued\n"
13526 "$B< kill -TERM 32360>\n"
13527 "killed by signal 15\n"
13528 "[1]+  Done                    ./a.out\n"
13529 "$\n"
13530
13531 #. type: Plain text
13532 #: build/C/man2/wait.2:578
13533 #, no-wrap
13534 msgid ""
13535 "#include E<lt>sys/wait.hE<gt>\n"
13536 "#include E<lt>stdlib.hE<gt>\n"
13537 "#include E<lt>unistd.hE<gt>\n"
13538 "#include E<lt>stdio.hE<gt>\n"
13539 msgstr ""
13540 "#include E<lt>sys/wait.hE<gt>\n"
13541 "#include E<lt>stdlib.hE<gt>\n"
13542 "#include E<lt>unistd.hE<gt>\n"
13543 "#include E<lt>stdio.hE<gt>\n"
13544
13545 #. type: Plain text
13546 #: build/C/man2/wait.2:584
13547 #, no-wrap
13548 msgid ""
13549 "int\n"
13550 "main(int argc, char *argv[])\n"
13551 "{\n"
13552 "    pid_t cpid, w;\n"
13553 "    int status;\n"
13554 msgstr ""
13555 "int\n"
13556 "main(int argc, char *argv[])\n"
13557 "{\n"
13558 "    pid_t cpid, w;\n"
13559 "    int status;\n"
13560
13561 #. type: Plain text
13562 #: build/C/man2/wait.2:590
13563 #, no-wrap
13564 msgid ""
13565 "    cpid = fork();\n"
13566 "    if (cpid == -1) {\n"
13567 "        perror(\"fork\");\n"
13568 "        exit(EXIT_FAILURE);\n"
13569 "    }\n"
13570 msgstr ""
13571 "    cpid = fork();\n"
13572 "    if (cpid == -1) {\n"
13573 "        perror(\"fork\");\n"
13574 "        exit(EXIT_FAILURE);\n"
13575 "    }\n"
13576
13577 #. type: Plain text
13578 #: build/C/man2/wait.2:596
13579 #, no-wrap
13580 msgid ""
13581 "    if (cpid == 0) {            /* Code executed by child */\n"
13582 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
13583 "        if (argc == 1)\n"
13584 "            pause();                    /* Wait for signals */\n"
13585 "        _exit(atoi(argv[1]));\n"
13586 msgstr ""
13587 "    if (cpid == 0) {            /* Code executed by child */\n"
13588 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
13589 "        if (argc == 1)\n"
13590 "            pause();                    /* Wait for signals */\n"
13591 "        _exit(atoi(argv[1]));\n"
13592
13593 #. type: Plain text
13594 #: build/C/man2/wait.2:604
13595 #, no-wrap
13596 msgid ""
13597 "    } else {                    /* Code executed by parent */\n"
13598 "        do {\n"
13599 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
13600 "            if (w == -1) {\n"
13601 "                perror(\"waitpid\");\n"
13602 "                exit(EXIT_FAILURE);\n"
13603 "            }\n"
13604 msgstr ""
13605 "    } else {                    /* Code executed by parent */\n"
13606 "        do {\n"
13607 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
13608 "            if (w == -1) {\n"
13609 "                perror(\"waitpid\");\n"
13610 "                exit(EXIT_FAILURE);\n"
13611 "            }\n"
13612
13613 #. type: Plain text
13614 #: build/C/man2/wait.2:618
13615 #, no-wrap
13616 msgid ""
13617 "            if (WIFEXITED(status)) {\n"
13618 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
13619 "            } else if (WIFSIGNALED(status)) {\n"
13620 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
13621 "            } else if (WIFSTOPPED(status)) {\n"
13622 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
13623 "            } else if (WIFCONTINUED(status)) {\n"
13624 "                printf(\"continued\\en\");\n"
13625 "            }\n"
13626 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
13627 "        exit(EXIT_SUCCESS);\n"
13628 "    }\n"
13629 "}\n"
13630 msgstr ""
13631 "            if (WIFEXITED(status)) {\n"
13632 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
13633 "            } else if (WIFSIGNALED(status)) {\n"
13634 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
13635 "            } else if (WIFSTOPPED(status)) {\n"
13636 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
13637 "            } else if (WIFCONTINUED(status)) {\n"
13638 "                printf(\"continued\\en\");\n"
13639 "            }\n"
13640 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
13641 "        exit(EXIT_SUCCESS);\n"
13642 "    }\n"
13643 "}\n"
13644
13645 #. type: Plain text
13646 #: build/C/man2/wait.2:631
13647 msgid ""
13648 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), B<sigaction>"
13649 "(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), B<credentials>(7), "
13650 "B<signal>(7)"
13651 msgstr ""
13652 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), B<sigaction>"
13653 "(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), B<credentials>(7), "
13654 "B<signal>(7)"
13655
13656 #. type: TH
13657 #: build/C/man2/wait4.2:33
13658 #, no-wrap
13659 msgid "WAIT4"
13660 msgstr "WAIT4"
13661
13662 #. type: TH
13663 #: build/C/man2/wait4.2:33
13664 #, no-wrap
13665 msgid "2012-09-23"
13666 msgstr "2012-09-23"
13667
13668 #. type: Plain text
13669 #: build/C/man2/wait4.2:36
13670 msgid "wait3, wait4 - wait for process to change state, BSD style"
13671 msgstr "wait3, wait4 - BSD スタイルでプロセスの状態変化を待つ"
13672
13673 #. type: Plain text
13674 #: build/C/man2/wait4.2:42
13675 #, no-wrap
13676 msgid ""
13677 "B<#include E<lt>sys/types.hE<gt>>\n"
13678 "B<#include E<lt>sys/time.hE<gt>>\n"
13679 "B<#include E<lt>sys/resource.hE<gt>>\n"
13680 "B<#include E<lt>sys/wait.hE<gt>>\n"
13681 msgstr ""
13682 "B<#include E<lt>sys/types.hE<gt>>\n"
13683 "B<#include E<lt>sys/time.hE<gt>>\n"
13684 "B<#include E<lt>sys/resource.hE<gt>>\n"
13685 "B<#include E<lt>sys/wait.hE<gt>>\n"
13686
13687 #. type: Plain text
13688 #: build/C/man2/wait4.2:45
13689 #, no-wrap
13690 msgid ""
13691 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
13692 "B<            struct rusage *>I<rusage>B<);>\n"
13693 msgstr ""
13694 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
13695 "B<            struct rusage *>I<rusage>B<);>\n"
13696
13697 #. type: Plain text
13698 #: build/C/man2/wait4.2:48
13699 #, no-wrap
13700 msgid ""
13701 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
13702 "B<            struct rusage *>I<rusage>B<);>\n"
13703 msgstr ""
13704 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
13705 "B<            struct rusage *>I<rusage>B<);>\n"
13706
13707 #. type: Plain text
13708 #: build/C/man2/wait4.2:57
13709 msgid "B<wait3>():"
13710 msgstr "B<wait3>():"
13711
13712 #. type: Plain text
13713 #: build/C/man2/wait4.2:63
13714 msgid "B<wait4>():"
13715 msgstr "B<wait4>():"
13716
13717 #. type: Plain text
13718 #: build/C/man2/wait4.2:65
13719 msgid "_BSD_SOURCE"
13720 msgstr "_BSD_SOURCE"
13721
13722 #. type: Plain text
13723 #: build/C/man2/wait4.2:73
13724 msgid ""
13725 "These functions are obsolete; use B<waitpid>(2)  or B<waitid>(2)  in new "
13726 "programs."
13727 msgstr ""
13728
13729 #. type: Plain text
13730 #: build/C/man2/wait4.2:83
13731 msgid ""
13732 "The B<wait3>()  and B<wait4>()  system calls are similar to B<waitpid>(2), "
13733 "but additionally return resource usage information about the child in the "
13734 "structure pointed to by I<rusage>."
13735 msgstr ""
13736 "システムコール B<wait3>()  と B<wait4>()  は B<waitpid>(2)  と同様の動作をす"
13737 "る。それに加え、子プロセスのリソース使用状況の情報を I<rusage> が指す構造体に"
13738 "入れて返す。"
13739
13740 #. type: Plain text
13741 #: build/C/man2/wait4.2:89
13742 msgid ""
13743 "Other than the use of the I<rusage> argument, the following B<wait3>()  call:"
13744 msgstr "I<rusage> を使用する点を除けば、次の B<wait3>()  の呼び出し"
13745
13746 #. type: Plain text
13747 #: build/C/man2/wait4.2:92
13748 #, no-wrap
13749 msgid "    wait3(status, options, rusage);\n"
13750 msgstr "    wait3(status, options, rusage);\n"
13751
13752 #. type: Plain text
13753 #: build/C/man2/wait4.2:95 build/C/man2/wait4.2:109
13754 msgid "is equivalent to:"
13755 msgstr "は以下と等価である。"
13756
13757 #. type: Plain text
13758 #: build/C/man2/wait4.2:98
13759 #, no-wrap
13760 msgid "    waitpid(-1, status, options);\n"
13761 msgstr "    waitpid(-1, status, options);\n"
13762
13763 #. type: Plain text
13764 #: build/C/man2/wait4.2:103
13765 msgid "Similarly, the following B<wait4>()  call:"
13766 msgstr "同様に、次の B<wait4>()  の呼び出し"
13767
13768 #. type: Plain text
13769 #: build/C/man2/wait4.2:106
13770 #, no-wrap
13771 msgid "    wait4(pid, status, options, rusage);\n"
13772 msgstr "    wait4(pid, status, options, rusage);\n"
13773
13774 #. type: Plain text
13775 #: build/C/man2/wait4.2:112
13776 #, no-wrap
13777 msgid "    waitpid(pid, status, options);\n"
13778 msgstr "    waitpid(pid, status, options);\n"
13779
13780 #. type: Plain text
13781 #: build/C/man2/wait4.2:122
13782 msgid ""
13783 "In other words, B<wait3>()  waits of any child, while B<wait4>()  can be "
13784 "used to select a specific child, or children, on which to wait.  See B<wait>"
13785 "(2)  for further details."
13786 msgstr ""
13787 "言い換えると、 B<wait3>()  は全ての子プロセスを対象に待つが、 B<wait4>()  で"
13788 "は特定の子プロセス (複数可) を選んで待つことができる。"
13789
13790 #. type: Plain text
13791 #: build/C/man2/wait4.2:132
13792 msgid ""
13793 "If I<rusage> is not NULL, the I<struct rusage> to which it points will be "
13794 "filled with accounting information about the child.  See B<getrusage>(2)  "
13795 "for details."
13796 msgstr ""
13797 "I<rusage> が NULL でない場合、 I<rusage> が指す I<rusage 構造体> には子プロセ"
13798 "スのアカウント情報が格納される。 詳しくは B<getrusage>(2)  を参照のこと。"
13799
13800 #. type: Plain text
13801 #: build/C/man2/wait4.2:135 build/C/man2/wait4.2:138
13802 msgid "As for B<waitpid>(2)."
13803 msgstr "B<waitpid>(2)  と同様。"
13804
13805 #. type: Plain text
13806 #: build/C/man2/wait4.2:140
13807 msgid "4.3BSD."
13808 msgstr "4.3BSD."
13809
13810 #. type: Plain text
13811 #: build/C/man2/wait4.2:147
13812 msgid ""
13813 "SUSv1 included a specification of B<wait3>(); SUSv2 included B<wait3>(), but "
13814 "marked it LEGACY; SUSv3 removed it."
13815 msgstr ""
13816
13817 #. type: Plain text
13818 #: build/C/man2/wait4.2:159
13819 msgid ""
13820 "Including I<E<lt>sys/time.hE<gt>> is not required these days, but increases "
13821 "portability.  (Indeed, I<E<lt>sys/resource.hE<gt>> defines the I<rusage> "
13822 "structure with fields of type I<struct timeval> defined in I<E<lt>sys/time."
13823 "hE<gt>>.)"
13824 msgstr ""
13825 "現在では I<E<lt>sys/time.hE<gt>> をインクルードする必要はないが、インクルード"
13826 "しておくと 移植性を高めることができる (実際には I<E<lt>sys/resource.hE<gt>> "
13827 "で I<rusage> 構造体が定義されているが、そのフィールドで使用されている "
13828 "I<struct timeval> 型は I<E<lt>sys/time.hE<gt>> で定義されている)。"
13829
13830 #. type: Plain text
13831 #: build/C/man2/wait4.2:165
13832 msgid ""
13833 "On Linux, B<wait3>()  is a library function implemented on top of the "
13834 "B<wait4>()  system call."
13835 msgstr ""
13836 "Linux では、 B<wait3>()  はライブラリ関数であり、 B<wait4>()  システムコール"
13837 "を使って実装されている。"
13838
13839 #. type: Plain text
13840 #: build/C/man2/wait4.2:172
13841 msgid ""
13842 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
13843 "B<signal>(7)"
13844 msgstr ""
13845 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
13846 "B<signal>(7)"
13847
13848 #~ msgid "2009-09-15"
13849 #~ msgstr "2009-09-15"
13850
13851 #~ msgid "2011-09-18"
13852 #~ msgstr "2011-09-18"
13853
13854 #~ msgid "2007-07-05"
13855 #~ msgstr "2007-07-05"
13856
13857 #~ msgid "2012-04-26"
13858 #~ msgstr "2012-04-26"
13859
13860 #~ msgid "2010-09-10"
13861 #~ msgstr "2010-09-10"
13862
13863 #~ msgid "2012-05-02"
13864 #~ msgstr "2012-05-02"
13865
13866 #~ msgid "2008-07-11"
13867 #~ msgstr "2008-07-11"
13868
13869 #~ msgid ""
13870 #~ "B<SIGIO> and B<SIGLOST> have the same value.  The latter is commented out "
13871 #~ "in the kernel source, but the build process of some software still thinks "
13872 #~ "that signal 29 is B<SIGLOST>."
13873 #~ msgstr ""
13874 #~ "B<SIGIO> と B<SIGLOST> は同じ値を持っている。 B<SIGLOST> はカーネルのソー"
13875 #~ "スではコメントアウトされている。 しかし、ソフトウェアによってはビルドの過"
13876 #~ "程でシグナル 29 を B<SIGLOST> とみなしてしまうものがある。"
13877
13878 #~ msgid "2011-10-03"
13879 #~ msgstr "2011-10-03"
13880
13881 #~ msgid "B<kill>(2)  or B<raise>(3)"
13882 #~ msgstr "B<kill>(2)  または B<raise>(3)"
13883
13884 #~ msgid "queued SIGIO"
13885 #~ msgstr "キューイングされた SIGIO"
13886
13887 #~ msgid "EXAMPLES"
13888 #~ msgstr "例"
13889
13890 #~ msgid "POSIX.1b signals and B<SIGCHLD> fill in I<si_pid> and I<si_uid>."
13891 #~ msgstr ""
13892 #~ "POSIX.1b シグナルと B<SIGCHLD> は I<si_pid> と I<si_uid> を設定する。"
13893
13894 #~ msgid ""
13895 #~ "I<si_int> and I<si_ptr> are specified by the sender of the POSIX.1b "
13896 #~ "signal.  See B<sigqueue>(2)  for more details."
13897 #~ msgstr ""
13898 #~ "I<si_int> と I<si_ptr> は POSIX.1b シグナルの送信者によって指定される。 詳"
13899 #~ "細は B<sigqueue>(2)  を参照のこと。"
13900
13901 #~ msgid ""
13902 #~ "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, and B<SIGBUS> fill in I<si_addr> with "
13903 #~ "the address of the fault.  B<SIGPOLL> fills in I<si_band> and I<si_fd>."
13904 #~ msgstr ""
13905 #~ "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS> は I<si_addr> にエラーが発生し"
13906 #~ "たアドレスを設定する。 SIGPOLL は I<si_band> と I<si_fd> を設定する。"